【汽车电子入门】一文了解LIN总线

article/2025/7/14 19:57:58

前言:LIN(Local Interconnect Network)总线,也就是局域互联网的意思,它的出现晚于CAN总线,于20世纪90年代末被摩托罗拉、宝马、奥迪、戴姆勒、大众以及沃尔沃等多家公司联合开发,其目的是提供一种性价比高、性能可靠的低速网,以取代低速CAN总线系统。因为低速CAN哪怕是应用于车窗和座椅等简单的控制系统上,它过高的性能依旧存在冗余和浪费,所以为降低成本,便开发了LIN总线。本文就简单介绍一下关于LIN总线的通信方式与协议标准。


1,LIN简介

  • LIN总线的传输速率较慢,一般为10kbit/s,最高不超过20kbit/s,在SAE总线分类中,被定为A类总线;
  • LIN总线是一根无屏蔽的单根导线,所以抗干扰能力较差,常见的电子噪声便会影响到LIN线;
  • 一个LIN网络最多可以连接16个节点(1主15从);
  • 从节点自同步,确定的信号传输,可预估的信号传输时间,单线传输,成本低;
  • 单主控器/多从设备模式无需仲裁机制;
  • 低成本,基于通用UART 接口所有控制机都具备LIN 必需的硬件;
  • 单信号线传输,同时保证信号传输的延迟时间;
  • LIN具有可预测的电磁兼容性能,为了限制EMC的强度,LIN协议规定最大传输速率为20kbps;
  • LIN总线提供信号的配置、处理、识别和诊断功能;
  • 主要应用于自适应前照灯、空调鼓风机、雨刮器以及外后视镜等系统;

2,LIN总线硬件接线

LIN总线也是由LIN控制器、LIN收发器组成。LIN的控制器是基于SCI(UART)数据格式,采用单主控制器/多从设备的模式,是UART的一种特殊模式。一般控制器会集成在MCU内部,外置一个Lin收发器。也有少数一些MCU直接把LIN控制器和收发器都集成到MCU内部,只需要配置寄存器就可以使能Lin通信

3,LIN总线协议

3.1 协议特性

LIN中线采用单线传输模式,并采用单主机多从机的结构,一个主机节点同时包含有主机任务与从机任务,从机任务不能直接向总线发送数据,需要接收到主节点发送的帧头后,根据帧头所包含的信息来判断是否接受应答、发送应答或者不应答。

3.2 LIN协议格式

帧由一个帧头(由主机任务提供)和一个帧响应(由从机任务提供)组成。主机负责发送帧头,从机负责接收帧头并作出解析,然后决定是发送应答,还是接收应答或不回复。

LIN线拓扑结构是主从结构的星型模型,所有传输都是master发起,slave不可以主动发起请求,,想要获取某个变量值,就需要不断轮询读对应的报文

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

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

(1)帧头

帧头结构包括同步间隔段、同步段、PID段(受保护ID)段

① 同步间隔段

同步间隔段至少是由13位的显性电平组成,代表一帧的开始,其中同步间隔段的间隔符至少为1位隐形电平。同步间隔场可以代表一帧的开始。另外,同步间隔场的间隔符至少为1位隐性电平

② 同步段

IN同步以下降沿为判断标志,采用字节0x55(01010101b)进行同步。在从机节点上可以不采用高精度的时钟,由此带来的偏差,需要通过同步段来进行调整。

从机节点可以不采用高精度的时钟,而采用片上振荡器等精度和成本相对较低的时钟,由此带来的与主机节点时钟产生的偏差,需要通过同步段进行调整,调整的结果是使从机节点数据的位速率与主机节点一致

③ PID段

受保护的ID,其前6位为帧ID,加上两个奇偶效验码称作受保护的ID。帧ID的取值范围为0x00~0x3F,共64个,帧ID标识了帧的类别,从机任务会根据帧头ID作出反应(接收/发送/忽略应答)

(2)应答段

应答部分包括数据段效验

① 数据段

数据段可以包含1-8个字节,其中包含有两种数据类型,信号(singal)诊断消息(diagnostic messages)。信号由信号携带帧传递,诊断消息由诊断帧传递。

② 检验和段

效验和段是为了对帧传输内容进行效验。效验分为标准型效验与增强型效验。采用标准型还是增强型是由主机节点管理,发布节点和收听节点根据帧ID来判断采用哪种效验和。

3.3 Lin帧类型

根据最新的LIN协议,可以分为如下几种LIN帧类型

  • 无条件帧
  • 时间触发帧
  • 偶发帧
  • 诊断帧
  • 预留帧类型

(1)无条件帧(0-0x3B)

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

虚线箭头代表帧头发送,实线箭头代表帧应答。

  • 帧ID=0x30应答部分的发布节点为从机节点1,收听节点为主机节点,应用在从机节点向主机节点报告自身状态;
  • 帧ID=0x31中,应答部分为主机节点,收听部分为从机节点,应用在主机节点向从机节点发送控制消息;
  • 帧ID=0x32中应答部分的发送节点为从机节点2,收听节点为从机节点1,应用与从机节点之间的通信。

(2)事件触发帧

事件触发帧的标识符为0到0x3B。事件触发帧必须有一个独立的ID,该ID可以与多个无条件帧相关联

事件触发帧是主机节点在一个帧间隙中查询各从机节点的信号是否发生变化时使用的帧。当存在多个发布节点时,通过调度表解决冲突。

当从机节点信息状态没有发生变化的时候,从机节点可以不应答主机发出的帧头;当有多个节点信息同时发生变化的时候,同时应答事件触发帧头会造成总线的冲突。当主机节点检测到冲突时,便会查询冲突解决进度表来依次向各个节点发送无条件帧(无条件帧只有能1个节点应答)来确定从机节点的信息状态

(3)偶发帧

偶发帧表示共用一个时隙、在需要时才被发送的一组普通帧。标识符为0到0x3B。

偶发帧是主机节点在同一帧时隙中当自身信号发生变化时向总线启动发送的帧。

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

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

1)当关联的无条件帧没有信号发生变化,这时主机连帧头也不需要发送。

2)当关联的一个无条件帧信号发生变化则发送该帧。

3)当有多个无条件帧发生信号变化时,则按照事先规定的优先级依次发送

(4)诊断帧

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

(5)保留帧

保留帧的ID为0x3E与0x3F

3.4  调度表

帧的调度表(或进度表)规定了总线上帧的传输次序以及传输时间。

  • LIN调度表是LIN通信的“时间表”,决定帧的发送顺序和时序。

  • 静态调度用于周期性数据,动态调度用于事件驱动数据。

  • 主机完全控制调度,从机仅响应请求,确保通信有序。

参考文章:
入门篇:汽车总线是什么?CAN、LIN、MOST、FlexRay有何区别?

【LIN总线】LIN总线传输协议_lin总线协议-CSDN博客

LIN总线详解-CSDN博客


http://www.hkcw.cn/article/WJmdwMVdyj.shtml

相关文章

BayesFlow:基于神经网络的摊销贝叶斯推断框架

贝叶斯推断为不确定性条件下的推理、复杂系统建模以及基于观测数据的预测提供了严谨且功能强大的理论框架。尽管贝叶斯建模在理论上具有优雅性,但在实际应用中经常面临显著的计算挑战:后验分布通常缺乏解析解,模型验证和比较需要进行重复的推…

高压电绝缘子破损目标检测数据集简介与应用

在电力系统中,高压电绝缘子起着关键的绝缘与机械支撑作用。一旦发生破损,不仅影响输电线路的安全运行,还可能引发电力事故。因此,利用目标检测技术对高压绝缘子的破损情况进行智能识别,已成为当前电力巡检中的重要研究…

深度学习与神经网络 前馈神经网络

1.神经网络特征 无需人去告知神经网络具体的特征是什么,神经网络可以自主学习 2.激活函数性质 (1)连续并可导(允许少数点不可导)的非线性函数 (2)单调递增 (3)函数本…

paoxiaomo的XCPC算法竞赛训练经验

楼主作为一个普通二本的ICPC选手,在0基础的情况下凭借自学,获得过南昌邀请赛金牌,杭州区域赛银牌,一路上经历过不少的跌宕起伏,如今将曾经摸索出来的学习路线分享给大家 一,语言基础 学习C语言基础语法&a…

电力系统时间同步系统

电力系统中,电压、电流、功率变化等特征量测量都是时间相关函数[1],统一精准的时间源对于电网安全稳定运行至关重要,因此,电力系统运行规程[2]中明确要求继电保护装置、自动化装置、安全稳定控制系统、能量管理系统和生产信息管理…

Codeforces Round 1028 (Div. 2)(A-D)

题面链接:Dashboard - Codeforces Round 1028 (Div. 2) - Codeforces A. Gellyfish and Tricolor Pansy 思路 要知道骑士如果没了那么这个人就失去了攻击手段,贪心的来说我们只需要攻击血量少的即可,那么取min比较一下即可 代码 void so…

金属材料资料

一、金属材料 1. 黑色金属材料(钢铁材料) 铸铁(含碳量>2.11%) 分类: 按碳存在形式:白口铸铁(硬脆,炼钢原料)、灰口铸铁(应用最广)、…

mysql专题上

连接服务器 mysql -h 127.0.0.1 -P 3306 -u root -p -h后接的是要连接的部署了mysql的主机,127.0.0.1指的是单机访问,如果没有指令则直接连接本地 -P后接的是端口号 一般是3306 -u后接的是要登入的用户 -p指要登陆密码 如果要退出可以直接quit mysql…

DAY43打卡

浙大疏锦行 kaggle找到一个图像数据集,用cnn网络进行训练并且用grad-cam做可视化 进阶:并拆分成多个文件 fruit_cnn_project/ ├─ data/ # 存放数据集(需手动创建,后续放入图片) │ ├─ train/ …

蓝天影院订票网站的设计V3

1 绪 论 1.1 本课题研究背景 20世纪90年代中期以来,随着以Internet为代表的计算机技术,网络技术和信息技术的迅速发展,影院订票也逐渐转移到网络上[1][2]。伴随着我国计算机信息产业的飞速进步,计算机的开发应用已经遍布生活…

Python----目标检测(《YOLO9000: Better, Faster, Stronger》和YOLO-V2的原理与网络结构)

一、YOLO9000: Better, Faster, Stronger 1.1、基本信息 标题: YOLO9000: Better, Faster, Stronger 作者: Joseph Redmon, Ali Farhadi 机构: 华盛顿大学1, 艾伦人工智能研究所2 发布时间: 2016年(根据arXiv编号1612.08242推断) 论文链接: [1612.0…

力扣HOT100之动态规划:32. 最长有效括号

这道题放在动态规划里属实是有点难为人了,感觉用动态规划来做反而更难理解了,这道题用索引栈来做相当好理解,这里先讲下索引栈的思路。 索引栈做法 我们定义一个存放整数的栈,定义一个全局变量result来记录最长有效子串的长度&a…

操作系统:文件系统笔记

文件系统 参考资料: 12.10 虚拟文件系统_哔哩哔哩_bilibili7.1 文件系统全家桶 | 小林coding 基本组成 文件系统是操作系统中负责管理持久数据的子系统,说简单点,就是负责把用户的文件存到磁盘硬件中,因为即使计算机断电了&#…

Docker 安装 Redis 容器

系列文章目录 文章目录 系列文章目录前言1 获取redis镜像2 创建和部署redis容器3 查看redis是否启动成功4 使用Redis客户端验证连接总结 前言 搭建环境: ubuntu22.04.05 docker redis: 7.0.10 测试环境: windows: win11 Redis测试客户端:Ti…

Spring Boot 3.X 下Redis缓存的尝试(二):自动注解实现自动化缓存操作

前言 上文我们做了在Spring Boot下对Redis的基本操作,如果频繁对Redis进行操作而写对应的方法显示使用注释更会更高效; 比如: 依之前操作对一个业务进行定入缓存需要把数据拉取到后再定入; 而今天我们可以通过注释的方式不需要额外…

【Linux】Ubuntu 20.04 英文系统显示中文字体异常

英文系统显示中文字体异常 新安装的 Ubuntu 20.04 英文系统,显示中文字体有些奇怪,比如在谷歌浏览器中中文字体显示效果如下 参考 英文版ubuntu默认中文显示很奇怪 解决方案 - dbxxx - 博客园 编辑文件 sudo gedit /etc/fonts/conf.avail/64-languag…

每天总结一个html标签——a标签

文章目录 一、定义与使用说明二、支持的属性三、支持的事件四、默认样式五、常见用法1. 文本链接2. 图片链接3. 导航栏 在前端开发中,a标签(锚点标签)是最常用的HTML标签之一,主要用于创建超链接,实现页面间的跳转或下…

Day10

1. ArrayList和LinkedList的区别? 底层结构:ArrayList 是基于动态数组实现,支持索引快速访问;LinkedList 是基于双向链表实现,依赖指针访问前后元素。插入与删除效率:在尾部操作时,两者性能相近…

Flask + Celery 应用

目录 Flask Celery 应用项目结构1. 创建app.py2. 创建tasks.py3. 创建celery_worker.py4. 创建templates目录和index.html运行应用测试文件 Flask Celery 应用 对于Flask与Celery结合的例子,需要创建几个文件。首先安装必要的依赖: pip install flas…