《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 基于QNX的智能车载3G远程诊断系统
基于QNX的智能车载3G远程诊断系统
来源:电子技术应用2013年第5期
张 瑞
河南商丘师范学院 计算机与信息技术学院, 河南 商丘476000
摘要: 提出基于QNX的智能车载远程3G诊断系统方案,采用QNX硬实时系统作为车载终端,通过CAN总线和GPS模块实时采集车辆状态信息,以实现对车辆运行状态的动态反馈;设计3G无线分层驱动模型实现车载终端与远程服务器通信,提高远程诊断的实时性和准确性;引入远程监控服务中心对车辆各项安全参数进行动态实时检测,进而提高运行安全系数。实验表明,该方案不仅能实时采集影响车辆安全运行的各项ECU参数,还可通过车辆远程服务中心实现对车辆的全天候跟踪监控。
中图分类号: TP391
文献标识码: A
文章编号: 0258-7998(2013)05-0121-04
3G smart and remote vehicle diagnostic system based on QNX
Zhang Rui
Computer and Information Department of Shangqiu Normal University, Shangqiu 476000 China
Abstract: A program of remote 3G diagnosis system was proposed based on QNX. The hardware real-time system of QNX was used to the vehicle terminal, to capture status information of the vehicle by CAN and GPS module, so as to achieve dynamic feedback to the running status. In order to complete communicates between the car terminal and remote servers, design 3G Wireless layered driver model. As a result , improve the real-time and accuracy of the system. In order to improve the running safety factor, a remote monitoring service center was introduced, so as to check the safe parameter in real-time. Experiments show that, this program can not only capture all the ECU parameter affected the running safety, but also can trace and monitor the vehicle by the remote service center all day.
Key words : diagnostic system; vehicle terminal; layered driver; service center

     随着现代电控技术对汽车组成的渗透,汽车架构的复杂性、集成度和信息化程度日益增强,由此给汽车安全运行带来了更多隐患,仅靠传统车内资源已很难满足其安全性需求。

     针对传统车载诊断系统标识繁杂、实时性差、电磁干扰强等问题,先后有汽车电子研究者提出Telematics设计理念[1],并将逐渐形成未来汽车安全辅助驾驶系统发展的新型模式。2009年,曾锐利、肖云魁等在“汽车远程故障诊断与维修系统研究”中[2],提出了车辆远程故障自诊断系统,通过远程服务器与车载终端的互联,完成车辆的自诊断。2011年,上海交通大学汽车电子研究所张旭、冒晓建等发表的“汽车远程诊断系统车载模块的研究和开发”中[3],系统阐述了整个车载模块远程诊断系统的架构模式和软件处理流程,为该方向的研究提供了较全面的参考模型。同年,上汽集团技术中心的彭剑、叶枫等,对车载终端和远程服务器的相关功能模块接口作了进一步研究[4]。但以上对车载远程诊断系统的探索和研究中涉及的相关核心功能及性能评估不够深入完善,离真正的实践应用尚存一定距离。
    为此,本文以Telematics为设计理念,提出一种新型的基于QNX车载终端的智能远程诊断系统方案。引入强实时性的QNX系统为软件运行平台,并在此基础上采用CAN总线和GPS模块实时采集和处理车辆状态信息,通过3G无线网络完成与远程服务器的互联通信,实现后台监控中心对车辆运行状态的全天候实时监控,进而保障车辆更快、更安全地运行。
1 系统整体架构
    智能远程诊断系统主要由诊断终端、通信网络和远程服务中心组成。诊断终端作为整套系统的核心处理单元,主要包括CAN收发器、3G模块、GPS模块及SD卡存储模块,并且采用微秒级实时性的QNX系统作为软件平台。整套系统的指令数据和采样数据按一定协议规范组包,其核心处理流程如下:
    (1)报文采集:终端通过CAN总线和GPS模块实时采集、过滤和处理车辆各ECU状态信息;
    (2)报文存储:采集的所有报文信息通过SD卡模块和缓冲的形式存储,分别实现对车辆进行本地和远程诊断;
    (3)报文收发:诊断终端通过3G网络与远程服务器实现互联,并实时收发本地和远程服务器的相关报文,实现对车辆状态的远程动态监控。
其中,诊断终端作为核心处理单元,分别采用CAN总线网络和3G无线网络与车辆和远程服务器互联通信。远程服务中心将关切信息通过配置形式下发到相关车辆,车辆终端即按照配置信息采集关切信息。同时,远程服务中心可以实时查看相关车辆的各项运行参数,并自动分析处理相关信息,将异常情况实时反馈到相关车辆,通过中控台、语音识别器等模式通知驾驶员。诊断系统整体架构如图1所示。

    可见,该设计方案不仅从软件上保证了系统的实时性和可靠性,而且采用CAN总线通信、GPS定位系统、3G无线网络等新型技术,实现了一个无缝的本地-远程互连参考系统,有效增强了辅助驾驶平台的安全系数。
2 系统诊断终端
    针对当前车载诊断系统在通信速率和可靠性方面存在的问题,诊断终端采用目前较先进的CAN总线网络与车辆ECU系统相连,引入3G无线通信模块与远程服务器互联,实现对车辆各控制单元运行状态的全天候远程无线实时监控。
2.1 CAN总线通信逻辑
  诊断终端与车辆通过CAN总线网络实现互连,完成远程指令下发和各ECU工作状态的采集。由于车辆各ECU对CAN总线的性能要求不同,CAN总线根据传输速率划分为高速CAN和低速CAN,不同速率CAN总线区域间信号通过网关从一个总线区域进入到另一个总线区域,同时以当前CAN网络区域为参考,改变信号发送的优先级。
    本系统诊断终端作为一个节点接入CAN总线诊断系统网关,其信号核心处理流程为:诊断节点向整个CAN网络系统发起服务请求,CAN网关经识别后向所有CAN网络的ECU节点发送服务请求信息;当网络中相应的控制器接收到服务请求信息后,立刻返回服务响应,同时与诊断终端建立通信连接。诊断终端与CAN网络某控制器节点建立服务请求/响应的示意图如图2所示。

    针对终端CAN节点与车辆CAN网络的互连条件,本系统设计3种采集触发方式:
    (1)系统上电:系统上电后,采集通道开始接收总线  上的所有报文。
    (2) 远程指令:车辆CAN总线系统接收到远程服务器下发的特定指令后,将指定报文送入采集通道,收到相应禁止指令后停止采集指定报文;
    (3) 条件触发:若总线信号按一定公式计算后为真,则将该信号送入采集通道。
  诊断终端根据远程服务器下发的配置条件,指定其通信的触发方式、采集方式和存储方式,并将相关报文按指定方式存储到本地SD卡,或上传至远程通信服务器。
    可见,本系统诊断终端采用客户指定的采集模式,真正做到了系统设计的可扩展性,并在设计早期即可通过CANoe等CAN总线模拟器充分论证方案的可行性,为快速开发高性能车载诊断终端提供先进的开发理念和有力的技术保障。
2.2 3G无线通信驱动设计
    智能远程诊断系统选用新型的3G无线通信模块UC864,在成本不变的基础上,内部集成了TCP/IP协议栈,几乎封装了无线通信的所有复杂处理流程,以此作为整个模块的硬件驱动层,对外仅提供简单API接口,给上层应用开发提供了更为人性化的底层驱动环境,进而有效缩短了3G无线模块的开发周期。
    UC864通过串口(UART)与MCU连接通信,其驱动核心处理流程为:首先初始化MCU与UC864相连的物理I/O管脚和相关寄存器,并使能3G模块;然后通过AD采样模拟输出进行开机检查;最后利用串口连接建立内部通信机制。其处理流程主要包括:
    (1)串口初始化:主要对UART相关寄存器和I/O进行初始化,并设置串口通信波特率,开启串口中断等;
    (2)串口中断处理:主要对串口缓存进行监控,当收到数据时进行中断接收处理,并给出响应;
    (3)串口收发:根据串口通信协议,把终端相关报文或消息通过串口发送UC864,同时接受UC864收到的无线信号。
    整个通信逻辑的核心伪代码如下所示:
    int 3GComProcess()
     {
         regInit();                    //相关寄存器初始化
         uartInit();                          //串口初始化
         Lock(mutex);               //获取串口访问信号量
         uartIntEnable();                            //串口中断使能
         while(flag)                           //循环收发消息
         {
           If(flag==ERROR)
           break;
           Swtich(cmdType)
           {
          case: SENDTYPE
          send(info);
          break;
          case:REVTYPE
          receive(info);
           break;
           case:default
           break;
         }
         }
         uartIntDis();                           //串口中断禁能
         Unlock(mutex);                                //释放信号量
         Return ERROR;
         }
    从驱动软件逻辑执行流程可见,该设计理念把整个驱动分为软件驱动和硬件驱动。软件驱动主要负责与上层应用的接口通信,硬件驱动主要负责底层的信号传输,其核心处理过程已被封装到芯片内部。因此,整个逻辑模型以“下层为上层服务”为设计理念,以降低模块间耦合度,提高应用开发效率为目标,有效保障了接口的安全性。
    综上所述,3G无线通信模块在成本不变的基础上,将较复杂的协议栈处理过程集成到芯片内部,显著提高了模块的独立性和实用性。另外,本驱动设计以高效率和低耦合为目标,分层设计驱动单元,尽量为开发者提供简捷实用的接口,进而缩短3G模块应用功能的开发周期。
3 系统远程服务器端

 


    系统远程服务器端主要由通信服务器、数据库服务器和Web服务器组成,各服务器的主要功能如下:
    (1)通信服务器主要负责接收车载诊断终端发送的所有报文信息,并将其转存到远程数据库服务器。同时将来自Web服务器的所有指令转发到诊断终端;
    (2)数据库服务器用来保存诊断终端所有的采集信息,以及整套系统的用户管理信息;
    (3)Web服务器可以从数据库服务器或通信服务器获取特定车辆的各ECU状态信息和GPS定位信息,并用Web浏览器展示给远程诊断服务中心客服。
    通信服务器与多个3G终端模块建立远程无线连接,并实时接收和解析所有的诊断报文和GPS定位报文,当通信服务器超负载运行时,负载均衡服务器将超出负载的请求转移给其他通信服务器。数据库服务器包括两个功能模块,一个用来保存终端采样信号数据,另一个保存所有车辆的基本配置信息(包括车辆ID、诊断ID、终端DBC)。Web服务器主要通过访问ASP网页来实现对数据库或远程通信服务器的访问,并将所有关切信息分类展示给客服。
    远程诊断服务器数据核心处理流程为:车载诊断终端与通信服务器之间通过TCP/IP方式进行无线通信,通信服务器与Web服务器之间通过数据库进行数据交互。用户可以通过Web浏览器与Web服务平台进行交互,从而实现用户与诊断车辆ECU的交互,完成数据采集、监视、诊断和控制等功能,服务器架构模式如图3所示。

    通过该处理流程,远程车辆诊断服务中心可以采集特定车辆的各种CAN总线信号以及GPS车辆定位信号,并将采集到的相关车辆数据实时上传至远程数据库服务器。车辆运行异常时,相应异常报文将实时上传到远程服务器,并通过远程异常诊断机制,将诊断结果实时反馈到车辆终端,供司机快速做出处理,以保障车辆的运行安全。
    可见,车载诊断终端与远程车辆服务中心的互联和集成,不仅提高了整套诊断系统的智能性、实时性和准确性,而且有效提高了车辆运行的安全性。
4 实验结果及评价
    本研究选用飞思卡尔提供的i.MX6Q系列车规标准处理器作为硬件平台,其主要技术指标:1 GHz CPU主频,1 GB×32 DDR3(400 MHz),32 M×16 bit 并行NOR Flash,可扩充的NAND Flash接口,LVDS数字图形输出接口,并集成了基于OpenGL ES2.0和OpenVG1.1的GPU图形硬加速处理单元。软件平台采用加拿大哈曼公司开发的QNX硬实时操作系统,并利用Keil公司的IDE嵌入式开发套件进行逻辑设计和代码测试。
    采用北汽集团某车型CAN网络系统与本诊断终端互连。测试车辆的ECU单元主要包括发动机、天窗、车灯、车门和空调控制单元,其界面显示效果如图4所示。


    针对SGM和UC864两款无线通信模块传输速率进行的实验对比分析结果如表1所示,当其他条件完全相同时,UC864模块的传输速率约为SGM的2倍,数据丢失率约为后者的1/3,报文传输的实时性也有了一定程度的提升。另外,对传统诊断模式与Telematics诊断模式进行实验对标分析,实验数据如表2所示。由于终端庞大报文数据负载转到了远程服务中心处理,有效降低了终端CPU的负载,同时现代Telematics模式诊断的车辆ECU单元数约为传统模式的4倍,且其操作模式已经完全进入了智能化时代。因此,本文所做研究和实验不仅大胆改变了传统设计理念,而且以Telematics模型为核心设计理念,为未来诊断系统的发展提供了重要参考依据。

    以现代车控系统快速向复杂化、信息化、智能化转型为背景,以探索车辆诊断安全辅助系统的互连性、实时性和人性化为研究目标,设计了一套以Telematics为核心理念的智能车载3G远程诊断系统。采用以QNX系统为软件运行平台,进一步加强了系统的实时性和安全性,并通过CAN总线和GPS模块实时采集车辆状态信息。基于UC864模块设计的3G远程无线互联通信驱动层,实现了对车辆的全天候跟踪和监控。
参考文献
[1] 霍轶玥.上海通用Telematics系统优化方案研究与设计[D]. 上海:上海交通大学,2011.
[2] 曾锐利,肖云魁,周建新,等.汽车远程故障诊断与维修系统研究[J].电子测量技术, 2009,32(7):129-131.
[3] 张旭,冒晓建,王俊席,等.汽车远程诊断系统车载模块的研究和开发[J]. 车用发动机, 2011(1):14-17.
[4] 彭剑,叶枫,辛兢泽,等.汽车远程监控诊断系统的功能设计和应用研究[J].上海汽车, 2011,3(1):30-33.

此内容为AET网站原创,未经授权禁止转载。