中文字幕无码日韩视频无码三区

單片微機固件處理方式與硬件裝置的制作方法

文檔序號:6406717閱讀:259來源:國知局
專利名稱:單片微機固件處理方式與硬件裝置的制作方法
技術領域
本發明提供的鍵盤界面中時鐘脈沖(CLOCK)線與數據(DATA)線之信號能同時正常工作于網路(NOVELLORWORKSTATION)和非網路系統中的單片微計算機固件處理方式與硬件裝置,為一種固件設計,能自由配合同一信號線作輸入、輸出硬件線路及輸入與檢測點分開的硬件線路,且皆能使鍵盤同時正常工作于網路伺服母機(FILESERVER)與非網路連線,無漏字與遲緩輸入情形,具有產業上的利用價值。
一般電子計算機主機系統與鍵盤非同步(ASYNCHORNIOSM)輸出、輸入界面,皆遵循兩個世界公認的時鐘脈沖線與數據線而做裝置之間傳送信號數據的通道,如

圖1-3所示,(a)為XT方式(b)為AT方式。(a)項為非同步單向傳輸(twowaretransmition)方式。以下先敘述(a)項。
非同步單向傳輸(asynchronismonewaretransmition)方式,其數據線在正常狀態下永遠由鍵盤引至低電位,而時鐘脈沖線則為高電位。當鍵盤欲送數據至系統時,則將時鐘脈沖線引至低電位,再將數據線升至高電位,而后回復時鐘脈沖線至高電位,開始送出九個位元(一個起始位元,八個數據位元)。而當主機將時鐘脈沖線拉至低電位并持續一段時間,則鍵盤應自動回位。如(a)項線所述傳輸方式之系統,不論有無接上網路,其輸出、輸入方式皆相同,因而在已知技術中皆可用許多不同方法輕易完成。但(a)項之系統因其執行速度太慢,市場上已漸漸不再使用。反之使用(b)項傳輸方式之系統,因其速度可達到使用需要,故目前不管是否連接網路,皆被大量使用。而不連接網路,在已知技術中亦皆可用許多不同方法完成。一旦(b)項傳輸方式之系統連接上網路,又被使用者定成連線伺服母機時,因各型不同的相容系統執行速度上的差異,已知技術即無法真正能達到使用者的需要。
(a)和(b)項傳輸方式之系統未接上網路時,在已知技術中有兩種硬件連接鍵盤的方式,如下圖(a)及(b)項系統共用之接線方式如圖4和圖5所示。
圖4和圖5的硬件接法的差別在于圖5接法可節省兩條檢測線,硬件設計上較簡便。但因圖4為輸出與檢測點分開之方式,其固件在使用無位元處理(BITCTRL)指令組的單片微計算機時,執行速度較快,當連接上網路時,雖仍有問題,但發生幾率較少(視系統的執行速度而定)。而圖5接法若使用無位元處理指令組的單片微計算機時,執行于網路時問題就很多了。
宏基電腦公司申請的專利(案號為123263)即是使用無位元處理組的單片微計算機,其中運用了圖5硬件連接技巧,其目的是為了節省生產測試成本,然而在固件上仍延用一般已知的技藝流程,故當工作于網路上而快速敲鍵時,熒幕上顯示的字體速度即發生忽而正常,忽而減慢之情形,常會困擾使用者。[圖4硬件接法,接上網路將視主機而定,當有問題時,情形亦同。]以下敘述(b)項與網路由圖2和3可以看出(b)項之數據線與時鐘脈沖線的定義方式,現說明如下(1)由圖2可看出,若系統未下任何命令時,其數據線與時鐘脈沖線將保持在高電位狀態。
(2)由圖2可看出,若鍵盤欲送出數據,則將先判斷數據線與時鐘脈線是否同時為高電位,若同時為高電位,則開始送出數據(一個起始位元,八個數據位元,一個同位元,一個停止位元),而起始位元將永遠為低電位。送完碼后,鍵盤必須再將數據線與時鐘脈沖線拉回至高電位。若當鍵盤開始送數據前,檢測數據線為低電位,時鐘脈沖線為高電位,則為系統欲送出命令指標,鍵盤要將欲送出的數據留存于緩沖器中,停止送出數據,而去接收系統命令。若當鍵盤開始送出數據前,檢測數據線為高電位,時鐘脈沖線為低電位,則為系統禁止鍵盤送碼,鍵盤停止送出數據,同樣將欲送出的數據留存于緩沖器中,而去執行掃描鍵盤的動作。若于開始送資料前,檢測數據線與時鐘脈沖線同時為低電位,則為不穩定狀態,鍵盤亦禁止送碼,同樣地將數據留存于緩沖器中,去執行掃描鍵盤的動作。
(3)由圖3可看出,其時序指出系統送出命令碼至鍵盤的方式。系統先將時鐘脈沖線拉至低電位,告知鍵盤中止送數據的動作,之后再將數據線亦拉至低電位,而時鐘脈沖線則回復高電位,即設定欲送出命令指標去告知鍵盤系統欲送出命令,然后開始送出命令(一個起始位元,八個數據位元,一個同位元,一個停止位元),起始位元永運為低電位,而時鐘脈沖線的控制乃由鍵盤提供。
由以上(1)到(3)即可了解(b)項系統與鍵盤間的信號傳送方式。
以下(在非網路連線基礎上)再敘述網路連線當(b)項之系統連上網路后,系統又被定為伺服母機時,因為系統要同時照顧其它子機系統,故為了增加其執行速度,往往要使周邊各界面暫時除能,而以時間分工方式再個別致能,所以鍵盤亦會同樣以時間分工方式致能或除能,故可以由圖6和7看出其致能與除能的時序。由圖6可以看到時鐘脈沖線被系統時而拉至低位,時而回復高位,而數據線一般不改變,保持高位。前面已敘述過(b)項系統與鍵盤間信號的傳送方式,所以可以了解,當時鐘脈沖線被拉至低位時,鍵盤將停止送出數據,故在網路中只有當數據線與時鐘脈沖線同時為高位時,鍵盤才能送出數據。
在網路連線下由圖6和7可看出,時鐘脈沖線是以一個固定周期致能或除能的。由固定周期中可以看出,有一大一小的致能時間不斷反復循環,依不同的系統速度而有不同的時間差異,但原則上大的區段時間大約在40μS-168μS,小的區段時間大約在25μS-40μS之間,而致能與致能之間,時鐘脈沖拉至低位的時間大約為296μS→400μS(即除能之時間)。
若在除能時間,鍵盤欲送出數據,將會傳送失敗。我們若將系統使鍵盤致能時間與除能時間作一比較(對于目前速度最快的系統),可發現時鐘脈沖線大約是以25μS→400μS→40μS(致能→除能→致能)方式不斷循環,且除能時間遠大于致能時間。
于是,使鍵盤傳送數據時,若無法在那些極短致能時間內立即送碼,而是以隨機方式碰運氣,可能每次要傳送數據時,都剛好遇到系統的除能時間,可能導致循環了許多次后才能送出一個數據,從而熒幕上的字元顯示就會出現遲緩現象。為了防止這種現象,于是有了各種不同的解決方法,對于鍵盤傳送數據、掃描鍵盤和接收系統命令的優先順序也有了不同的爭議,但目前皆無法真正解決所有問題。本發明的目的,就是要解決上述所有的問題,使鍵盤傳送數據掃描鍵盤,接收系統命令的優先順序形成對等情況,而又沒有按鍵反應遲緩的問題。
以下再敘述已知技術在網路系統下鍵盤傳送數據的方式及其缺點方法(1)當鍵盤傳送數據時,若系統使鍵盤除能,則傳送失敗,于是去執行掃描鍵盤的工作。掃描鍵盤后,立即去接收系統命令,系統有命令則執行,若無命令則再一次送出數據,如此即每隔一段時間嘗試傳送數據一次。
缺點每隔一段時間嘗試傳送數據之方式,很可能會都遇上系統剛好在使鍵盤除能的時段,故要經過很多次嘗試傳送后,才能傳送出一個數據,效率非常低,致使使用者感覺按鍵有遲緩現象。
方法(2)當鍵盤傳送數據時,若系統使健盤除能,則傳送將失敗,但鍵盤仍不動作,一直等待時鐘脈沖線回復至高電位。待時鐘脈沖線回復至高電位時(系統使鍵盤致能),則立即將數據送出去,然后再去執行掃描鍵盤,接收命令……等工作。
缺點上述(2)之方法雖然可以立即方式送出資料,但當系統在執行部分特殊的套裝軟件時,往往會有較長時間使鍵盤除能的情況(即將時鐘脈沖線拉至低電位一段較長時間),而以上述(2)之方式,鍵盤就將花較長時間不作任何工作地在等待時鐘脈沖線回復至高電位。使用者每按一個鍵后放開大約50ms,鍵盤若等待時間大于50ms,而在等待時間又不能去做掃描鍵盤的工作,則可能會忽略使用者已按多次鍵,因此會使使用者有按鍵無動作之困擾(即漏掉了字元。若有掃描,而系統使鍵盤除能,鍵盤應將數據存于緩沖器內,等待傳送數據)。
本發明鑒于上述缺點,特提供一種鍵盤界面中時鐘脈沖線與數據線的信號能同時正常工作于網路與非網路系統中的單片微計算機固件處理方式與硬件裝置。
例如,本發明可針對鍵盤界面中非同步時鐘脈沖線與數據線之信號,選擇性地利用一些單片微計算機族系(凡具有位元處理指令組,即擁有布林(BOULIN)代數處理器,可對單一位元處理者),經由一個單一位元邏輯控制指令組的運作,以即時性的方式,經同一信號線去檢測或設定外部狀態,或分開兩條信號線(傳輸線(TX)與檢測線(PX)),使用無位元處理指令組之單片微計算機,并利用固件技術,使鍵盤能同時正常工作于網路和非網路系統中,從而簡化硬件線路,使鍵盤以最有效率的速度工作于網路系統和非網路系統中。
現結合附圖對本發明實施例說明如下。其中圖6為本發明在網路連線下的伺服母機、鍵盤與系統間的偶而時序圖之一。
圖7為本發明在網路連線下的伺服母機、鍵盤與系統間的介面時序圖之二。
圖8-1為本發明在網路連線下的伺服母機和鍵盤送出數據的時序圖之一。
圖8-2為本發明在網路連線下的伺服母機和鍵盤接收系統命令的時序圖。
圖9-1為本發明在網路連線下的伺服母機和鍵盤送出數據的時序圖之二。
圖9-2為本發明在網路連接下的伺服母機、鍵盤傳送和接收數據的時序圖。
圖10為本發明單片微計算機鍵盤軟件流程圖之一。
圖11為本發明單片微計算機鍵盤軟件流程圖之二。
圖12為本發明單片微計算機鍵盤軟件流程圖之三。
圖13為本發明單片微計算機鍵盤軟件流程圖之四。
圖14為本發明單片微計算機鍵盤軟件流程圖之五。
圖15為本發明單片微計算機鍵盤軟件流程圖之六。
圖16為本發明單片微計算機鍵盤軟件流程圖之七。
圖17為本發明單片微計算機鍵盤軟件流程圖之八。
本發明使用之技巧為(以下方法,不論使用硬件線路為(1)或(2)之方式皆可共用。)(a)鍵盤欲送出數據時,先將時鐘脈沖線與數據線拉至高電位,設定一個至少作三次運作的指標。
(b)設定一個工作時間常數為480μS,再檢測數據線是否為低電位,若是,則設定一個傳送失敗指標,重覆嘗試傳送三次,在皆失敗時則去執行收命令之動作;若數據線為高電位,則檢測時鐘脈沖線為何電位,若為高電位,則立即傳送,而傳送中若有失敗,則再回到(a)點重復做三次;若檢測為低電位,則等待480μS,并不斷反復檢測數據線和時鐘脈沖線的電位,若到480μS皆失敗,則再回至(a)點重復三次。
(c)若重復三次動作,仍無法將數據送出,則放棄傳送數據而去執行掃描動作。
本發明的實際動作分析(a)由圖6和7之時序來看,鍵盤欲傳送數據時間可能在任何一點上發生,若發生在大區段致能區間時,一定可順利送出數據;但若在大區段之末端發生時,鍵盤雖檢測到時鐘脈沖線為高電位,數據線亦為高電位,但檢測時指令之執行亦要花費時間,待鍵盤準備好送出第一個起始位元時,可能已經來不及,這時系統使看大區段的致能時間結束(時鐘脈沖又拉至低電位),從而導致傳送失敗。但本發明之實際動作立即又等待480μS,由圖6和7可看出等待480μS一定又會遇到一次致能時段,則可立即將數據送出。若第二次準備傳送時所遇到的致能時段為系統致能鍵盤之小區段時,因系統太快,使小區段根本不包含最基本檢測時間,即已超出其時段,于是又會使傳送失敗。若這種情形發生時,本發明又會等待480μS,則這一次的致能區段一定是大區段,必能使數據送出去。但若傳送三次,費時480μSX3=1440μS又失敗,則一定是系統在執行套裝軟件,故意使鍵盤除能,這時立即進行掃描鍵盤工作,并將掃描到的鍵存于緩沖區內(本發明固件所定之緩沖區至少有40個以上空間),等系統一使鍵盤致能后,立即由緩沖區內提出數據送出。這樣一來,數據至多在1440μS即可傳送完成,效率非常高,無論使用者按鍵的速度有多快,絕不會發生顯示輸入遲緩的現象,亦不會有按鍵漏字之顧慮。
(b)若是系統欲送命令至鍵盤時,正如上文曾敘述過的,系統將把數據線拉至低電位,而本發明將于每次欲送數據的同時,首先檢測數據線的電位,若為低電位則立導跳出等待480μS,副程式不作等待。重復執行三次跳出動作后,立即去接收系統命令,因而亦可以即時接收到來自系統的命令。
(c)圖8和9為本發明實際執行后的時序圖,供參考。為了能夠對本發明有充分了解,現配合流程圖說明固件程式。
圖10所示為流程圖的啟始程式段。該程式為開機后,先測試只讀記憶體,再測試程式記憶體,再設定各腳位狀況,再將蜂鳴器控制腳關閉,延遲開機設定時間,設定各鍵初始狀況,設定指示燈初始狀況(包含將初始開機碼輸入緩沖器及重復出字速度初值設定旗號),再判斷主機為何種型式?若為XT主機,則執行XT相關程式(B),若為AT/PS2主機,則判斷主機是否下命令給鍵盤?若下命令,則執行獲取主機命令及執行命令段(C)(參見圖12);
若沒下命令,則判斷鍵盤是否除能?若為除能,則執行獲取主機命令及執行命令段(C);
若鍵盤致能,則判斷緩沖器內有無數據?若有數據則執行送碼程式段(E)(參見圖13);
若無數據則執行掃描鍵盤程式段(F)(參見圖11)。
圖11所示為流程圖的掃描鍵盤程式段。該程式為先設定主掃描旗號,再掃描一條線,重設指示燈狀況,然后判斷是主掃描或跳鍵掃描;
若未設定主掃描旗號,則執行消除跳鍵掃描(O)(參見圖16),再判斷是否有按鍵?若無按鍵則比較原來的各鍵狀況;
如果相同則沒有鍵被放掉,掃描指標加一再掃下一條,并至(H)(參見圖10)繼續執行;
如果不相同,則有鍵被放開,繼續執行消除跳鍵處理程式
(G)(參見圖16);
若有按鍵,再與原來的各鍵狀況比較;
若相同則有鍵重復出字,執行重復出字程式段(G1),重復出字程式段(G1)是將重復出字速率旗號減1并判斷是否為零?若不為零則執行(I),掃描指標加一掃下一條線,并至(H)(參見圖10)繼續執行;
若為零則判斷緩沖器內有無數據?若有則執行(J),設定重復出字起始等待時間旗號,并至(I)繼續執行;
若無則判斷是否為特別鍵?若不是特別鍵,則將緩沖器內放入按鍵碼并執行(J),設定重復出字起始等待時間旗號,并至(I)繼續執行;
若是特別鍵,則緩沖器放入EQH值數據并于緩沖器內放入按鍵碼再執行(J),設定重復出字起始等待時間旗號,并至(I)繼續執行。
若不相同則有新鍵按下,繼續執行消除跳鍵處理程式(G)。
由處理重復出字速率程式段(G1)看出,若要判斷有母鍵或子鍵,當有任一鍵被按下時,在程式內僅需將5個不同的值放入重復出字速率旗號內,重復出字速率即立即更新。可由掃描鍵盤(F)看出,當按下一鍵,且將蜂鳴器控制線切換到高位時,則開始發出“喀喀”聲,但程式執行到F處時即可關閉,一般響聲長度大約為2μS±20%。
圖12所示為流程圖的獲取主機命令及執行命令程式段。該程式為首先讀入由主機傳來的命令碼,若讀入失敗,則執行(K)(參見圖10),判斷鍵盤是否除能并往下執行;
若讀入成功,則判斷為第一命令碼或第二命令碼?若為第二命令碼?則執行(L);
若為第一命令碼,則判斷命令是否為F1或EF;
若是,則送出重輸碼后執行(K),判斷鍵盤是否除能并往下執行;
若不是,則判斷是否為FE;
若是,則送出前組輸出碼;
若不是,FE則送出命令回應碼FAH;
若送出失敗,則重新讀入新命令;
若讀入成功則執行(M),判斷為第一命令碼或第二命令碼并繼續執行下去;
若讀入失敗則執行(N),判斷命令是否為F1或EF并往下執行;
若送出成功,則判斷命令型式為二組或一組;
若為二組命令碼,則設定二組命令旗號并執行(K),判斷鍵盤是否除能并往下執行;
若為單一命令碼,則執行各命令工作,并執行(K),判斷鍵盤是否除能并往下執行。
其中XXH為系統送至鍵盤的各命令的16進制碼,當鍵盤收到后,則依命令的規定工作,例如EEH送出回應碼、F2H送出設定碼、FFH重設鍵盤……等。
圖13所示為流程圖的網路處理程式段(E)。該程式為首先處理網路程式段;
若有連接網路,則呼叫網路副程式(P);
若無則呼叫送碼副程式(R),返回后送碼;
若送碼失敗,則執行(F)的掃描鍵盤程式(參見圖11);
若送碼成功,則執行碼與碼之間作時間延遲,再將緩沖器旗標減一,執行掃描鍵盤程式(F);
其中送碼副程式(R)為先自動去判斷為何種系統之送碼方式并執行,然后送出八個數據碼,再判斷是否為AT/PS2?若不是,則返回送碼程式;
若是,則送出位元檢查旗號后值后返回網路處理程式段。
而其中網路副程式(P)為先設定網路計數器并設定時間,再呼叫送碼副程式(R)并判斷有無系統命令,再送出鍵碼;
若成功則執行(Q)的碼與碼之間作時間延遲并往下執行;
若送出鍵碼失敗,則網路計數器減1;
若不為零則回到呼叫送碼副程式(R),并判斷有無系統命令并往下執行;
若為零則返回網路處理程式段。
在送出鍵碼(E)之同時,若鍵盤有數據線和時鐘脈沖線被拉至高電位時,皆可立即再檢測其電位為何?若有與高電位不同的情況,則視為傳送失敗,并立即停止傳送而回至網路處理程式段。
圖14所示為流程圖的有鍵按下之模式判斷程式段。該程式為當有鍵被按下時,先判斷是否為模式3?若是模式3,則判斷是否要重復出字;
若不要重復出字,則將鍵碼放入緩沖器內,再判斷緩沖器是否已滿?若不是則找尋同一列有無鍵被按?若有鍵被按則執行(S),判斷按鍵或放鍵(參見圖16)?若無鍵被按則計算并設定重復出字速率旗號值,并執行(I)的掃描指標加一,掃下一條并往下執行(參見圖11);
若緩沖器已滿,則放入溢位指示碼入緩沖器最上層,并找尋同一列有無鍵被按?并往下執行;
若要重復出字,則判斷重復出字發聲旗號是否已設定?若已設定則蜂鳴器致能線拉至高位,致能蜂鳴器發聲,然后設定致能重復出字旗標,再將鍵碼放入緩沖器內,然后往下執行;
若未設定則直接設定致能重復出字旗標,并將鍵碼放入緩沖器內,并往下執行;
若不是模式3,則判斷是否為特殊鍵?若不是特殊鍵,則判斷重復出字發聲旗號設定否?并往下執行;
若是特殊鍵,則呼叫特殊鍵處理程式(W),再設定特殊鍵重復出字旗號,然后將鍵碼放入緩沖器內,并往下執行。
圖15所示為流程圖的有鍵放開之模式判斷程式段。該程式為當有鍵被放開時,先判斷是否為模式3?若是,則判斷是否要送出解除碼?若不要送出解除碼,則判斷同一列是否有其他鍵放開?若有則執行(S)(參見圖16),判斷按鍵或放鍵并往下執行;
若無其他鍵放開,則執行(I)的掃描指標加一,掃下一條并往下執行(參見圖11);
若要送出解除碼,則放入解除碼于緩沖器內,再判斷同一列是否有其他鍵放開并往下執行?
當判斷為非模式3,則判斷是否為特殊鍵?若不是,則放入解除碼于緩沖器內,并往下執行;
若為特殊鍵,則呼叫特殊鍵處理副程式(X),再放入解除碼于緩沖器內,并往下執行。
圖16所示為流程圖的消除跳鍵處理程式段。該程式為首先呼叫消除跳鍵掃描程式,再執行跳鍵消除轉換,然后判斷有無鬼鍵?若有,則判斷是否重復出字?若有則執行(R)送碼副程式(參見圖113;
若無重復出字則執行(I)掃描指標加一掃下一條并往下執行。若無鬼鍵,則設定母鍵及相關旗號并執行母鍵程式(Z)(參見圖17),然后判斷主機為何種系統?若為XT,則找鍵碼后執行(S),判斷是按鍵或放鍵并往下執行;
若為AT/PS2,則判斷是何種模式?然后尋找鍵碼,再判斷是按鍵或放鍵?若為放鍵,則執行模式判斷程式(T)(參見圖15);
若為按鍵,則執行模式判斷程式(U)(參見圖14)。
圖17所示為流程圖的處理特異功能程式段。該程式為首先設定CPRL、ACT、SHIFT、NUMLOCK旗號,再判斷母鍵是否按下?若未按下,則判斷鎖定旗號是否為鎖定狀況?若是,則至設定母鍵及相關旗號(Z)繼續執行;
若否,則往下執行;
若按下,則判斷特定子鍵是否有按下?若子鍵1-5按下,則改變重復出字速率參數值;
若子鍵6、7按下,則改變鎖定鍵盤旗號;
若子鍵8按下,則改變蜂鳴器致能旗號及控制線;
若子鍵9按下,則改變重復出字發聲旗號。
若其他未定義子鍵按下,則繼續循環探測,直至有定義子鍵按下,或母鍵放掉。
若子鍵未按下,則繼續循環探測,直到有定義子鍵按下,或母鍵放開。
若母鍵放開,則執行判斷鎖定旗號是否為鎖定狀況(Z1)?并往下執行。
經以上描述,可以充份了解本發明所提供之技術的各項優點。本發明所提出的方法,可以實際達到本發明的目的。
權利要求
一種鍵盤界面中時鐘脈沖線與數據線之信號能同時正常工作于網路和非網路系統中的單片微計算機固件處理方式與硬件裝置,其特征在于,針對鍵盤界面中非同步時鐘脈沖線與數據線之信號,選擇性地利用一些單片微計算機族系(凡具有位元處理指令組,即擁有布林(BOULIN)代數處理器,可對單一位元處理者),經由一個單一位元邏輯控制指令組的運作,以即時性的方式,經同一信號線去檢測或設定外部狀態,或分開兩條信號線(傳輸線(TX)與檢測線(RX)),使用無位元處理指令組之單片微計算機,并利用固件技術,使鍵盤能同時正常工作于網路和非網路系統中,從而簡化硬件線路,使鍵盤以最有效率的速度工作于網路系統和非網路系統中。
全文摘要
鍵盤界面中時鐘脈沖線與數據線之信號能同時正常工作于網絡和非網絡系統中的單片微機固件處理方式與硬件裝置,針對界面中非同步時鐘脈沖線與數據線信號,選擇利用單片微機族系,經單一位元控制指令組,以即時性方式經同一信號線檢測或設定外部狀態,或分開兩條信號線,用無位元處理指令組之單片微機,并用固件技術,使鍵盤能同時正常工作于網絡和非網絡系統中,從而簡化硬件線路,使鍵盤以最有效的速度工作于網絡和非網絡系統中。
文檔編號G06F3/023GK1074543SQ9211128
公開日1993年7月21日 申請日期1992年9月30日 優先權日1991年11月13日
發明者陳振文 申請人:陳振文, 旭麗股份有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1