謝木森, 徐 瑩, 華 金
(上海船舶運輸科學研究所 航運技術(shù)與安全國家重點實驗室, 上海 200135)
隨著信息科技的蓬勃發(fā)展,船舶對機艙監(jiān)測和控制系統(tǒng)的智能化要求越來越高,當前以機艙自動化為核心的船舶綜合信息系統(tǒng)已在船舶領(lǐng)域得到廣泛應用。船用儀器、儀表實現(xiàn)智能化,能直接推動船舶機艙整體自動化程度的提高。液晶觸摸屏是目前廣泛應用的智能人機交互設(shè)備,具有堅固耐用、節(jié)省空間、操作靈敏和展示的內(nèi)容豐富直觀等優(yōu)點[1-3]。
根據(jù)某型船對大屏幕監(jiān)測報警顯示模塊的實際需求,結(jié)合船舶機艙內(nèi)各類型顯控模塊的通用需求,上海船舶運輸科學研究所研究開發(fā)了一款基于RA8876M顯示控制器的船舶機艙一體化顯控模塊。該模塊配備有船舶機艙內(nèi)常用的多種通信接口,觸控功能操作便捷,15吋(1吋=0.025 4 m)大小的液晶顯示屏能以多種形式展示大量內(nèi)容,適于主機遙控系統(tǒng)、能量管理系統(tǒng)、機艙監(jiān)測報警系統(tǒng)、透平機控制系統(tǒng)和電噴柴油機的機旁操作系統(tǒng)等船舶智能顯控系統(tǒng)采用。
該一體化顯控模塊采用ST意法半導體公司的STM32F429型中央處理器(Cevtral Processing Unit, CPU)作為模塊主控芯片微控制單元(Microcontroller Unit, MCU),采用瑞佑公司的RA8876M型TFT-LCD控制芯片作為顯示控制器,搭配PenMount 6202B型觸摸板控制器,實現(xiàn)15吋液晶顯示觸摸屏的主要功能。該模塊提供有船舶機艙內(nèi)廣泛配置的通信接口,包括2路CAN(Controller Area Network)總線接口、2路以太網(wǎng)接口、1路RS485接口和1路通用串行總線(Universal Serial Bus, USB)接口。該模塊的I/O接口自帶12路開關(guān)量輸入接口和6路繼電器輸出接口,既能外接按鍵或其他開關(guān)量輸入,又能滿足聲光報警和繼電器控制等輸出要求。為提高易維護性,模塊提供單獨的一路USB接口支持ISP(In-System Progamming, ISP)程序在線燒寫。此外,該模塊支持大容量SD(Secare Digital)卡數(shù)據(jù)存儲和屏幕亮度調(diào)節(jié)等輔助功能[4]。圖1為機艙一體化顯控模塊整體結(jié)構(gòu)。
圖1 機艙一體化顯控模塊整體結(jié)構(gòu)
STM32F429芯片是基于ARM CoretexM4的32位內(nèi)核的低功耗嵌入式處理器,主頻最高達到180 MHz,自帶的256 KB SRAM加2 MB FLASH內(nèi)存空間較為充裕,同時集成有豐富的外設(shè)資源,如高速定時器、中斷引腳,以及常用的以太網(wǎng)、CAN、USB和RS485等通信接口。此外,該微控制器內(nèi)部集成有可變存儲控制器FMC(Flexible Memory Controller),方便直接驅(qū)動RA8876M顯示驅(qū)動器。
該模塊最終選用的LPQF(Low-Profile Quad Flat Package)封裝176腳的STM32F429芯片的高速主頻既能滿足高速觸摸坐標采集轉(zhuǎn)換和指揮RA8876M顯卡驅(qū)動的要求,又能保證其他采集和通信等任務正常開展。此外,雙以太網(wǎng)和雙CAN總線的芯片配置對于對通信質(zhì)量有較高要求的船舶機艙系統(tǒng)來說尤為適用。整體來看,該STM32F429芯片是一款高性能、低成本、低功耗、實時應用、具有競爭性價格優(yōu)勢的通用型MCU。
RA8876M顯示驅(qū)動器是一款低功耗雙圖層液晶顯示TFT-LCD控制器,最大可支持2 048×2 048分辨率,支持多種常用輸入顯示數(shù)據(jù)格式,自帶64 MB顯示緩存,無需外擴內(nèi)存,支持8/16位的8080/6080并行總線和IIC/SPI串行總線連接到MCU主控芯片,同時可根據(jù)顯示屏的需要設(shè)定24/18/16位TFT顯示輸出方式。由于RA8876M芯片內(nèi)部均為8位寄存器且自帶顯示緩存,因此硬件設(shè)計環(huán)節(jié)采用16位FMC驅(qū)動方式連接到MCU,F(xiàn)MC的讀寫操作時序與RA8876M芯片的讀寫時序一致,將RA8876M芯片當作外部存儲器SRAM使用,方便快捷。當MCU發(fā)送數(shù)據(jù)指令或從RA8876M芯片中讀取數(shù)據(jù)時,直接往相應映射地址讀寫數(shù)據(jù)即可,F(xiàn)MC會在硬件的基礎(chǔ)上自動完成時序上的控制[5]。
為增強畫面顯示的效果,RA8876M芯片支持2D圖形的BTE(Block Transfer Engine)引擎,可完成大量圖形數(shù)據(jù)轉(zhuǎn)換和傳送任務,芯片自帶常用幾何圖形加速引擎GSE(Geometric Speed-up Engine)和強大的硬件加速功能,能保證MCU發(fā)出的更新顯示和繪圖等指令的執(zhí)行效率。為保證多類型圖片格式和文本格式的顯示更新,芯片通過串行SPI-FLASH接口支持任意大小的圖庫芯片和多款集通字庫芯片。采用自帶字庫的芯片和外置字庫芯片,均可實現(xiàn)最大32×32 pixel的字形輸出;外置的字庫芯片可選用支持多國語言文字顯示的類型,靈活配置,使該芯片的應用場景更加豐富。此外,通過配置芯片對應引腳的PWM(Pulse Width Modulation)功能和I/O引腳,可在線調(diào)節(jié)顯示屏的背光亮度,完成亮屏、熄屏等輔助控制。
RAio公司提供的上位機輔助開發(fā)軟件可實現(xiàn)對RA8876M芯片的可視化編程。該軟件功能豐富,且每個功能界面都會根據(jù)當前操作生成相應的C語言代碼;這些代碼可直接移植到KEIL開發(fā)環(huán)境中使用。通過研究各界面涉及的API函數(shù)和參數(shù),能降低開發(fā)軟件的學習難度,節(jié)省大量軟件開發(fā)時間。
圖2為上位機輔助開發(fā)工具寫入圖片過程截圖,其中:右側(cè)的Status欄展示了當前顯示屏的分辨率、畫布內(nèi)存位置和活動窗口的坐標位置等編程必要信息,方便開發(fā)人員讀取配置信息;底部的C code欄展示了應用當前寫入圖片功能調(diào)用的功能函數(shù),方便調(diào)整相關(guān)配置參數(shù)等信息;開發(fā)軟件頂部的功能選擇菜單主要分為5部分,具體如下。
圖2 上位機輔助開發(fā)工具寫入圖片過程截圖
1) SPI Flash Tool功能,可將圖片轉(zhuǎn)換之后的bin格式文件燒寫到外擴圖庫芯片中。為保證圖庫芯片正確燒寫,通過軟件的DMA功能,可讀取并顯示圖庫內(nèi)某具體地址范圍內(nèi)的圖片。
2) MPU Write Tool功能,支持單張圖片資料的在線燒寫和預覽,并靈活調(diào)整圖像在界面中顯示的區(qū)域。
3) Text Tool工具,提供對芯片自帶字庫和外置字庫的文字顯示和輸出測試功能,可選擇任意坐標位置進行文字顯示,同時可配置字體格式、字體顏色、背景顏色和字體大小等選項,避免因頻繁修改字體顯示參數(shù)而花費大量時間更新MCU程序。
4) Draw Function,主要用來在線觀測各種內(nèi)建二維圖形的顯示效果,并靈活調(diào)整各二維圖形的顯示位置、圖形大小、線條顏色和填充顏色等具體配置,匹配選擇出恰當?shù)腁PI函數(shù)和參數(shù),有效提升開發(fā)效率。
5) BTE(Block Transfer Engine)功能,將其與PIP功能相結(jié)合,能實現(xiàn)2層圖像資料的重疊顯示和拼接組合等功能,大大豐富界面顯示效果。
觸摸屏一般分為電容、電阻、矢量壓力傳感、表面聲波和紅外線掃描等類型,應用最多的是四線電阻式觸摸屏和五線電阻式觸摸屏。電阻式觸摸屏由2個透明的電阻薄膜組成,當水平方向和垂直方向的電阻網(wǎng)有電壓時,可通過A/D轉(zhuǎn)換面板在觸摸點測量出電壓,從而求出對應的坐標值。該模塊選用的五線制電阻式觸摸屏適宜機艙的復雜環(huán)境,即使是在觸摸板某些位置出現(xiàn)少數(shù)壞點的情況下,整體仍能正常使用,增強了模塊的耐用性[6]。
PenMount 6202B型觸摸屏控制器內(nèi)置有A/D轉(zhuǎn)換器,具有四線制電阻式觸摸屏和五線制電阻式觸摸屏的特點和功能,可通過USB和RS232接口導出坐標數(shù)據(jù)到MCU中,支持觸摸屏的最大分辨率為2 048×2 048,剛好覆蓋RA8876M芯片支持的最大分辨率,能滿足該模塊15吋液晶顯示屏的觸摸要求。
考慮到船舶機艙內(nèi)的復雜應用場景和大批量的數(shù)據(jù)交互,該模塊提供有不同類型的標準通信接口,以滿足不同設(shè)備和系統(tǒng)的連接需求,提高系統(tǒng)的可擴展性。以太網(wǎng)協(xié)議作為當前廣泛應用的局域網(wǎng)通信協(xié)議,傳輸數(shù)據(jù)量大,傳輸速度快,防干擾能力強,適于在船舶機艙內(nèi)的復雜環(huán)境中應用。此外,CAN總線和RS485總線等也在各種模塊和系統(tǒng)中大量應用。因此,該模塊設(shè)計有2路CAN總線接口、2路以太網(wǎng)接口、1路配合上位機軟件使用的USB接口和1路RS485接口,能基本覆蓋船舶機艙內(nèi)常見的數(shù)據(jù)交互場景。
該模塊的軟件設(shè)計是在Keil 5開發(fā)環(huán)境中進行的,沒有使用操作系統(tǒng),主要實現(xiàn)一體化顯控模塊的常用功能和各標準接口的正常工作,軟件設(shè)計主要包括觸摸顯示功能、通信接口功能、數(shù)據(jù)存儲功能和I/O采集輸出功能等。下面主要介紹顯示功能和觸摸功能的軟件設(shè)計過程。
圖3 RA8876M芯片上電初始化過程
2.1 顯示功能的軟件設(shè)計
該模塊采用W25Q128型圖庫芯片,16 MB的內(nèi)存空間,最多可容納10幅1 024×768分辨率的RGB565格式圖像。由于SPI-Flash支持從任意地址連續(xù)讀取任意長度的數(shù)據(jù),尤其是RA8876M芯片支持DMA(Direct Memory Access)功能,可方便快捷地加載圖像。借助配套上位機開發(fā)工具,可輕松地將顯示所需圖片資料轉(zhuǎn)換成bin格式文件,打包燒寫到外部圖庫芯片中,以便程序運行時RA8876M芯片讀取。
RA8876M芯片通過MCU的FMC功能驅(qū)動,命令寄存器在MCU中的映射地址為0x60020000,數(shù)據(jù)寄存器的映射地址為0x60000000,因此與RA8876M相關(guān)的函數(shù)調(diào)用直接融合到MCU的執(zhí)行代碼中即可。RA8876M芯片上電初始化過程見圖3,初始化SDRAM參數(shù)、LCD屏幕參數(shù)和字庫圖庫參數(shù),并默認在最高亮度下點亮屏幕。在后續(xù)循環(huán)過程中,根據(jù)觸摸輸入或按鍵采集結(jié)果,不斷更新顯示內(nèi)容即可。
STM32F429通過RS232接口采集觸摸板控制器PenMount 6202B發(fā)出的A/D坐標信息,當任意一點被按下時,觸發(fā)MCU的RS232接收中斷,持續(xù)接收坐標數(shù)據(jù)。根據(jù)數(shù)據(jù)格式,每6個字節(jié)為1組,存入數(shù)組ucaRxBuf [5]中,其中:data[5]為校驗位;ucaRxBuf [4] + ucaRxBuf [3]為X坐標值;ucaRxBuf [2] + ucaRxBuf [1]為Y坐標值,當ucaRxBuf [0]為0x70時表示“按下”,當ucaRxBuf [0]為0x70時表示“抬起”[7]。當觸摸板感應到“按下”時,坐標判斷功能代碼如下,觸摸邏輯判斷見圖4。
if(0x70 == ucaRxBuf[0])
{
cnt_70_1 = i;
if(0x70 == ucaRxBuf[cnt_70_1 + 6])//every 6 byte
{
if(0xff == ((ucaRxBuf[cnt_70_1+0]+ucaRxBuf[cnt_70_1+1]+
{
//if pass check sum
if((ucaRxBuf[cnt_70_1+2]<4)&&(ucaRxBuf[cnt_70_1+4]<4))
{
Y_cdt = ucaRxBuf[cnt_70_1+2];
Y_cdt = Y_cdt<<8 | ucaRxBuf[cnt_70_1+1];
X_cdt = ucaRxBuf[cnt_70_1+4];
X_cdt = X_cdt<<8 | ucaRxBuf[cnt_70_1+3];
/*映射到屏幕顯示坐標,左上角(0,0),右下角(1024,768)*/
X_cdt_dis = ((X_cdt-0x60)*125)/100 ; //X coordinate
Y_cdt_dis = 768-(((Y_cdt-0x66)*100)/106); //Y coordinate
Draw_Circle_Fill(0xfff0,X_cdt_dis,Y_cdt_dis,10);
………
}
圖4 觸摸邏輯判斷
此外,PenMount控制器可通過USB接口連接上位機校準軟件,提供初始屏幕的多點坐標校準等功能。至此,模塊可實現(xiàn)觸摸板的觸摸采集功能,配合RA8876M芯片的畫圖切圖等操作,實現(xiàn)觸摸板某個位置按下時,液晶顯示屏快速響應。
該船舶機艙一體化顯控模塊控制板外觀見圖5,通過在某延伸報警系統(tǒng)中應用,驗證該模塊的性能優(yōu)良,操作安全方便。在設(shè)計中,通過開關(guān)量輸出引出的外部輔助按鍵可實現(xiàn)屏幕上下翻頁、報警應答、熄屏休眠和系統(tǒng)重啟等功能,面板外置的USB接口連接到模塊的ISP接口,可根據(jù)需要更新MCU程序,128 MB的圖庫芯片容量充足,能滿足大多數(shù)船舶機艙顯控系統(tǒng)的圖像存放需求。此外,通過MCU的DMA功能或RA8876M芯片的內(nèi)存塊搬運功能,均可實現(xiàn)整張屏幕的圖像快速刷寫,在15吋液晶顯示屏上的顯示效果良好,觸摸板的觸摸捕捉靈敏,刷新顯示等響應迅速,能充分滿足該船延伸報警系統(tǒng)對操作響應靈敏性的要求。
a) 正面
b) 背面
本文在充分了解和分析船舶機艙內(nèi)各類常規(guī)顯示控制系統(tǒng)之后,結(jié)合觸摸顯控裝置在各種工業(yè)場景中的優(yōu)良性能,設(shè)計實現(xiàn)了基于STM32F429+RA8876M的船舶機艙一體化顯控模塊。該模塊15吋液晶顯示屏展示的內(nèi)容較為豐富,提供有強大的數(shù)據(jù)采集、處理和存儲功能,加上良好的人機交互性能和多樣化的通信功能,能大大提高船舶機艙內(nèi)顯示模塊的操作便捷性。通過在某延伸報警系統(tǒng)中實際應用,驗證了該模塊具有優(yōu)良的性能,能推廣應用到其他船舶機艙顯控系統(tǒng)中。