1:LIN同步间隔段的最小长度
如果问!LIN同步间隔段的最小长度?大多数同学会一口答出">13bit位的显性位"
那如果问!最大长度是多少?
则很少有同学会会突然懵逼!
资料上给出的答案,下图
上限应保证帧的最大传输时间
THeader_Maximum
在规定范围之
内。
1.1:THeader_Maximum是什么东西
*)先看整体的帧头结构
1: 同步间隔段:需要明确一点,很多资料,介绍帧结构时。把>13bit显性位的段和同步间隔段间隔符,放一起叫做同步间隔段。
如果按照此标准,那么同步间隔段,至少>=14个bit的时间(注意不是14bit的显性位,间隔符规定死的,必须是隐性位)。
2:同步段10bit位+至少一个隐性位的字节间隔
3:受保护ID10bit,+应答间隔
1.2:最大传输时间是指什么?
T
Frame_Maximum
为帧在总
线上传输的最大时间;
T
Header_Maximum
为帧头在总线上传输的最大时间;
T
Response_Maximum
为应答在总线上传输的最
大时间;
T
Header_Nominal
为帧头额定传输时间:同步间隔段
(
包含同步间隔和同步间隔段间隔符
)
的最小传输时间
+
同步段传输时间
+
受保护
ID
段传输时间;帧头的余量T
Header_Rest
包含字节间间隔+同步间隔段超过13bit显性位的时间,规定为帧头额定传输时间的
0.4
倍;
计算帧传输时间,必须以波特率为基准计算,我们以目前最常见的19200kbs,每bit的时间≈52us。
,根据上面的定义:
Theader_Normal= 13+1+10+10=34bit*52us=1768us=1.768ms
Theader_Maximum=
Theader_Normal*1.4 = 2475.2
THeader_Rest=Theader_Maximum-
Theader_Normal=707.2
T
Header_Rest
=字节间间隔+同步间隔段超过13bit显性位的时间。
从帧结构中可以看出。帧头只包含一个字节间隔,长度最小为1bit隐性位
THeader_Rest/单位bit时间=13.6,这个数字代表帧头的余量T
Header_Rest
包含字节间间隔+同步间隔
段超过13bit显性位的时间+同步间隔段间隔符长度,<13.6bit,我们取整<13bit
字节间间隔 | 同步间隔段超过13bit显性位的时间 | 同步间隔段间隔符长度 | |
1 | 11(+规定的至少13bit)=24bit | 1 | |
2 | 9+规定的至少13bit)=22bit | 2 | |
5 | 3规定的至少13bit=16bit | 5 | |
12 | 0+13=13 | 1 | |
1 | 0+13=13 | 12 |
总结规律如下:同步间隔段显性位[13-24]
两个间隔符=【1-12】
应答的余量
T
Response_Rest
包含
应答间隔以及字节间间隔,规定为应答额定传输时间的
0.4
倍;
N
data
表示数据段包含
N
个字节。
以8个数据的lin帧为例:
字节间隔=8个