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