當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件

  摘 要: 在深入分析掃描鍵盤工作原理的基礎(chǔ)上,給出了一款結(jié)構(gòu)經(jīng)參數(shù)化的全功能硬件掃描鍵盤控制器的實現(xiàn)方案、參數(shù)化方法與仿真結(jié)果,并由此闡明了IP核設(shè)計的一般步驟。實際應(yīng)用表明,所實現(xiàn)的IP核經(jīng)例化后消耗的硬件資源少、使用靈活、工作可靠,可在一定程度上簡化大型系統(tǒng)的軟硬件開發(fā)過程。此外,設(shè)計中使用的原則、方法與技巧對同類設(shè)計乃至大型設(shè)計有較好的參考價值。
  關(guān)鍵詞: 掃描鍵盤 控制電路 IP核 CPLD/FPGA HDL


  IP(Intellectual Property),即常說的知識產(chǎn)權(quán)。在PLD領(lǐng)域中,IP核是指將數(shù)字系統(tǒng)中常用但比較復(fù)雜的一些功能塊設(shè)計成參數(shù)可調(diào)并以HDL源文件或加密網(wǎng)表形式存在的可供其他用戶直接調(diào)用的軟件模塊。由于已經(jīng)過嚴(yán)格的測試和優(yōu)化,使用IP核可以顯著減小設(shè)計和調(diào)試時間,提高開發(fā)效率,降低產(chǎn)品成本。本文以一款結(jié)構(gòu)經(jīng)參數(shù)化的全功能硬件掃描鍵盤控制器的開發(fā)為例,闡述IP核設(shè)計的一般方法與步驟。
1 設(shè)計的意義與可行性
  鍵盤是計算機系統(tǒng)中最常用的人機交互輸入設(shè)備。在嵌入式系統(tǒng)中,用R+L條口線實現(xiàn)R×L個按鍵的掃描鍵盤的應(yīng)用最為廣泛。與線性鍵盤相比,掃描鍵盤中I/O口線的利用效率有了較大的提高,在一定程度上緩解了I/O引腳短缺的問題,但其傳統(tǒng)實現(xiàn)方案的缺點是需要MPU的相應(yīng)掃描控制程序來配合。為了響應(yīng)輸入,系統(tǒng)實質(zhì)上工作于一種循環(huán)查詢模式,不但占用了較多的MPU處理時間,也增加了系統(tǒng)的功耗。在一些處理任務(wù)量大、對功耗又極為敏感的系統(tǒng)中,這是不能接受的。
  一方面,通用鍵盤接口芯片(如8279、HD7279A)功耗較大,使用靈活性差;另一方面,可編程邏輯器件在規(guī)模、速度和功耗等性能方面已遠(yuǎn)超出通用邏輯芯片。所以越來越多的大型數(shù)字系統(tǒng)采用CPLD/FPGA構(gòu)建,且系統(tǒng)中可編程邏輯器件的硬件資源通常都有一定剩余,這使得在不增加成本的基礎(chǔ)上,實現(xiàn)一款硬件掃描鍵盤控制器成為可能。在智能多芯電纜檢測儀的研制過程中,一款這樣的全功能硬件掃描鍵盤控制器便得以成功實現(xiàn)。下面詳細(xì)介紹其工作原理和實現(xiàn)過程。
2 工作原理及功能要求
2.1 掃描鍵盤工作原理
  以4×4掃描鍵盤為例,工作原理如圖1所示,其中P0~P3為輸出口,P4~P7為輸入口。無按鍵按下時,輸入口被上拉為高電平。輸出口以一定頻率循環(huán)輸出0111、1011、1101、1110。通過讀輸入口的狀態(tài),便可判斷擊鍵情況。如輸出0111時,輸入口的16種狀態(tài)與擊鍵的對應(yīng)關(guān)系如表1所示。單列線的掃描頻率(記為Fs)一般應(yīng)界于50~400Hz之間。


2.2 按鍵的去抖動問題
  由于觸點的彈性作用,機械按鍵在閉合和斷開瞬間會產(chǎn)生抖動,實際電壓波形如圖2所示。其中T1、T2、TS分別為前沿抖動時間、后沿抖動時間和按鍵穩(wěn)定時間。T1、T2取決于觸點的機械特性,一般為5~12ms;TS則主要取決于擊鍵速度的快慢和按鍵按下時間的長短。統(tǒng)計研究表明,以正常速度擊鍵時,T1、T2、TS之和一般不小于12ms。


  按鍵抖動引起的最大問題是一次擊鍵被誤識別為多次擊鍵,因此應(yīng)避免在抖動期T1、T2內(nèi)對輸入行線狀態(tài)進行采樣。去抖動電路的設(shè)計是硬件掃描鍵盤控制器設(shè)計中的關(guān)鍵之一。
2.3 全功能鍵盤控制器的功能要求
  在鍵盤使用過程中,實際擊鍵情況有兩種:單擊和連擊。單擊時用戶希望通過短時間擊鍵只產(chǎn)生一個有效鍵值;連擊時用戶長時間按下按鍵,希望持續(xù)快速產(chǎn)生多個有效鍵值。為方便使用,鍵盤設(shè)計應(yīng)區(qū)分快速單擊和持續(xù)連擊:兩者都用來快速產(chǎn)生多個鍵值,區(qū)別在于擊鍵的動作和使用的場合。前者要求每次單擊后釋放按鍵,常用于參數(shù)小范圍內(nèi)的精調(diào);而后者則要求按鍵長時間保持在按下狀態(tài),以實現(xiàn)參數(shù)大范圍內(nèi)的快速調(diào)節(jié)。
  連擊過程如圖2所示,其中tJ為去抖時間,即從擊鍵起到產(chǎn)生第一個有效鍵值的最小時間間隔,tF和tS分別為首次重復(fù)延時和持續(xù)連擊時間間隔。三者的取值要求參見表2。


  除上述要求外,全功能掃描鍵盤控制器還要求能識別多鍵同擊的情況。出于簡化設(shè)計的目的,本設(shè)計僅考慮同列按鍵的多鍵同擊問題。解決此問題的辦法是使R×L掃描鍵盤(R為輸入行線數(shù),L為掃描列線數(shù))可以識別的等效按鍵數(shù)從R×L增加到(以4×4為例,從16個增加為60個)。
3 IP核的實現(xiàn)
3.1 硬件實現(xiàn)
  全功能硬件掃描鍵盤控制器由3個計數(shù)器(分頻計數(shù)器、延時計數(shù)器和掃描計數(shù)器)、2個標(biāo)志寄存器(連擊標(biāo)志寄存器和中斷標(biāo)志寄存器)、1個鍵值鎖存器和相應(yīng)組合邏輯電路組成。其結(jié)構(gòu)框圖如圖3所示。圖中,對外提供5組(或個)信號引腳:clk和DB通常與CPLD/FPGA中的其他模塊公用,前者用于同步時鐘信號的輸入,后者用于鍵值的輸出;INT、Row和Line是鍵盤控制器的專用引腳,分別用于中斷輸出、掃描列線輸出和上拉行線輸入。其中行線的上拉電阻既可以選用外部電阻,也可以使用IOE(Input Output Element)中可編程選擇的自帶上拉電阻。


  考慮到CPLD/FPGA器件的硬件資源特點和HDL(Hardware Description Language)的編程原則,掃描鍵盤控制器整體上采用同步設(shè)計方案,所有觸發(fā)器均由輸入時鐘信號clk(頻率為Fclk)驅(qū)動。由于輸入頻率較高,通常需要對其進行分頻處理(分頻系數(shù)為N)。本設(shè)計沒有直接采用傳統(tǒng)意義上的分頻計數(shù)器,而是用分頻計數(shù)器(位數(shù)為Ndiv)的輸出,控制其他觸發(fā)器的時鐘允許信號(可理解為只有當(dāng)分頻計數(shù)器計數(shù)至N-1時,其他觸發(fā)器的時鐘信號才有效,見圖3)來實現(xiàn)等效分頻(等效分頻頻率為Fd)。與前者相比,此方法有以下優(yōu)點:①實現(xiàn)了分頻系數(shù)以1為增量的連續(xù)可調(diào)(前者可實現(xiàn)的分頻系數(shù)通常為2的n次冪);②在消耗相同硬件資源的情況下,最大分頻系數(shù)提高了1倍;③避免了在同一設(shè)計中出現(xiàn)多個全局時鐘信號,為高效的器件適配和布局布線提供了保證。當(dāng)無需鍵盤輸入時,只要關(guān)斷clk信號,掃描鍵盤控制電路便進入低功耗模式。圖3中符號“||”所代表的節(jié)點的信號便是用于等效分頻的內(nèi)部信號,它是由分頻計數(shù)器的輸出經(jīng)過組合邏輯電路產(chǎn)生的。
  掃描計數(shù)器(位數(shù)為Nscan)和譯碼器用于列線的自動掃描。無按鍵時,掃描計數(shù)器以頻率Fd計數(shù),計數(shù)值經(jīng)譯碼輸出使列線處于自動掃描狀態(tài);有擊鍵時,掃描計數(shù)器立即停止計數(shù),直到所有按鍵被釋放。當(dāng)log2 L為小數(shù),即計數(shù)器可表示的狀態(tài)數(shù)大于列線數(shù)時,譯碼器為部分譯碼,掃描計數(shù)器計至(L-1)時需要被同步復(fù)位。
  按鍵檢測電路用于擊鍵的檢測,是用組合邏輯電路實現(xiàn)的。無擊鍵時,它異步復(fù)位延時計數(shù)器和連擊標(biāo)志寄存器;有按鍵按下時,它使掃描計數(shù)器停止計數(shù)。
  延時計數(shù)器(位數(shù)為Ndelay)和連擊標(biāo)志寄存器與相應(yīng)組合邏輯電路配合,完成去抖和鍵值鎖存控制,是本設(shè)計的關(guān)鍵。首先根據(jù)表3確定去抖計數(shù)值M、連擊首次延時計數(shù)值P和持續(xù)連擊間隔計數(shù)值Q。有按鍵按下時,相應(yīng)異步復(fù)位信號無效,延時計數(shù)器開始計數(shù)(前沿抖動可能導(dǎo)致計數(shù)器被再次復(fù)位)。計數(shù)至(M-1)時掃描鍵值(掃描計數(shù)器輸出+鍵盤行線輸入)被同步鎖存,同時置位中斷標(biāo)志寄存器;若按鍵仍處于按下狀態(tài),繼續(xù)計數(shù)到(P-1)后,在等效分頻時鐘的下一上升沿,置位連擊標(biāo)志寄存器和中斷標(biāo)志寄存器、鎖存掃描鍵值,并復(fù)位延時計數(shù)器;待重新計數(shù)至(Q-1)后,再次同步置位中斷標(biāo)志寄存器、鎖存掃描鍵值、復(fù)位延時計數(shù)器。重復(fù)上述步驟三,連續(xù)產(chǎn)生鍵值直到所有按鍵被釋放。
  鍵值鎖存器(位數(shù)為Nkey)用于掃描鍵值的暫存;中斷標(biāo)志對應(yīng)于INT引腳輸出,既可供MPU查詢也可用于向MPU提出中斷請求。當(dāng)然,通過DB總線讀相應(yīng)內(nèi)部標(biāo)志也可以判斷是否有新的鍵值產(chǎn)生。為使鍵盤能夠及時響應(yīng)新的輸入,本設(shè)計提供兩種鍵值鎖存器和中斷標(biāo)志復(fù)位機制:一是MPU讀取鍵值后,可用軟件方法立即復(fù)位;二是待分頻計數(shù)器再次計數(shù)至(C-1)時,自動實現(xiàn)兩者的同步復(fù)位,其中C為INT信號持續(xù)有效的輸入時鐘周期數(shù)。
3.2 結(jié)構(gòu)的參數(shù)化
  參數(shù)化是IP核設(shè)計過程中的重要一步,本設(shè)計使用到的參數(shù)可分為兩類:一類是外在參數(shù),直接由用戶根據(jù)實際需要指定,包括Fclk、Fs、R、L、C、tJ、tF、tS;另一類是對用戶透明的內(nèi)部參數(shù),由直接參數(shù)派生而來,多用于描述設(shè)計實體的規(guī)模和特性,包括N、Fd、M、P、Q、Ndiv、Nscan、Ndelay、Nkey。內(nèi)部參數(shù)的確定方法及參數(shù)間的相互關(guān)系如表3所示。


  按照圖3所描述的結(jié)構(gòu)與信號流向以及表3給出的參數(shù)確定方法,借助適當(dāng)?shù)腍DL(本設(shè)計采用VHDL)語句,將設(shè)計準(zhǔn)確地描述出來,便完成了掃描鍵盤控制器軟IP核的初步制作。
3.3 實例化及仿真
  在智能多芯電纜檢測儀的研制過程中,取掃描鍵盤參數(shù)如下:Fclk=32768Hz(clk信號由MSP430的輔助時鐘提供),F(xiàn)s=256Hz,C=31,R=L=4,tJ=16ms、tF=600ms、tS=200ms。選擇MAX EPM7512AETC144作為目標(biāo)器件,本設(shè)計在Altera Quartus II 5.0 sp1集成開發(fā)環(huán)境中順利通過了綜合、仿真和適配。由于鍵盤控制器屬低速電路,設(shè)置綜合參數(shù)為面積優(yōu)先(這里指綜合器可以適當(dāng)降低最高實現(xiàn)工作頻率,以減小PLD器件的硬件資源消耗),適配結(jié)果僅消耗30邏輯宏單元(Macro Cell),clk引腳允許輸入的最大時鐘頻率為68MHz。使用實踐表明:所實現(xiàn)的掃描鍵盤控制器使用方便、工作可靠。
  上文實際參數(shù)的綜合結(jié)果在時序仿真時需要耗費很長的時間,圖4給出了對應(yīng)于Fclk=4000Hz、Fs=250Hz、C=3、R=L=4、tJ=4ms、tF=6ms、tS=3ms的示意仿真波形。其中,按鍵抖動是用寬度為1ms的隨機信號模擬的。
  經(jīng)仿真和實踐驗證設(shè)計的正確性之后,編寫配套說明書,對設(shè)計文件作最后的封裝,至此便完成了全功能硬件掃描鍵盤控制器IP核的全部開發(fā)過程。


4 需要特別說明的兩個問題
  (1)設(shè)計中直接使用了組合邏輯電路的輸出來異步復(fù)位延時計數(shù)器和連擊標(biāo)志寄存器,這有可能因為時序競爭而導(dǎo)致設(shè)計失敗,在本IP核的實例化過程中,Quartus II軟件的設(shè)計輔助工具(Design Assistant)會給出嚴(yán)重警告信息。當(dāng)然,就CPLD/FPGA的開發(fā)原則來說,這種情況是應(yīng)當(dāng)極力避免的。但在本設(shè)計中,非但不會導(dǎo)致設(shè)計失敗,相反正是巧妙地利用了這一點,既可靠地解決了按鍵去抖問題,又極大地簡化了硬件的設(shè)計。首先,相對于硬件電路的反應(yīng)速度(ns級)而言,可以認(rèn)為多個按鍵被同時按下的情況是基本不存在的。顯然,當(dāng)組合邏輯電路的多個輸入端每一時刻僅有一個信號發(fā)生改變時,不會導(dǎo)致時序競爭。其次,即使出現(xiàn)時序競爭導(dǎo)致延時計數(shù)器被復(fù)位,由于它多因按鍵的抖動引起,此時的復(fù)位操作正是去抖所需要的,也即本設(shè)計對此處的時序競爭是不敏感的。
  (2)借助于IP核的使用特點和CPLD/FPGA器件的在系統(tǒng)編程(ISP)特性,在保證硬件掃描鍵盤控制器使用靈活性和通用性的基礎(chǔ)上,避免了在設(shè)計中引入可編程的控制寄存器,從而進一步簡化了設(shè)計,減小了硬件資源消耗。
  與基于MPU的傳統(tǒng)掃描鍵盤實現(xiàn)方案相比,硬件掃描鍵盤控制器工作時無需掃描程序配合,減輕了MPU負(fù)擔(dān),降低了系統(tǒng)功耗,同時也有效地緩解了I/O引腳短缺的問題。IP核的實現(xiàn),大大增加了本設(shè)計的通用性、可移植性和可重復(fù)利用性;巧妙的設(shè)計,保證了例化后占用非常少的硬件資源。從而為在不增加硬件成本的基礎(chǔ)上,簡化大型系統(tǒng)的軟硬件設(shè)計流程、縮短產(chǎn)品開發(fā)時間提供了一條新途徑。
  此外,更為重要的是,本文以一款結(jié)構(gòu)經(jīng)參數(shù)化的全功能硬件掃描鍵盤控制器的設(shè)計為例,從一般意義上闡述了IP核的設(shè)計方法、設(shè)計步驟與設(shè)計途徑。文中給出的參數(shù)數(shù)據(jù)和用到的設(shè)計原則、設(shè)計方法與設(shè)計技巧對同類設(shè)計乃至大型設(shè)計都有很好的參考和借鑒意義。
參考文獻
1 吳繼華,王 誠.Altera FPGA/CPLD 設(shè)計(高級篇)[M].北京:人民郵電出版社,2005
2 Quartus II Version 5.0 Handbook[EB/OL]. . Altera Corporation, 2005
3 MAX 7000A Programmable Logic Device Data Sheet[EB/OL].. Altera Corporation,2003

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉