对于使用 CAN 的诊断通信系统,每个单帧 (SF)、 第一帧 (FF)、 连续帧 (CF) 或流控 制帧 (FC) 有 8 字节数据场;其中单帧的 CAN_DL≤8 且第一帧的 FF_DL≤4095;下表 中已定义 每个报文的类型。 CAN FD 帧的数据场支持最大 64 个字节,可包含的帧类型有单帧 (SF)、 第一帧 (FF)、 连续帧 (CF) 或流控制帧 (FC)。包含单帧的 CAN_DL>8 和第一帧的 FF_DL>4095。下表已定义每个报文的类型。

(1)单帧传输
       单帧意味着这一帧的数据场部分有效字节数<=8,不足的地方多以0xAA/55/CC等填充;无论单帧还是多帧,每一帧的0号字节的高四位用于区别帧类型(0/1/2/3);对于单帧SingleFrame,0号字节低4位【SF_DL】表示DLC(Data-Length-Control),表示需要读后面多长的数据(即后续有多少有效的数据位);
例:
02 10 03 55 55 55 55 55 -----> 有效数据是10 03
01 10 03 55 55 55 55 55 -----> 有效数据是10


(2)多帧传输
       首帧FF ---- FirstFrame,0号字节高4位固定为1,低4位加上1号字节组成DLC,表示多帧传输的数据长度(如果是22/2R读写数据服务,需要包含SID+DID)
       连续帧CF ---- ContinueFrame,0号字节高4位固定为2,低4位表示包的连续号SN,后面跟数据。SN根据以下规则定义: 首帧的SN值为 0,连续帧的第一帧SN值为1, 每增加一个连续帧,SN值增加1, 流控制帧不影响SN值的计算,当SN值达到15后,下一个连续帧的SN值为0。


       流控帧FC ---- FrameControl,0号字节高4位固定为3,低4位表示流状态参数FS。
FS(流控状态):0,CTS表示继续发送;1,WT表示等待,令发送方停止发送,直到下一个流控帧的到来;2,OVFLW表示溢出,当接收方接收到首帧,判断到FF_DL的长度比接收方缓冲区大时发送,随后发送方终止发送。1号字节表示BS(BlockSize)块大小,即告知发送方允许接下来发多少帧连续帧。当BS=0时,块大小不做限制。2号字节表示STmin(SeparationTimeminimum),规定了连续帧发送的最小时间间隔。

 

       下图为多帧传输机制,适用于 CAN 和 CAN FD 诊断通信系统。多帧传输时,应支持 ISO
15765-2 定义的流控传输方式。

                          

 
       为了确保正确的通信,每个控制器都必须遵守一组定时参数,这些参数在 ISO_15765-2 中
定义,仅适用于 CAN 控制器。支持以下参数集。
 

例:

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐