Download presentation
Presentation is loading. Please wait.
1
4.5.1 显示器接口设计 4.5.2 键盘接口设计 4.5.3 触摸屏接口设计 4.5.4 嵌入式系统其它接口设计
4.5 人机交互接口 显示器接口设计 键盘接口设计 触摸屏接口设计 嵌入式系统其它接口设计
2
4.5 人机交互接口 为了使嵌入式系统具有友好的人机接口,需要给嵌入式系统配置显示装置,如LCD显示器以及必要的声响提示等。另外,要进行人机交互,还得由输入装置,使用户可以对嵌入式系统发出命令或输入必要的参数。如输入设备如键盘、触摸屏等。 4.5.1 LCD显示器 LCD(Liquid Crystal Display)是一种耗电少、体积小的数字式显示器件,通过液晶、彩色过滤器过滤广元。在平面面板上显示字符、文字和图像等信息。与阴极射线管CRT相比占用空间小、功耗低、辐射底、无闪烁,降低视觉疲劳。
3
1、液晶显示器(LCD)概述 在LCD显示器中,显示面板薄膜被分成很多小栅格,每个栅格由一个电极控制,通过改变栅格上的电极就能控制栅格内液晶分子的排列,从而控制光路的导通。彩色显示利用三原色混合的原理显示不同的色彩:此时每一个象素都是由3个液晶单元格构成的。其中每一个单元格前面都分别有红色R、绿色G或蓝色B的过滤片,光线经过过滤片的处理变成不同的色彩。 点阵式LCD由矩阵构成,显示文字字符以及其他符号,常见的点阵LCD用5行8列的点表示一个字符,使用16行16列的点表示一个汉字。LCD驱动器将输入数据转换为激发相应的点所需的电信号。
4
主要用于显示文本及图形信息。它具有重量轻、体积小、耗电量低、无辐射、平面直角显示以及影像稳定不闪烁等特点,因此在许多电子应用系统中,常使用液晶屏作为人机界面,而且已广泛应用与于各类显示器件上如下图所示。
5
(1)LCD的分类 液晶显示的原理是液晶在不同电压的作用下会有不同的光特性。一类是STN型液晶属于无源的,这类液晶需要有外部提供光源,根据光源的位置又可以进一步分成反射式和透射式两种。这种液晶显示的成本较低,但有效视角较小,色彩也不够鲜艳。它具有省电的最大优势。其屏幕尺寸一般在5英寸以下(目前较少使用)。 另一类是有源发光器件TFT形式。TFT是薄膜晶体管Thin Film Transitor的缩写,每个液晶就类似是一个可以发光的晶体管。液晶显示屏就是有许多液晶排列成阵列而构成的。
6
(2)单色与彩色显示器 在单色液晶显示屏中,一个液晶就是一个象素。
在彩色液晶屏中则每个象素由R红、G绿和B兰色三个液晶共同组成。同时也可以认为每个象素背后都有一个8位的寄存器,寄存器的值决定着三个液晶单元各自的亮度。有些情况下寄存器的值并不直接驱动RGB三个液晶单元的亮度,而是通过一个调色板技术来访问,发出真彩色的效果。
7
在实际现实中如果要为每个象素都配备寄存器是不现实的,实际上只配备了一组寄存器,而这些寄存器依次轮流连接到每一行象素并装入该行的内容,使每一行象素都暂短的受到驱动,这样周而复始将所有的象素行都驱动一遍就显示一个完整的画面。一般为了使人不感到闪烁,一秒钟要重复显示数十帧。LCB一般采用并行传输。
8
(3)LCD的驱动控制 市场上的LCD有两种模块形式,一种是LCD显示屏后边有印刷板并在板上带有驱动芯片的LCD模块。这种LCD可以方便的与各种单片机使用总线方式来驱动,例如8051但偏激的显示形式就属于这种。 另一种在微处理器芯片上的内置LCD控制器来驱动显示模块(如S3C2410),它可以支持彩色/灰度/单色三种模式,灰度模式下可支持4级灰度和16级灰度,彩色模式下最多支持256色,LCD的实际尺寸可支持到320×240。
9
(4)LCD模块的显存控制 从系统结构上来讲,由于显示器模块中已经有显示存储器。显存中的每一个单元对应LCD上的一个点,只要显存中的内容改变,显示结果便进行刷新。于是便存在两种刷新: ①直接根据系统要求对显存进行修改,一种是只需修改相应的局部就可以,不需要判断覆盖等;另一种就是有覆盖问题,计算起来比较复杂,而且每做一点小的屏幕改变就进行刷新,将增加系统负担。 ②专门开辟显示内存,在需要刷新时候由程序进行显示更新。这样,不但可以减轻总线负荷,而且也比较合理,在有需要的时候进行统一的显示更新,界面也可以比较美观,不致由于无法预料的刷新动作导致显示界面闪烁。
10
前后台双重显示缓存的显示模块结构
11
在常用的嵌入式LCD屏幕上实现图像和字符的显示具体步骤如下:
首先在程序中配置微处理器GPIO的寄存器,将与LCD连接的引脚定义为所需的功能;将帧描述符定义在SDRAM里,在DMAC被初始化后供DMAC提取;配置LCD控制器的各寄存器;最后建立LCD屏幕上的每一象素与帧缓冲区对应位置的映射关系,将字符位图转换成字符矩阵数据,并且写入到帧缓冲器(也成为显存)里。
12
(5)工作原理 显存中的每一个单元对应LCD上的一个点,只要显存中的内容改变,显示结果便进行刷新。显示屏可以以单色或彩色显示,单色用1位来表示,彩色可以用8位(256色)或16位、24位表示其颜色。屏幕的大小和显示模式这些因素会影响显存的大小。 显存通常是从内存空间分配所得,并且它是由连续的字节空间组成,而屏幕的显示操作总是从左到右逐点象素扫描,从上到下逐行扫描,直到右下角,然后再折返到左上角。而显存里的数据则是按地址递增的顺序被提取,当显存里的最后一个字节被提取后,再返回显存的首地址。
13
工作原理 计算机反映自然界的颜色是通过R、G、B值来表示的,如果要在屏幕某一点显示某种颜色,则必须在显存里给出相应每一个象素的R、G、B值。其实现方法有直接从显存中得到和间接得到两种方式。直接得到是指在显存里存放有象素对应的RGB值,通过将该RGB值传输到显示屏上而令屏幕显示。间接得到方式是指显存中存放的并不是RGB值,而是调色板的索引值,调色板里存放的才是RGB值,然后再发送到显示屏上。
14
(6)调色板技术 在显存与显示器之间还需要有LCD控制器负责完成从现存提取数据,进行处理并传输到屏幕上。例如PXA255微处理器内部集成有LCD控制器,它提供了一个从微处理器到Passive(STN)或Active(TFT)显示屏的接口。LCD控制器由LCD DMAC,输入输出FIFO,内部调色板和寄存器组组成。 当接STN显示屏,并且显示模式为单色或彩色(小于8位/象素)时, LCD控制器采用调色板技术。当接TFT 显示屏时, LCD控制器无需加载数据到调色板中,通过DMAC传输到输入FIFO后,数据又立刻被传输到输出FIFO,然后在屏幕上进行显示。
15
2、S3C2410 LCD控制器 一般功能:S3C2410 LCD控制器具有一般LCD控制器功能,产生各种信号、传输显示数据到LCD驱动器。
(1)基本特点 有专用DMA 用于向LCD驱动器传输数据 有中断(INT_LCD)
16
显示缓存可以很大 系统存储器可以作为显示缓存用 支持多屏滚动显示 用显示缓存支持硬件水平、垂直滚屏 支持多种时序LCD屏
通过对LCD控制器编程,产生适合不同LCD显示屏的扫描信号、数据宽度、刷新率信号等。 支持多种数据格式 大端、小端格式,WinCE格式。
17
(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等
18
单色显示:每像素1位数据、2位数据、4位数据、8位数据。
(3)支持TFT材料LCD 单色显示:每像素1位数据、2位数据、4位数据、8位数据。 彩色显示:每像素16位数据、65536种色彩,每像素24位数据、16M种真色彩。 支持多种LCD屏: 640×480、320×240、160×160等 4MB显示缓存: 支持64K色的像素数,2048×1024等。
19
2)S3C2410 LCD控制器结构与工作原理 (1)控制器结构
20
(1)LCD控制器结构 主要由6部分组成:时序发生器、LCD主控制器(LPC3600)、DMA、视频信号混合器、数据格式转换器、控制逻辑等。
22
(2)LCD控制器引脚信号 共41个信号 VD[23:0]:LCD数据 VDEN:数据使能 VCLK:时钟信号 VLINE:行扫描信号
LEND:行结束信号
23
VFRAME:帧扫描信号 HSYNC:水平同步信号 VSYNC:垂直同步信号 VM:显示驱动交流信号 LCDVF0、LCDVF1、LCDVF2:时序控制信号 LCD_PWREN:面板电源控制信号 LCD_HCLK:时钟面板控制信号 CPV:行同步面板控制信号 STV:帧同步面板控制信号 TP:显示驱动面板控制信号 STH:面板控制信号
24
(3)LCD控制器专用寄存器 S3C2410的有17个专用寄存器,分为四类,其基地址均为0x4D000000。 控制寄存器(5个,如下表)
描 述 初值 偏址 LCDCON1 LCD控制寄存器1 0x 0x00 LCDCON2 LCD控制寄存器2 0x04 LCDCON3 LCD控制寄存器3 0x08 LCDCON4 LCD控制寄存器4 0x0C LCDCON5 LCD控制寄存器5 0x10
25
地址寄存器 共3个地址寄存器控制寄存器,如下表所示。 寄存器 描 述 初值 偏址 LCDSADDR1 帧起始地址寄存器1
描 述 初值 偏址 LCDSADDR1 帧起始地址寄存器1 0x 0x14 LCDSADDR2 帧起始地址寄存器2 0x18 LCDSADDR3 虚拟屏地址寄存器 0x1C
26
共4个颜色配置寄存器,1个抖动模式寄存器,如下表所示。
描 述 初值 偏址 REDLUT 红颜色寄存器 0x 0x20 GREENLUT 绿颜色寄存器 0x24 BLUELUT 蓝颜色寄存器 0x28 DITHMODE 抖动模式寄存器 0x4C TPAL 临时调色存器 0x50
27
共3个中断寄存器,1个LCD控制器寄存器,如下表所示。
描 述 初值 偏址 LCDSADDR1 中断服务存器 0x0 0x54 LCDSADDR2 中断标志寄存器 0x58 LCDSADDR3 中断屏蔽寄存器 0x3 0x5C LPCSEL LPC3600控制器 控制寄存器 0x4 0x60
28
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),电源和地线等。
29
2、LED显示器接口 LED(Light Emitting Diode)常称为七段发光二极管, 在专用的微型计算机系统中,特别是在嵌入式控制系统中, 应用非常普遍。它价格低廉、体积小、功耗低,而可靠性又很好,因此,从单板微型机、袖珍计算机到许多微型机控制系统及数字化仪器都用LED作为输出显示。
30
LED显示器结构原理
31
LED显示器的连接设计
32
4.5.2 键盘工作原理图 常用4*4小键盘,也可外加PS/2接口连接标准键盘。
33
(1)键盘扫描方法 键盘扫描过程有三种控制方法,其一是程序控制方式。其二是定时扫描方法。其三是键盘中断控制方式。键盘上每个键都被分配一个称为扫描码的唯一标识符。是用不同扫描控制方式读取该扫描码,根据按下的键功能来判定应该采取什么行动。注意事项: 消抖算法: 组合键处理
34
键盘抖动示意图
35
(2)键盘驱动程序组成 ../ucos-II/add/OSAddTask.c中的任务初始化函数OSAddTask_Init的创建键盘任务Key_Scan_Task 键盘初始化函数KeyBoard_init(); 中断程序ISR_Key的实现 键盘的查询任务 键盘映射表KeyBoard_Map
36
4.5.3 触摸屏设计 触摸屏是一种简单、方便的输入设备,应用的越来越广泛。人们用触摸屏代替鼠标或键盘,根据触笔点击的位置来定位选择信息输入。它广泛的应用在自助取款机、PDA设备、媒体播放器、汽车导航器、智能手机医疗电子设备等方面。它是嵌入式设备最常用的输入接口之一。 触摸屏和LCD不是同一个物理设备,触摸屏是覆盖在LCD的表面,检测用户电击的位置。触摸屏的输入是一个模拟信号,通过触摸屏控制器将模拟信号转换为数字信号,再送给处理器进行处理。 触摸屏分类有如下4种形式: 电阻式触摸屏 ;表面声波触摸屏; 红外式触摸屏 ;电容式触摸屏。
38
1、电阻式触摸屏概述 最常见的触摸屏是电阻式触摸屏,其屏体部分是一块与显示屏表面非常配合的多层复合薄膜,由一层玻璃或有机玻璃作为基层,表面涂有一层透明的导电层上面在盖有一层外表面硬化处理,光滑、防刮的塑料层,它的内表面也涂一层透明导电层。在两个导电层之间有许多细小(小于千分之一英寸)的透明隔离点把它们隔离绝缘。触摸屏负责将受压的位置转换成模拟电信号,再经过A/D转换成为数字量表示的x、y坐标,送入CPU处理,为了可视化还可以在LCD上显示出来。
39
1)工作原理 电阻式触摸屏工作时,上下导体层相当于二维精密电阻网络。即等效为沿x方向的电阻Rx和沿y方向的电阻Ry。当某一层电极加上电压时,会在该网络上形成电压梯度。如有外力使得上下两层在某一点接触,则在另一层未加电压的电极上可以测的接触点处的电压。然后用模/数转换器来测量电压,以此得出位置。触摸屏通过交替使用水平X和垂直Y电压梯度来获得x和y的位置。具体常用的有四线电阻式触摸屏。电阻技术触摸屏是一种对外界完全隔离的工作环境,故不怕灰尘、水汽和油污,可以用任何物体来触摸,比较适合工业控制领域及办公室内的使用。
40
触摸屏驱动开发 芯片: BB公司的ADS7846、接口SPI 工作在笔中断模式 驱动模型:本机设备驱动,分层驱动(MDD、PDD)
PENIRQ# DOUT BUSY CS# DCLK DIN 串行数据输出 X+ X- Y+ Y- 供电 测量 电路网络 ADC
41
四线电阻触摸屏原理
42
测量原理 Y Y V 在触摸点X、Y坐标的测量过程中,测量电压与测量点的等效电路图所示,图中P为测量点 X
43
2)触摸屏的硬件接口设计 触模屏控制器ADS7843是一个可编程的模拟到数字转换器。内部有一个12位的A/D转换器,可以准确判断出触点的坐标位置。同时非常适合于四线的触摸屏,以2.7V到5V间供电,转换率高达125KHZ,功耗可达750uW。在自动关闭模式下功耗仅为0.5uW。模拟到数字的转换精度(逐次比较式ADC)可选256级(8位)或4096级(12位)。命令字的写入以及转换后的数字量的读取可通过串行方式操作。
44
触摸屏的接口设计 触摸屏的控制采用专用芯片,专门处理是否有笔或手指按下触摸屏,并在按下时分别给两组电极通电,然后将其对应位置的模拟电压信号经过A/D转换送回处理器。S3C44B0选取PG口与ADS7843接口,共使用PG2 - PG7的6条口线,也可以选择其他的I/O口,但注意不要与I/O口上已经设定的功能相冲突.其中,X+、Y+、X-、Y-引脚直接与触摸屏的相应管脚相连。
45
触摸屏控制芯片
46
FM7843与ARM的连接
47
触摸屏的接口设计 FM 7843送回控制器的X与Y值仅是对当前触摸点的电压值的A/D转换值。这个值的大小不但与触摸屏的分辨率有关,而且也与触摸屏与LCD贴合的情况有关。而且,LCD分辨率与触摸屏的分辨率一般来说是不一样,坐标也不一样,因此,如果想得到体现LCD坐标的触摸屏位置,还需要在程序中进行转换。转换公式如下:
48
触摸屏与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是液晶屏的宽度与高度。
49
3)编程实现 利用连接好的电路设置PCONG寄存器如下: rPCONG = Ox015f; 其中,PENIRQ最好加上内部上拉,设置为:
rPUPG&=Ox80。 (1)读取触摸点坐标程序: 首先检测PENIRQ端,如果为低电平,则认为有接触;否则认为触摸屏没有接触。利用软件模拟DIN, DOUT和DCLK上的3线串行传输时序,将读取的x或Y坐标数值的控制字串行送入ADS7843,然后再串行读出坐标值,送串口显示即可。 (2)送控制字并读取结果子程序。
50
DdsiTouchPanelPowerHandler 当电源状态变化时发出通知
开始 DdsiTouchPanelPowerHandler 当电源状态变化时发出通知 DdsiTouchPanelDisable/DdsiTouchPanelEnable 禁止触摸屏/使能触摸屏 DdsiTouchPanelGetDeviceCaps 返回关于触摸屏性能的信息 DdsiTouchPanelGetPoint 获取触摸点坐标 TouchPanelCalibrateAPoint 把没校准的点转换为校准后的点 TouchPanelSetMode 设置触摸屏设备的模式信息 产生中断? NO YES 关中断、清中断标志 发送测量X的控制字 SPI忙? YES NO 读取X座标转换数据 SPI忙? YES NO 发送测量Y的控制字 SPI忙? YES NO 读取Y座标转换数据 中断使能 结束
51
4)触摸屏驱动程序剖析 ../ucos-II/add/OSAddTask.c中的任务初始化函数OSAddTask_Init的触摸屏的初始化函数TchScr_init 创建触摸屏任务Touch_Screen_Task 注册系统中断(SetISR_Interrupt) 开启S3C44B0外部中断4567(TS_OPEN_INT) 中断程序Touch_Screen_ISR的实现 触摸屏的查询任务
52
2、S3C2410X的A/D 转换器概述 S3C2410X中集成了一个8通道10 位A/D 转换器,A/D 转换器自身具有采样保持功能。并且S3C2410X的A/D 转换器支持触摸屏接口。 A/D转换器的主要特性: 分辨率:10位; 精度:±1LSB 线性度误差: ± LSB; 最大转换速率:500KSPS; 输入电压范围:0~3.3v; 系统具有采样保持功能; 常规转换和低能源消耗功能; 独立/自动的X/Y 坐标转换模式。
53
下图为S3C2410 A/D 转换器和触摸屏接口的功能块图。
主要由6部分构成: 信号输入通道 8转1切换开关 A/D转换器 控制逻辑 中断信号发生器 触摸屏接口
54
1)工作原理 (1)A/D 转换时间计算和分辨率 当PCLK 频率为50MHz,预分频值是49,10 位数字量的转换时间如下: A/D 转换频率=50MHz /(49+1)=1MHz 转换时间=1/(1MHz/5 个周期)=1/200KHz=5us A/D 转换器最大可以工作在2.5MHz 时钟下,所以转换速率可以达到500KSPS。 (2)触摸屏的结构及工作原理 原理:对于电阻式触摸屏,由3层透明薄膜构成,有一层是电阻层,还有一层是导电层,它们中间有一隔离层,当某一点被按压时,在按压点电阻层与导电层接触,如果在电阻层的一边接电源,另一边接地,便可测量出按压点的电压,从而可算出其坐标。 实现方法:
55
测量X坐标:从XP输出电压给X+端,从XM输出地电位给X-端;从YP脚输入按压点电压。 控制信号: nYPON=1; nYMON=0
nXPON=0; nXMON=1 测Y 测X
56
测量Y坐标:从YP输出电压给Y+端,从YM输出地电位给Y-端;从XP脚输入按压点电压。 控制信号: nYPON=0; nYMON=1
nXPON=1; nXMON=0 测Y 测X
57
3)S3C24120X A/D转换器的工作模式 有5种:普通转换模式、分离的X/Y坐标转换模式、连续的X/Y坐标转换模式、等待中断模式、静态模式。第2---4种是用于触摸屏。 (1)普通转换模式 用于一般A/D转换,不是用于触摸屏。转换结束后,其数据在ADCDAT0中的XPDATA域。 (2)分离的X/Y坐标转换模式 分两步进行X/Y坐标转换,其转换结果分别存于ADCDAT0中的XPDATA域中和ADCDAT1中的YPDATA域中,并且均会产生INT_ADC中断请求。 (3)自动(连续)的X/Y坐标转换模式 X坐标转换结束启动Y坐标转换,其转换结果分别存于ADCDAT0中的XPDATA域中和ADCDAT1中的YPDATA域中,然后产生INT_ADC中断请求。
58
(4)等待中断转换模式 在该模式下,转换器等待使用者按压触摸屏,一旦触摸屏被按压,则产生INT_TC触摸屏中断请求。 中断后,在中断处理程序中再将转换器设置为分离的X/Y坐标转换模式、或者连续的X/Y坐标转换模式进行处理。 触摸屏接口信号: XP=上拉 XM=高阻 YP=AIN[5] YM=接地 (5)静态模式 当ADCCON中的STDBM设为1时,转换器进入静态模式,停止A/D转换。其数据域的数据保持不变。
59
4)ADC和触摸屏专用寄存器 有5个专用寄存器 Register Address R/W Description Reset Value
ADCCON 0x ADC控制寄存器 0x3FC4 ADCTSC 0x 触摸屏控制寄存器 0x058 ADCDLY 0x ADC起始延迟寄存器 0x00FF ADCDAT0 0x C R ADC转换数据0寄存器 - ADCDAT1 0x ADC转换数据1寄存器
60
(1)ADCCON---ADC控制寄存器 0:停止预分频器; 1:使能预分频器 15 14 13 …… 6 5 4 3 2 1
…… ECFLG PRSCEN PRSCVL 5 4 3 2 1 SEL_MUX STDBM READ_START ENABLE_START ECFLG---转换结束标志(只读) 0:转换操作中; 1:转换结束 PRSCEN---转换器预分频器使能 0:停止预分频器; 1:使能预分频器 PRSCVL---转换器预分频器数值 数值N范围: 注意:(1)实际除数值为N+1 (2)对N数值的要求:转换速率应该<PCLK/5
61
0:正常工作模式; 1:备用模式,不做A/D转换
5 4 3 2 1 SEL_MUX STDBM READ_START ENABLE_START SEL_MUX ---模拟输入通道选择 000:AIN0; 001:AIN1 010:AIN2 011:AIN3 …… 111:AIN7 STDBM---备用模式设置 0:正常工作模式; 1:备用模式,不做A/D转换 READ_START---通过读取启动转换 0:停止通过读取启动转换;1:使能通过读取启动转换 ENABLE_START---通过设置该位启动转换 0:无效; 1:启动A/D转换(启动后被清0) 注意:如果READ_START为1,则该位无效
62
(2)ADCTSC---ADC触摸屏控制寄存器
8 7 6 5 4 3 2 1 保留0 YM_SEN YP_SEN XM_SEN XP_SEN PULL_UP AUTO_PST XY_PST YM_SEN---选择YMON的输出值 0:输出0(YM=高阻); 1: 输出1(YM=GND) YP_SEN---选择nYPON的输出值 0:输出0(YP=外部电压); 1:输出1(YP连接AIN[5]) XM_SEN---选择XMON的输出值 0:输出0( XM=高阻); 1: 输出1(XM=GND) XP_SEN---选择nXP的输出值 0:输出0(XP=外部电压); 1:输出1(XP连接AIN[7])
63
0:普通A/D转换; 1:连续X/Y轴转换模式 00:无操作模式; 01:对X坐标测量;
8 7 6 5 4 3 2 1 保留0 YM_SEN YP_SEN XM_SEN XP_SEN PULL_UP AUTO_PST XY_PST PULL---上拉切换使能 0:XP上拉使能; 1: XP上拉禁止 AUTO_PST---自动连续转换X轴和Y轴坐标模式选择 0:普通A/D转换; 1:连续X/Y轴转换模式 XY_PST---手动测量X轴和Y轴坐标模式选择 00:无操作模式; 01:对X坐标测量; 10:对X坐标测量; 11:等待中断模式
64
(3)ADCDLY---ADC起始延迟寄存器
31 …… 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 保留为0 起始延迟数值---分两种情况 第一情况: 对普通转换模式、分离的X/Y轴坐标转换模式、连续的X/Y轴坐标转换模式,为转换延时数值。 第二种情况: 对中断转换模式,为按压触摸屏后到产生中断请求的延迟时间数值,其时间单位为ms。
65
(4)ADCDAT0---ADC转换数据0寄存器
15 14 13 12 11 10 …… UPDOWN AUTO_PST XY_PST 保留(0) XPDATA或普通ADC值 UPDOWN---等待中断模式的按压状态 0:触笔点击; 1:触笔提起 AUTO_PST---自动X/Y轴转换模式指示 0:普通转换模式; 1:X/Y轴坐标连续转换 XY_PST---手动X/Y轴转换模式指示 00:无操作; 01:为X轴坐标转换 10:为Y轴坐标转换 11:为等待中断转换 XPDATA[9:0]:为X轴坐标转换数值、或普通ADC转换数值 具体意义由其它位指示。其值为:0---0x3FF
66
(5)ADCDAT1---ADC转换数据1寄存器
15 14 13 12 11 10 …… UPDOWN AUTO_PST XY_PST 保留(0) YPDATA UPDOWN---等待中断模式的按压状态 0:触笔点击; 1:触笔提起 AUTO_PST---自动X/Y轴转换模式指示 0:普通转换模式; 1:X/Y轴坐标连续转换 XY_PST---手动X/Y轴转换模式指示 00:无操作; 01:为X轴坐标转换 11:为Y轴坐标转换 11:为等待中断转换 YPDATA[9:0]:为10位Y轴坐标转换结果 其值为:0---0x3FF
67
AREA ADC,CODE,READONLY ENTRY START
例题:编写程序,对3通道的模拟量连续做10次转换,用查询方式读取转换结果,其数据存于0x400000开始的区域。 AREA ADC,CODE,READONLY ENTRY START #define rADCCON (*(volatile unsigned *)0x ) #define rADCDAT0 (*(volatile unsigned *)0x c) #define pref 49 #define ch
68
void adc(void) { int adc_data[10], i; rADCCON=(1<<14)|(pref<<6)|(ch<<3)|1//允许预分频 for(i=0;i<10;i++) { while(rADCCON&0x8000==0); //查询转换结束否 adc_data[i]=rADCDAT0&0x3ff; //读取转换结果 rADCCON|=1; //再次启动转换 }
69
4.5.4 通用几种接口标准 1)红外接口 红外接口是新一代手机等智能设备的配置,它支持手机等设备与电脑以及其他数字设备进行数据交流。红外通讯有着成本低廉、连接方便、简单易用和结构紧凑的特点,因此在小型的移动设备中获得了广泛的应用。通过红外接口,各类移动设备可以自由进行数据交换。 红外线是波长在750nm至1mm之间的电磁波,它的频率高于微波而低于可见光,是一种人的眼睛看不到的光线。由于红外线的波长较短,对障碍物的衍射能力差,所以更适合应用在需要短距离、无遮挡的无线通讯的场合。
70
配备有红外接口的智能设备进行无线上网非常简单,不需要连接线和PC CARD,只要设置好红外连接协议就能直接上网。红外接口被众多的硬件和软件平台所支持;通过数据电脉冲和红外光脉冲之间的相互转换实现无线的数据收发。 红外线通信技术适合于低成本、跨平台、点对点高速数据连接,尤其是嵌入式系统。红外线技术的主要应用:设备互联、信息网关。设备互联后可完成不同设备内文件与信息的交换,信息网关负责连接信息终端和互联网。
71
(1)红外技术的主要特点 其使手机和电脑间可以无线传输数据; 可以与同样具备红外接口的设备间进行信息交流;
其使手机和电脑间可以无线传输数据; 可以与同样具备红外接口的设备间进行信息交流; 红外接口可以省去下载或其他信息交流所发生的费用; 由于需要对接才能传输信息,安全性较强; 通讯距离短,通讯过程中不能移动,遇障碍物通讯中断; 红外通讯技术的主要目的是取代线缆连接进行无线数据传输,功能单一,扩展性差。
72
(2)红外( IrDA )接口标准 IrDA是红外数据协会(Infrared Data Association)的简称。 IrDA是一种利用红外光进行短距离点对点通信的技术。 IrDA标准: 1.0版-最高速度115.2kb/s 1.1版-最高速率4Mb/s,与1.0版本的兼容。 IrDA物理层规范 通信速率、数据的调制方式、红外收发器的峰值波长、视角、发光强度、接收灵敏度、抗背景光噪声的能力等。
73
(3)IrDA的重要指标~速率 SIR:串行红外(SIR)标准,速率覆盖了RS-232通常所支持的速率,如9600bps、19.2kbps、38.4kbps、57.6kbps等。 MIR:指0.576Mbps与1.152Mbps的速率。。 FIR:高速红外(FIR) 指4Mbps的速率,有时也指高于SIR的所有速率。 VFIR:甚高速红外标准,16Mbps。
74
(4)主板红外接口应用 目前大多数电脑的主板均提供了红外线传输端口,如果能通过主板红外线接口与其他设备实现红外通讯,在不少应用中是会很方便的。 首先要安装好红外线连接器,连接红外接口连接器和主板红外接口时要注意5针插口的方向,方问插反可能会导致主板接口损坏。 ①正确设置主板BIOS 使用主板红外接口时需在BIOS的“INTEGRATED PERIPHERALS”子菜单中,将“Onboard IrDa Port”或相关选项设置成Enable ,“UART2 Use Infrared”项设置为IrDA,一般是将主板的COM2设置为红外线传输接口。因此主板COM2接口将会失去作用。
75
在有关红外线传输模式“UART Mode Select”中,如果选“HPSIR”,只能通过标准的速度115
在有关红外线传输模式“UART Mode Select”中,如果选“HPSIR”,只能通过标准的速度115.2Kbps传输数据,选“ASKIR”就能享受红外线的最高速度4Mbps。“HPSIR”建议在不能通过4Mbps相连接时才选用。 ②系统软件和协议安装设置 安装成功后,双击“我的电脑”,你会发现多出一个“红外线接收者”的图标。进入“控制面板”后,你可以通过新增的“红外线”选项来修改它的状态。再进入“网络”,你又会发现多安装了一个“红外线端口”和“快速红外线协议”。这些都表明,你的红外线收发器已正常安装。
76
2、SPI接口概述 SPI接口:SPI(Serial Peripheral Interface,串行外设接口)是Motorola公司开发的一种同步串行外设接口标准。 SPI接口信号:有4个信号:数据发送、数据接收、时钟和片选。在时钟信号的作用下,发送的同时,接收对方发来的数据;也可以只发送、或者只接收。SPI的波特率可以达到20Mb/s以上。 S3C2410 ARM9有2个SPI接口,既可以作为主SPI使用,也可以作为从SPI使用。 主要特点: 与SPI 协议 (ver. 2.11) 兼容; 8位发送移位寄存器; 8位接收移位寄存器; 8位预分频器; 具有查询、中断、DMA传输模式。
77
1)S3C2410 SPI结构与工作原理 (1)SPI结构
78
系统可以多个SPI设备组成,任何一个设备都可以为主SPI,但是任一时刻只能有一个主SPI设备。如下图所示。
从SPI n …… SCK MOSI MISO nSS
79
(3)SPI工作时序 下图为时序的一部分。 图 (A)
80
图 (B) Format CPOL和CPHA 第一位数据输出 其它位数据输出 数据采样 A CPOL=0,CPHA=0 第1个SCK上升沿前
81
2)SPI专用寄存器 2个UART,每个都有6个专用寄存器,共12个寄存器 Register Address R/W Description
Reset Value SPCONn 0x590000x0 SPI控制寄存器 0x00 SPSTAn 0x590000x4 R SPI状态寄存器 0x01 SPPINn 0x590000x8 SPI引脚控制寄存器 0x02 SPPREn 0x590000xC SPI预分频寄存器 SPTDATn SPI数据发送寄存器 SPRDATn SPI数据接收寄存器
82
Tx Auto Garbage Data Mode
(1)SPI控制寄存器(SPCON) Register Address R/W Description Reset Value SPCON0 0x SPI0 控制寄存器 0x00 SPCON1 0x SPI1 控制寄存器 字段名 位 意 义 初值 SMOD 6:5 SPI模式选择。00:查询模式; 01:中断; 10:DMA模式; 11:保留 00 ENSCK 4 时钟SCK控制。 0:禁止;1:允许。 MSTR 3 SPI主、从选择。 0:从SPI;1:主SPI CPOL 2 时钟极性选择。0:高电平有效;1:低 CPHA 1 时钟相位选择。0:格式A;1:格式B Tx Auto Garbage Data Mode Enable (TAGD) 仅接收模式控制。0:正常收发; 1:仅接收(此时(自动)发送任意数据)
83
Data Collision Error Flag (DCOL) Multi Master Error Flag (MULF)
(2)SPI状态寄存器(SPSTA) Register Address R/W Description Reset Value SPSTA0 0x R SPI0 状态寄存器 0x01 SPSTA1 0x SPI1 状态寄存器 字段名 位 意 义 初值 reserved 7:3 保 留 Data Collision Error Flag (DCOL) 2 数据写碰撞(正在发送时写SPTDAT) 错误标志。 0:无错;1:碰撞错误 Multi Master Error Flag (MULF) 1 多主SPI错误标志。 0:无错;1:多主SPI错误。 Transfer Ready Flag (REDY) 收发就绪标志。 0:未就绪; 1:收或发就绪。 写SPTDAT后该位自动清0
84
(3) SPI引脚控制寄存器(SPPIN) Register Address R/W Description Reset Value 字段名
0x SPI0 引脚控制寄存器 0x02 SPPIN1 0x SPI1 引脚控制寄存器 字段名 位 意 义 初值 reserved 7:3 保 留 Multi Master error detect Enable (ENMUL) 2 引脚多主SPI错误测试设置。 0:禁测;1:允许多主错误测试。 测试结果在SPSTAn中的MULF位 1 该位应该为1 Master Out Keep (KEEP) 1字节发完后MOSI的控制与释放 0:释放;1:保持MOSI原电平
85
(4) SPI预分频寄存器(SPPRE) Register Address R/W Description Reset Value 字段名
0x C SPI0 预分频寄存器 0x00 SPPRE1 0x C SPI1 预分频寄存器 字段名 位 意 义 初值 Prescaler value 7:0 预分频值 波特率计算: Baud tate = Pclk/2/( Prescaler value + 1 ) 提示:SPI的波特率必须<25MHz。
86
(5)SPI发送数据寄存器(SPTDAT)
Register Address R/W Description Reset Value SPTDAT0 0x SPI0 发送数据寄存器 0x00 SPTDAT1 0x SPI1 发送数据寄存器 字段名 位 意 义 初值 Tx data 7:0 SPI所发送的8位数据 0x00 提示:在同时双向传输时,从SPI设备必须先把所发送的数据写到“发送数据寄存器”SPTDATn中,然后再写主SPI设备的“发送数据寄存器”SPTDATn。
87
(6)SPI接收数据寄存器(SPRDAT)
Register Address R/W Description Reset Value SPRDAT0 0x R SPI0 接收数据寄存器 0x00 SPRDAT1 0x SPI1 接收数据寄存器 字段名 位 意 义 初值 Tx data 7:0 SPI所接收的8位数据 0x00 提示:在同时双向传输时,启动发送后,应该先读取数据,然后再发送数据。
88
3)SPI应用方法 (1)一般操作步骤 如果SPI控制寄存器SPCON已经设置过,则写数据发送寄存器SPTDAT启动发送。对SPI卡操作步骤如下: ①设置预分频寄存器SPPRE; ②设置控制寄存器SPCON; ③设置一个GPIO引脚,使选中的MMC或SD卡的片选信号nSS有效; ④向数据发送寄存器SPTDAT写10次0xFF,对MMC或SD卡初始化; ⑤发送数据:先要查询Tx/Rx REDY是否为1,然后向数据发送寄存器SPTDAT写数据;
89
一般方式(同时收发,TAGD=0):向数据发送寄存器SPTDAT写0xFF,查询并确认Rx REDY为1,然后从数据接收寄存器中读取数据。
⑥接收数据: 一般方式(同时收发,TAGD=0):向数据发送寄存器SPTDAT写0xFF,查询并确认Rx REDY为1,然后从数据接收寄存器中读取数据。 仅接收方式(TAGD=1):并确认Rx REDY为1,然后从数据接收寄存器中读取数据。读取数据的同时启动一次发送。 ⑦设置GPIO引脚,使选中的MMC或SD卡的片选信号nSS无效,结束传输。
90
(2)DMA模式发送 对SPI的DMA模式发送操作步骤如下: ①设置预分频寄存器SPPRE;
②设置控制寄存器SPCON,并且设为DMA模式; ③SPI请求DMA服务; ④DMA发送1字节数据给SPI; ⑤SPI给卡发送数据; ⑥返回到③,直到DMA的计数器为0;
91
(3)DMA模式接收 对SPI的DMA模式接收操作步骤如下: ①设置预分频寄存器SPPRE;
②设置控制寄存器SPCON,并且设为DMA模式; ③将SPI设置为仅接收模式,设置引脚控制寄存器SPPIN中的TAGD为1; ④当SPI从卡接收到1字节数据后,请求DMA服务; ⑤DMA从SPI读取数据; ⑥SPI自动启动一次无用数据(0xFF)的发送; ⑦返回到(4),直到DMA的计数器为0; ⑧设置控制寄存器SPCON,改设为其它模式,如查询、中断模式; ⑨如果Rx REDY被设置为1,则需要读取最后接收的数据。 注意:DMA第1次接收的是数据的无效的。
92
对于中断和查询模式,可以延时半个时钟,能够正确读取数据。
(4) SPI从设备以格式B接收的问题 当SPI从设备以格式B接收,DMA的读信号比数据接收的锁存信号早,在数据未锁存之前,读信号就出现了。因此使用DMA模式不能够正确接收。如下图所示。 对于中断和查询模式,可以延时半个时钟,能够正确读取数据。
93
4)SPI接口应用举例 把S3C2410的SPI0设为主设备,同时把SPI1设为从设备,将二者的MOSI、MISO交叉相连,二者的SCL对连, 用GPG0引脚控制nSS1。编写程序, SPI0用中断方式、 SPI1用查询方式,采用格式B、1Mb/s的波特率,SPI0和SPI1在发送的同时接收数据,双方都发送、接收100个字节的数据。设系统Pclk=50MHz。 解: (1)SPI计算预分频值: 由 Baud tate = Pclk/2/( Prescaler value + 1 ) Prescaler value = Pclk/2/Baud tate - 1=24 (2)SPI控制寄存器值 SPCON0=0b = 0x3A 含义:中断模式、使用时钟、主设备、0极性、格式B、一般收发传输。 SPCON1=0b = 0x22 含义:中断、不用时钟、从设备、0极性、格式B、收发
94
含义:不检测多主错误、保留1、输出引脚保持输出。 SPPIN1=0b 0 1 1 = 0x03 (4)SPI引脚配置
GPECON=0b ** ** ** …… 先清0:&~(0xFC<<20);再设置:|(0xA8<<20) GPGCON=0b …… ** ** 01 先清0:&~0xFCF3);再设置:|(0xFCF1) SPI0引脚 29 28 27 26 25 24 23 22 21 20 GPECON * 1 CLK0 MOSI0 MISO0 SPI0引脚 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 GPGCON * CLK1 MOSI1 MISO1 nSS1 nSS0 输出
95
(4)中断寄存器设置 中断模式寄存器: INTMOD &=~(1<<22) INT_UART2位于第15位,将UART2设置为IRQ中断 中断屏蔽寄存器: INTMSK&=~ (1<<22) 中断优先级寄存器PRIORITY: 不设置,用复位值0x7F,优先级为循环方式。 (5)在中断服务程序中对寄存器的操作 清除中断标志寄存器相应位: SRCPND&=~ (1<<22) 清除中断服务寄存器相应位: INTPND&=~ (1<<22)
96
#include "2410header.h" void Main(void) { sysinit(); while(1) Uart_Printf("\n 2410 Board SPI TEST!\n"); Test_SPI( ); }
97
char tran_data0[100], rec_data0[100], num0=0;
void Test_SPI(void) { rSPPRE0=24; rSPPRE1=24; rSPCON0=0x3A; rSPCON1=0x22; rSPPIN0=0x03; rSPPIN1=0x03; rGPECON = rGPECON & ~(0xFC<<20)|(0xa8<<20); rGPGCON = rGPGCON & ~0xFCF3 | 0xFCF1; rGPGDAT = rGPGCON & ~1; //使GPG0输出0 INTMOD &=~(1<<22); INTMSK &=~(1<<22); pISR_SPI0=(U32)spi0_int;
98
rSPTDAT1=tan_data1[num1];
for(;num1<100;) { while(rSPSTA1&1==0); INTMSK |=(1<<22); //关闭SPI0中断 rec_data[num1] = rSPRDAT1; num1++; if(num1<100) INTMSK &=~(1<<22); //打开SPI0中断 } INTMSK |=(1<<22); //关闭SPI0中断 rGPGDAT |= 1; //使GPG0输出1,nSS1为高
99
SRCPND &=~ (1<<22); //清除中断标志寄存器相应位
void _irq spi_int(void) { rec_data[num0]=rSPRDAT0; num0++; if(num<100) rSPTDAT0 = tran_data[num0]; SRCPND &=~ (1<<22); //清除中断标志寄存器相应位 INTPND &=~ (1<<22); //清除中断服务寄存器相应位 }
100
#define rSPTDAT0 (*(volatile unsigned *)0x59000010) //SPI0 Tx data
#define rSPRDAT0 (*(volatile unsigned *)0x ) //SPI0 Rx data #define rSPTDAT1 (*(volatile unsigned *)0x ) //SPI1 Tx data #define rSPRDAT1 (*(volatile unsigned *)0x ) //SPI1 Rx data
101
3)SD卡接口 SD 卡是Secure Digital Card 卡的简称,直译就是“安全数字卡”,
SD卡由松下、东芝和SanDisk联合推出,1999年发布。 通常采用4位并行数据线,具有7针接口。内部采用NAND型的Flash,平均数据传输率达2Mb/S。 SD存储卡是一个完全开放的标准(系统),多用于MP3、数码摄像机、数码相机、电子图书、AV 器材等等,尤其是被广泛应用在超薄数码相机上。
102
SD卡接口 SD卡最大的特点就是通过加密功能,可以保证数据资料的安全保密。它还具备版权保护技术。 SD总线信号定义如下:
① CLK:时钟信号 ② CMD:命令/响应信号 ③ DAT0-DAT3:双向数据传输信号 ④ VDD,VSS1,VSS2:电源和地信号 为了保证信号的可靠性,SD卡的所有接口引脚需加上拉电阻,具体接口电路如图。
103
SD卡驱动电路
104
4)IIS音频设备总线 目前,越来越多的消费电子产品都引入了数字音频系统。这些数字化的声音信号都由一系列的超大规模集成电路处理,常用的数字声音处理需要的集成电路包括A/D和D/A转换器、数字信号处理器DSP、数字滤波器和数字音频输入输出接口等。 IIS总线是菲利普公司提出的音频总线协议,全称是数字音频集成电路通信总线(Intel IC Sound Bus),它是一种串行的数字音频总线协议。IIS总线只处理声音数据,其他信号必须单独传输。该总线只使用了提供分时复用功能的数据线SD;字段选择(声道选择)WS线;时钟信号线SCK共3根串行总线。
105
IIS音频设备总线 目前,S3C44B0X, S3C2410等处理器中都内置有IIS总线接口电路,能够和其他厂商提供的多媒体编码解码芯片配合使用,读取IIS总线上面的数据。 微处理器上的IIS接口电路有三种工作模式,即正常传输模式、DMA模式和传输/接收模式。它通过4或5个引脚与外部的编解码器连接起来,在回放数字化声音或合成声音时, IIS控制器从IIS LINK端发送至编解码器。编解码器中的D/A转换器把声音数据转换成模拟声音波形。为记录数字化声音, IIS控制器从编解码器(通过IIS LINK)接收数字化采样值,存放在微处理器系统的存储器中。
106
5)数字音频接口 AC’97(Audio Codec’97的缩写)是Intel公司架构实验室在1997年开发出来的一个标准。它所定义的是一种在主流PC中实现音频特性的方法,后来又扩展了实现Modem的功能。Intel使用“audio codec”来概括数字到模拟以及模拟到数字的编码、解码等这一类的问题,这样audio codec经常和A/D,D/A结合在一起。 在Intel Xscale系列微处理器中都带有AC97控制单元,它被集成到Intel芯片组中的音频器件包括两个芯片,一个是AC’97 Digital controller,另一个是AC’97 codec。AC97控制器支持点到点的全双工同步互联。
107
数字音频接口 AC’97利用核心芯片组的功能和外围的模拟设备共同实现音频卡/Modem的功能。目前AC’97的规范有2.0,2.2,2.3等版本。 AC’97规范实现了DSP芯片与CODEC芯片分离,模拟与数字电路完全分离;固定采样率;使用标准引脚的CODEC芯片等三方面优点。保证了音频质量,使声卡电路标准化、提高了兼容性能。 嵌入式系统中也经常使用该接口进行语音信号的处理,AC’97控制单元支持音频控制器,通过串口来传输数字音频信号。 注意:AC97控制单元和IIS控制器不能同时使用。
Similar presentations