前言
在需要用户界面的应用方案中,传统的机电开关正在被电容式触摸感应控制所替代。
Sino wealth已经开发了一套触摸感应软件,使得任意一款8位的中颖微控制器都可以作为一个电容式触摸按键控制器使用。通过对由一个电阻和触摸电极电容组成的RC充放电时间的控制,该触摸感应软件可以检测到人手的触摸。由于电极电容的改变,导致的RC充放电时间的改变,能够被检测出来,然后经过滤波等,最终通过专用的I/O端口。
在BIOS设置中有关于是否更新微代码
Microcode Updation [Enabled] : Disabled/Enabled
MCU(Micro Control Unit)中文名称为微控制单元,又称单片微型计算机(Single Chip Microcomputer)或者单片机,是指随着大规模集成电路的出现及其发展,将计算机的CPU、RAM、ROM、定时计数器和多种I/O接口集成在一片芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。
1 RC感应原理
RC采样原理就是通过测量触摸电极电容的微小变化,来感知人体对电容式触摸感应器(按键、滚轮或者滑条)的触摸。
电极电容(C)通过一个固定的电阻(R)周期性地充放电。 电容值取决于以下几个参数:电极面积(A),绝缘体相对介电常数,空气相对湿度,以及两个电极之间的距离(d)。电容值可由下列公式得出:
图1:RC电压检测。
固定电压施加在 , 的电压随着电容值的变化而相应增加或者降低, 如图2所示。
图2:测量充电时间。
通过计算VOUT的电压达到阀值VTH所需要的充电时间(TC),来得到电容值(C)。 在触摸感应应用中,电容值(C)由两部分组成:固定电容(电极电容,CX)和当人手接触或者靠近电极时,由人手带来的电容(感应电容,CT)。电极电容应该尽可能的小,以保证检测到人手触摸。利用该原理,就可以检测到手指是否触摸了电极。
图3:触摸感应。
2 硬件实现
图4由R1,R2以及电容电极(CX)和手指电容(CT)并联的电容(大约5pF) 形成一个RC网络,通过对该RC网络充放电时间的测量,可以检测到人手的触摸。 所有电极共享一个“负载I/O”引脚。电阻R1和R2尽量靠近MCU放置。电容R1(阻值在几百欧到几兆欧之间)是主要电容,用于调节触摸检测的灵敏度。
图4:电容触摸感应实现实例。
3 软件实现
充电时间测量原理
为了保证健壮的电容触摸感应的应用,充电时间的测量需要足够的精确。
采用一个简单的定时器(无需IC功能)和一系列简单的软件操作,即定时地检查感应I/O端口上的电压是否达到阀值。
基本测量
使用普通定时器进行充电时间的测量。对电容充电开始之前,定时器的计数器数值被记录下来。当采样I/O端口上的电压达到某个阀值(VTH)时,再次记录定时器计数器的值。二者之差就是 充电或者放电的时间。
图5:定时器计数器值。
过采样
过采样的目的是以CPU时钟的精度,对输入电压达到高电平和低电平(VIH和VIL)的时间测量。 为了跨越所有的取值范围,每次测量都比上一次测量延迟一个CPU时钟周期的时间。 为了跨越所有的取值范围,测量的次数是和MCU核相关的。图6说明了这个概念的应用情况。
图6:输入电压测量。
输入电压测量的原理
为了提高在电压和温度变动情况下的稳定性,对电极会进行连续两次的测量:第一次测量对电容的充电时间,直到输入电压升至VIH。第二次测量电容的放电时间,直到输入电压降至VIL。下图以及以下的表格详细说明了对感应电极(感应I/O)和负载I/O引脚上的操作流程。
图7:电容充放电时间测量。
表2 电容充放电测量步骤
触摸的效果
电极的电容值(CX)取决于以下几个主要因素:电极的形状、大小,触摸感应控制器到电极之间的 布线(尤其是地耦合),以及介电面板的材料和厚度。因此,RC充放电时间直接和CX有关。图8说明了这种“触摸的效果”。 时间(即达到了VIH电平的时刻)比长;同样对于降至VIL电平的时间也比长。
图8:触摸效果实例。
多次测量以及高频噪声的去除
为了提高测量的精确度,并去除高频噪声,有必要对VIH和VIL进行多次的测量,然后再决定是否有按键被有效“触摸”。
图9:测量的种类。
注意:下图说明了去除噪声的实例。如果测量次数(N)设置为4,那么对一个电极的完整测量将包括4次正确的“连续组测量”(BGs)。
图10:实例1。
图11 显示了有一些噪声使得某些测量无效的情况(即r1和r2)。 在这个例子中,连续组测量BG3重复了好几次,直到其中的所有测量都有效,该次组测量才算通过。这样就需要较多的时间来完成一次完整的测量。
图11:实例2。
图12显示了有很多噪声,使得无效的组测量次数达到了最大限制(比如20)。这样的话,整个电极测量都无效。这个例子中,达到了无效的组测量次数的最大限制,因此停止对该电极的测量。
图12:实例3。