郭涛 郝亮 曹景胜 王群 于继开
(辽宁工业大学汽车与交通工程学院)
汽车性能评价中的一个重要指标就是汽车转向系统的性能。电动助力转向系统(EPS)能够保证汽车的安全性与稳定性,受到越来越多汽车厂商的青睐。由于全球定位系统(GPS)测量精度不断提高和发展,将GPS信息融入汽车EPS中,针对GPS测量信息,进行数据融合,将处理所得数据通过电子控制单元计算出控制信号,可实现对汽车转向轮的主动控制,达到增强汽车操纵稳定性的目的,因此在汽车转向系统中引入GPS技术是汽车转向主动控制发展的趋势[1]。文章设计了基于GPS技术的汽车电动助力转向模拟系统。
本系统以GPS芯片作为核心,辅以外围电路组成下位机控制器,将采集到的GPS卫星信息通过串口传输到PC机,在电脑端编写VC++软件接收GPS数据,通过软件策略动态显示汽车3D模型随着GPS经纬度数据变化而实现左右主动转向,实现基于GPS的汽车电动助力转向模拟系统功能。
GPS是当前应用范围最广的测距、授时及导航定位系统。其导航定位的基本原理是测量出已知位置的卫星到用户接收机之间的距离,然后综合多颗卫星的数据就可知道接收机的具体位置。当GPS卫星正常工作时,会不断地用1和0二进制码元组成的伪随机码(简称伪码)发射导航电文。导航电文包括卫星星历、工作状况、时钟改正、电离层时延修正及大气折射修正等信息。它是从卫星信号中解调制出来,以50 b/s调制在载频上发射的。当用户接收到导航电文时,提取出卫星时间并将其与自己的时钟做对比便可得知卫星与用户的距离,再利用导航电文中的卫星星历数据推算出卫星发射电文时所处位置,用户在WGS-84大地坐标系中的位置速度等信息便可得知。
可见GPS导航系统卫星部分的作用就是不断地发射导航电文。然而,由于用户接收机使用的时钟与卫星星载时钟不可能总是同步,所以除了用户的三维坐标x,y,z外,还要引进一个Δt,即卫星与接收机之间的时间差作为未知数,然后用4个方程求解这4个未知数。所以如果想知道接收机所处的位置,至少要能接收到4个卫星的信号。
由于在多方面因素的影响下,非特许GPS用户的三维位置测量精确度只能达到100m左右,远远不能满足汽车运动平稳性测量的要求,所以在汽车转向系统中一般使用差分卫星定位系统(DGPS)。DGPS是在正常的GPS外附加(差分)改正信号,此改正信号改善了GPS的精度。DGPS技术消除了星钟误差、星历误差和接收机时钟差,大大提高了测量精度。具有高速率数据输出和采样、低速率延迟及快速信号重捕等优势,能够使数据达到毫米级处理精度,满足了汽车测试系统对精度的要求[2]。其测量原理图,如图1所示。
本模拟系统使用GPS芯片作为控制器核心,实时取得GPS卫星数据,并通过RS232串口通信将数据传输到电脑端,电脑端软件应用程序根据接收的卫星数据解析出汽车的经纬度等信息,根据这些信息的实时变化来判断汽车进行主动转向的意图,并模拟汽车主动转向。其系统总体架构,如图2所示。
本系统硬件设计框图,如图3所示。
GPS芯片采用NEQ-5Q主芯片,其为多功能独立型GPS模组,以ROM为基础架构,成本低,体积小,采用最新的kickstart微弱信号攫取技术,能确保采用此模组的设备在任何可接收到信号的位置都能快速定位。其最小系统原理图,如图4所示。
电源模块主要是将外部直流电压稳压为系统中使用的电压,系统硬件设计电源部分主要使用3.3 V直流电压,因此本设计使用直流稳压芯片(AMS1117-3.3芯片)来得到3.3 V电压。AMS1117系列芯片为低压差芯片,当该芯片提供1 A输出电流时其工作压差可降低至1 V,稳压效果良好[3]。该设计中电源部分电路原理图,如图5所示。
GPS上电后,每隔一定的时间就会返回一定格式的卫星数据,因此设计中必须将GPS模块接收到的数据传送到电脑端来进行接收、解析和处理,然后使模拟软件上的汽车3D模型进行主动转向。故在本设计中使用RS232来与电脑端进行数据通信,其电路原理图,如图6所示。
当GPS模块断电后,其内存中的当前数据不保存,且再次上电时,启动时间很长,故在本硬件设计中添加后备电池电路,后备电池可在GPS模块断电后保存当前的星历数据,2 h之内再次启动GPS模块,可实现1 s快速定位。其电路原理图,如图7所示。
考虑到GPS模块接收卫星数据的状态及接收时间间隔,在本硬件设计中设计了数据指示灯电路,用于进行调试和观测。其电路原理图,如图8所示。
本系统软件部分主要使用VC++来开发电脑端模拟软件,通过串口接收GPS控制板传送过来的卫星数据(这里主要是GPRMC数据),然后解析和处理,根据卫星数据的实时变化来模拟汽车3D模型的转向。
GPS模块每隔一定时间接收卫星数据,其数据格式为“$信息类型,x,x,x,x,x,x,x,x,x,x,x,x,x”,其信息类型主要包括:可见卫星信息(GPGSV)、地理定位信息(GPGLL)、推荐最小定位信息(GPRMC)、地面速度信息(GPVTG)、GPS定位信息(GPGGA)及当前卫星信息(GPGSA)等。
本软件设计中,主要是接收GPRMC数据并解析。GPRMC数据格式为:$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh
<1>UTC时间,hhmmss(时分秒)格式
<2>定位状态,A=有效定位,V=无效定位
<3> 纬度ddmm.mmmm(度分)格式
<4>纬度半球N(北半球)或S(南半球)
<5> 经度dddmm.mmmm(度分)格式
<6> 经度半球E(东经)或W(西经)
<7>地面速率(000.0~999.9节)
<8>地面航向(000.0~359.9度)
<9>UTC日期,ddmmyy(日月年)格式
<10>磁偏角(000.0~180.0度)
<11> 磁偏角方向,E(东)或 W(西)
<12>模式指示(A=自主定位,D=差分,E=估算,N=数据无效)
由于串口在主线程中读取数据的速率比较慢,会阻塞主线程中处理主窗体的消息队列[4],因此在串口通讯程序设计中采用多线程进行编程,在串口CPSerial-Port类之上封装CComFun类,更方便数据读取等。在打开串口的同时创建接收线程:m_pSerial_Port=new CPSerialPort();if(m_pSerial_Port->OpenPort(_T("COM2:"),96000,8,ONESTOPBIT,NOPARITY,OnSerialRead,this))m_pSerial_Port->Activate();
本系统模拟软件界面,如图9所示。
使用GPS控制器将采集到的GPS卫星信息通过串口传输到PC机,在电脑端编写VC++软件接收GPS数据,通过软件策略动态显示汽车3D模型随着GPS经纬度数据变化而实现左右主动转向,实现基于GPS的汽车电动助力转向模拟系统功能。本样机经过测试达到了研发的目的和效果。