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