当前位置: 首页 > article >正文

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

前言: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博客

相关文章:

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

前言:LIN(Local Interconnect Network)总线,也就是局域互联网的意思,它的出现晚于CAN总线,于20世纪90年代末被摩托罗拉、宝马、奥迪、戴姆勒、大众以及沃尔沃等多家公司联合开发,其目的是提供一…...

JVM学习(七)--JVM性能监控

目录 一、JVM性能监控 1、JVM监控及诊断工具-命令行篇 2、JVM监控及诊断工具-GUI篇 3、JVM运行时参数 一、JVM性能监控 1、JVM监控及诊断工具-命令行篇 面试题: 1、你使用过Java虚拟机性能监控和故障处理工具吗? 2、怎么打出线程栈信息。 3、怎么获取 Jav…...

关于 java:5. Java IO 与文件操作

一、File 类(读取文件属性) 1.1 java.io.File 类概述 File 是 Java IO 中的核心类,用于表示文件或目录的路径名。 它是一个抽象路径名,可以表示实际存在或不存在的文件/文件夹。 File 类提供了创建、删除、重命名、判断属性、获…...

【笔记】为 Python 项目安装图像处理与科学计算依赖(MINGW64 环境)

📝 为 Python 项目安装图像处理与科学计算依赖(MINGW64 环境) 🎯 安装目的说明 本次安装是为了在 MSYS2 的 MINGW64 工具链环境中,搭建一个完整的 Python 图像处理和科学计算开发环境。 主要目的是支持以下类型的 Pyth…...

【笔记】MLA矩阵吸收分析

文章目录 一、张量运算的计算量1. FLOPs定义2. 张量计算顺序对计算量的影响 二、MLA第一次矩阵吸收的计算量分析1. 原始注意力计算2. MLA源代码中的吸收方式3. 提前吸收4. 比较分析4.1 比较顺序1和顺序24.2 比较顺序2和顺序3 三、MLA第二次矩阵吸收的计算量分析1. 原始输出计算…...

600+纯CSS加载动画一键获取指南

CSS-Loaders.com 完整使用指南:600纯CSS加载动画库 🎯 什么是 CSS-Loaders.com? CSS-Loaders.com 是一个专门提供纯CSS加载动画的资源网站,拥有超过600个精美的单元素加载器。这个网站的最大特色是所有动画都只需要一个HTML元素…...

开源的JT1078转GB28181服务器

JT1078转GB28181流程 项目地址: JT1078转GB28181的流媒体服务器: https://github.com/lkmio/lkm JT1078转GB28181的信令服务器: https://github.com/lkmio/gb-cms 1. 创建GB28181 UA 调用接口: http://localhost:9000/api/v1/jt/device/add 请求体如下&#xf…...

智能守护电网安全:探秘输电线路测温装置的科技力量

在现代电力网络的庞大版图中,输电线路如同一条条 “电力血管”,日夜不息地输送着能量。然而,随着电网负荷不断增加,长期暴露在户外的线路,其线夹与导线在电流热效应影响下,极易出现温度异常。每年因线路过热…...

Java垃圾回收算法及GC触发条件

一、引言 在Java编程语言的发展历程中,内存管理一直是其核心特性之一。与C/C等需要手动管理内存的语言不同,Java通过自动垃圾回收(Garbage Collection,简称GC)机制,极大地减轻了开发人员的负担&#xff0c…...

【Hot 100】118. 杨辉三角

目录 引言杨辉三角我的解题代码优化优化说明 🙋‍♂️ 作者:海码007📜 专栏:算法专栏💥 标题:【Hot 100】118. 杨辉三角❣️ 寄语:书到用时方恨少,事非经过不知难! 引言 …...

useMemo useCallback 自定义hook

useMemo & useCallback & 自定义hook useMemo 仅当依赖项发生变化的时候,才去重新计算;其他状态变化时则不去做不必要的计算。 useCallback 缓存函数。但是使用注意📢 ,useCallback没有特别明显的优化。 *合适的场景——父…...

ffmpeg 的视频格式转换 c# win10

1,下载ffmpeg ,并设置环境变量。 ffmpeghttps://www.gyan.dev/ffmpeg/builds/ 2.新建.net 9.0 winform using System; using System.Diagnostics; using System.Text; using System.Windows.Forms;namespace WinFormsApp11 {public partial class Fo…...

【irregular swap】An Examination of Fairness of AI Models for Deepfake Detection

文章目录 An Examination of Fairness of AI Models for Deepfake Detection背景points贡献深伪检测深伪检测审计评估检测器主要发现评估方法审计结果训练分布和方法偏差An Examination of Fairness of AI Models for Deepfake Detection 会议/期刊:IJCAI 2021 作者: 背景…...

【JAVA】注解+元注解+自定义注解(万字详解)

📚博客主页:代码探秘者 ✨专栏:《JavaSe》 其他更新ing… ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️ 🙏作者水平有限,欢迎各位大佬指点&…...

【Doris基础】Apache Doris中的Version概念解析:深入理解数据版本管理机制

目录 引言 1 Version概念基础 1.1 什么是Version 1.2 Version的核心作用 1.3 Version相关核心概念 2 Version工作机制详解 2.1 Version在数据写入流程中的作用 2.2 Version在数据查询流程中的作用 2.3 Version的存储结构 3 Version的进阶特性 3.1 Version的合并与压…...

【Linux 基础知识系列】第一篇-Linux 简介与历史

一、什么是 Linux? Linux 是一种类 Unix 操作系统,它是由 Linus Torvalds 于 1991 年首次发布的。作为一个开源操作系统,Linux 的源代码可以被任何人自由使用、修改和分发。在现代计算环境中,Linux 凭借其强大的性能、高稳定性、…...

【图像处理基石】如何进行图像畸变校正?

图像畸变校正常用于计算机视觉、摄影测量学和机器人导航等领域,能够修正因镜头光学特性或传感器排列问题导致的图像失真。下面我将介绍几种常用的图像畸变校正算法,并提供Python实现和测试用例。 常用算法及Python实现 1. 径向畸变校正 径向畸变是最常…...

软件开发项目管理工具选型及禅道开源版安装

软件开发项目管理工具选型及禅道开源版安装 为啥选禅道 你以为我选禅道之前没有对比吗? 作为Java码农,首先想到的就是Jira,然而它太重了。。 我们用企微作为沟通工具,腾讯的TAPD的确好用,但是它不开源啊,…...

【架构艺术】平衡技术架构设计和预期的产品形态

近期笔者因为工作原因,开始启动team内部部分技术项目的重构。在事情启动的过程中,内部对于这件事情的定性和投入有一些争论,但最终还是敲定了下来。其中部分争论点主要在于产品形态,因为事情涉及到跨部门合作,所以产品…...

电力系统时间同步系统

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

Vue使用toFixed保留两位小数的三种写法

第一种:直接写在js里面,这是最简单的 val.toFixed(2)第二种:在ElementUi表格中使用 第三种:在取值符号中使用 {{}} 定义一个方法 towNumber(val) { return val.toFixed(2) } 使用 {{ towNumber(row.equiV…...

华为云【Astro zero】如何做“设备编辑”页面

目录 一、整体原理概述(逻辑图+原理) 1. 页面组件组装(用户交互界面) 2. 数据模型(数据临时存储) 3. 页面事件(逻辑交互) 二、详细操作步骤(按功能模块分) ✅【1】页面创建与结构组装 ✅【2】定义自定义模型与字段(临时数据绑定) ✅【3】定义服务模型(与后…...

Arch安装botw-save-state

devkitPro https://blog.csdn.net/qq_39942341/article/details/148387077?spm1001.2014.3001.5501 cargo https://blog.csdn.net/qq_39942341/article/details/148387783?spm1001.2014.3001.5501 megaton https://blog.csdn.net/qq_39942341/article/details/148388164?spm…...

电脑为什么换个ip就上不了网了

在日常使用电脑上网时,很多人可能遇到过这样的问题:当IP地址发生变化后,突然就无法连接网络了。当电脑更换IP地址后无法上网,这一现象可能由多种因素导致,涉及网络配置、硬件限制或运营商策略等层面。以下是系统性分析…...

NULL与空字符串的区别:数据库专家详解

NULL与空字符串的区别:数据库专家详解 1. NULL的概念解析 1.1 NULL的定义 在数据库系统中,NULL是一个特殊标记,表示"未知"或"不存在"的值。它不是任何数据类型的实例,而是表示缺失值的标记。 go专栏&#…...

github 2FA双重认证丢失解决

文章目录 前言一. 凭借ssh 解锁步骤1.1 要求输入设备码1.2.进入二重验证界面1.3.开始2FA恢复1.4.选择使用ssh验证 二.预防措施2.1 云盘上传git_recover_codes.txt2.2 开启多源FA认证2.2.1 大陆无法使用手机验证码 三.参考资料 前言 场景:没有意识到github recovery …...

linux驱动 - 5: simple usb device驱动

参考第2节, 准备好编译环境并实现hello.ko: linux驱动 - 2: helloworld.ko_linux 驱动开发 hello world ko-CSDN博客 下面在hello模块的基础上, 添加代码, 实现一个usb设备驱动的最小骨架. #include <linux/init.h> #include <linux/module.h> #include <lin…...

OpenCV CUDA模块直方图计算------在 GPU 上计算输入图像的直方图(histogram)函数histEven()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 该函数用于在 GPU 上计算输入图像的直方图&#xff08;histogram&#xff09;。它将像素值区间均匀划分为若干个 bin&#xff08;桶&#xff09;…...

QT/c++航空返修数据智能分析系统

简介 1、区分普通用户和管理员 2、界面精美 3、功能丰富 4、使用cppjieba分词分析数据 5、支持数据导入导出 6、echarts展示图表 效果展示 演示链接 源码获取 int main(){ //非白嫖 printf("&#x1f4e1;:%S","joyfelic"); return 0; }...

Spring Security架构中过滤器的实现

Spring Security过滤器基础 过滤器链工作原理 在Spring Security架构中,过滤器链(Filter Chain)是安全机制的核心实现方式。当HTTP请求到达时,会依次通过一系列具有明确顺序的过滤器。例如认证过滤器会拦截请求并将认证职责委托给授权管理器。若需要在认证前执行特定逻辑…...