LIN总线基础

文章目录

  • 1 什么是LIN 总线?
    • 1.1 LIN总线的历史
  • 2.LIN总线的特点
    • 2.1 LIN总线的电气特性
  • 3. 应用
  • 4 LIN总线基本概念
    • 4.1 LIN报文帧结构
      • 4.1.1 主节点与从节点
      • 4.1.2 调度表
      • 4.1.3网络管理
      • 4.1.4 帧头结构
        • 4.1.4.1 电平
        • 4.1.4.2 同步间隔段(间隔场)
        • 4.1.4.3 同步场
        • 4.1.4.4 PID场
        • 4.1.4.5 数据场
        • 4.1.4.6 效验和场
    • 4.2 LIN的帧类型
      • 4.2.1 无条件帧(0-0×3B)
      • 4.2.2 事件触发帧(0-0×3B)
      • 4.2.3 偶发帧(0-0×3B)
      • 4.2.4 诊断帧
      • 4.2.5 保留帧

1 什么是LIN 总线?

LIN(Local Interconnect Network),局部互联网总线,是一种低成本的串行通讯网络,用于实现汽车中的分布式电子系统控制。

  • LIN 的目标是为现有汽车网络(例如CAN 总线)提供辅助功能,因此LIN总线是一种辅助的总线网络。

  • 在不需要CAN 总线的带宽和多功能的场合,比如智能传感器和制动装置之间的通讯使用LIN 总线可大大节省成本。

  • 相对于CAN总线而言,LIN总线协议较为简单,对单片机的要求也并不高,基本的串口就可以实现,因而成本较低。

  • 作为CAN总线的辅助总线,LIN总线是对现有总线技术的补充,广泛应用于车门、车窗、车灯以及中控锁等车身控制领域。

  • 适用于对网络的带宽、性能或容错功能没有过高要求的应用。基于SCI(UART)数据格式,采用单主控制器/多从设备的模式,是UART中的一种特殊情况。

1.1 LIN总线的历史

在这里插入图片描述
在这里插入图片描述

2.LIN总线的特点

  • 单主控器/多从设备模式无需仲裁机制
  • 低成本,基于UART 串口通讯,所有控制机都具备LIN 必需的硬件
  • 一个主节点对应多个从节点,由于物理层的限制,一个LIN网络最多可以连接16个节点
  • 单信号线传输,同时保证信号传输的延迟时间
  • LIN具有可预测的电磁兼容性能,为了限制EMC的强度,LIN协议规定最大传输速率为20kbps
  • LIN总线提供信号的配置、处理、识别和诊断功能
  • 支持传输层和诊断功能

2.1 LIN总线的电气特性

LIN总线采用的是单线传输形式,总线电平一般为12V,传输速率最高限制为20kbps。

在这里插入图片描述

  • 建议的通信速率如下,低速2400bps,中速9600bps,高速19200bps。(bps全称为bit per second)

3. 应用

LIN总线有其“局域”特性,在汽车中一般不独立存在,通常与上层CAN网络相连,形成CAN-LIN网关节点,通常汽车电子中整车厂会规定该“网关节点”的控制器归属。
在这里插入图片描述

4 LIN总线基本概念

4.1 LIN报文帧结构

4.1.1 主节点与从节点

LIN报文帧由帧头(Hearder)与应答(Response)两部分组成。

  • 传输过程中,主机节点负责发送帧头;
  • 从机节点负责接收帧头,然后作出解析决定发送应答,还是接收应答或不回复。
  • 从节点是不能主动向外发送数据的。

在这里插入图片描述

主节点发送数据帧帧头,从节点根据帧头识别并向LIN总线发送相应数据。LIN总线上只会有一个主节点,但会有多个从节点。

在这里插入图片描述在这里插入图片描述

4.1.2 调度表

帧的调度表(或进度表)规定了总线上帧的传输次序以及传输时间,确定了每个报文直接的间隔时间及其顺序,因此LIN总线的通信是可预测的。

  • 调度表位于主机节点,主节点根据调度表决定发送各个报文的时间间隔顺序。
  • 调度表可以有多个,一般情况下,轮到某个调度表执行的时候,从该调度表的入口处开始执行,到调度表的最后一个帧时,如果没有新的调度表启动则返回到当前调度表的第一个帧开始执行;
  • 也有可能在执行到某个调度表时发生中断,跳到另一个调度表后再返回,如事件触发帧。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.1.3网络管理

LIN总线中的从节点有三个状态:初始化状态、睡眠状态、工作状态。

  • 初始化状态:从节点上电、复位、睡眠唤醒后的一个过渡性状态。在初始化状态中,从节点会做必要的初始化,为LIN通信做准备。初始化状态下,从节点是不能收发LIN通信报文。
  • 工作状态:是正常工作的状态。在这个状态里,从节点可以正常收发LIN通信报文。
  • 睡眠状态:是停止LIN transceiver的正常工作,但是可以接受主节点的唤醒信号,并且能主动向LIN总线发送唤醒信号(内部唤醒)

睡眠命令复用0×3C的诊断帧,第一个字节为0,其余7个字节为0×FF
在这里插入图片描述

4.1.4 帧头结构

帧头包括同步间隔场、同步场、PID场(受保护ID)场,应答部分包括数据场与效验和场。

4.1.4.1 电平

其中“0”为显性电平、“1”为隐性电平,显隐性与CAN总线是相同的。

  • 在总线上实行“线-与”:当总线有至少一个节点发送显性电平时,总线呈现显性电平;
  • 所有节点均发送隐性电平或者不发送信息时,总线呈隐性电平,即显性电平起着主导作用。

在这里插入图片描述

4.1.4.2 同步间隔段(间隔场)

帧的所有间隙均为隐性电平“1”,总线空闲时也是保持隐性电平“1”的状态,并且帧中的任何其它字段都不会发出大于9位的显性电平,所以同步间隔场由至少13位(通常选择13位或14位)显性电平组成。

  • 所以我们可以得出结论,同步间隔场可以代表一帧的开始。
  • 同步间隔场的间隔符至少为1位隐性电平。
4.1.4.3 同步场

在介绍同步段之前,首先介绍一下字节域(Byte Field)的概念,字节域包括1位起始位(Start Bit,显性) + 8位数据位 + 1位停止位(Stop Bit,隐性),可以简记为“显开隐走”,这是一种标准UART数据传输格式。

  • 在 LIN 的一帧当中,除了同步间隔段,后面的各段都是通过字节域的格式传输的。

在 LIN 帧中,数据传输都是先发送LSB(Least Significant Bit,最低有效位),最后发送 MSB(Most Significant Bit,最高有效位)。

  • LIN总线将下降沿作为判断标志,通过字节0x55(01010101b)进行同步,在从机节点上可以采用非高精度时钟,如果带来偏差,可以通过同步场来调整。

在这里插入图片描述
从机节点可以不采用高精度的时钟,而采用片上振荡器等精度和成本相对较低的时钟,由此带来的与主机节点时钟产生的偏差,需要通过同步段进行调整。

同步段用于同步的基准时钟为主机节点的时钟。从机节点通过接收主机节点发出的同步段,计算出主机节点位速率,根据计算结果对自身的位速率重新作调整。

主机节点实际传输 1 位所用的时间,即位速率。
在这里插入图片描述

4.1.4.4 PID场

受保护的ID,其前6位为帧ID,加上两个奇偶效验码称作受保护的ID。

帧ID的取值范围为0x00~0x3F,共64个,帧ID标识了帧的类别,从机任务会根据帧头ID作出反应(接收/发送/忽略应答),其中P0与P1效验如下:

在这里插入图片描述“⊕”代表“异或”运算,“¬”代表“取非”运算。

注意:PID 不会出现全 0 或全 1 的情况,因此,如果从机节点收到了“0xFF”或“0x00”,可判断传输错误。

LIN总线根据帧ID的不同,将报文分为信号携带帧、诊断帧、保留帧。

在这里插入图片描述从机应答帧是一个完整的帧,与帧结构中的“应答”不同。

4.1.4.5 数据场

数据场是LIN数据帧的真正要传输的数据。数据场包含1-8个字节,数据发送顺序:低字节先发,低位先发;如果数据长度超过1个字节,采用小端模式(低位在前发送)。

数据场可以分为两种数据类型,信号和诊断消息。

  • 信号由信号携带帧传递,诊断消息由诊断帧传递。
  • LIN2.x规定可传输的LIN字节数为2,4,8,并不是1-8内任意一个数字。
  • 一般而言,车内会选择统一字节数,最常用的是每帧传递8个字节。

在这里插入图片描述
与CAN总线不同,LIN协议中并没有规定数据长度的信息,数据内容和长度均根据帧ID提前设定。总线上的数据以广播形式发出,任何节点都可收到,但并非对每个节点有用。

通常情况下,帧的应答,总线上只存在一个发布节点,否则会出现错误。事件触发帧例外,它可能出现0,1和多个发布节点。

4.1.4.6 效验和场

效验和场是为了对帧传输内容进行效验,以此提高数据可靠性。
在这里插入图片描述
效验分为标准型效验(只校验数据场,不校验标识符场)与增强型效验(校验数据场,同时校验标识符场)。

在这里插入图片描述
采用标准型还是增强型是由主机节点管理,发布节点和收听节点根据帧ID来判断采用哪种效验和。

4.2 LIN的帧类型

根据LIN2.1规范,LIN的帧类型有以下几种:
无条件帧、事件触发帧、偶发帧、诊断帧、预留帧

4.2.1 无条件帧(0-0×3B)

无条件帧是具有单一发布节点的,无论信号是否发生变化,帧头均会被无条件应答的帧.

  • 无条件帧在主机任务分配给它的固定的帧时隙中传输。
  • 总线上一旦有帧头发送出去,必须有从机任务作应答(即无条件发送应答)。
    在这里插入图片描述

4.2.2 事件触发帧(0-0×3B)

事件触发帧必须有一个独立的ID,该ID可以与多个无条件帧相关联。

  • 在事件触发帧时隙内发送帧头,只有当相关联的无条件帧内有信号被更新时,才发送帧应答。
  • 如果没有帧响应,帧头被忽略。
  • 帧响应可由多个节点发送,发生冲突时切换到“冲突解决调度表”,之后再切换回到原来的调度表。

其主要原理就是:当从机节点信息状态没有发生变化的时候,从机节点可以不应答主机发出的帧头;

当有多个节点信息同时发生变化的时候,同时应答事件触发帧头会造成总线的冲突。

在这里插入图片描述

4.2.3 偶发帧(0-0×3B)

偶发帧表示共用一个时隙、在需要时才被发送的一组普通帧。偶发帧是主机节点在同一帧时隙中当自身信号发生变化时向总线启动发送的帧。

当存在多个关联的应答信号变化时,通过预先设定的的优先级来仲裁。与事件触发帧类似,偶发帧也定义了一组无条件帧。规定偶发帧只有由主机节点发布。

偶发帧的传输可能出现三种情况:

  • 1)当关联的无条件帧没有信号发生变化,这时主机连帧头也不需要发送。
  • 2)当关联的一个无条件帧信号发生变化则发送该帧。
  • 3)当有多个无条件帧发生信号变化时,则按照事先规定的优先级依次发送。

在这里插入图片描述

4.2.4 诊断帧

诊断帧包括主机请求帧和从机应答帧,主要用于配置、识别和诊断。主机请求帧ID=0x3c,由主机节点发送帧头和帧应答;从机应答帧ID=0x3d,由主机节点发送帧头 从机节点发送帧应答。数据段规定为8个字节,一律采用标准效验和。

4.2.5 保留帧

保留帧的ID=0x3E与0x3F,为将来扩张需求用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/794199.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法学习18:动态规划

算法学习18:动态规划 文章目录 算法学习18:动态规划前言一、线性DP1.数字三角形:f[i][j] max(f[i - 1][j - 1] a[i][j], f[i - 1][j] a[i][j]);2.1最长上升子序列:f[i] max(f[i], f[j] 1);2.2 打印出最长子序列3.最长公共子序…

免版权素材库:在营销和宣传中的重要性与应用

title: 免版权素材库:在营销和宣传中的重要性与应用 date: 2024/4/5 18:21:43 updated: 2024/4/5 18:21:43 tags: 免版权素材库营销宣传高质量素材节省成本避免侵权创意启发数字营销 免版权素材库在宣传和营销中的重要性不言而喻。在当今数字化时代,图片…

基于Python的微博舆论分析,微博评论情感分析可视化系统,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

刷题之Leetcode34题(超级详细)

34. 在排序数组中查找元素的第一个和最后一个位置 力扣链接(opens new window)https://leetcode.cn/problems/find-first-and-last-position-of-element-in-sorted-array/ 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始…

c# wpf template ItemsPanel 简单试验

1.概要 2.代码 <Window x:Class"WpfApp2.Window9"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expression/blend/…

【御控物联】JavaScript JSON结构转换(14):对象To数组——规则属性重组

文章目录 一、JSON结构转换是什么&#xff1f;二、术语解释三、案例之《JSON对象 To JSON数组》四、代码实现五、在线转换工具六、技术资料 一、JSON结构转换是什么&#xff1f; JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换&#xff0…

中医肝胆笔记

目录 肝胆的经络足厥阴肝经足少阳胆经 疏肝健脾的药舒肝益脾颗粒&#xff1a;逍遥丸&#xff1a;疏肝颗粒 -> 疏肝理气的力度大-> 肝郁的程度深&#xff0c;逍遥丸没用的是时候用这个加味逍遥丸 -> 清热的力度最大->适用 肝郁火大&#xff0c;舌苔黄丹栀逍遥丸->…

LangChain Demo | 如何调用stackoverflow并结合ReAct回答代码相关问题

背景 楼主决定提升与LLM交互的质量&#xff0c;之前是直接prompt->answer的范式&#xff0c;现在我希望能用上ReAct策略和能够检索StackOverflow&#xff0c;让同一款LLM发挥出更大的作用。 难点 1. 怎样调用StackOverflow step1 pip install stackspi step 2 from la…

基于单片机的有害气体检查系统设计

**单片机设计介绍&#xff0c;基于单片机的有害气体检查系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的有害气体检查系统设计旨在实现对环境中各种有害气体的实时监测与报警&#xff0c;保障人员健康和环境…

如何使用NumPy处理数组翻转与变形

NumPy是Python中一个强大的库&#xff0c;主要用于处理大型多维数组和矩阵的数学运算。处理数组翻转与变形是NumPy的常用功能。 1.对多维数组翻转 n np.random.randint(0,100,size(5,6))n# 执行结果array([[ 9, 48, 20, 85, 19, 93], [ 1, 63, 20, 25, 19, 44], …

用 Wireshark 解码 H.264

H264&#xff0c;你不知道的小技巧-腾讯云开发者社区-腾讯云 这篇文章写的非常好 这里仅做几点补充 init.lua内容&#xff1a; -- Set enable_lua to false to disable Lua support. enable_lua trueif not enable_lua thenreturn end-- If false and Wireshark was start…

OpenCV入门例程:裁剪图片、模糊检测、黑屏检测

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 本例程运行环境为CentOS7&…

JS详解-函数柯里化

简介&#xff1a; 柯里化&#xff08;Currying&#xff09;是一种关于函数的高阶技术。柯里化是一种函数的转换&#xff0c;它是指将一个函数从可调用的 f(a, b, c) 转换为可调用的 f(a)(b)(c)。柯里化不会调用函数。它只是对函数进行转换。 举个例子&#xff1a; 已最简单的…

图像处理入门 3(how to get the pixel pitch / 如何获得单个像素的尺寸)

在这里一节里面&#xff0c;将记录如何获得一个相机传感器中单个像素点的尺寸&#xff0c;为了实现不同相机照片之间的匹配。 如果我们知道了相机传感器的尺寸和分辨率的大小&#xff0c;自然就可以求出单个像素的大小。 在这里插入图片描述&#xff1a; 如何获得相机传感器的…

golang设计模式图解——模板方法模式

设计模式 GoF提出的设计模式有23个&#xff0c;包括&#xff1a; &#xff08;1&#xff09;创建型(Creational)模式&#xff1a;如何创建对象&#xff1b; &#xff08;2&#xff09;结构型(Structural )模式&#xff1a;如何实现类或对象的组合&#xff1b; &#xff08;3&a…

【JavaSE】反射

Java代码的生命周期 Java代码在计算机中经历的阶段&#xff1a;Source源代码阶段、Class类对象阶段、RunTime运行时阶段。 Source源代码阶段: 这个阶段是由程序员编写生成源代码,再由Javac编译器生成class文件。 Class类对象阶段&#xff1a;由类加载器将class文件加载到JVM内…

【网站项目】少儿编程管理系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

备战蓝桥杯---多路归并与归并排序刷题

话不多说&#xff0c;直接看题 1. 我们考虑一行一行合并&#xff0c;一共m次&#xff0c;我们合并两个并取前n小&#xff0c;那么我们怎么取&#xff1f; 我们采用分组的思想&#xff1a; 我们选第一列的min,然后把后面那个再纳入考虑&#xff0c;用优先队列实现即可。 下面…

chatGPT4无法登录

遇到问题&#xff1a;chatgpt网站上点击登录&#xff08;log in),网站就会跳转并显示&#xff1a;unable to connect 解决方法&#xff1a;不要用亚洲节点&#xff0c;亚洲节点被全面封禁&#xff0c;在全局代理中可以换成美国的节点