测控网络通讯系统及人机交互接口设计.doc_第1页
测控网络通讯系统及人机交互接口设计.doc_第2页
测控网络通讯系统及人机交互接口设计.doc_第3页
测控网络通讯系统及人机交互接口设计.doc_第4页
测控网络通讯系统及人机交互接口设计.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

设计题目:测控网络通信系统及 人机交互接口设计姓 名: 杨亚英 学 号: 310804040404专业班级: 测 控08-4班 指导教师: 陈春朝 河 南 理 工 大 学 测控技术与仪器系2011.12目录设计题目 测控网络通信系统及人机交互接口设计设计目标 实现测控系统的人机交互接口的硬件电路与软件设计、实现测控节点的互通信以及节点与上位机PC通信的硬件电路以及软件设计。设计内容1、 实现两个按键输入;2、 实现4位LED显示输出;3、 采用RS485协议实现单片机与单片机远距离互通信;4、 实现单片机与PC的串口通信协议转换与通信;5、用按键控制通信进程、利用LED显示通信数据。设计要求1、 按键的检测与去抖动电路及C语言软件编程;2、 LED数码管的接口电路设计及C语言软件编程;3、 通信协议转换元件的选择与电路设计;4、 通信过程的C语言编程;5、 51单片机系统的时钟与复位部分元器件选择与设计;6、 按键调度通信过程的程序设计;7、 通信数据的LED显示;8、 书中完整给出方案原理、元器件选择与计算、电路原理图和程序描述设计分组测控08-4班1、 通信方式及波特率:单片机与PC通信,波特率96002、 按键检测方式:定时查询方式3、 LED显示方式:动态方式摘要:针对我国小企业的特点,提出了以RS-485总线方式的测控网络,给出了测控网络的网络结构。PC主机使用Visual Basic软件开发,重点讨论了利用VB 的MSComm 通信控件,实现PC机与多测控节点之间的通信。 关键词:节点;MSComm 控件;VB;RS-485 根据我国的具体情况,各厂商在选择网络结构时通常是按隶属关系确定网络形式。例如隶属邮电行业的企业优选电话网,隶属广播电视行业的企业优选有线电视网络,而电力行业的企业优选电力配电网。不属于上述行业的企业未经许可不大可能进入这几种专业网络。在这种情况下一般有两种解决方案:一是借助与网络公司联盟进入公共网络,二是做自己的现场总线。目前,现场总线技术虽然取得了很大成绩,但还是存在一些问题,主要体现在工程应用方面。在我国,大多数企业生产规模还比较小,各种现场总线都把降低成本作为主要追求目标,但据许多已经投入应用的企业反映,实际现场总线的系统开销比传统RS-485 总线要大。这里可能有两个问题,一是使用的系统规模太小,从制造商处得到的折扣少;二是使用的系统多沿用原有布线的习惯,因此无法充分发挥现场总线节省线缆的优势。又由于现场总线包含许多新的技术内容,中小企业往往因人才方面的劣势等原因,在调试、运行和维护方面经常会遇到困难。 基于以上情况,有必要开发一种结构简单、价格低廉、便于维护的RS-485 总线网络测 控系统,网络节点采用AT89C52 单片机,PC主机采用VB 编程,因VB 功能强大,利用 VB 编制的软件系统人机界面友好、操作方便。 1 系统组成 在测控系统的实际设计中,首先是系统网络的设计,RS-485总线方式有结构简单、工作可靠、通信速率高(最大10Mbps)、距离远(不加中继最远可达1200m)等诸多优点,在目前的测控网络中得到了广泛的应用。综合考虑施工环境的具体情况和系统可靠性,我们选择RS-485 总线方式作为测控系统的网络结构,降低了系统复杂性,减少了成本。测控节点与主控PC 机采用RS-485总线式网络结构,主控PC 机的COM 串行通信端口通过RS232/RS-485转换器与RS-485网络相连,以半双工方式工作,最大传输距离可达 1200m,波特率在1200 和38400b/s 间可设置,RS-485网络采用一对有补偿的双绞线。测控节点采用AT89C52 单片机,片中串行口加MAX487 转换器,连接到RS-485 网络,以半双工方式与主控PC机通信。PC机本身并不具备专用的RS-485通信口,其对外的两个串口 COM1、COM2 都是专门为RS-232 通信而设置的。由于RS-485 与RS-232 的工作电平不相 同,工作方式与控制机理也有差别,故而想利用现成的COM1、COM2串口来实现RS-485 通信时,PC机各串口上应有RS-232/RS-485 转换器。PC 机的每个串行端口通过串行扩展卡扩充为8个端口,每个端口带100 个测控节点,测控节点的地址为JD1100,不能重复,PC 机就是靠地址来识别测控节点的。 2 PC 主机与节点群之间串行通信的实现 2.1 利用VB6.0 提供MSComm 通信控件访问串口 通过VB6.0 中通信控件的属性设置数据传输率,奇偶校验,缓冲区容量等,通过方法和事件发送、接收数据和控制命令。 (1) 主要属性设置:Commport: 设置通信连接端口代号 Settings: 以字符串的形式设置或回传“BBBB ,P ,D ,S” PortOpen: 通信连接端口状态 Input: 从输入寄存器传回并移除字符 Output: 将一个字符串写入输出寄存器 Inputlen: 指定由串行端口读入的字符串长度 InBufferCount: 已接收并在接收寄存器等待读取的字符数 InputMode: ComInputModeText 0 以文字字符串形式取回 ComInputModeBinary 1 二进制形式取回 (2)利用VB中的MSComm 的Settings 属性的动态设置,实现多机通信在属性中尤其值得注意的是MSComm 控件中的Settings 属性,其值的格式为“BBBB, P,D,S”。 BBBB 为传输波特率如,9600bps,2400bps 等。 P为奇偶方式设定位,其值为E(偶校验位Even )、M(记号Mark )、N(默认值Default )、 None(无奇偶校验)、O(奇校验Odd)和S(空白Space)五种。 D 位数据位数,其值有4,5,6,7,8 五种。 S 为停止位数,其值有1,1.5,2 三种。 一般认为,VB6.0 的通信控件MSComm 只能实现双机通信,而无法实现对分布式网络节点群的控制,因而只能另觅他径,如通过动态链接库(DLL )技术等。另一方面,由于PC机系统配置的串行接口芯片,不论是早期的8250 还是后来的16C450 或16C55无多机工作的模式(即串行通信帧格式中无地址/数据使能位定义)。因此,在PC机允许的串行通信帧格式中,利用奇偶校验来模拟产生多机系统中必须的地址/数据使能位,可以实现对分布式节点群的控制。通过对VB6.0 环境下的串行通信控件MSComm 属性以及串行信息帧 格式的深入研究,提出了直接利用串行通信控件MSComm 的有关属性,保证串行通信帧的 奇偶位随传送地址或数据的变化而动态变化。 实现方式:可通过动态设定MSComm 控件的Settings 属性中的奇偶方式,以串行通信帧中奇偶位的变化来模拟多机通信时地址/数据使能位的变化,当发送地址帧时设定奇偶校 验位为“1”,发送数据帧时设定奇偶校验位“0”。 具体有两种实现方法: 方法一:对于每次要发送的8bit 数据,根据发送地址帧和数据帧的要求,确定待发送数据类型,动态设定串行通信奇偶校验为奇校验或偶校验。 方法二:利用MSComm 控件的Settings 属性中奇偶设置方式位P 的“M (Mark )”或“S(Space)”值来实现,发送地址帧时设置奇偶方式位P 值为M,而发送数据帧时设定奇偶方式位P 值为S。 以上两种方法均以牺牲串行信息帧的奇偶校验功能为代价,本系统中用简单且行之有效 的“累加和校验”方法。 (3)PC 机串行通信初始化(以上述方法二为例) 在VB6.0 的环境下,直接利用MSComm 串行通信控制Settings 属性中的奇偶方式位P, 通过动态改变P 的值,选M(Mark)或S(Space)来模拟串行信息帧的地址数据使能位,从而 实现对网络多节点的控制。 其属性设置为: MSComm1.Settings=“9600,m,8,1” 波特率9600bps,MARK 状态(地址使能位),8位数据位,1位停止位 MSComm1.Settings=“9600,s,8,1” 波特率9600bps,SPACE 状态(数据使能位),8位数据位,1位停止位 InBufferCount:传回在接收寄存器中的字符,InBufferCount 属性设为0,用来清除寄存器。 InputMode:设置或传回Input 属性取回的数据的形式。 ComInputModeText: 0 以文字形式取回 ComInputModeBinary: 1 以二进制形式取回 2.2 程序设计 发送数据过程: 发送端口号发送从机地址发送命令及数据等待接收从机回应 判断地址完成 接收数据过程: 发送端口号发送从机地址发送命令等待接收从机地址及数据 判断地址判断校验和完成 发送程序为例: Dim OutB( ) As Byte, InB( ) As Byte 定义动态数组 MSComm1.CommPort = RS(1) 从数据库中取出端口号 If MSComm1.PortOpen = False Then 开端口 MSComm1.PortOpen = True End If MSComm1.Settings = 9600,M,8,1 MSComm1.SThreshold = 1 Flag = 0 MSComm1.Output = Chr(RS(2) 从数据库取从机地址并发送地址 Timer1.Interval = 50 Timer1.Enabled = True Do Loop Until Flag 0 If Flag = 9 Then MsgBox 发送数据错误! MSComm1.PortOpen = False Exit Sub End If MSComm1.Settings = 9600,S,8,1 MSComm1.InBufferCount = 0 ReDim OutB(0 To 8) OutB 数组赋值 MSComm1.Output = OutB 发送命令及数据 Timer1.Interval = 50 延时 Timer1.Enabled = True Do DoEvents Loop Until MSComm1.InBufferCount = 1 Or Flag = 9 接收字符=1 或定时时间到 接收校验 由于PC 主机与节点之间传送的数据量比较大,通常用二进制的方式来传输数据,并 且将数据首先存入一个形式为Byte 的动态数组中,然后在将此动态数组传送出去。 在每次传输命令后,等待一段时间,才可能得到节点机的应答,通过计算节点机响应时间以及反复试验确定最佳等待时间,测试中最佳等待时间为50ms,发送节点机地址的等 待时间为50ms,在接收节点机地址及数据时等待时间为200ms。 在PC机接收节点回应时,利用一条等待循环语句来判断InBufferCount 的字符数和等待时间。 接收数据时,用一条循环语句将动态数组中的数据取出,并将数据转换排序按照十进 制顺序放入数据库相应表中3人机交互接口设计人机交互接口,是计算机和人机交互设备之间的交接界面,通过接口可以实现计算机与外设之间的信息交换。人机交互设备是计算机系统中最基本的设备之一,是人和计算机之间建立联系、交换信息的外部设备,常见的人机交互设备可分为输入设备和输出设备两类。人机接口是计算机同人机交互设备之间实现信息传输的控制电路。接口中要分别传送数据信息、命令信息和状态信息。数据信息、命令信息和状态信息都通过数据总线来传送。大多数计算机都把外设的状态信息视为输入数据,而把命令信息看成输出数据,并在接口中分设各自相应的寄存器,赋以不同的端口地址,各种信息分时地使用数据总线传送到各自的寄存器中去。在嵌入式系统中,目前常见的人机接口设备有键盘、LED、触摸屏 .3.1键盘输入接口在ARM嵌入式系统应用中,键盘是人机交互对话最通用的方法之一。操作者通过键盘向系统发送各种指令或置入必要的数据信息。键盘模块设计的好坏,直接关系到系统的可靠性和稳定性。在ARM应用系统中,键盘扫描只是ARM的工作内容之一,ARM在忙于各项工作任务的同时,如何兼顾键盘的输入,则取决于键盘的工作方式。键盘工作方式的选取原则是既要保证能及时响应按键操作,又要不过多占用ARM的工作时间。3.1.1键盘工作原理通常的标准键盘是由许多按键开关组成的。按键开关电路是指通过外力使电路瞬时接通的开关,在许多场合都有应用。比如大多数处理器的RESET电路都用到了按键开关,它通过按键产生一个瞬时的低电压,CPU感知这个低电压后重启。在有些系统中也用按键开关切换工作模式,它通过按键开关生成一个低压脉冲,产生一次中断,在中断处理程序中改变工作模式,并且通过置外部标志的方式告知用户当前的工作模式,通过切换开关,就可以实现在不同工作模式之间进行切换。按键开关的电路如图6.1所示。图3.1 按键开关电路示意图当按键断开时,输出高电压,为逻辑1;当按键按下时,电平输出点与地相连,输出低电平,为逻辑0。如图3.1所示的按键开关电路是最简单的,遗憾的是,它并不完善,因为它按下或者被释放时,并不能明确地产生一个逻辑0或者逻辑1。由于按键是机械触点,当机械触点断开、闭合时,会产生抖动。这种抖动对于用户来说是感觉不到的,但对计算机来说,则是完全可以感应的。计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,这对计算机而言,已是一个“漫长”的时间了。假如利用按键开关产生中断可能就会产生一个问题,就是说按键有时灵,有时不灵,其实就是这个原因。有可能只按了一次按键,可是计算机却已执行了多次中断的操作。为使CPU能正确地读出按键的状态,对每一次按键只作一次响应,就必须考虑如何去除抖动。常用的去除抖动方法有软件方式和硬件方式两种。对于简单的按键电路,可以采用软件方法去除抖动。软件方法其实很简单,就是在程序获得外接端口为低的信息后,不是立即认定按键已被按下,而是延时10毫秒或者更长一段时间后再次检测外部端口,如果仍为低,说明按键的确按下了,这实际上是避开了按键按下时的抖动时间。同理,在检测到按键释放后再延时510毫秒,消除后沿的抖动,然后再对键值处理。实践证明,不对按键释放的后沿进行处理,通常也能满足一定的要求。但有时用软件方式并不能很好地解决按键抖动问题,例如按键开关连接的是中断请求线,程序是不能读取中断请求线的状态的,这时就需要使用硬件方法。硬件方法其实就是一个去除抖动电路,用于去除按下和释放按键时的波形抖动,这个电路也是比较简单的,3.1.2按键去抖设计(1)其实,作为一个按键从没有按下到按下以及释放是一个完整的过程,也就是说,当我们按下一个按键时,总希望某个命令只执行一次,而在按键按下的 过程中,不要有干扰进来,因为,在按下的过程中,一旦有干扰过来,可能造成误触发过程,这并不是我们所想要的。因此在按键按下的时候,要把我们手上的干扰信号以及按键的机械接触等干扰信号给滤除掉,一般情况下,我们可以采用电容来滤除掉这些干扰信号,但实际上,会增加硬件成本及硬件电路的体积,这是我们不希望,总得有个办法解决这个问题,因此我们可以采用软件滤波的方法去除这些干扰信号,一般情况下,一个按键按下的时候,总是在按下的时刻存在着一定的干扰信号,按下之后就基本上进入了稳定的状态。具体的一个按键从按下到释放的全过程的信号图如下图所示:从图中可以看出,我们在程序设计时,从按键被识别按下之后,延时5ms以上,从而避开了干扰信号区域,我们再来检测一次,看按键是否真得已经按下,若真得已经按下,这时肯定输出为低电平,若这时检测到的是高电平,证明刚才是由于干扰信号引起的误触发,CPU就认为是误触发信号而舍弃这次的按键识别过程。从而提高了系统的可靠性。由于要求每按下一次,命令被执行一次,直到下一次再按下的时候,再执行一次命令,因此从按键被识别出来之后,我们就可以执行这次的命令,所以要有一个等待按键释放的过程,显然释放的过程,就是使其恢复成高电平状态。(1)对于按键识别的指令,我们依然选择如下指令JBBIT,REL指令是用来检测BIT是否为高电平,若BIT1,则程序转向REL处执行程序,否则就继续向下执行程序。或者是JNBBIT,REL指令是用来检测BIT是否为低电平,若BIT0,则程序转向REL处执行程序,否则就继续向下执行程序。(6汇编源程序 ORG 0START: MOV R1,#00H ;初始化R7为0,表示从0开始计数 MOV A,R1 ; CPL A ;取反指令 MOV P1,A ;送出P1端口由发光二极管显示REL: JNB P3.7,REL ;判断SP1是否按下 LCALL DELAY10MS ;若按下,则延时10ms左右 JNB P3.7,REL ;再判断SP1是否真得按下 INC R7 ;若真得按下,则进行按键处理,使 MOV A,R7 ;计数内容加1,并送出P1端口由 CPL A ;发光二极管显示 MOV P1,A ; JNB P3.7,$ ;等待SP1释放 SJMP REL ;继续对K1按键扫描DELAY10MS: MOV R6,#20 ;延时10ms子程序L1: MOV R7,#248 DJNZ R7,$ DJNZ R6,L1 RET END7C语言源程序#includeunsigned char count;void delay10ms(void) unsigned char i,j; for(i=20;i0;i-) for(j=248;j0;j-);void main(void) while(1) if(P3_7=0) delay10ms(); if(P3_7=0) count+; if(count=16) count=0; P1=count; while(P3_7=0); 基本RS触发器的用途之一是作无抖动开关。当开关接通时,由于机械按键开关在扳动的过程中,存在接触抖动,使得输出点电压从+5V直接地跃降到0V的一瞬间(几十毫秒),会发生多次电压抖动,相当产生连续多个脉冲信号。如果利用这种电路产生的信号去驱动数字电路,则可能导致电路发生误动作。这在某些场合是绝对不允许的,为了消除机械开关的抖动,可在开关与输出端点之间接人一个RS触发器,就能使F端产生很清晰的阶跃信号。那么这种带RS触发器的打关通常称为无抖动开关(或称逻辑开关)。而把有抖动的开关称为数据开关。新艺图库原理:在按压按键时,由于机械开关的接触抖动,往往在几十毫秒内电压会出现多次抖动,相当于连续出现了几个脉冲信号。显然,用这样的开关产生的信号直接作为电路的驱动信号可能导致电路产生错误动作,这在有些情况下是绝对不允许的。为了消除开关的接触抖动,可在机械开关与被驱动电路间接的接入一个基本RS触发器,如图1所示838电子。S为 0,Rl,可得出Al,A0。当按压按键时,Sl,R0,可得出 A0,A1,改变了输出信号A的状态。若由于机械开关的接触抖动,则R的状态会在0和1之间变化多次,若Rl,由于A0,因此G2门仍然是“有低出高”,不会影响输出的状态。同理,当松开按键时,S端出现的接触抖动亦不会影响输出的状态。因此,图1所示的电路,开关每按压一次,A点的输出信号仅发生一次变化。 图1 无抖动开关电路图2 基本R-S电路3.2LED显示接口技术在微机控制中,显示装置是一个重要组成部分,主要用来显示生产过程的工艺状况与运行结果,以便于现场工作人员的正确操作。常用的显示器件有显示记录仪、发光二极管显示器LED、液晶显示器LCD、大屏幕显示器和图形显示器终端CRT。显示记录仪是以模拟方式连续显示和记录过程参数的动态变化,虽然后来也出现了以微处理器为核心的数字式智能记录仪,但其价格都很贵,在目前的计算机控制系统中已很少采用。 LED数码管由于具有结构简单、体积小、功耗低、配置灵活、显示清晰、可靠性高等优点,目前已被微型计算机控制系统及智能化仪表广泛采用。 LCD则以其功耗极低的特点,占据了从电子表到计算器,从袖珍仪表到便携式微型计算机等应用场合。 大屏幕显示器是由若干个LED点矩阵模块组合成的,能够显示普通汉字和英文,具有显示清晰、视觉范围宽广等优点,主要用于车站、码头、体育场馆、大型生产装置的现场显示。 CRT显示终端以其图文并茂的直观生动画面,可以显示生产过程中的各种画面及报表,如生产流程图、显示报警图、趋势曲线图、状态和回路查询图等,十分便于对生产过程的管理和监视,因此在很多微型计算机控制系统中,特别在DDC,SCC以及DCS控制系统中,大都采用CRT操作台进行监视和控制。 在单片微型计算机系统中,主要用 LED和 LCD进行显示,而且随着LCD价格的降低,LCD愈来愈受到人们的青睐。3.2.1 LED 显示器工作原理LED(Light Emitting Diode)是利用PN结把电能转换成光能的固体发光器件,根据制造材料的不同可以发出红、黄、绿、白等不同色彩的可见光来。LED的伏安特性类似于普通二极管,正向压降约为2伏左右,工作电流一般在10 20 mA之间较为合适。LED显示器有多种结构形式,单段的圆形或方形LED常用来显示设备的运行状态,8段LED可以显示各种数字和字符,所以也称为LED数码管。8段LED在控制系统中应用最为广泛,其接口电路也具有普遍借鉴性。因此,我们介绍8段LED数码管显示器。8段LED显示器的结构与工作原理如图3-3所示。它是由8个发光二极管组成,呈“日”字形,各段依次记为a、b、c、d、e、f、g、dp ,其中dp表示小数点(不带小数点的称为7段LED)。8段LED显示器有共阴极和共阳极两种结构。共阴极LED的所有发光管的阴极并接成公共端COM,而共阳极LED的所有发光管的阳极并接成公共端COM。当共阴极LED的COM端接地,则某个发光二极管的阳极加上高电平时,如发光管a接+5V时,则a管有电流流过,因此a管被点亮。当共阳极LED的COM端接高电平,则某个发光管的阴极加上低电平时,如发光管b接地时,则b管有电流流过,因此b管被点亮。8段LED通过不同段点亮时的组合,可以显示09、AF等十六进制数。显然,将单片机的数据输出口与LED各段引脚相连,控制输出的数据就可以使LED显示不同的字符,如图3-4所示。通常把控制LED数码管发光显示字符的8位字节数据称为段选码或者字符译码。当段引脚dp a与单片机数据位D7 D0对应相连时,8段LED显示器的段选码如表7-1所示。现以共阴极段选码的3为例,3的段选码是十六进制的4FH,也就是二进制的01001111。结合图3-4,段选码01001111即意味着单片机输出的数据使LED显示器dp、f、e段接地, g、d、c、b、a段接+5 V ,当COM端接地时,显示器就显示出数字3。就这样通过不同的段选码,就显示出不同的相应字符来。数码管共阳极的段选码恰好与共阴极的段选码相反,如共阳极数码管3的段选码B0H(10110000),共阴极数码管3的段选码4FH(01001111)。需要注意的是,表3-1只是基于段引脚dp a与数据位D7 D0对应相连这一模式的,如果对应连线改变,则段选码也随之改变。表3-1 8段LED显示器的段选码3.2.2LED显示器显示方式在微机控制系统中,常利用N个LED显示器构成N位显示。通常把点亮LED某一段的控制称为段选,即段选线控制显示的内容,而把点亮LED某一位的控制称为位选或片选,即位选线控制在哪个LED上显示。根据LED显示器的段选线、位选线与控制端口的连接方式不同,LED显示器有静态显示与动态显示两种方式,下讲述LED动态显示方式。LED的动态显示是一位一位地轮流点亮各位数码管,这种逐次点亮显示器的方式叫位扫描。通常,各位数码管的段选线相应并联在一起,由一个8位的I/O口控制,各位的位选线(公共阴极或阳极)由另外的I/O口控制。动态方式显示时,各数码管分时轮流联通,要使其稳定显示,必须采用扫描方式,即在某一时刻只选通一位数码管,并送出相应的段码,在另一时刻选通另一位数码管,并送出相应的段码。依此规律循环,即可使各数码管显示将要显示的字符。虽然这些字符是在不同的时刻显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可以给人以同时显示的感觉。利用动态显示方式比较节省I/O接口,硬件电路也较静态显示方式简单,但其亮度不如静态显示方式,而且在显示位数较多时,CPU要依次扫描,占用CPU较多的时间。3.3 触摸屏交互接口触摸屏提供了一种简单、方便的人机交互方式,赋予了多媒体以崭新的面貌,在计算机和嵌入式系统中都有非常广泛的应用。本节将首先讨论触摸屏的工作原理和特点,接着阐述触摸屏和液晶屏的配合方法,并对SIO接口进行简要说明,然后通过一个实验来说明触摸屏在嵌入式系统的应用。在实验中,详细介绍如何在uClinux下编写触摸屏应用程序,通过对手写输入程序的源代码进行分析和具体实验来掌握对其工作原理和在嵌入式系统中的使用方法。3.3.1 触摸屏的基本原理为了操作方便,人们用触摸屏来代替鼠标或键盘。使用时用手指或其他物体触摸安装在显示器前端的触摸屏,然后系统根据手指触摸的图标或菜单位置来定位选择信息输入。触摸屏由触摸检测部件和触摸屏控制器组成,前者安装在显示器屏幕前面,用于检测用户触摸的位置并将其送给后者,从而将触摸点位置转换成坐标参数送给处理器,同时接收处理器发来的命令并执行。电阻式触摸屏是最常用的触摸屏类型,利用压力感应来进行控制。它的主要部分是一块与显示器表面非常配合的电阻薄膜屏,这是一种多层的复合薄膜,它以一层玻璃或硬塑料平板作为基层,表面涂有一层透明氧化金属(透明的导电电阻)导电层,上面再盖有一层外表面硬化处理、光滑防擦的塑料层,它的内表面也涂有一层涂层,在它们之间有许多细小的(小于1/1000英寸)的透明隔离点把两层导电层隔开绝缘。电阻式触摸屏剖面示意图如图3.6所示。可以把电阻式触摸屏看作是一种传感器,它将矩形区域中触摸点(X,Y)的物理位置转换为代表X坐标和Y坐标的电压。很多LCD模块都采用了电阻式触摸屏,这种屏幕可以用四线、五线、七线或八线来产生屏幕偏置电压,同时读回触摸点的电压。触摸屏包含上下叠合的两个透明层,四线和八线触摸屏由两层具有相向表面电阻的透明阻性材料构成,五线和七线触摸屏由一个阻性层和一个导电层构成,通常还要用一种弹性材料来将两层隔开。当触摸屏表面受到的压力(如通过笔尖或手指进行按压)足够大时,项层与底层之间会产生接触。所有的电阻式触摸屏都采用分压器原理来产生代表X坐标和Y坐标的电压,如图3.7所示,分压器是通过将两个电阻进行串联来实现的。电阻R1连接正参考电压VREF,电阻R2接地。两个电阻连接点处的电压测量值与电阻R2的阻值成正比。为了在电阻式触摸屏上的特定方向测量一个坐标,需要对阻性层加一个偏置,也就是将它的一边接VREF而另一边接地,同时,将未加偏置的那一层连接到一个模数转换器(ADC,Analog-to-Digital Converter)的高阻抗输入端。当触摸屏上的压力使两层之间发生接触时,电阻性表面被分隔为两个电阻,它们的阻值与触摸点到偏置边缘的距离成正比,触摸点与接地边之间的电阻相当于分压器中下面的那个电阻,因此在未加偏置的层上测得的电压与触摸点到接地边之间的距离成正比。 图3.6 电阻式触摸屏剖面示意图图 3.7 等效电路分压器电路四线触摸屏包含两个阻性层,其中一层在屏幕的左右边缘各有一条垂直总线,另一层在屏幕的上、下边缘各有一条水平总线,如图3.8所示。为了在X轴方向进行测量,将左侧总线偏置接到0V,右侧总线偏置接到VREF,将上侧或下侧总线连接到ADC,当顶层和底层相接触时即可进行一次测量。为了在Y轴方向进行测量,将上侧总线偏置接到VREF,下侧总线偏置接到0V,将ADC输入端接左侧总线或右侧总线,当上层与下层相接触时即可对电压进行测量。对于四线触摸屏,最理想的连接方法是将偏置为VREF的总线接ADC的正参考输入端,而将设置为0V的总线接ADC的负参考输入端,图3.9给出了四线触摸屏的等效电路。 图3.8 四线触摸屏 图3.9 四线触摸屏等效电路五线触摸屏使用了一个阻性层和一个导电层。导电层有一个触点,通常在其一侧的边缘位置,而阻性层的4个角上各有一个触点。为了在X轴方向进行测量,将左上角和左下角偏置接VREF,右上角和右下角接地,由于左、右角为同一电压,其效果与连接左、右侧的总线差不多,类似于四线触摸屏中采用的方法。为了在Y轴方向进行测量,将左上角和右上角的偏置接到VREF,左下角和右下角的偏置接到0V。由于上、下角分别为同一电压,其效果与连接顶层和底层边缘的总线大致相同,也类似于在四线触摸屏中采用的方法。这种测量算法的优点在于它使左上角和右下角的电压保持不变。但如果采用栅格坐标,X轴和Y轴需要反向。对于五线触摸屏,最佳的连接方法是将左上角(偏置为VREF)接ADC的正参考输入端,而将左下角(偏置为0V)接ADC的负参考输入端。3.3.2 触摸屏的输入系统触摸屏输入系统由触摸屏、触摸屏控制器和微控制器3部分组成。图3.10给出了一个实际的触摸屏输入系统的组成,其中,触摸屏采用四线电阻式,控制器采用ADS7846芯片,该芯片的主要功能是分时向X、Y电极对施加电压,并把测量电极上的电压信号转换为相应触摸点的X、Y坐标。图3.10 触摸屏输入系统的组成ADS7846内部有一个由多个模拟开关组成的供电测量电路网络和12位的ADC,其功能框图如图3.11所示。ADS7846根据微控制器发来的不同测量命令导通不同的模拟开关,以便向触摸屏电极对提供电压,并把相应测量电极上的触点坐标位置所对应的电压模拟量送给ADC。图3.11 ADS7846功能框图ADS7846芯片通过SIO接口同CPU进行通信。S3C44B0X的SIO接口可以连接各种需要串行数据传输的外部设备,SIO模块能够以相应的控制寄存器设置所确定的频率收发8比特串行数据。为了保证灵活的数据传输比特率,用户可以选

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论