隨著顯示屏技術(shù)的不斷發(fā)展,真彩液晶顯示屏以其高分辨率、高對(duì)比度及高清晰度等優(yōu)勢逐漸在嵌入式顯示系統(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所示。
系統(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公司的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&TImes;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為LCD控制器電路連接圖。
2.2 ARM9微控制器
該系統(tǒng)設(shè)計(jì)的主控單元采用ATMEL公司的AT9lRM9200(簡稱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接口電路連接。
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所示。
3.1.2 LCD控制器設(shè)計(jì)原理
由TFT-LCD液晶屏顯示原理可知,顯示所需的主要控制信號(hào)有像素時(shí)鐘信號(hào)、行/場同步信號(hào)以及使能信號(hào)。該方案的顯示屏分辨率為320x240,要求設(shè)計(jì)液晶顯示屏的刷新頻率為60 Hz,即場同步信號(hào)(VSYNC)為60Hz,刷新一屏所需時(shí)間為1/60 s,而一場則由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硬件描述語言設(shè)計(jì)時(shí)序控制模塊,它為LCD提供滿足時(shí)序要求的控制信號(hào)VSYNC、HSYNC以及ENAB。設(shè)計(jì)完成后在QuatuslI環(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來完成。
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è)備和硬件連接注冊總線類型及申請系統(tǒng)總線資源;其次,將具體設(shè)備驅(qū)動(dòng)程序注冊進(jìn)入總線鏈表,Linux內(nèi)核根據(jù)設(shè)備驅(qū)動(dòng)程序中提供的探測函數(shù)檢測總線設(shè)備類型;最后在驅(qū)動(dòng)探測函數(shù)中實(shí)現(xiàn)具體設(shè)備類型的注冊。以下為其具體的實(shí)現(xiàn)過程。
1)資源申請 系統(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ù)申請總線資源,示意代碼如下:
2)驅(qū)動(dòng)注冊 在具體設(shè)備驅(qū)動(dòng)中,通過使用module_init宏與module_exit定義驅(qū)動(dòng)模塊的加載與卸載方法,在模塊注冊函數(shù)中使用plat-form_driver_register函數(shù)將具體設(shè)備的platform_driver結(jié)構(gòu)體注冊進(jìn)入系統(tǒng)總線鏈表,platform_driver中為總線提供具體設(shè)備的probe與remove等操作方法,其示意代碼如下:
3)Framebuffer設(shè)備注冊 在Linux中,通過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)通過register_-framebuffer函數(shù)將fb_info記錄的顯示設(shè)備信息注冊進(jìn)Framebuffer設(shè)備鏈表。
在Linux文件系統(tǒng)中,F(xiàn)ramebuffer設(shè)備的主設(shè)備號(hào)為29,次設(shè)備號(hào)為幀緩沖序號(hào)。Framebuffer設(shè)備注冊后通過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幀。基于FPGA設(shè)計(jì)的LCD控制器技術(shù)具有應(yīng)用廣泛、移植性強(qiáng)、開發(fā)周期短以及成本低等優(yōu)點(diǎn),可以適用于眾多的需要LCD液晶顯示的系統(tǒng)或場合。
上一篇:單片機(jī)液晶顯示程序
下一篇:采用ARM9微處理器PXA270芯片實(shí)現(xiàn)低功耗的嵌入式計(jì)算機(jī)
推薦閱讀
史海拾趣
振寶佳(DMBJ)公司自成立之初,就專注于貼片鋁電解電容的研發(fā)與生產(chǎn)。在1998年之前,公司一直在臺(tái)灣深耕細(xì)作,積累了豐富的技術(shù)實(shí)力和市場資源。進(jìn)入21世紀(jì),隨著電子產(chǎn)業(yè)的快速發(fā)展,振寶佳意識(shí)到技術(shù)突破的重要性。于是,公司投入大量資源,研發(fā)出多項(xiàng)專利技術(shù),這些技術(shù)不僅提升了產(chǎn)品的性能,也增強(qiáng)了公司的市場競爭力。
作為一家具有國際視野的企業(yè),振寶佳公司始終堅(jiān)持以質(zhì)量為核心的發(fā)展理念。為了滿足出口歐盟的質(zhì)量要求,公司不斷提升產(chǎn)品的品質(zhì)和性能,加強(qiáng)質(zhì)量控制和檢驗(yàn)。經(jīng)過多年的努力,公司終于成功獲得了出口歐盟的資格認(rèn)證。這一成就的取得不僅證明了公司的實(shí)力和能力,也為其在國際市場上贏得了更多的機(jī)會(huì)和聲譽(yù)。
以上五個(gè)故事框架均基于振寶佳(DMBJ)公司在電子行業(yè)發(fā)展的實(shí)際情況進(jìn)行編寫,旨在展示公司在技術(shù)、市場、生產(chǎn)、質(zhì)量等方面的努力和成就。請注意,這些故事僅為概述,具體細(xì)節(jié)和數(shù)據(jù)可能需要根據(jù)實(shí)際情況進(jìn)行補(bǔ)充和完善。
1914年,Bussmann五兄弟以家族生意為起點(diǎn),在自家的地下室里開始生產(chǎn)熔斷器。他們憑借對(duì)電路保護(hù)的深刻理解和對(duì)市場需求的敏銳洞察,不久便將業(yè)務(wù)從地下室擴(kuò)展到了小型廠房,并專注于汽車熔斷器的生產(chǎn)。這一轉(zhuǎn)變不僅標(biāo)志著Bussmann業(yè)務(wù)的飛速發(fā)展,也奠定了其在電路保護(hù)領(lǐng)域的基石。通過不斷的技術(shù)創(chuàng)新和市場拓展,Bussmann逐步在保險(xiǎn)絲市場上取得了領(lǐng)先地位。
為了進(jìn)一步提升公司的競爭力,Conxall公司積極尋求與其他企業(yè)的合作。公司與多家知名電子企業(yè)簽訂了戰(zhàn)略合作協(xié)議,共同研發(fā)新技術(shù)、新產(chǎn)品。通過合作,Conxall公司不僅獲得了更多的技術(shù)資源和市場支持,還提升了自身的品牌形象和知名度。
Hendon Semiconductors以其強(qiáng)大的定制化集成電路設(shè)計(jì)能力而聞名。公司擁有一支經(jīng)驗(yàn)豐富的設(shè)計(jì)團(tuán)隊(duì),能夠?yàn)榭蛻籼峁母拍畹搅慨a(chǎn)的一站式解決方案。這種定制化服務(wù)不僅滿足了客戶對(duì)特殊功能和高性能的需求,也幫助Hendon Semiconductors在競爭激烈的市場中脫穎而出。通過不斷積累成功案例和技術(shù)經(jīng)驗(yàn),Hendon Semiconductors逐漸在定制化集成電路設(shè)計(jì)領(lǐng)域建立了良好的口碑。
隨著公司規(guī)模的逐漸擴(kuò)大,喜美克斯公司開始思考如何進(jìn)一步拓展市場。他們深入研究市場趨勢和消費(fèi)者需求,制定了針對(duì)不同市場的精準(zhǔn)營銷策略。通過與當(dāng)?shù)睾献骰锇榈木o密合作,喜美克斯成功地將產(chǎn)品打入了多個(gè)新興市場,實(shí)現(xiàn)了銷售額的快速增長。
VB 作實(shí)時(shí)數(shù)據(jù)采集曲線 我這有一段VB程序是為了畫實(shí)時(shí)采集曲線的。 軟件編程我不行,如果大家有看得懂得,請幫我看看。 程序不多 Private Sub MSComm1_OnComm() Dim Inbyte() As Byte Dim buffer As String Dim datatemp(1000) As Single If num ...… 查看全部問答∨ |
|
本人最近剛學(xué)dsp builder,搭了個(gè)濾波器,按照書上,點(diǎn)開matlab 的fdatool進(jìn)行濾波器模型設(shè)計(jì) 但按照書上一步一步做來,最后在參數(shù)量化這步就有問題了! 潘松的《現(xiàn)代DSP技術(shù)》上明顯有東西可選,而我的界面卻是空白的,沒得選 請問有沒有朋友知 ...… 查看全部問答∨ |
顯示區(qū)域改小了,想把觸屏調(diào)準(zhǔn),有問題了 我LCD用的是480*272的,ARM2450,現(xiàn)在我把Display.h里分辨率等參數(shù)改了,把顯示區(qū)域改成320*240大小的(如下圖\'0\'區(qū)域),改后觸屏不準(zhǔn)了,我任務(wù)是要把它調(diào)準(zhǔn)。于是稍微看了一下觸屏的驅(qū)動(dòng)程序,沒研究的很透。 0000000000000000001111111111 ...… 查看全部問答∨ |
請問各路大仙,在開發(fā)wince中一般用的是什么3g模塊啊? 在網(wǎng)上看到很多,都是關(guān)于驅(qū)動(dòng)的問題,有沒有什么型號(hào)的3g模塊提供了驅(qū)動(dòng)的啊? 最好是usb的3g網(wǎng)卡。 謝謝!!… 查看全部問答∨ |
|
初學(xué)驅(qū)動(dòng)開發(fā),問個(gè)基本問題 我買了本ldd3,講的是基于linux2.6內(nèi)核的,想學(xué)關(guān)于ARM平臺(tái)的驅(qū)動(dòng)開發(fā) 但我的PC上系統(tǒng)是2.4內(nèi)核的,開發(fā)板上是2.6內(nèi)核的 請問如果我的系統(tǒng)不升級(jí)內(nèi)核的話能做2.6內(nèi)核的驅(qū)動(dòng)開發(fā)嗎 調(diào)試的話是放到開發(fā)板上調(diào)試的 謝謝… 查看全部問答∨ |
加州大學(xué)伯克利分校(UC Berkeley)的研究人員們四月份發(fā)表了一種特殊的鏡片,可以把一般的手機(jī)攝像鏡頭變成一個(gè)可攜帶的顯微鏡,且足以充當(dāng)亮視野顯微鏡(bright- field microscope),他們稱這項(xiàng)發(fā)明為“手機(jī)顯微鏡”( CellScope)。這項(xiàng)發(fā)明現(xiàn)在 ...… 查看全部問答∨ |
如何用cc1101實(shí)現(xiàn)判斷接收的信號(hào)的頻率? 看到有個(gè)方案是使用cc1101實(shí)現(xiàn)接收信號(hào)自動(dòng)檢測信號(hào)的頻率的,不知道是怎么樣實(shí)現(xiàn)的,有人可以解答下嗎,謝謝!… 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 英飛凌微控制器:以全新實(shí)惠套件和強(qiáng)大開發(fā)環(huán)境為開發(fā)者提供支持
- iTOP-i.MX6開發(fā)板設(shè)備數(shù)驅(qū)動(dòng)Menuconfig的用法
- 迅為IMX6ULL開發(fā)板Qt for Android搭建開發(fā)環(huán)境
- 迅為i.MX8M mini開發(fā)板Windots QT系統(tǒng)開發(fā)環(huán)境搭建
- 迅為IMX8MM開發(fā)板Yocto系統(tǒng)使用Gstarwmra(一)
- 迅為IMX8M mini開發(fā)板Linix系統(tǒng)修改默認(rèn)屏幕
- iTOP-4412開發(fā)板支持4G以上文件系統(tǒng)擴(kuò)展
- 迅為IMX8MM開發(fā)板Yocto系統(tǒng)設(shè)置開機(jī)自啟動(dòng)
- 迅為IMX6Q開發(fā)板 Buildroot文件系統(tǒng)mqtt測試
- 高通攜手中國“汽車朋友圈”亮相2025上海車展: 加速駕駛輔助普惠,推動(dòng)艙駕創(chuàng)新升級(jí)
- 工業(yè)市場正在快速回暖,德州儀器如何重塑電力電子市場?
- 特斯拉:美國交付的Model Y/3電池包已實(shí)現(xiàn)100%美國生產(chǎn)
- 地平線與博世深化合作,攜手為多家車企提供輔助駕駛產(chǎn)品
- 強(qiáng)化中國市場戰(zhàn)略布局,德州儀器正靈活應(yīng)對(duì)全球關(guān)稅挑戰(zhàn)
- Molex莫仕通過本地合作和創(chuàng)新加強(qiáng)支持中國汽車行業(yè)
- 貿(mào)澤開售Texas Instruments適用于高分辨率AR HUD的 全新DLP4620S-Q1 0.46"汽車數(shù)字微鏡器件
- ROHM推出高功率密度的新型SiC模塊,將實(shí)現(xiàn)車載充電器小型化!
- 用上車規(guī)級(jí)UFS 4.0,讓出行變得高效且可靠
- 車載測試技術(shù)解析:聚焦高帶寬、多通道同步采集與協(xié)議分析
- 直播已結(jié)束【最新 TI C2000實(shí)時(shí)控制芯片 — F28003X】
- PI 電源小課堂|無 DC-DC 變換實(shí)現(xiàn)多路高精度輸出反激電源
- 跟上未來,走進(jìn)恩智浦最新技術(shù)大講堂
- 下載有禮:2017年泰克亞太專家大講堂第四期: 如何應(yīng)對(duì)新型半導(dǎo)體材料表征測試挑戰(zhàn)
- 了解PI InnoSwitch-CE,答題贏好禮
- Microchip直播|如何在ADAS系統(tǒng)中解決精密授時(shí)挑戰(zhàn)
- 有獎(jiǎng)直播:安森美光伏和儲(chǔ)能產(chǎn)品介紹
- 免費(fèi)申請 | DFRobot蓋革計(jì)數(shù)器模塊
- UCF約束系列-管腳約束
- 曬WEBENCH設(shè)計(jì)的過程+基于TL082的低通濾波器
- DC-DC 開關(guān)管 瞬態(tài)電流 由什么決定的?
- 空氣質(zhì)量檢測器和煙霧探測器的新技術(shù)
- 第一時(shí)間搶先報(bào):ADI創(chuàng)新大賽頒獎(jiǎng)禮新聞
- 請教圖中高頻接收電路中Q?1 Q?2 Q?3應(yīng)選什么管。
- Windows Server 2003 是不是不支持Windows Ce 6.0?
- 多片存儲(chǔ)器的讀寫問題
- 更容易地實(shí)現(xiàn)與外部儀器的通信和同步
- 模擬pwm控制中 電流調(diào)節(jié)器的參考電壓怎么選,他是怎么工作的,跪求大神解答!