您的位置 首页 国产IC

根据ARM9和Linux的液晶驱动终端规划

基于ARM9和Linux的液晶驱动终端设计-液晶驱动终端是将液晶控制器、微控制器等集成在一起,并将液晶控制与图形界面显示等功能通过软件封装在一起,为用户开放操作接口、屏蔽液晶显示器的控制细节,使用户通

  1 导言

  液晶驱动终端是将液晶操控器、微操控器等集成在一起,并将液晶操控与图形界面显现等功能经过软件封装在一起,为用户敞开操作接口、屏蔽液晶显现器的操控细节,运用户经过了解的接口(如RS232接口)发送预界说指令即可操控液晶显现,进行图形界面开发作业。

  现在.已有的液晶驱动终端首要选用微操控器与前、后台软件结合的办法进行规划,该类终端只能够显现字模办法的图片.该种类型的终端显现数据寄存在自带的NANDFlash中, 在人机界面规划过程中对NAND Flash中的数据办理是以扇区为根本操作单元,图片下载需求专用的软件东西完结,增加了界面规划的逻辑复杂性与操作性。这儿选用ARM9微操控器与 Linux操作体系结合的办法,规划出一种新式的液晶驱动终端。该终端经过FAT文件体系办理CF卡中数据资源,运用多线程技能完结串口指令解析与图型界面的显现,不只能够显现字模与图片等数据资源,而且运用该规划办法能够完结调用MiniGUI图型库等资源,适用于工业测控、智能仪表等范畴的人机界面规划。

  2 体系组成及作业原理

  体系首要有ARM9微操控器、存储单元、LCD操控器、CF卡接口与RS422通讯接口组成,体系组成框图如图1所示。作业流程:体系上电后,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的像素时钟信号,支撑640×480 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,并在某纺织厂的细纱机车速监控仪中得到运用。运用该终端可下降人机界面的规划难度,进步仪器仪表的开发功率,而且可进一步扩展网络视频播映及网络指令接口等功能,具有杰出的市场前景和运用价值。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/ic/174491.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部