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

        ?

        基于ARM與FPGA的LCD控制器設(shè)計(jì)

        2010-08-18 00:58:54莊聰聰王大明
        電子設(shè)計(jì)工程 2010年6期
        關(guān)鍵詞:驅(qū)動(dòng)程序顯示屏時(shí)序

        莊聰聰,王大明,李 寒

        (西安工業(yè)大學(xué) 電子信息工程學(xué)院,陜西 西安 710032)

        隨著顯示屏技術(shù)的不斷發(fā)展,真彩液晶顯示屏以其高分辨率、高對(duì)比度及高清晰度等優(yōu)勢(shì)逐漸在嵌入式顯示系統(tǒng)中占據(jù)重要地位。目前,基于嵌入式平臺(tái)的LCD顯控技術(shù)的實(shí)現(xiàn)主要有兩種方式:ARM內(nèi)嵌LCD控制器和獨(dú)立的控制器件。但是這兩種實(shí)現(xiàn)方式都存在著不足之處,內(nèi)嵌控制器的使用可能增大處理器的負(fù)擔(dān)和限制顯示幀率,而外部控制器件不僅成本高,而且專用性比較強(qiáng),很難適應(yīng)不同類型的液晶屏。

        據(jù)此存在的問題,這里提出一種基于ARM與FPGA的LCD控制器設(shè)計(jì)方案,該設(shè)計(jì)方案一方面能夠通過操作LINUX OS下的Framebuffer設(shè)備提高顯存的寫入速率及減輕處理器的負(fù)擔(dān),另一方面用FPGA來實(shí)現(xiàn)LCD控制器的設(shè)計(jì),開發(fā)周期短、功耗低,同時(shí)具有靈活的移植性,可應(yīng)用于不同中小尺寸的液晶顯示屏。

        1 系統(tǒng)組成及工作原理

        系統(tǒng)主要有微控制器、FPGA(LCD控制器)、存儲(chǔ)單元以及外設(shè)接口組成,系統(tǒng)組成框圖如圖1所示。

        圖1 基于ARM與FPGA的LCD控制器系統(tǒng)組成框圖

        系統(tǒng)的工作流程:在FPGA內(nèi)部的時(shí)序發(fā)生電路所產(chǎn)生的時(shí)序控制信號(hào)作用下,LCD控制器通過Framebuffer接口從微控制器讀出顯示所需的數(shù)據(jù)存入顯示緩存SRAM中,同時(shí)LCD顯示屏從顯存SRAM中讀取顯示數(shù)據(jù),并通過數(shù)據(jù)格式轉(zhuǎn)換電路直接將數(shù)據(jù)信息實(shí)時(shí)顯示。

        2 系統(tǒng)硬件設(shè)計(jì)

        2.1 LCD控制器

        LCD控制器是基于FPGA實(shí)現(xiàn)的。本方案采用Altera公司的Cyclone(颶風(fēng))系列EP1C6Q240。FPGA具有高速的數(shù)據(jù)傳輸I/O接口,可實(shí)現(xiàn)高速的顯存讀取速率,大大提高LCD顯示的幀率。而同時(shí)FPGA是可編程邏輯器件,可實(shí)現(xiàn)復(fù)雜的邏輯運(yùn)算及提供復(fù)雜的控制時(shí)序。LCD顯示屏采用LQ035Q3DG01型的TFT-LCD液晶顯示屏,分辨率為320×240,圖像信號(hào)為RGB格式。由于SRAM有較高的讀寫速度,該設(shè)計(jì)方案的顯示緩存采用1片IS61LV51216AL型SRAM,其容量為512 KB,讀寫速度為10 ns左右。而顯示一幀圖像的大小為125 KB(320×240×2/1 024), FPGA對(duì)顯存的讀寫速度約為200 ns,因此滿足系統(tǒng)要求。圖2為L(zhǎng)CD控制器電路連接圖。

        圖2 LCD控制器電路連接

        2.2ARM9微控制器

        該系統(tǒng)設(shè)計(jì)的主控單元采用ATMEL公司的AT91RM9200(簡(jiǎn)稱 9200)作為 MCU,該處理器是基于ARM920T內(nèi)核,工作主頻為180 MHz,性能可達(dá)到200 MI/s,系統(tǒng)采用開源的LINUX OS[3-4]。但是ARM9作為系統(tǒng)的控制終端,需要完成信息采集、處理以及與外部通信等多項(xiàng)工作,而LCD控制器如果也要從內(nèi)存中讀出數(shù)據(jù)顯示,這就會(huì)造成處理器負(fù)擔(dān),從而降低顯示緩存讀入數(shù)據(jù)的速率,影響LCD的實(shí)時(shí)顯示。因此這里提出一種基于LINUX OS下的Framebuffer接口的應(yīng)用方法,大大提升顯存讀入數(shù)據(jù)的速率,從而提升整個(gè)顯示系統(tǒng)的實(shí)時(shí)性。圖3為AT91RM9200接口電路連接。

        圖3 AT91RM9200接口電路連接

        3 系統(tǒng)軟件設(shè)計(jì)

        系統(tǒng)的軟件設(shè)計(jì)主要分為基于FPGA的LCD控制器設(shè)計(jì)與LINUX OS下Framebuffer驅(qū)動(dòng)程序設(shè)計(jì)2部分。

        3.1 LCD控制器設(shè)計(jì)

        3.1.1 LCD控制器組成

        該設(shè)計(jì)方案的LCD控制器主要由緩存讀寫、MCU接口及LCD時(shí)序控制等模塊組成,具體組成如圖4所示。

        圖4 LCD控制器

        3.1.2 LCD控制器設(shè)計(jì)原理

        由TFT-LCD液晶屏顯示原理可知,顯示所需的主要控制信號(hào)有像素時(shí)鐘信號(hào)、行/場(chǎng)同步信號(hào)以及使能信號(hào)[1,6]。該方案的顯示屏分辨率為320×240,要求設(shè)計(jì)液晶顯示屏的刷新頻率為60 Hz,即場(chǎng)同步信號(hào)(VSYNC)為60 Hz,刷新一屏所需時(shí)間為1/60 s,而一場(chǎng)則由240個(gè)行同步信號(hào)組成,那么一個(gè)行同步信號(hào)的周期為1/(60×240)s,即可得行同步信號(hào)(HSYNC)為15 kHz。 同理可得像素時(shí)鐘信號(hào)(CK)為 5 MHz。

        采用FPGA內(nèi)置的鎖相環(huán)IP模塊(PLL)將FPGA 50 MHz時(shí)鐘信號(hào)F_CLK 10分頻為5 MHz的像素時(shí)鐘信號(hào)。應(yīng)用狀態(tài)機(jī)方法,用Verilog硬件描述語言設(shè)計(jì)時(shí)序控制模塊,它為L(zhǎng)CD提供滿足時(shí)序要求的控制信號(hào)VSYNC、HSYNC以及ENAB[1,5-6]。設(shè)計(jì)完成后在QuatusII環(huán)境下完成時(shí)序仿真,得到的仿真結(jié)果滿足時(shí)序要求,仿真圖如圖5所示。

        SRAM為顯存模塊,由圖2可知LCD控制器與微控制器之間的數(shù)據(jù)傳輸是在ARM的時(shí)鐘控制下讀入,而同時(shí)LCD屏顯則是在像素時(shí)鐘信號(hào)CK的控制下從SRAM中讀取數(shù)據(jù)。針對(duì)該異時(shí)鐘域之間數(shù)據(jù)的傳輸問題本方案采用FPGA設(shè)計(jì)實(shí)現(xiàn)異步FIFO來完成。

        圖5 時(shí)序仿真圖

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

        Framebuffer是Linux內(nèi)核中的一種驅(qū)動(dòng)程序接口,該接口將顯示設(shè)備映射為幀緩沖區(qū)。平臺(tái)使用Linux2.6.25內(nèi)核。在Linux2.6內(nèi)核當(dāng)中,通常采用分層的驅(qū)動(dòng)設(shè)計(jì)框架,對(duì)設(shè)備進(jìn)行分層和分類管理,驅(qū)動(dòng)底層為總線驅(qū)動(dòng),上層為具體設(shè)備驅(qū)動(dòng)。在Framebuffer驅(qū)動(dòng)程序中,其軟件設(shè)計(jì)流程為:首先需要針對(duì)該具體的設(shè)備和硬件連接注冊(cè)總線類型及申請(qǐng)系統(tǒng)總線資源;其次,將具體設(shè)備驅(qū)動(dòng)程序注冊(cè)進(jìn)入總線鏈表,Linux內(nèi)核根據(jù)設(shè)備驅(qū)動(dòng)程序中提供的探測(cè)函數(shù)檢測(cè)總線設(shè)備類型;最后在驅(qū)動(dòng)探測(cè)函數(shù)中實(shí)現(xiàn)具體設(shè)備類型的注冊(cè)[2-3]。 以下為其具體的實(shí)現(xiàn)過程。

        1)資源申請(qǐng) 系統(tǒng)中,9200通過外部總線接口的BANK7與FPGA FIFO接口連接,采用16位靜態(tài)總線方式對(duì)FIFO數(shù)據(jù)進(jìn)行寫入操作。根據(jù)驅(qū)動(dòng)設(shè)計(jì)框架,驅(qū)動(dòng)程序設(shè)計(jì)的第一步需要通過系統(tǒng)調(diào)用platform_device_register函數(shù)申請(qǐng)總線資源,示意代碼如下:

        2)驅(qū)動(dòng)注冊(cè) 在具體設(shè)備驅(qū)動(dòng)中,通過使用module_init宏與module_exit定義驅(qū)動(dòng)模塊的加載與卸載方法,在模塊注冊(cè)函數(shù)中使用platform_driver_register函數(shù)將具體設(shè)備的platform_driver結(jié)構(gòu)體注冊(cè)進(jìn)入系統(tǒng)總線鏈表,platform_driver中為總線提供具體設(shè)備的probe與remove等操作方法,其示意代碼如下:

        3)Framebuffer設(shè)備注冊(cè) 在Linux中,通過 fb_info結(jié)構(gòu)體對(duì)幀緩沖設(shè)備信息進(jìn)行描述。在fb_info中,較為重要的結(jié)構(gòu)有 fb_var_screeninfo、fb_var_screeninfo、fb_ops。 其中,fb_var_screeninfo記錄用戶可修改的顯示控制器參數(shù),包括屏幕分辨率;fb_fix_screeninfo記錄用戶不能修改的顯示控制器的參數(shù),如屏幕緩沖區(qū)的物理地址等;fb_ops記錄了具體顯示設(shè)備IO操作的實(shí)現(xiàn)方法。驅(qū)動(dòng)通過register_framebuffer函數(shù)將fb_info記錄的顯示設(shè)備信息注冊(cè)進(jìn)Framebuffer設(shè)備鏈表。

        在Linux文件系統(tǒng)中,F(xiàn)ramebuffer設(shè)備的主設(shè)備號(hào)為29,次設(shè)備號(hào)為幀緩沖序號(hào)。Framebuffer設(shè)備注冊(cè)后通過mknod指令在系統(tǒng)dev目錄下創(chuàng)建Framebuffer設(shè)備文件節(jié)點(diǎn),應(yīng)用層程序可通過Framebuffer設(shè)備文件實(shí)現(xiàn)Framebuffer設(shè)備的訪問和操作。

        4 結(jié)束語

        該設(shè)計(jì)方案的LCD控制器達(dá)到實(shí)時(shí)性及顯示幀率的要求,每秒顯示至少25幀?;贔PGA設(shè)計(jì)的LCD控制器技術(shù)具有應(yīng)用廣泛、移植性強(qiáng)、開發(fā)周期短以及成本低等優(yōu)點(diǎn),可以適用于眾多的需要LCD液晶顯示的系統(tǒng)或場(chǎng)合。

        [1]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,2008.

        [2]周立功,陳明計(jì),陳渝.ARM嵌入式Linux系統(tǒng)構(gòu)建與驅(qū)動(dòng)開發(fā)范例[M].北京:北京航空航天大學(xué)出版社,2006.

        [3]馬忠梅,李善平,康慨,等.ARM&Linux嵌入式系統(tǒng)教程[M]北京:北京航天航空大學(xué)出版社,2005.

        [4]夏靖波,王航,陳雅蓉.嵌入式系統(tǒng)原理與開發(fā)[M].西安:西安電子科技大學(xué)出版社,2006.

        [5]華清遠(yuǎn)見嵌入式培訓(xùn)中心.FPGA應(yīng)用開發(fā)入門與典型實(shí)例[M].北京:人民郵電出版社,2008.

        [6]郭威,王大明,李寒.基于ARM&LINUX的液晶驅(qū)動(dòng)終端的設(shè)計(jì) [J].電子設(shè)計(jì)工程, 2009,17(4):63-64.

        猜你喜歡
        驅(qū)動(dòng)程序顯示屏時(shí)序
        時(shí)序坐標(biāo)
        一塊布就是一個(gè)顯示屏?
        軍事文摘(2022年10期)2022-06-15 02:29:30
        基于Sentinel-2時(shí)序NDVI的麥冬識(shí)別研究
        蒼蠅迷戀顯示屏
        一種毫米波放大器時(shí)序直流電源的設(shè)計(jì)
        電子制作(2016年15期)2017-01-15 13:39:08
        未來五年LED顯示屏出貨將保持16%增長(zhǎng)
        基于AT89S52的手勢(shì)可控LED滾動(dòng)顯示屏設(shè)計(jì)
        DPBUS時(shí)序及其設(shè)定方法
        河南科技(2014年15期)2014-02-27 14:12:36
        驅(qū)動(dòng)程序更新與推薦
        驅(qū)動(dòng)程序更新與推薦
        亚洲欧洲日产国码无码| 成人男性视频在线观看| 人妻中文字幕在线一二区| 青青草 视频在线观看| 日本老熟妇乱| 狠狠色丁香久久婷婷综合蜜芽五月| 亚洲日韩精品国产一区二区三区| 久久久久亚洲AV片无码乐播| 日韩有码在线免费视频| 亚洲精品一区二区国产精华液| 囯产精品一品二区三区| 久久久久久无中无码| 久久精品av在线视频| 亚洲日韩中文字幕在线播放 | 女人被狂躁高潮啊的视频在线看| 国产最新地址| 午夜精品久视频在线观看| 中文字幕色一区二区三区页不卡| 十八禁视频在线观看免费无码无遮挡骂过 | 亚洲精品av一区二区日韩| 久久免费亚洲免费视频| 人妻无码第一区二区三区| 三男一女吃奶添下面| 日本高清不在线一区二区色| 青青草免费在线手机视频| 日产国产精品亚洲高清| 亚洲桃色视频在线观看一区| 亚洲精品色婷婷在线影院| 真人直播 免费视频| 亚洲免费不卡| 蜜桃精品国产一区二区三区| 图片小说视频一区二区| 亚洲人成77777在线播放网站| 国产香蕉97碰碰视频va碰碰看| 亚洲阿v天堂网2021| 亚洲国产精品一区二区| 国产aⅴ无码专区亚洲av| 青青青国产精品一区二区| 美女超薄透明丝袜美腿| 久久99精品综合国产女同| √新版天堂资源在线资源|