目前,隨著信息產(chǎn)業(yè)的迅猛發(fā)展,各類船舶亟需配備更多質(zhì)優(yōu)價(jià)廉的中小型信息監(jiān)控終端,用于監(jiān)控氣象狀況、獲取導(dǎo)航信息以便保證航行安全。以ARM、MIPS等領(lǐng)銜的32位處理器在信息監(jiān)控終端應(yīng)用中,顯示出極大優(yōu)勢,但是一般以32位處理器構(gòu)建的嵌入式系統(tǒng)往往需要配置外部FLASH和SDRAM,這樣就使得開發(fā)和維護(hù)整個(gè)系統(tǒng)的成本較高,本設(shè)計(jì)采用高性能低功耗的AVR單片機(jī)和LCD液晶模塊來設(shè)計(jì)信息監(jiān)控終端,具有價(jià)格低廉、性能穩(wěn)定、顯示清晰、人機(jī)界面良好等優(yōu)點(diǎn),能夠滿足船舶對中小型信息監(jiān)控終端的需求。
1 總體設(shè)計(jì)
信息監(jiān)控終端主要由顯示控制板、鍵盤、通信接口和液晶顯示模塊構(gòu)成,具有數(shù)據(jù)收發(fā)、數(shù)據(jù)顯示、人機(jī)交互和屏幕亮度調(diào)整等功能,其組成如圖1所示。
工作過程為:系統(tǒng)初始化以后,信息監(jiān)控終端按照設(shè)定的工作模式從通信接口接收數(shù)據(jù),然后通過LCD控制器將數(shù)據(jù)發(fā)送到LCD液晶顯示屏,通過鍵盤和顯示屏實(shí)時(shí)響應(yīng)用戶的操作指令。
2 硬件設(shè)計(jì)
2.1 液晶顯示模塊與單片機(jī)
液晶顯示模塊選擇EW32F00BCW,它是一款5英寸320×240點(diǎn)陣的液晶顯示器,性能堪比日本原裝的DMF50081,價(jià)格卻便宜很多。該器件采用CCFL背光顯示,顯示方式為全透反顯,顯示顏色為藍(lán)底白字,外型尺寸為139.0W×102.5H×13.2Dmm。
微控制器采用ATMEL公司AVR增強(qiáng)型單片機(jī)AT90CAN128。其主要性能是:采用CMOS技術(shù)和RISC架構(gòu);片內(nèi)集成128 kB的FLASH程序存儲器、4 kB的EEPROM和4 kB的SRAM數(shù)據(jù)存儲器:具有JTAG接口;集成了8位和16位定時(shí)器/計(jì)數(shù)器、A/D轉(zhuǎn)換器、SPI同步串口、UART異步串口、獨(dú)立的CAN控制器;并且在軟件上有效支持匯編語言及C高級語言。
2.2 顯示控制電路
RA8835是一款成本低、通用性強(qiáng)的LCD控制器。它完全涵蓋SED1335現(xiàn)有的功能,并加強(qiáng)了穩(wěn)定性,且擁有制程較新及耗電較低的優(yōu)勢。RA8835的指令功能豐富,采用4位數(shù)據(jù)并行發(fā)送,可支持文字和圖形的混合顯示,并可將文字和圖形的3層重疊顯示、水平及垂直卷動等動態(tài)效果呈現(xiàn)于液晶屏上。圖2是顯示控制電路原理圖,AVR單片機(jī)通過控制線和數(shù)據(jù)線與RA8835直接相連,控制顯示內(nèi)容和顯示方式。為了儲存顯示內(nèi)容并進(jìn)行顯示,RA8835需外接一至兩片外部顯示緩存62256。鍵盤采用2x4矩陣式接口,兩根行線同時(shí)連接中斷,有上下左右4個(gè)方向鍵,以及確認(rèn)、返回、菜單、翻頁4個(gè)功能鍵組成。
2.3 通信單元電路
由于不同船舶設(shè)備廠商提供了不同功能的產(chǎn)品和子系統(tǒng),采用了不同的通信接口,信息監(jiān)控終端需要配置多種通信接口才能與其進(jìn)行通信,因此設(shè)計(jì)了常用的3種:RS232接口、RS422接口、CAN接口,電路組成如圖3所示。
AT90CAN128具有兩路串行USART接口,輸出TTL電平,其中一路經(jīng)過電平轉(zhuǎn)換芯片MAX232轉(zhuǎn)換為RS232電平,另外一路經(jīng)過電平轉(zhuǎn)換芯片MAX1482轉(zhuǎn)換為RS422電平。在AT90CAN128的USART與電平轉(zhuǎn)換芯片之間增加光電隔離,使輸入端與輸出端在電氣上完全隔離,互不干擾。AT9 0CAN128內(nèi)置CAN控制器,只需將控制器的發(fā)送端和接收端連接到CAN總線收發(fā)器即可構(gòu)成CAN總線收發(fā)電路。CTM1050是一款帶隔離的高速CAN收發(fā)器芯片,該芯片將CAN控制器的邏輯電平轉(zhuǎn)換為CAN總線的差分電平并且具有DC 2500V的隔離功能及ESD保護(hù)作用。一般RS232通信都是與上位機(jī)直接相連,距離較短,因此在RS232電平上用穩(wěn)壓管進(jìn)行簡單保護(hù)。采用RS485和CAN通信時(shí),一般距離較長,且多在艙室之外,雷電可能會造成總線損壞,所以除了設(shè)計(jì)電平轉(zhuǎn)換,還必須加上隔離保護(hù)電路。
2.4 供電單元電路
供電單元在船電正常時(shí)采用交流220 V供電,并自動實(shí)現(xiàn)充電,充滿電后自動斷電;在船電故障時(shí)采用鋰電池組供電,供電單元電路組成框圖如圖4所示。外部交流220 V電源通過適配器轉(zhuǎn)化為14.8 V左右的直流,通過充電線路為鋰電池組進(jìn)行充電,保護(hù)線路用于防止過充、過放、過流和短路,然后經(jīng)過穩(wěn)壓模塊輸出兩路直流5 V,供給AVR單片機(jī)系統(tǒng)。由于LCD背光顯示需要的特殊電源,因此通過冷陰極背光電源逆變器將直流5 V變換成交流1 300V供給LCD背光燈管。MAX5437是128級、高電壓的數(shù)字電位器,采用簡單的SPI接口代替機(jī)械調(diào)節(jié),將DC/DC輸出的-24 V電源變換為-10~24 V范圍內(nèi)可調(diào),從而為液晶顯示模塊提供負(fù)電源和對比度調(diào)整電壓。
3 軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)采用AVR Studio+Winavr集成開發(fā)平臺。AVR Studio是在Windows操作系統(tǒng)下編寫和調(diào)試AVR應(yīng)用程序的嵌入式開發(fā)環(huán)境(IDE),Winavr是免費(fèi)的AVR開發(fā)程序集,AVR Studio配合Winavr能夠支持AVR C/C++程序的編輯、編譯、連接以及生成目標(biāo)代碼,同時(shí)利用Atmel公司設(shè)計(jì)的實(shí)時(shí)在片仿真器JTAGICE mkⅡ能夠?qū)崿F(xiàn)系統(tǒng)的在線硬件仿真調(diào)試功能和目標(biāo)代碼的下載功能。為了方便程序調(diào)試和提高可靠性,軟件設(shè)計(jì)采用自頂向下,逐步求精的結(jié)構(gòu)化、模塊化設(shè)計(jì)方法。終端主程序流程圖如圖5所示,上電后首先進(jìn)行系統(tǒng)初始化設(shè)置,然后查詢鍵盤狀態(tài),如果有鍵按下立即進(jìn)行按鍵處理,否則按照設(shè)定的工作模式自動進(jìn)行數(shù)據(jù)接收、顯示和定時(shí)更新。在進(jìn)行具體程序編寫的時(shí)候,還需注意以下幾個(gè)方面:
1)進(jìn)行系統(tǒng)初始化的時(shí)候,需要完成對單片機(jī)I/O端口、SPI端口、異步串行端口、CAN端口等的初始化,同時(shí)還要禁止不使用的單片機(jī)功能模塊,如JTAG端口、TWI端口等以降低整機(jī)功耗。
2)初始化完成后,還要對MAX5437的滑片位置進(jìn)行設(shè)置。
由于其內(nèi)部沒有EEPROM,所以軟件中利用單片機(jī)的EEPROM來記錄滑片的位置信息。考慮到用戶可能將液晶對比度調(diào)飛,程序中設(shè)計(jì)了通過鍵盤操作恢復(fù)出廠設(shè)置的功能。
3)采用中斷和查詢相結(jié)合的方式響應(yīng)鍵盤。由于鍵盤行線同時(shí)連接單片機(jī)中斷,程序不必一直查詢鍵盤狀態(tài),只是中斷產(chǎn)生以后才去掃描鍵盤,從而提高了單片機(jī)工作效率。
4 結(jié)束語
本文以AT90CAN128為核心,利用其豐富的片上資源,搭接必要的外圍電路,軟件設(shè)計(jì)與硬件電路緊密結(jié)合,提供了一種低成本高可靠性的船載中小型信息監(jiān)控終端的設(shè)計(jì)方案。該終端顯示清晰、工作穩(wěn)定,可操控性強(qiáng),具有較高的性價(jià)比和廣泛的實(shí)用性,以及極好的推廣應(yīng)用價(jià)值。