一种服务诊断请求查找方法及装置制造方法及图纸

技术编号:9991065 阅读:105 留言:0更新日期:2014-05-02 04:37
本申请提供了一种服务诊断请求查找方法及装置,预先设置一查找表,并将查找表中的元素的值初始化为第一标识,方法包括:获取电子控制单元支持的诊断服务请求的服务标识集合,将服务标识集合中的服务标识按从小到大或从大到小的顺序排序,得到第一服务标识集合,按预设规则确定与每个服务标识对应的索引号,通过每个服务标识在第一服务标识集合中的排序确定与每个服务标识对应的第二标识,用第二标识替换通过对应索引号索引的第一标识,得到第一查找表;当接收到诊断服务请求的服务标识时,通过该服务标识确定第一索引号,从第一查找表中读取由第一索引号索引的元素。本申请可保证每个诊断服务请求的查找速度相同,且仅需一个查找工作量。

【技术实现步骤摘要】
【专利摘要】本申请提供了一种服务诊断请求查找方法及装置,预先设置一查找表,并将查找表中的元素的值初始化为第一标识,方法包括:获取电子控制单元支持的诊断服务请求的服务标识集合,将服务标识集合中的服务标识按从小到大或从大到小的顺序排序,得到第一服务标识集合,按预设规则确定与每个服务标识对应的索引号,通过每个服务标识在第一服务标识集合中的排序确定与每个服务标识对应的第二标识,用第二标识替换通过对应索引号索引的第一标识,得到第一查找表;当接收到诊断服务请求的服务标识时,通过该服务标识确定第一索引号,从第一查找表中读取由第一索引号索引的元素。本申请可保证每个诊断服务请求的查找速度相同,且仅需一个查找工作量。【专利说明】一种服务诊断请求查找方法及装置
本专利技术涉及汽车诊断通信
,尤其涉及一种服务诊断请求查找方法及装置。
技术介绍
随着电子技术的快速发展,汽车上广泛使用电子控制单元E⑶,这些E⑶之间一般通过控制器局域网CAN进行报文通信。在汽车行驶过程中,单个ECU除了需要和其它ECU进行通信以外,还会实时监测自身的一些故障状态,例如,和其它ECU之间是否丢失通信,一旦发生相应的故障,E⑶会按照固定的格式把故障信息保存在自身的Flash或者EEPROM中。如果发生了比较严重的故障,车主会将汽车送到4S店进行维修,此时,汽车维修人员将汽车诊断设备接入汽车车载诊断OBD接口,操作汽车诊断设备给ECU发送相应的指令,读取ECU中的故障信息,并根据读取到的故障信息查找故障维修手册进行检修。在这个过程中,汽车诊断设备需要按照固定的报文格式给ECU发送报文,即诊断服务请求,ECU收到诊断服务请求后,需要尽快查找、处理并给出诊断服务响应,这一通信过程即为诊断通信。国际化标准组织ISO专门就汽车诊断设备和ECU之间的诊断通信制定了相应的诊断协议,IS014229-1和IS015031-5是最为常见的诊断协议。其中,IS015031-5规定了 10个诊断服务请求(0x01,0x02,0x03,0x04, 0x05,0x06, 0x07,0x08, 0x09,OxOA), IS014229-1 规定了 25 个诊断服务请求(0x10,0x11,0x14,0x19,0x22,0x23,0x24,0x27,0x28,0x2A,0x2C,0x2E,0x2F,0x31,0x34,0x35,0x36,0x37,0x3D,0x3E,0x83,0x84,0x85,0x86,0x87),每个诊断服务请求的服务标识(Service Identifier, SID)都独立且唯一。对于与汽车排放相关的E⑶而言,例如,发动机管理系统,通常需要同时遵循IS014229-1和IS015031-5协议,对于其它E⑶而言,通常只需遵循IS014229-1协议即可。ECU收到汽车诊断设备发来的诊断服务请求后,必须在规定的时间内给出诊断服务响应,否则会造诊断通信失败,然后进行下一次诊断通信尝试。由于汽车维修人员在进行检修的过程中,需要频繁的操作汽车诊断设备,即向ECU发送很多诊断服务请求,如果单个诊断服务请求的处理速度过慢,累加到一起就会影响到整个故障检修的时间。因此,需要ECU软件开发人员除了遵循协议在规定的时间内给出诊断服务响应外,尽可能的提高每个诊断服务请求的查找效率。现有技术中,查找诊断服务请求通常采用for循环查找法。假设ECU需要同时支持IS014229-1和IS015031-5协议,即支持35个诊断服务请求,设计一个数组A,把ECU支持的诊断服务请求SID按照从小到大或者从大到小顺序存储起来,当收到任何一个诊断服务请求的时候,将其对应的SID值与数据A中的元素进行比对,直到找到相等的结果,才停止比对。使用这种方法进行数据查找的话,当诊断服务请求的SID等于数据A中的第一个元素的时候(SID=A),查找时间最短,只需要进行I次查找工作,反之,当诊断服务请求SID等于数据A中的最后第一个元素时(SID=A),查找时间最长,需要进行35次查找工作,这种查找方式导致不同的SID的查找速度有很大差异。
技术实现思路
有鉴于此,本专利技术提供了一种服务诊断请求查找方法及装置,用以解决现有技术中的查找方式导致不同的SID的查找速度有很大差异的问题,其技术方案如下:—种服务诊断请求查找方法,预先设置一包括预设个数的元素的查找表,并将所述查找表中的元素的值初始化为第一标识,所述方法包括:获取电子控制单元所支持的诊断服务请求的服务标识集合;将所述服务标识集合中的服务标识按从小到大或从大到小的顺序进行排序,得到第一服务标识集合;按预设规则确定与每个服务标识对应的所述查找表的索引号,通过每个服务标识在所述第一服务标识集合中的排序确定与每个服务标识对应的第二标识,用确定出的第二标识替换通过对应索引号索引的第一标识,得到第一查找表;当接收到诊断服务请求的服务标识时,通过接收的服务标识确定第一索引号,从所述第一查找表中读取由所述第一索引号索引的元素。其中,所述查找表包括72个元素,所述服务标识集合中的服务标识按从小到大的顺序进行排序;则所述按预设规则确定与每个服务标识对应的所述查找表的索引号,具体为:对于所述第一服务标识集合中的目标服务标识,判断所述目标服务标识是否大于0x80 ;如果是,则用所述目标服务标识减去0x40,将所述目标服务标识减去0x40得到的值转换为十进制数,并将所述十进制数确定为与所述目标服务标识对应的索引号;如果否,则将所述目标服务标识转换为十进制数,并将所述十进制数确定为与所述目标服务标识对应的索引号。其中,当接收到诊断服务请求的服务标识时,通过接收的诊断服务请求的服务标识确定第一索引号,具体为:当接收到诊断服务请求的服务标识时,判断接收的诊断服务请求的服务标识是否大于0x80 ;如果是,则用所述接收的诊断服务请求的服务标识减去0x40,将所述接收的诊断服务请求的服务标识减去0x40得到的值确定为所述第一索引号;如果否,则将所述接收的诊断服务请求的服务标识确定为所述第一索引号。其中,所述查找表包括135个元素;则按预设规则确定与每个服务标识对应的所述查找表的索引号,具体为:对于所述第一服务标识集合中的目标服务标识,将所述目标服务标识转换为十进制数,并将所述十进制数作为与所述目标服务标识对应的索引号;当接收到诊断服务请求的服务标识时,通过接收的诊断服务请求的服务标识确定第一索引号,具体为:当接收到诊断服务请求的服务标识时,将接收的诊断服务请求的服务标识确定为所述第一索引号。所述方法还包括:当所述第一索引号索引的元素的值不为所述第一标识时,调用与所述第一索引号索引的元素的值对应的诊断服务请求处理函数对接收的诊断服务请求进行处理。一种服务诊断请求查找装置,预先设置一包括预设个数的元素的查找表,并将所述查找表中的元素的值初始化为第一标识,所述装置包括:获取模块,用于获取电子控制单元所支持的诊断服务请求的服务标识集合;排序模块,用于将所述获取单元获取的所述服务标识集合中的服务标识按从小到大或从大到小的顺序进行排序,得到第一服务标识集合;第一确定模块,用于按预设规则确定与每个服务标识对应的所述查找表的索引号;第二确定模块,用于通过每个服务标识在所述第本文档来自技高网
...
一种服务诊断请求查找方法及装置

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:刘小燕
申请(专利权)人:北京经纬恒润科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1