OBD盒子
通过分析发现OBD盒子主要实现的功能为数据分析,监控提醒类被动型功能,日照专业OBD在线监测系统,很少能实现车辆控制类(如车窗控制、发动机点火控制等)主动型功能。这是为什么呢? 数据分析、监控类功能实现原理:车辆工作时各个节点会不断的向总线发送各类CAN报文,OBD盒子可以读取总线上的CAN报文,日照专业OBD在线监测系统,完成车辆信息的采集,如通过监控EngineRun,BatteryVotage信号值便可分别实现对汽车启动状态和电瓶电压值的监控;通过对VehicleSpeed信号监控,日照专业OBD在线监测系统,便可统计汽车运行实时速度。当然这一过程涉及各个厂家具体CAN协议解析与**。
02服务一旦ECU确定了某个故障,就要把这个故障被确定时的相关状态信息“冻结”下来,即所谓的冻结帧,这些状态信息对车辆故障的确定非常重要,因为它们记录了车辆发生故障时的很多相关信息,这些状态信息数据必须在ISO-15031-5的PID列表中选择(与Service 01使用的PID列表相同)。02命令和01命令的使用方式非常相似,只不过02读取的是故障发生时的数据,而01读取的当前数据,数据格式和含义都是相同的。与01命令不同的是,02命令中多了一个frame字节, OBD规定,用frame = 0x00来**读取冻结帧。如果主机厂想自己再定义些什么其他的帧,或者多定义几个冻结帧,则可以给frame分配上其他的编号。 需要指出的是,OBD只规定了ECU需要为一个DTC存储冻结帧,当ECU中同时存在多个DTC时,就要根据优先级来判定存储谁的冻结帧了。
01服务该服务用于读取动力系统当前的诊断数据,比如某个传感器的状态、发动机转速、DTC数量、故障指示灯是否亮起等,命令格式是SID 若干PID(Parameter ID)。每个PID也是一个byte,所以理论上PID取值范围是0x00至0xFF,但是ISO-15031-5只明确定义了部分PID,其余的值都保留。问题来了,OBD定义了如此多的PID,那么某个ECU到底支持哪些PID,诊断仪是如何获知的呢?实际上,PID分为两类,一类用于表征具体的数据,而另一类则用于指出该ECU支持哪些PID。用于第二种目的的PID分别是0x00 , 0x20 , 0x40…. 读取其中一个ID后ECU会返回4个字节的结果,这4个字节中的每个bit表示其所对应的PID是否被支持。以下面这个例子来说明就很容易理解了: OBD request for SID 01 OBD response for SID 01 通常来说,诊断仪要首先读取00、20、40这些ID,然后就知道ECU支持哪些其他的PID了,而其他的PID就是很直接地表示某种数据,在ISO-15031-5的附录中有全部数据格式的定义。
文章来源地址: http://huanbao.m.chanpin818.com/hjjcyq/zxjcyly/deta_3892070.html
免责声明: 本页面所展现的信息及其他相关推荐信息,均来源于其对应的用户,本网对此不承担任何保证责任。如涉及作品内容、 版权和其他问题,请及时与本网联系,我们将核实后进行删除,本网站对此声明具有最终解释权。