《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 全功能硬件掃描鍵盤控制器IP核的實現
全功能硬件掃描鍵盤控制器IP核的實現
張志利, 侯傳勛, 蔡 偉, 王
摘要: 在深入分析掃描鍵盤工作原理的基礎上,給出了一款結構經參數化的全功能硬件掃描鍵盤控制器的實現方案、參數化方法與仿真結果,并由此闡明了IP核設計的一般步驟。實際應用表明,所實現的IP核經例化后消耗的硬件資源少、使用靈活、工作可靠,可在一定程度上簡化大型系統的軟硬件開發過程。此外,設計中使用的原則、方法與技巧對同類設計乃至大型設計有較好的參考價值。
Abstract:
Key words :

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


  IP(Intellectual Property),即常說的知識產權。在PLD領域中,IP核是指將數字系統中常用但比較復雜的一些功能塊設計成參數可調并以HDL源文件或加密網表形式存在的可供其他用戶直接調用的軟件模塊。由于已經過嚴格的測試和優化,使用IP核可以顯著減小設計和調試時間,提高開發效率,降低產品成本。本文以一款結構經參數化的全功能硬件掃描鍵盤控制器的開發為例,闡述IP核設計的一般方法與步驟。
1 設計的意義與可行性
  鍵盤是計算機系統中最常用的人機交互輸入設備。在嵌入式系統中,用R+L條口線實現R×L個按鍵的掃描鍵盤的應用最為廣泛。與線性鍵盤相比,掃描鍵盤中I/O口線的利用效率有了較大的提高,在一定程度上緩解了I/O引腳短缺的問題,但其傳統實現方案的缺點是需要MPU的相應掃描控制程序來配合。為了響應輸入,系統實質上工作于一種循環查詢模式,不但占用了較多的MPU處理時間,也增加了系統的功耗。在一些處理任務量大、對功耗又極為敏感的系統中,這是不能接受的。
  一方面,通用鍵盤接口芯片(如8279、HD7279A)功耗較大,使用靈活性差;另一方面,可編程邏輯器件在規模、速度和功耗等性能方面已遠超出通用邏輯芯片。所以越來越多的大型數字系統采用CPLD/FPGA構建,且系統中可編程邏輯器件的硬件資源通常都有一定剩余,這使得在不增加成本的基礎上,實現一款硬件掃描鍵盤控制器成為可能。在智能多芯電纜檢測儀的研制過程中,一款這樣的全功能硬件掃描鍵盤控制器便得以成功實現。下面詳細介紹其工作原理和實現過程。
2 工作原理及功能要求
2.1 掃描鍵盤工作原理

  以4×4掃描鍵盤為例,工作原理如圖1所示,其中P0~P3為輸出口,P4~P7為輸入口。無按鍵按下時,輸入口被上拉為高電平。輸出口以一定頻率循環輸出0111、1011、1101、1110。通過讀輸入口的狀態,便可判斷擊鍵情況。如輸出0111時,輸入口的16種狀態與擊鍵的對應關系如表1所示。單列線的掃描頻率(記為Fs)一般應界于50~400Hz之間。

 


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


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


  除上述要求外,全功能掃描鍵盤控制器還要求能識別多鍵同擊的情況。出于簡化設計的目的,本設計僅考慮同列按鍵的多鍵同擊問題。解決此問題的辦法是使R×L掃描鍵盤(R為輸入行線數,L為掃描列線數)可以識別的等效按鍵數從R×L增加到(以4×4為例,從16個增加為60個)。
3 IP核的實現
3.1 硬件實現

  全功能硬件掃描鍵盤控制器由3個計數器(分頻" title="分頻">分頻計數器、延時計數器和掃描計數器)、2個標志寄存器(連擊標志寄存器和中斷標志寄存器)、1個鍵值鎖存器和相應組合邏輯電路" title="邏輯電路">邏輯電路組成。其結構框圖如圖3所示。圖中,對外提供5組(或個)信號引腳:clk和DB通常與CPLD/FPGA中的其他模塊公用,前者用于同步時鐘信號的輸入,后者用于鍵值的輸出;INT、Row和Line是鍵盤控制器的專用引腳,分別用于中斷輸出、掃描列線輸出和上拉行線輸入。其中行線的上拉電阻既可以選用外部電阻,也可以使用IOE(Input Output Element)中可編程選擇的自帶上拉電阻。


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


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


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

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲午夜在线观看| 欧美成人一区二区三区在线观看| 欧美一区二区三区视频在线 | 久久精品欧美日韩精品| 亚洲免费在线精品一区| 亚洲桃花岛网站| 在线亚洲观看| 亚洲一区二区免费| 中文精品视频一区二区在线观看| 夜夜嗨av一区二区三区| 日韩系列在线| 夜夜嗨av一区二区三区四区| 日韩午夜激情电影| 一二三四社区欧美黄| 日韩视频一区二区三区在线播放免费观看| 在线观看欧美视频| 亚洲国产精品va在线看黑人动漫| 亚洲盗摄视频| 91久久国产自产拍夜夜嗨| 亚洲国产综合视频在线观看| 最新高清无码专区| 亚洲免费高清视频| 亚洲天堂免费观看| 亚洲欧美中文日韩在线| 亚洲欧美偷拍卡通变态| 欧美一级电影久久| 久久精品青青大伊人av| 亚洲国产成人在线播放| 亚洲激情成人网| 日韩视频亚洲视频| 亚洲一区二区三区中文字幕在线| 亚洲一区二区三区午夜| 欧美一区二区视频97| 老司机精品视频网站| 欧美二区乱c少妇| 欧美日韩中文在线观看| 国产精品久久网站| 国产一区二区在线免费观看| 在线欧美日韩精品| 日韩视频欧美视频| 亚洲欧美在线磁力| 亚洲国产一区二区三区高清 | 久久riav二区三区| 六月天综合网| 欧美日韩一区二| 国产日韩欧美在线一区| 欲色影视综合吧| 99精品久久久| 欧美一区二区视频免费观看| 亚洲精品女av网站| 亚洲欧美中文日韩在线| 久久亚洲精品视频| 欧美日韩精品免费看| 国产麻豆9l精品三级站| 亚洲成色777777女色窝| 一区二区三区高清在线| 久久激情综合网| 亚洲午夜日本在线观看| 久久久久国产一区二区三区| 欧美区国产区| 国产一区自拍视频| 日韩小视频在线观看| 久久精品av麻豆的观看方式| 亚洲无限av看| 欧美www视频在线观看| 国产精品成人一区二区网站软件| 国产有码一区二区| 亚洲狼人综合| 亚洲国产高清aⅴ视频| 亚洲综合精品四区| 欧美成人亚洲成人日韩成人| 国产精品夜色7777狼人| 91久久久久久| 久久国产精品毛片| 亚洲女优在线| 欧美大成色www永久网站婷| 国产日产亚洲精品系列| 日韩亚洲欧美在线观看| 亚洲大胆女人| 欧美一区二区三区免费视| 欧美紧缚bdsm在线视频| 国产真实久久| 亚洲综合成人在线| 洋洋av久久久久久久一区| 久久免费视频网| 国产精品一区二区三区免费观看| 亚洲看片网站| 亚洲激情在线观看视频免费| 久久av红桃一区二区小说| 欧美特黄一区| 亚洲日韩欧美视频| 亚洲国产欧美一区二区三区久久 | 欧美黄色aaaa| 一区免费观看视频| 亚洲欧美日韩专区| 亚洲一区三区电影在线观看| 欧美激情中文字幕一区二区 | 亚洲国产精品va在线看黑人动漫 | 亚洲精品影视| 亚洲国产欧美日韩精品| 久久99伊人| 国产乱码精品一区二区三| 亚洲色诱最新| 亚洲午夜电影网| 欧美日本三区| 亚洲国产成人高清精品| 亚洲国产精品成人久久综合一区| 久久精品成人一区二区三区蜜臀| 国产精品丝袜91| 亚洲视频一区在线观看| 一区二区三区久久久| 欧美激情综合网| 亚洲国产小视频| 亚洲三级国产| 欧美福利网址| 亚洲欧洲精品一区| 日韩视频免费看| 欧美精品一区二区三| 亚洲激情综合| 夜夜嗨av一区二区三区中文字幕 | 欧美福利一区二区三区| 亚洲电影av在线| 亚洲三级免费| 欧美精品激情| 亚洲肉体裸体xxxx137| 夜夜嗨av一区二区三区网站四季av | 亚洲久久成人| 亚洲天堂黄色| 国产精品久久久对白| 亚洲一区二区三区涩| 午夜视频一区| 国产欧美韩日| 欧美一区二区视频在线观看2020 | 久久综合亚州| 在线视频国产日韩| 亚洲精品三级| 欧美精品一区在线播放| 一本色道精品久久一区二区三区 | 国产欧美在线播放| 欧美亚洲一区二区三区| 久久在线视频| 亚洲黄色免费网站| 一本色道综合亚洲| 国产精品第一页第二页第三页| 亚洲一区精品在线| 久久精品一区蜜桃臀影院| 尤物精品在线| 国产精品99久久久久久久久久久久 | 国产视频精品免费播放| 亚洲大胆av| 欧美区一区二区三区| 中日韩高清电影网| 久久成人精品一区二区三区| 国户精品久久久久久久久久久不卡 | 欧美亚洲午夜视频在线观看| 玖玖精品视频| 亚洲美女性视频| 午夜性色一区二区三区免费视频| 国产一区二区三区自拍| 亚洲精品免费一区二区三区| 欧美视频一区二区| 欧美一区二区三区免费大片| 欧美国产一区二区三区激情无套| 一区二区三区鲁丝不卡| 久久久久久九九九九| 亚洲乱码国产乱码精品精可以看 | 国产亚洲va综合人人澡精品| 亚洲欧洲一区二区在线观看| 欧美午夜不卡视频| 欧美在线3区| 欧美日韩精品久久| 欧美一区二视频在线免费观看| 欧美aaa级| 亚洲欧美成人| 女人香蕉久久**毛片精品| 一区二区三区欧美在线| 久久在线视频在线| 一区二区不卡在线视频 午夜欧美不卡在| 欧美一区永久视频免费观看| 亚洲国产精品国自产拍av秋霞| 亚洲欧美日韩精品久久亚洲区| 在线电影欧美日韩一区二区私密| 日韩一区二区高清| 国产婷婷97碰碰久久人人蜜臀| 日韩视频在线免费观看| 国产无一区二区| 亚洲夜晚福利在线观看| 伊人一区二区三区久久精品| 午夜精品久久久久久久男人的天堂| 在线观看日韩www视频免费| 午夜精品成人在线视频| 亚洲精品国产精品国自产观看| 久久精品国内一区二区三区| 99视频精品免费观看| 久久综合久久综合久久综合| 亚洲影院污污.| 欧美日韩免费看| 最新日韩在线视频| 国产日韩在线一区| 亚洲专区在线|