基于nRF24L01+的智能车无线监控系统设计
2018-05-26赵耕云王佳马臣斌
赵耕云,王佳,马臣斌
(1.兰州工业学院汽车工程学院,甘肃 兰州 730050;2.北汽银翔汽车有限公司,重庆 401520)
前言
飞思卡尔寻迹智能车是嵌入式设计领域研究的对象。在智能车制作调试过程中广泛采用串口线配合上位机软件作为调试工具,这种有线调试工具在车模运行时使用极不方便。本文以第十一届恩智浦大赛电轨型智能车为研究对象,设计了一种基于nRF24L01+的无线监控系统。该系统可以在智能车运行过程中,通过无线通信的方式使上位机接收到车速、方向等智能车运行参数,解决了采用有线串口方式调试智能车的诸多不便,同时,该系统还可以实现上位机对智能车的遥控功能,实现遥控寻迹双工作模式,增加了智能车的趣味性。
1 系统总体方案设计
智能车以MC9S12XS128为主控制器,通过检测铝膜导引线的位置,由主控制器运算后控制舵机方向和电机转速,实现车模沿导引线路径自动寻迹。MC9S12XS128与STC89C52之间通过串行口通信,STC89C52将接收到的智能车运行状态参数通过nRF24L01+发送出去,同时,STC89C52也可将 nRF24L01+接收到的来自上位机的控制信息通过串口发送给XS128。在PC机端,上位机采用LabVIEW编写控制程序,通过nRF24L01+模块和USB转nRF24L01+模块,实现智能车运行数据的接收和控制信息的发送。图1为系统示意图。
2 硬件电路设计
2.1 车载端电路设计
nRF24L01+是一款工作在 2.4~2.5GHz世界通用 ISM 频段的单片无线收发器芯片,是一款真正的GFSK单片式收发芯片,内部集成通信协议,具有自动应答、自动重发功能。由于nRF24L01+集成了所有高速链路层操作,所以无需单片机硬件上一定有SPI口与其相连,51单片机通用I/O口模拟SPI接口即可。
为了实现对智能车的无线遥控和自动寻迹时运行状态参数的采集,采用STC89C52单片机和nRF24L01+模块设计无线收发控制模块。电路如图2所示,其中nRF24L01+的中断信号引脚接单片机外部中断0输入引脚P3.2,数码管用于显示 nRF24L01+的当前工作模式,方便观察调试。STC89C52单片机与智能车主控制器XS128之间通过串行口进行通信。
图2 无线收发控制模块电路图
2.2 PC端电路
图3 PC端电路模块
PC端采用USB转nRF24L01+模块,实现上位机与PC端nRF24L01+之间的数据收发,模块如图3所示。通过串口调试助手发送AT命令进行初始化设置,设置波特率9600,通讯频率2.400GHz,16位CRC校验,发送功率0dBm,空中传输速率2Mbps。
3 软件设计
3.1 XS128程序设计
智能车主控制器采用飞思卡尔MC9S12XS128单片机,当智能车处于自动寻迹模式时,XS128单片机主要进行路径信息采集、车速和行驶方向控制,同时将智能车车速和舵机方向数据通过串口发送给STC89C52单片机。当智能车处于遥控模式时,XS128接收由STC89C52通过串行口发送来的控制命令,执行相应动作,同时也将车速和方向数据通过串口发送给 STC89C52。经过分析可知,智能车加入遥控模式代码后,对原自动寻迹程序并无很大修改,仅通过条件判断,控制CPU运行选定的其中一种工作模式的代码即可。主程序流程如图4所示:
图4 XS128单片机主程序流程
3.2 STC89C52单片机程序设计
设计的无线监控系统具有两种功能:一是在车模自动寻线模式下,将车模行驶过程中的状态参数无线发送到上位机;二是在遥控模式下,对车模进行短距无线控制。车载端控制器STC89C52作为整个系统的核心,需要控制nRF24L01+实时发送智能车运行状态参数,又需要不断接收来自上位机的控制信息,故采用STC89C52控制nRF24L01+模块,使其工作于半双工模式。nRF24L01+初始化为发送模式,当发送完一包数据后,产生发送完成中断请求,在中断服务程序中将nRF24L01+切换为接收模式,主程序延时,等待接收中断信号产生。在此期间,若nRF24L01+接收到数据,则读取数据,并将 nRF24L01+切换回发送模式,若在主程序延时时间内nRF24L01+没有接收到数据,则在主程序中将nRF24L01+再切换为发送模式。半双工工作模式使nRF24L01+收发数据能够分时进行,互不影响。车载端nRF24L01+初始化设置与PC端的nRF24L01+初始化设置相同。STC89C52主程序流程如图5所示:
图5 主程序流程图
外部中断0中断服务程序流程如图6所示。
图6 外部中断0中断服务程序流程
4 上位机设计
图7 无线监控软件前面板
上位机软件采用 LabVIEW 编写。设计的智能车无线监控软件前面板如图7所示。前面板可以显示当前智能车的车速和方向数据。当车模处于遥控模式时,采用A、D、S、W、X等按键控制智能车的运行,并显示当前车模的状态信息。“VISA资源名称”控件用于选择PC端nRF24L01+所在的串行口。
软件的程序框图如图8所示:
图8 无线监控软件程序框图
5 结论
本文以STC89C52和nRF24L01+无线数传芯片为核心,采用 LabVIEW 编写上位机软件,为飞思卡尔电轨型智能车设计了一套无线监控系统,通过该系统可以实时获取智能车运行过程中的参数,方便调试,同时,通过对智能车主控制器XS128程序的少量修改,可以进行短距无线控制,实现电轨型智能车自动寻迹和遥控双工作模式。通过试验,该系统在30m范围内工作可靠,稳定性较好,满足智能车的调试需求。系统对原电轨型智能车的软硬件改变都很小,加装方便,具有实用性。
参考文献
[1] 韩毅,王畅,赵轩等.基于无线传输的智能车路径分析系统[J].微计算机信息,2008.
[2] 杨源飞,陆召振等.基于nRF24L01+及 LabVIEW的多实验室环境无线监测系统[J].中国仪器仪表,2014.
[3] 赵轩,马建,曹仁磊等.基于nRF24L01的无线式模型车运动状态监控系统[J].科技导报,2010.
[4] 丁媛媛.基于nRF24L01无线双向通信系统设计[J].常州工学院学报,2012.
[5] 施雅婷,郭前岗,周西峰.一种改进的 LabVIEW串口通信系统的实现[J]. 电子测试, 2010.
[6] 赵耕云,马臣斌. 电轨型智能小车的寻迹系统设计[J]. 兰州工业学院学报.2016.
[7] Gao Hong,Su Jianxiu. Design Of The Temperature Signal Wireless Receive And Display System On Polishing Interface In Chemical Mechanical Polishing[J]. Procedia Engineering.2011.