《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于CPLD的鍵盤(pán)控制器設(shè)計(jì)
基于CPLD的鍵盤(pán)控制器設(shè)計(jì)
摘要: 由于CPLD的可再編程性質(zhì),可以將同一裝置用于不同的鍵盤(pán)和產(chǎn)品,而收到高產(chǎn)量、低成本的效果,同時(shí)也節(jié)約了單片機(jī)的資源以做它用。可再編程的特點(diǎn)輔之簡(jiǎn)便易用的設(shè)計(jì)工具,使設(shè)計(jì)可以進(jìn)行晚期更改,提高了產(chǎn)品設(shè)計(jì)的靈活性,降低了風(fēng)險(xiǎn)。在單片機(jī)應(yīng)用系統(tǒng)中,利用鍵盤(pán)接口輸入數(shù)據(jù),是實(shí)現(xiàn)現(xiàn)場(chǎng)實(shí)時(shí)調(diào)試、數(shù)據(jù)調(diào)整和各種參數(shù)設(shè)置最常用的方法。單片機(jī)的外圍鍵盤(pán)擴(kuò)展電路有多種實(shí)現(xiàn)方式,例如直接利用單片機(jī)的I/O接口,或者采用8255A接口芯片,就可以實(shí)現(xiàn)外圍鍵盤(pán)的擴(kuò)展功能。但是,在這些方法中,鍵盤(pán)擴(kuò)展電路需要占用單片機(jī)的資源對(duì)按鍵
Abstract:
Key words :

0 引 言

由于的可再編程性質(zhì),可以將同一裝置用于不同的鍵盤(pán)和產(chǎn)品,而收到高產(chǎn)量、低成本的效果,同時(shí)也節(jié)約了單片機(jī)的資源以做它用??稍倬幊痰奶攸c(diǎn)輔之簡(jiǎn)便易用的設(shè)計(jì)工具,使設(shè)計(jì)可以進(jìn)行晚期更改,提高了產(chǎn)品設(shè)計(jì)的靈活性,降低了風(fēng)險(xiǎn)。在單片機(jī)應(yīng)用系統(tǒng)中,利用鍵盤(pán)接口輸入數(shù)據(jù),是實(shí)現(xiàn)現(xiàn)場(chǎng)實(shí)時(shí)調(diào)試、數(shù)據(jù)調(diào)整和各種參數(shù)設(shè)置最常用的方法。單片機(jī)的外圍鍵盤(pán)擴(kuò)展電路有多種實(shí)現(xiàn)方式,例如直接利用單片機(jī)的I/O接口,或者采用8255A接口芯片,就可以實(shí)現(xiàn)外圍鍵盤(pán)的擴(kuò)展功能。但是,在這些方法中,鍵盤(pán)擴(kuò)展電路需要占用單片機(jī)的資源對(duì)按鍵進(jìn)行監(jiān)控和處理,這對(duì)要求高實(shí)時(shí)性處理的單片機(jī)系統(tǒng)是不容易實(shí)現(xiàn)的。為了解決這一問(wèn)題,可以使用專用鍵盤(pán)接口芯片來(lái)擴(kuò)展鍵盤(pán)子系統(tǒng)。但是這類專用鍵盤(pán)接口芯片在使用靈活性方面尚有欠缺,尤其當(dāng)用戶需要實(shí)現(xiàn)某些特定功能時(shí),其缺點(diǎn)更為明顯。針對(duì)上述問(wèn)題,在此提出一種基于Lattice公司LC4128V的4×4鍵盤(pán)接口芯片設(shè)計(jì)。采用的軟件開(kāi)發(fā)環(huán)境是IspLEVER。

l 開(kāi)發(fā)環(huán)境介紹

IspLEVER是Lattice公司最新推出的一套EDA軟件。設(shè)計(jì)輸入可采用原理圖、硬件描述語(yǔ)言、混合輸入3種方式,它能對(duì)所設(shè)計(jì)的數(shù)字電子系統(tǒng)進(jìn)行功能仿真和時(shí)序仿真。編譯器是此軟件的核心,能進(jìn)行邏輯優(yōu)化,將邏輯映射到器件中去,自動(dòng)完成布局與布線,并生成編程所需要的熔絲圖文件。軟件中的Constraints Editor工具允許經(jīng)由一個(gè)圖形用戶接口選擇I/O設(shè)置和引腳分配。lspLEVER軟件提供給開(kāi)發(fā)者一個(gè)簡(jiǎn)單而有力的工具,用于設(shè)計(jì)所有Lattice可編程邏輯產(chǎn)品。

2 鍵盤(pán)控制器設(shè)計(jì)

2.1 基于LC4128V的4×4鍵盤(pán)控制器設(shè)計(jì)

圖1給出基于Lattice公司的可編程邏輯器件LC4128V的4×4鍵盤(pán)控制器(KEYPADCTL)設(shè)計(jì)。

根據(jù)鍵盤(pán)的掃描原理,鍵盤(pán)控制器的輸出引腳R1~R4(行掃描線)依次循環(huán)輸出低電平,并將相應(yīng)的鍵盤(pán)行置低。當(dāng)有按鍵按下時(shí),相應(yīng)的輸入c1~c4(列回復(fù)線)也被置低。然后根據(jù)行和列的低電平對(duì)應(yīng)關(guān)系就可以通過(guò)編碼確定按下的鍵值。輸出K0~K3就是最終等待單片機(jī)讀取的鍵值。INT輸出單片機(jī)的中斷信號(hào),通知單片機(jī)來(lái)讀取鍵值。CLK是控制器的時(shí)鐘信號(hào),cLR是控制器的清零復(fù)位信號(hào)。

2.2 內(nèi)部原理圖及其主要部分的工作原理

鍵盤(pán)控制器內(nèi)部由鍵盤(pán)掃描電路、編碼器電路、鍵盤(pán)去抖動(dòng)電路、分頻器電路、計(jì)數(shù)器電路和鍵值鎖存器組成,如圖2所示。
 

(1)鍵盤(pán)掃描電路是一個(gè)能自啟動(dòng)到所需要狀態(tài)的狀態(tài)機(jī),當(dāng)系統(tǒng)上電并同時(shí)輸入一個(gè)有效的復(fù)位清零信號(hào)CLR后,掃描電路輸出端R1~R4(L1~L4)則依次按照設(shè)計(jì)要求循環(huán)輸出以下掃描電平1110,1101,1011,0111。L1~L4作為編碼器的輸入,通過(guò)與列回復(fù)線(C1~C4)的對(duì)應(yīng)關(guān)系參與編碼。然而R1~R4是將L1~L4加上高電平使能三態(tài)門(mén)輸出的鍵盤(pán)行掃描線。將行掃描線加上三態(tài)門(mén)輸出,是為了防止當(dāng)一列上的2個(gè)或更多按鍵被同時(shí)按下時(shí),將使LC4128V的引腳高低電平短接,如果這種情況發(fā)生,不但影響鍵盤(pán)控制器的準(zhǔn)確性,更嚴(yán)重的是會(huì)燒壞可編程邏輯器件LC4128V,所以該控制器通過(guò)三態(tài)門(mén)輸出行掃描線。三態(tài)門(mén)的使能信號(hào)就是其通過(guò)的信號(hào)取反,這樣輸出的高電平將為高阻狀態(tài)。通過(guò)對(duì)鍵盤(pán)的行線分別接個(gè)上拉電阻便可得到與L1~L4一樣的輸出信號(hào)。

通過(guò)這樣的處理既滿足設(shè)計(jì)的需要,又起到對(duì)器件保護(hù)的作用。EN是掃描電路的使能輸入端,高電平有效。它通過(guò)去抖動(dòng)后的列回復(fù)線相與得到。當(dāng)有按鍵按下時(shí),相應(yīng)的列線將被置低。相與的結(jié)果為低,這使掃描電路停止掃描,等待控制器對(duì)掃描結(jié)果進(jìn)行處理,得到相應(yīng)的鍵值送入鍵值鎖存器,等待單片機(jī)讀取。這樣做的好處是可防止控制器漏掉按鍵的讀取。根據(jù)調(diào)試得知,鍵盤(pán)掃描時(shí)鐘信號(hào)最好是去抖電路時(shí)鐘的四分頻以上。所以CLK是通過(guò)對(duì)去抖電路的時(shí)鐘進(jìn)行分頻得到的。圖3給出實(shí)現(xiàn)掃描電路的具體原理圖。
 


(2)該設(shè)計(jì)中采用4×4的鍵盤(pán),有16個(gè)按鍵狀態(tài),再加上一個(gè)沒(méi)有鍵按下的狀態(tài)共有17個(gè)狀態(tài),而4位二進(jìn)制數(shù)只能表示16個(gè)狀態(tài)。為了解決這個(gè)問(wèn)題,將R4和L4或非后再與計(jì)數(shù)器產(chǎn)生的中斷信號(hào)相或,產(chǎn)生一個(gè)單片機(jī)中斷。當(dāng)按下最后一個(gè)鍵時(shí),鍵盤(pán)控制器便產(chǎn)生1個(gè)中斷,讓單片機(jī)來(lái)讀取這個(gè)按鍵值0000(在沒(méi)有鍵按下時(shí)也是這個(gè)狀態(tài)),從而區(qū)分了無(wú)按鍵狀態(tài)和最后一個(gè)按鍵按下的狀態(tài)。這樣在編碼的時(shí)候只需考慮前15個(gè)鍵的狀態(tài)信息。最終可用4位二進(jìn)制數(shù)表示所有按鍵狀態(tài)。圖4給出實(shí)現(xiàn)編碼器的具體原理圖。


 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。