LIN协议介绍

LIN网络

        LIN网络由一个主节节点和一个或多个从节点组成,由主节点根据调度表决定当前网络中传输的信息。当前网络中的报文可以一发一收或一发多收。

9e5e78e11f36d9439c5dcf8ecce47de6.png

 LIN协议规范链接

1.【免费】LINV1.3V2.0V2.12.2A协议规范资源-CSDN文库

2.  LINISO179871-8规范文档资源-CSDN文库

LIN一致性测试规范SAE-J2602协议资源-CSDN文库

LIN数据帧格式

        帧包含帧头(Header)和应答(Response)两部分。帧头由主机发送,从机接收帧头后对帧头作出应答或者接收应答,亦或是不作任何反应。

25c05fad629d5177fd1608d276e76e30.png

         帧头主要由间隔场(SBF)、同步场(Sync-Field)、PID场(受保护ID)三部分组成,由主节点发起。

         间隔场: 表示一帧的开始,至少由13个显性位和间隔鉴定符组成(间隔鉴定符至少由一个隐性位组成),可以通过改变波特率实现间隔场的发送。而从节点只要检测到11位以上就可以认为检测到间隔场。

        同步场:用于从节点校准自己的波特率,用于与主节点的波特率保持一致,是固定的0X55数值。从节点可以通过检测下降沿之间的时间,计算出主节点的波特率。

        PID场:由前6位标识符和后2位奇偶校验位组成,6位标识符用来标识帧的ID,范围从0 - 63。PID后两位奇偶校验公式如下:

P0校验位‌:‌P0 = ID0 ⊕ ID1 ⊕ ID2 ⊕ ID4‌‌12

“⊕”代表异或运算。

P1校验位‌:‌P1 = ¬(ID1 ⊕ ID3 ⊕ ID4 ⊕ ID5)‌‌12

“¬”代表取非运算。

        数据场:包含了两种数据类型,信号和诊断消息。数据内容为信号时,数据有效长度可以为1到8。数据内容为诊断信号时,数据长度固定为8位。数据在被发送的过程中低字节数据先发,同时每个字节的低位先发。

        校验和场:分为经典校验(v1.3)和增强校验(v2.0)。经典校验只校验数据场部分,增强型校验校验数据场和PID场。ID(标识符)为0x3C、0x3D时只能使用经典校验。采用翻转8位数据和进行校验。

064379d324a04454d38eea5a3ad9da62.png

dc3e29a585f37cea7ca7aba14c564079.png

由于由些芯片性能比较差,每个字节中间会间隔一定的时间,如果芯片性能好字节之间是连续的。

帧类型

        帧的类型包含无条件帧、诊断帧、事件触发帧、保留帧和零星帧。

无条件帧:帧的标识符范围0 - 59(0 - 0x3b),帧头都由主节点发起,数据可由主节点或者从节点发送。实现主节点向从节点发送数据、从节点向主节点发送数据和从点2向从点1发送数据的三种情况。

7ae7cb14526145cac8847910ccfed3da.png

诊断帧:帧的ID固定为0x3C(主动请求)和0x3D(发送响应),帧的数据长度固定为8字节。同时帧的格式又可以分为单帧、首帧和连续帧。当数据可以用一个PDU(最小数据单元)发送完成时可以用单帧来发送,如果数据量比较大,需要拆分多个PDU来发的时候用连续帧来发送,首帧为连续帧的第一条报文。

8a419f5d70e954fd07a4d9922ace62ca.png

NAD的取值范围:NAD表示当前帧需要发送给从点的标识。

a74be28ffa620f0f1634e2486ae8e0fe.pngPCI协议控制信息: PCI的高四位用来指示当前帧的类型。后4位在单帧中用来指示有效数据的长度,在首帧和后面一个字节一起组成12bit用来指示数据块的长度(最大4095字节),在连续帧中用来指示当前帧在连续帧中的顺序。

03a64732735500e9febbb45d92f4d82f.png

SID:服务标识符,0-0xAF和0xB8-0xFE表示诊断,0xB0-0xB7表示节点配置。

07920403b1b15a003bfccdd10a7d3779.png

RSID:对应SID的响应服务标识符,在响应帧中发送 RSID=SIDM+0x40。

 事件触发帧:由事件触发,可以减少一些小概率事件在调度表中轮询,较少带宽的占用。如果事件发生冲突由冲突调度表来处理。

零星帧:只有无条件帧中有信号被更新时,主节点才会发送。其发布者对帧头进行响应。

调度表

        主节点可以有多张调度表,并根据调度表发送帧头报文,调度整个网络的报文。从而实现报文有序的发送。

4a030204fe53072ff1dbba1d37bcdad9.png

主节点发送帧头的状态切换

3c2c59d58499f31371927a38e5ade6be.png

从节点的接收&发送数据状态切换

d75a27fd7c11c37df725c066c59423da.png

网络管理

        主节点可以通过发送一帧ID为(0x3C),第一个字节为0,其余字节都为0xFF的报文让正在工作的节点进入睡眠。从节点在接收到睡眠指令时也可以选择不进入睡眠。或者总线空闲4到10s所有节点进入睡眠状态。所有节点都可以发送唤醒信号,然后节点进入初始状态。唤醒信号为一个250us(在20Kbit/s波特率)到5ms(在1Kbit/s波特率)的显性电平(5个位)。

065836ab801695adfb50da69e617ae0f.png

070ab06558b662c64d87bb27ddb9c128.png

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值