基于OBD和GPS的车载终端设计

2023-03-27 07:10高君语赵玛龙赵耕云
汽车实用技术 2023年6期
关键词:数据包车载原子

王 佳,董 元,高君语,赵玛龙,赵耕云

(兰州工业学院 汽车工程学院,甘肃 兰州 730050)

车载终端作为汽车运行数据采集设备,是实现汽车远程监控、管理调度、道路风险预警等多种功能服务的基础设备[1]。车载终端主要功能是获取汽车在运行过程中的各种状态信息数据,上传至云端功能服务中心,也能接收云端功能服务中心下发的各种数据信息,为驾驶员提供预警信息,对车辆进行远程控制[2]。

目前,部分国产品牌乘用车已具有车联网功能,具备全球定位系统(Global Positioning System,GPS)、远程启动等功能,为用户提供了更好的用车体验。但原车具备的车联网功能并不能实现与第三方开发的特定云端服务平台通信,不能为开发更加个性化的车联网功能提供助力。本文基于汽车车载自动诊断系统(On Board Diagnostics,OBD)技术和GPS技术,设计了一种能够采集汽车信息数据,并发送到多个云服务器的多车型通用的车载终端。

1 车载终端总体方案设计

车载终端采用模块化方式设计[3],主要由微控制器、GPS模块、4G通信模块、液晶显示器(Liquid Crystal Display, LCD)等组成,结构如图1所示。

图1 车载终端总体结构

车载终端接入汽车OBD诊断接口,通过控制器局域网络(Controller Area Network, CAN)总线与汽车电子控制单元(Electronic Control Unit,ECU)建立通信,从CAN总线上接收由汽车ECU发送的CAN报文信息[4],经过解析后获得车辆的各项状态数据,即汽车OBD数据流。同时,车载终端通过GPS模块采集车辆的实时位置信息,将车辆的各项状态数据和位置信息显示在LCD中,并按照设计的通信协议组成一帧数据包,通过4G通信模块发送至云端。车载终端通过4G通信模块接收来自云端的信息并进行信息处理及显示。

2 硬件设计

2.1 MCU选型

车载终端微控制单元(Microcontroller Unit,MCU)选用 STM32F103ZET6单片机,属于中低端的32位ARM微控制器,其内核是Cortex-M3,具有72 MHz CPU速度,内部含256 KFlash存储器和1 M闪存,内部资源丰富,功耗低。MCU各主要功能接口规划如下:

CAN—引脚 PB8(CAN_RX),PB9(CAN_TX)。用于CAN总线通信。

USART2—引脚 PA2(TX),PA3(RX)。用于4G通信模块数据通信。

USART3—引脚 PB10(GPS_RX),PB11(GPS_TX)。用于L80 GPS模块数据通信。

FSMC—用于LCD驱动。

2.2 LCD选型及接口电路设计

LCD液晶屏选用9.37 cm ×5.62 cm(4.3寸)TFT LCD电容触摸屏,分辨率为800×480,16位真彩显示。该液晶屏自带触摸屏,可以用来作为控制输入。LCD的驱动芯片为ILI9314,该芯片自带显存,显存总大小172 800字节。STM32通过外部总线连接LCD,通过FSMC驱动LCD,可以提高刷屏速度。电路如图2所示。

图2 LCD接口电路

2.3 CAN模块设计

STM32F103ZET6片内集成有1个CAN模块,可以实现 CAN总线数据协议。CAN收发器选用TJA1050,TJA1050 是控制器区域网络协议控制器和物理总线之间的接口,是一种标准的高速CAN收发器,完全符合ISO11898协议标准[5]。TJA1050可以为总线提供差动发送性能,为CAN控制器提供差动接收性能[6]。收发器TJA1050的CAN_H引脚接汽车OBD诊断接口的第6引脚,CAN_L引脚接OBD诊断接口的第14引脚。电路如图3所示。

图3 CAN收发器电路

2.4 GPS模块选型及接口电路设计

GPS模块选用移远公司的L80 GPS模块,采用LCC封装,如图4所示。这是一款集成了贴片天线的超紧凑型GPS模块,拥有极强的捕获和追踪能力,水平精度2.5 m,冷启动时间小于15 s,输出信号为NMEA-0183标准信号格式[7]。该GPS模块与STM32单片机的串口USART3连接,接口电路如图5所示。

图4 L80 GPS模块

图5 L80接口电路

2.5 4G通信模块选型及接口电路设计

4G通信模块选用正点原子公司推出的 ATKM751 4G DTU,如图6所示。该模块是一款高性能全网通4G DTU产品,支持移动4G/3G网络,支持TCP/UDP/HTTP/MQTT协议,支持连接原子云、阿里云、百度云等多种云服务器,支持RS232串行接口[8]。通过正点原子提供的 ATK-M751配置软件发送AT指令将该4G DTU配置为透传模式,波特率115 200 bps,连接原子云和阿里云。原子云是正点原子推出的物联网云服务平台,具有远程监控、转发和管理登功能,原子云域名为cloud.alientek.com,端口号59666。本文申请的阿里云服务器公网地址为 47.109.82.205,端口号5000,连接类型TCP。4G DTU通过RS232电平转换后与STM32F103的串口USART2连接。

图6 ATK-M751 4G DTU

3 软件设计

由于车载终端功能较多,且对实时性要求较高,故在车载终端 STM32F103ZET6单片机的程序框架中引入华为LiteOS操作系统,可以实现多任务调度,大幅提高中央处理器(Central Processing Unit, CPU)的运行效率。设计编写主程序,首先进行底层硬件初始化,包括串口初始化设置、CAN初始化设置、可变静态存储控制器(Flexible Static Memory Controlle, FSMC)初始化设置、LCD初始化设置。初始化完成后,根据车载终端的功能需求创建相应的任务,并分配优先级,每个任务只执行其中一个功能,如表1所示。

表1 车载终端功能及优先级划分

创建的TaskGPS任务用于处理从串口USART3接收的GPS信息。L80-R模块输出9种信息类型,TaskGPS任务只接收“$GPGLL”和“$GNGLL”两种信息类型,其余情况不接收。接收的数据按信息类型格式分割后提取出经度数据和纬度数据。

创建的TaskOBD任务用于获取从CAN总线得到的汽车OBD数据流。该任务设计编写有实现ISO15765-4、SAEJ1939、ISO14230等多种汽车诊断协议的程序,可以通过汽车OBD诊断接口与汽车ECU交互,读取国内常见品牌汽车的OBD数据流,因此,车载终端具有一定的通用性。

创建的TaskTCP任务用于建立4G DTU模块和云服务器之间的TCP通信。该任务将TaskGPS任务中获得的经纬度数据和TaskOBD任务中获得的汽车OBD数据流按定义的标准数据包格式打包后,通过串口USART2发送到4G DTU,再由4G DTU发送到云服务器。设计的标准数据包格式为$NLDS,[IMEI],[纬度],[经度],[参数 0],[参数 1],[参数 2],[参数 3],[参数 4],[参数 5]*[校验值]。其中“IMEI”为选用的4G DTU模块的国际移动设备识别码,具有唯一性,可防止云服务器误接收其他终端发送的数据,“$NLDS”是数据包的功能标识符,便于云服务器准确接收并分析处理数据包。同时,由于4G 数据传输单元(Data Transfer unit, DTU)模块配置在透传模式下,能够接收从云服务器发出的控制命令。TaskTCP任务从串口USART2接收4G DTU转发的自云服务器发出的控制命令,并进行处理,将以“#GYCMD”开头的标准格式控制命令存储在缓存区域中,非标准格式的控制命令丢弃不保存。

创建的TaskLCD任务用于LCD显示功能。该任务将前面三个任务获得的经纬度数据、汽车OBD数据流、向云服务器发送的标准数据包、接收到的控制命令数据显示在LCD中,并根据相关数据的变化情况实时更新。

创建的四个任务在LiteOS操作系统的管理调度下各自循环运行,相互联系但互不干扰。车载终端程序流程如图7所示。

图7 车载终端程序流程图

4 试验验证

试验车采用长城哈弗H6 SUV,试验地点位于兰州市安宁区安宁堡附近道路。热车后,开始试验,将汽车OBD诊断接口通过延长线引出,车载终端的CAN_H线(图中红色导线)接于OBD诊断接口的第6针脚,CAN_L线(图中蓝色导线)接于OBD诊断接口的第14阵脚。

试验车在怠速情况下,车载终端LCD显示的车速为0 km/h,发动机转速为817 r/min,与汽车仪表显示数据相同,油量、水温、油轨压力、进气温度等数据基本符合车辆的实际工作状态。经度和纬度数据由WGS-84坐标换算为BD-09坐标后通过百度地图定位,与车辆实际所处位置基本一致。

试验车在一挡低速行驶状态下,车载终端LCD显示的车速、发动机转速等数据随着汽车行驶状态的变化而变化,且与汽车仪表盘显示数据的基本一致,经纬度数据随着车辆的位置变化而不断更新。

在试验过程中,同时登录原子云服务器和阿里云服务器。原子云服务器接收到的标准数据包如图10所示,原子云服务器发送的提示信息“#GYCMD,前方道路拥堵请绕行,*51”,车载终端能够实时接收并显示在LCD上,如图8、图9所示。在阿里云服务器中,网络调试助手接收到的数据包如图11,两个云服务器同步接收到数据包。

图8 车辆怠速状态

图9 车辆一挡低速行驶状态

图10 原子云服务器

图11 阿里云服务器

更换试验车型,车载终端分别接入马自达 6轿车和奔驰E200K轿车的OBD诊断接口进行试验,取得了相同了试验效果。

经过试验验证,车载终端能够采集多种品牌车辆的状态数据和位置数据,并将相关数据信息同步发送到原子云服务器和阿里云服务器,能够接收云服务器发送的简短指令,并显示在LCD上。车载终端运行稳定,功能正常。

5 结论

本文以 STM32F103ZET6单片机为核心,设计了一款结合GPS模块和4G DTU模块,具有一定通用性的车载终端。针对车载终端进行了详细的硬件设计和软件设计,并将车载终端接入实车进行了功能验证试验,试验表明,设计的车载终端能够可靠地读取车辆OBD数据,能够准确地获得车辆的定位数据,并将获得的数据信息实时发送到多个云服务器,能够可靠地接收云服务器发送的提示信息。本文设计的车载终端运行稳定,功能可靠,可以作为实现汽车远程监控、管理调度、道路预警等多种功能服务的车载基础设备。

猜你喜欢
数据包车载原子
原子究竟有多小?
原子可以结合吗?
带你认识原子
高速磁浮车载运行控制系统综述
SmartSniff
智能互联势不可挡 车载存储需求爆发
基于ZVS-PWM的车载隔离DC-DC的研究
新型轻便式车载电子系统的结构设计
视觉注意的数据包优先级排序策略研究
移动IPV6在改进数据包发送路径模型下性能分析