礦井下通訊控制系統(tǒng)的人機(jī)接口模塊的設(shè)計(jì)
2 LCD7920的硬件驅(qū)動(dòng)
由于LCD7920的控制器SED1335和LPC2292的外部總線連接時(shí)沒(méi)有采用直接連接的方式,而是采用了通過(guò)可編程邏輯器件擴(kuò)展I/O口進(jìn)行間接連接的方式,SED1335的基本操作需要專門編寫(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所示。本文引用地址:http://m.butianyuan.cn/article/156312.htm
根據(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ò)非門變成高電平。接著,它們?cè)谌拷?jīng)過(guò)與非門轉(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ě)指令類似,這里不詳細(xì)作介紹。
3 GUI軟件的實(shí)現(xiàn)
嵌入式(GUI,Graphic User Interface)系統(tǒng)是在嵌入式系統(tǒng)中為特定的硬件設(shè)備或環(huán)境而設(shè)計(jì)的圖形用戶界面系統(tǒng)。
顯示任務(wù)與鍵盤任務(wù)的關(guān)系最密切,它們組成了最基本的人機(jī)接口,每一次鍵盤操作都伴隨著畫(huà)面的更新。由鍵盤操作更新的畫(huà)面內(nèi)容稱為“畫(huà)面的靜態(tài)部分”,因?yàn)檫@部分畫(huà)面內(nèi)容在沒(méi)有鍵盤操作時(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ù)提供,與鍵盤操作無(wú)關(guān),把各種不是鍵盤操作更新的畫(huà)面內(nèi)容稱為“畫(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ù)。
評(píng)論