當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于A(yíng)RM9&Linux的液晶驅(qū)動(dòng)終端設(shè)計(jì)

1 引言
    液晶驅(qū)動(dòng)終端是將液晶控制器、微控制器等集成在一起.并將液晶控制與圖形界面顯示等功能通過(guò)軟件封裝在一起.為用戶(hù)開(kāi)放操作接口、屏蔽液晶顯示器的控制細(xì)節(jié),使用戶(hù)通過(guò)熟悉的接口(如RS232接口)發(fā)送預(yù)定義命令即可控制液晶顯示,進(jìn)行圖形界面開(kāi)發(fā)工作。
    目前.已有的液晶驅(qū)動(dòng)終端主要采用微控制器與前、后臺(tái)軟件結(jié)合的方法進(jìn)行設(shè)計(jì),該類(lèi)終端只能夠顯示字模方式的圖片.該種類(lèi)型的終端顯示數(shù)據(jù)存放在自帶的NANDFlash中,在人機(jī)界面設(shè)計(jì)過(guò)程中對(duì)NAND Flash中的數(shù)據(jù)管理是以扇區(qū)為基本操作單元,圖片下載需要專(zhuān)用的軟件工具完成,增加了界面設(shè)計(jì)的邏輯復(fù)雜性與操作性。這里采用ARM9微控制器與Linux操作系統(tǒng)結(jié)合的方法,設(shè)計(jì)出一種新型的液晶驅(qū)動(dòng)終端。該終端通過(guò)FAT文件系統(tǒng)管理CF卡中數(shù)據(jù)資源,利用多線(xiàn)程技術(shù)實(shí)現(xiàn)串口命令解析與圖型界面的顯示,不僅能夠顯示字模與圖片等數(shù)據(jù)資源,而且利用該設(shè)計(jì)方法可以實(shí)現(xiàn)調(diào)用MiniGUI圖型庫(kù)等資源,適用于工業(yè)測(cè)控、智能儀表等領(lǐng)域的人機(jī)界面設(shè)計(jì)。


2 系統(tǒng)組成及工作原理
    系統(tǒng)主要有ARM9微控制器、存儲(chǔ)單元、LCD控制器、CF卡接口與RS422通信接口組成,系統(tǒng)組成框圖如圖l所示。工作流程:系統(tǒng)上電后,ARM9微控制器從NOR Flash中讀取、解壓Linux內(nèi)核與Ramdisk根文件系統(tǒng)到SDRAM中,律壓完成后,啟動(dòng)Linux內(nèi)核并掛載根文件系統(tǒng);當(dāng)軟件環(huán)境初始化完成后啟動(dòng)應(yīng)用程序,開(kāi)始接收串口命令,應(yīng)用程序接收到有效的串口命令后,圖形界面數(shù)據(jù)通過(guò)Fmmebuffer接口傳送給LCD控制器。

3 系統(tǒng)主要硬件模塊設(shè)計(jì)
3.1 ARM9微控制器
    系統(tǒng)采用ATMEL公司的AT91RM9200作為MCU,該處理器基于ARM920T內(nèi)核,工作主頻為180MHz,性能高達(dá)200MVVs。AT91RM9200包括一個(gè)高速片上SRAM工作區(qū)及一個(gè)低等待時(shí)間的外部總線(xiàn)接口(EBI),完成片外存儲(chǔ)器和內(nèi)部存儲(chǔ)器映
射外設(shè)配置的無(wú)縫連接。EBI中設(shè)計(jì)專(zhuān)用電路以便SmartMedia、ComDact Flash及NAND F1ash連接。系統(tǒng)使用一片MT公司的28F128J3型16 MB NOR Flash,用于存儲(chǔ)Linux內(nèi)核與根文件系統(tǒng),使用2片HY57V281620來(lái)組成32位SDRAM接口。
3.2 液晶驅(qū)動(dòng)接口
    系統(tǒng)選用EPSON公司的顯示控制器件S1D13506用于控制LCD的圖像數(shù)據(jù)顯示。S1D13506可與多種CPU總線(xiàn)兼容,支持最高為16位數(shù)據(jù)寬度的LCD接口.可以在TFTLCD、CRT最高顯示64 K顏色。它配置一個(gè)16位內(nèi)存接口,支持最高2 MB的EDO-DRAM。系統(tǒng)中將S1D13506連接在A(yíng)T91RM9200的BANK 3,數(shù)據(jù)總線(xiàn)寬度為16位.地址線(xiàn)A21與S1D13506M/R引腳相連,用于選擇訪(fǎng)問(wèn)寄存器與顯存。AT91RM9200訪(fǎng)問(wèn)S1D13506顯存起始地址為0x30200000.寄存器起始地址為0x30000000。使用了GM71V18163型2MBDRAM作為顯示存儲(chǔ),AT91RM9200通過(guò)訪(fǎng)問(wèn)S1D13506數(shù)據(jù)地址空間,實(shí)現(xiàn)對(duì)DRAM的數(shù)據(jù)存儲(chǔ)操作,使用50 MHz的有源晶振作為DRAM的總線(xiàn)時(shí)鐘,25 MHz有源晶振作為L(zhǎng)CD的像素時(shí)鐘信號(hào),支持640x480 60 HzTFT LCD顯示,LCD行、場(chǎng)同步信號(hào)由S1D13506內(nèi)部通過(guò)對(duì)25 MHz像素時(shí)鐘分頻得出。LCD顯示控制硬件接口電路如圖2所示。

[!--empirenews.page--]

3.3 CF卡存儲(chǔ)接口
    在圖形界面的設(shè)計(jì)中需要運(yùn)用到位圖、字庫(kù)等數(shù)據(jù)資源,系統(tǒng)通過(guò)FAT文件系統(tǒng)管理CF中數(shù)據(jù),并且通過(guò)PC機(jī)將數(shù)據(jù)直接拷貝至CF卡。AT91RM9200與CF卡硬件接口連接如圖3所示。

4 軟件設(shè)計(jì)
4.1 整體軟件架構(gòu)
    系統(tǒng)軟件可以使用Linux、VxWorks等操作系統(tǒng),也可使用從直接操作低層硬件的前、后臺(tái)軟件。使用前、后臺(tái)方式的軟件雖然能夠?qū)崿F(xiàn)對(duì)硬件的充分利用,但使用操作系統(tǒng)增強(qiáng)了系統(tǒng)的可維護(hù)性與擴(kuò)展性。系統(tǒng)在運(yùn)行和使用過(guò)程中需要管理CF卡中的數(shù)據(jù)以及應(yīng)用程序需要多線(xiàn)程支持,眾多操作系統(tǒng)中,開(kāi)源的Linux操作系統(tǒng)具有較為完善的文件系統(tǒng)與網(wǎng)絡(luò)協(xié)議族,并且能較好的支持多線(xiàn)程程序,可滿(mǎn)足設(shè)計(jì)需求。該系統(tǒng)使用的Linux內(nèi)核版本為2.4.2l,交叉編譯工具鏈為ARM-Linux-cross-2.95.3。系統(tǒng)軟件架構(gòu)如圖4所示。系統(tǒng)中,無(wú)論應(yīng)用程序調(diào)用POSIX接口直接控制LCD顯示還是通過(guò)MiniGUI間接控制LCD,最終都要調(diào)用相應(yīng)的液晶控制器驅(qū)動(dòng)接口函數(shù),因此如何設(shè)計(jì)出一個(gè)S1D13506特殊硬件的驅(qū)動(dòng)程序是整個(gè)軟件設(shè)計(jì)的重點(diǎn)。

4.2 Framebuffer驅(qū)動(dòng)的實(shí)現(xiàn)
    Framebuffer是Linux內(nèi)核中的一種驅(qū)動(dòng)程序接口.這種接El將顯示設(shè)備抽象為幀緩沖區(qū)。在應(yīng)用程序中.將其映射到進(jìn)程地址空間開(kāi)辟的存儲(chǔ)區(qū)域中,通過(guò)對(duì)存儲(chǔ)區(qū)域進(jìn)行的數(shù)據(jù)讀寫(xiě)操作可以直接的反映在LCD上。在Linux2.4版本的內(nèi)核中,F(xiàn)ramebuffer被抽象為linux\drivers\vide0下的fbcon.c文件,其主要依靠fb_info、fb_var_screeninfo、fb_fix_screeninfo3個(gè)數(shù)據(jù)結(jié)構(gòu),這些結(jié)構(gòu)定義在include/Linux/fb.h程序內(nèi)。S1D13506基于Framebuffer的設(shè)備驅(qū)動(dòng)程序主要完成AT91RM9200 EBI總線(xiàn)的配置工作、S1D13506內(nèi)部寄存器的初始化及Frambuffer中預(yù)定義的數(shù)據(jù)結(jié)構(gòu)的填充。系統(tǒng)中使用的驅(qū)動(dòng)程序是對(duì)EPSON公司S1D13xxx系列顯示控制器件Linux驅(qū)動(dòng)程序修改完成。其初始化函數(shù)示意性代碼如下:

int sldl3506fb_init()
{
init_9200_bank(); //初使化AT9lRM9200EBI總線(xiàn)
fb_info.RegAddr=(unsigned char*)ioremap_nocache(Ox300000000,0x200000);
fb_jnfo.VmemAddr=(unsigned char*)ioremap_nocache(0x30200000,Ox200000);
//將S1D13506的寄存器與顯示存儲(chǔ)的線(xiàn)性地址空間保存到顯卡狀態(tài)結(jié)構(gòu)體
setsIdl3506_reg();//配置S1D13506顯卡寄存器,并填充顯卡狀態(tài)數(shù)據(jù)結(jié)構(gòu)
register_framebuffer(&fb_info.gen.info);||注豫framebuffer,初始化完成
}
    將驅(qū)動(dòng)文件添加至Linux根目錄下的drivers\vide0目錄中,并在當(dāng)前目錄下makefile文件中添加obi一$(CONFIG FBS1D13506)+=sldl3506fb.O,在Config.ini文件中添加boolSldl3506‘CONFIG_FB_EPSON,在Linux移植過(guò)程中可將驅(qū)動(dòng)程序靜態(tài)編譯到內(nèi)核中。若要使MiniGUl支持Frame-buffer,需將MiniGUI.efg文件中GAL引擎設(shè)為Framebuffer,如gal_engine=fbcon。 [!--empirenews.page--]

4.3 應(yīng)用程序
    在應(yīng)用程序設(shè)計(jì)中,使用多線(xiàn)程可更好的協(xié)調(diào)串口接收、圖像顯示、數(shù)據(jù)存儲(chǔ)以及超時(shí)處理等操作。終端中基于POSIX的應(yīng)用程序由圖形顯示與串口命令解析組成,由于Linux操作系統(tǒng)中不同的線(xiàn)程之間可通過(guò)全局變量傳遞參數(shù),應(yīng)用程序中使用了一個(gè)全局的循環(huán)FIFO作為兩個(gè)線(xiàn)程之間的命令緩沖區(qū),采用兩個(gè)靜態(tài)數(shù)據(jù)緩沖區(qū)用于存放串口傳來(lái)的圖像數(shù)據(jù)資源,數(shù)據(jù)緩沖區(qū)大小與LCD分辨率和像素深度有關(guān)。命令循環(huán)FIFO管理結(jié)構(gòu)如下所示。


    系統(tǒng)中,基于Framebuffer的設(shè)備被映射為/dev/fb0文件,應(yīng)用程序啟動(dòng)后,首先調(diào)用open()函數(shù)打開(kāi)設(shè)備,然后調(diào)用 mmap()函數(shù)將顯存影射到用戶(hù)空間開(kāi)辟的數(shù)據(jù)緩沖區(qū)內(nèi),初始化命令緩沖隊(duì)列后,啟動(dòng)串口命令接收,接收到有效的串口命令后則執(zhí)行相應(yīng)的顯示操作。


5 結(jié)語(yǔ)
    目前,該終端可成功驅(qū)動(dòng)SHARP LQ035Q3DG01、LQl04-V1DG21等多種分辨率18 bit接口LCD,并在某紡織廠(chǎng)的細(xì)紗機(jī)車(chē)速監(jiān)控儀中得到應(yīng)用。使用該終端可降低人機(jī)界面的設(shè)計(jì)難度,提高儀器儀表的開(kāi)發(fā)效率,并且可進(jìn)一步擴(kuò)展網(wǎng)絡(luò)視頻播放及網(wǎng)絡(luò)命令接口等功能,具有良好的市場(chǎng)前景和使用價(jià)值。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀(guān)點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶(hù)希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話(huà)語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉