《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于ARM與FPGA的LCD控制器系統(tǒng)設(shè)計(jì)
基于ARM與FPGA的LCD控制器系統(tǒng)設(shè)計(jì)
電子發(fā)燒友
摘要: 隨著顯示屏技術(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ì)方案一方面能夠通過(guò)操作LinuxOS下的Framebuffer設(shè)備提高顯存的寫入速率及減輕處理器的負(fù)擔(dān),另一方面用FPGA來(lái)實(shí)現(xiàn)LCD控制器的設(shè)計(jì),開發(fā)周期短、功耗低,同時(shí)具有靈活的移植性,可應(yīng)用于不同中小尺寸的液晶顯示屏。1系統(tǒng)組成及工作原理系統(tǒng)主要有微控制器、FPGA(LCD控制器)、存儲(chǔ)單元以及外設(shè)接口組成,系統(tǒng)組成框圖如圖1所示。系統(tǒng)的工作流程:在FPGA內(nèi)部的時(shí)序發(fā)生電路所產(chǎn)生的時(shí)序控制信號(hào)作用下,LCD控制器通過(guò)Framebuffer接口從微控制器讀出顯示所需的數(shù)據(jù)存入顯示緩存SRAM中。同時(shí)LCD顯示屏從顯存SRAM中讀取顯示數(shù)據(jù),并通過(guò)數(shù)據(jù)格式轉(zhuǎn)換電路直
關(guān)鍵詞: ARM LCD控制器 Cvclone
Abstract:
Key words :

     隨著顯示屏技術(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ì)方案一方面能夠通過(guò)操作Linux OS下的Framebuffer設(shè)備提高顯存的寫入速率及減輕處理器的負(fù)擔(dān),另一方面用FPGA來(lái)實(shí)現(xiàn)LCD控制器的設(shè)計(jì),開發(fā)周期短、功耗低,同時(shí)具有靈活的移植性,可應(yīng)用于不同中小尺寸的液晶顯示屏。

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

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

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

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

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

  2.1 LCD控制器

  LCD控制器是基于FPGA實(shí)現(xiàn)的。本方案采用Altera公司的Cvclone(颶風(fēng))系列EPlC6Q240。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,讀寫速度為10ns左右。而顯示一幀圖像的大小為125 KB(320x240x2/l024),F(xiàn)PGA對(duì)顯存的讀寫速度約為200 ns,因此滿足系統(tǒng)要求。圖2為L(zhǎng)CD控制器電路連接圖。

LCD控制器電路連接圖

  2.2 ARM9微控制器

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

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所示。

LCD控制器組成

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

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

  采用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硬件描述語(yǔ)言設(shè)計(jì)時(shí)序控制模塊,它為L(zhǎng)CD提供滿足時(shí)序要求的控制信號(hào)VSYNC、HSYNC以及ENAB。設(shè)計(jì)完成后在QuatuslI環(huán)境下完成時(shí)序仿真,得到的仿真結(jié)果滿足時(shí)序要求,仿真圖如圖5所示。

仿真圖

點(diǎn)擊看原圖

 

 

  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來(lái)完成。

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è)。以下為其具體的實(shí)現(xiàn)過(guò)程。

 

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

程序

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

程序

  3)Framebuffer設(shè)備注冊(cè) 在Linux中,通過(guò)fb_info結(jié)構(gòu)體對(duì)幀緩沖設(shè)備信息進(jìn)行描述。在fb_info中,較為重要的結(jié)構(gòu)有fb_var_scree-ninfo、fb_var_screeninfo、fb_ops。其中,fb_var_screeninfo記錄用戶可修改的顯示控制器參數(shù),包括屏幕分辨率;fb_fix_screeninfo記錄用戶不能修改的顯示控制器的參數(shù),如屏幕緩沖區(qū)的物理地址等;fb_ops記錄了具體顯示設(shè)備IO操作的實(shí)現(xiàn)方法。驅(qū)動(dòng)通過(guò)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è)后通過(guò)mknod指令在系統(tǒng)dev目錄下創(chuàng)建Framebuffer設(shè)備文件節(jié)點(diǎn),應(yīng)用層程序可通過(guò)Framebuffer設(shè)備文件實(shí)現(xiàn)Framebuffer設(shè)備的訪問和操作。

  4 結(jié)束語(yǔ)

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

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲一级网站| 欧美激情导航| 日韩写真在线| 亚洲国产小视频| 欧美一区二区在线观看| 亚洲男人的天堂在线| 亚洲一区www| 亚洲伊人观看| 亚洲欧美日韩中文播放| 亚洲欧美激情在线视频| 午夜视频一区在线观看| 午夜视频在线观看一区二区三区| 亚洲香蕉成视频在线观看| 亚洲视频大全| 亚洲一级片在线看| 亚洲欧美日韩在线观看a三区| 亚洲欧美国产77777| 午夜精品成人在线| 欧美一区2区三区4区公司二百 | 99热这里只有精品8| 亚洲人在线视频| 日韩视频二区| 在线性视频日韩欧美| 亚洲一区二区精品在线| 亚洲一区二区三区四区视频| 亚洲欧美久久久久一区二区三区| 性色一区二区三区| 久久精品国产77777蜜臀| 亚洲欧洲精品成人久久奇米网| 日韩视频中午一区| 在线亚洲自拍| 香蕉久久夜色精品| 久久久久久久综合日本| 欧美成人黄色小视频| 欧美日韩国产va另类| 国产精品成人一区二区网站软件| 国产精品丝袜白浆摸在线| 国产女主播一区二区| 国内精品国产成人| 亚洲人成亚洲人成在线观看图片| 在线一区二区三区四区| 欧美一区网站| 99日韩精品| 欧美一区二区三区四区高清| 久久久久欧美精品| 欧美精品www| 欧美午夜不卡在线观看免费| 国产精品一区二区女厕厕| 精品91在线| 一区二区国产精品| 欧美一站二站| 一本色道**综合亚洲精品蜜桃冫 | 亚洲二区视频| 一本久久a久久精品亚洲| 欧美一区二区成人6969| 你懂的国产精品| 国产精品99一区二区| 国模精品娜娜一二三区| 亚洲精品少妇30p| 欧美一区二区三区免费视| 99国产麻豆精品| 久久精彩免费视频| 欧美日韩午夜激情| 国产尤物精品| 中文国产成人精品| 亚洲欧洲日本mm| 销魂美女一区二区三区视频在线| 免费成人黄色av| 国产精品久久久对白| 伊人久久成人| 亚洲专区欧美专区| 亚洲理伦电影| 久久久精品动漫| 国产精品国产一区二区 | 亚洲福利小视频| 亚洲欧美日本国产专区一区| 99国产精品一区| 久久久久久久一区二区三区| 欧美午夜不卡在线观看免费| 一区二区三区在线观看视频| 亚洲一区二三| 一区二区日韩欧美| 欧美成人蜜桃| 国产一区二区三区黄视频| 一本大道av伊人久久综合| 亚洲国产一区二区三区在线播| 西西人体一区二区| 欧美揉bbbbb揉bbbbb| 亚洲第一黄网| 久久精品人人做人人爽电影蜜月| 亚洲欧美在线免费| 欧美日韩在线亚洲一区蜜芽| 亚洲国产精品精华液2区45| 欧美一区二区播放| 欧美一区二视频| 国产精品欧美一区二区三区奶水| 亚洲精品美女久久久久| 亚洲国产精品久久久久婷婷老年| 久久精品2019中文字幕| 国产精品久久久久永久免费观看| 亚洲日本aⅴ片在线观看香蕉| 亚洲精品1234| 老司机午夜免费精品视频| 国产日韩专区在线| 亚洲欧美综合精品久久成人| 性久久久久久久| 国产精品久久久久久久久借妻| a4yy欧美一区二区三区| 99精品99| 欧美日本视频在线| 最近看过的日韩成人| 亚洲美女视频在线观看| 欧美黄色影院| 亚洲人精品午夜在线观看| 亚洲精品资源| 欧美日韩国产一区| 亚洲裸体视频| 亚洲视频一区在线| 欧美日韩在线综合| 一区二区av在线| 亚洲男女毛片无遮挡| 国产精品久久久久久久午夜片| 一区二区日韩免费看| 亚洲午夜一区二区| 国产精品福利av| 亚洲欧美一区二区激情| 久久国产福利国产秒拍| 国内伊人久久久久久网站视频 | 在线看国产一区| 亚洲欧洲在线一区| 欧美精品日日鲁夜夜添| 99国产精品国产精品毛片| 亚洲一区影音先锋| 国产精品一卡二卡| 欧美在线看片| 欧美aa国产视频| 日韩午夜视频在线观看| 亚洲女人小视频在线观看| 国产精品影视天天线| 久久国产精品99久久久久久老狼| 久久综合999| 亚洲欧洲午夜| 亚洲欧美卡通另类91av | 黄色av成人| 亚洲精品免费一区二区三区| 欧美日本久久| 亚洲欧美国产77777| 久久免费偷拍视频| 亚洲日韩中文字幕在线播放| 亚洲一区二区在线观看视频| 国产精品无码永久免费888| 欧美制服丝袜第一页| 免费在线日韩av| 在线亚洲一区| 久久综合福利| 一本综合久久| 久久久久久穴| 亚洲美女在线看| 久久精品国产成人| 亚洲三级电影在线观看| 性欧美精品高清| 亚洲国产精品成人精品| 亚洲在线视频免费观看| 国产一区二区三区免费不卡| 99精品福利视频| 国产麻豆成人精品| 亚洲乱码国产乱码精品精天堂 | 中国女人久久久| 久久亚洲欧美| 日韩一二三在线视频播| 久久精品成人| 日韩一区二区免费高清| 久久久久九九九九| 日韩午夜视频在线观看| 久久青草久久| 一区二区免费看| 可以免费看不卡的av网站| 一级日韩一区在线观看| 久久香蕉国产线看观看网| 亚洲免费观看高清完整版在线观看熊| 欧美在线短视频| 亚洲精品国产精品乱码不99| 欧美一区二区三区免费视频| 亚洲人成在线免费观看| 久久免费的精品国产v∧| 在线性视频日韩欧美| 欧美aⅴ99久久黑人专区| 午夜精品网站| 欧美视频一区| 亚洲精品久久久久中文字幕欢迎你| 国产精品综合色区在线观看| 99精品视频免费在线观看| 国产综合久久久久久鬼色| 亚洲视频网在线直播| 亚洲第一网站| 久久福利视频导航| 一本色道**综合亚洲精品蜜桃冫| 欧美ed2k| 亚洲电影免费观看高清完整版在线观看 | 最新热久久免费视频|