為了滿足礦用通訊控制系統(tǒng)操作的易用性,,主控制器的人機(jī)界面設(shè)計(jì)是本次設(shè)計(jì)的一個(gè)重點(diǎn),。人機(jī)界面設(shè)計(jì)包括控制器面板的設(shè)計(jì)及各個(gè)接口布局的設(shè)計(jì),設(shè)計(jì)不但要保證電氣性能,,還要考慮整體美觀性、現(xiàn)場(chǎng)操作和安裝的方便性,,最終確保系統(tǒng)整體的功能性和美觀性的完美統(tǒng)一,。由于大屏幕的彩色液晶顯示器都需要高壓背光電路,不能滿足本質(zhì)安全的要求,。因此本系統(tǒng)的控制器采用320x240點(diǎn)陣的液晶顯示器,,其背光電路采用高亮LED,驅(qū)動(dòng)電壓低,,滿足本質(zhì)安全要求,。
用戶界面采用全中文的圖形化界面,并具備如下特點(diǎn):1)操作方式簡(jiǎn)單,,一般人員即可操作,;2)彈出式的故障提示界面;3)所有提示和狀態(tài)顯示均使用中文,。
1 液晶顯示模塊
由于本設(shè)計(jì)中LPC2292微處理器的I/O端口要完成鍵盤(pán)輸入,、LED指示輸出、LCD屏幕控制等很多功能,,為了節(jié)約I/O資源,,很多功能都采用了對(duì)微處理器I/O端口分時(shí)復(fù)用的方法,這樣在不影響系統(tǒng)整體性能的基礎(chǔ)上充分地利用了有限的資源,。為了實(shí)現(xiàn)LPC2292的D0~D15端口對(duì)鍵盤(pán),、LED指示輸出、LCD屏幕控制等多種功能的分時(shí)輸入/輸出操作,對(duì)于鍵盤(pán)輸入的讀取,,采用了Altera公司的CPLD芯片EPM7128作為以上器件的數(shù)據(jù)傳輸控制通道,。
由于目前最常用的單色LCD控制器SED1335的數(shù)據(jù)傳輸速度相對(duì)于LPC2292顯得十分緩慢,經(jīng)過(guò)初期的計(jì)算和實(shí)際測(cè)量,,刷新一屏320x240點(diǎn)的圖片最快需要130ns左右,,故EPM7128對(duì)LCD模塊還起到數(shù)據(jù)緩沖譯碼的作用。
對(duì)于常用的LCD,,由于它的引線較多,,如果直接由CPU去控制LCD的顯示,會(huì)造成CPU負(fù)擔(dān)過(guò)重,,用戶使用起來(lái)很不方面,。為了解決這種矛盾,本課題運(yùn)用北京三春暉電子科技發(fā)展有限公司出品的液晶顯示模塊——SG320240FPD,。SG320240FPD顯示模塊將LCD液晶顯示驅(qū)動(dòng)電路和分壓電路集成在一塊板子上,,是一種集顯示、控制與驅(qū)動(dòng)為一體的顯示器件,,很好地解決了CPU的負(fù)擔(dān)問(wèn)題,。中文液晶顯示模塊SG320240FPD可實(shí)現(xiàn)漢字、ASCII碼,、位圖形的同屏顯示,。液晶顯示模塊方框圖如圖1所示。
SG320240FPD液晶的核心器件是SED1335控制器芯片,。SED1335是SEIKO EPSON公司出品的液晶顯示控制器,,其具有較強(qiáng)功能的I/O緩沖器,指令功能豐富,,4位數(shù)據(jù)并行發(fā)送,,最大驅(qū)動(dòng)能力為640x256點(diǎn)陣。
從圖1可以看出,,DB為數(shù)據(jù)總線,,可以直接連在CPU數(shù)據(jù)總線上;CS為片選信號(hào),,低電平有效,;AO為I/O緩沖器數(shù)據(jù)選擇信號(hào),為1時(shí)寫(xiě)指令代碼或讀數(shù)據(jù),,為0時(shí),,寫(xiě)數(shù)據(jù)或讀狀態(tài)字;RD,、WR分別為讀操作信號(hào)和寫(xiě)操作信號(hào),,低電平有效,。LPC2292的控制信號(hào)通過(guò)EPM7128采用I/O設(shè)備訪問(wèn)形式控制液晶控制器SED1335。然后,,SED1335通過(guò)SEG驅(qū)動(dòng)器向液晶顯示器提供顯示數(shù)據(jù),,通過(guò)COM驅(qū)動(dòng)器向液晶顯示器提供行掃描信號(hào)。在COM和SEG的配合下,,實(shí)現(xiàn)RAM矩陣內(nèi)容的液晶顯示,。
驅(qū)動(dòng)器模塊是專(zhuān)用芯片與液晶顯示器的接口,其作用是提高驅(qū)動(dòng)能力,、實(shí)現(xiàn)偏壓極性的轉(zhuǎn)換,。它包括COM驅(qū)動(dòng)器、SEG驅(qū)動(dòng)器及COM的移位寄存器,。
COM驅(qū)動(dòng)器由控制電路,、電壓變換電路、電壓選擇電路,、COMS驅(qū)動(dòng)電路等子模塊組成,。COM移位寄存器與COM驅(qū)動(dòng)器相配合,向液晶顯示屏提供行掃描信號(hào),。COM移位寄存器實(shí)現(xiàn)0行~31行行掃描,,電壓變換電路和電壓選擇電路實(shí)現(xiàn)行驅(qū)動(dòng),控制電路實(shí)現(xiàn)對(duì)COM Driver的控制,,CO-MS獨(dú)立完成第32行掃描,。
SEG驅(qū)動(dòng)器闈向液晶顯示屏提供顯示數(shù)據(jù),該模塊由控制電路,、電壓變換電路和電壓選擇電路實(shí)現(xiàn)對(duì)顯示數(shù)據(jù)鎖存電路輸出RAM數(shù)據(jù)的驅(qū)動(dòng)。
2 LCD7920的硬件驅(qū)動(dòng)
由于LCD7920的控制器SED1335和LPC2292的外部總線連接時(shí)沒(méi)有采用直接連接的方式,,而是采用了通過(guò)可編程邏輯器件擴(kuò)展I/O口進(jìn)行間接連接的方式,,SED1335的基本操作需要專(zhuān)門(mén)編寫(xiě)相應(yīng)的操作函數(shù),包括液晶屏復(fù)位函數(shù),、寫(xiě)指令代碼,、寫(xiě)數(shù)據(jù)或參數(shù)、讀命令地址,、讀數(shù)據(jù)或參數(shù)和SED1335_write函數(shù)(寫(xiě)一條完整的指令),。
從軟件角度看,SED1335需要的控制信號(hào)包括:復(fù)位信號(hào)RST,、讀信號(hào)RD,、寫(xiě)信號(hào)WE、地址信號(hào)A0(命令或數(shù)據(jù)方式控制),、片選信號(hào)AEN和數(shù)據(jù)信號(hào)D0~D7,。其中,,RST、RD,、WE,、A0和CS信號(hào)由CPLD擴(kuò)展的輸出端口LCD_CMD控制,D0~D7由CPLD擴(kuò)展的雙向端口LCD_DATA控制,。另外,,為了控制數(shù)據(jù)信號(hào)LD0~LD7的方向,還在CPLD內(nèi)部設(shè)置了DataOut信號(hào),。當(dāng)DataOut=0時(shí)數(shù)據(jù)由CPU通過(guò)LCD_DATA向SED1335輸入,;當(dāng)Data-Out=1時(shí)SED1335通過(guò)LCD_DATA向CPU輸出的數(shù)據(jù)。下面將具體分析寫(xiě)指令信號(hào)的全過(guò)程,。
首先,,要知道在寫(xiě)指令的過(guò)程中,復(fù)位信號(hào)RES置高電平不起作用,,讀信號(hào)RD置高電平也不起作用,,寫(xiě)信號(hào)WE置為低電平,片選信號(hào)AEN置為低電平,。由于寫(xiě)指令是要數(shù)據(jù)由LCD_DATA向SED1335輸出,,因此DataOut信號(hào)為低電平。于是寫(xiě)指令的時(shí)序圖如圖2所示,。
根據(jù)寫(xiě)指令的時(shí)序圖,,對(duì)于液晶模塊低層驅(qū)動(dòng)的CPLD數(shù)字電路設(shè)計(jì)如圖3所示。
從圖3可知,,首先在0x83000004地址空間中,,A1高電平保持不變,A0,、A2,、A3、A4,、A5,、A6和地址使能信號(hào)AEN分別經(jīng)過(guò)非門(mén)變成高電平。接著,,它們?cè)谌拷?jīng)過(guò)與非門(mén)轉(zhuǎn)變?yōu)榈碗娖?,設(shè)為X。從時(shí)序圖中,,可以看出RD一直保持高電平,,它和X相“或”后,輸出為高電平CS—LCD2RD,。由于CS—LCD2RD低電平有效,,所以讀指令不起作用,。同理,X和WE相“或”后,,輸出為低電平CS—LCD2WE,,然后CS—LCD2WE與74273的CLK位相連,即CLK位為低電平,。八重D觸發(fā)器74273的STR管腳信號(hào)是由RTS復(fù)位信號(hào)決定,,為高電平。根據(jù)八重D觸發(fā)器74273的真值表,,STR為高電平,,CLK為低電平,輸出和輸入相等,。下一步輸出信號(hào)通過(guò)74245總線收發(fā)器,,74245的OE管腳由Dataout信號(hào)決定。由于是寫(xiě)代碼指令,,Dataout=0,,數(shù)據(jù)由CPU通過(guò)LCD_DATA向SED1335輸入。由于OE管腳為低電平,,根據(jù)74245真值表,,輸入輸出保持不變。LD0~LD7就等于輸入信號(hào),,把它接到SG320240FPD的D0~D7管腳,,SED1335讀取CPU數(shù)據(jù)完畢。SED1335其他操作的分析過(guò)程與寫(xiě)指令類(lèi)似,,這里不詳細(xì)作介紹,。
3 GUI軟件的實(shí)現(xiàn)
嵌入式(GUI,Graphic User Interface)系統(tǒng)是在嵌入式系統(tǒng)中為特定的硬件設(shè)備或環(huán)境而設(shè)計(jì)的圖形用戶界面系統(tǒng),。
顯示任務(wù)與鍵盤(pán)任務(wù)的關(guān)系最密切,,它們組成了最基本的人機(jī)接口,每一次鍵盤(pán)操作都伴隨著畫(huà)面的更新,。由鍵盤(pán)操作更新的畫(huà)面內(nèi)容稱(chēng)為“畫(huà)面的靜態(tài)部分”,因?yàn)檫@部分畫(huà)面內(nèi)容在沒(méi)有鍵盤(pán)操作時(shí)是固定不變,。
還有某些任務(wù)也需要顯示任務(wù)提供服務(wù),,更新畫(huà)面的指定部分的內(nèi)容,如實(shí)時(shí)時(shí)鐘顯示,、皮帶工作狀態(tài)和各種現(xiàn)場(chǎng)物理參數(shù)的動(dòng)態(tài)顯示等,。這部分西面內(nèi)容的數(shù)據(jù)由不同的任務(wù)提供,與鍵盤(pán)操作無(wú)關(guān),,把各種不是鍵盤(pán)操作更新的畫(huà)面內(nèi)容稱(chēng)為“畫(huà)面的動(dòng)態(tài)部分”,。不管是“畫(huà)面的靜態(tài)部分”,,還是“畫(huà)面的動(dòng)態(tài)部分”,都是調(diào)用GUI接口函數(shù)來(lái)實(shí)現(xiàn)的,。顯示任務(wù)的優(yōu)先級(jí)設(shè)定較低,,其主要作用是初始化系統(tǒng)畫(huà)面,顯示按鍵操作的效果和采樣波形,。
在液晶顯示屏上的畫(huà)面主要是:主信息窗口,,當(dāng)前皮帶運(yùn)行狀態(tài)顯示,坐標(biāo)方格線和命令按健,。因此,,這里需要的畫(huà)圖功能分別是畫(huà)點(diǎn)函數(shù)、畫(huà)線函數(shù)和字符顯示函數(shù),。
在畫(huà)面顯示前,,要初始化液晶顯示屏(包括設(shè)置顯示方式和清屏),這個(gè)功能由函數(shù)GUI_Init()來(lái)實(shí)現(xiàn),。該函數(shù)可以強(qiáng)制刷新主界面,,并且清屏。畫(huà)線功能由函數(shù)LCD_Line()來(lái)實(shí)現(xiàn),,其函數(shù)原型為“void LCD_Line(uint16 StartX,,uint16StartY,uint16 EndX,,uint16 EndY,,uint8 Color,uint8 Layer)”,。其各參數(shù)的定義為:StartX為線起點(diǎn)所在的行位置,;StartY為線起點(diǎn)所在的列位置;EndX為線終點(diǎn)所在的行位置,;EndY為線終點(diǎn)所在的列位置,;color為顯示顏色(對(duì)于黑白色LCD,為0時(shí),,滅,;為1時(shí),顯示),;Layer為當(dāng)前畫(huà)的線所在圖層,,其部分代碼如下所示。
菜單的反色顯示處理由函數(shù)LCD_Fill()來(lái)實(shí)現(xiàn),,這里的反色處理是指當(dāng)操作者選擇主信息窗口的設(shè)置,、狀態(tài)、紀(jì)錄或操作等任意菜單時(shí),,選定菜單會(huì)呈現(xiàn)與周?chē)h(huán)境有差異的顏色,。
字符顯示功能由函數(shù)LCD_DispCh()來(lái)實(shí)現(xiàn),。其函數(shù)原型為 “void LCD_DispCh(uint16 X,uint16 Y,,uint8 Chineselndex)”,。其中X為指定顯示位置的X坐標(biāo);Y為指定顯示位置的Y坐標(biāo),;ChineseIndex為定義的漢字索引變量,。由于本設(shè)計(jì)的液晶顯示基本上采甩漢字,為了顯示漢字,,必須有漢字的點(diǎn)陣碼,。本系統(tǒng)通過(guò)提取漢字的點(diǎn)陣數(shù)據(jù)。及運(yùn)行造字程序編制特殊字符的點(diǎn)陣數(shù)據(jù),,創(chuàng)建了顯示字庫(kù),。用點(diǎn)陣數(shù)據(jù)生成顯示字庫(kù)時(shí),依次對(duì)每個(gè)字符用一個(gè)字節(jié)進(jìn)行編碼,,漢字/字符提取程序可根據(jù)需顯示的字符的編碼,,得到相應(yīng)的點(diǎn)陣數(shù)據(jù)在字庫(kù)中的偏移地址,計(jì)算出存放首地址后,,取出點(diǎn)陣數(shù)據(jù)填充到外部的RAM中的相應(yīng)位置,。每屏要顯示的菜單制成表,根據(jù)表號(hào),,就可以提取出所要顯示的字符編號(hào),。
4 人機(jī)接口界面的調(diào)試
為了進(jìn)一步測(cè)試系統(tǒng)性能,在實(shí)驗(yàn)室環(huán)境使用了標(biāo)準(zhǔn)的超5類(lèi)網(wǎng)線(非屏蔽的雙絞線,,線路電阻約為9.8Ω/100 m)串聯(lián)起來(lái)進(jìn)行了完整的500 m距離測(cè)試,,發(fā)現(xiàn)人機(jī)接口模塊可以正常地顯示出礦井下智能設(shè)備的工作狀態(tài),它接收其他任務(wù)的操作指令,,完成顯示畫(huà)面內(nèi)容的動(dòng)態(tài)更新,。顯示界面如圖4所示。
從圖4中可以看到,,最上面一行為主信息窗口,,包括應(yīng)用菜單和實(shí)時(shí)時(shí)鐘。中間一行為當(dāng)前皮帶運(yùn)行狀態(tài),,第一個(gè)是MCCS的主控制器,,通過(guò)7芯通信線纜(包括+12 V電源,GND,,CANH,CANL,,NF+,,NF-和SKR 7路信號(hào))與智能設(shè)備相連,,被監(jiān)視設(shè)備運(yùn)行異常,系統(tǒng)按事先編制的邏輯進(jìn)行控制輸出,。系統(tǒng)能在線自檢,,通過(guò)圖形界面顯示故障設(shè)備的位置和故障情況。
5 結(jié)束語(yǔ)
人機(jī)接口采用圖形化方式實(shí)現(xiàn),,全中文界面,,專(zhuān)用操作按鈕和鍵盤(pán),簡(jiǎn)潔方便,、通俗易懂,。液晶屏在將來(lái)可以改進(jìn)成TFT液晶(薄膜場(chǎng)效應(yīng)晶體管),不但可以提高顯示屏的反應(yīng)速度,,同時(shí)可以做到高分辨率的顯示屏幕信息,。并且人機(jī)接口界面可以擴(kuò)展為智能化的設(shè)計(jì),有自己獨(dú)立的CPU,,屬于單獨(dú)的模塊,,會(huì)大大提高了主控制器CPU的利用率。