LIN协议学习总结

一、LIN总线应用场景

​ LIN总线在汽车应用方面主要应用于座位、车门与天窗模块、开关面板汽车方向盘、乘员舒适系统等外围ECU实时性要求不高或不需要精确容错的场景。

二、LIN总线特点

  • 串行通信(线间干扰小,节省线束,传输距离长

  • 物理层基于ISO9141

  • 单线传输(总线电压12V

  • 最高传输速率20kbps(满足车身大部分应用需求

  • 单主多从式结构(不存在冲突,无需仲裁

  • 基于UART/SCI接口(几乎所有MCU都具备LIN总线硬件基础

  • 从节点无需晶振或陶瓷振荡器就可以实现同步(利用报头里的同步场实现同步

  • 可计算的信号传输的延迟时间(网络通信可预期

  • 可灵活增加或减少从节点(无需改变其他节点或硬件电路

  • 一条总线最多可连接16个节点

LIN网络拓扑结构:

在这里插入图片描述

特点:

  • 一个LIN网络由一个主任务,若干个从任务组成
  • 主节点既有主任务又有从任务
  • 从节点只包含从任务
  • 主任务负责决定总线上的报文,从任务提供每一帧的数据

LIN报文帧:

在这里插入图片描述

通信原理:主任务发送报头,从任务用响应来补充报头形成完整报文

系统灵活性:能自由增减从节点,不需要改变其他从节点的软硬件

报文传输:报文的内容有ID来定义(与CAN相似)

广播:所有节点都能够同时地接受和响应总线上的帧

三、LIN总线详解

1、帧的结构

在这里插入图片描述

字节间隔位于每个字节之间,响应间隔位于报头与响应之间:

  • 留给MCU足够的处理时间
  • 帧长度可能增长
  • 最小值可以是0

1)字节场(Byte Field)

在这里插入图片描述

  • 基于SCI的通信格式
  • 发送一个字节需要10个位时间(TBIT)

2)间隔场(Break Field)

在这里插入图片描述

  • 表示一帧报文的起始,由主节点发出
  • 间隔信号至少由13个显性位组成,间隔界定符至少由1个隐形位组成
  • 间隔场是唯一一个不符合字节场格式的场
  • 从节点需要检测到至少11个显性位才认为是间隔信号

3)同步场(Sync Break Field)

在这里插入图片描述

  • 确保所有从节点使用与主节点相同的波特率发送和接收数据

4)标识符场(Identifier Field)

在这里插入图片描述

  • 帧ID的范围从0到63(0x3f)
  • 奇偶校验符(Parity)P0,P1:

在这里插入图片描述

5)数据场(Data Field)

在这里插入图片描述

  • 数据场长度1到8个字节
  • 低字节先发,低位先发
  • 如果某一信号长度超过1个字节,采用低位在前的方式发送(小端)

6)校验和场(Checksum Field)

在这里插入图片描述

  • 用于校验接收的数据是否正确(1个字节)
  • 经典校验:只校验数据场部分
  • 增强校验:校验数据场部分+ID部分
  • 标识符为0x3C(60)和0x3D(61)的帧只能使用经典校验

2、帧类型

1)无条件帧(Unconditional Frame)

​ 无条件帧是具有单一发布节点,无论信号是否发生变化,帧头都被无条件应答的帧。 无条件帧在主机任务分配给它的固定的帧时隙中传输。总线上一旦有帧头发送出去,必须有从机任务作应答(即无条件发送应答),

特点:

  • 标识符(ID)为0-59(0x00-0x3b)
  • 标准LIN帧类型,用于周期通信
  • 主任务发出报头,相应的从任务对报头提供响应帧,所有节点接收

三种情况:

在这里插入图片描述

2)事件触发帧(Event Triggered Frame)

​ 事件触发帧是主机节点在一个帧时隙中查询各从机节点的信号是否发生变化时使用的帧,当存在多个发布节点时,通过冲突解决进度表来解决冲突。事件触发帧可以增强LIN总线的响应能力,避免为了很少发生的事件,而对从节点进行轮询,从而浪费了大量的带宽。
特点:

  • 事件触发帧与一个或几个无条件帧相关联
  • 当其中的某个无条件帧有信号被更新时,才发送数据
  • 多个无条件帧冲突时,利用冲突解决调度表解决

在这里插入图片描述

​ 事件触发帧的典型应用就是轮询四个车门的开关情况。与其利用无条件帧每个车门轮询一遍,不如同时对四个车门进行询问,如果其中一个车门打开了(事件发生),该车门要对询问作应答,即事件触发的含义。这样做可以减小带宽,但同时会导致两种现象,其一就是没有车门被打开,即无节点应答——事件触发帧允许一帧中只有帧头无应答;另外一种情况就是冲突,即同时有大于等于两个车门被打开,对该问题同时作答——事件触发帧允许两个以上的节点对帧头作应答而不视为错误。当发生冲突时,主机节点需要重新作轮询,这样会增加一些响应时间,但由于事件触发帧本身就用来处理低概率事件,总的来说还是节省了带宽。

3)偶发帧(Sporadic Frame)

​ 偶发帧是主机节点在同一帧时隙中当自身信号发生变化时向总线启动发送的帧。当存在多个关联的应答信号变化时,通过事先设定的优先级来仲裁。偶发帧能够为进度表增加一些动态特性——当主机节点的信号发生变化时才有通信发生。事件触发帧和偶发帧反映了帧在不同时机(信号变化或未发生变化)的传输状况,引入它们的目的是为了增加通信的灵活性。
特点:

  • 关联的无条件帧没有信号变化,该间隙沉默,主机节点无需发帧头
  • 关联的无条件帧信号变化时,发送该关联无条件帧应答部分
  • 若两个及以上关联的无条件帧信号发生变化,按照事先规定的优先级进行发送

在这里插入图片描述

4)诊断帧(Diagnostic Frame)

​ 诊断帧包括主机请求帧和从机应答帧,主要用于配置、识别和诊断用。主请求帧:60(0x3c),从响应帧:61(0x3d)。
传输方式:
​ 主节点发送主请求帧报头和诊断服务,然后再发送从相应帧报头,等待从节点根据诊断服务发送响应。

在这里插入图片描述

5)保留帧(Reserved Frame)

​ 保留帧的帧ID为0x3E和0x3F,为将来扩展用。

3、调度表

作用:

  • 负责调度网络各报文发送的顺序
  • 为每帧报文分配发送时隙(slot)(发送时隙:报文可以被发送的时间,不同报文的发送时隙可能不同)
  • 调度表在网络系统设计阶段确定
  • 调度表使得LIN通信具有可预测性

在这里插入图片描述

在这里插入图片描述

切换调度表:

​ 主任务可以拥有多个调度表,并在不同的调度表之间进行切换,该处理方式增加通信的灵活性。

在这里插入图片描述

4、网络管理

1)初始化

​ 复位或者唤醒时先进入初始化状态,初始化时间小于100ms,初始化结束后进入工作模式。

2)睡眠

​ 主节点发送一帧ID为60(0x3C),第一个字节为0x00其余全为0xFF的主请求帧使处于工作模式的节点进入睡眠。

​ 从节点接收到睡眠指令后,也可以选择不进入睡眠状态而继续工作,这根据应用层程序而定。

​ 当总线空闲4到10秒的时候,所有从节点自动进入睡眠状态。(空闲的定义是没有显性位和隐形位之间的转换)

3)唤醒

​ 在一个处于睡眠状态的LIN网络中,任何一个节点都可以发送唤醒信号。

​ 唤醒信号是一个250us(在20Kbit/s波特率)到5ms(在1Kbit/s波特率)的显性电平(5个位)

​ 每一个节点都需要检测唤醒信号,当检测到唤醒信号之后,在100ms内完成初始化工作。

​ 当从节点发出唤醒信号之后150ms,主节点仍未发送报头时,从节点可以再次发送唤醒信号。当连续发送了3次唤醒信号之后如果主节点仍未发送报头,从节点要至少等待1.5秒以后才可以发送第四次唤醒信号。

在这里插入图片描述

  • 19
    点赞
  • 188
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
### 回答1: LIN引导程序(LIN bootloader)是用于在本地互连网(LIN)网络上进行固件升级的一种特殊引导程序。LIN是一种用于汽车电子系统中的串行通信总线协议,常用于汽车内部模块之间的通信。 LIN引导程序的主要作用是在汽车电子系统中引导、加载和更新应用程序的固件。它通过与LIN信号线上连接的设备进行通信,例如电子控制单元(ECU)或其他模块。在整个流程中,LIN引导程序负责协调通信和数据传输,以确保固件升级的成功。 通常,LIN引导程序由汽车制造商或系统开发人员开发并嵌入在汽车的ECU或其他模块中。在固件升级过程中,LIN引导程序会接收来自上位机或其他控制设备的指令,并根据指令执行相应的操作。它可以通过LIN总线发送和接收数据包,并确保固件升级的可靠性和完整性。 LIN引导程序的设计和实现需要考虑到许多因素,如通信协议、数据包结构、错误处理和固件验证等。它必须能够正确解析和处理来自上位机的指令,并能够启动和加载新的固件。同时,为了确保升级过程的安全性,它还需要具备防止非授权固件升级和数据篡改等功能。 总而言之,LIN引导程序是一种用于汽车电子系统中的固件升级引导程序,通过与LIN总线上连接的设备进行通信和数据传输,以实现可靠和安全的固件升级。它在车辆制造和维护的过程中起着重要的作用,确保电子系统的功能可靠性和灵活性。 ### 回答2: Lin bootloader是一种用于嵌入式系统中的引导加载程序。它的主要功能是将操作系统从存储设备加载到内存中,并启动系统的运行。Lin bootloader主要用于嵌入式系统中,可以轻松地加载和引导操作系统,使系统能够正常运行。 Lin bootloader的设计具有可靠性和稳定性。它能够检测和处理存储设备上的错误和损坏,确保操作系统正确地从存储设备加载到内存中。此外,Lin bootloader还可以验证操作系统的完整性和可信度,以防止恶意软件的入侵。 Lin bootloader还具有灵活性和扩展性。它可以根据具体系统的需求进行定制和配置。在引导过程中,可以加载和执行其他任务和模块,如设备驱动程序、配置文件和应用程序。这样,系统能够根据需要灵活地配置和加载相应的模块,实现更多的功能。 Lin bootloader的性能优化和效率也是其关键特点之一。它通过尽可能减少引导时间来提高系统启动速度。此外,Lin bootloader还具有低内存占用和低功耗的特点,以满足嵌入式系统在资源受限的情况下的需求。 总的来说,Lin bootloader是一种在嵌入式系统中使用的引导加载程序,它具有可靠性、稳定性、灵活性和高效性的特点,能够确保操作系统正确启动并提供系统自定义和扩展的能力。 ### 回答3: Lin Bootloader是一个用于启动Linux操作系统的引导加载程序。引导加载程序是计算机系统的第一个软件程序,负责在计算机启动时加载操作系统。 Lin Bootloader有多个功能。首先,它能够在计算机启动时进行硬件初始化,包括读取BIOS设置、检测可用的硬件设备等。接下来,它会根据预设的引导顺序来寻找可执行的操作系统。在Linux系统中,Lin Bootloader会搜索硬盘上的分区来定位操作系统的内核文件。 Lin Bootloader通常会提供一个菜单,列出所有可用的操作系统,供用户选择。用户可以通过键盘输入或者鼠标点击来选择操作系统,然后Lin Bootloader会加载对应的内核文件并启动操作系统。 Lin Bootloader还有一些其他重要的功能,比如支持启动加载程序的配置文件,用于定制操作系统的参数。它还可以支持多重引导,允许用户在多个操作系统之间切换。 总之,Lin Bootloader是一个重要的软件程序,它能够在计算机启动时加载Linux操作系统,并提供多种功能来方便用户选择和定制操作系统。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

studyingdda

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值