Notebook Embedded Controller 簡介

這是一份介紹 EC(Embedded Controller,嵌入式控制器)及 KBC(Keyboard Controller,鍵盤控制器)的簡介,主要對象為即將踏入社會大學的新鮮人,或是剛進入 EC/KBC 領域的研發人員。希望透過本簡介,讓讀者對 EC/KBC 的工作內容有初步的認識,並了解這個領域是否適合自己發展。

內容將從基礎的電子知識開始,逐步帶領讀者認識 EC/KBC 研發所需具備的專業技能與程式撰寫能力,最終協助讀者建立成為一位 EC/KBC 研發工程師的基礎與方向。

什麼是 EC(Embedded Controller,嵌入式控制器)?這個名稱最早出現在 ACPI(Advanced Configuration and Power Interface Specification,高級設定與電源介面規範)中。EC 的主要功能是蒐集系統資訊,並透過 I/O 埠 62H/66H 將資料傳送給作業系統。

ACPI 是由當時筆記型電腦領域的主要企業──Intel、Microsoft、Phoenix 與 Toshiba 共同制定,目的在於有效管理筆記型電腦本身及其週邊裝置的電源消耗。

至於 ACPI 的完整內容,請參考官方發佈的《ACPI Specification》。本簡介僅聚焦於與 EC 有關的 ACPI 規範,作為入門參考。

在 ACPI 的規範中,EC(Embedded Controller)被定義為 PC 系統中的「系統管理匯流排(System Management Bus, SMBus)」的管理者,負責蒐集 SMBus 上各個裝置的狀態資料。這些資料會透過 I/O 埠 62H/66H,與 Microsoft 提供的 ACPI-Compliant Embedded Controller Driver 進行溝通,並最終傳遞給作業系統(Operating System, O.S.)。

作業系統接收到這些來自 EC 的資訊後,會根據系統的設定與需求,進行最佳化的電源管理,以提升系統效能並降低能源消耗。


在 Windows 10 系統中,EC Driver(嵌入式控制器驅動程式)位於「裝置管理員」中的「系統裝置」分類下。


什麼是 KBC?
KBC(Keyboard Controller,鍵盤控制器)是用來管理鍵盤與滑鼠裝置的控制器,負責處理來自鍵盤與滑鼠的輸入訊號,並將相關資訊傳送給作業系統。

在早期的 PC AT/XT 系統中,KBC 採用的是 Intel 8042 控制晶片,透過 I/O 埠 60H/64H 與作業系統進行資料傳輸。

而在筆記型電腦(Notebook)系統中,由於空間受限,無法使用體積較大的標準鍵盤,且部分鍵位需透過複合鍵來實現,因此不再使用固定功能的 Intel 8042 晶片,而是改採可修改韌體的單晶片(如 MCU),以彈性模擬並擴充原 8042 的功能。


因此,Notebook 系統中的 KBC(Keyboard Controller)與 EC(Embedded Controller)功能,可以透過兩顆處理器晶片(Processor Chip)來分別實現,例如 RENESAS H8 系列;也可以由單一顆處理器晶片來整合完成,例如 nuvoton WPC8769L、ITE 8512、ENE 3920 等。由於目前 Notebook 的主流設計大多採用單晶片方案整合 KBC 與 EC 功能,因此本文將以「單一處理器晶片解決方案(One Processor Chip Solution)」為主進行介紹。

參考文章:

留言

  1. 謝謝您的分享.

    請問目前NB 在裝置管理員內的鍵盤 顯示為 HID Keyboard Device, 沒有出現 60 / 64 的資源訊息.
    是OK的嗎?

    回覆刪除
    回覆
    1. 是 OK . 現今有些 NB 使用了非 intel / AMD 的晶片組,沒有 LPC/eSPI 介面,或者是鍵盤有分離/組合的需求時, 所以改採用 USB 介面, 就會顯示 HID keyboard Device.

      刪除

張貼留言

這個網誌中的熱門文章

EC 所需知識 - SMBUS

EC 所需知識 - KBC

EC 所需知識 - LPC