激光治疗仪中的触摸屏接口设计
摘要:各种触摸屏的应用简化了人机交互过程。介绍四线电阻式触摸屏的工作原理及在激光治疗仪中的应用。阐述ADS7846同微控制器PIC16F876的数据传递过程。
关键词:触摸屏 ADS7846同微控制器PIC16F876
引言
随着社会自动化程度的提高,人机交互能力急需大的转变,向着更方便使用、更直观的方向发展。激光治疗机主要应用激光的物理特性作用于人体,产生机体化学反应从而达到治疗疾病的目的。激光治疗机作为一种精密仪器需要精确的控制及防尘、防静电、防潮等方面的严格要求。激光治疗机输入设备采用触摸屏控制,既是基于以上要求也是从方便使用者操作和界面直观的角度考虑的。触摸屏的应用使得数据的显示和数据的输入结合为一体,简化了整个设备。
javascript:window.open(this.src);" style="cursor:pointer;"/>
1 触摸屏原理
触摸屏附着在显示器的表面,与显示器配合使用。通过触摸产生模拟电信号,经过转换为数字信号由微处理器计算得出触摸点的坐标,从而得到操作者的意图并执行。触摸屏按其技术原理可分为五类:矢量压力传感器、电阻式、电容式、红外线式和表面声波式,其中电阻式触摸屏在实际应用中的较多。电阻式触摸屏由4层的透明薄构成,最下面是玻璃或有机玻璃构成的基层,最上面是一层外表面经过硬化处理从而光滑防刮的塑料层,附着在上下两层内表面的两层为金属导电层(OTI,氧化铟),这两层由细小的透明隔离点进行绝缘。当手指触摸屏幕时,两层电层在触摸点处接触。
触摸层的两个金属导电层分别用来测量X轴和Y轴方向的坐标。用于X坐标测量的导电层从左右两端引出两个电极,记为X+和X-。用于Y坐标测量的导电层从上下两端引出两个电极,记为Y+和Y-。这就是四线电阻触摸屏的引线构成。当在一对电极上施加电压时,在该导电层上就会形成均匀连接的电压分布国。若在X方向的电极对上施加一确定的电压,而Y方向电极对上不加电压时,在X平行电压场中,触点处的电压值可在在Y+(或Y-)电极上反映出来,通过测量Y+电极对地的电压大小,便可得知触点的X坐标值。同理,当在Y电极对上加电压,而X电极对上不加电压时,通过测量X+电极的电压,便可得知触点的Y坐标。测量原理如图1所示。
javascript:window.open(this.src);" style="cursor:pointer;"/>
五线式触摸屏与四线式不同。主要区别在于五线触摸屏将其中一导电层的四端均引出来作为四个电极,另一导电层仅仅作为测量的导体输出X向和Y向的电压,测量时要交替在X向和Y向上施加电压。
2 触摸层控制器工作原理
触摸屏控制器有多种,主要的功能均是在微处理器的控制下向触摸屏的两个方向分时施加电压,并将相应的电压信号传送给自身A/D转换器,在微处理器SPI口提供的同步时钟作用下将数字信号读入微处理器。控制器ADS7846基本结构如图2所示。
图1触摸点P处测量结果计算如下:
javascript:window.open(this.src);" style="cursor:pointer;"/>
javascript:window.open(this.src);" style="cursor:pointer;"/>
ADS7846内部可以通过寄存器的设置A/D转换器的分辨率设为8位或12位,在本系统中A/D转换器的分辨率取12位。则P点的二进制输出代码为:
javascript:window.open(this.src);" style="cursor:pointer;"/>
其中:Vref_full为加在ADS6746内部A/D转换器上的参考电压。
触摸屏控制器的运行是通过串行数据输入口DIN输入控制命令进行控制的。控制的基本格式如下:
bit | bit6 | bit5 | bit4 | bit | bit | bit | bit |
起始位(高电平) | A2 | A1 | A0 | MODE | SER/DFR | PD1 | PD0 |
bit7指明发送命令开始,高电平有效。A2:A0用于选择数据输入通道,101选择X坐标测量,001选择Y坐标测量。MODE将内部模数转换器的分辨率定义为8位(MODE=1)或12位(MODE=0)。SER/DFR为单端/双端参考电压选择位。PD1:PD0根据省电模式的需要进行选择设置。这些命令控制位的设置将在程序代码部分得以应用。
3 系统硬件设计
激光治疗机的输入系统由三部分组成:触摸屏、触摸屏控制器和微控制器。微控制器采用Microchip公司的新型芯片PIC16F867。内部总线采用哈佛双总线结构。在内部频率相同的情况下,加快了数据的传输速度,避免了瓶颈现象。此芯片采用精简指令集(RISC)易于使用,加快了开发速度。内部含有8KB程序存储器(分页操作),256字节EEPROM,368字节RAM,8路模数转换器,1个通用串行口(SCI),1个I2C接口,1个串行外围接口(SPI),3个定时器及看门狗电路(WathcDog)等许多重要资源。外围许多接口功能上的复用使得整个微控制器简洁,功能强大。
根据ADS7846与微控制器进行数据交换的接口特征,选用PIC16F876的SPI口。SPI口包括三个信号:SDO(串行数据输出),SDI(串行数据输入),SCK(串行同步时钟)。硬件连接关系见图3。
本文侧重于激光治疗仪输入系统的设计,其它硬件的设计仅给出接口的含义。由于PIC16F876的内部集成度较高,所以外围接口相当简单,但是要完成复杂的控制功能必须进行内部寄存器的设置。
图3
4 软件设计
按照以上设计思想设计了应用软件。图4为主程序与触摸屏输入检测部分的程序流程图。其中,坐标数据处理通常采用查表的方法,将用户命令的坐标形成数据表,利用获得的坐标信息进行变换快速查表,从而提高软件的运行速度。
下面是PIC16F876同ADS7846接口的部分程序代码。
CMDATA EQU 30H
XDATA_H EQU 31H
XDATA_L EQU 32H
YDATA_H EQU 33H
YDATA_L EQU 34H
;初始化寄存器javascript:window.open(this.src);" style="cursor:pointer;"/>
MOVLW 02H
MOVWF TRICB ;定义B口方向
MOVLW 90H
MOVWF TRISC ;定义C口方向
BCF SSPCON,5
MOVLW 10H
MOVWF SSPCON ;初始化SSPCON
BSF SSPCON,5 ;启动SPI
;获取X,Y坐标
GetXY
BCF PORTB,0 ;选口AD7846
MOVLW 0D4H ;获取X坐标命令
MOVWF SSPBUF ;发送命令
BUSY
BTFSC PORTB,1 ;判忙?
GOTO BUSY
MOVF SSPBUF,W ;12位数据
MOVWF XDATA_H ;XDATA_H存放高字节
MOVF SSPBUF,W
MOVWF XDATA_L ;XDATA_L存放低字节
································
;Y坐标数据同样处理
RETLW 0
结语
本系统的设计使得输入极其方便,而且外围设备得到简化,在实际应用中提高了人机交互的能力,收到良好的社会效益。系统设计的思想不仅能够应用在医疗行业,而且能够应用在工业生产自动化以及手持设备等各行业。