电荷转移感应按键设计说明书

2014-07-21 04:04吴文勇
中国新技术新产品 2014年8期
关键词:电荷转移

吴文勇

摘 要:本文主要讲述电容电荷转移理论,并根据此理论设计电荷转移电路,最终由电荷转移电路与倍压脉冲发生器实现电荷转移感应按键功能。此感应按键可应用于玻璃、塑料等作为面板的非接触式人机操作输入。

关键词:电荷转移;电容感应;容抗;倍压

中图分类号:TP21 文献标识码:B

概述

感应技术正在迅速地成为人机界面操作的媒介,人们在应用并享受这种全新的技术所带来的方便、美观、无机械寿命等好处。本文就个人研发的新型感应设计技术作详细说明。

一、电荷转移感应按键的组成

本文设计的感应按键模块有两部分组成,一部分是共用的倍压高频脉冲发生器模块,用于给另一部分电路提供高频的脉冲信号,另一部分是感应按键能量转移电路模块。每一路按键采用一个转移电路模块,例如产品设计两个按键,那么只要采用一个脉冲发器模块和两个感应按键能量转移电路模块,再结合带ADC转换功能的MCU即可。在目前电子产品中MCU是不可缺少的一部分,所以设计人员并不需要额外增加MCU,就可以完成他的设计。

二、电荷转移感应按键的原理

在说明原理之前我们先来了解一下电容,如图1所示:电压与IC的相量关系为:

其中:XC = 1/ωC,称为容抗,单位为 Ω(欧姆),容抗的倒数称为容纳BC = ωC,单位为 S。由(式-1)可见频率和容抗成反比, 也就是频率越高,容抗越小,如图2曲线所示。

ω→0 , |XC|→∞直流开路(隔直)

ω→∞,|XC|→0高频短路(旁路作用)

我们知道电容器的公式:

ε为极板与极板之间的介电常数

S 为极板面积

d 为极板与极板之间的间距

由此我们可以知道任何导体与导体之间都存在电容,如下图3、图4所示每个电极与电极之间都有一个很小的电容,同样的当手指与电极之间也存在电容。

手指越靠近电极,根据电容急

剧增大,当然再如何增大,电容值还是很小,约为十个PF。同时结合前面讲到的容抗与频率的关系,我们设计一个高频发生电路,使电极是一个相对手指高频变化的电压信号,根据

(式-1),手指与电

极之间产生电流。到此我的结论是:因为手指靠近电极,从而手指与电极之间产生一个耦合电容,因为电容的容抗作用使手指与电极之间产生电流,因为电流使得电极的电荷发生转移,根据电荷的转移理论,我们设计出感应按键能量转移电路模块。

三、倍压高频脉冲发生器

如图5所示,设刚开始PULSE电压为0V,则电源5V经过二极管D2向C4充电。经过 ( τ=RC)后,C4电压为5–VD2 (VD2为二极管D1或D2 PN结的正向压降,下同)。当PULSE由0V变为5V时,三极管Q2导通,三极管Q1截止,电压VA为5V+C4两端电压,得出VA=5+5–VD2。二极管D1截止,二极管D2导通,PULSE_OUT电压为10–2*VD2。当PULSE电压由5V变为0V时,三极管Q2截止,三极管Q1导通,PULSE_OUT电压变为0V。如此循环,可得PULSE_OUT脉冲电压为10–2*VD2,频率与PULSE相同。

四、电荷转移电路

电荷转移电路:如图6所示,在无手指情况下,当脉冲由低电平变高电平时,Ut经过C1,C2,D1,R1对C3进行充电;当脉冲由高电平变低电平时,C1,C2经过D2进行放电;放电后当脉冲又产生高电平时又经过C1,C2,D1,R1对C3进行充电,如此循环C3即可以得到稳定电压U0。当手指靠近电极时,如图7所示,此时人体与电极产生如图所示的电容Cx,电容容量在几PF到十几PF。此时当脉冲由低电平变高电平时,Ut除了通过C1,C2,D1,R1对C3充电外,还对Cx充电,所以Cx得到了一部分电荷。根据电路形式Ut提供给C3的电荷明显减小;当脉冲由高电平变为低电平时,Cx经过R3进行放电,所以脉冲电压Ut可以循环对Cx充电。也就是说每个脉冲周期都会转移一部分电荷到Cx,C3得到的电荷减少,电压U0降低。根据以上分析得出,当手指靠近电极时,U0电压将会降低。根据这个结论,MCU对U0进行AD采样并判断采样数据就可以知道是否有手指靠近,从而判断是否有按键按下,实现感应按键的目的。

五、软件设计

本软件设计采用AVR单片机ATmega16。AVR单片机的推出,彻底打破这种旧设计格局,废除了机器周期,抛弃复杂指令计算机(CISC)追求指令完备的做法;采用精简指令集,以字作为指令长度单位,将内容丰富的操作数与操作码安排在一字之中(指令集中占大多数的单周期指令都是如此),取指周期短,又可预取指令,实现流水作业,故可高速执行指令。

AVR单片机硬件结构采取8位机与16位机的折中策略,即采用局部寄存器 (32个寄存器文件)和单体高速输入/输出的方案(即输入捕获寄存器、输出比较匹配寄存器及相应控制逻辑)。提高了指令执行速度(1Mips/MHz),克服了瓶颈现象,增强了功能;同时又减少了对外设管理的开销,相对简化了硬件结构,降低了成本。故AVR单片机在软/硬件开销、速度、性能和成本诸多方面取得了优化平衡,是高性价比的单片机。

ATmega16有一个10位的逐次逼近型ADC。ADC与一个8通道的模拟多路复用器连接,能对来自端口A的8路单端输入电压进行采样。单端电压输入以0V(GND)为基准。器件还支持16路差分电压输入组合。两路差分输入(ADC1、ADC0与ADC3、ADC2)有可编程增益级,在A/D转换前给差分输入电压提供0dB(1x)、20dB(10x)或46dB(200x)的放大级。七路差分模拟输入通道共享一个通用负端(ADC1),而其他任何ADC输入可做为正输入端。如果使用1x或10x增益,可得到8位分辨率。如果使用200x增益,可得到7位分辨率。endprint

本设计主要采用Atmega16的ADC功能,选用8位分辨率采用方式,启用ADC中断功能。部分程序如下:

主程序:

void main(void)

{

// port initialization

// Watchdog Timer initialization

// Watchdog Timer Prescaler: OSC/128k

#pragma optsize-

//WDTCR=0x19;

//WDTCR=0x09;

#ifdef _OPTIMIZE_SIZE_

#pragma optsize+

#endif

ADC_init();

// Global enable interrupts

#asm("sei");

Get_sensor_standard();//大约需要1秒钟

while (1)

{

// Place your code here

}

ADC中断采样程序(采样多个感应按键):

interrupt [ADC_INT] void AD_INT(void)

{

register static unsigned char num; //采用register static 可以减少入栈及出栈时间,提高运行速度

//设置CD4051通道

PORTC &= 0x3e;

PORTC |= AD_CD4051_MUX1[Channel];

//感应按键采样

num = ADC_Sensor[Channel].ConvertNum;

ADC_Sensor[Channel].CacheValue[num] = ADCH;

if(++ADC_Sensor[Channel].ConvertNum >= DATA_NUM)

{

ADC_Sensor[Channel].ConvertNum = 0;

for(num = 0; num < DATA_NUM; num++)

ADC_Sensor[Channel].Value[num] = ADC_Sensor[Channel].CacheValue[num]; //完成一个通道采样

setbit(ADC_Sensor[Channel].State, AD_COMPLETE_BIT);//设置当前通道完成标志

}

//ADC通道循环

if(++Channel >= CHANNEL) Channel = 0;

// Start the AD conversion

ADMUX = AD_MUX[Channel];

ADCSRA|=0x40;

}

参考文献

[1]邱关源.电路[M].北京:高等教育出版社.

[2]Bruce Eckel.C++编程思想[M].北京:机械工业出版社.

[3]李火林,邓声南,甘筱青.数学模型及方法[M].江西:江西高校出版社.

[4]宁建国.AVR单片机原理及应用[M].北京:北京航空航天大学出版社.endprint

本设计主要采用Atmega16的ADC功能,选用8位分辨率采用方式,启用ADC中断功能。部分程序如下:

主程序:

void main(void)

{

// port initialization

// Watchdog Timer initialization

// Watchdog Timer Prescaler: OSC/128k

#pragma optsize-

//WDTCR=0x19;

//WDTCR=0x09;

#ifdef _OPTIMIZE_SIZE_

#pragma optsize+

#endif

ADC_init();

// Global enable interrupts

#asm("sei");

Get_sensor_standard();//大约需要1秒钟

while (1)

{

// Place your code here

}

ADC中断采样程序(采样多个感应按键):

interrupt [ADC_INT] void AD_INT(void)

{

register static unsigned char num; //采用register static 可以减少入栈及出栈时间,提高运行速度

//设置CD4051通道

PORTC &= 0x3e;

PORTC |= AD_CD4051_MUX1[Channel];

//感应按键采样

num = ADC_Sensor[Channel].ConvertNum;

ADC_Sensor[Channel].CacheValue[num] = ADCH;

if(++ADC_Sensor[Channel].ConvertNum >= DATA_NUM)

{

ADC_Sensor[Channel].ConvertNum = 0;

for(num = 0; num < DATA_NUM; num++)

ADC_Sensor[Channel].Value[num] = ADC_Sensor[Channel].CacheValue[num]; //完成一个通道采样

setbit(ADC_Sensor[Channel].State, AD_COMPLETE_BIT);//设置当前通道完成标志

}

//ADC通道循环

if(++Channel >= CHANNEL) Channel = 0;

// Start the AD conversion

ADMUX = AD_MUX[Channel];

ADCSRA|=0x40;

}

参考文献

[1]邱关源.电路[M].北京:高等教育出版社.

[2]Bruce Eckel.C++编程思想[M].北京:机械工业出版社.

[3]李火林,邓声南,甘筱青.数学模型及方法[M].江西:江西高校出版社.

[4]宁建国.AVR单片机原理及应用[M].北京:北京航空航天大学出版社.endprint

本设计主要采用Atmega16的ADC功能,选用8位分辨率采用方式,启用ADC中断功能。部分程序如下:

主程序:

void main(void)

{

// port initialization

// Watchdog Timer initialization

// Watchdog Timer Prescaler: OSC/128k

#pragma optsize-

//WDTCR=0x19;

//WDTCR=0x09;

#ifdef _OPTIMIZE_SIZE_

#pragma optsize+

#endif

ADC_init();

// Global enable interrupts

#asm("sei");

Get_sensor_standard();//大约需要1秒钟

while (1)

{

// Place your code here

}

ADC中断采样程序(采样多个感应按键):

interrupt [ADC_INT] void AD_INT(void)

{

register static unsigned char num; //采用register static 可以减少入栈及出栈时间,提高运行速度

//设置CD4051通道

PORTC &= 0x3e;

PORTC |= AD_CD4051_MUX1[Channel];

//感应按键采样

num = ADC_Sensor[Channel].ConvertNum;

ADC_Sensor[Channel].CacheValue[num] = ADCH;

if(++ADC_Sensor[Channel].ConvertNum >= DATA_NUM)

{

ADC_Sensor[Channel].ConvertNum = 0;

for(num = 0; num < DATA_NUM; num++)

ADC_Sensor[Channel].Value[num] = ADC_Sensor[Channel].CacheValue[num]; //完成一个通道采样

setbit(ADC_Sensor[Channel].State, AD_COMPLETE_BIT);//设置当前通道完成标志

}

//ADC通道循环

if(++Channel >= CHANNEL) Channel = 0;

// Start the AD conversion

ADMUX = AD_MUX[Channel];

ADCSRA|=0x40;

}

参考文献

[1]邱关源.电路[M].北京:高等教育出版社.

[2]Bruce Eckel.C++编程思想[M].北京:机械工业出版社.

[3]李火林,邓声南,甘筱青.数学模型及方法[M].江西:江西高校出版社.

[4]宁建国.AVR单片机原理及应用[M].北京:北京航空航天大学出版社.endprint

猜你喜欢
电荷转移
一例具有可逆热诱导电荷转移行为的二维氰基桥联WⅤ⁃CoⅡ配合物
我国首次“拍摄”到光生电荷转移演化图像
共轭单元调控三苯胺类敏化染料电子激发性质的计算研究
基于密度泛函理论对咔咯-吩噻嗪二元体激发态电荷转移的研究
从轨道作用角度研究S…π非共价作用结构特征
表面增强拉曼散射基底及机理的研究进展
考虑Duschinsky转动效应的电荷转移速率理论
染料敏化太阳电池新材料及规模制备研究2013年度进展报告
发光光谱研究不同粒径CdS量子点与钴肟分子间的电荷转移
常压微等离子体阳极与离子溶液界面的电荷转移反应