鍵盤(pán)顯示芯片CH451與MEGA32的接口設計
在水泥生料率值配料系統中需要監控水泥廠(chǎng)的多條生產(chǎn)線(xiàn)。它的硬件單元率值配料下位機硬件系統需要多個(gè)數碼管和二極管來(lái)顯示工況,并且還需要鍵盤(pán)控制。如果采用一般的顯示方案則元器件多且復雜,導致系統可靠性降低,成本加大。采用集成了鍵盤(pán)顯示功能的驅動(dòng)芯片CH451后使設計方案大大簡(jiǎn)化,更具經(jīng)濟性和可靠性。
1 鍵盤(pán)顯示方案比較
很多以單片機為核心的儀器儀表都需要數碼管顯示和鍵盤(pán)掃描。在單片機的開(kāi)發(fā)過(guò)程中,常常會(huì )因為資源不足而不得不大量擴展接口芯片以滿(mǎn)足應用系統的需要,從而造成系統龐大,同時(shí)也降低了系統的可靠性。在單片機應用系統中,鍵盤(pán)顯示通??刹捎萌缦?種方案。
1.1 經(jīng)典方案:使用8279芯片
采用并行接口的鍵盤(pán)顯示專(zhuān)用芯片8279,該芯片是Intel于20世紀80年代首先推出的,應用較成熟,但所需外圍元件(顯示驅動(dòng)、譯碼等)多、占用電路板面積大、綜合成本高,在中小系統中常常大材小用。
1.2 自由方案:使用輔助單片機
在儀器的主控單片機之外,另外使用一個(gè)輔助的單片機專(zhuān)門(mén)做顯示驅動(dòng)和鍵盤(pán)掃描。為了提高串行接口的速度,輔助單片機需要盡可能高
CH451由南京沁恒電子公司生產(chǎn),是以硬件實(shí)現的多功能外圍芯片,使用串行接口,支持顯示驅動(dòng)和鍵盤(pán)掃描以及μP監控,外圍元器件極少,非常適合作為單片機的外圍輔助芯片,工作原理如圖1所示。
CH451的特點(diǎn)是:
a) 具有大電流驅動(dòng)能力,段電流不小于25 mA,字電流不小于150 mA,平均段電流是輔助單片機方案的8倍,而且非連續的電流驅動(dòng)能力更高。
b) 用硬件實(shí)現,串行接口、顯示驅動(dòng)、鍵盤(pán)掃描、μP監控之間相互獨立不受干擾,串行接口的位時(shí)鐘能夠支持到10 MHz,數據傳輸速度比輔助單片機方案提高40倍,即使主控單片機頻繁操作也完全不會(huì )影響顯示驅動(dòng)和鍵盤(pán)掃描以及μP監控。
c) 串行接口以硬件實(shí)現,不需要時(shí)鐘;而顯示驅動(dòng)和鍵盤(pán)掃描使用約0.75 MHz的全內置主時(shí)鐘多次分頻后的掃描時(shí)鐘,所以在工業(yè)現場(chǎng)不易受到干擾。即使受到強干擾,也能夠在干擾后立即正常工作,不會(huì )影響串行接口、顯示驅動(dòng)和鍵盤(pán)掃描的后續操作。
d) 內置振蕩和上電復位以及看門(mén)狗電路,不但不需要外部提供時(shí)鐘和外部復位輸入,還能夠向外部的主控單片機提供上電復位和看門(mén)狗電路,進(jìn)一步降低產(chǎn)品的成本,提供產(chǎn)品的可靠性。
現在與CH451類(lèi)似的還有北京凌志比高科技的BC7281、hd7279a等,這些都是相當不錯的顯示和鍵盤(pán)接口芯片。
2 硬件設計
選用AMEG32作為主控芯片,晶振為8 MHz,因AVR單片機大多數指令僅需要1個(gè)時(shí)鐘周期,而很多MCS-51類(lèi)型的單片機指令為12個(gè)時(shí)鐘周期,所以AVR單片機在同樣晶振條件下比MCS-51快得多。CH451的串行接口的位時(shí)鐘最快能支持10 MHz,所以用8 MHz的AMEGA32能夠與CH451進(jìn)行通信。
CH451芯片連線(xiàn)簡(jiǎn)單,一片CH451僅需要4根信號線(xiàn)就可以實(shí)現。4根信號線(xiàn)包括:串行數據輸入線(xiàn)DIN、串行數據時(shí)鐘線(xiàn)DCLK、串行數據加載線(xiàn)LOAD、串行數據輸出線(xiàn)DOUT。每增加一片CH451只需要增加一根串行數據加載線(xiàn)即可。在率值配料硬件系統中應用2片CH451進(jìn)行并行級聯(lián),一片用來(lái)直接驅動(dòng)6個(gè)共陰極數碼管和讀取8個(gè)按鈕信息,另一片用來(lái)驅動(dòng)24個(gè)發(fā)光二極管。硬件電路如圖2所示。
盡管AVR自帶SPI接口,但是考慮到CH451并不是真正意義上的SPI接口,它只是具有硬件實(shí)現的高速4線(xiàn)串行接口,所以必須用軟件模擬的方式對CH451進(jìn)行控制。
3 軟件設計
AVR的集成開(kāi)發(fā)環(huán)境種類(lèi)比較多,如ICCAVR、WINAVR、BASCOM-AVR、IAR、CodeVisionAVR等,因此造成程序之間難以完全兼容,這也是目前開(kāi)發(fā)的一個(gè)缺點(diǎn)。這里選擇ICCAVR作為開(kāi)發(fā)環(huán)境,應用C語(yǔ)言來(lái)實(shí)現程序。因為ICCAVR在我國有廣泛的使用者,用C語(yǔ)言進(jìn)行軟件開(kāi)發(fā)可以很好地實(shí)現代碼的可讀性和移植性,大幅度加快開(kāi)發(fā)進(jìn)度。
CH451具有硬件實(shí)現的高速4線(xiàn)串行接口,包括4個(gè)信號線(xiàn):串行數據輸入線(xiàn)DIN、串行數據時(shí)鐘線(xiàn)DCLK、串行數據加載線(xiàn)LOAD、串行數據輸出線(xiàn)DOUT。啟用鍵盤(pán)掃描功能時(shí)序圖如圖3示。
由圖3可知,DIN、DCLK、LOAD作為CH451的輸入其默認為高電平,DOUT作為CH451的輸出其默認也是高電平。由此,需對AMEG16單片機I/O口初始化。需要注意,AVR單片機I/O口與MCS-51單片機I/O口不同。AVR單片機是標準雙向口,復位時(shí)所有端口處于沒(méi)有上拉電阻的輸入狀態(tài)。因此,在使用AVR單片機之前一定要根據引腳功能定義相對應的端口初始化,否則端口很可能在用做輸出時(shí)不能正常工作(復位后默認為輸入狀態(tài))。
這4根信號線(xiàn)雖然與SPI總線(xiàn)方式類(lèi)似,但是不能用AMEG32自帶的SPI接口來(lái)對CH451進(jìn)行控制,因為這不符合時(shí)序要求。
軟件設計包括CH451的初始化、顯示和讀按鍵3部分。初始化包括對CH451的設置,如開(kāi)顯示、鍵盤(pán)功能、設置BCD譯碼方式等。顯示部分對6個(gè)數碼管分時(shí)輪流顯示,通過(guò)加載字數據命令來(lái)顯示每個(gè)數碼管的數字。讀按鍵則是加載CH451的讀取按鍵代碼命令。單片機可以通過(guò)查詢(xún)或者外部中斷方式來(lái)讀取。
6個(gè)數碼管顯示和讀取8個(gè)按鍵信息主要用到的函數如下:
顯示24個(gè)發(fā)光二極管用到的函數如下:
須注意的問(wèn)題是:由于CH451驅動(dòng)數碼管或者LED的電流較大,會(huì )在電源上產(chǎn)生較大的毛刺電壓,所以如果電源線(xiàn)或者地線(xiàn)的PCB(印
4 結束語(yǔ)
本文詳細介紹了CH451與AMEG32的接口方案,并給出了具體的程序設計,現場(chǎng)實(shí)際運行穩定可靠。運用這些集成的鍵盤(pán)顯示驅動(dòng)芯片可以大大簡(jiǎn)化外圍器件,節省單片機I/O口,提高系統的可靠性。
評論