1.前言
近年来道路交通事故呈上升趋势,给国家和人民生命财产带来了巨大损失。为此,国家相关部门已强制安装行车数据记录仪等措施。同时,国内的发动机电控技术处于发展阶段,电控发动机试装车阶段常会出现因为车辆匹配不佳而导致大量的软故障问题发生,甚至在批量交付给终端用户后都还会发生系统故障。目前发动机厂家的解决办法都是依靠技术人员到实地进行现场故障诊断以及电控单元的控制程序升级。由于车辆已经交到用户手中,在全国各地无规律的分布,这将导致技术人员来回奔波,影响客户对电控发动机的信任度。其次,售后服务的区域分布广,差旅费带来的开销极大,势必增加电控发动机厂家的开发、生产成本。远程行车数据记录仪便是解决以上难题的较好方法。
2.系统设计
远程行车数据记录仪设计涉及多个领域和技术,主要技术有计算机网络技术、现代通信技术、分布式数据库技术、在线监测和数据采集技术等。本软件的硬件系统是基于飞思卡尔MCF51JM128为核心的控制器,使用CAN通道与发动机电控单元(ECU)通讯,使用串口与GPRS、GPS模块通讯,AD采样自身电池电压,SPI操作SD卡文件系统。最终设计目标在于兼容CCP、SAEJ1939等多种汽车CAN协议与发动机电控单元(ECU)通讯,设置需要采集的监控变量,连续存储发动的监控变量与行车GPS数据,并通过GPRS网络,将数据远程传输至服务器。一方面为专业客户(汽车生产、研发和汽车维修部门),提供发动机状态参数的远程监控、故障调试服务。另一方面以网络监控系统运营为主,为终端用户(物流企业、团体车队、个人用户)提供基于GPS的车辆轨迹监控、防盗、油耗监控等以及远程排故、远程控制等功能。
2.1 方案设计
如何做到不改变现有电控发动机硬件设备,异地传输数据,实时监控发动机运行状况?结合电控单元(ECU)的产品特性,如何对遍布全国角落的车辆运行状况进行状态监控以及故障诊断。针对车辆分布广,地域性要求较高的特点,最为理想的则是利用无线网络。
GPRS是目前解决移动通信信息服务的一种运用较广泛的业务,它是以数据流量计费,覆盖范围广泛、数据传输速度更快。移动网络信号覆盖的地方,我们都可以实现行车数据记录仪的远程数据传输。
图1 系统框图
如图1系统框图所示,行车记录仪通过CAN线与ECU连接,基于CCP/1939通讯协议与ECU交换数据,行车记录仪将所获的发动机监控数据存储于SD卡上,并根据需要将监控数据以及GPS经纬数据通过GPRS传输至远程服务器。远程服务器可以搭建网络平台以供客户电脑监控车辆运行情况。同时服务器也可发送控制命令达到远程控制车辆的目的。
2.2 硬件设计
基于GPRS无线网络实现数据远程传输,不需要对现有的电控单元(ECU)产品做任何硬件改动,只需引入GPRS无线模块连接到发动机通信诊断口上即可。GPRS模块目前主要以DTU (Data Transfer unit)数据传输单元为主,用于将串口数据转换为TCP网络数据或将TCP网络数据转换为串口数据。主控制器的选择需要具备多路CAN通道,2路SCI通道,1路SPI通道,1路AD,1路IIC等必要硬件资源。
图2 硬件设计框图
MCU选择FREESCALE公司的MCF51JM128,芯片FLASH空间128Kbytes,RAM空间16 Kbytes,带2路SCI,2路SPI,1路CAN,1路IIC,AD通道12路。GPRS选择了SIM900A, GPS选择了HOULUX定位系列芯片。
2.3 软件设计
2.3.1 单片机设计
单片机设计基于MCF51JM128芯片,采用CodeWarrior开发完成。系统上电,软件首先进行必要的硬件初始化操作,判断CAN接口、SD卡是否接触良好?系统自检完成后,即开始读取SD卡的监控变量配置文件,将监控变量需求通过CAN通讯提交给ECU,ECU接受监控变量设置成功后,即按要求反馈监控变量的CAN数据原文。软件周期存储CAN数据以及GPS数据,以及发送数据至服务器。
图3 软件流程图
2.3.1.1 CAN、SCI通讯
CAN通道支持125K,250K,500K,1M等4种波特率的数据传输,能有效适应CCP、SAEJ1939等控制协议传输需求。此外,记录仪设备的系统信息也可以通过CAN通讯设置,PC与单片机的CAN通讯协议为自定义协议,使用2组11位ID识别,分别为1)0x234,0x235;2)0x236,0x237。第一组ID用来对GPRS模块进行配置和通讯操作,第二组ID用来对系统配置常量的FLASH操作进行控制。
SCI通讯主要用于MCU与GPS以及GPRS模块通讯, GPS数据传输波特率为9600;GPRS数据传输波特率为11520。
2.3.1.2 时钟设置及校准
实时时钟主要用于数据SD卡存储提供文件命名来源,时钟使用时钟模块提供的时钟源,同时在能够接收到GPS信号的状态下,使用GPS时钟源校准时钟保证了时钟的准确性。考虑到时钟模块掉电以及GPS没有信号的状态可能同时发生,导致失去正常时钟,所以将会在FLASH中保存时钟源提供的最新一天的时钟数据,保存内容为年月日,以辨别SD卡存储数据的时间真实与否。
2.3.1.3 SD卡文件系统
GPS数据保存在以创建文件时间(月日时分)命名的txt文档中,以20k为一个单位,超过指定大小后,另开一个文件继续存储。由于GPS保存数据并不能预先判断设备断电和SD卡状态,所以在存储文件时采用单次存储,单次关闭的方式,避免由于设备断电等未知情况导致的文件保存不完整、无法正常打开。
2.3.1.4 GPS数据存储
由于GPS响应相当频繁,且对时间不太敏感,GPS数据采用开缓存非实时的方式进行处理。数据经处理后将$GPGGA(全球定位数据)取出,存入到SD卡txt文件,还可同时通过串口将数据发送至远程服务器。
2.3.1.5 GPRS模块设置
该模块设置通过CAN转SCI的方式由PC实现, GPRS模块设置符合AT命令标准。通过SCI输入AT命令,即可将GPRS模块配置为数据透明传输模式,实现数据远程传输。
常用的AT命令如下:
AT+CSTT="CMNET" //设置模块的APN账号
AT+CIPCFG=1,40,0,150,1000 //配置模块自动启动模式,断线自动重连等待时间
AT+CIPMUX=0 //设置为单链接模式
AT+CIPMODE=1 //设置为数据包模式
AT+CIPSCONT=0,"TCP","192.168.0.1",7100,2 //设置通讯协议、服务器地址、端口
2.3.1.7 设备系统信息
通过设置系统配置信息可以选择设备的使用插件、运行模式,以及ID标识等。该配置信息通过CAN总线实现读、写功能。
系统配置信息位于设备Flash 区域0x0001FC00地址处,该功能的实现需要对Flash 进行格式化和写操作,相关代码需要拷贝到RAM中执行。
表1 系统信息存储说明
2.3.1.8 CCP数据监控
该功能的数据监控和SD卡存储代码实现保留第一版行车记录仪的代码实现,新添加远程传输监控数据代码实现,详细内容如下:
行车记录仪上电后依据系统配置信息得到当前CAN数据协议是否支持CCP协议,如果支持则读取SD卡上的CCP配置文件(DAQLst.inf、DAQTgt.lst、*.a2l),单片机主要读取DAQTgt.lst文件,该文件包含CCP监控变量的ECU地址信息,然后按照CCP协议与ECU通讯,设置开启DAQ数据传输。系统支持标准触发型、10ms、100ms等三种标准DAQ数据。ECU反馈回的监控数据信息按CAN数据原文格式配以时间标识存放在SD卡内,同时根据系统配置信息得到是否支持CCP远程数据传输功能,如果支持则按照预订的发送周期(分钟)采样CCP数据并发送给服务器。由于CCP最大数据量为254×8=2032字节,考虑到单片机内存大小,CCP的远程数据传输采用分时间片传输模式,即建立一个小的数据缓冲区,将整个需要监控的数据量按照该缓冲区大小分时间片在1分钟内分片发送。一个周期内,关注的监控信息只发送一次。
2.3.1.9 J1939数据监控
行车记录仪上电后依据系统配置信息得到当前CAN数据协议是否支持J1939协议,如果支持则读取SD卡上的配置文件(J1939.lst),然后按照J1939协议解析监控到的数据内容,同时根据配置文件设定的存储周期和发送周期实现数据存储功能和远程数据传输功能。
考虑到单片机内存大小,同时由于选用的单片机不支持动态内存分配,所以提前设定了最大支持16组PGN的数据缓冲区,每一组PGN最大支持30字节的数据内容。具体文件格式如表2所示。
表2 J1939配置文件格式
PGN编号-需要监控的PGN编号。
数据模式-PGN在总线上出现的模式。
0:自动周期发送的PGN
1:请求发送的PGN,如DM1故障诊断。
2.3.1.10 远程数据传输
配置GPRS模块为自动数据透传模式,相当于实现了片上SCI和TCP/IP数据格式的转换,可以方便的通过无线网络和单片机实现通讯。设计采用了自定义的报文格式封装,具体数据如下:
表3 远程传输报文协议
数据长度:按照数据种类定义数据内容的长度。
数据种类:(数据内容的类型)
0x33:J1939数据
0x34:CCP数据
0x35:数据(预留)
0xCC:GPS数据
数据校验:数据帧结构中有效数据内容的累加校验值。
帧头、帧尾:0xAA5555AA
2.3.2 网络平台设计
网络平台适宜采用B/S瘦客户端模式设计,设计方案是以平台自身为服务器端,监听行车数据记录仪发起的远程连接,当建立完成TCP连接之后,通过SOCKET套接字编程,交互数据,平台根据远程传输报文协议,解析数据原文,将发动机监控数据与GPS数据独立存储。
数据库存储设计,GPS数据存储相对简单,按NEMA0183标准格式提取需要的经纬信息,瞬时速度,UTC时间,海拔高度等数据即可。而发动机监控变量由于设置灵活,变量个数不定,导致了数据库字段无法预先设定,传统关系型数据库如SQLSERVER, MySQL ,Oracle等数据库无法满足发动机监控变量的灵活存储的需求。根据平台需求特点,设计采用了Mongo DB非关系型数据库存储发动机监控变量数据。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,因此可以存储比较复杂的数据类型,满足发动机监控变量灵活设置的存储需求。
图4 远程监控平台效果图
平台监控效果如图4所示,功能大致如下:
①车辆信息管理:对车辆信息进行查询、统计、打印报表及增、删、改的维护工作。
②操作员信息管理:对操作员信息进行查询、统计、打印报表。
③日志管理:对日常操作(如用户登录、车辆查询、区域报警设定、消息发送等)。
④轨迹信息管理:车辆轨迹,历史数据回放,指定回放速度。
⑤监控状态管理:区域监控,多目标监控,单目标监控,非监控状态。
⑥目标查询:呼叫目标,中止呼叫,连续跟踪,取消连续跟踪。
⑦报警管理:超运行范围报警,超速报警,违规线路报警。
⑧发动机监控:监控发动机参数。
⑨发动机故障诊断:发动机故障诊断,并下发排故建议。
⑩数据库备份恢复:支持系统重要数据的定期自动备份。
3.总结与展望
总之,远程行车数据记录仪作为传统数据记录仪的补充,利用GPRS无线网络资源,可以将分散且移动的汽车有效管理起来,实现发动机的远程监控、远程故障诊断、行车轨迹定位等功能。随着我国3G网络基本建设完成,打破了无线带宽瓶颈的限制,使网络带宽得到较大提升,基于3G网络将使得远程行车数据记录仪数据传输速度、测控命令响应速度更快,系统用户体验将得到明显的改善。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:远程行车数据记录仪系统设计