CANTP单帧&多帧数据结构及时间参数


一、 CANTP功能

CANTP(CAN TransportLayer),位于通信栈的传输层,是专门服务于UDS诊断,位于PDUR与CANIF之间,实现了PDUR到CANIF的拆包发送与CANIF到PDUR的组包接收功能。对于多帧大数据支持通过流控帧控制数据发送速率并提供数据发送与接收过程中超时处理功能。
单帧:SF(Single Frame),用于发送单个CAN帧即可发送完成的数据;
首帧:FF(First Frame),用于发送较大数据情况下的第一帧;
连续帧:CF(Consecutive Frame),用于发送较大数据情况下首帧外的其余部分;
流控帧:FC(Flow Control),接收后用于调节数据发送速度。

二、组包

单帧(SF)

can		
	Byte1[7:4]	 固定为0,表示单帧
	Byte1[3:0]	表示数据长度,范围为0~7。
		
canfd	
	Byte1[7:4] 	固定为0,表示单帧。
	Byte1[3:0]	固定为0
	Byte2[7:0] 	表示数据长度,范围0~63。

首帧(FF)

can&canfd	长度<4096
	Byte1[7:4]	固定为1,表示首帧。
	Byte1[3:0]+Byte2[7:0]	合起来表示数据长度,最大为4095
	
can&canfd	长度>4096
	Byte1[7:4]	固定为1,表示首帧。
	Byte5[7:0]+Byte6[7:0]	合起来表示数据长度如果大于4095	

流控帧(FC)

can&canfd	
	Byte1[7:4]	固定为3,表示流控帧。
	Byte1[3:0]	表示帧状态,0(继续发送)1(等待)2(溢出)
	Byte2 	BlockSize(BS), 表示上位机收到流控帧后,可发送的连续帧数量。设置为0时,发送数量无限制
	Byte3 	STmin(ms),表示上位机发送 连续帧之间的间隔

连续帧(CF)

can&canfd	
	Byte1[7:4]	固定为2,表示连续帧。
	Byte1[3:0]	 连续帧编号,范围是0~F,循环增加。
	要注意第一包连续帧编号为1,增加到F之后,后续所有的连续帧编号都是从0开始增加。

多帧时序

		1. Sender ->发送首帧
		2. Receiver ->回复流控帧
		
		3. Sender-> 发送连续帧(根据流控帧确认发送连续帧的间隔和次数)
		
		4. Receiver -> 收到指定数量的连续帧后,再次回复流控帧
		
		5.  Sender-> 发送连续帧(根据流控帧确认发送连续帧的间隔和次数)	

三、时间参数

含义

● 发送方:
– N_As:从数据发送到数据被确认发送的最大间隔时间,如果超过这个时间则中断发送。

– N_Bs:从数据确认发送到收到流控帧的最大间隔数据,如果超过这个时间则中断发送。

– N_Cs:从流控帧接收或CF确认发送到数据请求发送成功的最大时间间隔,如果超过这个时间则中断发送。

● 接收方:
– N_Ar:从数据(FC)请求发送到数据发送成功的最大数据间隔,如果超过这个时间则中断接收。

– N_Br:从FF或者CF确认发送到FC请求的最大时间间隔,如果超过这个时间则中断接收。

– N_Cr:从CF接收到下一个CF接收或者FC接收的最大时间间隔,如果超过这个时间则中断接收。

一般N_As为0.07,N_Bs为0.15,N_Cs为0.05,N_Ar为0.07,N_Br为0.05,N_Cr为0.15。

Block Size

BS即块大小,收到一帧流控帧后发送连续帧的最大数量,用来限制连续发送连续帧的最大数量,如为0则没有限制可以一直发,直到数据发送完毕。

STmin

STmin即连续帧发送的最小时间间隔,代表了接收方的接收能力。

  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值