彩色液晶智能控制系統(tǒng)的設(shè)計與實現(xiàn)
介紹了一種彩色液晶智能控制系統(tǒng)的實現(xiàn)方案,該系統(tǒng)封裝了彩色液晶的所有外圍電路,增加了智能控制功能。
它通過通信端口和外設(shè)相連,使對液晶的各種繁瑣控制過程簡化為接收外設(shè)指令的過程;還可通過配套軟件和微機通信,實現(xiàn)漢字庫更新和預置畫面等功能。
彩色液晶顯示器是現(xiàn)代高新技術(shù)產(chǎn)品,它具有體積小、功耗低、無輻射、壽命長、超薄、防震防爆等特點。彩色液晶顯示器的出現(xiàn),有力地推動了工控儀表、系統(tǒng)設(shè)備的微型化、節(jié)能化進程,為單片機等微處理器系統(tǒng)提供了完善的人機對話界面,具有LED和CRT顯示器所無法比擬的優(yōu)點。但在開發(fā)帶有液晶顯示設(shè)備的系統(tǒng)的過程中,用點陣操作顯示漢字和圖形圖像是非常繁瑣的工作,工作量很大、周期較長。為了減輕開發(fā)人員的負擔,提高開發(fā)效率,設(shè)計了彩色液晶智能控制系統(tǒng),把繁瑣的顯示操作封裝起來,簡化為一套簡單易用的指令系統(tǒng),只需通過接口向本系統(tǒng)發(fā)送簡單的指令,就可控制液晶顯示器的顯示,如畫曲線、顯示漢字和圖形圖像等。本系統(tǒng)為全數(shù)字化設(shè)計,顯示穩(wěn)定可靠,抗強電磁干擾,可用于機電、冶金、船舶、航空、鐵路、電力、通訊導航等領(lǐng)域的系統(tǒng)設(shè)備和智能儀表中。
1 系統(tǒng)硬件組成及工作原理
系統(tǒng)采用工業(yè)級AVR高速微處理器,內(nèi)置二級字庫,通過串口或三態(tài)數(shù)據(jù)總線口接收控制命令數(shù)據(jù), 自行對接收的命令和數(shù)據(jù)進行處理,實時顯示所需的各種曲線、中西文和圖形圖像。硬件原理框圖如圖1所示。
1.1 微處理器系統(tǒng)
微處理器是實現(xiàn)智能控制功能的核心部分,為了有效控制液晶顯示圖像的失真度,微處理器采用高速單片機AT90S8515(如果對顯示速度要求很高,例如顯示動畫等,可采用DSP芯片)。單片機系統(tǒng)上電后便處于實時接收命令狀態(tài),可完成和外設(shè)通信、對外設(shè)發(fā)送的命令進行解釋并執(zhí)行命令(如從漢字庫中取字模并在相應(yīng)的位置顯示出來)、在適當位置畫線、顯示預置圖形和畫面等。
1.2 電源部分
外部+12V電源由電源接口引入,分為兩路,一路經(jīng)過DC/DC變換后,產(chǎn)生直流偏置電源,為彩色液晶模塊提供所需電源;另一路經(jīng)DC/AC變換后,產(chǎn)生高壓交流電,為液晶屏背光燈CCFL供電。
1.3 通信端口
通信端口包括總線口和串行口,外部設(shè)備通過通信端口和本控制系統(tǒng)進行電氣溝通,并發(fā)送相關(guān)指令,從而達到對液晶顯示的各種控制??偩€口是一個并行口;串行口采用RS232電平標準,單片機的串行TTL電平經(jīng)過SIO轉(zhuǎn)換后,變?yōu)镽S232標準電平(負邏輯),這里高電平變?yōu)?8V,低電平變?yōu)?V。它可以和微機等標準串口直接相連,進行串行通信。如果其它控制系統(tǒng)通過串行口和本系統(tǒng)相連,只需三條線就可控制液晶的顯示。
1.4 FLASH閃存
閃存由4片Am29F040B組成,每片Am29F040B包括512K字節(jié),共2M字節(jié)。第一片Am29F040B用來存儲漢字點陣和圖形數(shù)據(jù),后三片共1.5M字節(jié)用來存儲圖像數(shù)據(jù)。液晶采用320×240分辨率的16位數(shù)字彩色液晶,RGB分量各包含5位,每點占用兩個字節(jié),1.5M可以存儲的滿屏圖像約10幅。由于Am29F040B的地址線多于微處理器的地址線,因此采用分頁技術(shù)進行處理,即把多出的地址線通過鎖存器與數(shù)據(jù)線相連,讀取數(shù)據(jù)前先向鎖存器寫入頁面地址數(shù)據(jù),即選中該地址對應(yīng)的頁,然后讀取該頁。用同樣的方法可以讀取其它頁,不同片子之間可以利用微處理器的空閑端口,通過控制Am29F040B的片選信號加以區(qū)分。應(yīng)用這種方法可以擴充FLASH閃存達數(shù)G之多。
1.5 液晶驅(qū)動電路及顯存
液晶驅(qū)動電路主要對液晶點陣完成讀寫操作,并產(chǎn)生液晶接口所需要的行場掃描信號、時鐘信號及其它控制信號。由于時序邏輯關(guān)系相當復雜,這里采用了復雜可編程邏輯芯片CPLD進行編程控制。外部總線對顯存進行讀寫操作,就可以對屏幕相應(yīng)象素的顏色與亮度進行控制。
2 系統(tǒng)軟件
軟件實質(zhì)上是一個通信程序,實時接收和執(zhí)行串口和總線口發(fā)來的命令。接收程序用匯編語言編寫。串口通信采用一位起始位、一位停止位、8位數(shù)據(jù)位、無較驗位的異步串行通信方式;總線口為并行口,數(shù)據(jù)發(fā)來時,引起中斷,在中斷子程序中,讀取總線口數(shù)據(jù)。主程序和中斷程序流程圖如圖2所示。[!--empirenews.page--]
系統(tǒng)上電后,首先進行初始化,接著循環(huán)讀取緩沖區(qū)指針。若有數(shù)據(jù),則讀取緩沖區(qū)數(shù)據(jù),并對數(shù)據(jù)進行分析;若為命令就讀取完整的命令信息,并執(zhí)行命令。否則,就將讀取內(nèi)容作為中西文字符顯示。命令主要有:畫線、畫矩形、畫橢圓、畫曲線、畫填充區(qū)域、中西文切換、光標跳轉(zhuǎn)、字庫更新及圖形圖像下載及顯示等。若有中斷發(fā)生,就進行中斷處理。外設(shè)引起的中斷共有兩個:串行中斷和總線口中斷,當有一個串行數(shù)據(jù)或總線口數(shù)據(jù)到達時,就會引發(fā)相應(yīng)的中斷。這兩種中斷雖然入口地址不同,但它們實現(xiàn)的功能是完全一樣的,都是讀取外設(shè)傳來的數(shù)據(jù),并將其放入緩沖區(qū)中。
從微機下載字庫或圖像文件時,數(shù)據(jù)量較大,在對板載接收程序編程時應(yīng)注意對128字節(jié)緩沖區(qū)的操作要合理,否則會導致軟件系統(tǒng)的崩潰。緩沖區(qū)是作為環(huán)形隊列來使用的,主要應(yīng)注意兩點:一是不要等緩沖區(qū)滿時才置DTR(見圖3)為“忙”狀態(tài),因為這樣正在傳輸?shù)淖止?jié)會丟失;二是當DTR出現(xiàn)一次“忙”后,緩沖區(qū)有較多空閑時,應(yīng)使DTR信號變?yōu)椤伴e”,否則會因DTR信號變化太頻繁而使程序失控。這里的算法是,當緩沖區(qū)還有6個字節(jié)空閑時,置DTR有效(CPU“忙”),暫停通信;之后,當緩沖區(qū)降到64字節(jié)的閑余時,置DTR為“閑”,恢復通信。這樣,雖然下載速度稍微受點影響,但通信的可靠性大大增強了;另一方面,下載完數(shù)據(jù)后,本系統(tǒng)要脫機和其它微處理器連接使用,下載速度對本系統(tǒng)的使用無任何影響。
3 預置功能的實現(xiàn)
預置功能主要是通過微機的通訊程序,為液晶顯示器預先儲存漢字字庫、圖形或圖像,并可隨時更新漢字字庫、圖形或圖像,以便系統(tǒng)脫機和其它微處理器連用時,可以利用這些資源。當其它微處理器系統(tǒng)發(fā)送顯示預置資源命令時,本系統(tǒng)就會控制液晶顯示器來顯示相應(yīng)的漢字點陣、圖形或圖像。存儲器采用非易失FLASH閃存,分為字庫、圖形和圖像三個區(qū)域。字庫存儲的是漢字字模的點陣,圖形存儲的是液晶圖形方式下的一些命令,圖像存儲的是BMP位圖點陣數(shù)據(jù)。
預置軟件是智能控制系統(tǒng)的配套軟件,用來下載PC機的圖形圖像到智能控制系統(tǒng)中,實現(xiàn)預置功能。它基于MSComm通信控件,采用VC++的MFC類庫編程,控件工作方式為查詢方式,可運行于Windows的所有操作系統(tǒng)中,通過微機串行口和本系統(tǒng)通信。連接關(guān)系如圖3所示。
由于通信距離較近,采用串行口直接相連方式。微機通信端口選擇COM1或COM2,它們是標準的RS232異步通訊接口。微機向智能控制系統(tǒng)發(fā)送數(shù)據(jù),進行單工串行通信,在智能界面板載128字節(jié)的緩沖區(qū),采用了DSR硬件握手程序。在通訊過程中,如果智能控制系統(tǒng)的微處理器忙,它就會置DTR(微機的DSR)為RS232標準的低電平,微機暫停發(fā)送;等智能控制系統(tǒng)的微處理器閑時,它又置DSR為高,微機繼續(xù)發(fā)送數(shù)據(jù)。
字庫預置是把漢字字庫點陣下載到FLSH的字庫區(qū);圖形預置時,軟件會根據(jù)選擇的液晶屏型號,使預置視區(qū)和液晶屏分辨率相同。此時菜單項包括畫線、畫矩形、畫橢圓、畫曲線、畫填充區(qū)域及寫漢字等。用戶可選擇在視區(qū)繪制圖形或?qū)憹h字的命令,然后按下發(fā)送命令,程序會在后臺把用戶繪制的圖形轉(zhuǎn)換為相應(yīng)的智能控制系統(tǒng)能識別的命令傳送出去,之后智能控制系統(tǒng)的接收程序會把這些命令存儲到FLASH的圖形區(qū)內(nèi);圖像預置時,程序可以打開一副BMP無壓縮圖像,在圖像上有一個大小和位置可改變的矩形框,用來選定傳送圖像的區(qū)域,按下發(fā)送命令后,程序提取矩形框內(nèi)圖像的寬高和點陣數(shù)據(jù),傳送出去。
在對BMP圖像數(shù)據(jù)進行提取時,應(yīng)注意以下幾點:第一,大多數(shù)BMP圖像點陣都是倒置的,起始點在左下角。第二,現(xiàn)在Windows操作系統(tǒng)下的位圖多為與設(shè)備無關(guān)的位圖,256色及以下位圖都帶有調(diào)色板,調(diào)色板每個顏色表示的三字節(jié)RGB分量按相反的順序排列,要注意調(diào)色板與位圖數(shù)據(jù)的正確對應(yīng)關(guān)系。第三,要把顏色信息轉(zhuǎn)化為本系統(tǒng)能識別的信息。系統(tǒng)采用的液晶屏為16位色(用兩字節(jié)表示),對于24位真彩色,要把RGB分量由256個等級轉(zhuǎn)化為32個等級,即把每點的RGB分量分別除以8,再合為兩個字節(jié);對于256色及以下位圖,要先找到每點對應(yīng)的調(diào)色板顏色表示的信息,然后按上面介紹的方法處理即可。這種方法雖然引入一些失真,但失真不大,完全滿足應(yīng)用要求。