《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于ARM9&Linux的液晶驅動終端設計
基于ARM9&Linux的液晶驅動終端設計
國外電子元器件
西安工業大學電子信息工程學院 郭威,王大明,李寒
摘要: 基于ARM9&Linux的液晶驅動終端設計,1 引言 液晶驅動終端是將液晶控制器、微控制器等集成在一起.并將液晶控制與圖形界面顯示等功能通過軟件封裝在一起.為用戶開放操作接口、屏蔽液晶顯示器的控制細節,使用戶通過熟悉的接口(如RS232接口)發送預
Abstract:
Key words :

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


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

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

3.3 CF卡存儲接口
    在圖形界面的設計中需要運用到位圖、字庫等數據資源,系統通過FAT文件系統管理CF中數據,并且通過PC機將數據直接拷貝至CF卡。AT91RM9200與CF卡硬件接口連接如圖3所示。

4 軟件設計
4.1 整體軟件架構
    系統軟件可以使用Linux、VxWorks等操作系統,也可使用從直接操作低層硬件的前、后臺軟件。使用前、后臺方式的軟件雖然能夠實現對硬件的充分利用,但使用操作系統增強了系統的可維護性與擴展性。系統在運行和使用過程中需要管理CF卡中的數據以及應用程序需要多線程支持,眾多操作系統中,開源的Linux操作系統具有較為完善的文件系統與網絡協議族,并且能較好的支持多線程程序,可滿足設計需求。該系統使用的Linux內核版本為2.4.2l,交叉編譯工具鏈為ARM-Linux-cross-2.95.3。系統軟件架構如圖4所示。系統中,無論應用程序調用POSIX接口直接控制LCD顯示還是通過MiniGUI間接控制LCD,最終都要調用相應的液晶控制器驅動接口函數,因此如何設計出一個S1D13506特殊硬件的驅動程序是整個軟件設計的重點。

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

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

4.3 應用程序
    在應用程序設計中,使用多線程可更好的協調串口接收、圖像顯示、數據存儲以及超時處理等操作。終端中基于POSIX的應用程序由圖形顯示與串口命令解析組成,由于Linux操作系統中不同的線程之間可通過全局變量傳遞參數,應用程序中使用了一個全局的循環FIFO作為兩個線程之間的命令緩沖區,采用兩個靜態數據緩沖區用于存放串口傳來的圖像數據資源,數據緩沖區大小與LCD分辨率和像素深度有關。命令循環FIFO管理結構如下所示。


    系統中,基于Framebuffer的設備被映射為/dev/fb0文件,應用程序啟動后,首先調用open()函數打開設備,然后調用 mmap()函數將顯存影射到用戶空間開辟的數據緩沖區內,初始化命令緩沖隊列后,啟動串口命令接收,接收到有效的串口命令后則執行相應的顯示操作。


5 結語
    目前,該終端可成功驅動SHARP LQ035Q3DG01、LQl04-V1DG21等多種分辨率18 bit接口LCD,并在某紡織廠的細紗機車速監控儀中得到應用。使用該終端可降低人機界面的設計難度,提高儀器儀表的開發效率,并且可進一步擴展網絡視頻播放及網絡命令接口等功能,具有良好的市場前景和使用價值。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
日韩亚洲欧美高清| 久久都是精品| 亚洲欧美日韩直播| 一本一本a久久| 91久久精品国产91久久性色tv| 韩国一区电影| 国产视频一区在线| 国产精品黄视频| 欧美视频在线观看免费| 欧美大片91| 免费在线观看精品| 裸体素人女欧美日韩| 久久久久国内| 久久久久免费视频| 久久精品国产精品亚洲综合 | 久久精彩免费视频| 久久国产精品99国产精| 欧美在线观看网站| 亚洲电影一级黄| 亚洲精品久久久久久久久久久久| 亚洲精选久久| 99re热这里只有精品视频| 日韩一级精品| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 久久香蕉国产线看观看av| 久久亚洲欧洲| 欧美sm视频| 欧美人与性动交cc0o| 欧美日韩国产成人| 欧美四级在线| 国产欧美日韩精品丝袜高跟鞋| 国产日韩亚洲| 精品福利免费观看| 亚洲日韩欧美视频一区| 一区二区三区成人| 亚洲一区二区三区四区中文| 欧美一区二区三区免费在线看| 亚洲第一页中文字幕| 亚洲精品在线免费| 亚洲亚洲精品在线观看| 欧美在线视频a| 久久亚洲私人国产精品va| 欧美不卡视频| 欧美三级网址| 国产午夜精品美女视频明星a级 | 亚洲欧美日韩另类精品一区二区三区| 性欧美1819sex性高清| 亚洲第一伊人| 中文欧美日韩| 欧美在线视频一区二区三区| 老巨人导航500精品| 欧美女同视频| 国产欧美日韩三级| 亚洲国产欧美一区| 亚洲深爱激情| 欧美伊人影院| 一区二区三区欧美视频| 久久激情视频| 欧美精品在线免费| 国产精品日韩一区二区三区| 国内精品免费在线观看| 99国产精品国产精品久久| 午夜欧美电影在线观看| 亚洲久久一区| 欧美专区第一页| 欧美精品成人在线| 国产精品嫩草99a| 又紧又大又爽精品一区二区| 亚洲视频欧美在线| 亚洲国产综合91精品麻豆| 亚洲欧美精品| 欧美第十八页| 国产亚洲福利社区一区| 亚洲精品日韩欧美| 久久国产天堂福利天堂| 亚洲图片你懂的| 麻豆国产精品va在线观看不卡| 国产精品福利在线| 亚洲高清视频一区二区| 午夜精品国产更新| 中日韩美女免费视频网站在线观看| 久久精品99久久香蕉国产色戒| 欧美日韩一二区| 一区二区在线看| 亚洲在线视频一区| 99国产精品私拍| 免费国产一区二区| 国产亚洲人成网站在线观看| 中日韩午夜理伦电影免费| 亚洲激情自拍| 久久精品首页| 国产精品福利在线| 亚洲精品资源| 亚洲高清不卡在线观看| 久久国产黑丝| 国产精品日本精品| 99re6热只有精品免费观看| 亚洲国产日韩美| 久久九九精品99国产精品| 国产精品女人网站| 一区二区欧美在线| 99成人精品| 欧美国产成人精品| 国内外成人在线视频| 亚洲欧美日韩视频二区| 亚洲欧美成人网| 欧美色图五月天| 亚洲精一区二区三区| 亚洲三级性片| 欧美/亚洲一区| 韩国精品久久久999| 欧美一区2区三区4区公司二百| 香蕉av福利精品导航| 欧美日韩三级一区二区| 亚洲日本成人女熟在线观看| 亚洲激情社区| 蜜臀av性久久久久蜜臀aⅴ| 国内精品久久久久久久97牛牛| 欧美亚洲综合久久| 久久大香伊蕉在人线观看热2| 国产精品一区二区在线观看| 在线亚洲欧美视频| 亚洲网站视频| 欧美日韩专区| 在线中文字幕日韩| 亚洲男女自偷自拍| 国产精品久久久久aaaa| 亚洲一区国产视频| 欧美一区在线看| 国产午夜精品一区理论片飘花| 欧美一级久久久久久久大片| 久久国产夜色精品鲁鲁99| 国产亚洲欧美一区在线观看| 久久精品国产亚洲精品 | 欧美日韩一区在线| 一本色道久久精品| 亚洲欧美日韩成人| 国产精品女人网站| 性欧美超级视频| 久久亚洲精品网站| 亚洲国产乱码最新视频| 亚洲精选在线| 欧美午夜激情视频| 亚洲一区二区在线视频| 久久狠狠久久综合桃花| 精品av久久久久电影| 亚洲美女少妇无套啪啪呻吟| 欧美日韩午夜视频在线观看| 制服诱惑一区二区| 久久精品国内一区二区三区| 黄色亚洲精品| 亚洲毛片在线观看.| 国产精品v片在线观看不卡 | 午夜精品成人在线视频| 国产日韩av一区二区| 亚洲缚视频在线观看| 欧美日本韩国一区二区三区| 亚洲视频精选| 久久久久久久性| 亚洲激情二区| 亚洲欧美日韩区| 黄色成人av网站| 宅男在线国产精品| 国产日韩精品一区二区浪潮av| 亚洲国产精品一区在线观看不卡 | 国产日韩av一区二区| 亚洲激情视频在线| 国产精品99免费看| 久久国产一区二区| 欧美日韩另类一区| 欧美一区二区三区四区在线| 欧美黄色日本| 亚洲一区二区三区高清不卡| 麻豆国产va免费精品高清在线| 一区二区三区蜜桃网| 久久久久国产一区二区三区| 亚洲精品少妇| 久久精品首页| 99热在线精品观看| 另类综合日韩欧美亚洲| 中文日韩在线| 另类av一区二区| 亚洲一区日韩| 欧美精品不卡| 欧美一区二区在线视频| 欧美日韩不卡合集视频| 欧美一区激情视频在线观看| 欧美精品午夜| 欧美影视一区| 欧美午夜无遮挡| 亚洲欧洲日韩在线| 国产九九精品视频| 夜夜精品视频一区二区| 国产一区二区三区久久久| 一区二区三区欧美在线| 激情欧美一区二区三区| 亚洲综合成人在线| 亚洲国产裸拍裸体视频在线观看乱了中文 | 伊人成人在线| 久久国产婷婷国产香蕉|