微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 一种基于微加速度计的无线教鞭系统设计

一种基于微加速度计的无线教鞭系统设计

时间:07-22 来源:互联网 点击:

模拟四线制的SPI总线与nRF24L01连接,控制信号的接收与处理,接收的信号通过P0及其他控制端口传给USB接口芯片PDIUSBD12进而控制主机端光标的移动,其中nRF24L01无线射频模块是一款新型单片射频收发器件,工作于2.4GHz ISM频段,最高工作速率达2 Mbps,信号空中传输时间很短,极大降低了无线传输中的碰撞现象和电流消耗,该芯片融合了增强型ShockBurst技术,能自动处理字头和CRC效验码,使用方便。该芯片功耗低,在以-6 dBm的功率发射时,工作电流只有9 mA;接收时,工作电流只有12.3 mA,多种低功率下作模式(掉电模式和空闲模式),使节能设计更方便。

PDIUSBD12是Philips公司的一个性能优化的USB器件,通常用于基于微控制器的系统,并通过高速通用并行接口与微控制器进行通信,而且支持本地DMA传输。PDIUSDB12完全符合USB1.1规范,也能适应大多数设备类规范的设计,如成像类、大容量存储类、通信类、打印类和人工输入设备等。PDIUSBD12还集成了SoftConnect、GoodLink、可编程时钟输出、低频晶振和终端电阻等特性。所有这些特性都能在系统实现时节省成本,同时在外围设备上很容易实现更高级的USB功能。

3 系统软件设计

3.1 远端子系统软件设计

3.1.1 发送和接收模块

无线RF射频收发模块nRF24L01通过SPI总线连接用户端和主机端,在使用时要分别对其配置,用户端配置为发射模式,主机端配置为接收模式,并且要严格按照其数据格式及流程发送和接收数据。

3.1.2 微加速度计模块

1)寄存器中数据的重建

微加速度计ADXL345与微处理器之间通过I2C总线连接,它们之间的数据传输需要遵循I2C总线协议,寄存器0x32至寄存器0x37分别保存x、y、z轴输出数据,输出数据为二进制补码,DATAx0为最低有效字节,DATAx1为最高有效字节,其中x代表X、Y或Z。因为ADXL345为16位数据格式,从数据寄存器中获取加速度数据后,用户必须对数据进行重建。我们利用接口函数Multiple_read_ADXL345()多字节连续读取寄存器的数据,然后将高字节左移8位和低字节8位相或的方法对数据重建,且对我们来说,只需X和Z方向的加速度数据即可,程序如下:

ADXL345_DataReconstrution()

{ unsigned int Acceleration[2];

Multiple_Read_ADXL345();

Acceleration[0]=BUF[1];

ACCeleration[0]=(ACceleration[0]<<8)|BUF[0];

Acceleration[1]=BUF[5];

Acceleration[1]=(Acceleration[1]<<8)|BUF[4];

}

2)微加速度计ADXL345与普通鼠标精度的比较

现在市面上普通光学鼠标主流分辨率为400DPI,即每移动1英寸可反馈400个不同点的坐标,也即该鼠标的分辨率为25.4 mm/400=0.06 35mm。而ADXL345采用13位或10位的分辨率模式,此模式可以通过DATA_FORMAT寄存器(地址0x31)进行设置,除此之外,该寄存器还可以没置g的范围,有±2 g,±4 g,±8 g,±16 g,该教鞭选择10位模式,±2 g已经能满足对分辨率的要求,此时分辨率为4g/1024LSB=3.9mg/ LSB,我们是将采集到的加速度数据采用16进制数字方式存储在寄存器中,然后取出数据重建划分步长后,通过无线传送至接收端控制鼠标的移动,而USB鼠标报告描述中规定,若接收到的数据为1则移动一个像素,假设尺寸为300mm*190 mm的14寸显示器,分辨率设置为1 024*768,那么横向最小点间距为300 mm/1 024=0.293 0 mm,虽然这个数据没有普通光学鼠标高,但是对于一般教鞭已经足够,最重要的是我们可以通过软件设置步长,可以在教鞭微动的时候做出准确移动,在需要情况下大幅晃动教鞭能够快速将光标移动到屏幕边缘,符合人体工程学的要求,并且我们可以改变g值,分辨率模式及步长来自由调整教鞭的移动。设置的步长程序如下:

3.2 主机端子系统软件设计

图3为接收端主程序流程图,该接收端软件部分主要包括:PDIUSBD12固件驱动,USB设备的枚举过程。为了使软件可移植性强、易维护,采用分层的方法编写PDIUSBD12的驱动程序。USB驱动程序分成接口和设备控制驱动层、协议层和应用层。应用分层的方法编写的程序条理清晰,可移植性好。而USB HID类是比较大的一个类,HID类设备属于人机交互操作的设备。使用HID设备的一个好处就是,操作系统自带了HID类的驱动程序,而用户无需去开发很麻烦的驱动程序,只要直接使用API调用即可完成通信。所以我们将USB设备枚举成HID设备,这样就可以不用安装驱动而直接使用。USB设备的枚举过程实际上就是告知PC设备描述类型。当插入USB设备后,主机会向设备请求各种描述符来识别设备,包括5个标准描述符:设备描述符、配置

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top