0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于微加速度计的无线惯性鼠标的设计方案

li5236 来源:传感器门户网 作者:传感器门户网 2022-03-29 10:51 次阅读

摘要: 提出了一种基于微加速度计的无线惯性鼠标的设计方案。该方案以微加速度计ADXL213作为信号检测元件,并采用低功耗处理器MSP430F135和RF芯片nRF401进行信号处理与无线传输。按该方案设计的鼠标结构简单、密封性好,在降低鼠标功耗和提高鼠标使用灵活性等方面具有较大的应用前景。

1 引言

鼠标作为PC机的输入工具,其重要性不言而喻。但是,随着计算机外围设备的越来越多,各种连线也越来越多,给用户带来了许多的不便。于是,人们便有了无线接口的想法,迫切希望有一种鼠标,它能够克服诸如有线的距离限制、有线鼠标的线材损耗、连线多且错综复杂等问题。在这种情况下,无线鼠标应运而生。目前市场上的无线鼠标几乎都是光电射频鼠标,它虽然克服了有线的缺点,但在功耗、使用场合等方面仍然存在一些不足。

采用微加速度计设计的无线鼠标,既可以独立使用,作为桌面PC 的鼠标;同时也可以作为单独的模块嵌入到现有的机械鼠标和光电鼠标中,实现鼠标的悬空使用,方便用户的操作。该设计兼顾了设计成本与鼠标使用寿命,使得惯性鼠标具有相当大的竞争力。

2 系统硬件设计

2.1 信号检测电路的设计

ADXL213是一种低成本、低功耗、集成了信号调理电路和占空比调制器的微加速度计芯片。输出为PWM数字信号,因此可与计数电路或单片机直接接口,无须放大和A/D电路。用户只需外接三个无源器件就可以设置滤波器输出带宽和输出PWM波的周期。

ADXL213的典型带宽为1Hz~2500Hz,其-3dB带宽公式为:

可见,带宽主要由C(x,y)确定。C(x,y)越小,信号带宽越宽,分辨率越高,响应速度越快。设计时,首先要确定被测加速度的频率范围,然后再设计滤波器的参数。尽量使滤波器的带宽略高于信号的最高频率,这样做不仅有利于滤除高频干扰,也利于降低系统噪声干扰。

对于占空比的设计,占空比调制器(DCM)的周期就是芯片输出方波的周期T2。该周期是由RSEL确定的,其关系式为T2=RSEL/125MΩ(RSEL是用来设置输出信号循环周期的电阻)。当DCM输出方波频率大于模拟带宽10倍以上,测量准确度就很理想。从这一点来看,T2越小越好,但是T2的减小会提高对计数器以及微控制器的处理速度要求。另一方面,要提高测量的分辨率就应该尽量提高T2时间内的计数次数,这就要求计数器和控制器有更高的处理速度,而实际中硬件的处理速度是受到器件性能限制的。综上所述,T2是根据模拟带宽、计数器和处理器速度以及测量分辨率的要求共同确定的。在设计时要明确测量的指标要求,综合考虑各种因素。

本设计中要求被测带宽为20~50Hz,则选择滤波器的带宽为60Hz,选定T2为1.25ms,即DCM输出方波频率为800 Hz,该频率是测量最大频率的16倍,因此可以很好地反映加速度的变化。根据上述选择,可以计算出电阻RSEL为156KΩ,两个电容选用0.08μF。

对于鼠标的按键设计,主要是要考虑消抖。考虑到鼠标体积、功耗等要求,设计中采用软件延时方式来消抖。加速度计及鼠标的按键信号的处理由MSP430F135单片机来完成。

设计时应将鼠标响应的实时性放在第一位,而将鼠标的功耗放在第二位。加速度计需设置一个控制开关,以解决其一直有信号输出的问题(加速度计有零漂,鼠标倾斜等原因)。按键及加速度计与单片机的连接如图1:

图1 鼠标按刍及加速度计与单片机的连接图

2.2 无线模块的设计

图2 发送端的硬件电路图

图3 接收端的电路图

传输模块的关键是无线收发芯片。考虑到鼠标的体积和功耗等方面的因素,无线通信模块选用了Nordic公司的nRF401芯片。nRF401在工作时,只需要外接一个晶振和几个阻容、电感元件,基本无需测试。设计中,单片机通过异步串口与nRF401通信,然后再分别使用三个引脚作为nRF401的通信控制即可。外接晶体及阻容、电感等元件均按照nRF401推荐的典型参数值选取。发送端的硬件电路如图2。接收端的nRF401接收到数据后通过USB接口与PC机相连,接收端的处理器采用AT89C51,具体连接见图3。

为了获得较好的RF性能,PCB设计至少需要两层板来实现,分成射频电路和控制电路两部分来布置。nRF401采用PCB天线,在天线的下面没有接地面。为了减少分布参数的影响,PCB上应该避免长的电源走线,所有元件地线,VDD连接线,VDD去耦电容必须离nRF401尽可能地近。nRF401的电源必须经过很好的滤波,并且与数字电路的电源分离,在离电源脚VDD尽可能近的地方用高性能的电容去耦,最好是一个小电容和一个大电容相并联。PCB板顶层和底层最好敷铜接地,把这两层的敷铜用较多的过孔紧密相连,再将VSS脚连接到敷铜面。所有开关信号和控制信号都不能经过PLL环路滤波器元件和VCO电感附近。

2.3 USB接口硬件设计

鼠标与计算机的通信采用USB通信方式。USB控制芯片选择了PHILIPS公司的PDIUSBD12。PDIUSBD12与89C51的连接如图3,PDIUSBD12的8位并行数据接入89C51的P0口,地址线A15(P2.7)作为PDIUSBD12的片选,地址线A14(P2.6)作为PDIUSBD12的命令或数据的选择线。PDIUSBD12 与89C51的数据交换采用中断方式(外中断INT0)。PDIUSBD12从USB口得到信息后向89C51发出中断信号,89C51进入中断处理程序进行响应。

3 系统软件设计

3.1 信号检测部分的软件设计

信号检测部分软件设计的关键是计算加速度计输出信号的占空比,从而计算出加速度值。待机时,处理器工作在低功耗模式LPM3,从而降低整个系统的功耗。加速度计的输出信号接MSP430F135的比较/捕获模块的输入端,为了能精确测出输出信号的占空比,可利用MSP430F135中Timer_A的比较/捕获模块,令其工作在捕获模式,且让其在上升沿和下降沿都捕获。在上升沿时,捕获一个定时器数据,这个数据在捕获寄存器器中读出;再等下降沿到来,在下降沿时又捕获一个定时器数据;两次捕获的定时器数据差就是脉冲的宽度也即输出信号中高电平的宽度。

限于篇幅,这里仅给出X轴的信号检测部分的程序,分别用start和end记录上升沿和下降沿捕获时计数单元的值:

#include 《msp430x13x.h》

unsigned int start,end;

unsigned char overflow;

void main(void) {

WDTCTL=WDTPW+WDTHOLD; //关闭看门狗

P1DIR|=BIT0+BIT4; //P1.0设为输出

P1SEL|=BIT1; //P1.1为模块使用

CCTL0=CM0+SCS+CAP+CCTE0; //软件捕获,CCIOA

输入,允许捕获中断

TACTL=TASSEL0+TACLR+TAIE+MC1; // ACLK,连续计数模式,清除TAR,允许定时器溢出中断

_EINT(); //系统总中断

for(;;){ //低功耗模式3

_BIS_SR(CPUOFF+SCG1+SCG0);

_NOP();}}

interrupt[TIMERA0_VECTOR]void TimerA0(void) {

Switch(TAIV) {

case:2; //捕获中断

if(CCTL0&&CM0) //上升沿

{CCTL0=(CCTL0&&(~CM0))|CM1; //改为下降沿触发

star=TAR; //记录初始时间

overflow=0; } //溢出计数复位

else if(CCTL0&&CM1) //下降沿

{CCTL0=(CCTL1&&(~CM1))|CM0; //改为上升沿触发

end=TAR; } //用start、end和overflow计算宽度

break;

case 10; //定时器溢出中断

overflow++; //溢出计数加1

break;

default: break; }}

3.2 无线通信模块部分的软件设计

为了节能,nRF401大多数情况下应处于关闭状态。由于无线部分硬件不具备自动唤醒功能,nRF401由MSPF135根据加速度信号来唤醒。在通信模块的设计中,鼠标的功耗、响应的及时性和指针定位的准确性是要考虑的主要问题。鼠标的通信是一种非对称的单工通信,系统的功耗主要产生在鼠标主体部分即发送端。接收端由USB接口供电,可以一直处于接收监听状态,不影响系统的功耗,因此不需要设置同步码来唤醒接收端,可以在帧尾加上2字节的CRC校验来校验数据传输的正确性,提高抗干扰能力。

综上所述,通信帧格式采用了1字节地址加4字节有效数据信息再加2字节CRC校验的短帧格式。当CRC校验错误时,直接丢弃该帧。这样做虽然牺牲了数据传输的可靠性(数据传输的可靠性对鼠标来说并不太重要),却换来了整个系统功耗的降低和响应时间的加快。

程序设计时应注意:nRF401的通信速率最高为20kbit/s;发送数据之前需将发送端置于发射模式(TXEN = l),接收端一直打开。在待机模式,电路不接收和发射数据。待机模式转换为发射模式的转换时间至少2ms;待机模式转换为接收模式的转换时间至少3ms。

3.3 USB接口的软件设计

USB接口的软件设计部分包括接口外设端的固件程序、PC操作系统上的USB设备驱动程序和串行通信程序。固件设计的目标是使PDIUSBD12在USB上达到最大的传输速率。本方案的固件设计采用完全的中断驱动方式。当CPU处理前台任务时,USB的传输在后台进行,中断和主循环的数据交换通过事件标志和数据缓冲区进行。这样既保证了最佳的传输速率,又简化了编程和调试。固件结构如图4所示,图中箭头表示数据传输方向。

图4 固件结构和数据流向

固件中必须先定义命令和数据所在的地址:

unsigned char d12 _cmd xdata_at_0X7FFF;

unsigned char d12_data xdata_at_0X3FFF;

向PDIUSBD12发命令和对其进行读写的子程序:

void_wrt_cmd (unsigned char command)

{d12_cmd=command;} // 向PDIUSBD发命令

void wrt_data (unsigned char tmp_data)

{d12_data=tmp_data;} // 向PDIDUSBD写数据

void read_data()

{return (d12_data);} // 从PDIUSBD12读数据

PDIUSBD12命令接口包括了对PDIUSBD12读写操作的所有命令,通过定义若干个子程序对应于各自不同的命令。当固件中其它程序需要对PDIUSBD12进行读写时,只须调用其中相应的子程序。

本设计的驱动程序直接采用了通用的USB鼠标的驱动程序,因而可以在很大程度上简化软件设计。

4 结语

本文作者创新点:本设计按照低功耗系统的设计原则,利用加速度计和用户操作的灵活性来判断和检测鼠标的移动,设计了一种没有活动部件、机械传动机构和光电器件的密封性好的低功耗无线惯性鼠标。测试结果表明该无线惯性鼠标灵敏度达到了使用要求,很好地解决了现有无线鼠标存在的电池寿命低、使用场合不灵活等缺点,具有较大的应用前景。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 鼠标
    +关注

    关注

    6

    文章

    591

    浏览量

    39760
  • 光电器件
    +关注

    关注

    1

    文章

    178

    浏览量

    18511
  • 低功耗
    +关注

    关注

    10

    文章

    2398

    浏览量

    103680
收藏 人收藏

    评论

    相关推荐

    MEMS加速度计的工作原理是什么

    MEMS加速度计的工作原理主要基于牛顿第二定律,即力等于质量乘以加速度。以下是对其工作原理的介绍: 一、核心部件与结构 MEMS加速度计的核心部件包括一个微小的质量块、弹性元件(如弹簧梁)以及检测器
    的头像 发表于 11-20 10:09 486次阅读

    具有TLV2772的3V加速度计

    电子发烧友网站提供《具有TLV2772的3V加速度计.pdf》资料免费下载
    发表于 10-11 11:00 0次下载
    具有TLV2772的3V<b class='flag-5'>加速度计</b>

    EPSON工业级加速度计选型

    爱普生加速度计(Accelerometers)是一种工业级三轴输出压电式加速度传感器,采用具有专利技术的双音叉式石英传感器元件和Quarts光刻技术,通过压电效应来计算出诸如此类的内容物体运动的方向
    的头像 发表于 09-19 15:31 290次阅读
    EPSON工业级<b class='flag-5'>加速度计</b>选型

    ADXL355三轴加速度计手册

    电子发烧友网站提供《ADXL355三轴加速度计手册.zip》资料免费下载
    发表于 07-11 11:24 1次下载

    三轴加速度计LIS2DUX12开发(2)----静态校准

    零偏是影响加速度计输出精度的重要指标之一,零偏可分为静态零偏和动态零偏 。静态零偏也称为固定零偏,通常经标定与补偿减小静态零偏。动态零偏是由于加速度计自身的缺陷或环境因素(如温度、振动、电子干扰等
    的头像 发表于 05-17 15:27 1218次阅读
    三轴<b class='flag-5'>加速度计</b>LIS2DUX12开发(2)----静态校准

    纳光栅MOEMS加速度计的工作原理及仿真设计

    微机电系统(MEMS)加速度计以其体积小、功耗低、成本低等优势广泛应用在无人驾驶、地震检测等领域。
    的头像 发表于 05-17 09:33 1057次阅读
    <b class='flag-5'>微</b>纳光栅MOEMS<b class='flag-5'>加速度计</b>的工作原理及仿真设计

    三轴加速度计LIS2DW12开发(4)----测量倾斜度

    本文将介绍如何驱动和利用LIS2DW12三轴加速度计的倾斜检测理论和倾斜角测量方法。一般来说,这里描述的程序也可以应用于三轴模拟或数字加速度计,这取决于它们各自的规格。
    的头像 发表于 05-16 17:18 1074次阅读
    三轴<b class='flag-5'>加速度计</b>LIS2DW12开发(4)----测量倾斜度

    备受青睐的MEMS加速度计,更小尺寸、更低功耗、更智能

    电子发烧友网报道(文/李宁远)作为导航测量系列的基础元器件之一,加速度计是测量运载体加速度的器件。它被广泛应用于消费电子、工业自动化、汽车、航空航天等各个领域,能够为单一设备或者整个系统收集状态信息
    的头像 发表于 05-12 08:02 3384次阅读

    采用可调电热梁的近零刚度MEMS加速度计

    MEMS加速度计正越来越多地应用于各种移动和测试设备,以测量运动、冲击和振动。
    的头像 发表于 05-09 09:11 594次阅读
    采用可调电热<b class='flag-5'>微</b>梁的近零刚度MEMS<b class='flag-5'>加速度计</b>

    MEMS加速度计与MEMS陀螺仪的区别

    MEMS加速度计与MEMS陀螺仪是现代惯性导航系统中最常用的传感器。
    的头像 发表于 02-17 14:05 3301次阅读
    MEMS<b class='flag-5'>加速度计</b>与MEMS陀螺仪的区别

    一种聚合物压电MEMS加速度计设计方案

    MEMS加速度计通过微结构内发生的电容、电阻或电荷(压电)变化来检测机械加速度,现已成为仅次于压力传感器,应用量排名第二的MEMS器件。
    发表于 12-29 11:14 505次阅读
    一种聚合物压电MEMS<b class='flag-5'>加速度计</b>新<b class='flag-5'>设计方案</b>

    ADXL1001加速度计没有输出的原因?

    近期在使用ADXL1001加速度计时出现问题,具体表现为供电电压为5V时加速度计没有输出电压,所以我们无法判断是加速度计本身有问题,还是我们电路设计有问题,电路原理图如图所示,电源为15V,经
    发表于 12-29 07:05

    两轴加速度计和三轴加速度计的使用区别?

    有个问题请教一下:在静态测量的情况下,两轴的加速度计在测得X、Y轴上的加速度后,是不是就可以根据这两个值和重力加速度g算出Z轴方向的加速度,这样的话XYZ三个方向的角度也可以推导出来。
    发表于 12-29 06:06

    采集到的ADIS16477-2的imu数据,测试陀螺、加速度计的漂移非常大怎么解决?

    我现在采集到的ADIS16477-2的imu数据,测试陀螺、加速度计的漂移非常大,IMU是放在台面上镜子不动的。 下图第一排陀螺x、y、z的原始数据,第二排分别是5s钟平滑后的数据。 下图第一排
    发表于 12-28 07:25

    adxl356加速度计输出10g正常吗?

    adxl356加速度计输出10g,正常吗,分辨率80mv/g?
    发表于 12-27 06:50