亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        利用計(jì)算機(jī)的并口控制LCD液晶屏的研究及應(yīng)用

        2014-01-01 00:00:00趙筍

        摘 要:計(jì)算機(jī)的并行接口一開始是作為打印機(jī)接口而設(shè)計(jì)的。隨著計(jì)算機(jī)周邊設(shè)備的不斷擴(kuò)展,人們對(duì)提高計(jì)算機(jī)外設(shè)的數(shù)據(jù)采集速度的要求也越來越高。傳統(tǒng)的異步串行通訊方式雖然具有數(shù)據(jù)傳輸距離較遠(yuǎn)的優(yōu)勢,但是由于數(shù)據(jù)傳輸速度慢,會(huì)造成傳輸速率的瓶頸問題。所以在一些需要高速數(shù)據(jù)傳輸?shù)膱龊希褂貌⑿薪涌谝恢笔且环N比較理想的解決方法。

        通常,我們以基于單片機(jī)作為LCD液晶顯示系統(tǒng)控制器,PC機(jī)與單片機(jī)通過串口通訊,發(fā)送繪圖指令或數(shù)據(jù)。我們采用的液晶顯示控制器的芯片是RA8803,并且內(nèi)建雙圖層(Two Page)的顯示內(nèi)存。液晶屏尺寸大小為5.7\",分辨率為320*240的黑白點(diǎn)陣。一屏的數(shù)據(jù)為9600字節(jié)。如果PC機(jī)與單片機(jī)通訊采用19200波特率,一秒鐘最快傳輸2400個(gè)字節(jié),傳完9600字節(jié)就需要4秒鐘,并且對(duì)液晶控制器發(fā)送數(shù)據(jù)時(shí),必須先發(fā)送兩次命令設(shè)定它的X,Y坐標(biāo)值。這樣通訊時(shí)間就可能達(dá)到12秒以上。雖然液晶屏是靜態(tài)顯示,如果顯示界面不變化,可以不用實(shí)時(shí)刷新。但不能應(yīng)用于需要快速刷新和界面變化速度較快的情況下。這時(shí),就需要尋找一種新的方式來突破現(xiàn)有的傳輸途徑。來提高刷新頻率。由于串口的電氣特性決定了它的傳輸速度慢,所以必須去掉中間接口。直接和屏進(jìn)行通訊。這樣就必須有一個(gè)代替單片機(jī)的處理器。由于PC機(jī)上通常向外提供的接口除了串口外,還有一個(gè)并口,它的電氣特性和液晶屏的電氣特性能夠很好的匹配。因此決定采用PC機(jī)直接液晶屏進(jìn)行圖像的顯示。利用高速的并口驅(qū)動(dòng)LCD控制器,把電腦屏幕上一定區(qū)域范圍內(nèi)的圖像顯示到LCD液晶屏上。這樣在液晶屏幕上就能實(shí)時(shí)顯示屏幕上的圖像。

        關(guān)鍵詞:打印機(jī)并口;屏幕截圖;多線程;圖形化;線程同步;圖像映射;局部刷新

        中圖分類號(hào):TP273

        1 引言

        1.1 背景

        隨著《國家發(fā)展與改革委員會(huì)關(guān)于農(nóng)產(chǎn)品批發(fā)市場項(xiàng)目建設(shè)實(shí)施的通知》和《國家發(fā)展與改革委員會(huì)辦公廳印發(fā)全國重點(diǎn)農(nóng)產(chǎn)品批發(fā)市場試點(diǎn)項(xiàng)目信息系統(tǒng)和檢驗(yàn)檢測系統(tǒng)技術(shù)方案(試行)的通知》各地的農(nóng)產(chǎn)品批發(fā)市場將通過運(yùn)用電子計(jì)算機(jī)及相應(yīng)的輔助設(shè)備和數(shù)據(jù)庫技術(shù),建立符合農(nóng)產(chǎn)品批發(fā)市場實(shí)際情況的信息化管理系統(tǒng),實(shí)現(xiàn)市場的信息化管理,增強(qiáng)市場的綜合管理能力和市場競爭力。為適應(yīng)市場需求,公司決定開發(fā)農(nóng)貿(mào)秤儀表XK3109-1,XK3109-1是專為農(nóng)產(chǎn)品交易設(shè)計(jì),主板采用計(jì)算機(jī)的工控板,速度快,可擴(kuò)展性強(qiáng)。主顯示為5.7\"LCD單色顯示器,分辨率為320*240可顯示各種黑白圖像,該產(chǎn)品主要作為交易終端使用。原先我們對(duì)LCD的控制是通過一個(gè)轉(zhuǎn)接電路板來實(shí)現(xiàn)。計(jì)算機(jī)通過串口把指令傳送到轉(zhuǎn)接電路板。電路板再把指令轉(zhuǎn)換后,傳送到液晶顯示器。這種方式在一般傳輸數(shù)據(jù)少,界面不是很復(fù)雜的情況下。能夠正常使用。但由于為了迎接上海世博會(huì)的到來,上海西郊國際農(nóng)產(chǎn)品交易中心(簡稱西郊國際)定購了我們一批農(nóng)貿(mào)秤,對(duì)我們的顯示方式和速度及內(nèi)容提出了更高技求要求。硬件采用標(biāo)準(zhǔn)的工控板,硬盤要采用DOM電子盤,操作系統(tǒng)采用裁減版的WindwosXPE,但顯示界面不能使用標(biāo)準(zhǔn)的WinXP桌面方式,業(yè)務(wù)界面和操作界面需要按定制的顯示。并且要實(shí)時(shí)刷新。這樣用串口實(shí)現(xiàn)這樣的功能和刷新速度顯然完不成任務(wù),在經(jīng)過分析后,提出了兩種解決方案:

        方案一:購買一塊PCI插槽的I/O控制板,通過I/O直接驅(qū)動(dòng)液晶屏。這個(gè)方案需要增加硬件成本。當(dāng)時(shí)我們的儀表殼做的體積比較小,如果要增加這個(gè)板子,就必須改動(dòng)殼體的結(jié)構(gòu)大小。

        方案二:由于我們的打印機(jī)是小型的針式打印機(jī),它使用的是串口通訊方式。這樣主板上的并口就空閑下來,沒有使用。通過電氣特性的分析和控制電路的分析,發(fā)現(xiàn)并口和液晶控制電路可以不需要大的電路改動(dòng)就可以直接連到一起。并且分析的并口的邏輯電路和引角,完全可以控制LCD液晶屏,達(dá)到目標(biāo)要求。

        通過上述兩個(gè)方案的對(duì)比,我們決定采用方案二來對(duì)液晶屏進(jìn)行控制。

        1.2 PC機(jī)并口結(jié)構(gòu)及特性

        通常所說的并行接口一般稱為Centronics接口,也稱IEEE1284,最早由Centronics Data Computer Corporation公司在20世紀(jì)60年代中期制定。Centronics公司當(dāng)初是為點(diǎn)陣行式打印機(jī)設(shè)計(jì)的并行接口,1981年被IBM公司采用,后來成為IBM PC計(jì)算機(jī)的標(biāo)準(zhǔn)配置。它采用了當(dāng)時(shí)已成為主流的TTL電平,每次單向并行傳輸1字節(jié)(8-bit)數(shù)據(jù),速度高于當(dāng)時(shí)的串行接口(每次只能傳輸1bit),獲得廣泛應(yīng)用,成為打印機(jī)的接口標(biāo)準(zhǔn)。

        1.3 應(yīng)用程序?qū)Σ⒖诘脑L問

        早期的Windows98以及更低版本的操作系統(tǒng),可以直接訪問并口硬件資源,比如使用C語言中的inp()和outp()函數(shù)來編寫簡單的通訊程序。但Windows 2000/XP的操作系統(tǒng)采用了一些保護(hù)措施,阻止對(duì)端口的直接訪問。這樣做雖然提高了系統(tǒng)運(yùn)行的可靠性,但也增加了軟件上實(shí)現(xiàn)通訊的難度。

        WinIO程序庫允許在32位的Windows應(yīng)用程序中直接對(duì)I/O端口和物理內(nèi)存進(jìn)行存取操作。通過使用一種內(nèi)核模式的設(shè)備驅(qū)動(dòng)器編程技巧,它繞過了Windows系統(tǒng)的保護(hù)機(jī)制。WinNT/2000/XP下,WinIO函數(shù)庫只允許被具有管理者權(quán)限的應(yīng)用程序調(diào)用。如果使用者不是以管理者的身份進(jìn)入的,則WinIO.DLL不能夠被安裝,也不能激活WinIO驅(qū)動(dòng)器。通過在管理者權(quán)限下安裝驅(qū)動(dòng)器軟件就可以克服這種限制。然而,在這種情況下,ShutdownWinIo函數(shù)不能在應(yīng)用程序結(jié)束之前被調(diào)用,因?yàn)樵摵瘮?shù)將WinIO驅(qū)動(dòng)程序從系統(tǒng)注冊(cè)表中刪除。

        該函數(shù)庫提供4個(gè)函數(shù)功能調(diào)用:

        bool_stdcall InitializeWinIo();初始化WioIO函數(shù)庫

        void _stdcall ShutdownWinIo();清除內(nèi)存中WinIO庫

        bool _stdcall GetPortVal(WORD wPortAddr,PDWORD pdwPortVal,BYTE bSize);從一個(gè)輸入或輸出端口讀取一個(gè)字節(jié)/字/雙字?jǐn)?shù)據(jù)。

        bool _stdcall SetPortVal(WORD wPortAddr,DWORD dwPortVal,BYTE bSize);PBYTE_stdcall MapPhysToLin(PBYTE pbPhysAddr,DWORD dwPhysSize,HANDLE *pPhysicalMemoryHandle)

        通過這4個(gè)函數(shù),我們就可以直接訪問并口的寄存器了。

        1.4 RA8803 LCD控制器的結(jié)構(gòu)及特性

        RA8803是一個(gè)中英文文字與繪圖模式的點(diǎn)矩陣液晶顯示(LCD)控制器,內(nèi)建512KByte的ROM字形碼,可以顯示中文字型、數(shù)字符號(hào)、英日歐文等字母,并且內(nèi)建雙圖層(Two Page)的顯示內(nèi)存。在文字模式中,RA8803可接收標(biāo)準(zhǔn)中文文字內(nèi)碼直接顯示中文,而不需要進(jìn)入繪圖模式以繪圖方式描繪中文,可以節(jié)省許多微處理器時(shí)間,提升液晶顯示中文之處理效率。

        2 PC機(jī)上的圖像映射到液晶屏的實(shí)現(xiàn)

        2.1 算法流程

        圖1

        2.2 關(guān)于多線程與線程同步的問題

        由于本驅(qū)動(dòng)程序采用的是在另一個(gè)子線程中截取PC機(jī)屏幕上的一定區(qū)域圖像,并把數(shù)據(jù)發(fā)送到液晶控制器。在這個(gè)過程中需要獲取當(dāng)前窗體的設(shè)備句柄,以定位要截取的屏幕區(qū)域,在實(shí)際使用過程中,由于PC機(jī)的窗體是可以隨意移到和最小化的,所以在線程中截取圖像時(shí),一定要進(jìn)行窗體的恢復(fù)和定位。因此在每次截取圖像前,先利用線程中的同步函數(shù),把當(dāng)前的程序從子線程中切換到主線中,定位完成后,再回到子線中截取和處理圖像。

        2.3 關(guān)于截圖頻率及局部刷新屏幕的問題

        經(jīng)過實(shí)際測試,完整的發(fā)送一屏數(shù)據(jù)需要400ms。為了能夠把PC機(jī)屏幕上部分區(qū)域動(dòng)態(tài)的圖像顯示到液晶屏上。如要顯示文字光標(biāo)的閃爍和鼠標(biāo)光標(biāo)的移動(dòng),這時(shí)需要提高數(shù)據(jù)的傳輸速度。經(jīng)過仔細(xì)分析和對(duì)比后,發(fā)現(xiàn)大部分時(shí)間前一幀和后一幀的數(shù)據(jù)80%~95%以上是一樣,由于如今的PC機(jī)處理速度很快,傳輸?shù)闹饕款i在通過并口發(fā)數(shù)上。這樣就考慮是否能夠在向并口發(fā)送時(shí)先把上一幀的數(shù)據(jù)保存下來,當(dāng)發(fā)送下一幀數(shù)據(jù)時(shí)先和上一幀的數(shù)據(jù)進(jìn)行比較,發(fā)送時(shí)僅發(fā)與上一幀發(fā)生改變了的數(shù)據(jù)。這樣就大大加快了刷新液晶屏的頻率。通過實(shí)際測試。利用局部刷新技術(shù)后,在正常顯示數(shù)據(jù)的情況下,98%的時(shí)間內(nèi)的刷新周期為20ms;這個(gè)刷新速率可以滿足一般動(dòng)畫的顯示。

        2.3 利用可視化界面設(shè)計(jì)軟件來設(shè)計(jì)液晶屏的用戶界面

        由于在某些商業(yè)或工業(yè)應(yīng)用場合,用戶的界面要求比較復(fù)雜,如一些不規(guī)則圖形或表格。如果單純靠畫點(diǎn)或畫線的方法來實(shí)現(xiàn)。工作量比較大,況且用戶的需求如果發(fā)生變化,界面的改動(dòng),將是一個(gè)很頭疼的問題。

        可視化編程,亦即可視化程序設(shè)計(jì):以“所見即所得”的編程思想為原則,力圖實(shí)現(xiàn)編程工作的可視化,即隨時(shí)可以看到結(jié)果。我們可以利用可視化的界面設(shè)計(jì)軟件來設(shè)計(jì)復(fù)雜的用戶界面,通過屏幕映射技術(shù),把設(shè)計(jì)的界面直接映射到液晶屏上。

        3 結(jié)束語

        通過以上分析,我們實(shí)現(xiàn)了把PC機(jī)上一定區(qū)域的內(nèi)容通過PC機(jī)的并口直接映射到液晶顯示屏上。這樣的硬件設(shè)備投資小,編程速度快。如果液晶屏是彩色的,通過擴(kuò)展程序還可把PC機(jī)屏幕的彩色信息映射到液晶屏上。

        參考文獻(xiàn):

        [1]Chris Cant.WindowsWDM設(shè)備驅(qū)動(dòng)程序開發(fā)指南[M].北京:機(jī)械工業(yè)出版社,2003:8-21.

        [2]Jan Axelson.并行端口大全[M].北京:中國電力出版社,2001:251-268.

        [3]陸健峰,李晶限,張維新.基于CPLD的兩主機(jī)間的雙向通信接口[J].微計(jì)算機(jī)信息,2004(08).

        [4]I/O端口和尋址[OL].http://book.51cto.com/art/200812/102818.htm.

        [5]RA8803-8822雙圖層中文文字LCD控制規(guī)格說明書[Z].

        作者簡介:趙筍(1973.11-),山西晉城人,本科,研究方向:計(jì)算機(jī)軟件開發(fā)及應(yīng)用。

        作者單位:太原太航電子科技有限公司,太原 030006

        国产又大又硬又粗| 久久精品国产亚洲vr| 久久精品国产热久久精品国产亚洲| 中文字幕久久国产精品| 久久99热国产精品综合| 最近中文字幕大全在线电影视频| 国产精品久免费的黄网站| 国产人成在线成免费视频 | 精品日韩在线观看视频| 久久黄色视频| 最新国产乱人伦偷精品免费网站| 精品国偷自产在线不卡短视频| 亚洲激情视频在线观看a五月| 曰韩内射六十七十老熟女影视| 国产午夜福利在线播放| 日本精品一区二区三本中文| 一本到亚洲av日韩av在线天堂| 波多野结衣av一区二区全免费观看| 亚洲av无码专区电影在线观看 | 国产女主播一区二区久久| 狼人青草久久网伊人| 91精品视品在线播放| 女同性恋一区二区三区四区| 黄色av一区二区在线观看| 国产美女久久精品香蕉69| 成人午夜视频一区二区无码| 国产精品女丝袜白丝袜美腿| 国产乱对白刺激视频| 无码人妻精品一区二区三区66| 激,情四虎欧美视频图片| 国产激情自拍在线视频| 国产精品 人妻互换| AV无码一区二区三区国产| 日韩一区二区中文字幕视频| 亚洲国产精品久久久久久无码| 国产精品久久久久电影网| 久久HEZYO色综合| 国产精品网站91九色| 无码人妻久久一区二区三区不卡| 婷婷综合缴情亚洲狠狠| 一区二区人妻乳中文字幕|