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)时按顺序发送其它系统信息;系统信息的解释与读取系统版本信息同;系统初始化请参照下图:
帧结构
长度: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
|