0 引言
智能车又称轮式机器人,是集传感器、计算机、自动控制、通信以及机械等技术于一身的综合系统。在智能车的设计和制作过程中,控制算法调试是一个极其重要而又关键的环节,面临着许多急需解决的问题:智能车能否按照事先设计的思路运行;控制策略是否符合实际需求;运行中出现问题时,智能车的各项实时参数是什么。针对这些问题,许多学者提出了基于仿真的解决方案。有学者提出基于参数化的机械系统几何模型,使用拉格朗日方法建立系统动力学方程,来对虚拟机械系统进行动力学分析。但由于车辆机械结构的复杂性,这种建模和仿真方式过于繁琐,影响了仿真和研究的效率。清华大学针对全国大学生智能车竞赛开发的PlaSTid仿真平台,其动力学模型虽然较为简单,但该模型是一种理想化的模型,对于影响智能车运行状况的一些参数的考虑较少,例如小车与路面之间的摩擦系数、小车的机械性能等因素,因而仿真结果与实际存在一定差距。有学者提出一种智能车硬件在环仿真系统,该仿真系统发挥了硬件在环的长处。但该软件仍以虚拟仿真平台LabVIEW为基础,控制算法的分析和决策在上位机上运行,脱离了车模实体的软件运行环境,其仿真结果与实际也存在一定的差距,因此其应用有相当的局限性。
笔者设计了一种基于无线通信技术的智能车运行状态实时监控系统。该系统以车模为实验主体,车载控制器完成智能车的数据采集、分析、决策等。上位机通过无线通信技术获得车模的各项运行参数,监控车模的运行状态。
1 系统总体设计
1.1Zigbee技术分析
Zigbee技术是一种近距离、低功率、低成本的双向无线通信技术[5-6],工作频段为全球通用频段2.4 GHz,数据传输速率为10~250 kbit/s,免执照。Zigbee协议由应用层、网络层、数据链路层和物理层组成,其中物理层和链路层遵循IEEE802.15.4协议。一个Zigbee网络支持255个设备;采用先进的AES128加密算法,提供数据完整性检查;具有载波侦听多路访问、冲突检测(CSMA/CA)方式,有很好的兼容性。Zigbee定义了3种类型的节点设备,分别是协调器、路由设备(FFD)和终端设备(RFD)。
Zigbee网络由这3种设备组成,但必须包括1个协调器,而且只能有1个协调器。协调器是整个网络的中心,它负责网络的组建、网络节点的管理、网络节点信息的储存,寻找节点之间的路由消息,不断地接收信息。路由设备也担当着协调器的作用,负责其他的路由器或终端设备入网,拓展网络范围;终端设备是实现具体功能的单元[7].Zigbee网络可以实现星型、树型和网状型多种拓扑结构。
赫立讯公司的IP-Link产品是集射频收发器、微处理器、多拓扑网络功能于一体的无线通信模块。
IP-Link1200 模块内含AVR 微处理器,符合开放IEEE802.15.4协议的2.4 GHz免执照ISM频段的射频收发器,可以组成任意的网络拓朴。因此,IP-Link1200是一款完全满足智能车测控系统要求的无线通信模块。
1.2 监控系统的组成结构
为了能对多个智能车的运行状态实行在线监控,系统采用星形拓扑结构。该系统的网络节点分为协调器节点和终端节点,其中协调器与上位机相连,终端节点嵌入智能车。
上位机(即PC 机)与下位机(智能车)采用无线通信。下位机采集智能车的行驶速度以及路况信息,判断智能车的行驶方向,并计算出下一步的行动数据。同时,下位机将采集的各项数据以及下一步的行动数据发给上位机,使得调试人员可以在上位机上观察小车当前的行驶参数以及对应的小车行驶状态。因此,上位机与下位机之间的通信方式是上位机首先向下位机发送通信指令,然后接收下位机发送来的小车运行状态信息。上位机对信息保存、显示、修正,并将修正的参数发送到下位机。
2 系统硬件设计
智能车以MC9S12XS128单片机为主控芯片,该芯片拥有丰富的内部资源。利用单片机的脉宽调制模块对智能车的舵机和电机进行驱动,2路PWM通道作为舵机角度控制,1路PWM通道用于电机的转速控制;利用单片机的捕捉定时功能和A/D转换模块采集道路信号。
单片机与IP-Link1200的连接比较简单方便。IP-Link1200的RXD可直接与单片机的SCI串行口发送端TXD相连接,TXD与单片机串行口接收端RXD相连接,RESET端接单片机的PE1口,通过PE1初始化IP-Link1200,即通过PE1输出10 ms的负脉冲。下位机电路图如图1所示。
图1 下位机电路图
IP-Link1200与PC相连接时必须经过电平转换,将TTL电平转换为RS-232C电平,用1片MAX232 芯片便可以完成该转换。IP-Link1200的RESET端接在复位电路上,该电路在上电时使IP-Link1200复位或按RST按钮使IP-Link1200复位。上位机电路图如图2所示。
图2 上位机电路图
3 系统软件设计
3.1 通信协议
本系统中上位机与智能车之间采用全双工通信。无线网络采用星状网络拓扑结构。与上位机相连的IP-Link1200 为协调器节点,与各个智能车相连的IP-Link1200为终端节点。无线网络中各个终端节点的节点号即为智能车的标识号。
通信协议的定义能够确保收发数据的正确率。实验证明,2个AAH后跟1个55H在数据中出现的概率小,因此,用2个AAH后跟1个55H作为1个数据包的起始标志。当发送数据时,在数据包前加上起始标志。当接收方收到1个数据包,首先检验前3位是否是起始标志,若是,则继续接收数据包,否则,放弃接收。命令码是上位机向下位机发出的指令,占1 byte.其中低4位是操作代号,用"0"表示上位机需要读取下位机中的数据;用"1"表示上位机需要向下位机中写入数据。高4位是指令代号,表示上位机需要读/写下位机的哪组数据,例如舵机参数、路况参数、速度参数等。数据长度位,表示数据包中数据的个数。数据的纠错处理采用CRC校验方式。
3.2 通信模块设计
通信系统的软件主要有两部分,一是上位机从串口接收和发送数据,二是智能车在MC9S12XS128单片机的控制下从IP-Link1200接收和发送数据。通信子程序在系统启动时设置串行口的波特率为38 400 baud,并通过IP-Link1200给通信网络中的各个子节点发送控制消息,查看各个节点是否连接正常。智能车中的通信子程序,上电时设置串行口的波特率为38 400 baud,设置无线网络中各个终端节点的节点号为智能车的标识号,设置IP-Link1200的网络拓扑结构为星型、传输波特率为38 400 baud、信道为11等。Zigbee网络的建立是由与上位机相连的协调器发起的。首先,协调器进行扫描搜索,发现一个未用的最佳信道来建立网络,然后再扫描搜索发现新的终端节点将其加入到这个网络中。
3.3 下位机软件设计
在上位机与上位机的通信中,上位机处于主动地位,下位机处于从属地位。当下位机没有收到上位机的通信指令时,小车就不断地采集前方的道路信息,提取引导线,采集小车行驶速度,生成控制参数,控制着小车沿引导线前进。当小车收到上位机的通信指令时,首先判断指令类型。若是上位机向下位机发来的修正数据包,下位机接收数据并修改运行参数;若是上位机要求下位机传送小车运行参数的指令,下位机立即将发送类型字打包并上传。
3.4 上位机软件设计
上位机软件采用VB语言来编写,基于Windows 的窗口化程序设计MFC,使人机界面生动直观,操作简单。
上位机完成的主要功能是负责一次通信的发起,选择需要采集的参数组,将接收到的数据存储、显示,并对参数进行修正。它的功能模块分为主控模块、通信模块、数据库管理模块。主控模块由数据接收子模块、显示子模块和参数修正子模块组成。数据接收子模块由图像信息子项、舵机相关参数子项、PID参数子项组成;参数修正子模块完成对舵机转角参数和PID算法中各因子的修正,当参数修正完成,立即执行发送参数修正命令,以此修改下位机的相应参数。
4 实验及分析
应用本系统对智能车进行调试,能够及时获得智能车运行的各项参数,能够及时观察到智能车在给定参数控制下的运行状态。同时,通过修改相应参数,调整智能车的运行状态,使智能车的运行状态达到最佳状态。
图3是智能车运行时电机控制的各项参数。在上位机上可以观察智能车在同一路段运行时,PID各项因子的变化对智能车运行状态的影响,通过不断调整各项因子,使智能车在同一路段的运行状态达到最佳。
图3 智能车运行时电机控制的各项参数
5 结论
本文应用Zigbee无线通信模块设计并实现了智能车运行状态实时监控系统。该系统能够及时获得智能车运行时的各项参数,及时观察到参数的变化对智能车运行状态的影响,使智能车的调试不再盲目,而是有的放矢。同时,也为控制算法的离线改进提供了有效的依据。