專利名稱:鍵盤控制器與主機進行數據交換的方法及鍵盤控制器的制作方法
技術領域:
本發明涉及計算機中的鍵盤控制器技術,特別是涉及一種鍵盤控制器與 主機進行數據交換的方法及其鍵盤控制器。
技術背景在筆記本計算機中,KBC (鍵盤控制器)是一個很重要的部件,在目前 的KBC芯片中, 一般有三個接口來和主機進行通訊, 一個是鍵盤接口 (0x60/0x64),主要用來傳送與鍵盤、鼠標相關的數據, 一個是電源管理接 口 (0x62/0x66),主要用來傳送和電源管理有關的數據,還有一個一般都沒 有使用的接口第三組端口 (0x68/0x6c,端口的地址是可以修改的)。主機通 過這三個接口和KBC進行數據交換時存在的問題是,當主機和KBC之間有 比較多的數據需要頻繁傳送的話,這三個接口都很難完成,這是由于這三個 接口的工作方式所限制的,以主機通過鍵盤接口 0x60/0x64傳送一個字節數 據給KBC為例主機讀狀態寄存器(0x64),看主機輸入端口是否為空,如果 為空,則寫入一個約定好的命令到命令寄存器,然后再該讀狀態寄存器,看 輸入端口是否仍為空,如果為空,則寫入一個字節的數據到鍵盤接口0x60, 這樣每傳送一個字節都要通過一個這樣的過程,而且在KBC端,每當主機寫 入一個數據到鍵盤接口 0x60/0x64,都會觸發一個中斷來中斷KBC的工作。 這樣如果有多字節數據需要頻繁地在主機和KBC之間傳送的話,會頻繁地中 斷KBC的工作,并且加重KBC的負擔,會導致系統的性能很差。以上過程 雖然也可以通過一組硬件寄存器來實現性能的提升,但實現這種功能的芯片 成本很高。 發明內容本發明的目的在于提供一種鍵盤控制器與主機進行數據交換的方法及鍵 盤控制器,解決現有技術在KBC和主機間需要頻繁交換數據時,需要較高的 硬件成本才能提升系統性能的問題。
為了實現上述目的,本發明提供了一種鍵盤控制器與主機進行數據交換 的方法,其中,包括步驟一,將鍵盤控制器與主機間的交互數據存儲在能夠不中斷鍵盤控制 器的工作就可以被主機訪問的自帶存儲器中;步驟二,通過鍵盤控制器中的第三組端口來通知鍵盤控制器或主機去所 述自帶存儲器中讀取所述交互數據。上述的方法,其中,所述自帶存儲器為能夠通過輸入輸出端口或通過內 存訪問的方式被主機訪問的鍵盤控制器的隨機存儲器、寄存器或設備的隨 機存儲器。上述的方法,其中,所述第三組端口選擇為與鍵盤控制器所帶有的電源 管理接口和鍵盤接口相區別的閑置接口。上述的方法,其中,在主機向鍵盤控制器發送所述交互數據的條件下, 所述步驟一包括主機把需要傳送的交互數據寫入到所述自帶存儲器中;所 述步驟二包括主機讀所述第三組端口的狀態寄存器,如果根據所述狀態寄 存器確定所述第三組端口的輸入緩沖器為空,則往第三組端口的命令寄存器 寫入一個約定好的命令并觸發一個中斷給所述鍵盤控制器,所述鍵盤控制器 讀取所述命令后從所述自帶存儲器讀取所述交互數據。上述的方法,其中,在鍵盤控制器向主機發送所述交互數據的條件下, 所述步驟一包括鍵盤控制器將需要傳送的交互數據寫入到所述自帶存儲器 中;所述步驟二包括鍵盤控制器通過所述第三組端口發送一個訪問數據給 主機,從而使第三組端口的狀態寄存器置起輸出緩沖器滿的標識;主機發現 所述輸出緩沖器滿的標識后,讀取所述訪問數據,并從所述自帶存儲器讀取 所述交互數據。為了實現本發明的目的,本發明還提供了一種鍵盤控制器,與主機進行 數據交換,其中,包括自帶存儲器,能夠不中斷鍵盤控制器的工作就可以 被主機訪問,用于存儲鍵盤控制器與主機間的交互數據;第三組端口,用于 通知鍵盤控制器或主機去所述自帶存儲器中讀取所述交互數據。上述的鍵盤控制器,其中,所述自帶存儲器為能夠通過輸入輸出端口或 內存訪問的方式被主機訪問的鍵盤控制器的隨機存儲器、寄存器或設備的
隨機存儲器。上述的鍵盤控制器,其中,所述第三組端口為與鍵盤控制器所帶有的電 源管理接口和鍵盤接口相區別的閑置接口 。 本發明的優點在于將交互數據存到RTC sram或者KBC ram或者KBC的寄存器里,不用觸 發KBC的中斷,對KBC本身的工作沒有影響,寫完后通過KBC的第三組端 口告訴KBC有數據送下來,這樣不用每送一個字節數據,就中斷KBC—次。 本發明無需使用高成本的芯片就可以解決目前KBC和主機之間需要較多數 據頻繁交換時所存在的問題,不需要增加硬件的成本。
圖1為本發明鍵盤控制器的硬件結構圖; 圖2為本發明方法的步驟流程圖。
具體實施方式
本發明提出了一種主機和KBC進行數據交換的方法,參考圖l,在目前 的KBC芯片中,通常有RTC sram (實時時鐘控制器的靜態存儲器)101或者 share memory (共享存儲器)102、 103或者一對可供主機訪問KBC mm (隨 機存儲器)的端口 ]04、 105,通過這些主機可以訪問RTCsram或KBCram, 當主機通過這種方式訪問KBC的RTC sram或者KBC ram時,對KBC的 工作影響很小或者沒有影響。當主機需要傳送數據給KBC時,先通過上述方 式把數據寫到RTC ram或者KBC ram,然后往第三組端口 (0x68/0x6c) 106 發一個約定好的命令,當KBC收到這個命令之后,就去RTC ram或者KBC mm讀取主機傳送來的數據。當KBC需要傳送數據給主機時,先把需要傳送 給主機的數據寫到RTC ram或者KBC ram,然后通過第三組端口發送一個數 據給主機,這樣KBC的輸出緩沖區滿的標識會被置起來,主機看到后就可以 去RTC ram或者KBC ram去讀取數據。圖2為本發明方法的步驟流程圖,如圖,本發明的鍵盤控制器與主機進行數據交換的方法,主要包括以下步驟步驟201,將鍵盤控制器與主機間的交互數據存儲在鍵盤控制器的自帶 存儲器中;
步驟202,通過鍵盤控制器中閑置的第三組端口來通知鍵盤控制器或主機去所述自帶存儲器中讀取所述交互數據。其中的自帶存儲器,是指主機不用中斷鍵盤控制器的工作就可以通過IO 端口或內存訪問方式訪問的鍵盤控制器的隨機存儲器、寄存器、設備的隨機 存儲器,例如鍵盤控制器的實時時鐘的隨機存儲器可以通過IO端口讓主機可 以直接訪問,不用每次中斷鍵盤控制器的工作,還有有的鍵盤控制器的隨機 存儲器可以映射到主機的空間,從面主機可以通過內存訪問方式直接訪問, 有的鍵盤控制器則可以通過一組I/O端口訪問鍵盤控制器的隨機存儲器和寄 存器而不中斷鍵盤控制器的工作。本發明方法的具體工作流程如下1) 主機把需要傳送的數據寫入到KBC RAM或者RTC sram.2) 主機讀第三組端口的狀態寄存器,根據狀態寄存器判斷輸入buffer (緩 沖器)是否為空。如果輸入buffer為空,則往第三組端口的命令寄存器寫入 一個約定好的命令,這樣會觸發一個中斷給KBC, KBC讀取這個命令后從 KBC RAM或者RTC sram讀取數據。3 ) KBC將需要傳送給主機的數據寫入到KBC RAM或者RTC sram。4) KBC通過第三組接口返回一個數據給主機,這樣會使KBC第三組接 口的狀態寄存器的輸出buffer滿的標識置起來(以此表明KBC有數據送給主 機)。5) 當主機看到第三組接口的狀態寄存器的輸出buffer滿的標識置起來后, 讀取從第三組接口返回的數據,并從KBC RAM或者RTC sram讀取數據。發明將交互數據存到RTC sram或者KBC ram或者KBC的register里, 不用觸發KBC的中斷,對KBC本身的工作沒有影響,寫完后通過KBC的第 三組端口告訴KBC有數據送下來,這樣不用每送-一個字節數據,就中斷KBC 一下。本發明方法,不用使用高成本的芯片就可以解決目前流行的KBC和主 機之間需要較多數據頻繁交換的問題,不需要增加硬件的成本。以上所述僅是本發明的優選實施方式,應當指出,對于本技術領域的普 通技術人員來說,在不脫離本發明原理的前提下,還可以作出若干改進和潤 飾,這些改進和潤飾也應視為本發明的保護范圍。
權利要求
1. 一種鍵盤控制器與主機進行數據交換的方法,其特征在于,包括步驟一,將鍵盤控制器與主機間的交互數據存儲在能夠不中斷鍵盤控制器的工作就可以被主機訪問的自帶存儲器中;步驟二,通過鍵盤控制器中的第三組端口來通知鍵盤控制器或主機去所述自帶存儲器中讀取所述交互數據。
2. 根據權利要求1所述的方法,其特征在于,所述自帶存儲器為能夠通 過輸入輸出端口或通過內存訪問的方式被主機訪問的鍵盤控制器的隨機存 儲器、寄存器或設備的隨機存儲器。
3. 根據權利要求1或2所述的方法,其特征在于,所述第三組端口選擇 為與鍵盤控制器所帶有的電源管理接口和鍵盤接口相區別的閑置接口 。
4. 根據權利要求3所述的方法,其特征在于,在主機向鍵盤控制器發送 所述交互數據的條件下,所述步驟一包括主機把需要傳送的交互數據寫入到所述自帶存儲器中; 所述步驟二包括主機讀所述第三組端口的狀態寄存器,如果根據所述 狀態寄存器確定所述第三組端口的輸入緩沖器為空,則往第三組端口的命令 寄存器寫入一個約定好的命令并觸發一個中斷給所述鍵盤控制器,所述鍵盤 控制器讀取所述命令后從所述自帶存儲器讀取所述交互數據。
5. 根據權利要求3所述的方法,其特征在于,在鍵盤控制器向主機發送 所述交互數據的條件下,所述步驟一包括鍵盤控制器將需要傳送的交互數據寫入到所述自帶存 儲器中;所述步驟二包括鍵盤控制器通過所述第三組端口發送一個訪問數據給 主機,從而使第三組端口的狀態寄存器置起輸出緩沖器滿的標識;主機發現 所述輸出緩沖器滿的標識后,讀取所述訪問數據,并從所述自帶存儲器讀取 所述交互數據。
6. —種鍵盤控制器,與主機進行數據交換,其特征在于,包括-自帶存儲器,能夠不中斷鍵盤控制器的工作就可以被主機訪問,用于存儲鍵盤控制器與主機間的交互數據;第三組端口,用于通知鍵盤控制器或主機去所述自帶存儲器中讀取所述 交互數據。
7. 根據權利要求6所述的鍵盤控制器,其特征在于,所述自帶存儲器為 能夠通過輸入輸出端口或內存訪問的方式被主機訪問的鍵盤控制器的隨機 存儲器、寄存器或設備的隨機存儲器。
8. 根據權利要求6所述的鍵盤控制器,其特征在于,所述第三組端口為 與鍵盤控制器所帶有的電源管理接口和鍵盤接口相區別的閑置接口 。
全文摘要
本發明公開了一種鍵盤控制器與主機進行數據交換的方法及鍵盤控制器,其中方法包括步驟一,將鍵盤控制器與主機間的交互數據存儲在能夠不中斷鍵盤控制器的工作就可以被主機訪問的自帶存儲器中;步驟二,通過鍵盤控制器中閑置的第三組端口來通知鍵盤控制器或主機去所述自帶存儲器中讀取所述交互數據。本發明避免了每送一個字節數據就中斷鍵盤控制器,不用增加硬件成本就可以解決目前鍵盤控制器和主機之間多字節數據頻繁交換時所存在的問題。
文檔編號G06F13/20GK101211322SQ20061017162
公開日2008年7月2日 申請日期2006年12月31日 優先權日2006年12月31日
發明者易賢群 申請人:聯想(北京)有限公司