LIN网络
LIN网络由一个主节节点和一个或多个从节点组成,由主节点根据调度表决定当前网络中传输的信息。当前网络中的报文可以一发一收或一发多收。
LIN协议规范链接
1.【免费】LINV1.3V2.0V2.12.2A协议规范资源-CSDN文库
2. LINISO179871-8规范文档资源-CSDN文库
LIN一致性测试规范SAE-J2602协议资源-CSDN文库
LIN数据帧格式
帧包含帧头(Header)和应答(Response)两部分。帧头由主机发送,从机接收帧头后对帧头作出应答或者接收应答,亦或是不作任何反应。
帧头主要由间隔场(SBF)、同步场(Sync-Field)、PID场(受保护ID)三部分组成,由主节点发起。
间隔场: 表示一帧的开始,至少由13个显性位和间隔鉴定符组成(间隔鉴定符至少由一个隐性位组成),可以通过改变波特率实现间隔场的发送。而从节点只要检测到11位以上就可以认为检测到间隔场。
同步场:用于从节点校准自己的波特率,用于与主节点的波特率保持一致,是固定的0X55数值。从节点可以通过检测下降沿之间的时间,计算出主节点的波特率。
PID场:由前6位标识符和后2位奇偶校验位组成,6位标识符用来标识帧的ID,范围从0 - 63。PID后两位奇偶校验公式如下:
P0校验位:P0 = ID0 ⊕ ID1 ⊕ ID2 ⊕ ID412
“⊕”代表异或运算。
P1校验位:P1 = ¬(ID1 ⊕ ID3 ⊕ ID4 ⊕ ID5)12
“¬”代表取非运算。
数据场:包含了两种数据类型,信号和诊断消息。数据内容为信号时,数据有效长度可以为1到8。数据内容为诊断信号时,数据长度固定为8位。数据在被发送的过程中低字节数据先发,同时每个字节的低位先发。
校验和场:分为经典校验(v1.3)和增强校验(v2.0)。经典校验只校验数据场部分,增强型校验校验数据场和PID场。ID(标识符)为0x3C、0x3D时只能使用经典校验。采用翻转8位数据和进行校验。
由于由些芯片性能比较差,每个字节中间会间隔一定的时间,如果芯片性能好字节之间是连续的。
帧类型
帧的类型包含无条件帧、诊断帧、事件触发帧、保留帧和零星帧。
无条件帧:帧的标识符范围0 - 59(0 - 0x3b),帧头都由主节点发起,数据可由主节点或者从节点发送。实现主节点向从节点发送数据、从节点向主节点发送数据和从点2向从点1发送数据的三种情况。
诊断帧:帧的ID固定为0x3C(主动请求)和0x3D(发送响应),帧的数据长度固定为8字节。同时帧的格式又可以分为单帧、首帧和连续帧。当数据可以用一个PDU(最小数据单元)发送完成时可以用单帧来发送,如果数据量比较大,需要拆分多个PDU来发的时候用连续帧来发送,首帧为连续帧的第一条报文。
NAD的取值范围:NAD表示当前帧需要发送给从点的标识。
PCI协议控制信息: PCI的高四位用来指示当前帧的类型。后4位在单帧中用来指示有效数据的长度,在首帧和后面一个字节一起组成12bit用来指示数据块的长度(最大4095字节),在连续帧中用来指示当前帧在连续帧中的顺序。
SID:服务标识符,0-0xAF和0xB8-0xFE表示诊断,0xB0-0xB7表示节点配置。
RSID:对应SID的响应服务标识符,在响应帧中发送 RSID=SIDM+0x40。
事件触发帧:由事件触发,可以减少一些小概率事件在调度表中轮询,较少带宽的占用。如果事件发生冲突由冲突调度表来处理。
零星帧:只有无条件帧中有信号被更新时,主节点才会发送。其发布者对帧头进行响应。
调度表
主节点可以有多张调度表,并根据调度表发送帧头报文,调度整个网络的报文。从而实现报文有序的发送。
主节点发送帧头的状态切换
从节点的接收&发送数据状态切换
网络管理
主节点可以通过发送一帧ID为(0x3C),第一个字节为0,其余字节都为0xFF的报文让正在工作的节点进入睡眠。从节点在接收到睡眠指令时也可以选择不进入睡眠。或者总线空闲4到10s所有节点进入睡眠状态。所有节点都可以发送唤醒信号,然后节点进入初始状态。唤醒信号为一个250us(在20Kbit/s波特率)到5ms(在1Kbit/s波特率)的显性电平(5个位)。