感应触摸式监测报警人机操作板的设计与实现

2018-10-20 06:57王梦迪张丽芸沈洪滨
关键词:人机电容按键

王梦迪, 张丽芸, 华 金, 沈洪滨

(上海船舶运输科学研究所舰船自动化系统事业部,上海200135)

0 引 言

随着触摸传感器技术的迅速发展,感应触摸式人机操作板在工业控制领域得到越来越广泛的应用。感应触摸式人机操作板采用感应触摸式按键,与传统的机械微动开关按键和塑料薄膜按键相比,没有任何机械部件,不会磨损,可靠性高,能降低后期维护成本。感应触摸式按键感应部分可放置在感应触摸式人机操作板面板的后面,起到防水防潮的作用。感应触摸式人机操作板所有按键的大小和形状可任意设计,面板外形美观时尚,可从根本上达到机械面板、薄膜面板和金属面板无法达到的效果。在舰船自动化领域:Konsberg公司的延伸报警模块采用电容感应触摸式按键;常熟瑞特公司的某电机集中控制系统应用触摸键盘。当前中国远洋海运集团有限公司的集装箱船上配置的航行灯信号灯板和甲板照明控制板均采用感应触摸式按键,提高了外观设计的灵活性和产品的品质。当前国内的监测报警人机操作板大多是由机械键盘、分立的应答消声按钮和蜂鸣器组成的,风格一致,整体不够美观,按键按钮没有背光调节功能。对此,本文结合实际应用情况,设计一款基于感应触摸式按键技术的监测报警人机操作板。

1 硬件设计

1.1 感应触摸式按键原理

感应触摸式按键在本质上是PCB板上一个面积稍大的覆铜焊盘,与四周结构组成感应电容,当人的手指直接或通过导电材料触摸该按键时,感应电容的值会发生变化,从而判断有没有按键操作。

感应触摸式按键被按下前后等效电容变化情况见图1。当人的手指没有触摸到焊盘时,PCB板上的焊盘与地面形成的感应电容值是一个固定不变的值CB,即总感应电容CS=CB。当人的手指触摸到焊盘时,手指会与该焊盘形成一个耦合电容CF,该耦合电容CF会叠加到焊盘与地面形成的感应电容CB上,从而改变感应电容值,即总感应电容CS=CB+CS。当人的手指脱离焊盘时,手指与该焊盘形成的耦合电容消失,即总感应电容CS=CB。当检测电路检测到的感应电容值达到设定的阈值CT时,认定操作触摸感应式按键有效,执行相应的指令,如点亮或关闭LED灯。

图1 感应触摸式按键被按下前后等效电容变化情况

1.2 感应触摸式按键解决方案

周立功公司推出的电容感应触摸式按键方案采用外围RC电路加软件检测技术,集成FIR滤波算法,利用MCU的GPIO口和内部定时器测量按键外部电容的变化。该方案虽然具有良好的抗干扰能力,但占用MCU的资源过多,浪费机器时间,对于低成本、运算能力较弱的MCU单元而言更为明显。ST公司推出的基于STM8系列8位通用微控制器平台的电容式触摸感应方案无需增加专用触摸芯片,也利用RC电路的充放电时间检测人体触摸带来的电容变化,实现电容式触摸感应功能,但该方案的灵活性不够,不适于多点触摸。

本文选用台湾通泰公司的感应触摸式按键解决方案。触摸键盘芯片选用TTP223Ton TouchTM(一款小封装单点电容触摸式按键检测芯片,以下简称“TTP223”);触摸鼠标芯片选用TTP229Ton TouchTM(一款多点电容触摸式按键检测芯片,以下简称“TTP229”)。这2款芯片无需外接其他电路,可达到稳定的触摸检测效果,触摸检测PAD的大小可依据不同的灵敏度设计在合理的范围内,并提供低功耗模式,具有自动校准功能[1]。

1.3 硬件架构设计

感应触摸式监测报警人机操作板由触摸键盘、触摸鼠标、监测报警、USBHUB和背光调节电路组成(见图2),能外接其他USB设备。监测报警能实现系统故障的报警,通过判断开关量输入值控制单元的状态控制蜂鸣器输出,系统报警时蜂鸣器响,消警时蜂鸣器关闭。此外,感应触摸式监测报警人机操作板还具有应答消声功能,并提供故障消息列表按键接口。

图2 感应触摸式监测报警人机操作板组成

MCU核心芯片选用NXP公司的LPC1768微控制器,具有功耗低、功能强、效率高和成本低等优点。LPC1768基于Cortex-M3内核,最高频率100 MHz,片内集成64 KB RAM、512 KB Flash、CAN控制器、SPI控制器、I2C控制器、USB控制器和以太网控制器等外设资源,无需外接其他专用芯片即可满足系统的各项功能和性能指标要求。

1.4 感应触摸式按键及背光调节

图3为感应触模式按键及背光调节电路原理图,TTP223仅支持单键有效,感应触摸式按键K1可直接与TTP223连接,无需增加其他外围器件。TTP223的输出模式见表1,TTP223的输出通过AHLB引脚选择高电平或低电平有效,通过TOG引脚选择直接模式或触发模式。图3中TTP223的输出配置为直接模式,低电平有效。OUT1直接连接到LPC1768微控制器,在没有按键操作时OUT1为高电平,当人的手指触摸到K1时OUT1为低电平,因此LPC1768微控制器直接读取GPIO值即可判断按键是否被操作。

图3 感应触摸式按键及背光调节电路原理图

表1 TTP223的输出模式

图3中,背光调节电路利用MOS管的导通原理,通过电位器接口输出可变化调光电压Vadj,当按键没有被触摸时,OUT1为高电平,1T1截止,1T2导通,GREEN灯点亮;当按键被触摸时,OUT1为低电平,1T1导通,1T2截止,RED灯点亮。

1.5 触摸鼠标

TTP229支持8键或16键,同时支持单键或多键有效,其中:8键为固定IO输出模式;16键需采用IIC通信。为方便PCB布线和简化应用程序,触摸鼠标电路(见图4)配置为固定IO输出模式,引脚TP8-TP15直接与LPC1768微控制器连接,S1-S4和S6-S9为感应触摸式按键。触摸鼠标由6×6感应触摸式按键矩阵构成,至少需5块TTP229芯片。LPC1768微控制器可直接读取GPIO值,判断感应触摸式按键是否被触摸。操作触摸鼠标是一个连续的过程,LPC1768微控制器读取到的GPIO值是连续变化的,在软件中需对触摸鼠标进行触摸路径分析。

图4 触摸鼠标电路

1.6 USBHUB

USBHUB选择SMSC公司专用的USB2.0高速HUB控制器USB2517芯片,实现USB2.0通信,向下兼容USB1.1通信,对外提供1路USB上行接口和多路USB下行接口,并对内提供1路下行接口控制I/O输出。采用EEPROM实现USBHUB的信息配置,采用专用电源控制芯片输出USB电源,通过USBHUB实现其他外接USB设备与主控计算机的USB接口的信息中转。

2 软件设计

感应触摸式监测报警人机操作板软件由基于时间触发设计模式的软件架构编写的调度器构成,通过调度器实现最简单的协作式多任务操作系统。调度器由不同任务之间共享的定时器中断服务程序,在执行多个任务时,可使用同一个调度器来完成。调度器中断响应函数是时间间隔为10 ms的“事件”,在调度器被任务中的“事件”触发之后,遍历任务块链表,根据任务的优先级执行需被调度执行的任务[2]。

根据“1.3”节中的硬件架构设计框图,感应触摸式监测报警人机操作板的软件主要由触摸按键和触摸鼠标组成,触摸鼠标的实现过程与触摸键盘基本一致,软件设计主要参考触摸键盘的实现过程。

2.1 感应触摸式按键的实现

由“1.4”节中的分析所知,LPC1768微控制器通过直接读取感应触摸式按键的GPIO值来判断按键是否被按下。感应触摸式监测报警人机操作板的部分按键会受到多击操作,即同一个按键在设定的时间内被连续2次或多次按下。本文在多击操作按键时,连续按下按键的有效时间间隔≤30 ms,该时间可根据用户的需求进行更改。单个感应触摸式按键单击或多击的操作过程见图5,这里多击设定最大为四击操作,当超过四击时重新从单击开始判定,主要分为以下10个过程:

1)定时读感应触摸式按键的GPIO值,判断按键是否被按下,若被按下,则执行过程“2)”,否则执行过程“10)”。

2)按键消抖处理,判断感应触摸式按键操作是否有效,若有效,则执行过程“3)”,否则执行过程“10)”。

3)判断感应触摸式按键操作是否是长按,若是长按,则为单击操作,执行过程“8)”,否则执行过程“4)”。

4)判断在设定的时间内感应触摸式按键是否还有被按下的操作,若没有,则为单击操作,执行过程“8)”;若有,判断按键被按下操作是否有效,若无效,则为单击操作,执行过程“8)”,否则执行过程“5)”。

5)在设定的时间内判断感应触摸式按键是否还有被按下操作,若没有,则为双击操作,执行过程“8)”;若有,判断按键被按下操作是否有效,若无效,则为双击操作,执行过程“8)”,否则执行过程“6)”。

6)在设定的时间内判断感应触摸式按键是否还有被按下操作,若没有,则为三击操作,执行过程“8)”;若有,判断按键被按下操作是否有效,若无效,则为三击操作,执行过程“8)”,否则执行过程“7)”。

图5 感应触摸式按键单击或多击的操作过程

7)在设定的时间内判断感应触摸式按键是否还有被按下操作,若没有,则为四击操作,执行过程“8)”;若有,判断按键被按下操作是否有效,若无效,则为四击操作,执行过程“8)”,否则执行过程“4)”。

8)将读取到的被按下感应触摸式按键的GPIO值和判定的操作状态(单击、双击、三击和四击)转换为USB键盘相应的键值,执行过程“9)”。

9)在程序中定义USB键盘事件数组,将过程“8)”中转换的键值与键盘事件数组对比,结果一致完成相应的USB键盘事件,然后LPC1768微控制器向USB端点写按键操作事件,执行过程“10)”。

10)单个感应触摸式按键操作流程结束。

2.2 触摸键盘枚举过程

触摸键盘和触摸鼠标都属于USB HID类设备,USB HID是用于管理和控制大多数计算机的人工输入设备。USB主机检测到USB设备插入之后,需对USB设备进行枚举,从设备中读取各种描述符信息,主机根据这些信息加载合适的驱动程序,从而知道设备的类别及如何进行通信等[3]。调试USB设备最重要的是USB设备的枚举过程,枚举也是USB设备通信的第一步,触摸键盘的枚举过程见图6。

1)USB主机检测到触摸键盘插入之后,先对触摸键盘进行复位,触摸键盘在总线复位之后的地址为0。USB主机可向地址为0的触摸键盘的端点0发送获取设备描述符的请求,触摸键盘收到该请求之后将设备描述符返回给USB主机。

2)USB主机再次对触摸键盘进行复位,进入设置地址阶段。USB主机向地址为0的触摸键盘的端点0发送设置地址的请求,USB主机会发配唯一的地址给触摸键盘。

3)USB主机从刚分配给触摸键盘的新地址中再次获取设备描述符。

4)USB主机获取配置描述符集合。配置描述符集合包括配置描述符、接口描述符和端点描述符等。接口描述符和端点描述符都不能单独获取,必须与配置描述符一起以集合的方式返回。

5)枚举过程结束,触摸键盘正常工作。

在USB规范中,除了规定必要的设备、配置、接口、端口和字符串描述符之外,USB HID还定义有报告描述符。报告描述符用来描述报告的结构及报告中数据的作用。USB主机可通过报告描述符分析出报告中数据的意义。USB HID设备是通过报告传送数据的,报告有输入报告和输出报告。输入报告是USB设备发送给主机的,如:USB鼠标将鼠标移动和鼠标点击等信息返回给计算机;键盘将按键数据返回给计算机等。输出报告是主机发送给USB设备的,如键盘上的数字键盘锁定灯和大写字母锁定灯的控制等。以触摸键盘的报告描述符为例,利用HID Descriptor Tool工具帮助建立和编写触摸键盘的报告描述符。

const uint8_t HID_ReportDescriptor[]={

HID_UsagePage(HID_USAGE_PAGE_GENERIC),//用途页选择为普通桌面页

HID_Usage(HID_USAGE_GENERIC_KEYBOARD),//集合用途用于键盘

HID_Collection(HID_Application),//应用集合

HID_UsagePage(HID_USAGE_PAGE_KEYBOARD),//选择用途页为键盘

HID_Usage Min(HID_USAGE_KEYBOARD_LCTRL),//最小的用途值,实际是键盘左CTRL键

HID_Usage Max(HID_USAGE_KEYBOARD_RGUI),//最大的用途值,实际是键盘右GUI键

HID_Logical Min(0),//数据的逻辑值,最小为0

HID_Logical Max(1),//数据的逻辑值,最大为1

HID_ReportSize(1),//数据域的长度为1个位

HID_ReportCount(8), //数据域的数量为8个

HID_Input(HID_Data|HID_Variable|HID_Absolute),//作为输入,属性为:Data,Var,Abs

HID_ReportCount(1),//数据域数量为1个

HID_ReportSize(8),//数据域的长度为8位

图6 触摸键盘的枚举过程

HID_Input(HID_Constant),//作为输入,属性为:Constant

HID_ReportCount(3), //数据域的长度为3位

HID_ReportSize(1),//数据域数量为1个

HID_UsagePage(HID_USAGE_PAGE_LED),//用途页为指示灯

HID_Usage Min(1),//用途最小值为数字键盘灯

HID_Usage Max(3),//用途最大值为滚动锁定键灯

HID_Output(HID_Data|HID_Variable|HID_Absolute),//作为输出,属性为:Data,Var,Abs HID_ReportCount(1),//数据域数量为1个

HID_ReportSize(5),//数据域的数量为5个

HID_Output(HID_Constant),//作为输出,属性为:Constant

HID_EndCollection,//关闭集合

};

在触摸键盘的固件程序中,数据的输入和输出只有满足上述报告描述符的格式要求才能完成。利用USB监控软件BUS Hound得到触摸键盘的枚举过程和数据传输过程见图7。

图7 触摸键盘的枚举过程和数据传输过程抓包

3 试制结果分析

感应触摸式监测报警人机操作板除了包含硬件电路以外,还包含操作面板、导光板和壳体。操作面板选用玻璃材料,面板表面喷涂油漆。导光板紧贴在感应触摸式按键焊盘上,由散光膜、光学级亚克力基板、围边遮光膜和反射膜组成。导光板利用光学级亚克力基板吸取从LED经反射膜发出的光并在光学级亚克力基板表面停留的原理,使光线射到各导光点时反射光扩散到围边遮光膜内破坏反射条件,从正面射出。反射光可通过疏密程度不一、大小不一的导光点,使导光板均匀发光。导光板必须紧贴在操作面板上,因此按键焊盘、导光板和操作面板之间不能有空隙,否则会降低按键的灵敏度。

感应触摸式监测报警人机操作板实物图见图8。经试验,通过2 000次感应触摸式按键操作,触摸键盘效果良好,触摸信号输出具有良好的重复性,能实现单击、双击、三击和四击功能。触摸鼠标能实现鼠标的基本功能,能判断单击、双击和平移等基本的触摸手势。感应触摸式监测报警人机操作板具有USBHUB功能,正面可接U盘、打印机等USB设备。

图8 感应触摸式监测报警人机操作板实物图

4 结 语

感应触摸式监测报警人机操作板利用触摸按键技术克服传统操作板容易磨损、外形单一的缺陷,实现触摸键盘、触摸鼠标、USBHUB、监测报警和背光调节功能的有效集成。运行结果表明,该感应触摸式监测报警人机操作板性能稳定可靠,产品外观灵活、品质较优,可成功应用在相关监测报警系统中。

猜你喜欢
人机电容按键
低压电容器电容值衰减原因分析及改造
基于有限状态机的按键检测程序设计
从内到外,看懂无人机
非触勿动 秒治键盘误触
水下无人机:解锁钓鱼新姿势
“人机大战”人类智慧遭遇强敌
未来深空探测中的人机联合探测
超级电容车的充电,有望几十秒内搞定吗?
浅谈电感和电容在交流电路中的作用
其实真的很简单教你轻松关闭WP8.1手机按键灯