一种基于STM32的嵌入式低功耗无线手持控制器设计
为22μA,无论是收发模式还是待机模式,电流消耗都远低于上述其余无线通信方式。无线通信模块电路原理图如图3所示。
2.3 锂电池管理
BQ2057C是美国TI公司生产的先进锂电池充电管理芯片,该芯片集成了电压电流调节器、电池温度监测、充电状态指示等多种功能,外围电路简洁,十分适合本系统的应用需求,电路如图4所示。
3 无线手持控制器软件设计
手持控制器的软件开发采用C语言Keil MDK集成开发环境,它集编码、编译、仿真、下载、调试功能于一体,极大提高了软件开发效率。
根据控制器的功能将软件划分为如下六任务:系统初始化、电源管理、指令处理、nRF24L01收发、LCD显示、键盘扫描,如图5所示。
除系统初始化外,其余的任务在调度器的管理下,按照各自的优先级和执行周期循环运行,模块间通过全局的数据缓冲区进行通信。各任务的主要属性如表2所示。下面对其中较为重要的nRF24L01收发和指令处理任务进行说明。
3.1 nRF24L01收发任务
nRF24L01收发任务位于控制器和驱动系统无线通信的数据链路层,它将指令缓冲区中打包好的帧通过nRF24L01发送出去,并且将nRF24L01接收到的数据送入缓冲区,由指
令处理任务进行解析。
手持控制器和驱动系统之间的通信是半双工的,因此nRF24L01收发任务需要根据通信状态正确配置nRF24L01的工作模式,从而控制其收发数据。nRF24L01内部通过应答和重发功能实现了数据链路层的可靠通信,这极大的方便了用户应用层程序的编写。nRF24L01收发任务采用了时间触发的状态机方式实现,状态状态转移图如图6所示,状态机执行周期为20 ms。
3.2 指令处理任务
指令处理任务位于控制器和驱动系统无线通信的应用层,将用户的操作打包成帧送入指令缓冲区,并且从nRF24L01收发任务送入指令缓冲区的帧中提取出数据,更新LCD显示。指令处理任务的运行方式为周期执行+事件触发,前者指每隔10ms刷新一次LCD上机械手XYZ坐标并且处理一次编码器数据,如果编码器数据有变化则将变化量打包成帧,后者指用户通过按键进行机械手工作模式切换、机械手急停等操作,这些操作不经过指令处理任务而是由按键扫描任务直接将指令打包送入指令缓冲区,确保尽快由nRF24L01收发任务将指令发送出去,以提高实时性。指令处理任务流程图如图7所示。
4 测试结果
首先对设备通信(默认无线方式)可靠性进行了测试。根据表3的测试结果和实际使用效果,本设备通信稳定可靠。
注:本设备正常使用时和显微驱动系统距离约30 cm,测试时间90 s,通信速率2 Mbps。
其次,功耗测试结果如表4所示,设备待机和工作时间可满足用户的使用要求。
5 结论
随着机械、控制、微电子、嵌入式和无线通信等技术的发展,使得显微注射操作从人工化进入自动化时代。本文开发的手持控制器,通过电池供电和无线通信的方式,替代了原实验系统中有线控制器,消除了通讯线、电源线的连接给用户带来的不便以及不可靠因素。增加了LCD显示功能,方便用户实时监控实验系统状态及参数。测试结果表明:本设备功耗低、可靠性高、操作简便,具有较高的实用价值。
STM32 无线通信 低功耗 手持设备 显微实验 相关文章:
- STM32学习笔记:在IAR中建立FWlib 3.0项目(08-13)
- 基于STM32单片机的火控系统信号采集测试(11-14)
- 基于LabVIEW的STM32调试平台设计(11-17)
- 基于STM32的LF RFID识别系统设计(11-25)
- STM32中断与嵌套NVIC快速入门(01-25)
- 基于TLC5947的旋转LED屏显示控制器设计(01-25)