0 引言
医用数据采集" title="医用数据采集">医用数据采集系统能够为医务人员及时有效的提供患者的第一手数据,有助于加强医院的现代化信息管理和提高工作效率。而在家庭保健方面,它能够满足人们在快节奏的工作生活中及时准确的获知自身及家人的健康状况。在设备的日常使用中,良好的人机接口" title="人机接口">人机接口设计,也将为设备使用人员节约大量的时间并提供极大的便捷。本文主要以LM3S3748为核心,并采用TFT液晶作为系统的显示设备,而用触摸屏和手柄控制器作为系统的控制设备,介绍了其人机接口的设计方法。
1 系统硬件设计
系统人机接口主要包括TFT液晶、触摸屏和手柄控制器,其结构框图如图1所示。其中TFT液晶亮度好,对比度高,层次感强,颜色鲜艳,因此,在不考虑耗电的情况下,TFT液晶是一个很好的选择。触摸屏采用模数转换芯片ADS7843对触摸屏的数据进行采样,再对其采样的输出值经过校准程序,即可以得到其触摸屏的物理坐标。手柄控制器采用Modbus协议,并通过串口对核心板进行控制。
1.1 控制单元
本系统的控制单元可采用TI公司的LM3S3748,支持主频为50 MHz的ARM" title="ARM">ARM Codex-M3内核和128 KByte FIASH、64 KByte SRAM。同时集成有USB HOST/DEVICE/OTG、睡眠模块、正交编码器、ADC、带死区删、温度传感器、模拟比较器、UART、SSI、通用定时器,I2C、CCP、DMA控制器等外设。此外,芯片内部还固化有驱动库,能较好的满足系统需求。
1.2 液晶接口电路
液晶可选用3.2寸TFT(240×320)26万色彩屏触摸模块,该模块支持SD卡和DATAFLASH,同时支持16位/8位模式。该模块可以实现显示画面的180度任意旋转使用,并带触摸屏及触摸控制芯片。模块默认i8080 16位并行接口,并可选8位并行接口方式。其液晶接口电路如图2所示。
1.3 触摸屏控制电路
触摸屏控制芯片采用的ADS7843是TI公司生产的4线电阻触摸屏转换接口芯片。它是一款具有同步串行接口的12位取样模数转换器。ADS7843具有两个辅助输入(IN3、IN4),可设置为8位或12位模式。
ADS7843可以通过连接触摸屏X+将触摸信号输入到A/D转换器,同时打开Y+和Y-驱动,然后再数字化X+的电压,从而得到当前Y位置的测量结果,同理,也可以得到X坐标的逻辑坐标。当得到X、Y的逻辑坐标后,通过SPI接口将数据传送给LM3S3748进行数据处理。其ADS7843的外部电路如图3所示。
1.4 RS232串口通信电路
RS232串口主要用于手柄控制器与核心板的通信,这类似于人机接口中的键盘接口。它们之间通过Modbus协议进行通信。其RS232串口通信电路如图4所示。
2 系统软件设计
2.1 触摸屏软件设计
ADS7843具有两种工作模式,分别为单端基准模式和差分基准模式。同时还可以对其进行12位或8位转换模式的选择。本设计采用差分基准模式和12位转换模式,即:
WriteCharTo7843(0xD0);∥送控制字10010000,
即用差分方式+12位转换模式,读X坐标;
……
WriteCharTo7843(0x90);∥送控制字11010000,
即用差分方式+12位转换模式,读Y坐标;
CPU采用中断方式对坐标进行读取。当未对屏幕进行触摸时,ADS7843的引脚PENIRQ为高电平输出,当对屏幕有触摸动作时,引脚PENIRQ变为低电平输出,每当CPU检测到这个引脚的下降沿时,系统进入中断读取坐标。其坐标值读取的流程如图5所示。当CPU在每一次获取逻辑坐标的过程中,实际上分别对X、Y坐标进行了11次读取,然后将读取到的逻辑坐标值分别存入两个数组,并且对这两个数组中的值进行冒泡排序,使其从小到大依次排列后,再去掉最大和最小的两个数值,并将中间值作为基准,余下数值与基准值进行求差的绝对值运算。设计中可设定一个阀值(此阀值可根据实验设置为5),如果绝对值大于阀值,则抛弃此值,最后将剩余数值求和平均,并将其作为最终逻辑坐标值。这就是流程图中“数据处理”所完成的功能。
系统中的主程序流程图如图6所示。其中触摸屏校准处理采用了一种较为通用的校准算法。由于电阻式触摸屏有一个共性,那就是电压成线性均匀分布,所以,只要求出逻辑坐标与物理坐标的比例系数,就可以实现逻辑坐标与物理坐标的转换。首先可确定5个物理坐标点。并依次在屏幕上用“+”显示,同时将其坐标值用数组Set_x[4]保存起来(以X坐标为例)。校准过程中读出的逻辑坐标值则用数组Read_X[3]存储。最后求出逻辑坐标与物理坐标的比例系数:
K1=(Read_x[1]-Read_x[0])/Set_X[1]-Set_x[0]);
K2=(Read_X[3]-Read_X[2])/Set_X[3]-Set_x[2]);
KX=(K1+K2)/2; ∥对两次运算的值求平均得到最终的X比例系数
求得比例系数后,再以设置的第5点作为基准点(Set_X[4]),这样就可求出任意触摸点的物理坐标:
X=(ReadX-Read_X[5])/KX+Set_X[4];
同理,也可求出Y轴的物理坐标。
2.2 Modbus通信协议
本系统采用Modbus作为手柄控制器与核心板之间的通信协议。Modbus通信使用主-从技术,即仅一设备(主设备)能初始化传输(查询),其它设备(从设备)根据主设备查询提供的数据作出相应反应,主机查询和从机回复的消息结构如图7所示。主设备可单独和从设备通信,也可以广播方式和所有从设备进行通信。如果单独通信,则从设备返回一消息作为回应;而如果是以广播方式查询。则不作任何回应。Modbus协议建立了主设备查询格式,包括设备(或广播)地址、功能代码、所有要发送的数据错误检测域。从设备回应消息也由Modbus协议构成,包括确认要行动的域、任何要返回的数据、和错误检测域。如果在消息接收过程中发生错误,或从设备不能执行其命令,那么,从设备将建立一个错误消息并把它作为回应发送出去。
Modbus协议有ASCII和RTU两种传输模式,但在同一个Modbus网络上的所有设备都必须选择相同的传输模式和串口参数。本设计采用RTU模式,即在消息中的每8 Bit字节都包含两个4 Bit的十六进制字符,因而在同样的波特率下,可比ASCII方式传送更多的数据。RTU模式的消息结构如图8所示。当手柄控制器检测到有按键被按下时,就将被按下键的键码按RTU消息帧的结构并通过串口发送给核心板。核心板接收到手柄控制器发送的信息后,首先进行CRC校验,校验正确后,核心板将根据键码进行相应操作,并且回应手柄控制器,若CRC校验出错,则核心板回应手柄控制器错误信息,从而完成一次通信后,系统便等待下一次通信。
3 结束语
本文所设计的人机接口通过实际使用证明其通讯稳定可靠,操作简单方便,完全可以满足医用数据采集系统的要求。并且该设计具有很强的移植性,可以根据使用系统的复杂性进行完善。因而具有相当广泛的使用范围。