基于ARM9&Linux的液晶驅(qū)動終端設(shè)計_第1頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、基于arm9linux的液晶驅(qū)動終端設(shè)計液晶驅(qū)動終端是將液晶控制器、微控制器等集成在一起并將液晶控制與圖形界面顯示等功能通過軟件封裝在一起為用戶開放操作接口、屏蔽液晶的控制詳情,用法戶通過認(rèn)識的接口(如rs232接口)發(fā)送預(yù)定義指令即可控制液晶顯示,舉行圖形界面開發(fā)工作。目前已有的液晶驅(qū)動終端主要采納微控制器與前、后臺軟件結(jié)合的辦法舉行設(shè)計,該類終端只能夠顯示字模方式的該種類型的終端顯示數(shù)據(jù)存放在自帶的nandflash中,在人機(jī)界面設(shè)計過程中對nand flash中的數(shù)據(jù)管理是以扇區(qū)為基本操作單元,下載需要專用的軟件工具完成,增強(qiáng)了界面設(shè)計的規(guī)律復(fù)雜性與操作性。這里采納9微控制器與操作系統(tǒng)結(jié)

2、合的辦法,設(shè)計出一種新型的液晶驅(qū)動終端。該終端通過fat文件系統(tǒng)管理cf卡中數(shù)據(jù)資源,利用多線程技術(shù)實現(xiàn)串口指令解析與圖型界面的顯示,不僅能夠顯示字模與等數(shù)據(jù)資源,而且利用該設(shè)計辦法可以實現(xiàn)調(diào)用minigui圖型庫等資源,適用于工業(yè)測控、智能儀表等領(lǐng)域的人機(jī)界面設(shè)計。2 系統(tǒng)組成及工作原理系統(tǒng)主要有arm9微控制器、存儲單元、控制器、cf卡接口與rs422通信接口組成,系統(tǒng)組成框圖l所示。工作流程:系統(tǒng)上電后,arm9微控制器從nor flash中讀取、解壓linux內(nèi)核與ramdisk根文件系統(tǒng)到sdram中,律壓完成后,啟動linux內(nèi)核并掛載根文件系統(tǒng);當(dāng)軟件環(huán)境初始化完成后啟動應(yīng)用程序

3、,開頭接收串口指令,應(yīng)用程序接收到有效的串口指令后,圖形界面數(shù)據(jù)通過fmmebuffer接口傳送給lcd控制器。3 系統(tǒng)主要硬件模塊設(shè)計31 arm9微控制器系統(tǒng)采納atmel公司的at91rm9200作為,該處理器基于arm920t內(nèi)核,工作主頻為180mhz,性能高達(dá)200mvvs。at91rm9200包括一個高速片上sram工作區(qū)及一個低等待時光的外部接口(ebi),完成片外存儲器和內(nèi)部存儲器映射外設(shè)配置的無縫銜接。ebi中設(shè)計專用以便smartmedia、comt flash及nand f1ash銜接。系統(tǒng)用法一片mt公司的28f128j3型16 mb nor flash,用于存儲li

4、nux內(nèi)核與根文件系統(tǒng),用法2片hy57v281620來組成32位sdram接口。32 液晶驅(qū)動接口系統(tǒng)選用epson公司的顯示控制器件s1d13506用于控制lcd的圖像數(shù)據(jù)顯示。s1d13506可與多種cpu總線兼容,支持最高為16位數(shù)據(jù)寬度的lcd接口可以在tftlcd、crt最高顯示64 k色彩。它配置一個16位內(nèi)存接口,支持最高2 mb的edo-dram。系統(tǒng)中將s1d13506銜接在at91rm9200的bank 3,數(shù)據(jù)總線寬度為16位地址線a21與s1d13506mr引腳相連,用于挑選拜訪寄存器與顯存。at91rm9200拜訪s1d13506顯存起始地址為0x30200000寄

5、存器起始地址為0x30000000。用法了gm71v18163型2mbdram作為顯示存儲,at91rm9200通過拜訪s1d13506數(shù)據(jù)地址空間,實現(xiàn)對dram的數(shù)據(jù)存儲操作,用法50 mhz的有源晶振奮為dram的總線時鐘,25 mhz有源晶振奮為lcd的像素時鐘信號,支持640x480 60 hztft lcd顯示,lcd行、場同步信號由s1d13506內(nèi)部通過對25 mhz像素時鐘分頻得出。lcd顯示控制硬件接口電路2所示。33 cf卡存儲接口在圖形界面的設(shè)計中需要運(yùn)用到位圖、字庫等數(shù)據(jù)資源,系統(tǒng)通過fat文件系統(tǒng)管理cf中數(shù)據(jù),并且通過pc機(jī)將數(shù)據(jù)挺直拷貝至cf卡。at91rm92

6、00與cf卡硬件接口銜接3所示。4 軟件設(shè)計41 整體軟件架構(gòu)系統(tǒng)軟件可以用法linux、等操作系統(tǒng),也可用法從挺直操作低層硬件的前、后臺軟件。用法前、后臺方式的軟件雖然能夠?qū)崿F(xiàn)對硬件的充分利用,但用法操作系統(tǒng)增加了系統(tǒng)的可維護(hù)性與擴(kuò)展性。系統(tǒng)在運(yùn)行和用法過程中需要管理cf卡中的數(shù)據(jù)以及應(yīng)用程序需要多線程支持,眾多操作系統(tǒng)中,開源的linux操作系統(tǒng)具有較為完美的文件系統(tǒng)與網(wǎng)絡(luò)協(xié)議族,并且能較好的支持多線程程序,可滿足設(shè)計需求。該系統(tǒng)用法的linux內(nèi)核版本為2.42l,交錯編譯工具鏈為arm-linux-cross-2953。系統(tǒng)軟件架構(gòu)4所示。系統(tǒng)中,無論應(yīng)用程序調(diào)用posix接口挺直控制

7、lcd顯示還是通過minigui間接控制lcd,終于都要調(diào)用相應(yīng)的液晶控制器驅(qū)動接口函數(shù),因此如何設(shè)計出一個s1d13506特別硬件的驅(qū)動程序是囫圇軟件設(shè)計的重點(diǎn)。42 framebuffer驅(qū)動的實現(xiàn)framebuffer是linux內(nèi)核中的一種驅(qū)動程序接口這種接el將顯示設(shè)備抽象為幀緩沖區(qū)。在應(yīng)用程序中將其映射到進(jìn)程地址空間開拓的存儲區(qū)域中,通過對存儲區(qū)域舉行的數(shù)據(jù)讀寫操作可以挺直的反映在lcd上。在linux24版本的內(nèi)核中,framebuffer被抽象為linuxdriversvide0下的fbconc文件,其主要依賴fb_info、fb_var_screeninfo、fb_fix_s

8、creeninfo3個數(shù)據(jù)結(jié)構(gòu),這些結(jié)構(gòu)定義在includelinuxfbh程序內(nèi)。s1d13506基于framebuffer的設(shè)備驅(qū)動程序主要完成at91rm9200 ebi總線的配置工作、s1d13506內(nèi)部寄存器的初始化及frambuffer中預(yù)定義的數(shù)據(jù)結(jié)構(gòu)的填充。系統(tǒng)中用法的驅(qū)動程序是對epson公司s1d13xxx系列顯示控制器件linux驅(qū)動程序修改完成。其初始化函數(shù)暗示性代碼如下:int sldl3506fb_init()init_9200_bank(); 初使化at9lrm9200ebi總線fb_inforegaddr=(unsigned char*)ioremap_noca

9、che(ox300000000,0x200000);fb_jnfovmemaddr=(unsigned char*)ioremap_nocache(0x30200000,ox200000);/將s1d13506的寄存器與顯示存儲的線性地址空間保存到顯卡狀態(tài)結(jié)構(gòu)體setsidl3506_reg();/配置s1d13506顯卡寄存器,并填充顯卡狀態(tài)數(shù)據(jù)結(jié)構(gòu)register_framebuffer(&fb_infogeninfo);|注豫framebuffer,初始化完成將驅(qū)動文件添加至linux根名目下的driversvide0名目中,并在當(dāng)前名目下makefile文件中添加obi一$(c

10、onfig fbs1d13506)+=sldl3506fbo,在configini文件中添加boolsldl3506'config_fb_epson,在linux移植過程中可將驅(qū)動程序靜態(tài)編譯到內(nèi)核中。若要使minigul支持frame-buffer,需將miniguiefg文件中g(shù)al引擎設(shè)為framebuffer,如gal_engine=fbcon。43 應(yīng)用程序在應(yīng)用程序設(shè)計中,用法多線程可更好的協(xié)調(diào)串口接收、圖像顯示、數(shù)據(jù)存儲以及超時處理等操作。終端中基于posix的應(yīng)用程序由圖形顯示與串口指令解析組成,因為linux操作系統(tǒng)中不同的線程之間可通過全局變量傳遞參數(shù),應(yīng)用程序中用法了一個全局的循環(huán)fifo作為兩個線程之間的指令緩沖區(qū),采納兩個靜態(tài)數(shù)據(jù)緩沖區(qū)用于存放串口傳來的圖像數(shù)據(jù)資源,數(shù)據(jù)緩沖區(qū)大小與lcd辨別率和像素深度有關(guān)。指令循環(huán)fifo管理結(jié)構(gòu)如下所示。系統(tǒng)中,基于framebuffer的設(shè)備被映射為devfb0文件,應(yīng)用程序啟動后,首先調(diào)用open()函數(shù)打開設(shè)備,然后調(diào)用 mmap()函數(shù)將顯存影射到用戶空間開拓的數(shù)據(jù)緩沖區(qū)內(nèi),初始化指令緩沖隊列后,啟動串口指令接收,接收到有效的串口指令后則執(zhí)行相應(yīng)的顯

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論