LIN通讯

news/2024/4/30 10:32:37/文章来源:https://blog.csdn.net/qq_43694659/article/details/127979920

LIN通讯

一、LIN通讯的背景与意义

随着汽车电子的发展,汽车上的电子零件正在逐渐地增加。而电子零件的增加也导致更多的设备(传感器、执行器、电子控制器)需要加入汽车的局部网络,这些零件的增加还会带来配线的增加,增加的配线除去会导致更高的材料费的同时,还会增加配线本身因接触不良导致的电子故障,从而印象汽车整体的品质与可靠性【1】。

img

而局域网多点通讯可以极大的解决这个问题。以高效安全而闻名,目前被汽车电子广泛应用,甚至也辐射到其他产业当中,越来越被大家多信赖和使用的CAN通讯,就是局域网多点通讯。

上面也有提到,除去一些电子控制器(如动力系统、底盘系统等),还有诸多的传感器和执行器,他们往往不需要那么高效的通讯方式,成本才是他们需要考虑的问题。

为了在兼顾系统通讯的同时,尽量减少成本,LIN通讯则应时而生。他和CAN通讯一样,可以进行局域网多点通讯,同时和CAN两个差分信号不同的是,LIN通讯仅需一根通讯线,极大地减少了配线的数量以及配线带来的安全隐患问题。

img

二、LIN通讯概括

1.LIN通讯介绍

LIN(Local interconnect Network)是一种低成本的串行通讯网络,用于实现汽车中的分布式电子系统控制。LIN 的目标是为现有汽车网络(例如CAN 总线)提供辅助功能,因此LIN总线是一种辅助的总线网络。在不需要CAN 总线的带宽和多功能的场合,比如智能传感器和制动装置之间的通讯使用LIN 总线可大大节省成本【2】。

2.LIN通讯特性

​ 低成本:基于通用UART 接口几乎所有微控制器都具备LIN 必需的硬件;

​ 强应用:极少的信号线即可实现国际标准ISO9141 规定;

​ 高速率:传输速率最高可达20Kbit/s;

​ 高效率:单主控器/多从设备模式无需仲裁机制;

​ 低成本:从节点不需晶振或陶瓷震荡器就能实现自同步,节省了从设备的硬件成本;

​ 高安全:保证信号传输的延迟时间;

​ 方便性:不需要改变LIN 从节点的硬件和软件就可以在网络上增加节点;

三、LIN通讯操作概念

1.主机和从机

LIN机群由一个主机任务和若干个从机任务组成。主机节点同时包含主机任务和从机任务。其他所有节点只包含一个从机任务【3】。
在这里插入图片描述

LIN 的拓扑结构为单线总线,应用了单一主机多从机的概念。【4】

2.帧

帧(Frame)由一个帧头(由主机任务提供 Header)和一个帧响应(由从机任务提供 Response)。

其中,由主机任务进行帧头的发送,而从机任务用帧响应来补充帧头从而形成完整的一帧。【5】
在这里插入图片描述

2.1 帧头

帧头包括同步间隔场(Break)、同步场(Synch)和标识符场(PID)三个部分。

img

2.1.1 Break

间隔场不同于其他场,它有意的造成UART通讯中的FramingError(从起始位到第十位没有检测出停止位时的错误)来提示LIN总线中的所有节点之后要开始进行LIN报文的传输了。【6】故而间隔场是用来标识一个新帧的起始点。间隔场是一个至少由13bit的显性值,包括起始位、间隔定界符等等。
在这里插入图片描述

2.1.2 Synch

同步场是为了修正各个从机任务节点间时钟的误差。是一个数据值为0x55的字节场。各个从机任务根据最初和最终的下降沿除以8来计算出1bit的时间,并以此作为基准来调整自己的时钟误差。

img

2.1.3 PID

标识符场表示LIN报文识别信息,由6位(bit0-bit5)的报文ID和2位(bit6-bit7)的奇偶校验和构成。

img

标识符(ID)有6bit,其值的范围是0-63。标识符可以分为以下四类:

载波帧的值,其值范围是0-59(0x3b);

60(0x3c)和61(0x3d)可用来载运诊断数据;

62(0x3e)专门用于用户定义的扩展部分;

63(0x3f)专门用于以后的协议改进。

2.2帧响应

帧响应由数据场和校验和场组成。

2.2.1 数据场

帧可以携带1-8byte的数据。对拥有指定标识符的帧来说,其包含的字节的数量应与发布服务器和所有认购器保持一致。

数据是在字节场中进行输送。
在这里插入图片描述

对于超过1个byte的数据来说,LSB被包含在第一个被发送的字节里面,而MSB则被包含在最后一个被发送的字节里面(小头)。
在这里插入图片描述

2.2.2 校验和场

帧的最后一个场是校验和(checksum)。校验和段是对帧中所传输的内容进行校验,校验和分为标准型校验和(Classic Checksum)及增强型校验和(Enhanced Checksum)。采用标准型校验和还是增强型校验和由主机节点管理,从机节点根据帧ID来判断采用哪种校验和。标准校验和只保护数据段,增强型校验和同时保护数据段和帧ID段。【7】

3.数据输送

一个帧可以输送两种类型的数据:信号和诊断报文。

3.1 信号:

信号指的是标量值或者字节数组。这些标量值或字节数组打包后放入帧的数据场里面。对所有拥有相同标识符的帧来说,一个信号在数据场内的位置总是一样的。

3.2 诊断报文:

诊断报文的输送是在具有两个保留标识符的帧里面完成的。数据场的判读取决于数据场本身以及通讯节点的状态。

4.进度表

(处于主机节点的)主机任务会根据进度表输送帧头。进度具体规定了每个帧头的标识符以及一个帧与一下个帧之间的间隔。主机应用可以使用不同的进度表,并在他们之间进行挑选。

四、LIN通讯协议规范

1.信号管理

信号是在帧的数据场里面输送的。多个信号可以打包成一个帧,只要这些信号彼此之间不会相互重叠。但是他们要由机群里面的同一个节点写入。

1.1 信号类型

信号由标量值和字节数组两个类型。

1.1.1 标量值

标量值可以穿过一个字节的最大界限,可以有1-16bit组成。1bit的标量信号被称为bool信号,其余标量信号被称为unsigned整数。

1.1.2 字节数组

字节数组内的每个字节应形成一个单帧字节。

1.2 信号一致性

标量信号的写入或者读取必须是[原子操作](原子操作 - 搜索 (bing.com))。也就是说应用程序无法接受一个部分被更新的信号值。不过,信号与信号之间或一个字节数组内的字节之间无需坚持一致性。

1.3 信号打包

信号会最先通过LSB进行发送,最后才是MSB。

2.帧的转移

在LIN总线上及逆行传送的实体就是帧。

帧的发送时间是每个字节发送时间的总和,再加上响应间隙时间和字节间隙时间。

2.1 帧结构

在这里插入图片描述

2.1.1 帧槽

每个预定的帧会在总线上分配一个槽。槽的间隙时间必须足够长,以便能够在最糟的情况下装载帧。

2.2 帧的类型

LIN总线上数据传输包括四种不同的帧,分别为无条件帧、事件触发帧、偶发帧、诊断帧。

无条件帧

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

事件触发帧

帧ID0-59。事件触发帧(Event-triggered Frame)是主机节点在一个帧时隙中查询各从机节点的信号是否发生变化(事件)时使用的帧,当存在多个发布节点时,通过冲突解决进度表(Collision Resolving Schedule)来解决冲突。当从机节点信号发生变化的频率较低时,主机任务一次次地轮询各个信号会占用一定的带宽。为了减小带宽的占用,引入了事件触发帧的概念。同一个 PID的事件触发帧进和无条件帧对应的第一个字节数据是相同的,从机只有在自身数据变化时才发送应答,当总线上没有任何从机应答时,该帧的应答部分为空。如果总线上有超过一个从机应答,则发生冲突,主机则通过发送无条件帧轮询所有从机,解决冲突的问题。

图14示例事件触发帧的进度表。图上半部分表示无冲突时的情况,主机发送事件触发帧,只有从机 1信号发生变化,因此在总线上发送应答(Event A);图下半部分表示有冲突时的情况,主机发送事件触发帧,从机 2 和从机 4 信号都发生变化,因此都向总线上发送应答,从而产生冲突,这时候主机执行冲突解决进度表,通过发送无条件帧轮询所有从机,从而依次读取从机 2 的 Event B 和从机 4 的Event D。
在这里插入图片描述

偶发帧

帧ID 0 ~59。偶发帧(Sporadic Frame)是主机节点在同一帧时隙中当自身信号发生变化时向总线启动发送的帧。当存在多个关联的应答信号变化时,通过事先设定的优先级来仲裁。偶发帧主要用于主机发送不经常变化的信息,可以理解为主机用的事件触发帧。与事件触发帧一样,偶发帧的应答也关联了一组无条件帧。

偶发帧的传输可能出现 3种状况:

  1. 当关联的无条件帧没有信号发生变化时,该时隙保持沉默,主机节点连帧头都不需要发送;
  2. 当其中一个关联的无条件帧包含的信号发生了变化, 则发送该关联的无条件帧的应答部分,如图15上半部分所示;
  3. 如果有两个或以上关联的无条件帧包含的信号发生了变化,则按照事先规定好的优先级,优先级较高的关联的无条件帧获得发送权,优先级较低的要等到下一个偶发帧的帧头到来时才能发送应答。由于主机节点是唯一的发布节点,所以主机节点事先就知道各个关联信号的优先级别,这样在传输时不会产生冲突,如图下半部分所示

引入偶发帧和事件触发帧是为了让LIN总线的通信机制更加灵活,只在信号变化或未变化时传输消息可有效提高总线的通信效率。
在这里插入图片描述

诊断帧

诊断帧包括主机请求帧和从机应答帧,主要用于配置、识别和诊断。诊断基于 SO 15765-2 传输标准和 ISO 14229UDS (Uniform Diagnostic Services)标准。主机请求帧的帧 ID = 0x3C,应答部分的发布节点为主机节点,一般用于诊断请求或配置从机;从机应答帧的帧 ID = 0x3D, 应答部分的发布节点为从机节点,一般为诊断应答。数据段规定为 8个字节,一律采用标准型校验和。诊断帧的帧头和应答方向如图所示。
在这里插入图片描述

3.状态管理

LIN总线的状态管理主要指网络的休眠和唤醒。协议规定从机 4 种状态:关机、初始化、运行和休眠。各个状态的切换关系如图17所示,在系统上电时从机在 100ms 以内完成初始化,随后从机自行进入运行状态。主机可以通过主机请求帧(帧ID = 0x3C)的 Go-to-Sleep 命令从机进入休眠状态(DAT0 = 0x00, DAT1-7 = 0xFF)。从机也可以在总线上没有活动后的 4 ~ 10s 内进入休眠状态。
在这里插入图片描述

主机和从机都可以唤醒整个网络,唤醒为持续时间 250us ~ 5ms 的显性信号,所有节点在检测到唤醒信号后旋即退出休眠状态,进行初始化,最长在 100ms 后进入运行状态。如果节点发送出唤醒信号后,在150 ~ 250ms 内没有接收到总线上的任何命令(帧头),则可以重新发送一次唤醒。唤醒信号最多可以发送 3 次, 3 次之后,必须等待至少 1.5s 之后才可以再次发送唤醒。图示意LIN总线的唤醒流程。
在这里插入图片描述

参考文章:

【1】[LIN通信入门(一) - 知乎 (zhihu.com)](https://baike.baidu.com/item/LIN总线/5335927);

【2】LIN总线_百度百科 (baidu.com)

【3】lin 2.0规范 - 道客巴巴 (doc88.com)

【4】LIN 总线协议详解1(LIN总线拓扑)_dailbing的博客-CSDN博客

【5】Lin总线概述及入门_冯子同学的博客-CSDN博客

【6】lin总线通信_好活懒人的博客-CSDN博客_lin通信

【7】LIN Bus – 第22条军规 (wangdali.net)

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

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

相关文章

OSI七层参考模型和TCP/IP四层(五层)参考模型

OSI七层参考模型 OSI(OSI,Open System Interconnection)七层模型,是参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系。它是一个七层的、抽象的模型体,不仅…

H264码流中SPS PPS详解

1 SPS和PPS从何处而来? 2 SPS和PPS中的每个参数起什么作用? 3 如何解析SDP中包含的H.264的SPS和PPS串? 1 客户端抓包 在做客户端视频解码时,一般都会使用Wireshark抓包工具对接收的H264码流进行分析,如下所示&…

艾美捷nickases-Cas9内切酶裂解试验展示

核酸内切酶(endonuclease)在核酸水解酶中,为可水解分子链内部磷酸二酯键生成寡核苷酸的酶,与核酸外切酶相对应。从对底物的特异性来看,可分为DNaseⅠ、DNaseⅡ等分解DNA的酶;RNase、RNaseT1等分解RNA的酶。…

在 Spring Boot中配置日志

Spring Boot 在引擎盖下使用Apache Commons Logging。但是,它允许您选择所需的日志记录库。让我们来看看使用 Spring Boot 时的一些配置和最佳实践。 目录 概述简单日志记录示例配置日志记录 更改日志级别将日志写入文件在 Spring 引导中更改日志记录模式对日志条…

弹簧(压簧)力度计算与设计

弹簧(压簧)力度计算与设计弹簧的种类什么是弹性系数弹簧的材料常用材料与用途弹性系数与哪些因素有关弹簧力度设计与计算弹簧收尾设计弹簧是一种利用弹性来工作的机械零件。一般用弹簧钢制成。利用它的弹性可以控制机件的运动、缓和冲击或震动、储蓄能量…

优思学院|精益六西格玛的成本效益怎么样?

所有精益六西格玛的实施都以项目工作为中心,因此可以用投资回报率(ROI)确定成本效益。项目可以集中在通过改善营收或降低成本(或两者)来提高净利润。 它们也可以侧重于通过减少资产(通常是库存或应收账款&…

项目实战——匹配系统(上)

ps:从这篇文章开始,整个项目最精华(困难)的部分就要来了,因此这里会把每一个步骤细分,并且说一下自己对于每个步骤的思考和理解(博主水平有限,错误在所难免,欢迎指出讨论…

【web渗透思路】敏感信息泄露(网站+用户+服务器)

目录 一、信息泄露示例 1、示例: 二、泄露方式 1、原理: 三、泄露危害 1、危害: 四、泄露挖掘 1、爬虫文件 2、目录信息 3、越权访问 4、开发注释、js文件 5、错误提示 6、调试信息 7、备份等目录文件 8、配置不安全 9、版本控…

相控阵天线(五):稀疏阵列(概率密度稀疏法、多阶密度加权法、迭代傅里叶(IFT)法)

目录简介稀疏线阵概率密度稀疏法多阶密度加权法迭代傅里叶(IFT)综合法对称分布稀疏阵列建模仿真简介 稀疏阵是在不明显改变阵列波束宽度的情况下去掉一些阵元,可以用满阵列的几分之一的阵元构造一个减低了增益的高方向性阵列,符合大型阵列设计中降低成本…

丰田+比亚迪「围攻」大众,明年或将「让出」榜首之位

大众,正在经历最艰难的时刻。 高工智能汽车研究院监测数据显示,今年1-10月,大众集团旗下大众品牌乘用车在中国市场的交付上险同比下滑11.5%,而作为老对手,排名第二的丰田,则是同比增长13.72%。 豪华品牌部…

解析分布式数据库的技术框架及其在金融行业中的应用规划

早期银行业务系统处理的主要是交易型数据,数据量较少,传统关系型数据库(如Oracel、DB2等)已足够应对。随着互联网金融业务的快速发展,业务系统需要处理的数据呈爆炸式增长,传统数据库无法满足业务系统越来越高的数据处理能力要求。于是,新型的分布式数据库系统应运而生。…

Java内部类解析

作者:~小明学编程 文章专栏:JavaSE基础 格言:目之所及皆为回忆,心之所想皆为过往 目录 什么是内部类 静态内部类 静态内部类访问外部类的规则 外部类访问静态内部类的规则 实例化静态内部类 非静态内部类 内部类访问外部类…

双向链表的实现

这里以结构体的方式来实现链表,也可以使用类。结构体在没有修饰符的情况下,默认是共有访问。如有不对,希望能指出。 目录 一、链表和结点结构体的声明 (ListNode.h) 二、链表各个功能的实现 1、增 (1) 构造函数(创建链表头结点…

信息安全工程实践笔记--Day1 信息收集漏洞扫描

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录实验目标(一)信息收集一、搜索引擎二、域名1.whois 查询2.子域名查询3.真实ip(1)什么是cdn?(2) 如何验证目标服务器是否挂载cdn&a…

零基础自学javase黑马课程第十六天

零基础自学javase黑马课程第十六天 ✨欢迎关注🖱点赞🎀收藏⭐留言✒ 🔮本文由京与旧铺原创,csdn首发! 😘系列专栏:java学习 💻首发时间:🎞2022年11月21日&…

中国市场杂志社中国市场编辑部2022年第32期目录

前沿理论 新冠肺炎疫情下跨境冷链物流的新思考——以大连冷链业疫情为例 廖燕莲;谷玉红;尚书山; 1-3《中国市场》投稿:cnqikantg126.com 数字经济背景下数字服务税问题探析 李瑞玲; 4-6 我国工业能源效率提升的阻碍及其对策探究 韩洁平;田振东;张诗雅; …

Linux 之 Linux/Ubuntu 中开发操作中常用的命令整理

Linux 之 Linux/Ubuntu 中开发操作中常用的命令整理 目录 Linux 之 Linux/Ubuntu 中开发操作中常用的命令整理 一、简单介绍 二、常用命令 1、 打开终端 :Ctrl Alt T 2、退出终端:exit 3、查看安装 Ubuntu 版本/显示系统等信息:uname…

Advances in Graph Neural Networks笔记4:Heterogeneous Graph Neural Networks

诸神缄默不语-个人CSDN博文目录 本书网址:https://link.springer.com/book/10.1007/978-3-031-16174-2 本文是本书第四章的学习笔记。 感觉这一章写得不怎么样。以研究生组会讲异质图神经网络主题论文作为标准的话,倒是还行,介绍了HGNN的常见…

csdn月入过万的作者是如何练成的?

很多年前,我有一个成为作家的梦想。 后来从事了技术,觉得与作家梦越来越远了。 虽然梦想远去,但写字的欲望没有停止。 这些年,一直在有道云笔记上记录自己的工作心得,偶尔会来csdn上写一写。 我在csdn真正发力的时候…

openGauss数据库客户端连接工具之Datastudio安装

Datastudio使用前电脑必须安装jdk1.8版本或者1.11版本,如未安装可点击以下连接,参考第一步把jdk给安装成功。 点击此处查看jdk安装步骤 Datastudio下载地址:软件包|Datastudio 下载完成后,解压安装包,双击exe文件打开…