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个 
 
 







![【C++入门到精通】智能指针 auto_ptr、unique_ptr简介及C++模拟实现 [ C++入门 ]](https://img-blog.csdnimg.cn/direct/ad0cc2887ce140ed8f11e8276788b498.png#pic_center)










