搜档网
当前位置:搜档网 › μC_GUI在MSGl9264液晶上的移植

μC_GUI在MSGl9264液晶上的移植

μC_GUI在MSGl9264液晶上的移植
μC_GUI在MSGl9264液晶上的移植

μC/GUI在MSGl9264液晶上的移植

μC/GUI是美国Micrium公司出品的一款针对嵌入式系统的优秀图形软件。与μC/OS一样,μC/GUI具有源码公开、可移植、可裁减、稳定性和可*性高的特点[1]。采用μC/GUI,开发人员可以很方便地在液晶上显示文本、曲线、图形以及各种窗口对象如按钮、编辑框、滑动条等,可完全产生类似于Windows 的显示效果。另外,μC/GUI提供了在VC下的仿真库,这使得用户完全可以在Windows下仿真μC/GUI的各种效果。

采用μC/GUI,可以大大降低嵌入式系统中显示设计的难度,但μC/GUI的使用需针对不同的液晶编写相应的驱动程序才能实现。本文通过移植μC/GUI到MSGl9264液晶的过程,介绍了μC/GUI移植的原理以及移植中应注意的事项。

1.开发工具和运行环境

为了实现μC/GUI的移植,选用MSP430F149。MSP430F149是一款16位超低功耗单片机,具有强大的处理能力(RISC结构、125ns的指令周期)和丰富的片内外设(如硬件乘法器、ADC、定时器、看门狗等)。它内部具有2KB的RAM和60KB 的FLASH,能基本满足μC/GUI运行的需要[2]。

软件开发环境采用IAR公司的集成开发环境IAR EW430 2.10A。相对于较早的EW430 1.26A版本,2.10版本在各个方面有了较大改进,尤其是项目管理和调试上有了较大的改动,这使得移植μC/GUI更加方便。

2.μC/GUI移植

μC /GUI针对不同的液晶控制器提供了多种驱动程序,如KS0713、SEDl335、T6963等控制器都有对应的液晶驱动程序。但在很多情况下,用户采用的液晶,μC/GUI并没有提供其对应的驱动程序,需自己着手编写特定液晶的驱动程序。2.1 液晶显示器工作原理

为了能编写正确的液晶驱动程序,了解相应液晶的显示原理非常重要。本文采用的MSGl9264液晶为192x64点阵单色液晶,其中包含一个行驱动器KS0107B 和三个列驱动器KS0108B,每个列驱动器KS0108B对应一块64x64的液晶[3]。

MSGl9264液晶的控制线为R/W、RS、CSA、CSB和LCDEN,数据线为D0~D7。RS用于指示当前的操作是数据还是寄存器,R/W用于表明当前是读还是写,CSA、

CSB用于选择相应的列驱动器(其选择关系可见图1)。RS和R/W的功能可见表1,液晶显示器的读写时序见图2。

MSGl9264模块一共提供7种指令(由RW、RS及数据总线的电子决定),用于对该模块状态及显示进行控制。这7种指令包括显示开关控制、设起始行、设起始列、设页地址、读状态、读/写显示内容。通过这些指令的组合,可以控制液晶显示各种图形。

2.2 μC/GUI结构

MSP430F149是一款低功耗单片机,其供电电压为1.8~3.6V,而MSGl9264液晶为5V供电液晶,输入高电平为3.3V。为确保与液晶的输入电平兼容,MSP430F149的供电电压可设置为3.6V,这样就可以把MSP430F149与液晶直接连接而无需额外的驱动芯片。MSP430F149与LCD的接口电路如图4所示。μC/GUI 提供的函数库和各种显示效果都是通过表2所示接口函数在LCD上实现,所以LCD驱动文件的实现也就是把这些硬件接口函数的实现。由于MSGl9264液晶与

μC/GUI提供的LCDSLin较相似,所以笔者以μC/GUI提供的LCDSLin.C文件为基础,编写针对MSGl9264液晶的驱动程序。

μC/GUI的软件体系结构如图3所示。μC/GUI函数库为用户程序提供GUI接口,包含的函数有文本、数值、二维图形、输入设备以及各种窗口对象。其中,输入设备可以是键盘、鼠标或触摸屏;二维图形包括图片、直线、多边形、园、椭圆、圆弧等;窗口对象包括按钮、编辑框、进度条、复选框等。μC/GUI函数库可以通过GUIConf.h文件进行配置,配置的内容包括是否采用内存设备,是否采用窗口管理器,是否支持操作系统、触摸屏,以及配置动态内存的大小等。

在LCDConf.h文件中定义了与硬件有关的各种属性,如液晶的大小、颜色以及与液晶的接口函数。而LCD驱动文件则负责把μC/GUI的各种函数解释成LCDConf.h文件中定义的液晶接口函数,这个文件与具体的硬件连接无关。

μC/GUI与LCD的硬件接口通过驱动文件把硬件接口函数转化为LCDConf.h 中定义的LCD读写函数。

2.3 移植过程

2.3.1 修改LCDConf.h

LCDConf.h定义了LCD的大小、颜色,对应的LCD控制器以及与硬件连接有关的LCD读写函数。按照μC/GUI的规定,底层的读写LCD函数包括LCD_WRITE_A1()(即写LCD命令)、LCD_WRITE_A0()(写LCD数据)、LCD_READ_A0()(读LCD状态)、LCD_READ_A1()(读LCD数据)。这些函数的实现与底层硬件有关,必须根据硬件连接的具体情况编写这些函数。

LCD_WRITE A1()函数的具体实现如下:

#define LCD_WRITE_A1(Byte) //定义写LCD控制命令函数

{ //参数Byte为要写入液晶的数据。

P40UT = Byte; //把数据放到LCD的数据线上

_NOP(); //空指令,确保能可*地写入

P1OUT &= 0xef; //LCDRS=0,表示写命令

P10UTI = Ox20; //LCDEN=1

_NOP(); //空指令

P1OUT &= 0xcf; //LCDEN=0,把数据写入LCD显示RAM

_NOP();

}

2.3.2 编写LCD驱动文件

图3中的μC/GUI硬件接口函数主要由表2所示函数构成。

通过分析LCDSLin文件可以发现,液晶驱动程序的核心是画点函数,大部分硬件接口函数都可由画点函数实现。因此,改造画点函数及其调用函数成为移植的重点问题。

画点函数的要求是改变液晶上任意点的颜色而不影响其他点的颜色。考虑到单片机MSP430F149的输入电压不能超过3.6V,笔者没有采取读液晶显示器内部显示RAM的方法,而是在MSP430F149的RAM中定义一个数组存储LCD显示的数据。此数组可定义为unsigned char Cache[((LCD_YSIZE+7)>>3)xLCD_XSIZE]。LCD_XSIZE、LCD_YSIZE表示液晶的大小,在LCDConf.h文件中定义。考虑到液晶的长度可能不是8的整倍数,可定义数组大小为(LCD_YSIZE+7)>>3)xLCD_XSIZE。

在定义了Cache的基础上,画点函数可如下实现:

static void_SetPixel(int x , int y , LCD_PIXELINDEX c) //画点函数

{

U8 Mask=1<<(y&7); //屏蔽字

int Adr=XY20FF(x,y); //由x,y的绝对位置得到Cache中的相对位置

//XY20FF(x,y)可被定义为((y>>3)+x×((64+7)>>3))

U8 CacheByte=Cache[Adrl; //获得显示RAM的数值

if(c) //根据颜色修改显示RAM的值

CacheBytel=Mask; //对应位“置1”

else

CacheByte&=~Mask; //对应位清零

LCD_WRITE(Adr,CacheByte);//把CacheByte写入液晶显存并更改Cache[Adr]的值为CacheByte

}

函数的参数x,y代表要画点的位置(x为横坐标,y为纵坐标),参数c代表要画点的颜色。在函数内部,U8为μC/GUI提供的数据格式(相当于unsigned char),Mask为屏蔽字,Adr为x,y对应显示Cache的地址。

以把液晶的(5,5)处点亮为例,此时x=5,y=5,c=1,可计算出Mask=00100000,Adr=40(表示在Cache[40]处存有(5,5)点的颜色值)。由于c=1,所以应把Cache[40]中对应位“置1”,这是通过CacheByte的值“或”上Mask的值00100000实现的。最后通过调用LCD_WRITE函数把得到的新CacheByte值写入液晶对应的地址即可点亮该点。类似地,若要使某点不亮(c=0),则应该把对应位“清零”,这可以通过CacheByte&=~Mask这条命令实现。

画点函数中调用的LCD_Write函数可如下实现:

static void LCD_Write(int Adr,U8 Byte)

{

if(CacheIAdrl!=Byte)//若写入值与原值不符则把写入值保存到显示RAM中

{

Cache[Adr]=Byte;

if(LCD_Adr!=Adr)

LCD_SETADR(Adr);//设置液晶的起始行、起始列和CSA、CSB

LCD_WRITEl(Bytc);

}

}

由于此液晶由三块64x64的液晶组成,LCD_SETADR函数除了设置液晶的起始行、起始列外还应根据Adr的值设置CSA和CSB的值,才能写到对应的液晶屏上。此外,在LCD_WRITEl()函数中通过调用LCDConf.h文件中的LCD_WRITE_A1()和LCD_WRITE_A0()实现液晶显示。

除了_SetPixel()函数,基本函数还包括_GetPixel()函数和XorPixel()函数。_GetPixel()函数可以返回指定点的颜色信息,XorPixel()则可以对指定点颜色取反,实现“反白”的效果。由于这两个函数较简单,这里不再给出具体代码。

以函数_SetPixel()、_GetPixel()和XorPixel()为基础,结合MSGl9264液晶的7种指令就可以实现表1所给的硬件接口函数,以此构成了LCD驱动文件。

3.讨论

为了能使用μC/GUI,必须调用GUI_Init()初始化。与硬件有关的初始化如CPU时钟频率的选择等既可以放在GUI_Init()中,也可以单独编写一个函数初始化。

表2 硬件接口函数的名称和功能

由于笔者采用单色液晶,在LCDConf.h中定义LCD_FIXEDPALETFE为1;若为彩色液晶,应根据液晶支持的颜色设置LCD_FIXEDPALETYE,具体可参考手册。

若使用窗口对象,则在GUI_Conf.h中定义GUI—WINSUPPORT为1。

在GUIConf.h中定义GUI_ALLOC_SIZE为动态内存的大小,应根据需要合理选择。窗口对象(如按钮)的创建需要申请内存,若申请不到内存则无法创建,相应地创建函数值为0。可由此判断GUI_ALLOC_SIZE已经不能满足需要,一方面可以考虑增加GUI_ALLOC_SIZE(受制于芯片内存的大小);另一方面也可以删除不用的窗口对象,释放内存,再创建新的窗口对象。

采用内存设备能有效克服闪烁现象,获得更快的显示速度,但它需要额外的内存。由于MSP430F149内存较小,笔者没有采用内存设备。

可以设置窗口对象的默认字体及颜色以获得更好的显示效果。在单色液晶中,简单地改变背景颜色和字体颜色即可获得反显效果。

可以通过μC/GUI提供的软件(位图转换器和字体转换器)转换需要的图像或字体为μC/GUI格式。

由于定义的Cache占用了大量的RAM,若从液晶读回显存的值则可以省去Cache 占用的RAM,但同时也会降低系统运行的速度。

在LCDConf.h文件中定义了与硬件连接有关的LCD读写函数,在液晶驱动文件中调用这些LCD读写函数。这样做的好处是使驱动文件与硬件无关,一旦一种液晶的驱动编写完毕可以很方便地移植到各种系统中而只需更改LCDConf.h 即可。

12864液晶屏使用手册

12864液晶屏手册 一、液晶显示模块概述 12864A-1汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵,16*8=128,16*4=64,一行只能写8个汉字,4行;)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。 主要技术参数和显示特性: 电源:VDD ~+5V(内置升压电路,无需负压); 显示内容:128列×64行(128表示点数) 显示颜色:黄绿 显示角度:6:00钟直视 LCD类型:STN 与MCU接口:8位或4位并行/3位串行 配置LED背光 多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等 二、外形尺寸 1.外形尺寸图 2.主要外形尺寸 项目标准尺寸单位 模块体积××mm

二、模块引脚说明 逻辑工作电压(VDD):~ 电源地(GND):0V 工作温度(Ta):0~60℃(常温) / -20~75℃(宽温) 三、接口时序 模块有并行和串行两种连接方法(时序如下): 8位并行连接时序图 MPU写资料到模块

MPU从模块读出资料 2、串行连接时序图

串行数据传送共分三个字节完成: 第一字节:串口控制—格式11111ABC A为数据传送方向控制:H表示数据从LCD到MCU,L表示数据从MCU到LCD B为数据类型选择:H表示数据是显示数据,L表示数据是控制指令 C固定为0 第二字节:(并行)8位数据的高4位—格式DDDD0000 第三字节:(并行)8位数据的低4位—格式0000DDDD 串行接口时序参数:(测试条件:T=25℃VDD=

备注: 1、当模块在接受指令前,微处理顺必须先确认模块内部处于非忙碌状态,即读取BF标志时BF需为0,方可接受新的指令;如果在送出一个指令前并不检查BF标志,(一般在输入每天指令前加个delay)那么在前一个指令和这个指令中间必须延迟一段较长的时间,即是等待前一个指令确实执行完成,指令执行的时间请参考指令表中的个别指令说明。 2、“RE”为基本指令集与扩充指令集的选择控制位元,当变更“RE”位元后,往后的指令集将维持在最后的状态,除非再次变更“RE”位元,否则使用相同指令集时,不需每次重设“RE”位元。 具体指令介绍: 1、清除显示

将驱动移植到64位Windows操作系统

将驱动移植到64位Windows操作系统 x64位操作系统和x32位操作系统的最大区别就是内存寻址方式的不同。而64位操作系统不支持32位的驱动程序,因为驱动程序和windows内核同处于一个地址空间中。这是移植32位驱动到64位驱动的最大原因。当然,64位驱动程序可以使用更大的分页内存,非分页内存及系统缓存。而且,你的设备从此就支持64位windows操作系统了。 1.在X64下的驱动程序安装 除了要把应用程序的32位驱动程序变成64位程序之外,驱动的安装程序和其它配置文件同样需要修改。也就是说,对于要在x64上运行的32位程序,它所依赖的驱动仍然需要是64位的。这些相关程序包括inf文件,device installers, class installers和co-installers。相关资料可查看MSDN Libarary DDK:Porting Your Driver to 64-Bit Windows。 所以,要改造应用程序的安装程序。方法是,让32位版的驱动安装为缺省安装选项,即用户插入安装光盘之后,依然运行32位安装程序。但当程序调用UpdateDriverForPlugAndPlayDevices返回值为ERROR_IN_WOW64时,这说明该安装程序正运行在64位Windows环境中。此时,这个安装程序应该调用CreateProcess函数来启动64位的安装进程。这个64位的安装进程通过调用64位驱动目录下的inf文件进行驱动安装。 2.驱动要支持32位IOCTL 某些IOCTL可能包含含有指针的结构,所以,要特别小心的区别对待它,必须根据被调用者解析结构或者输出结构。 有三种办法可以解决这个问题: 1.尽量避免使用IOCTL传递包含有指针的结构; 2.通过API IoIs32bitProcess()来判断上层调用者的程序类型; 3.在64位程序中采用新的IOCTL命令; 例子: IOCTL structure in header file typedef struct _IOCTL_PARAMETERS {

LED显示屏模组使用材料说明

LED显示屏模组使用材料说明 1、LED灯:LED红灯(晶元),亮度1000-1100mcd,中心波长623-627nm LED绿灯(士蓝),亮度1900-2200mcd,中心波长520-525nm LED蓝灯(士蓝),亮度365-385mcd,中心波长470-475nm 发光二极管简称为LED。主要由支架、晶片、银胶、金线、环氧树脂五种物料所组成。由镓(Ga)与砷(AS)、磷(P)的化合物制成的二极管,当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管。在电路及仪器中作为指示灯,或者组成文字或数字显示。发光材料用透明环氧树脂封装。封装树脂包括:A胶(主剂)、B胶(硬化剂)、DP(扩散剂)、CP(着色剂)四部份组成。其主要成分为环氧树脂(Epoxy Resin)、酸酐类(酸无水物Anhydride)、高光扩散性填料(Light diffusion)及热安定性染料(dye) 2、LED驱动IC:HB5024 HB5024是一款用于大屏幕LED的低压差、高精度16位恒流驱动芯片。它是内建的16位移位寄存器与栓锁功能,可以将串行的输入数据转换成并行输出数据格式。HB5024的输入电压范围值为3.3V至5V,提供16个电流源,可以在每个输出级提供3mA - 45 mA恒定电流以驱动LED。并且单颗IC 内输出通道的电流差异小于±2%;多颗IC间的输出电流差异小于±3%;恒定输出电流随着输出端耐受电压(VDS)变化,被控制在每伏特0.1%;且电流受供给电压(VDD)、环境温度的变化也被控制在1%。HB5024可以选用不同阻值的外接电阻来调整其输出级的电流大小,藉此机制,使用者可精确地控制LED的发光亮度。HB5024的设计保证其输出级可耐压17V,因此可以在每个输出端串接多个LED。此外,HB5024亦提供30MHz的高时钟频率以满足系统对大量数据传输上的需求。 3、其他LED配件: ①、电源座(加强型):电源座是承接电源线与PCB板连接的主要器件,

液晶显示模块技术手册HJ1602A使用说明书

液晶显示模块技术手册 HJ1602A 一、概述 HJ1602A是一种工业字符型液晶,能够同时显示16x02即32个字符。(16列2行)二.模块尺寸(如图) 三.引脚接口说明表 第1脚:VSS为地电源。 第2脚:VDD接5V正电源。 第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。 第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS 为高电平R/W为低电平时可以写入数据。 第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:D0~D7为8位双向数据线。 第15脚:背光源正极。 第16脚:背光源负极。 四.1602LCD的指令说明及时序 14:控制命令表 1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平) 指令1:清显示,指令码01H,光标复位到地址00H位置。 指令2:光标复位,光标返回到地址00H。 指令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。 指令4:显示开关控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:控制光标的开与关,高电平表示有光标,低电平表示无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。 指令5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标。 指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线N:低电平时为单行显示,高电平时双行显示F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。 指令8:DDRAM地址设置。 指令9:读忙信号和光标地址BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。 指令10:写数据。 指令11:读数据。

液晶显示模块使用手册 pdf

液晶显示模块使用手册 版本:V2.0 型号:240128K 系列 选 配 件 说 明 □常温(0~50℃) □宽温(-20~+60℃) 液晶片 □超宽温(-30~+70℃) □黄绿膜 □蓝膜 □灰膜 □黑白膜 LED背光 □白光 □翡绿光 □黄绿光 □蓝光 背 光 EL背光 □白光 □蓝光 □CCFL背光 负压电路 □板载负压 □不带负压 EL逆变器 □配备 □板载 □不配备 CCFL逆变器 □配备 □不配备

一. 概述 240128K是一种图形点阵液晶显示模组。它用T6963C作为控制器,KS0086作为驱动的240(列)X128(行)的全点阵液晶显示。具有与INTER8080时序相适配的MPU接口功能,并有专门的指令集,可完成文本显示和图形显示的功能设置。 二. 特性 1.工作电压为+5V±10% 2.显示内容:240×128点,可显示15个(/行)X8共120个(16×16点阵)的中文字符 3.内部有固定字模库共128种(8X8)字符和2K字节的自定义字模容量。 4. 共有13条操作指令 三. 外形尺寸 . 项目标 准 尺 寸 单 位 模 块 体 积 120×86×12.5mm 定 位 尺 寸110×76mm 视 域93×48.1mm 行 列 点 阵 数 240×128dots 点 距 离 0.03×0.03 mm 点 大 小0.3×0.3 mm

四.硬件说明 1,带控制器引脚特性 电平 功能描述 序号 J1 1 FG - 结构地 2 GND - 逻辑电源负(0V) 3 VCC - 逻辑电源正 (5V) 4 VO - 液晶显示电压输人(调节显示对比度) 5 /WR H/L 写信号口 6 /RD H/L 读信号口 7 /CE H/L 片选信号 8 C/D H/L H:指令通道;L:数据通道 9 RES H/L 复位信号 10 DB0 H/L 数据位0 11 DB1 H/L 数据位1 12 DB2 H/L 数据位2 13 DB3 H/L 数据位3 14 DB4 H/L 数据位4 15 DB5 H/L 数据位5 16 DB6 H/L 数据位6 17 DB7 H/L 数据位7 18 FS H/L 液晶显示字体选择(H:6X8 ,L: 8X8) 19 BLA - 背光正 20 BLK - 背光负 21 VOUT 液晶显示电压输出

海信TLM2077液晶彩电说明书

UOC3+GM5221液晶电视原理及维修简要说明—— LCD2003EU/TLM1588/TLM2077 一、方案概述 本机采用LG-PHILIPS公司的20.1英寸高亮度、高对比度、宽视角电视专用液晶屏。图像处理部分由GENESIS公司的嵌入式芯片GM5221(其中包括CPU、A/D转换、SCALER、DEINTERLACE部分),PHILIPS的模拟解码,图文,丽音处理芯片UOC3,成都旭光的频率合成式高频头TDQ-6FT/W124H等组成。 二、原理说明(参照电路图) (一)、电源部分 本机工作时有12V、5V、3.3V、1.8V、33V等多组电压。 (1) 12 V部分 由内置电源直接供给直流12V,由于内置电源是作为一个部件采购,这里就不在详细描述其工作原理。本机需要12V供电的部分有:伴音功放N601 (解码板TDA1517P)、耳机功放N600(解码板TDA2822M)、逆变器(INVERTER)、 升压模块N401(解码板BA6161N)。 ⑵5V部分 本机由集成电路U9(主板LM2576-5.0)及其外围电路构成了一个降压型开关电源。通过这个开关电源,将12V直流电压变为5V直流电压为整机供电。在这个电路中,U9相当于一个起开关作用的功率晶体管,L10(100yH)为储能电感,D3 11N5822)为续流二极管,由于工作于开关方式,使其输出负载电流大(3.0A),电源转换效率高(77%)发热量小,可以采用铜箔散热的方式。同时,本电路还具有输出限流,及在故障状况下提供完全保护的热关断功能。 (3)3.3V 部分 本机3.3V是通过两个低压差线性电压稳压器U11(主板LM1117-3.3)、N400 (解码板LM1117-3.3)、对5V直流电压进行稳压来得到。此外该芯片还具有内部限流和热关断的功能,LM1117-3.3的最大输出电流为800毫安。 ⑷1.8V部分 本机1.8V是通过两个低压差线性电压稳压器U13(主板LM1117-1.8) 对5V直流电压进行稳压来得到。此外该芯片还具有内部限流和热关断的功倉泛。 (5)33V部分

u(boot中NANDflash的MTD驱动移植)-

u(boot中NANDflash的MTD驱动移植)- u-boot u-boot中的“与非”闪存的MTD驱动程序迁移移植了linux中的MTD 驱动程序源代码,以支持“与非”闪存擦除、刻录写入和读取驱动程序内存技术设备内存技术设备是Linux的一个子系统,用于访问闪存设备MTD的主要目的是简化新存储设备的驱动,并提供通用接口功能。MTD驱动可以支持CFI接口的非闪存驱动和非闪存驱动。众所周知,“与非”闪存的访问接口不像“非”闪存那样提供标准的CFI访问接口,但“与非”闪存制造商已经对不同品牌和型号的“与非”闪存芯片的访问接口制定了一些常规规定,如命令字、地址序列、命令序列、坏块标记位置、oob区域格式等。 值得注意的是,在工艺方面有两种类型的“与非”闪存:MLC和SLCMLC和SLC属于两种不同类型的NAND闪存SLC的全称是单级单元,即单级单元闪存,而MLC的全称是多级单元,即多级单元闪存。它们的区别在于,SLC的每个单元只能存储一位数据,而MLC 的每个单元只能存储两位数据,MLC的数据密度是SLC的两倍。就页容量而言,还有两种类型的与非:大页与非闪存(例如HY27UF082G2B)和小页与非闪存(例如K9F1G08U0A)这两种类型在页面容量、命令序列、地址序列、页面内访问和坏块识别方面非常不同,并且遵循不同的约定,因此在移植驱动程序时应该特别注意。在下,以大页面NAND flash: HY27UF082G2B为例,介绍NAND flash 的一些基本情况,然后介绍MTD驱动程序的基本结构和流程分析。

最后,介绍了在u-boot中迁移MTD驱动程序的详细步骤: 3 . 4 . 1)nandflash的一些基本信息 fl2400开发板上的NAND Flash芯片型号是现代HY27UF082G2B。英特尔于1988年首次开发了或非闪存技术。它最重要的特点是支持片上执行,彻底改变了EPROM和EEPROM主宰非易失性闪存世界的局面。然后,在1989年,东芝发布了NAND闪存结构,它具有较低的单位成本、较高的容量,并且可以像磁盘一样通过接口轻松升级。“或非”闪存更适合存储少量的关键代码和数据,而“与非”闪存更适合存储大量的高密度数据。 下表说明了非闪存与非闪存的区别:非闪存非闪存性能项目的容量通常为1~4MB,片上支持的最大容量为32MB 8MB~512MB。它可以直接在芯片上启动。它不受支持,需要驱动读取。只有三星芯片支持步进式引导加载器技术,其他芯片必须配备norflash以启动具有较高可靠性、较低位反转概率、常见位反转的引导加载器,并且必须采取验证措施。ECC椭圆曲线算法被推荐用于错误检查和恢复,这导致1/10的非闪存使得非闪存的管理和驱动程序写入更加复杂。存取接口与随机存取存储器和可编程只读存储器相同。地址线地址、数据和命令通过每个使能引脚区和输入/输出线与数据线分开。访问接口可分为地址、数据和命令以及串行访问。随机存取8K-64K块大小(擦除64K~128K单位)必须按顺序存取。擦除时间为5S,慢3毫秒,快速读写速度慢。快速读取,快速读取,刻录和写入可以快速擦除10 ~ 100,000次和100 ~ 100万次。主要用途保存代码和关键数据保存大

USB驱动移植教程

USB驱动移植教程 一.USB驱动框架 在Linux系统中,提供了主机侧和设备侧视角的USB驱动框架,这里,仅仅讲解主机侧角度看到的USB驱动框架。 从主机侧的角度而言,需要编写的USB驱动程序包括主机控制器驱动和设备驱动两类。USB主机控制器驱动程序控 制插入其中的USB设备,而USB设备驱动程序控制该设备如何作为设备与主机通信。在USB主机控制器驱动和USB 设备驱动之间还有一层叫USB核心层。USB核心负责USB驱动管理和协议处理工作,它通过定义一些数据结构、宏 和功能函数,向上为USB设备驱动提供编程接口,向下为USB主机控制器驱动提供编程接口;通过全局变量维护整个 系统的USB设备信息,完成设备热插拔控制、总线数据传输控制等。说了那么多,无图无真相啊~~

Linux USB主机侧驱动总体框架 二.USB驱动移植步骤 1.S5PV210主机控制驱动的移植 USB主机控制器有3种规范,UHCI(Universal Host Controller Interface),这种规范主要是Intel、Via芯片公司提供支 持PC主板的;OHCI(Open Host Controller Interface),这种规范是微软提出来的,主要应用在非PC系统上的嵌入式 领域上的USB芯片;EHCI(Enhanced Host Controller Interface),这种后来为提高USB速度而提出的规范,它支持 最高速度为480Mbps。 在《S5PV210_UM_REV1.1》手册上搜索OHCI关键词,会发现下面一段话 这表明S5PV210这款CPU支持一个USB主机接口,同时支持EHCI和OHCI这两种规范,支持USB1.1和USB2.0规范,支持最高的外设传输速率为480Mbps。注意了,它并不支持USB3.0规范的USB设备,所以做测试的时候,千万不要拿USB3.0规范的USB设备去测试。 2.1移植ohci-s5p驱动 打开内核目录:driversusbhost,发现Linux系统提供了大量的主机控制器驱动,找遍所有平台,都没有找到ohci-s5p.c源码。很遗憾,3.8的内核没有提供S5PV210的USB HOST控制器驱动程序。最好验证有没有提供的办法就是, 烧写网蜂提供的第二版的uImage进去,然后找个U盘、或者鼠标插入Webee210开发板的USB HOST接口,看看串 口有没有打印什么信息,结果是不会有任何反应的。既然没有提供,这就需要我们自己来编写了,这下不好办了吧?

LED显示屏使用说明书

LED显示屏使用说明书 为保证我们的产品可以在合理条件下正常使用,得到您对产品的认可,我们将简述产品的使用流程以及注意事项,请认真阅读后,再进行LED显示屏的安装和调试工作。 ☆使用硬件设备清单 LED显示屏信号连接线电源连接线系统控制卡(装载在电脑内)系统接收卡(装载在LED显示屏内)台式电脑(含DVI视频输出及串口)显示屏以及相关附属配件 ☆使用流程 硬件安装 安装步骤如下: 1、把DVI显示卡插于主板的AGP插槽,安装好该卡的驱动程序; 2、将数据采集卡插于空的PCI插槽(如果有使用); 3、用DVI电缆线把数据采集卡与显示卡连接在一起; 4、把控制线与串口(Rs232)相连(可选,灵星雨系统需要); 5、用网线与接收卡相连;(具体条数根据工程图纸) 6、检查连接无误即可进行设置或上电调试。 软件安装 安装步骤如下: 1、显卡驱动安装 将显卡驱动程序光盘插入光驱,即可自动进入安装状态,请按提示操作即可。 首先安装DirectX8.1;然后再安装驱动程序;最后安装控制面板。 2、播放软件 安装大屏幕专用播放与设置软件LED演播室,或其他控制软件 将随屏所附应用软件光碟插入光驱,复制或安装所有的程序到计算机上。 ☆电子屏操作步骤(重要) 1、开屏:请先打开计算机,再打开电子屏。 为各设备通入电源(确保输入电压符合产品要求) 打开LED屏体(屏体通电瞬间会有区域性的闪烁,表明屏体通电),打开计算机,务必确保显卡设置正确(不正确会没有显示画面,即黑屏),打开控制软件,进行基本的像素尺寸和显示区域设置(此设置并不影响LED显示屏画面的显示) 2、关屏:首先关掉LED屏体电源,关掉控制软件,再正确的关闭计算机。 ☆发现问题 1 检查各接线方式是否正确,包括,强电部分的连接(弱电部分已经在生产企业测试完成),信号连接是否正确,主要为系统接收卡输入与输出方向是否正确,接收卡上有方向示意。系统连接是否正确(请翻阅系统连接说明) 计算机软件部分是否完成安装,包括显卡的设置(请翻阅显卡设置说明)和控制软件安装。☆注意事项 1、遵守《用户使用手册》中的操作步骤; 2、防潮,湿度要求为:最高工作温度时,LED显示屏应小于相对湿度为92% 3、温度适当,温度要求为:工作环境温度-20°C≤t≤80°C 贮存环境温度-40°C≤t≤60°C 4、供电电源要符合要求 LED显示屏的供电电源电压:220V±10% 频率:50HZ±5% 安全大地接触可靠,地线与零线隔离可靠,接入电源远离大功率用电设备。 在操作流程中的其他问题,请翻阅相关说明,如再有疑问请联系我们。

32寸液晶电视说明书

高清液晶监视器 说明书 (32″)V2.0版 使用操作本产品前,请仔细阅读完本说明书,并保留好以备将来参考

用户服务指南 尊敬的用户: 感谢您选用液晶监视器,为了维护您的利益,及时为您排忧解难,敬请您注意以下事项下事项: 1、我公司产品附有一份《保修卡》,请您在购买产品之后将购机凭证(有效发票)与《保修 卡》妥善保管好,作为今后的保修依据。 2、我公司竭诚为您提供“整机免费保修一年,中心城市24小时内上门服务,边远地区预约 服务”。 3、本机所享受的保修服务只适用于中国大陆使用的用户,不适用其它国家或地区。 装箱清单 液晶监视器…………………………………………1台 说明书………………………………………………1本 合格证………………………………………………1个 保修卡………………………………………………1个 遥控器………………………………………………1个 电源线………………………………………………1条

目录 一、注意事项 (4) 二、警告注意 (5) 三、产品功能特点 (6) 四、基本技术参数 (7) 五、接口说明 (11) 六、遥控器说明 (12) 七、屏幕显示菜单(OSD) (13) 八、简单故障排除 (16)

一、注意事项 使用本产品前,请详细阅读下列注意事项,并请妥善保管以备日后查询。 产品使用本产品时请依照下列规范要求 ◆请不要掩盖或阻塞机体背后散热孔,以免妨碍机体散热。 ◆请不要用锐利物、金属或液体触碰信号接头或进入散热孔内,以免电路短路及产品损坏。 ◆请不要尝试自行分解、拆卸本产品任何部分,这样的行为可能会损坏产品及对人体造成伤害, 并使您所享有的产品保修失效。 ◆请不要用手指直接接触屏幕表面,这样可能会损伤屏幕表面,且皮肤上的油脂若留在屏幕上将很 难清除。 ◆请不要对LCD屏幕施加压力,LCD屏幕是非常精致且脆弱的。 搬运 ◆搬运监视器之前,请断开所有连接的线缆 ◆搬运大型监视器时,需要两人以上。 ◆搬运监视器时,禁止对液晶面板施加压力。 ◆搬运监视器以进行维护或移动时,请使用原有的纸箱和包装材料进行包装。 ◆抬起或移动监视器时,请牢牢扶住后侧和底部。(见下图) 安装 ◆仅可由有资格的服务人员进行监视器安装。 ◆设计安装监视器方案须参照产品外形结构尺寸图(请向经销商索取)。 ◆强烈建议您使用创捷原厂提供的配件(挂架、底座)以保证安装的可靠性和安全性。 ◆监视器安装时,须预留合理的维护操作空间和散热空间 插头在下列情况下,请拔下本产品的电源线 ◆如果您很长一段时间不使用本产品。 ◆如果电源线或电源插座/插头有损坏。 ◆请您依照本使用手册说明进行产品组装货调整,请不要自行以非本手册说明范围内的方式或程序 调整或操作本产品,如果您以非本说明手册的方式或程序调整或操作本产品发生不可预期的状况,请您将电源线拔下并通知本公司相关客服/技术人员为您处理。 ◆如果产品受撞击或摔落,以致外壳破损时。 电源线及信号连接线 ◆请不要让任何物体压迫电源线或信号连接线。 ◆请不要让本产品之电源线或信号连接线经过走道,或人们可能常走动的地方,以避免线体被踩到。 ◆请不要让电源插座或电源线超负荷使用。 ◆请不要让本产品之电源线或信号连接线置于潮湿的地方。

S3C2410 下LCD 驱动程序移植及GUI 程序编写

S3C2410下LCD驱动程序移植 及GUI程序编写 Write by llg 著作权所有:刘利国 如转载请告知作者 laoliu@https://www.sodocs.net/doc/5512804803.html, 并注明出处 https://www.sodocs.net/doc/5512804803.html, 1.为了不让大家觉枯燥,让朋友们更好的理解,我以一个实例来叙述S3C2410下一个驱动 程序的编写(本文的初始化源码以华恒公司提供的s3c2410fb.c为基础)及简单的GUI 程序的编写。 2.拿到一块LCD,首先要将LCD的各个控制线与S3C2410的LCD控制信号相接,当然, 电源也一定要接入了,否则不亮可别找我。另外需要注意以下几点: 1)背光:对于大部分的彩色LCD一定要接背光,我们才能看到屏上的内容; 2)控制信号:不同的LCD厂商对于控制信号有不同的叫法,S3C2410芯片手册也给出了一个信号的多个名称(图一),这就要看你们硬件工程师的功底了, 图一 S3C2410手册上给出的控制信号的名称及解释 这里我做一个简单的介绍: ?VFRAME:LCD控制器和LCD驱动器之间的帧同步信号。该信号告诉LCD 屏的新的一帧开始了。LCD控制器在一个完整帧显示完成后立即插入一个 VFRAME信号,开始新一帧的显示; ?VLINE:LCD控制器和LCD驱动器之间的线同步脉冲信号,该信号用于LCD 驱动器将水平线(行)移位寄存器的内容传送给LCD屏显示。LCD控制器在 整个水平线(整行)数据移入LCD驱动器后,插入一个VLINE信号; ?VCLK:LCD控制器和LCD驱动器之间的像素时钟信号,由LCD控制器送出的数据在VCLK的上升沿处送出,在VCLK的下降沿处被LCD驱动器采样; ?VM:LCD驱动器的AC信号。VM信号被LCD驱动器用于改变行和列的电压极性,从而控制像素点的显示或熄灭。VM信号可以与每个帧同步,也可以与 可变数量的VLINE信号同步。 3)数据线:也就是我们说的RGB信号线,S3C2410芯片手册上都有详细的说明,由于篇幅关系,在此不一一摘录,不过需要与硬件工程是配合的是他采用了哪种接线 方法,24位16位或其它。对于16位TFT屏又有两种方式,在写驱动前你要清楚

液晶显示模块中文说明书

液晶模块说明书SPEC NO YM12864G REV NO 1.0 液晶显示模块 中文说明书 产品类型: 标准产品 产品系列号: YM12864G 产品描述: 128x64图形点阵, 控制器:KS0108,LED背光 编写: Dexun Zou 审核: HCC 批准: Jingxi Yang 发行日期: 2002.1 大连佳显电子有限公司 地址:大连市沙河口区工华街17号 Tel: (0411)84619565 Fax: (0411)84619585 网址: https://www.sodocs.net/doc/5512804803.html, E-mail:market@https://www.sodocs.net/doc/5512804803.html,

一.概述 YM12864G是一种图形点阵液晶显示器。它主要采用动态驱动原理由行驱动—控制器和列驱动器两部分组成了128(列)×64(行)的全点阵液晶显示。 此显示器采用了COB的软封装方式,通过导电橡胶和压框连接LCD,使其寿命长,连接可靠。    二.特性 1.工作电压为+5V±10% ,可自带驱动LCD所需的负电压。  2.全屏幕点阵,点阵数为128(列)×64(行),可显示8(/行)×4(行)个(16× 16点阵)汉字,也可完成图形,字符的显示。 3.与CPU接口采用5条位控制总线和8位并行数据总线输入输出,适配M6800系列时序。  4.内部有显示数据锁存器 5.简单的操作指令 显示开关设置,显示起始行设置,地址指针设置和 数据读/写等指令。    三.外形尺寸 1.外形尺寸图

2.主要外形尺寸 项目标 准 尺 寸 单 位  模 块 体 积 118.0×87.0×14.0mm  定 位 尺 寸 110.0×76.5 mm  视 域85.0×55.0 mm  行 列 点 阵 数 128×64dots  点 距 离 0.59×0.75 mm  点 大 小0.63×0.79 mm    四.硬件说明 1.引脚特性 引脚号引脚名称 级 别 引脚功能描述1 VSS0V电源地  2 VDD +5V 电源电压  3 VLCD 0~-10V LCD驱动负电压,要求VDD-VLCD=13V  4 RS H/L 寄存器选择信号 5 R/W H/L 读/写操作选择信号  6 E H/L 使能信号  7 DB0 8 DB1  9 DB2  10 DB3 H/L八位三态并行数据总线 11 DB4  12 DB5  13 DB6  14 DB7  15 CS1 H/L 片选信号,当CS1=H时,液晶左半屏显示  16 CS2 H/L 片选信号,当CS2=H时,液晶右半屏显示  17 /RES H/L 复位信号,低有效  18 VEE -10V 输出-10V的负电压(单电源供电)  19 LED+(EL)+5V  背光电源,Idd≤300mA  20 LED-(EL) 0V

RTOS设备驱动向嵌人式Linux的移植

RTOS设备驱动向嵌人式Linux的移植 ——By Bill Weinberg,MontaVista Software,Inc. Linux暴风雨般占领了嵌入式系统市场。分析家指出,大约有1/3到1/2的32/64位新的嵌入式系统设计采用了Linux。嵌入式Linux已经在很多应用领域显示出优势,比如SOHO家庭网络和成像/多功能外设。在(NAS/SAN)存储,家庭数字娱乐(HDTV/PVR/DVR/STB),和手持设备/无线设备,特别是数字移动电话更获得大幅度发展。 嵌入式Linux新应用不会凭空从开发者的头脑中冒出来,大部分项目都是由成千上万行,甚至数百万行的代码组成。成千上百的嵌入式项目已经成功地将现有的其它平台的代码移植到Linux下,比如Wind River VxWorks和pSOS,VRTX,Nucleus和其它RTOS。这些移植工作有着重要的价值和现实意义。 到目前为止,大多数关于移植已有的RTOS应用到嵌入式Linux的文献,关注RTOS接口(API)、任务、调度模式以及怎样将他们映射到相应得用户空间去。同样重要的是,在I/O调用密集的嵌入式程序中如何将RTOS的硬件接口代码移植到更加规范的Linux设备驱动程序中去。 本文将概述几种常用的经常出现于现有嵌入式应用中的内存映射I/O方法。它们涵盖的范围从对中断服务例程的特殊使用及用户线程对硬件访问到出现于有些ROTS中的半规范化驱动程序模型。这对于移植RTOS代码到规范化的Linux设备启动程序具有一定启发作用,并且介绍了一些移植方法。特别地,本文会重点讨论RTOS和Linux中的内存映射,基于I/O调度队列的移植,将RTOS I/O重定义到Linux下的驱动程序和守护进程里。 RTOS I/O概念 “不规范”是描述大多数RTOS系统I/O的最佳词语。多数RTOS是针对较早的无MMU的CPU 而设计,所以忽略了内存管理部分,即使当MMU问世后也是这样:不区分物理地址和逻辑地址。大多数RTOS还全部运行在特权模式,虽然表面上看来是增强了性能。全部的RTOS应用和系统代码都能够访问整个地址空间、内存映射过的设备、以及其他I/O操作。这样,即使存在差别,也是很难把RTOS应用程序代码同驱动程序代码区分开来。 不规范的结构导致了I/O实现的特殊性。在很多情况下,缺乏设备驱动程序模型的认同。根据这种无层次的特性,回顾一下基于RTOS软件中使用的一些重要概念和习惯用法非常有指导意义。 内嵌的内存访问 上个世纪八十年代中期商业化的RTOS产品中,多数嵌入式软件都有一个对执行时间有严格需求的,采用I/O查询和中断服务例程的大循环。开发人员在项目采用RTOS和执行程序,主要为了加强并行性和多任务同步,绕开其它有碍实现该目标的程序结构。这样,即使RTOS提供了I/O调用形式化方法,嵌入式程序员继续使用直接的I/O操作: 1#define DATA_REGISTER0xF00000F5

RT-Thread驱动移植要点及AT25256驱动

RT-Thread 驱动移植要点 I/O管理模块为应用提供了一个对设备进行访问的通用接口,并通过定义的数据结构对设备驱动程序和设备信息进行管理。从系统整体位置来说I/O管理模块相当于设备驱动程序和上层应用之间的一个中间层。I/O管理模块实现了对设备驱动程序的封装:设备驱动程序的实现与I/O管理模块独立,提高了模块的可移植性。应用程序通过I/O管理模块提供的标准接口访问底层设备,设备驱动程序的升级不会对上层应用产生影响。这种方式使得与设备的硬件操作相关的代码与应用相隔离,双方只需各自关注自己的功能,这降低了代码的复杂性,提高了系统的可靠性。在RT-Thread中,设备也被认为是一类对象,被纳入对象管理器范畴。每个设备对象都是由基对象派生而来,每个具体设备都可以继承其父类对象的属性,并派生出其私有属性。下图即为设备对象的继承和派生关系示意图。 设备对象的继承和派生关系示意图 1. I/O设备管理控制块 struct rt device { struct rt object parent; /* 设备类型*/ enum rt device class type type; /* 设备参数及打开时参数*/ rt_uint16_t flag, open flag; /* 设备回调接口*/ rt_err_t (*rx indicate)(rt_device_t dev, rt_size_t size); rt_err_t (*tx complete)(rt_device_t dev, void* buffer); /* 设备公共接口*/ rt_err_t (*init) (rt_device_t dev); rt_err_t (*open) (rt_device_t dev, rt_uint16_t oflag); rt_err_t (*close) (rt_device_t dev); rt_size_t (*read) (rt_device_t dev, rt_off_t pos, void* buffer, rt_size_t size); rt_size_t (*write) (rt_device_t dev, rt_off_t pos, const void* buffer, rt_size_t size); rt_err_t (*control)(rt_device_t dev, rt_uint8_t cmd, void *args); #ifdef RT_USING_DEVICE_SUSPEND rt_err_t (*suspend) (rt_device_t dev); rt_err_t (*resumed) (rt_device_t dev);

动态加载驱动和Linux内核移植

项目三:Linux内核移植 1.能力培养目标 ●了解嵌入式Linux内核的构成 ●掌握内核裁减定制的方法 ●掌握内核编译的方法 ●掌握内核烧写的方法 2.项目任务要求 (1)项目任务 Linux内核的裁剪、编译和烧写。 (2)项目来源及应用 对于较复杂的嵌入式系统项目,当硬件平台制作好之后,就需要向其移植操作系统,如果移植的是嵌入式Linux且为GUI应用,那么移植过程一般包含: 第一步,移植引导程序(Vivi、BLOB、uBoot等); 第二步,移植内核kernel;(本次实验内容) 第三步,移植根文件系统; 第四步,移植库文件,如QT库; 第五步,运行项目程序。 (3)功能需求 裁减一个可用的Linux内核 ●选择正确的处理器类型 ●使其支持网卡、小键盘、USB鼠标、声卡等设备 ●成功编译后烧写到目标机上 ●内核能正确加载运行 ●键盘驱动可用 (4)项目开发环境需求

3.项目预习 (1)了解项目目标、项目任务要求、项目设计和项目实施步骤。 (2)下载本次实验所需要的软件和代码。将3_kbd_test目录放到linux虚拟机的up-techpxa270cl目录下。 (3)完成内核裁剪及编译好内核映像,即完成第5大项中的步骤(4)-(5)。 (4)回答以下问题 如何能够在目标机上访问宿主机上的文件? 说明使用mount命令进行文件挂载的方法。 说明mount命令执行不成功可能的原因和解决方法。 说明本实验所使用的Linux内核版本。 说明Linux内核裁减定制的方法。 4.项目设计 4.1选择Linux内核裁减方法 Linux内核的裁减配置的三种命令: 1、make config:命令行模式,一行一行的配置,不推荐使用。 2、make menuconfig:大多人熟悉的menuconfig菜单。 3、make xconfig:基于QT图形化配置,菜单结构清晰。 所有内核裁减配置过程,都是通过Config.in(2.4内核)或Kconfig(2.6内核)经由不同脚本解释器产生.config配置文件。

linux视频驱动移植

V4L2视频驱动的移植与应用 V4L2(video for linux) 可以支持多种设备,它可以有以下5种接口: 1、视频采集接口(video capture interface):这种应用的设备可以是高频头或者摄像头.V4L2的最初设计就是应用于这种功能的.下面也是着重讲解这种应用; 2、视频输出接口(video output interface):可以驱动计算机的外围视频图像设备——像可以输出电视信号格式的设备; 3、直接传输视频接口(video overlay interface):它的主要工作是把从视频采集设备采集过来的信号直接输出到输出设备之上,而不用经过系统的CPU; 4、视频间隔消隐信号接口(VBI interface):它可以使应用可以访问传输消隐期的视频信号; 5、收音机接口(radio interface):可用来处理从AM或FM高频头设备接收来的音频流; V4L2驱动的主要功能是使程序有发现设备的能力和操作设备.它主要是用过一系列的回调函数来实现这些功能.像设置高频头的频率,帧频,视频压缩格式和图像像参数等等. 一、V4L2的移植 V4L2提供了三种不同的API来传输外围设备和用户空间的数据。下面就vivi(drivers/media/video/vivi.c)来讲解一个V4L2驱动的编写。注意它是一个虚拟的设备驱动,没有与实际的硬件打交道。 1、分析几个重要数据结构: vivi.c包含头文件v4l2-device.h和v4l2-ioctl.h,其中v4l2-device.h中包含了v4l2-subdev.h,v4l2-subdev.h中又包含了v4l2-common.h,v4l2-common.h中包含了v4l2-dev.h。 在v4l2-dev.h中定义了结构体video_device和v4l2_file_operations; 在v4l2-ioctl.h中定义了结构体v4l2_ioctl_ops; 在v4l2-device.h中定义了结构体v4l2_device; 1) vivi_fops static const struct v4l2_file_operations vivi_fops = { .owner = THIS_MODULE, .open = vivi_open, .release = vivi_close, .read = vivi_read, .poll = vivi_poll, .ioctl = video_ioctl2, /* V4L2 ioctl handler */ .mmap = vivi_mmap, }; 2) vivi_ioctl_ops static const struct v4l2_ioctl_ops vivi_ioctl_ops = { .vidioc_querycap = vidioc_querycap, .vidioc_enum_fmt_vid_cap = vidioc_enum_fmt_vid_cap, .vidioc_g_fmt_vid_cap = vidioc_g_fmt_vid_cap,

1602液晶模块数据手册(中文)

LCD 模块使用手册 EDM1602-10 字符点阵式液晶显示模块 使用说明 大连东显电子有限公司 地址: 大连开发区哈尔滨路25-1号 邮编: 116600 电话: (0411)7612956 7632020 7612955 传真: (0411)7612958

1. 使用范围----------------------------------------------------3 2. 质量保证----------------------------------------------------3 3. 性能特点----------------------------------------------------3 4. 外形图-------------------------------------------------------6 5. I/O接口特性-----------------------------------------------7 6. 质量等级---------------------------------------------------26 7. 可靠性---------------------------------------------------28 8. 生产注意事项---------------------------------------------29 9. 使用注意事项---------------------------------------------30 第 2 页共30页

第 3 页 共30页 1. 使用范围 该检验标准适用于大连东显电子有限公司设计提供的标准液晶显示模块。如果在使用中出现了异常问题或没有列明的项目,建议同最近的供应商或本公司联系。 2. 质量保证 如在此手册列明的正常条件下使用、储存该产品,公司将提供12个月的质量保 证。 3. 性能特点 3-1.性能: 显示方式 : 半透、正显 TN LCD 显示颜色 : 显示点: 黑色 背景: 灰色 显示形式 : 16 (C)×1 (L) 字符 输入数据 : 来自MPU 的8位并行数据接口 驱动路数 : 1/16 Duty 视 角 : 6 点 CGROM 容量: 160 5×8dots character fonts generator (CG) ROM CGRAM 容量: 8 5×8dots character fonts generator(CG)RAM 3-2.机械性能: 项 目 规 格 单位 外形尺寸 85.0(W) ×30.0(H)×14.5 Max.(T) mm 视 域 64.5(W)×17.0(H) mm 显示图形域 57.7(W)×10.2(H) mm 字符尺寸 2.95 (W)×4.75 (H) mm 点间距 0.55(W)×0.55(H) mm 点尺寸 0.6(W)×0.6(H) mm 重量 Approx. g

相关主题