為了滿(mǎn)足礦用通訊控制系統(tǒng)操作的易用性,主控制器的人機(jī)界面設(shè)計(jì)是本次設(shè)計(jì)的一個(gè)重點(diǎn)。人機(jī)界面設(shè)計(jì)包括控制器面板的設(shè)計(jì)及各個(gè)接口布局的設(shè)計(jì),設(shè)計(jì)不但要保證電氣性能,還要考慮整體美觀(guān)性、現(xiàn)場(chǎng)操作和安裝的方便性,最終確保系統(tǒng)整體的功能性和美觀(guān)性的完美統(tǒng)一。由于大屏幕的彩色液晶顯示器都需要高壓背光電路,不能滿(mǎn)足本質(zhì)安全的要求。因此本系統(tǒng)的控制器采用320x240點(diǎn)陣的液晶顯示器,其背光電路采用高亮LED,驅(qū)動(dòng)電壓低,滿(mǎn)足本質(zhì)安全要求。
用戶(hù)界面采用全中文的圖形化界面,并具備如下特點(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,由于它的引線(xiàn)較多,如果直接由CPU去控制LCD的顯示,會(huì)造成CPU負(fù)擔(dān)過(guò)重,用戶(hù)使用起來(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ù)總線(xiàn),可以直接連在CPU數(shù)據(jù)總線(xiàn)上;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è)備訪(fǎng)問(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的外部總線(xiàn)連接時(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總線(xiàn)收發(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ì)的圖形用戶(hù)界面系統(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)方格線(xiàn)和命令按健。因此,這里需要的畫(huà)圖功能分別是畫(huà)點(diǎn)函數(shù)、畫(huà)線(xiàn)函數(shù)和字符顯示函數(shù)。
在畫(huà)面顯示前,要初始化液晶顯示屏(包括設(shè)置顯示方式和清屏),這個(gè)功能由函數(shù)GUI_Init()來(lái)實(shí)現(xiàn)。該函數(shù)可以強(qiáng)制刷新主界面,并且清屏。畫(huà)線(xiàn)功能由函數(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為線(xiàn)起點(diǎn)所在的行位置;StartY為線(xiàn)起點(diǎn)所在的列位置;EndX為線(xiàn)終點(diǎn)所在的行位置;EndY為線(xiàn)終點(diǎn)所在的列位置;color為顯示顏色(對(duì)于黑白色LCD,為0時(shí),滅;為1時(shí),顯示);Layer為當(dāng)前畫(huà)的線(xiàn)所在圖層,其部分代碼如下所示。
菜單的反色顯示處理由函數(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)線(xiàn)(非屏蔽的雙絞線(xiàn),線(xiàn)路電阻約為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芯通信線(xiàn)纜(包括+12 V電源,GND,CANH,CANL,NF+,NF-和SKR 7路信號(hào))與智能設(shè)備相連,被監(jiān)視設(shè)備運(yùn)行異常,系統(tǒng)按事先編制的邏輯進(jìn)行控制輸出。系統(tǒng)能在線(xiàn)自檢,通過(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的利用率。