【汽车电子】浅谈LIN总线

news2024/9/24 19:23:27

目录

1.为何使用LIN总线

2.什么是LIN总线?

3.LIN总线的主从关系

4.LIN的特点

5.LIN报文帧结构

6.LIN总线波形

7.帧类型

8.进度表

9.状态机的实现

10.总结

11.声明


1.为何使用LIN总线

        在这里你可能要问“不都有CAN总线了吗?这个LIN总线又是从哪里来的?”其实理由很简单,就是CAN总线太贵啦!处处都用CAN总线的话,那整车的总线架构成本将会变得很高!在一些比如车身电子配件的地方(如车窗、后视镜、大灯、车锁等),我们不需要报文像CAN总线上传输的那样“高速”!各大厂商一拍脑门就研究了这个LIN总线!    

2.什么是LIN总线?

        LIN(Local Interconnect Network)总线是基于UART/SCI(通用异步收发器/串行接口)的低成本串行通讯协议。其目标定位于车身网络模块节点间的低端通信,主要用于智能传感器和执行器的串行通信,而这正是CAN总线的带宽和功能所不要求的部分。

        由于LIN网络在汽车中一般不独立存在,通常会与上层CAN网络相连,形成CAN-LIN网关节点。

3.LIN总线的主从关系

        LIN总线采用的是单线传输形式,应用了单主机多从机的概念,总线电平一般为12V,传输速率最高限制为20kbps。由于物理层的限制,一个LIN网络最多可以连接16个节点。

总线任务负责:

(1)调度总线上帧的传输次序

(2)监测数据,处理错误

(3)作为标准时钟参考

(4)接收从机节点发出的总线唤醒命令

从机任务不能直接向总线发送数据,需要接受到主节点发送的帧头后,根据帧头所包含的信息来判断:

(1)发送应答

(2)接收应答

(3)既不接收也不应答

4.LIN的特点

(1)网络由一个主节点与若干个从节点构成。

(2)使用LIN总线可以大幅度削减成本。

(3)传输具有确定性,传播时间可以提前计算

(4)LIN具有可预测的EMC(电磁兼容性)性能,为了限制EMC的强度,LIN协议规定最大传输速率为20kbps。

(5)LIN总线提供信号的配置、处理、识别和诊断功能。

5.LIN报文帧结构

        LIN报文帧包括帧头(hearder)与应答(response)两部分。主机负责发送至帧头;从机负责接收帧头并作出解析,然后决定是发送应答,还是接收应答或不回复。

        帧头结构包括同步间隔段、同步段、PID段(受保护ID)段,应答部分包括数据段与效验和段。其中值“0”为显性电平、“1”为隐性电平,这点与CAN总线相类似。在总线上实行“线-与”:当总线有至少一个节点发送显性电平时,总线呈现显性电平;所有节点均发送隐性电平或者不发送信息时,总线呈隐性电平,即显性电平起着主导作用。

(1)同步间隔段

        同步间隔段至少是由13位的显性电平组成,由于帧中的所有间隙或者总线空闲时总线均保持隐性电平状态。所以同步间隔段可以标志一个帧的开始。其中同步间隔段的间隔符至少为1位隐性电平。

(2)同步段

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

(3)PID段

        受保护的ID的前6位叫做帧的ID,加上两个奇偶效验码后称作受保护的ID。帧ID的取值范围为0x00~0x3f总共64个,帧ID标识了帧的类别和目的地。从机任务会根据帧头ID作出反应(接收/发送/忽略应答)。其中P0与P1效验如下(⊕为异或, 为取非):

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

PS:从机应答帧是一个完整的帧,与帧结构中的“应答”不同!

(4)数据段

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

        协议中并没有规定哪一部分显示数据长度码的信息(这点与CAN总线不同),数据的内容与长度均是由系统设计者根据帧ID事先约定好的。

        总线上的数据是以广播形式发出,任何节点均可以收到,但并非对每个节点有用(与CAN相同)。具体到发布与接听是由哪个节点进行完成这个取决于应用层的软件配置,一般情况下,对于一个帧中的应答,总线上只存在一个发布节点,否则就会出现错误。事件触发帧例外,可能出现0,1,多个发布节点。

(5)效验和段

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

 

6.LIN总线波形

LIN总线的通讯方式
LIN总线的通讯方式

        上图展示的是LIN总线的通讯方式,可以看出无论什么时候帧头总是由主机节点发布,当主机节点想发布数据时,整个帧全部由主机节点发送。当从机节点想发布数据时,帧头部分由主机节点发布,应答部分由从机节点发布,这样其余节点都能收到一个完整的报文帧。可以很直接的观察到,LIN总线的通讯都是由主机节点发起的,只要合理的规定要每个节点的配置,这样就不会存在总线冲突的情况(事件触发帧冲突时采用采用冲突解决进度表)。

7.帧类型

(1)无条件帧

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

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

(2)事件触发帧

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

        当从机节点信号发生变化的频率较低的时候,主机任务一次次地查询各个节点信息会占用一定的带宽。为了减小带宽的占用,引入了事件触发帧的概念。其主要原理就是:当从机节点信息状态没有发生变化的时候,从机节点可以不应答主机发出的帧头;当有多个节点信息同时发生变化的时候,同时应答事件触发帧头会造成总线的冲突。当主机节点检测到冲突时,便会查询冲突解决进度表来依次向各个节点发送无条件帧(无条件帧只有能1个节点应答)来确定从机节点的信息状态。

与事件触发帧关联的多个无条件帧需要满足以下5个条件:

★数据段所包含的数据字节数等长

★使用相同的效验与类型

★数据段的第一个字节为该无条件帧的受保护ID,这样才能够知道应答是哪个关联的无条件帧发送出来的

★由不同的从机节点发布

★不能与时间触发帧处于同一个进度表中

(3)偶发帧

        偶发帧是主机节点在同一帧时隙中当自身信号发生变化时向总线启动发送的帧。当存在多个关联的应答信号变化时,通过预先设定的的优先级来仲裁。

        与事件触发帧类似,偶发帧也定义了一组无条件帧。规定偶发帧只有由主机节点发布。偶发帧的传输可能出现三种情况:

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

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

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

(4)诊断帧

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

(5)保留帧

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

8.进度表

        进度表是帧的调度表,规定了总线上帧的传输次序以及传输时间。进度表位于主机节点,主机任务根据应用程需要进行调度。进度表可以有多个,一般情况下,轮到某个进度表执行的时候,从该进度表的入口处开始执行,到进度表的最后一个帧时,如果没有新的进度表启动则返回到当前进度表的第一个帧开始执行;也有可能在执行到某个进度表时发生中断,跳到另一个进度表后再返回,如事件触发帧就是一个典型的例子。

9.状态机的实现

 

(1)主机状态机

(2)从机状态机

        从机任务负责发布或者接听帧的应答状态,包括连两个状态机:同步间隔段与同步段检查器、帧处理器。

帧处理任务状态机
帧处理任务状态机

10.总结

        LIN总线与CAN总线是汽车上最重要的两种总线,其中LIN总线在车身电子(BCM)的设计中运用广泛,也是ECU设计中一个重要的部分。

11.声明

        本文主要来源——Lin入门书(Renesas)。

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

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

相关文章

【JS笔记】JS操作字符串、对象、数组、时间对象、数值操作、定时器

这篇文章,主要介绍JS操作字符串、对象、数组、时间对象、数值操作、定时器。 目录 一、字符串 1.1、定义字符串 1.2、字符串方法 1.3、模板字符串 1.4、JSON字符串 二、对象操作 2.1、定义对象 2.2、对象方法 三、数组操作 3.1、定义数组 3.2、数组方法 …

【Docker_windows】安装Docker桌面版

现在如果问什么行业最火,很多人第一反应肯定就是IT。的确,这些年随着互联网的不断发展,IT热门众所周知。那么就一起来说说,IT行业里,哪些技术更热门。 What? Docker Desktop? Docker Desktop是…

SpringBoot快速回顾(分别使用注解和xml方式去声明Bean,获取Bean)

SpringBoot快速回顾(configuration注解) 1. 使用xml声明Bean1.1 创建测试实体类1.2 创建xml文件(目的:将实体类声明成Bean)1.3 测试 2. 使用注解configuration声明Bean2.1 已经声明过实体类Student2.2 定义配置类2.3 测…

Lim测试平台变量使用规则介绍

一、Lim测试平台简介 Lim测试平台是一款轻量级的接口测试平台,也是为数不多使用python作为后端接口建设的语言。 正如它的名字我们希望在开展接口测试时能够“四两拨千斤”!让用户操作更少但开展建设的效率更高。因此我们做了许多交互细节上的优化和创新…

Elasticsearch:人类语言到 ElasticSearch 查询 DSL

Elasticsearch 为开发者提供了强大的搜索功能。Elasticsearch 使用 DSL 来进行查询。对于很多从关系数据库过来的人,这个很显然不很适应。虽然我们可以使用 SQL 来进行查询,但是我们必须通过一些命令来进行转换。我们可以通过阅读文章: Elast…

SpringBoot统一功能处理(统⼀⽤户登录权限验证、统⼀异常处理、统⼀数据格式封装)

统⼀⽤户登录权限验证 1、最初的用户登录效验:在每个方法里面获取session和 session 中的用户信息,如果存在用户,那么就认为登录成功了,否则就登录失败了。 2、第二版用户登录效验:提供了统一的方法,在每个需要验证的方法中调用…

神经网络模型压缩技术—剪枝

目录 1.模型压缩定义 2.模型压缩必要性及可行性 3.模型压缩分类 3.1 主流分类 3.2 前端和后端 4.剪枝 4.1 剪枝定义 4.2 剪枝分类 4.2.1 基于粒度 4.2.2 基于是否结构化 4.2.3 基于目标 5. 结构化剪枝和非结构化剪枝 5.1 非结构化剪枝(移除单个权重或神…

【Python习题集1】Python 语言基础知识

python习题 一、实验内容二、实验总结 一、实验内容 1、运用输入输出函数编写程序,将华氏温度转换成摄氏温度。换算公式:C(F-32)*5/9,其中C为摄氏温度,F为华氏温度。 (1)源代码: ffloat(input(输入华氏温…

swift 技术 监听电话中断

一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络&#xff0…

做好FP独立站有6大要点,注意!

跨境电商做FP独立站已经见怪不怪了,但要注意哪些要点才能做好一个成功的FP独立站呢,今天就跟大家聊一聊。 做好FP独立站有6个要点 1.选品 独立站运营选择产品的方向往往是抓住非主流、新奇等特征。不推荐在成熟平台上销售受欢迎的普通商品,…

Elasticsearch详解

文章目录 概览使用与ES交互索引创建索引查询索引删除文档创建修改文档局部修改文档查询文档删除全查询 整合SpringBootpom依赖application.ymlElasticsearchAutoConfigurationElasticsearchPropertiesElasticsearchConstantPersonSearchPageHelperPersonServiceBaseElasticsear…

zabbix 使用自定义命令做监控项

环境:Linux zabbix6 问题:某个监控项的值为linux终端的shell命令输出,需要做一个zabbix自定义监控项 解决办法:参考官方文档使用userparameters方法 背景:我需要监控Linux某个文件夹的文件数量,并设置阈值…

详解c++---stack和dequeue的介绍

目录标题 stack介绍stack的定义stack的数据插入stack中数据的个数stack数据删除stack中数据的查看判断stack对象是否为空stack对象的数据交换queue的介绍queue的定义queue的数据插入frontbackqueue的元素个数queue中元素的删除emptyqueue的数据交换 stack介绍 首先stack是一个…

windows kafka mq 安装和使用介绍 及踩坑记录 及集群架构kafka实现架构 各自运行机制 一次性看明白

目录 介绍 安装集群 简单介绍按照步骤 zookeeper 安装 kafka安装 基础配置3个节点 在配置三个启动bat 重点 常见问题 内存不够配置文件中增加如下 java.io.IOException: Map failed 基础使用 创建主题 查看创建 生产者 消费者 应用场景 kafka一些原理和特点 …

让自动化测试秒杀繁琐操作?试试PO模式设计框架

目录:导读 引言 po模式 优势: 目录解释: 页面对象设计模式: base基础层: page对象层: test:测试层 data数据层: common层: untils: config层: run层:…

救生衣、划船背心、救生圈、U 形救生圈和投掷式浮垫等个人漂浮设备 (PFD)UL报告标准要求

个人漂浮设备 (PFD) 个人漂浮设备 (PFD) 是帮助人们在水中保持漂浮状态的装备。个人漂浮设备是一个范围较大的商品分类,其中包括救生衣、划船背心、救生圈、U 形救生圈和投掷式浮垫 救生衣 救生衣是一种在使用者正确穿戴时可为其提供支持的服装或设备,由…

Redis【性能 01】Redis 5.x 6.x 7.x 共5个不同版本延迟及性能测试对比分析(单机版默认配置)

延迟及性能测试比对分析过程 1.环境说明2.测试结果Version 5.0.3【待优化版本】Version 5.0.7【云服务器使用的版本】Version 5.0.14【5.x最终版】Version 6.2.12【6.x最终版】Version 7.2-rc1【当前最新的发布候选版】 3.汇总分析3.1 延迟测试结果汇总3.1 性能测试结果汇总 4.…

今天 国际青年节 “International Youth Day “

《劝学》孟郊 击石乃有火,不击元无烟。 人学始知道,不学非自然。 万事须己运,他得非我贤。 青春须早为,岂能长少年。 Strike stones to make it burn; No smoke unless you strike. Youre crude if you dont learn; And you…

Syncthing文件同步 - 免费搭建开源的文件自动同步服务器并公网远程访问【私人云盘】

文章目录 1. 前言2. Syncthing网站搭建2.1 Syncthing下载和安装2.2 Syncthing网页测试2.3 注册安装cpolar内网穿透 3. 本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 在数据爆炸的当下,每天都会产生海量的数据,这些…

SQL注入攻防入门详解

毕业开始从事winform到今年转到 web ,在码农届已经足足混了快接近3年了,但是对安全方面的知识依旧薄弱,事实上是没机会接触相关开发……必须的各种借口。这几天把sql注入的相关知识整理了下,希望大家多多提意见。 (对于…