1.07k likes | 1.26k Views
4.5 人机交互接口. 4.5.1 显示器接口设计 4.5.2 键盘接口设计 4.5.3 触摸屏接口设计 4.5.4 嵌入式系统其它接口设计. 4.5 人机交互接口. 为了使嵌入式系统具有友好的人机接口,需要给嵌入式系统配置显示装置,如 LCD 显示器以及必要的声响提示等。另外,要进行人机交互,还得由输入装置,使用户可以对嵌入式系统发出命令或输入必要的参数。如输入设备如键盘、触摸屏等。 4.5.1 LCD 显示器
E N D
4.5 人机交互接口 4.5.1 显示器接口设计 4.5.2 键盘接口设计 4.5.3 触摸屏接口设计 4.5.4 嵌入式系统其它接口设计
4.5 人机交互接口 为了使嵌入式系统具有友好的人机接口,需要给嵌入式系统配置显示装置,如LCD显示器以及必要的声响提示等。另外,要进行人机交互,还得由输入装置,使用户可以对嵌入式系统发出命令或输入必要的参数。如输入设备如键盘、触摸屏等。 4.5.1 LCD显示器 LCD(Liquid Crystal Display)是一种耗电少、体积小的数字式显示器件,通过液晶、彩色过滤器过滤广元。在平面面板上显示字符、文字和图像等信息。与阴极射线管CRT相比占用空间小、功耗低、辐射底、无闪烁,降低视觉疲劳。
1、液晶显示器(LCD)概述 在LCD显示器中,显示面板薄膜被分成很多小栅格,每个栅格由一个电极控制,通过改变栅格上的电极就能控制栅格内液晶分子的排列,从而控制光路的导通。彩色显示利用三原色混合的原理显示不同的色彩:此时每一个象素都是由3个液晶单元格构成的。其中每一个单元格前面都分别有红色R、绿色G或蓝色B的过滤片,光线经过过滤片的处理变成不同的色彩。 点阵式LCD由矩阵构成,显示文字字符以及其他符号,常见的点阵LCD用5行8列的点表示一个字符,使用16行16列的点表示一个汉字。LCD驱动器将输入数据转换为激发相应的点所需的电信号。
主要用于显示文本及图形信息。它具有重量轻、体积小、耗电量低、无辐射、平面直角显示以及影像稳定不闪烁等特点,因此在许多电子应用系统中,常使用液晶屏作为人机界面,而且已广泛应用与于各类显示器件上如下图所示。主要用于显示文本及图形信息。它具有重量轻、体积小、耗电量低、无辐射、平面直角显示以及影像稳定不闪烁等特点,因此在许多电子应用系统中,常使用液晶屏作为人机界面,而且已广泛应用与于各类显示器件上如下图所示。
(1)LCD的分类 液晶显示的原理是液晶在不同电压的作用下会有不同的光特性。一类是STN型液晶属于无源的,这类液晶需要有外部提供光源,根据光源的位置又可以进一步分成反射式和透射式两种。这种液晶显示的成本较低,但有效视角较小,色彩也不够鲜艳。它具有省电的最大优势。其屏幕尺寸一般在5英寸以下(目前较少使用)。 另一类是有源发光器件TFT形式。TFT是薄膜晶体管Thin Film Transitor的缩写,每个液晶就类似是一个可以发光的晶体管。液晶显示屏就是有许多液晶排列成阵列而构成的。
(2)单色与彩色显示器 在单色液晶显示屏中,一个液晶就是一个象素。 在彩色液晶屏中则每个象素由R红、G绿和B兰色三个液晶共同组成。同时也可以认为每个象素背后都有一个8位的寄存器,寄存器的值决定着三个液晶单元各自的亮度。有些情况下寄存器的值并不直接驱动RGB三个液晶单元的亮度,而是通过一个调色板技术来访问,发出真彩色的效果。
在实际现实中如果要为每个象素都配备寄存器是不现实的,实际上只配备了一组寄存器,而这些寄存器依次轮流连接到每一行象素并装入该行的内容,使每一行象素都暂短的受到驱动,这样周而复始将所有的象素行都驱动一遍就显示一个完整的画面。一般为了使人不感到闪烁,一秒钟要重复显示数十帧。LCB一般采用并行传输。在实际现实中如果要为每个象素都配备寄存器是不现实的,实际上只配备了一组寄存器,而这些寄存器依次轮流连接到每一行象素并装入该行的内容,使每一行象素都暂短的受到驱动,这样周而复始将所有的象素行都驱动一遍就显示一个完整的画面。一般为了使人不感到闪烁,一秒钟要重复显示数十帧。LCB一般采用并行传输。
(3)LCD的驱动控制 市场上的LCD有两种模块形式,一种是LCD显示屏后边有印刷板并在板上带有驱动芯片的LCD模块。这种LCD可以方便的与各种单片机使用总线方式来驱动,例如8051但偏激的显示形式就属于这种。 另一种在微处理器芯片上的内置LCD控制器来驱动显示模块(如S3C2410),它可以支持彩色/灰度/单色三种模式,灰度模式下可支持4级灰度和16级灰度,彩色模式下最多支持256色,LCD的实际尺寸可支持到320×240。
(4)LCD模块的显存控制 从系统结构上来讲,由于显示器模块中已经有显示存储器。显存中的每一个单元对应LCD上的一个点,只要显存中的内容改变,显示结果便进行刷新。于是便存在两种刷新: ①直接根据系统要求对显存进行修改,一种是只需修改相应的局部就可以,不需要判断覆盖等;另一种就是有覆盖问题,计算起来比较复杂,而且每做一点小的屏幕改变就进行刷新,将增加系统负担。 ②专门开辟显示内存,在需要刷新时候由程序进行显示更新。这样,不但可以减轻总线负荷,而且也比较合理,在有需要的时候进行统一的显示更新,界面也可以比较美观,不致由于无法预料的刷新动作导致显示界面闪烁。
在常用的嵌入式LCD屏幕上实现图像和字符的显示具体步骤如下:在常用的嵌入式LCD屏幕上实现图像和字符的显示具体步骤如下: 首先在程序中配置微处理器GPIO的寄存器,将与LCD连接的引脚定义为所需的功能;将帧描述符定义在SDRAM里,在DMAC被初始化后供DMAC提取;配置LCD控制器的各寄存器;最后建立LCD屏幕上的每一象素与帧缓冲区对应位置的映射关系,将字符位图转换成字符矩阵数据,并且写入到帧缓冲器(也成为显存)里。
(5)工作原理 显存中的每一个单元对应LCD上的一个点,只要显存中的内容改变,显示结果便进行刷新。显示屏可以以单色或彩色显示,单色用1位来表示,彩色可以用8位(256色)或16位、24位表示其颜色。屏幕的大小和显示模式这些因素会影响显存的大小。 显存通常是从内存空间分配所得,并且它是由连续的字节空间组成,而屏幕的显示操作总是从左到右逐点象素扫描,从上到下逐行扫描,直到右下角,然后再折返到左上角。而显存里的数据则是按地址递增的顺序被提取,当显存里的最后一个字节被提取后,再返回显存的首地址。
工作原理 计算机反映自然界的颜色是通过R、G、B值来表示的,如果要在屏幕某一点显示某种颜色,则必须在显存里给出相应每一个象素的R、G、B值。其实现方法有直接从显存中得到和间接得到两种方式。直接得到是指在显存里存放有象素对应的RGB值,通过将该RGB值传输到显示屏上而令屏幕显示。间接得到方式是指显存中存放的并不是RGB值,而是调色板的索引值,调色板里存放的才是RGB值,然后再发送到显示屏上。
(6)调色板技术 在显存与显示器之间还需要有LCD控制器负责完成从现存提取数据,进行处理并传输到屏幕上。例如PXA255微处理器内部集成有LCD控制器,它提供了一个从微处理器到Passive(STN)或Active(TFT)显示屏的接口。LCD控制器由LCD DMAC,输入输出FIFO,内部调色板和寄存器组组成。 当接STN显示屏,并且显示模式为单色或彩色(小于8位/象素)时, LCD控制器采用调色板技术。当接TFT 显示屏时, LCD控制器无需加载数据到调色板中,通过DMAC传输到输入FIFO后,数据又立刻被传输到输出FIFO,然后在屏幕上进行显示。
2、S3C2410 LCD控制器 一般功能:S3C2410 LCD控制器具有一般LCD控制器功能,产生各种信号、传输显示数据到LCD驱动器。 1)S3C2410特点 (1)基本特点 • 有专用DMA 用于向LCD驱动器传输数据 • 有中断(INT_LCD)
显示缓存可以很大 系统存储器可以作为显示缓存用 • 支持多屏滚动显示 用显示缓存支持硬件水平、垂直滚屏 • 支持多种时序LCD屏 通过对LCD控制器编程,产生适合不同LCD显示屏的扫描信号、数据宽度、刷新率信号等。 • 支持多种数据格式 大端、小端格式,WinCE格式。
(2)支持STN材料LCD 单色显示:每像素2位数据、4级灰度;每像素4位数据、16级灰度。 单色扫描:4位单向、双向扫描,8位单向扫描。 彩色显示:每像素16位数据、65536种色彩,每像素24位数据真色彩。 支持多种LCD屏: 640×480、320×240、160×160等 4MB显示缓存:支持256色的像素数,4096×1024, 2048×2048, 1024×4096等
(3)支持TFT材料LCD 单色显示:每像素1位数据、2位数据、4位数据、8位数据。 彩色显示:每像素16位数据、65536种色彩,每像素24位数据、16M种真色彩。 支持多种LCD屏: 640×480、320×240、160×160等 4MB显示缓存: 支持64K色的像素数,2048×1024等。
2)S3C2410 LCD控制器结构与工作原理 (1)控制器结构
(1)LCD控制器结构 主要由6部分组成:时序发生器、LCD主控制器(LPC3600)、DMA、视频信号混合器、数据格式转换器、控制逻辑等。
(2)LCD控制器引脚信号 共41个信号 VD[23:0]:LCD数据 VDEN:数据使能 VCLK:时钟信号 VLINE:行扫描信号 LEND:行结束信号
VFRAME:帧扫描信号 HSYNC:水平同步信号 VSYNC:垂直同步信号 VM:显示驱动交流信号 LCDVF0、LCDVF1、LCDVF2:时序控制信号 LCD_PWREN:面板电源控制信号 LCD_HCLK:时钟面板控制信号 CPV:行同步面板控制信号 STV:帧同步面板控制信号 TP:显示驱动面板控制信号 STH:面板控制信号
(3)LCD控制器专用寄存器 S3C2410的有17个专用寄存器,分为四类,其基地址均为0x4D000000。 控制寄存器(5个,如下表)
地址寄存器 共3个地址寄存器控制寄存器,如下表所示。
颜色配置寄存器 共4个颜色配置寄存器,1个抖动模式寄存器,如下表所示。
中断寄存器 共3个中断寄存器,1个LCD控制器寄存器,如下表所示。
3)PXA255 LCD控制单元 PXA255处理器集成的LCD控制单元,支持单屏或双屏显示,并有专用的二个DMA控制器、一个256单元调色板RAM和FIFO缓冲器等。 当输入LCD控制器的图像数据采用1位(黑白)、2位(4色)和8位(256色)编码时,需要将这些图像数据的编码转换为16位颜色编码输出。调色板RAM用于指明图像数据与图像编码的映射关系,内部装有256个调色单元,每个单元保存一个16位颜色值。其中5位表示红色,6位表示绿色,5位表示蓝色。 LCD模块接口包含有16位数据(5,6,5)线,时钟线(3),数据使能线(1),电源和地线等。
2、LED显示器接口 LED(Light Emitting Diode)常称为七段发光二极管, 在专用的微型计算机系统中,特别是在嵌入式控制系统中, 应用非常普遍。它价格低廉、体积小、功耗低,而可靠性又很好,因此,从单板微型机、袖珍计算机到许多微型机控制系统及数字化仪器都用LED作为输出显示。
4.5.2 键盘工作原理图常用4*4小键盘,也可外加PS/2接口连接标准键盘。
(1)键盘扫描方法 键盘扫描过程有三种控制方法,其一是程序控制方式。其二是定时扫描方法。其三是键盘中断控制方式。键盘上每个键都被分配一个称为扫描码的唯一标识符。是用不同扫描控制方式读取该扫描码,根据按下的键功能来判定应该采取什么行动。注意事项: • 消抖算法: • 组合键处理
(2)键盘驱动程序组成 • ../ucos-II/add/OSAddTask.c中的任务初始化函数OSAddTask_Init的创建键盘任务Key_Scan_Task • 键盘初始化函数KeyBoard_init(); • 中断程序ISR_Key的实现 • 键盘的查询任务 • 键盘映射表KeyBoard_Map
4.5.3 触摸屏设计 触摸屏是一种简单、方便的输入设备,应用的越来越广泛。人们用触摸屏代替鼠标或键盘,根据触笔点击的位置来定位选择信息输入。它广泛的应用在自助取款机、PDA设备、媒体播放器、汽车导航器、智能手机医疗电子设备等方面。它是嵌入式设备最常用的输入接口之一。 触摸屏和LCD不是同一个物理设备,触摸屏是覆盖在LCD的表面,检测用户电击的位置。触摸屏的输入是一个模拟信号,通过触摸屏控制器将模拟信号转换为数字信号,再送给处理器进行处理。 触摸屏分类有如下4种形式: 电阻式触摸屏 ;表面声波触摸屏; 红外式触摸屏 ;电容式触摸屏。
1、电阻式触摸屏概述 最常见的触摸屏是电阻式触摸屏,其屏体部分是一块与显示屏表面非常配合的多层复合薄膜,由一层玻璃或有机玻璃作为基层,表面涂有一层透明的导电层上面在盖有一层外表面硬化处理,光滑、防刮的塑料层,它的内表面也涂一层透明导电层。在两个导电层之间有许多细小(小于千分之一英寸)的透明隔离点把它们隔离绝缘。触摸屏负责将受压的位置转换成模拟电信号,再经过A/D转换成为数字量表示的x、y坐标,送入CPU处理,为了可视化还可以在LCD上显示出来。
1)工作原理 电阻式触摸屏工作时,上下导体层相当于二维精密电阻网络。即等效为沿x方向的电阻Rx和沿y方向的电阻Ry。当某一层电极加上电压时,会在该网络上形成电压梯度。如有外力使得上下两层在某一点接触,则在另一层未加电压的电极上可以测的接触点处的电压。然后用模/数转换器来测量电压,以此得出位置。触摸屏通过交替使用水平X和垂直Y电压梯度来获得x和y的位置。具体常用的有四线电阻式触摸屏。电阻技术触摸屏是一种对外界完全隔离的工作环境,故不怕灰尘、水汽和油污,可以用任何物体来触摸,比较适合工业控制领域及办公室内的使用。
触摸屏驱动开发 • 芯片: BB公司的ADS7846、接口SPI • 工作在笔中断模式 • 驱动模型:本机设备驱动,分层驱动(MDD、PDD) PENIRQ# DOUT BUSY CS# DCLK DIN 串行数据输出 X+ X- Y+ Y- 供电 测量 电路网络 ADC
测量原理 Y 在触摸点X、Y坐标的测量过程中,测量电压与测量点的等效电路图所示,图中P为测量点 Y V X
2)触摸屏的硬件接口设计 触模屏控制器ADS7843是一个可编程的模拟到数字转换器。内部有一个12位的A/D转换器,可以准确判断出触点的坐标位置。同时非常适合于四线的触摸屏,以2.7V到5V间供电,转换率高达125KHZ,功耗可达750uW。在自动关闭模式下功耗仅为0.5uW。模拟到数字的转换精度(逐次比较式ADC)可选256级(8位)或4096级(12位)。命令字的写入以及转换后的数字量的读取可通过串行方式操作。
触摸屏的接口设计 触摸屏的控制采用专用芯片,专门处理是否有笔或手指按下触摸屏,并在按下时分别给两组电极通电,然后将其对应位置的模拟电压信号经过A/D转换送回处理器。S3C44B0选取PG口与ADS7843接口,共使用PG2 - PG7的6条口线,也可以选择其他的I/O口,但注意不要与I/O口上已经设定的功能相冲突.其中,X+、Y+、X-、Y-引脚直接与触摸屏的相应管脚相连。
触摸屏的接口设计 FM 7843送回控制器的X与Y值仅是对当前触摸点的电压值的A/D转换值。这个值的大小不但与触摸屏的分辨率有关,而且也与触摸屏与LCD贴合的情况有关。而且,LCD分辨率与触摸屏的分辨率一般来说是不一样,坐标也不一样,因此,如果想得到体现LCD坐标的触摸屏位置,还需要在程序中进行转换。转换公式如下:
触摸屏与LCD坐标匹配公式 • x=(x-TchScr_Xmin)*LCDWIDTH/(TchScr_Xmax-TchScr_Xmin) • y=(y-TchScr_Ymin)*LCDHEIGHT/(TchScr_Ymax-TchScr_Ymin) • 其中,TchScr_Xmax、TchScr_Xmin、TchScr_Ymax和TchScr_Ymin是触摸屏返回电压值x、y轴的范围,LCDWIDTH、LCDHEIGHT是液晶屏的宽度与高度。
3)编程实现 利用连接好的电路设置PCONG寄存器如下: rPCONG = Ox015f; 其中,PENIRQ最好加上内部上拉,设置为: rPUPG&=Ox80。 (1)读取触摸点坐标程序: 首先检测PENIRQ端,如果为低电平,则认为有接触;否则认为触摸屏没有接触。利用软件模拟DIN, DOUT和DCLK上的3线串行传输时序,将读取的x或Y坐标数值的控制字串行送入ADS7843,然后再串行读出坐标值,送串口显示即可。 (2)送控制字并读取结果子程序。
开始 DdsiTouchPanelPowerHandler 当电源状态变化时发出通知 DdsiTouchPanelDisable/DdsiTouchPanelEnable 禁止触摸屏/使能触摸屏 DdsiTouchPanelGetDeviceCaps 返回关于触摸屏性能的信息 DdsiTouchPanelGetPoint 获取触摸点坐标 TouchPanelCalibrateAPoint 把没校准的点转换为校准后的点 TouchPanelSetMode 设置触摸屏设备的模式信息 产生中断? NO YES 关中断、清中断标志 发送测量X的控制字 SPI忙? YES NO 读取X座标转换数据 SPI忙? YES NO 发送测量Y的控制字 SPI忙? YES NO 读取Y座标转换数据 中断使能 结束