EC : LPC Module
ESPI/LPC/ISA Module EC 的 LPC Module 是透過 ESPI/LPC/ISA 介面和系統晶片組(Chipset)及中央處理器(CPU)溝通,每一個 LPC Module 都會擁有特定的 I/O 和 記憶體 ,CPU會透過持定的IO或記憶體和 LPC Module做初始化,設定 , 指令或資料的傳送的。LPC Module 會依要求的新增,這一章節先介紹最必要的二個 LPC Module,分別是 KBC Module 和 PM Module 。 KBC Module KBC Module (Keyboard Controller Module) 鍵盤控制器, 主要是用來按制 鍵盤(包含 EC 晶片內含的 Matrix 掃描及舊的 PS2 介面 鍵盤) 和滑鼠 ( 包含 PS2 介面的 Touchpad 和 Mouse) 等裝置。 KBC Module 的 IO Port 為 IO Port 60H/64H ,系統晶片會經 IO Port 60H/64H 傳送 指令或資料 給 KBC Module ,再經 KBC Module 依指令要求執行服務程式或資料傳送到 Touchpad , Mouse 及 Keyboard 等 裝置。 系統收送指令和資料的流程: 系統收送指令和資料之前會先 讀取 PORT 64H 取得 KBC Module 狀態。 指令傳送 - 系統會經由 PORT 64H 傳送指令給 KBC Module ,狀態位元 A2 為 0 。 資料傳送 - 系統會經由 PORT 60H 傳送資料給 KBC Module ,狀態位元 A2 為 1 。 資料讀取 - 系統會經由讀取 PORT 60H 來取得 KBC Module 回傳的資料。 KBC Module 的內部方塊圖: 在系統傳送指令或資料給 KBC Modue ,因為 DBBIN 為一個位元組的緩衝區塊,所以接收到指令或資料送到 DBBIN 後, KBC Module 的 IBF (Input Buffer Full) 位元就會被設定並且產生 IBF中斷 傳送給 ICU (Interrupt Control Unit) ,中斷訊號啟動了中斷服務程式,在中斷服務程式內讀取 指令或資料後 , 同時 IBF 的旗標就會被清除,並由主