智汇工业-智慧工业、智能制造及工业智能、工业互联门户网站,专业的工业“互联网+”传媒

基于ARM9和Linux的液晶驅(qū)動(dòng)終端設(shè)計(jì)

來源:網(wǎng)絡(luò)

點(diǎn)擊:1041

A+ A-

所屬頻道:新聞中心

關(guān)鍵詞: ARM9,Linux,液晶驅(qū)動(dòng),MCU

      1 引言

      液晶驅(qū)動(dòng)終端是將液晶控制器、微控制器等集成在一起,并將液晶控制與圖形界面顯示等功能通過軟件封裝在一起,為用戶開放操作接口、屏蔽液晶顯示器的控制細(xì)節(jié),使用戶通過熟悉的接口(如RS232接口)發(fā)送預(yù)定義命令即可控制液晶顯示,進(jìn)行圖形界面開發(fā)工作。

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

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

      系統(tǒng)主要有ARM9微控制器、存儲單元、LCD控制器、CF卡接口與RS422通信接口組成,系統(tǒng)組成框圖如圖1所示。工作流程:系統(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)用程序,開始接收串口命令,應(yīng)用程序接收到有效的串口命令后,圖形界面數(shù)據(jù)通過Fmmebuffer接口傳送給LCD控制器。

    基于ARM9和Linux的液晶驅(qū)動(dòng)終端設(shè)計(jì)

      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í)間的外部總線接口(EBI),完成片外存儲器和內(nèi)部存儲器映

      射外設(shè)配置的無縫連接。EBI中設(shè)計(jì)專用電路以便SmartMedia、ComDact Flash及NAND F1ash連接。系統(tǒng)使用一片MT公司的28F128J3型16 MB NOR Flash,用于存儲Linux內(nèi)核與根文件系統(tǒng),使用2片HY57V281620來組成32位SDRAM接口。

      3.2 液晶驅(qū)動(dòng)接口

      系統(tǒng)選用EPSON公司的顯示控制器件S1D13506用于控制LCD的圖像數(shù)據(jù)顯示。S1D13506可與多種CPU總線兼容,支持最高為 16位數(shù)據(jù)寬度的LCD接口.可以在TFTLCD、CRT最高顯示64 K顏色。它配置一個(gè)16位內(nèi)存接口,支持最高2 MB的EDO-DRAM。系統(tǒng)中將S1D13506連接在AT91RM9200的BANK 3,數(shù)據(jù)總線寬度為16位.地址線A21與S1D13506M/R引腳相連,用于選擇訪問寄存器與顯存。AT91RM9200訪問S1D13506顯存起始地址為0x30200000.寄存器起始地址為0x30000000。使用了GM71V18163型2MBDRAM作為顯示存儲,AT91RM9200 通過訪問S1D13506數(shù)據(jù)地址空間,實(shí)現(xiàn)對DRAM的數(shù)據(jù)存儲操作,使用50 MHz的有源晶振作為DRAM的總線時(shí)鐘,25 MHz有源晶振作為LCD的像素時(shí)鐘信號,支持640x480 60 HzTFT LCD顯示,LCD行、場同步信號由S1D13506內(nèi)部通過對25 MHz像素時(shí)鐘分頻得出。LCD顯示控制硬件接口電路如圖2所示。

    基于ARM9和Linux的液晶驅(qū)動(dòng)終端設(shè)計(jì)

      3.3 CF卡存儲接口

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

    基于ARM9和Linux的液晶驅(qū)動(dòng)終端設(shè)計(jì)

      4 軟件設(shè)計(jì)

      4.1 整體軟件架構(gòu)

      系統(tǒng)軟件可以使用Linux、VxWorks等操作系統(tǒng),也可使用從直接操作低層硬件的前、后臺軟件。使用前、后臺方式的軟件雖然能夠?qū)崿F(xiàn)對硬件的充分利用,但使用操作系統(tǒng)增強(qiá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è)計(jì)需求。該系統(tǒng)使用的Linux內(nèi)核版本為 2.4.2l,交叉編譯工具鏈為ARM-Linux-cross-2.95.3。系統(tǒng)軟件架構(gòu)如圖4所示。系統(tǒng)中,無論應(yīng)用程序調(diào)用POSIX接口直接控制LCD顯示還是通過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)程地址空間開辟的存儲區(qū)域中,通過對存儲區(qū)域進(jìn)行的數(shù)據(jù)讀寫操作可以直接的反映在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總線的配置工作、S1D13506內(nèi)部寄存器的初始化及Frambuffer中預(yù)定義的數(shù)據(jù)結(jié)構(gòu)的填充。系統(tǒng)中使用的驅(qū)動(dòng)程序是對EPSON公司 S1D13xxx系列顯示控制器件Linux驅(qū)動(dòng)程序修改完成。其初始化函數(shù)示意性代碼如下:

      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的寄存器與顯示存儲的線性地址空間保存到顯卡狀態(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移植過程中可將驅(qū)動(dòng)程序靜態(tài)編譯到內(nèi)核中。若要使MiniGUl支持Frame-buffer,需將MiniGUI.efg文件中GAL引擎設(shè)為Framebuffer,如gal_engine=fbcon

      4.3 應(yīng)用程序

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

    基于ARM9和Linux的液晶驅(qū)動(dòng)終端設(shè)計(jì)

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

      5 結(jié)語

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

    (審核編輯: 小王子)

    聲明:除特別說明之外,新聞內(nèi)容及圖片均來自網(wǎng)絡(luò)及各大主流媒體。版權(quán)歸原作者所有。如認(rèn)為內(nèi)容侵權(quán),請聯(lián)系我們刪除。

    主站蜘蛛池模板: 上海便携式液体_日本理音液体_HACH液体颗粒计数器,metone尘埃粒子计数器-上海翰森科学仪器有限公司 | 全自动沾锡机|端子机|剥线机|昆山市博科鑫源电子设备有限公司 | 郑州冷却塔_河南冷却塔-河南金创制冷设备有限公司 | 排烟风机-屋顶风机-消防高温排烟风机-山东凯亿空调 | 晶圆盒垫纸|铝线棒精益管|防静电接地系统工程-上海德拉电子科技有限公司 | 气体报警器,有毒气体报警器,可燃气体探测器,乙炔气体报警器,可燃气体检漏仪,便携式气体检测仪,气体报警控制器-山东如特安防设备有限公司 | 万通汽车学校,汽车学校,汽修学校,汽修培训学校,汽车美容学校,汽车维修学校,学汽修-武汉万通汽车学校官方网站 | 维启科技-创造科技的无限可能 | 上海维启信息技术有限公司 建筑仿真 BIM 虚拟现实 VR AR 顶岗实习 建筑智能模型 | 美国Riverhawk轴承,Riverhawk十字弹簧轴承,Riverhawk联轴器,Riverhawk液压工具 | 印刷公司,北京印刷厂,宣传画册手册印刷厂-和智印彩页设计 | 青浦区摄像头安装/青浦区无线网络覆盖/青浦区网络调试公司/青浦区IT外包公司/金山区网络维护公司/金山区防火墙调试公司 | 河南三特炉业科技有限公司 | 深圳蓝枫印刷_画册印刷_彩页印刷_宣传册印刷_包装盒印刷_彩盒印刷厂_不干胶印刷厂 | 停车场设计|地下停车场规划设计|智能停车位地下车库设计施工装修|深圳创安顺停车库规划设计有限公司 | 伸缩接头,限位伸缩接头,传力接头,可拆卸接头,橡胶接头,衬四氟橡胶接头,橡胶软连接,橡胶补偿器,防水套管- 巩义市隆盛管道设备有限公司 | 洁衣库·U袋洗_网上洗衣店_网上干洗| 土石_泥石分离机_无轴滚筒筛_振动筛 - 巩义市鑫利重工机械制造有限公司 | 天象文仪办公家具,25年一站式配齐经验厂家-办公家具官网 | 找网页游戏鬼服 高返利鬼服游戏平台 鬼服开服表 - 猫游戏鬼服大全 | 联想南京总代理-联想服务器|联想电脑笔记本代理商|联想工作站|dell服务器|HP服务器|南京IBM代理商|IBM V5000存储总包销-南京宇宽科技有限公司 | 南京申信智能科技有限公司| 洁衣库·U袋洗_网上洗衣店_网上干洗 | 硬脂酸钡_硬脂酸镁_硬脂酸镉_硬脂酸铝_硬脂酸锌-石家庄中石恒达矿产品有限公司 | 欧美日韩人妻精品一区二区三区_欧美成人精品欧美一级乱黄_亚洲欧美日韩高清一区二区三区_国产一级做a爰片久久毛片_日韩一级视频在线观看播放_精品一区二区三区免费毛片爱_完整观看高清秒播国内外精品资源 | 离岸快车 - 专业的海外离岸公司香港公司离岸账户问答平台 | 兔展-H5页面制作、微信营销活动一站式企业营销数字化增长平台 | 双螺杆挤压膨化设备_挤压熟化设备_烘干设备_油炸设备及喷涂调味设备-山东铭本机械科技公司 | 混凝土修补-清水混凝土保护剂-仿清水混凝土-混凝土装修-混凝土色差处理-混凝土色差修复剂-德州唐荣建筑装饰工程有限公司 | 葡萄糖酸钠_食用葡萄糖_精萘-安徽鹏腾实业有限公司 | 中深世纪广告公司 深圳标志设计,深圳logo设计公司,包装设计公司,深圳商标设计,深圳画册设计公司 中商信息网-商务数据网-中文商务数据网 | 移动石料破碎机-颚式锤式反击式破碎机设备厂家_山东.青州富康机械 | 湖南实验台-防静电工作台-实验设备厂家-长沙实验室设备有限公司-湖南贝塔实验室设备有限公司 | 截止阀,电动,气动,手动,化工截止阀-上海申弘阀门有限公司 | 喜有沃-河南不锈钢管厂家批发201,304不锈钢管-现货规格齐全 | 上海钧尚电器有限公司 - Faulhaber电机 AMETEK pittman电机 AMETEK ROTRON军用航空风机 Exlar电动缸 MAE电机 MCG电机 CP电动工具 马头工具 AMCI驱动器 直流电机 减速箱 直流伺服电机,无刷电机,直线电机 直流防爆电机 防爆电机 汽车助力转向电机 EPS电机 faulhaber motor faulhaber gearbox NANOTEC电机 ELWOOD电机 PHYTRON电机 EXLAR伺服电动缸 高力矩、高性能直流电机,音圈电机,风机,直流风机,航空风机 | 康拓威技术(深圳)有限公司|Theia镜头代理商|安讯士AXIS摄像机|安讯士监控系统|博世BOSCH监控|博世会议系统|索尼SONY监控|松下PANASONIC监控|三星韩华SAMSUNG监控|霍尼韦尔Honeywell|海康|大华|华为监控|Theia无畸变镜头|AXIS监控|安讯视摄像机 | 首页-上海钢之杰智能建筑集团股份有限公司 | 上饶环亚电脑会计培训学校--电脑学校|上饶电脑学校|上饶电脑培训|会计培训|上饶会计培训|上饶县会计培训|广丰会计培训|玉山会计培训|横峰会计培训|上饶网店培训 上进电缆(嘉兴)股份有限公司官网 - 光伏电缆|防火电缆|电力电缆|铝合金电缆专业生产厂家 | 秦皇岛图成玻璃_横切机,琴键落板,堆垛机械手,玻璃钢化设备,掰边机,铺纸机,水平堆垛机+超大板堆垛机,纵掰纵分,下片机,冷端优化切割 | 洁净室、手术室、实验室、无尘车间厂房的净化工程装修设计施工公司-福临建设 | 铝压铸件_铝合金压铸件_铝合金压铸件厂家-安平县长虹压铸厂 |