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