靳祖光
胜利油田中心医院 医学装备部,山东 东营 257100
现如今,医用脚踏开关在医院的各个科室中应用十分广泛,特别是用于采集图像相关的环境中,但现有医用脚踏开关存在控制功能单一、控制对象单一等缺点[1]。例如:传统脚踏只能完成采图功能,录像等功能还要去手动点击鼠标进行操控[2];某些采图软件并不自配脚踏,只能单纯通过鼠标、键盘进行人机交互。HID(Human Interface Device)规范是一类用于人机交互的USB协议,其特点是即插即用,每次传输数据可以携带小量或中量的数据,即可以通过移动鼠标或点击键盘上的某个组合键等直接将预期的操作信息一次性打包传送给上位机进行处理[3]。
本文针对传统脚踏存在的问题展开研究,基于HID规范研制了一种新型脚踏控制器,可以人为定义脚踏所完成的功能,可以对接不自配脚踏的软件,使脚踏应用范围更加广泛,同时更好地释放医护人员的双手以完成其他更重要的工作。
本文设计的控制器位于医用脚踏和医用主机之间,其主要作用是将医用脚踏所产生的5 V高电平信号转化成所需功能的HID规范下的信号[4-5],然后通过USB传至医用仪器的主机上,从而完成操作人员下达的任务。
控制器主要包含两部分:① 主控模块,选用STC12C5A60S2单片机作为该模块的核心,其处理速度为传统8051 MCU的8~12倍[6],含有两组串行输入输出引脚,成本低廉,运行稳定,可以非常迅速地接收脚踏开关的电信号,并通过KeilC环境中的预编程序将电信号转换成对应的操作代码;② HID标准输出模块,选用UTS2210模块,其优点在于同时具备串口UART收发引脚和USB输出口,即可直接将单片机中传输送过来的操作代码规范化成HID标准信息[7]。该设备通过USB接口的方式连接至医用主机,不需外挂其他转换芯片和模块,其中USB接口的GND和VCC端为控制器提供+5 V供电[8],D+及D-端为控制器提供双向通讯接口。控制器的总体构建方案如图1所示。
图1 控制器系统方案简图
控制器软件在KeilC环境下编写,烧录在STC12C5A60S2中。软件主要分为4个模块:初始化、信号采集与去抖、识别与转换、UART发送。程序执行的流程图如图2所示。以下对控制器软件的4个模块进行简述。
图2 控制器软件执行流程图
(1)初始化。在硬件正确连接并启动后,UTS2210首先进入初始化状态,延时3~5 s进行上位机识别,初始化中UTS2210的Rdy处于低电平状态[9]。在这一过程中,STC12C5A60S2会对Rdy进行循环检测,当检测到Rdy拉至高电平时,即认为初始化程序执行完毕。
(2)信号采集。脚踏开关的一端接在+5 V高电平上,另一端接在STC12C5A60S2其中的一个引脚上[10]。当操纵人员踩压脚踏开关时,该引脚就会接收到高电平信号,随后程序会进入2 s的计时区间。由于踩踏中会存在一些极短时间的开关抖动,所以采集中还要加入去抖动信号程序[11-12],以方便后续对踩踏方式进行正确地识别。
(3)识别与转换。本文采用双板脚踏进行测试,并定义三种踩踏的方式:短时单踩踏、短时双踩踏和长时踩踏。在计时区间内采集到一次稳定的高电平转低电平的下降沿判定为短时单踩踏;计时区间内采集到两次稳定的下降沿判定为短时双踩踏;计时区间内一直为高电平则判定为长时踩踏。判定过程中,同时还对是哪一块踏板开关产生的信号进行判断。判断后,程序随即将信息变量赋值为与踩踏动作对应的HID Usage ID[13-14],完成自定义功能,并进入下一步骤。与前两种踩踏方式不同的是,长时踩踏在结束后还需对信息变量进行再次赋值并执行下一步骤,以示动作结束。
(4)UART发送。STC12C5A60S2的TXD1与RXD1引脚分别连接至UTS2210的RXD和TXD引脚上[15]。通过该组引脚,以UART串口的方式程序将信息变量以2字节的形式发送给UTS2210,再由UTS2210内部将信息HID规范化,最后发送至医用主机。此步骤执行后,程序跳转至步骤(3),重新对脚踏信号进行采集。
对于UTS2210而言,通过UART接收到STC12C5A60S2发送的HID Usage ID需定义为2个字节,可包含全按键、组合键、鼠标移动、绝对坐标定位等信息[14]。按发送的先后顺序定义双字节分别为:字节0和字节1。其中,字节0包含快捷键组合信息,需满足图3中的规范,其中Bit7须赋值为0,其他位如果需要自定义则赋值为1,反之为0。字节1为HID Usage ID,包含各种按键及鼠标移动信息,每类按键的具体 ID 请参考 USB Device Working Group 定义的国际标准 HID Usage Tables库[16]。最后,定义0X00为释放所有组合键或按键的结束符。
图3 基于HID规范对字节0的要求
例如,实现需求功能的键盘手动操作形式为“组合键(Ctrl+Shift+C)+组合键(Ctrl+A)+F8”,若用该医用脚踏控制器实现,在KeilC环境下编程,STC12C5A60S2须向UTS2210发送以下代码:
基于上文阐述,本文已研发并制作出该脚踏控制器,并进行实验。实验分为两组,分别采用单脚踏开关和双脚踏,两组交替轮换,在不同环境下的彩图软件中进行测试,测试地点包含鼻咽喉镜室、胃镜室、骨密度室和小儿支气管检查室。设定短时单次踩踏为采图,长时单次踩踏为录像,针对各个检查对象不同,按需求由医护人员自行选用上述功能,每个脚踏每个地点测试时间为10天,每天抽取5组检查结果进行正确次数统计,每组结果按实际情况含若干图像,若使用组数不达标则剩余组数顺延增添到第二天进行抽取。实验照片和测试数据如图4及表1所示。
图4 实验脚踏开关及软件示意图
表1 脚踏正确率实验统计
图4b共9张图,第1张由于主机系统与软镜端没有正确连接引起采图失败,并不是控制器本身的问题,其余8张为测试成功的数据。本实验共测试400组数据,其中测试成功392组,出现问题的有8组数据。出问题的数据包含脚踏及系统本身所致的问题[1-2],还有操作者在控制器开启的5 s初始化时间内进行采图而出现问题。综上各方面因素统计,此次实验成功率为98%,运行基本稳定,达到了预期设计效果。
本文主要概述了一种基于HID规范的可定义功能的多用途医用脚踏控制器的研制,通过连接此控制器可以使医用脚踏开关对接更广泛的使用对象,根据需求定义更丰富的功能,不占用医护人员的双手从而使其并行更多的任务。该单脚踏开关已在鼻咽喉镜检查室中使用近一年时间,运行稳定,控制器本身未出现报错现象,节省了医务人员劳动力,成本低廉,可推广使用。