APP下载

基于CC254x与STM32的惯性传感器无线传输系统设计*

2016-08-22陈元枝赵国如

传感器与微系统 2016年7期
关键词:惯性上位数据包

陈元枝, 孙 浩, 赵国如

(1.桂林电子科技大学 电子工程与自动化学院,广西 桂林 541004;2.中国科学院 深圳先进技术研究院 低成本健康重点实验室,广东 深圳 518055)

基于CC254x与STM32的惯性传感器无线传输系统设计*

陈元枝1, 孙 浩1, 赵国如2

(1.桂林电子科技大学 电子工程与自动化学院,广西 桂林 541004;2.中国科学院 深圳先进技术研究院 低成本健康重点实验室,广东 深圳 518055)

介绍了一种可用于体感游戏控制器的惯性传感器数据无线传输系统。该系统包括数据采集节点、蓝牙主从设备以及监测数据的上位机。系统软件采用中断方式对数据的收发实时处理。经测试,上位机和节点之间能够进行稳定的、可靠的数据包和配置命令的无线传输,采集到的惯性数据能够反映肢体运动姿态,可以应用于体感游戏控制器。

惯性传感器; STM32F407; 无线传输; 体感游戏

0 引 言

体感游戏是一种参与者通过肢体动作变化来操作的新型电子游戏。体感游戏不仅能够运动健身,而且它以实际动作操纵游戏人物,可玩性高,吸引力强,因此,受到广大玩家的青睐[1]。体感游戏控制器大多采用2.4 GBZ无线技术[2],而BLE4.0技术具有功耗小,便于与手机端连接,延展性强等优点,其在体感游戏控制器中具有很好的应用前景[3]。

本文在BLE4.0技术基础上,提出了一种数据包和命令无线传输的软硬件解决方案。此方案将节点采集到的加速度、角速度、磁力计值通过射频方式传输到PC,并分析生成波形显示出来,实验者做出的动作与产生的波形具有一致性。无线传感器节点中传感器的量程、采样率以及数据采集的开始结束命令均可以通过PC端配置。

1 系统硬件设计

1.1 硬件结构

整个系统主要由无线传感器节点,BLE4.0蓝牙主机模块和上位机组成。节点电路板捆绑于手臂部位以确保惯性传感器的三维坐标能随手臂的运动而变化。节点负责采集传感器加速度、角速度、磁感应强度的原始惯性数据,并通过无线射频方式传输给主机,同时也可以通过无线的方式接收上位机发出的传感器启动、停止、配置命令。如图1所示,节点主要由MCU、惯性传感器、从机模块(CC2540)、电源管理模块、充电电路组成。主机模块(CC2541)负责接收节点传输的惯性数据,实时发送到PC端,并且将PC端针对节点采集的启动、配置命令无线传输给从机。上位机的作用是对接收到的原始惯性数据进行分析,并生成对应的波形显示出来[4]。蓝牙主从机模块采用相同的硬件平台。

图1 系统硬件结构Fig 1 Structure diagrams of system hardware

1.2 硬件电路

节点电路如图2所示,MCU通过I2C总线方式与MPU9150进行数据传输。这种信息交换的方式具有接口线少、硬件电路简单、通信速率高等优点。I2C的时钟初始化通过相关寄存器灵活配置,简单易用[5]。MCU使用8 MBZ外部晶振,通过配置寄存器使得系统主频达到168 MBZ,使得代码执行速率更快。CC2540自身带有串行接口可以与MCU进行透传[6],这是最简单、最常见的通信方式。

图2 节点硬件电路Fig 2 Circuit of node hardware

CC2541主设备电路如图3所示,模块自带有32 MBZ的高频晶体振荡器和32.768 kBZ的低频晶体振荡器可分别用作系统主频时钟和睡眠时钟的定时。主机采用上位机USB供电,经过RT9013—33芯片5 V转3.3 V电路处理后给各单元供电。USB转串口电路用的是CH340G芯片[7],可以实现主机与上位机间的通信。外围电路还包括程序下载接口CC Debugger。

图3 蓝牙主设备电路Fig 3 Circuit of Bluetooth master device

2 系统软件设计

系统软件采用模块化的思想进行设计,具体分为节点数据采集,采集到的原始惯性数据通过射频方式发送,蓝牙主机接收从机传来的数据包并重新打包等步骤。整个系统的设计兼顾功耗和运算速率,利用MCU的中断系统按优先级高低顺序进行每一步的数据传输从而确保传输的实时准确性。

2.1 BLE协议栈

本设计通过使用TI公司提供的BLE4.0协议栈实现蓝牙设备之间的互联和无线数据的收发[8]。协议栈包含两个部分:主设备和从设备。主从设备建立连接的过程如图4所示,首先主设备发起扫描请求,扫描到正在广播的从机设备。若GAP服务的通用唯一识别码(UUID)相匹配,则主从机可以建立连接。之后,主设备发起建立连接的请求,从设备响应请求后两设备进入连接状态。

两设备连接上之后惯性数据和上位机命令按图5流程进行传输。主设备通过特定的UUID进行GATT数据服务的发现,发现数据服务后,主设备发送要进行数据操作的“特性”的UUID,从设备将此“特性”的句柄返回给主设备,主设备通过句柄进行应用数据的读取和写入操作。

图4 连接建立流程Fig 4 Connection establishment process

图5 惯性数据与命令包无线传输流程Fig 5 Wireless transmission process of inertial data and command packet

2.2 惯性数据包与命令格式

惯性传感器数据包包括三轴(X,Y,Z轴)加速度(ACC),三轴陀螺仪(GYR),磁感应强度(MAG)的原始数据,数据包格式如表1所示,PC端收到的数据包格式如表2所示。

MPU9150需要根据不同的应用场合设定不同的加速度、陀螺仪量程、采样率等。采样率的配置用陀螺仪量程用G表示,G=A,B,C,D,分别表示陀螺仪满量程范围±250,±500°/s,±1 000°/s,±2 000°/s;加速度量程用S表示,S=A,B,C,D,分别表示加速度满量程范围±2,±4,±8,±16gn;采样率的范围用R表示,R=A,B,C,D,分别表示10,50,100,150 BZ。节点采集惯性数据的开始和结束命令分别是STA和STO。这些配置都由上位机以命令包的格式发出,命令包格式如表3所示。

表1 传感器数据存放格式Tab 1 Sensor data storage format

表3 上位机命令包Tab 3 Command packet of upper PC

2.3 蓝牙主从设备软件设计

CC2541通过串口与PC端通信,串口波特率设置为115 200 kbs,数据位8个,停止位1个,无奇偶校验位。主从设备按图4流程先建立连接进入连接状态后,数据的传输按图6(a)流程进行。主设备采用串口中断的方式发送命令包,当CC2541串口收到命令包时,调用无线发送函数,将数据包丢给从设备,从设备采用轮询的方式接受数据包。若上位机发出的命令为STA,则节点开始惯性数据采集;若发出的命令为STO,则结束采集。

2.4 节点软件设计

流程图如图6(b)所示,系统进行一系列初始化后,MCU进入待机模式。惯性数据的采集使用定时器中断方式。定时器计数值和传感器量程通过串口中断方式配置,本文中节点的串口中断优先级高于定时器中断优先级。节点MCU的串口接收到的采样率大小、量程范围、命令包格式如表3所示。节点收到上位机开始命令后,开启定时器中断,数据采集开始。采集到的惯性数据,包长为30个字节(如表1)。主从设备无线传输的数据包长度超过了20个字节,软件设计中采取分包发送的方式,分为两个包,每个包各15个字节。主设备收到数据包后将两个包合成一个包(如表2)传给PC端,完成一次节点到PC端的惯性数据包传输。

图6 主/从设备软件流程和节点软件流程Fig 6 Software process of master/slave device and software process of node

3 系统测试结果

上位机通过对惯性数据包分析,并生成对应的波形和实时的数据统计表。系统测试分为对蓝牙实际传输距离和对惯性数据包准确率的测试(篇幅所限文中只对加速度进行分析)。测试地点选在空旷的地方,使用深达威公司的SW80激光测距仪测量传输距离,测量精度为±1 mm,测量范围为0.2~80 m。经多次测量发现主从机距离在8.327 m以内时数据包能实现稳定的收发。

在臂部动作惯性数据传输实验中,本文中MPU9150根据游戏情节(如:左急转,缓慢往左转,静止)配置传感器采样率为50 BZ,加速度量程为±2gn,陀螺仪量程为±250°/s。图7是节点捆绑于手臂后处于静止,缓慢左移,快速左移时,上位机捕获到的三轴合加速度的变化。根据图中波形可以看出与实际动作相符,可以将这个系统设计应用到体感游戏中。

表4~表6分别是X轴垂直向下、水平和向下倾斜45°时,上位机软件捕获到的各轴加速度和合加速度的瞬时值、最小值、最大值和平均值。当X轴垂直向下时,X轴的理论加速为+1gn,实际测得平均加速度为+0.975 3gn,相对误差为2.44 %;当X轴处于水平状态时,X轴的理论加速度为0,实际测得平均加速度为+0.017 6gn,相对误差为1.76 %;当X轴45°向下倾斜时,X轴的理论加速为+0.707 1gn,实际测得平均加速度为+0.693 8gn,相对误差为1.88 %。传感器采集到的数据和理论值相对误差很小,可以表明蓝牙在一定距离内无线传输具有良好的可靠性。

图7 手臂摆动时合加速度变化图Fig 7 Diagrams of changes in resultant acceleration when arm is swinging

数据类型瞬时值/gn最小值/gn最大值/gn平均值/gnAcc-X0.97560.86821.01220.9753Acc-Y-0.0156-0.02100.32080.0003Acc-Z-0.0601-0.09130.0273-0.0563Acc-V0.97760.92561.01320.9771

表5 X轴水平时加速度数据表Tab 5 Acceleration data when X-axis is horizontal

4 结束语

在整个通信过程中,使用低功耗蓝牙技术,极低的运行和待机功耗使得设备使用时间得到延长。蓝牙技术联盟在制定蓝牙4.0规范时加入自适应调频技术,最大程度减少了同频段其他信号的干扰,确保数据传输的可靠性,而且可

表6 X轴向下倾斜45°时加速度数据表Tab 6 Acceleration data when X-axis is inclined downward at 45 °

以实现快速启动,主从机瞬间连接。蓝牙通信的缺点是传输距离短,此次系统测试中在确保数据包传输正确前提下传输距离只能达到8.327 m。但是蓝牙4.0已经被大多智能手机所支持,可以通过手机网络增加相关蓝牙产品的覆盖距离,开辟全新的网络服务。

[1] 车立军,孙 峰.3G时代体感游戏的发展思考[J].电信技术,2011(11):55-56.

[2] 沈晓峰.基于2.4 G无线传输的人机交互智能遥控器设计[D].杭州:杭州电子科技大学,2013:2-3.

[3] 郭 壮.无限延展的蓝牙技术—蓝牙世界大会在中国上海召开[J].微电脑世界,2013(5):104-105.

[4] 张 玲,李磊民,黄玉清.蓝牙无线传感器网络在谷仓监控中的应用[J].传感器与微系统,2008,27(5):112-113.

[5] 王国杰.基于惯性传感器的跌倒防护气囊系统的研究[D].武汉:武汉理工大学,2014:37-40.

[6] 陈子龙,张红雨,李俊斌.CC2540和SHT11的无线温度采集系统设计[J].单片机与嵌入式系统应用,2013(4):41-44.

[7] 袁 霞,罗克露.STM32和CC2520的智能家居系统网关设计[J].单片机与嵌入式系统应用,2013(5):71-73.

[8] 欧阳俊,陈子龙,黄宁淋.蓝牙4.0BLE开发完全手册—物联网开发技术实战[M].北京:化学工业出版社,2014: 213-217.

孙 浩,通讯作者,E—mail:15062279557@163.com。

Design of inertial sensor data wireless transmission system based on CC254x and STM32*

CHEN Yuan-zhi1, SUN Hao1, ZHAO Guo-ru2

(1.School of Electrical Engineering and Automation,Guilin University of Electronic Technology,Guilin 541004,China;2.Institute of Biomedical and Health Engineering,Shenzhen Institute of Advanced Technology,Chinese Academy of Sciences,Shenzhen 518055,China)

A kind of inertial sensor data wireless transmission system which can be used in somatosensory gaming devices is introduced.This system is composed of three parts which includes data acquisition node,Bluetooth device and upper PC for monitoring data.System software uses interrupt mode to send and

ata and real-time process data.After testing,the results show that data packet and command can be transmitted wirelessly,stably and reliably between upper PC and node,collected inertial data can reflect moving attitude of limb,it can be applied to body feeling game controller.

inertial sensor; STM32F407; wireless transmission; somatosensory game

by serial port of PC

字节1~3字节4~9字节10~15字节16~21字节22~37MPUACC_X_LGRY_X_LMAG_X_LPITCH_LACC_X_HGRY_X_HMAG_X_HPITCH_HACC_Y_LGRY_Y_LMAG_Y_LROLL_LACC_Y_HGRY_Y_HMAG_Y_HROLL_HACC_Z_LGRY_Z_LMAG_Z_LYAW_LACC_Z_HGRY_Z_HMAG_Z_HYAW_H

10.13873/J.1000—9787(2016)07—0103—04

2015—10—13

国家自然科学基金资助项目(51105359); 深圳市重点实验室提升项目(JCYJ20130401170412293)

TN 919.7

A

1000—9787(2016)07—0103—04

陈元枝(1968-),男,吉林省长春人,博士,教授,主要研究方向为传感器检测、图像处理等。

猜你喜欢

惯性上位数据包
二维隐蔽时间信道构建的研究*
冲破『惯性』 看惯性
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
SmartSniff
特斯拉 风云之老阿姨上位
无处不在的惯性
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
以新思路促推现代农业上位
无处不在的惯性