第3章输入/输出设备接口技术1、通用I/O端口结构(GPIO)3.1通用I/O端口GPIO端口:PORT数据寄存器、DDR数据方向寄存器。输出:置“1”,输出数据;DDR方向寄存器:输入:置“0”,输入数据。117个GPIO端口:1个23位的PortA;2个11位的PortB、H;3个16位的PortC、D、E、G;1个8位的PortF。2、接口电路通过端口D的GPD1、GPD0控制发光二极管轮流闪烁。端口D控制寄存器寄存器地址描述GPDCON0x56000030使用位[31:0],分别对端口D的16个引脚进行配置。00:输入;01:输出GPDDAT0x56000034数据寄存器,使用位[15:0]GPDUP0x56000038配置上拉电阻1:禁止0:使能GPDCON=GPDCON&0xfffffff0|0x00000005;GPDDAT=GPDDAT&0xfffffffC|0x00000002;GPDCON=GPDCON&0xfff0ffff|0x00050000;GPDDAT=GPDDAT&0xeff|0x200;例题1,判断D端口的输入/输出状态及高低电平3.2A/D转换器接口S3C2410A包含一个8通道的A/D转换器。10位分辨率。采样电压范围是0~3.3V。讨论1当参考电压为3.3V时,输入电压为2.0V,采集的数字量为多少?1、ADC内部结构及ADC控制器相关寄存器A/D转换器和触摸屏接口电路(1)ADC控制寄存器(ADCCON)A/D转换的转换时间计算。例,PCLK为50MHz,PRESCALER=49;所有10位转换时间为50MHz/(49+1)=1MHz转换时间为1/(1M/5cycles)=5us注意:完成一次A/D转换需要5个时钟周期。A/D转换器的最大工作时钟为2.5MHz,所以最大的采样率可以达到500kbit/s。1、要使A/D转换器正常启动,预分频因子取50,应向ADCCON写入什么控制字?01001100010000012、要启动A/D转换器读第2号通道数据启动(预分频因子取16),应向ADCCON写入什么控制字?0100001111010011例题2(2)ADC触摸屏控制寄存器(ADCTSC)在正常A/D转换时,AUTO_PST和XY_PST都置成0即可,其他各位与触摸屏有关,不需要进行设置。(3)ADC转换数据寄存器(ADCDAT0和ADCDAT1)在触摸屏应用中,分别使用ADCDAT0和ADCDAT1保存X位置和Y位置的转换数据。对于正常的A/D转换,使用ADCDAT0来保存转换后的数据。(4)ADC启动延时寄存器(ADCDLY)思考1如何判断ADC转换完成?如何启动ADC转换?•A/D转换的数据可以通过中断或查询的方式来访问,如果是中断方式,则全部的转换时间(从A/D转换的开始到数据读出)要更长。如果是查询方式,则要检测ADCCON[15](转换结束标志位)来确定从ADCDAT寄存器读取的数据是否是最新的转换数据。•A/D转换开始的一种方式是将ADCCON[0]置为1,另一种方式是将ADCCON[1]置为1,这时只要有读转换数据的信号,A/D转换就会同步开始。A/D转换的流程图2、ADC接口编程例题3、ADC转换•定义与A/D转换相关的寄存器•定义如下:•#definerADCCON(*(volatileunsigned*)0x58000000)//ADC控制寄存器•#definerADCTSC(*(volatileunsigned*)0x58000004)//ADC触摸屏控制寄存器•#definerADCDLY(*(volatileunsigned*)0x58000008)//ADC启动或间隔延时寄存器•#definerADCDAT0(*(volatileunsigned*)0x5800000c)//ADC转换数据寄存器0•#definerADCDAT1(*(volati1eunsigned*)0x58000010)//ADC转换数据寄存器•对A/D转换器进行初始化•程序中的参数ch表示所选择的通道号,程序如下:•voidAD_Init(unsignedcharch)•{•rADCDLY=100;//ADC启动或间隔延时•rADCTSC=0;//选择ADC模式•rADCCON=(114)|(496)|(ch3)|(02)|(01)|(0);//设置ADC控制寄存器•}•获取A/D的转换值•程序中的参数ch表示所选择的通道号,程序如下:•intGet_AD(unsignedcharch)•{•inti;•intval=0;•if(ch7)return0;//通道不能大于7•for(i=0;i16;i++)//为转换准确,转换16次•{rADCCON|=0x1;//启动A/D转换•rADCCON=rADCCON&0xffc7|(ch3);•while(rADCCON&0x1);//避免第一个标志出错•while(!(rADCCON&0x8000));//避免第二个标志出错•val+=(rADCDAT0&0x03ff);•Delay(10);•}•return(val4);//为转换准确,除以16取均值•}例题4、预分频值为32,采集0—7个信道,进行ADC转换。3.3LCD显示接口1、LCD基本结构2、LCD显示原理在LCD中,通过给不同的液晶单元供电,控制其光线的通过与否,达到显示的目的。在LCD中,显示面板薄膜被分成很多小栅格,每个栅格由一个电极控制,通过改变栅格上电极的电压状态,来控制栅格内液晶分子的排列,从而控制光路的通断。偏振片透光原理:偏振片只允许偏振方向与它的偏振化方向平行的光透过,如果让两个偏振片的偏振化方向相互垂直,由于第一次出射光的偏振方向与第二个偏振片的偏振化方向垂直,光不能通过第二个偏振片。如果有光线进入,通过第一个偏振片后,将被液晶分子逐渐改变偏振方向,由于光线沿着液晶分子排列的方向传播,光线最终将从另一端射出。彩色LCD利用三原色混合的原理显示不同的色彩。在彩色LCD中,每一个像素都是由3格液晶单元格构成的,其中每一个单元格前面都分别有红色、绿色或蓝色的过滤片,光线经过过滤片的处理变成红色、蓝色或者绿色,利用三原色的原理,组合出不同的色彩。彩色显示原理问题:LCD如何显示黄色、白色?问题:如何生成红光?3、LCD类型①段式液晶②字符型液晶③图形点阵式液晶根据液晶材料和液晶效应分为TN、STN、TFT等几类。STN-LCD(超扭曲向列型液晶显示器)SuperTwistedNematic-LCDTFT-LCD(薄膜型液晶显示器)ThinFilmTransistor-LCD4、S3C2410A的LCD控制器一块LCD屏显示图像,不但需要LCD驱动器,还需要有相应的LCD控制器。通常LCD驱动器会以COF/COG的形式与LCD玻璃基板制做在一起,而LCD控制器则由外部电路来实现。而S3C2410内部已经集成了LCD控制器,因此可以很方便地去控制各种类型的LCD屏。S3C2410A的LCD控制器支持单色,4级、16级灰度LCD显示,以及8位彩色、12位彩色LCD显示,彩色显示采用RGB的格式,通过软件编程可以实现332的RGB调色格式。可以通过对LCD控制器中的各寄存器写入不同的值,来配置不同尺寸、不同的垂直和水平像素点、数据宽度、接口时间及刷新率的LCD。LCD控制器的结构框图S3C2410A的LCD控制器内部结构方框图如图所示,由REGBANK、LCDCDMA、VIDPRCS、TIMEGEN和LPC3600等模块组成。REGBANK是LCD控制器的寄存器组,具有17个用于配置LCD控制器的可编程寄存器和256×16的调色存储器。用来对LCD控制器的各项参数进行设置。LCDCDMA则是LCD控制器专用的DMA信道,负责将视频资料从系统总线(SystemBus)上取来,通过VIDPRCS从VD[23:0]发送给LCD屏。TIMEGEN和LPC3600负责产生LCD屏所需要的控制时序,例如VSYNC、HSYNC、VCLK、VDEN,然后从VIDEOMUX送给LCD屏。S3C2410ALCD控制器的外部接口信号有33个,包括24个数据位和10个控制位:(1)VSYNC:垂直同步信号(TFT)LCD控制器和LCD驱动器之间的帧同步信号。该信号告诉LCD屏的新的一帧开始了,LCD控制器在一个完整帧显示完成后立即插入一个帧信号,开始新一帧的显示。(2)HSYNC:水平同步信号(TFT)LCD控制器和LCD驱动器之间的水平同步脉冲信号。该信号用于用指示新的一行扫描信号的开始。(3)VCLK:像素时钟信号(TFT)LCD控制器和LCD驱动器之间的像素时钟信号,由LCD控制器送出的数据在VCLK的上升沿处送出,在VCLK的下降沿处被LCD驱动器采样。LCD屏的驱动IC是通过采集VCLK信号来接受RGB数据。(4)VD[23,0]:LCD像素点数据输出端口(TFT),R、G、B分别占用8位,顺序依次从高到低。(5)VDEN:LCD驱动器的AC信号(TFT)VDEN信号被LCD驱动器用于改变行和列的电压极性,从而控制像素点的显示或熄灭。(6)LEND:行结束信号(TFT),LCD驱动器在每扫描一行像素后给出该信号。(7)LCD_PWREN:LCD面板电源使能控制信号,由LCDCON5的PWREN位控制。(8)LCDVF0:SECTFT信号OE(9)LCDVF1:SECTFT信号REV(10)LCDVF2:SECTFT信号REVB5、LCD显示数据格式一个320×240个像素,8bit的256色LCD,显示数据格式什么样?每个像素占一个字节,每个字节中有RGB格式(332或者233)的区分,具体由硬件决定。例如332的RGB格式如图a所示,红、绿、蓝三个颜色分量分别占3位、3位、2位。8位256彩色显示的显示缓存器与LCD屏上的像素点是对应的,每个字节对应LCD上的一个像素点,如图b所示。在彩色图像显示时,要在显示缓存区SDRAM中存放显示数据,缓存区的数据会直接显示到LCD屏上。改变该显示缓存区内数据,LCD显示屏上的图像随之变化。图a图b讨论?为什么数据存放在显示缓存区SDRAM中,然后直接显示到LCD屏上?6、LCD编程基本内容1)设置LCD类型,例如,STN8八位彩色模式2)LCD像素,例如,320*2403)设置控制信号VFRAME、VLINE、VCLK和数据信号VD0-VD23等,分别在GPCCON,GPDCON中选择相应功能。4)设置视频数据缓冲区的地址详细内容,参照S3C2410A处理器和LCD液晶屏说明书。3.4触摸屏接口触摸屏的应用案例??1、触摸屏的分类•电阻式触摸屏1)四线电阻式触摸屏2)五线电阻式触摸屏3)六线电阻式触摸屏4)七线电阻式触摸屏•电容式触摸屏1)单点触摸屏2)多点触摸屏•红外线触摸屏•超声波触摸屏(IPhone)2、触摸屏的结构和工作原理透明导电材料ITO:ITO是IndiumTinOxides的缩写。ITO是一种N型氧化物半导体-氧化铟锡,ITO薄膜即铟锡氧化物半导体透明导电膜,通常有两个性能指标:电阻率和透光率。特性是当厚度降到1800个埃(埃=10-10米)以下时会突然变得透明,透光率为80%,再薄下去透光率反而下降,到300埃厚度时又上升到80%。一般是通过真空离子溅射工艺将ITO薄膜镀到塑料或者玻璃上。ITO中其透过率和阻值分别由In2O3与Sn2O3之比例来控制,通常Sn2O3:In2O3=1:9.电阻式触摸屏和电容式触摸屏都用到ITO材料。触摸屏为什么是透明的?触摸屏和LCD屏,哪个放在上面?1)电阻式触摸屏结构四线制的测量坐标位置原理如何测量点坐标(x,y)?测量X坐标:1)在X+,X-两电极加上一个电压Vref,Y+接一个高阻抗的ADC。2)两电极间的电场呈均匀分布,方向为X+到X-。3)手触摸时,两个导电层在触摸点接触,触摸点X层的电位被导至Y层所接的ADC,得到电压Vx。4)通过L