打印
[其他]

汽车故障诊断通讯协议之BOSCH协议

[复制链接]
849|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

BOSCH协议是BOSCH公司开发的一种通信协议,符合ISO9141标准。下面从物理层特性、系统进入、帧结构、命令交互、交互时间参数、常用命令字等几个方面来介绍这种协议。

  • 物理层特性


        BOSCH协议空闲电平通常为12V;数据位格式位为1+8+1,没有校验位。本协议的波特率在进入系统后确定。确定方法如下:

        进入系统时,ECU接到Tools以5bps的波特率发送的地址码后,向Tools发送0x55H,Tools通过计算0x55H的波特率,并把此波特率作为Tools的通讯波特率,并且在整个通讯过程中,波特率固定不变。

  • 系统进入初始化


        本协议使用K、L的方式通讯,因此,需要用K线和L线进行触发,唤醒ECU,进入系统,具体步骤如下

    • Tools在K、L线上同时以5bps的波特率发送地址码,以进入地址码所对应的系统;

    • 关闭L线;

    • Tools等待接收Ecu回送0x55H,接到后计算出0x55H的波特率并设置通讯波率;

    • Tools继续接收Ecu发送的Keyword 1和Keyword 2,在接收到Keyword 2后,延时20ms将Keyword2取反发回给ECU;


        在整个系统进入过程中Tools接收一个byte最长等待时间为2s。若系统进入有错误必须保证通讯线上有3s的时间无任何数据传输,确保Ecu已经是睡眠状态,再按以上步骤重新触发,进入系统;Ecu接收到求反的Keyword 2后,将发送第一帧系统信息,并在收到链路保持命令继续(03H,xxH,09H,03H)时按顺序发送其它系统信息;系统信息的解释与读取系统版本信息同;系统初始化请参照下图:

  • 帧结构

    长度
    记数字节
    命令字
    数据区
    结束标志 03H

    长度:1个字节,表示命令中长度字节后跟随的字节数。

    记数字节:命令计数器,1个字节,每一条命令都会在上一条命令的命令记数字节基础上加1,作为本次通信数据的命令记数值,以保证接收发送的连续性校验。

    命令字:1个字节,表明所要做的操作。

    数据区:附加信息,若干字节不定。

    结束标志:固定以03H为Request命令的结束符。

    举例如下:

    04H 01H 29H 01H 03H

    第一个字节04H为长度信息

    第二个字节01H为命令计数器

    第三个字节29H为命令字,表示读取数据流

    第四个字节01H为附加信息,表示读取通道01的数据(可省略)

    最后一个字节03H为结束标志

  • 命令交互


        在命令交互过程中,接收方每接到一个byte,就立即取反发回,直到接收到结束标志为止(注:结束标志0x03不取反发回)。一旦接到结束标志,接收方则可以开始下一帧命令的发送。实际命令举例如下:

    Tools:  03H 01H 09H 03H

    ECH:    03H 02H 09H 03H

  • 交互时间参数


    协议中包含4个时间参数,如下:

    ECU返回keyword 2与设备发送Keyword 2的时间间隔为40ms

    设备接收到ECU命令字到发送命令字取反的时间间隔为2ms

    设备发送命令字到ECU发送命令字取反的时间间隔为2ms

    设备发送完一帧命令后等待ECU响应的时间,通常为75ms~90ms

    设备接收到ECU响应后到发送下一帧命令的时间,通常为20ms~26ms

  • 常用命令字


    链路保持:09H

    读故障码:07H

    清除故障码:05H

    读版本信息:00H

    读数据流:29H

    系统退出:06H


使用特权

评论回复

相关帖子

沙发
airwill| | 2020-8-18 20:26 | 只看该作者
有点奇怪的协议,  不知道这样定义, 效率低下,  有啥优势?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

742

主题

11013

帖子

81

粉丝