1 引言
车辆模拟驾驶训练系统是一种利用现代技术手段模拟真车驾驶的仿真系统,它可以使汽车驾驶训练更加安全、经济、高效和逼真。与现有车辆模拟驾驶训练系统相比,新型车辆模拟驾驶训练系统的独特之处是增加了动感系统。该动感系统可以使驾驶员在模拟驾驶室内真实感受到模型车所行驶的沙盘路面的状况,与实车在正常路面上行驶的感觉一样,从而弥补现有车辆模拟驾驶训练系统的不足,提高驾驶训练的效果。
2 系统的组成及工作原理
新型车辆模拟驾驶训练系统中的动感系统主要由动感数据采集系统、动感数据无线发收系统、动感平台及其控制系统组成。
工作原理是:安装于模型车上的动感数据采集系统实时采集模型车行驶过程中姿态的动感数据,通过无线收发系统将动感数据实时传送到动感平台控制系统,进而使动感平台产生相应的动感。
3 硬件设计
3.1 动感数据采集系统
动感系统的动感数据采集使用HMR3000型数字罗盘模块。HMR3000是Honeywell公司的产品,它不仅可以测量磁场,还可以测量物体的姿态,实时准确地输出被测物体的俯仰角、横滚角和航向角。用单片机和HMR3000组合构建适用于机载或车载的测控系统,可广泛应用于航海、通信雷达、微波定向、海上平台控制、天线安装、无人机、机器人、运动定向、自动控制等方面。HMR3000体积小、功耗低、精度高、价格便宜,是姿态测量用户的理想选择。
3.1.1 HMR3000的数据输出格式
HMR3000数字罗盘按照NMEA0183的格式,通过所带的RS-232接口输出数据。输出6种格式:HDG格式、HDT格式、XDR格式、HPR格式、RCD格式和CCD格式。动感系统采用的是如下所示的HPR格式:$PTNTHPR,x..x(航向),a,x..x(俯仰角),a,x..x(横滚角),a*hh该数据输出格式将HMR3000的3个重要测量结果和相应的测量状态结合在一起。数据中的x..x为所测的相应航向角、俯仰角和横滚角的值,形式为n位ASCⅡ码,单位可以是“度”也可以是“mils”。数据中的“a”表示测量状态。测量状态有以下6种:
L=LOW ALARM(低级报警);
M=LOW WARNING(低级警告);
N=NORMAL(正常);
O=HIGH WARNING(高级警告);
P=HIGH ALARM(高级报警);
C=TUNING ANALOG CIRCUIT(调节模拟电路)。
如果1个输出语句的3个状态指示中有任何1个报警,航向位置将为空白。报警和警告的阈值可以在EEPROM中更改。
3.1.2 HMR3000的控制指令
工作:罗盘启动,指令为#FAO.3=1*26<CR><1f>;
停止:罗盘停止,指令为#FAO.3=0*27<CR><1f>;
询问:询问罗盘启动、停止状态,指令为#FA0.3?*15<CR><lf>;
响应:有二种响应,工作状态响应为#1*31<CR><lf>;停止状态响应为#0*30<CR><1f>。
3.1.3 HMR3000的数据单位和进制的设定指令
数据单位可以分为“度”和“mils”二种。度=mils×9/160,其中,度的数值是0.0~359.9,而mils的数值是0~6 399。进制分为十进制和十六进制二种。设定数据单位和进制的指令如下:
#FA0.4=1*21<CR><lf> ∥殳定罗盘数据单位为“度”
#FA0.4=0*20<CR><lf> ∥设定罗盘数据单位为“mils”
#FA0.5=1*20<CR><lf> ∥设定罗盘数据为十进制
#FA0.5=0*21<CR><lf> ∥设定罗盘数据为十六进制
3.1.4 HMR3000数据采集速率的设定指令
HMR3000的数据输出有6种格式,对应的数据采集速率格式也有6种,其中HPR格式更新速率指令为
#BAD=I*hh<CR><lf> ∥设定HPR的更新速率为“I”句/s
其中I的值可以设为0、l、2、3、6、12、20、30、60、120、180、300、413、600、825、1200。
3.1.5 HMR3000姿态数据的查询指令
HMR3000启动后会按照指定的工作模式发送数据,一般会选择连续工作方式。需要查询当前的数据状态和具体数值时需要使用查询指令。HPR格式的查询指令为
$PTNT,HPR*78<CR><lf> ∥查询HPR格式的数据状态
3.1.6 HMR3000与MCU的接口连接
由于HMR3000与外界的串行通信采用的是自身所带的RS-232接口,与MCU串行数据传输的TTL电平不匹配,所以需要MAX232型电平转换器,如图1所示。
3.2 动感数据无线收发系统
动感数据无线收发系统采用nRF905型无线收发模块,该模块具有以下突出特点:
●三频段收发合一,工作频率为国际通用的ISM频段433/868/915 MHz;
●GMSK调制,抗干扰能力强,特别适合工业控制领域;
●采用DSS+PLL频率合成技术,频率稳定性极好;
●灵敏度高,达到-100 dBm;
●工作电压低(2.7 V),功耗小,待机状态仅为1 μA,可满足低功耗设备的要求;
●最大发射功率达+10 dBm;
●具有多个频道(最多170个以上),能满足需要多信道工作的特殊应用;
●工作速率最高可达76.8 kb/s;
●外围元件数目少(仅10个),基本上无需调试;
●由于采用低发射功率、高接收灵敏度的设计,使用无需申请许可证,使用距离最远可达l 000 m。
此外,由于nRF905是一款收发一体化的无线传输电路,带有调制器和解调器,发送时可以自动打包,接收时可以自动进行地址匹配、自动CRC检验,发送或接收完毕后,其DR引脚会自动设置高电平,以示发送或接收完毕,并且采用SPI接口与MCU通信,因此编程非常方便。它可广泛应用于车辆监控、遥控、遥测、工业数据采集、水文气象监控、非接触RF智能卡、机器人控制、数字音频和数字图像无线传输等领域。
nRF905除了负责动感系统中动感数据的无线传输外,还可传输新型车辆模拟驾驶训练系统中模拟驾驶室向模型车发送的油门、灯光、制动、转向、分动箱、离合等控制指令。nRF905与MCU的连接如图2所示,引脚功能说明见表1。
3.3 动感平台及其控制系统
动感平台是动感系统的执行部分,它由6个液压泵和模拟驾驶室的底板构成。其工作原理是MCU根据传来的动感数据通过继电器驱动电路控制相应继电器,使相应液压泵的相应电磁阀开启或闭合,进而模拟驾驶室上下颠簸、前后俯仰或左右摇摆,如图3所示。
4 软件设计
由于HMR3000和nRF905分别通过RS-232接口和SPI接口与MCU进行通信,故整个系统的硬件电路相对比较简单,但是,由于HMR3000采用NMEA0183协议格式输出数据,nRF905收发数据又有严格的时序要求,因而软件设计相对比较复杂。
4.1 HMR3000与MCU的通信协议
HMR3000的串行通信是根据NMEA0183标准制定的简单的ASCⅡ协议,可以在单片机系统中使用RS-232或RS-485接口电路。ASCⅡ码的传输和接收使用1位起始位、8位数据位、无奇偶校验位和I位停止位,每个码有10位。数据传输率可选择l200 bit/s、2 400 bit/s、4 800 bit/s、9 600 bit/s、19 200bit/s、38 400 bit/s。
4.2 MCU接收HMR3000的数据
启动HMR3000后,设定好HMR3000的数据单位、进制及其数据采集速率,每次数据采集后HMR3000自动向MCU发送数据。由于它采用NMEA0183协议标准的HPR格式即“$PTNTHPR,x..x,a,x..x,a,x..x,a*hh”格式输出,此格式中不仅含有效数据“x..x”和其状态“a”,还包含有‘$’、‘P’、‘T’、‘*’、‘h’等相关格式字符,因此在程序中要加以区分。动感系统中将字符‘$’作为一组有效数据传输的开始,将字符‘*’作为一组有效数据传输的结束,并通过计算接收逗号‘,’的个数判断有效数据的开始。MCU接收HMR3000的数据流程如图4所示。
4.3 nRF905与MCU的通信协议
nRF905与MCU之间的通信采用SPI通信协议,使用2条控制信号线CSN、SCK和2条数据信号线MOSI、MISO进行通信。CSN用来控制外围设备的选通(低电平有效),SCK提供同步时钟,MOSI、MISO分别为主从设备的输入/输出线。在SPI通信过程中,主从设备均在时钟的下降沿从各自的输出线输出1位数据,在时钟的上升沿从各自的输入线读入l位数据。
4.4 nRF905发送和接收数据
nRF905发送或接收数据时必须严格遵守发送或接收时序,否则将导致发送或接收失败。
4.4.1 发送数据
nRF905的发送时序如图5所示,其中.TA-TB是nRF905的命令字寄存器、匹配地址寄存器和发送数据寄存器编程时间;TD-Tl是发送启动脉冲,至少为10μs;T1-T2是nRF905的自动编码,至少为650 μs;T2-T3是自动发送数据;T3是发送结束时DR置高电平,表示发送结束。具体步骤如下:
(1)给nRF905上电后,MCU将TX_EN置为高电平,将TRX_CE置为低电平,使nRF905进入发送模式;
(2)MCU通过SPI接口按照SPI通信协议向nRF905写命令字、匹配地址和将要发送的数据;
(3)使TRX_CE产生1个至少10 μs的发送脉冲;
(4)nRF905接到发送脉冲后自动编码、自动发送。如果nRF905命令字寄存器中的AUTO_RE-TRAN位被设置为高电平,则nRF905不断重发,直到TRX_CE被置高电平;
(5)nRF905发送数据后,DR自动置高电平。MCU可以通过DR判断发送完毕与否。以便发送下一组数据。
4.4.2 接收数据
nRF905接收时序如图6所示,具体步骤如下:
(1)给nRF905上电后,MCU通过将TX_EN置低电平和TRX_CE置高电平,使nRF905进入接收模式(图6中的TA时刻);
(2)650μs后,nRF905开始检测有无发送的数据(图6中的T0时刻);
(3)当nRF905探测到有接收频率的载波时,将CD置高电平(图6中的Tl时刻);
(4)当nRF905接收完有效匹配地址后,将AM置高电平(图6中的T2时刻);
(5)当nRF905接收完有效数据且CRC检验正确后,将DR置高电平(图6中的T3时刻);
(6)MCU在DR变高电平后可以通过SPI读取nRF905接收的数据。
4.5 动感控制部分的编程
根据硬件电路的连接,可以利用外部中断0服务程序实现动感的实时控制,这样,MCU在DR变成高电平后即可控制动感平台动作,提高了实效性。程序流程如图7所示。
5 结束语
据考证,国内现有的车辆模拟驾驶训练系统均未安装动感系统。车辆模拟驾驶动感系统具有广阔的发展前景。本文为该系统的设计提供了切实可行、安全可靠的参考设计方案。