• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于嵌入式Linux變壓器監(jiān)測終端LCD驅(qū)動(dòng)程序的設(shè)計(jì)

    2013-12-12 05:23:56趙江東姚有峰馬小陸
    巢湖學(xué)院學(xué)報(bào) 2013年3期
    關(guān)鍵詞:驅(qū)動(dòng)程序內(nèi)核嵌入式

    趙江東 姚有峰 馬小陸

    (1皖西學(xué)院基礎(chǔ)實(shí)驗(yàn)中心,安徽 六安 237012)(2安徽工業(yè)大學(xué)電氣信息學(xué)院,安徽 馬鞍山 243002)

    引言

    隨著電力系統(tǒng)自動(dòng)化的發(fā)展,用戶對(duì)配電變壓器監(jiān)測終端系統(tǒng)的人機(jī)界面的要求也越來越高,顯示器是主要的人機(jī)交互設(shè)備,但由于傳統(tǒng)的CRT顯示器體積過于龐大等缺點(diǎn),難以應(yīng)用到配電自動(dòng)化的設(shè)備中[1]。LCD作為新一代的顯示設(shè)備,它能夠顯示字符、漢字及圖形,并且具有功耗低、體積小、重量輕及超薄等許多優(yōu)點(diǎn),可滿足配電變壓器監(jiān)測終端系統(tǒng)人機(jī)界面日益提高的性能要求[2]。當(dāng)前市場上的變壓器監(jiān)測終端系統(tǒng)設(shè)計(jì)多是基于嵌入式技術(shù),硬件采用性價(jià)比非常高的ARM處理器,軟件采用嵌入式Linux操作系統(tǒng),這使得變壓器監(jiān)測終端具有高精度的數(shù)據(jù)處理和強(qiáng)大的數(shù)據(jù)管理等優(yōu)點(diǎn)。本文將闡述在嵌入式Linux變壓器監(jiān)測終端平臺(tái)上液晶顯示屏的驅(qū)動(dòng)程序的設(shè)計(jì)方法。

    1 TFT-LCD工作原理

    TFT-LCD是作為STN-LCD的換代顯示器,它具有響應(yīng)速度快、分辨率高及色彩豐富等優(yōu)點(diǎn),當(dāng)前正取代STN-LCD,被廣泛運(yùn)用到便攜式計(jì)算機(jī)、攝錄像機(jī)及工業(yè)控制儀表等實(shí)際產(chǎn)品中。TFT-LCD的顯示原理如圖1所示。

    圖1 TFT-LCD顯示原理

    TFT是一個(gè)場效應(yīng)管結(jié)構(gòu),它的柵極電流小,LCD的行和列數(shù)的增加是不會(huì)使驅(qū)動(dòng)的電壓變高,故TFT-LCD可以制作成高分辨率的顯示器。當(dāng)TFT導(dǎo)通的時(shí)候,源極和漏極的電阻較小;當(dāng)TFT被關(guān)斷的時(shí)候,源極和漏極的電阻很大,它近似于開路。顯示驅(qū)動(dòng)的時(shí)候,某一時(shí)刻只會(huì)有一行的像素被選中,這行的TFT被導(dǎo)通,其它行的像素TFT處于關(guān)斷狀態(tài)。TFT-LCD的色彩豐富,能夠做到真彩顯示,因此其應(yīng)用非常廣泛。

    2 Linux下LCD驅(qū)動(dòng)接口

    Linux2.2內(nèi)核之后的版本中出現(xiàn)一種驅(qū)動(dòng)接口,即Framebuffer。該接口提供了一種在硬件設(shè)備上處理圖像的方法。Framebuffer代表視頻的硬件設(shè)備,可使應(yīng)用軟件利用其定義來確定界面訪問圖像的硬件設(shè)備[3]。這樣能使應(yīng)用程序在不知道任何的硬件底層驅(qū)動(dòng)內(nèi)容。在Linux系統(tǒng)下LCD驅(qū)動(dòng)的接口框圖如圖2所示。

    圖2 Linux系統(tǒng)下LCD驅(qū)動(dòng)的接口框圖

    Framebuffer的實(shí)現(xiàn)可以分為兩個(gè)方面:一是對(duì)LCD和相關(guān)部件的初始化;二是對(duì)畫面的緩沖區(qū)讀寫,具體的代碼是read、write、lseek等相關(guān)系統(tǒng)調(diào)用接口。Framebuffer的完整驅(qū)動(dòng)程序即是這兩個(gè)方面的具體實(shí)現(xiàn),在Linux的發(fā)行版本中,包含大量設(shè)備驅(qū)動(dòng)程序的源碼,例如drivers/video下提供了多種顯卡Framebuffer的程序,這樣省去了上層程序的工作,只要針對(duì)所用到的LCD模塊類型及接口時(shí)序修改其驅(qū)動(dòng)程序中和底層相關(guān)的代碼,就可以得到需要的LCD驅(qū)動(dòng)程序。

    Linux為了便于開發(fā)Framebuffer程序,使用了層次結(jié)構(gòu)。fbmem.c(內(nèi)核源碼driver/video目錄下)源碼位于該設(shè)備驅(qū)動(dòng)程序的中心位置。它為上層的用戶空間提供了系統(tǒng)調(diào)用接口,同時(shí)也可以為下層特定硬件提供驅(qū)動(dòng)接口,底層硬件驅(qū)動(dòng)需要用該接口向內(nèi)核注冊(cè)。下面是fbmem.c的一些主要數(shù)據(jù)結(jié)構(gòu)。

    fb_info為幀緩沖設(shè)備定義的驅(qū)動(dòng)層接口,其定義在內(nèi)核源碼include/linux/fb.h文件中。不僅包含底層函數(shù),也包含與設(shè)備有關(guān)的數(shù)據(jù)。每個(gè)幀緩沖的設(shè)備中都有一個(gè)fb_info的結(jié)構(gòu)體與之相對(duì)應(yīng)。它的重要成員有node、fb_var_screeninfo和fbops。node表示特定的Framebuffer,同時(shí)也是一個(gè)Framebuffer設(shè)備的次設(shè)備號(hào);fb_var_screeninfo記錄了可以修改顯示器控制參數(shù)的內(nèi)容;fb_ops提供了底層驅(qū)動(dòng)的接口。與在編寫字符設(shè)備驅(qū)動(dòng)程序一樣,需要填寫一個(gè)file_operations結(jié)構(gòu)體,然后使用register_chrdev()注冊(cè)file_operations。而編寫Framebuffer驅(qū)動(dòng)代碼時(shí),要填寫fb_ops結(jié)構(gòu)體的相關(guān)成員。

    綜上可見,在Linux下Framebuffer的編程框圖如圖3所示。

    圖3 Linux下Framebuffer的編程框圖

    3 LCD驅(qū)動(dòng)程序設(shè)計(jì)

    3.1 硬件結(jié)構(gòu)圖

    本文中使用的LCD型號(hào)為LQ080V3DG01,是由日本夏普生產(chǎn)的TFT-LCD,基于ARM920T的微處理器S3C2410和LCD液晶模塊的連接圖如圖4所示。

    圖4 S3C2410和LQ080V3DG01連接圖

    從S3C的LCD控制器引出來的信號(hào)線有24根數(shù)據(jù)線和部分控制線。如果使用256色LCD,則只需要其中低8位的數(shù)據(jù)線。這些線是經(jīng)過74HC245模塊隔離后連接到LCD模塊,在接256色屏?xí)r由這個(gè)芯片完成電平的轉(zhuǎn)換。此外LCD信號(hào)線驅(qū)動(dòng)74HC245的電源是可以選擇的。S3C2410可以安裝5寸的偽彩屏和8寸的真彩屏,其連接原理圖如圖5所示。

    3.2 驅(qū)動(dòng)程序設(shè)計(jì)

    根據(jù)LCD驅(qū)動(dòng)原理和以上硬件結(jié)構(gòu)圖,LCD驅(qū)動(dòng)程序設(shè)計(jì)代碼如下:

    3.2.1 LCD 屏參數(shù)初始化[4][5]

    圖5 S3C2410與LQ080V3DG01連接原理圖

    3.2.2 Linux 系統(tǒng) LCD 初始化

    在Linux中對(duì)LCD模塊初始化代碼如下:

    3.2.3 頭文件添加

    在內(nèi)核/include/asm-arm/arch-s3c2410目錄下創(chuàng)建zjd.h文件,內(nèi)容如下:

    3.2.4 配置和編譯內(nèi)核

    配置界面如圖6所示:

    圖6 內(nèi)核配置LCD模塊

    選擇其驅(qū)動(dòng)如下[6][7]:

    將重新制作zImage燒寫到系統(tǒng)中,再次啟動(dòng) linux2.6.14以后就可以在LCD上顯示圖形。

    4 結(jié)論

    隨著電力系統(tǒng)自動(dòng)化水平的日益提高,用戶對(duì)配電變壓器監(jiān)測終端系統(tǒng)的人機(jī)界面的要求也越來越高,根據(jù)嵌入式Linux下配電變壓器監(jiān)測終端的特點(diǎn)和Linux2.6內(nèi)核驅(qū)動(dòng)程序接口Framebuffer的工作原理,針對(duì)特定TFT-LCD屏詳細(xì)闡述了驅(qū)動(dòng)程序的設(shè)計(jì)步驟,最后針對(duì)配電變壓器監(jiān)測終端系統(tǒng)實(shí)驗(yàn)平臺(tái)中的核心單元S3C2410處理器進(jìn)行了驅(qū)動(dòng)程序的測試驗(yàn)證。測試結(jié)果表明LCD驅(qū)動(dòng)程序的內(nèi)核機(jī)制極大地優(yōu)化了嵌入式系統(tǒng)友好界面設(shè)計(jì),為嵌入式LCD模塊的應(yīng)用提供了更廣泛的應(yīng)用領(lǐng)域。

    [1]陶維青,馬小陸.基于 430 單片機(jī)的新型配電變壓器遠(yuǎn)方終端的開發(fā)[J].繼電器,2005,(19):66-67.

    [2]邱濤.一種基于Linux的車載多功能系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].重慶:重慶大學(xué),2009.

    [3]王春波.GPS/GPRS車載終端的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2008.

    [4]譚周文.基于ARM和Linux的超高頻讀寫器設(shè)計(jì)與實(shí)現(xiàn)[D].長沙:湖南大學(xué),2008.

    [5]劉志棟.基于嵌入式Linux系統(tǒng)的夫瑯和費(fèi)衍射實(shí)驗(yàn)儀的開發(fā)與研制[D].長春:吉林大學(xué),2008.

    [6]李靜.基于嵌入式平臺(tái)的目標(biāo)識(shí)別研究[D].桂林:桂林電子科技大學(xué),2009.

    [7]韋東山.嵌入式 Linux 應(yīng)用開發(fā)完全手冊(cè)[M].北京:人民郵電出版社,2008:158.

    猜你喜歡
    驅(qū)動(dòng)程序內(nèi)核嵌入式
    萬物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
    強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
    基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
    Linux內(nèi)核mmap保護(hù)機(jī)制研究
    搭建基于Qt的嵌入式開發(fā)平臺(tái)
    嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
    Altera加入嵌入式視覺聯(lián)盟
    倍福 CX8091嵌入式控制器
    驅(qū)動(dòng)程序更新與推薦
    驅(qū)動(dòng)程序更新與推薦
    英山县| 仙游县| 武功县| 稻城县| 安平县| 清丰县| 承德市| 武夷山市| 南澳县| 东海县| 九江市| 辽源市| 进贤县| 沁水县| 龙井市| 泰宁县| 淮阳县| 余庆县| 夹江县| 河池市| 乃东县| 肥乡县| 昌江| 高安市| 彭泽县| 镶黄旗| 南和县| 洛川县| 望城县| 湛江市| 贵州省| 新化县| 怀安县| 贵州省| 正定县| 和政县| 甘孜县| 广昌县| 汉川市| 南昌县| 登封市|