專利名稱:控制器及其相關(guān)控制方法
控制器及其相關(guān)控制方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于一種控制器及其相關(guān)控制方法,且特別是有關(guān)于一種PS/2控制器及其相關(guān)控制方法。
背景技術(shù):
請參照圖1,其所繪示為現(xiàn)有計算機(jī)系統(tǒng)的示意圖。現(xiàn)有計算機(jī)系統(tǒng)100包括中央處理器110、控制芯片組120、內(nèi)存130、硬盤140、PS/2控制器150。其中,控制芯片組120中包括北橋芯片122、與南橋芯片126。中央處理器I 10利用前端總線(front side bus)連接至北橋芯片122,北橋芯片122利用內(nèi)存總線(memory bus)連接至內(nèi)存I 30。南橋芯片126利用私有總線連接至北橋芯片122,并利用低針腳數(shù)目總線(Low Pin Count Bus,簡稱LPC Bus)連接至PS/2控制 器150。其中,私有總線可為一直接媒體接口 (Direct Media Interface, DMI)總線。一般來說,不同的PS/2裝置進(jìn)行一個動作所產(chǎn)生的數(shù)據(jù)量并不固定。舉例來說,不同類型的鼠標(biāo)執(zhí)行相同的按鍵動作時,所產(chǎn)生的數(shù)據(jù)量也不同,約在4字節(jié)(byte)到8字節(jié)。而現(xiàn)有的PS/2控制器150于接收到PS/2裝置輸出的數(shù)據(jù)時,即將該數(shù)據(jù)傳送至南橋芯片126?;旧?,PS/2控制器150不需要知道PS/2裝置的數(shù)據(jù)量長度。當(dāng)PS/2裝置產(chǎn)生第一個字節(jié)的數(shù)據(jù)至PS/2控制器150時,PS/2控制器150即產(chǎn)生一個中斷要求(interruptrequest,簡稱IRQ)至南橋芯片126,而南橋芯片126即利用LPC Bus讀取第一字節(jié)的數(shù)據(jù)。舉例來說,當(dāng)PS/2裝置執(zhí)行一個動作會產(chǎn)生6個字節(jié)時,該PS/2裝置會依序傳遞6個字節(jié)的數(shù)據(jù)至PS/2控制器150。每當(dāng)PS/2控制器150接收到一個字節(jié)時,即產(chǎn)生一個IRQ至南橋芯片126,而南橋芯片126即利用LPCBus讀取該字節(jié)的數(shù)據(jù)。亦即,傳輸一個PS/2裝置的一個動作,PS/2控制器150需要產(chǎn)生6次的IRQ,并且南橋芯片126利用LPCBus依序接收6個字節(jié)。同理,當(dāng)PS/2裝置執(zhí)行其它的動作會產(chǎn)生n字節(jié)的數(shù)據(jù)量時,PS/2控制器150需要產(chǎn)生n次的IRQ,而南橋芯片126利用LPC Bus依序接收n個字節(jié)。如圖I所示,PS/2控制器150相對于主要PS/2輸入端(Pri-PS/2 Port)以及輔助PS/2輸入端(Aux-PS/2 Port)會有一第一中斷要求(IRQl)以及一第二中斷要求(IRQ2)。亦即,當(dāng)鍵盤產(chǎn)生一個動作時,鍵盤的數(shù)據(jù)利用主要PS/2輸入端(Pri-PS/2 Port)傳遞至PS/2控制器150,而PS/2控制器150利用IRQl通知南橋芯片126,而南橋芯片126即可得知該數(shù)據(jù)由鍵盤所產(chǎn)生。當(dāng)鼠標(biāo)產(chǎn)生一個動作時,鍵盤的數(shù)據(jù)利用輔助PS/2輸入端(Aux-PS/2 Port)傳遞至PS/2控制器150,而PS/2控制器150利用IRQ2通知南橋芯片126,而南橋芯片126即可得知該數(shù)據(jù)由鼠標(biāo)所產(chǎn)生?;旧?,PS/2裝置產(chǎn)生I字節(jié)數(shù)據(jù)的速度大約需要2ms。再者,由于現(xiàn)有LPC Bus的速度為33MHz,因此LPC Bus的頻寬尚可平順地傳遞PS/2裝置產(chǎn)生的數(shù)據(jù)量。然而精簡指令集(Advanced RISC Machine,簡稱ARM)架構(gòu)或者其它中央處理器架構(gòu)的計算機(jī)系統(tǒng)中并沒有LPC Bus,因此,PS/2控制器就需要利用其它總線,以更有效率地來傳遞PS2裝置產(chǎn)生的數(shù)據(jù)。
發(fā)明內(nèi)容本發(fā)明提出一種控制器。此控制器包括一第一輸入端,連接至一第一裝置。一第一緩沖單元,連接至該第一輸入端,以接收該第一裝置產(chǎn)生的一第一字節(jié)。一定時器,連接至該第一輸入端,當(dāng)該第一緩沖單元收到該第一字節(jié)時,該定時器啟動一設(shè)定時間開始計時,若該設(shè)定時間內(nèi)第一緩沖單元收到一第二字節(jié),則重新啟動該設(shè)定時間;若該設(shè)定時間內(nèi)第一緩沖單元沒收到該第二字節(jié),則送出一超時信號。以及一封包處理電路,根據(jù)該超時信號,將該第一緩沖單元中的所述字節(jié)組合成一第一封包,并產(chǎn)生一中斷要求信。本發(fā)明更提出一種控制器的控制方法,包括下列步驟當(dāng)一第一緩沖單元接收到一第一字節(jié)時,啟動一設(shè)定時間開始計時;于該設(shè)定時間內(nèi),判斷該第一緩沖單元是否收到一第二字節(jié);以及若該第一緩沖單元收到該第二字節(jié),重新啟動該設(shè)定時間并開始計時;若該設(shè)定時間內(nèi)第一緩沖單元沒收到該第二字節(jié),將該第一緩沖器中所有數(shù)據(jù)組合成為一 封包,并發(fā)出一中斷要求信號至該控制電路。為了對本發(fā)明的上述及其它方面有更佳的了解,下文特舉較佳實施例,并配合所附圖式,作詳細(xì)說明如下
圖I所繪示為現(xiàn)有計算機(jī)系統(tǒng)的示意圖。圖2所繪示為一實施例的計算機(jī)系統(tǒng)示意圖。圖3所繪示為一實施例的PS/2控制器示意圖。圖4所繪示為PS/2控制器的控制流程。主要組件符號說明100:計算機(jī)系統(tǒng)110:中央處理器120 :控制芯片組122:北橋芯片126 :南橋芯片130:內(nèi)存140 :硬盤150 PS/2 控制器200 :計算機(jī)系統(tǒng)220:控制電路250 PS/2 控制器252 :第一緩沖單元254 :第二緩沖單元256 :定時器258 :封包處理電路具體實施方式請參照圖2,其所繪示為一實施例的計算機(jī)系統(tǒng)示意圖。計算機(jī)系統(tǒng)200,其包括控制電路220、PS/2控制器250。其中,PS2控制器250系利用一內(nèi)部整合電路總線(Inter-Integrated Circuit Bus,以下簡稱I2C Bus)或者系統(tǒng)管理總線(SystemManagement Bus,以下簡稱SM Bus)連接至控制電路220。由于I2C Bus或者SM Bus的速度為IOOKHz,遠(yuǎn)低于LPC Bus的33MHz速度。如果PS/2控制器250依照現(xiàn)有LPC Bus的控制方式每次僅傳遞一字節(jié)的數(shù)據(jù),必定會占據(jù)I2CBus或者SM Bus的頻寬,而使得PS/2裝置產(chǎn)生的數(shù)據(jù)無法有效地傳遞至控制電路220。根據(jù)本發(fā)明的實施例,為了有效利用I2C Bus或者SM Bus的頻寬,本發(fā)明的PS/2 控制器250會將PS/2裝置一次動作所產(chǎn)生的全部數(shù)據(jù)組成I2C Bus或者SM Bus規(guī)格的封包(package)后,再傳遞至控制電路220。如此將更有效率的使用I2C Bus或者SM Bus的頻寬。請參照圖3,其所繪示為一實施例的PS/2控制器示意圖。PS/2控制器250包括一第一緩沖單元(buffering unit) 252、一第二緩沖單元254、一定時器(timer) 256、以及一封包處理電路(package processing unit) 258。第一緩沖單元252連接至主要PS/2輸入端以接收第一 PS/2裝置,例如鍵盤產(chǎn)生的數(shù)據(jù);第二緩沖單元254連接至輔助PS/2輸入端以接收第二 PS/2裝置,例如鼠標(biāo)產(chǎn)生的數(shù)據(jù)。再者,定時器256具有一設(shè)定時間可進(jìn)行一計時動作,當(dāng)?shù)谝粋€字節(jié)的數(shù)據(jù)進(jìn)入第一緩沖器252或者進(jìn)入第二緩沖器254時,計數(shù)器256會被重置(reset)以啟動設(shè)定時間,并重新開始計時。當(dāng)計時值超過此設(shè)定時間后,定時器256會產(chǎn)生一超時信號(time outsignal, TO)至封包處理電路258,使得封包處理電路258會將第一緩沖器252或者進(jìn)入第二緩沖器254中的所有數(shù)據(jù)組合成為一封包,并利用中斷要求信號IRQ通知控制電路220,而控制電路220即利用I2C Bus或者SM Bus來讀取該封包。根據(jù)本發(fā)明的實施例,由于PS/2裝置在進(jìn)行一動作時,會連續(xù)產(chǎn)生多個字節(jié),而每一字節(jié)數(shù)據(jù)產(chǎn)生的速度約為2ms。因此,本發(fā)明利用PS/2控制器250中的定時器256來進(jìn)行計時動作,以判斷PS/2裝置是否輸出所有字節(jié)。舉例來說,在定時器256中定義一設(shè)定時間(例如5ms),每次在設(shè)定時間之內(nèi)收到一字節(jié),則計時器重新啟動設(shè)定時間來重新計時,如此反復(fù)確認(rèn)到在設(shè)定時間之內(nèi)無法收到另一個字節(jié)。當(dāng)在設(shè)定時間之內(nèi)無法收到一字節(jié),則代表PS/2裝置已經(jīng)傳輸完所有的字節(jié)。請參照圖4,其所繪示為一實施例的PS/2控制器的控制流程。由于第一緩沖單元252以及第二緩沖單元254的判斷方法相同,因此圖4僅以第一緩沖單元252來作說明。首先,當(dāng)?shù)谝痪彌_單元252接收到第一字節(jié)時(步驟S410),則定時器256啟動一設(shè)定時間開始計時(步驟S413)。接著,判斷設(shè)定時間之內(nèi),第一緩沖單元252是否收到第二字節(jié)(步驟S415)。如果于設(shè)定時間之內(nèi),第一緩沖單元252收到第二字節(jié)時,則回到步驟(S413),亦即重新啟動設(shè)定時間開始計時。如果于設(shè)定時間之內(nèi),第一緩沖單元252未收到第二字節(jié)時,代表PS/2裝置已經(jīng)將所有的字節(jié)傳遞至第一緩沖單元252,因此定時器256產(chǎn)生超時信號(TO)至封包處理電路258。而封包處理電路258將第一緩沖單元252中的所有數(shù)據(jù)組合成一封包并發(fā)出一中斷要求(IRQ)信號至控制電路220 (步驟S419)。由以上的說明可知,本發(fā)明利用定時器256來判斷PS/2裝置是否輸出所有字節(jié),于確認(rèn)所有的字節(jié)已經(jīng)暫存于緩沖單元后,封包處理電路258即可組合所有的位組成為一封包,并且利用此封包將所有的字節(jié)傳送至控制電路220。因此,本發(fā)明可以不會時常占據(jù)I2C Bus或者SM Bus的頻寬,并且更有效率的使用I2C Bus或者SM Bus的頻寬。
再者,本發(fā)明的說明中皆以二個PS/2輸入端為例來作說明,但并不限于PS/2輸入端的數(shù)目。也就是說,PS/2輸入端的數(shù)目可以僅有一個,而也可以是大于2個的復(fù)數(shù)個。綜上所述,雖然本發(fā)明已以較佳實施例揭露如上,然其并非用以限定本發(fā)明。本發(fā)明所屬技術(shù)領(lǐng)域中具有通常知識者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作各種的更動與潤飾。因此,本發(fā)明的保護(hù)范圍當(dāng)視后附的申請專利范圍所界定者為準(zhǔn)。
權(quán)利要求
1.一種控制器,利用一總線連接至一控制電路,該控制器包括 一第一輸入端,連接至一第一裝置; 一第一緩沖單元,連接至該第一輸入端,以接收該第一裝置產(chǎn)生的一第一字節(jié); 一定時器,連接至該第一輸入端,當(dāng)該第一緩沖單元收到該第一字節(jié)時,該定時器啟動一設(shè)定時間開始計時,若該設(shè)定時間內(nèi)第一緩沖單元收到一第二字節(jié),則重新啟動該設(shè)定時間;若該設(shè)定時間內(nèi)第一緩沖單元沒收到該第二字節(jié),則送出一超時信號;以及 一封包處理電路,根據(jù)該超時信號,將該第一緩沖單元中的所述字節(jié)組合成一第一封包,并產(chǎn)生一中斷要求信。
2.根據(jù)權(quán)利要求I所述的控制器,其特征在于,該總線為一內(nèi)部整合電路總線或者一系統(tǒng)管理總線。
3.根據(jù)權(quán)利要求I所述的控制器,其特征在于,該第一輸入端為一主要PS/2輸入端,或者一輔助PS/2輸入端。
4.根據(jù)權(quán)利要求I所述的控制器,其特征在于,更包括 一第二輸入端,連接至一第二裝置;以及 一第二緩沖單元,連接至該第二輸入端,以接收該第二裝置所產(chǎn)生的一第三字節(jié); 其中,當(dāng)該第二緩沖單元收到該第三字節(jié)時,該定時器啟動該設(shè)定時間開始計時,若該設(shè)定時間內(nèi)第二緩沖單元收到一第四字節(jié),則重新啟動該設(shè)定時間;若該設(shè)定時間內(nèi)第一緩沖單元沒收到該第四字節(jié),則送出一超時信號。
5.一種控制器的控制方法,該控制器利用一總線連接至一控制電路,該方法包括下列步驟 當(dāng)一第一緩沖單元接收到一第一字節(jié)時,啟動一設(shè)定時間開始計時; 于該設(shè)定時間內(nèi),判斷該第一緩沖單元是否收到一第二字節(jié);以及 若該第一緩沖單元收到該第二字節(jié),重新啟動該設(shè)定時間并開始計時;若該設(shè)定時間內(nèi)第一緩沖單元沒收到該第二字節(jié),將該第一緩沖器中所有數(shù)據(jù)組合成為一封包,并發(fā)出一中斷要求信號至該控制電路。
6.根據(jù)權(quán)利要求5所述的控制器的控制方法,其特征在于,更包括當(dāng)發(fā)出一中斷要求信號至該控制電路后,該控制電路以該總線讀取該封包。
7.根據(jù)權(quán)利要求5所述的控制器的控制方法,其特征在于,該總線為一內(nèi)部整合電路總線或者一系統(tǒng)管理總線。
8.根據(jù)權(quán)利要求5所述的控制器的控制方法,其特征在于,該第一輸入端為一主要PS/2輸入端,或者一輔助PS/2輸入端。
全文摘要
本發(fā)明為一種控制器及其相關(guān)控制方法。此控制器包括一第一輸入端,連接至一第一裝置。一第一緩沖單元,連接至該第一輸入端,以接收該第一裝置產(chǎn)生的一第一字節(jié)。一定時器,連接至該第一輸入端,當(dāng)該第一緩沖單元收到該第一字節(jié)時,該定時器啟動一設(shè)定時間開始計時,若該設(shè)定時間內(nèi)第一緩沖單元收到一第二字節(jié),則重新啟動該設(shè)定時間;若該設(shè)定時間內(nèi)第一緩沖單元沒收到該第二字節(jié),則送出一超時信號。以及一封包處理電路,根據(jù)該超時信號,將該第一緩沖單元中的所述字節(jié)組合成一第一封包,并產(chǎn)生一中斷要求信。
文檔編號G06F13/24GK102799548SQ20111015230
公開日2012年11月28日 申請日期2011年5月27日 優(yōu)先權(quán)日2011年5月27日
發(fā)明者林偉智 申請人:華碩電腦股份有限公司