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

LIN总线

前言

本文参考:【LIN总线】LIN总线传输协议 - Emma1111 - 博客园

一、汽车中常用总线介绍

        目前,汽车主流总线类型分以下四类:

  1. LIN总线:通讯速度为10-125k,主要应用在汽车门窗、雨刮、灯光、座椅等部件。

  2. CAN总线:通讯速度为125k-1M,主要应用在汽车空调、电子指示、故障检测等部件。

  3. FlexRay:通讯速度为1M-10M,主要应用在汽车引擎控制、ABS、高级驾驶辅助等部件。

  4. Most(逐渐被车载以太网取代):通讯速度为10M以上,主要应用在汽车导航系统、多媒体娱乐等部件。

  5. 车载以太网:通讯速度高达Gbps,主要应用在智能座舱、自动驾驶、OTA升级方面。

二、LIN总线介绍

2.1 LIN总线概念

        核心比喻:LIN总线就像一个 “部门内部的对讲机”。

        想象一下,一个公司里有好几个部门。部门内部成员之间需要沟通,但没必要都用公司昂贵的电话系统(这相当于CAN总线)。他们会用一个便宜又实用的内部对讲机

  • CAN总线 = 公司的正式电话系统

    • 速度快,能同时多人通话(仲裁),但设备贵,线路复杂。

    • 用于重要部门之间沟通(如发动机部和刹车部)。

  • LIN总线 = 部门内部的简易对讲机

    • 速度慢,一次只能一个人说,但设备便宜,布线简单。

    • 用于部门内部琐碎的事务沟通。

        我们可以这样理解LIN总线:

它是汽车里一个低成本、低速度的“局部区域网络”。它采用“经理点名,员工回答” 的简单工作模式,专门负责处理那些不重要、不紧急的“杂活”,从而让更高级、更昂贵的CAN总线能腾出资源,去处理像发动机、刹车这样的“重要大事”。

2.2 LIN总线的工作模式

        在这个“对讲机”网络里,有且只有一个经理(主节点),和几个员工(从节点)

        规则很简单:只有经理有权利发起对话,员工不能随便发言。

  1. 经理点名:经理拿起对讲机喊:“小王,报告一下你的情况!

    这在LIN总线里叫做发送 “报头”,里面包含了“小王”的ID。
  2. 员工答到:员工小王听到叫自己的名字,立刻回答:“经理,我一切正常。

    这在LIN总线里叫做发送 “响应”,里面包含了小王的具体数据。
  3. 其他员工:员工小张和小李也听到了,但发现叫的不是自己的名字,所以他们保持沉默。

这个过程就是LIN总线最核心的“单主多从”和“一问一答”机制。

2.3 LIN总线的特点

  1. 便宜是王道

    1. 它只用一根信号线,极大地节省了线束成本和重量。

    2. 对“员工”(从节点)的要求很低,可以用非常简单的芯片实现,进一步降低成本。

  2. 速度慢,但够用

    • 它的传输速度最高只有CAN总线的几十分之一(最高20kbps)。

    • 但这对于控制车窗升降、读取按钮状态、调节后视镜这些“慢动作”来说,完全足够了。

  3. 结构简单

    • 网络里必须有且只有一个“经理”(主节点),通常是像车门模块、座椅控制器这样的稍复杂一点的电脑。

    • “员工”(从节点)就是那些简单的开关、传感器和小电机。

2.4 LIN总线在车上用来干什么?

     所有那些不涉及驾驶安全、动作不紧急、但又需要智能控制的地方,都是LIN总线的用武之地:

  • 车门:控制车窗升降、门锁、后视镜折叠/调节。

  • 座椅:调节座椅位置、记忆座椅设定、座椅加热。

  • 方向盘:上面的多媒体按键、巡航控制按键。

  • 空调:控制风门执行器、检测阳光强度。

  • 车顶:控制天窗开关、阅读灯。

三、LIN报文结构

3.1 核心比喻

我们用一个非常生动的例子—— “老师课堂点名提问” ,来彻底讲懂LIN报文结构。

核心比喻:一堂LIN总线的“课”

想象一下LIN总线就是一堂课:

  • 老师 = LIN主节点

    • 他是课堂上唯一有权力发起提问的人。

  • 学生们 = LIN从节点

    • 他们只有被老师点名时才能回答。

  • 一次完整的问答 = 一个LIN报文帧

LIN报文部分在课堂上的比喻详细解释
点名(报头)老师发起提问这部分永远由老师(主节点)完成
1. 同步间隔场老师大喊:“注意了!”这是一个又长又特别的停顿,目的是让所有走神的学生(从节点)都抬起头,知道老师要开始提问了。这是LIN报文的开始标志。
2. 同步场老师有节奏地拍手:“啪-啪-啪-啪”老师拍出一个固定的节奏(固定字节 0x55),所有学生都根据这个节奏来校准自己的手表(波特率)。这样大家才能步调一致,听懂后续的问题。
3. 受保护标识符老师叫:“小明,请你回答!”这里包含了两个信息:
1. 问题ID:叫的是“小明”,而不是“小红”。这个ID决定了由哪个学生来回答,以及答案应该多长。
2. 防听错:老师会用一种特殊的语调(奇偶校验位),确保小明不会听成叫“小明”还是“小鹏”。
回答(响应)学生起立回答这部分由被点名的学生(从节点)完成
4. 数据场小明回答:“答案是42。”这是真正的有用信息,比如“车窗当前位置是80%”。数据长度(1-8字节)由之前的ID决定。
5. 校验和小明说:“我发誓答案没错!”学生对自己的答案做一个保证(计算校验和)。老师和其他同学会验证一下,确保答案在传输过程中没有被干扰出错。

整体工作流程回顾

整个LIN报文帧的传输就是一次默契的课堂互动,其流程如下图所示,清晰地展示了从“点名”到“回答”的完整闭环:

总结一下关键点:

  • 主从分明:永远是主节点发起(点名),从节点响应(回答)。

  • 结构清晰:报文由报头(点名)和响应(回答)两大部分组成,缺一不可。

  • 同步是基础:同步场确保了所有设备“步调一致”。

  • ID是关键:受保护标识符(帧ID)决定了谁该回答,以及答案的格式。

  • 校验保可靠:校验和用来检查数据是否准确。

3.2 LIN报文结构(帧头+应答)

        LIN报文帧由帧头(Hearder)与应答(Response)两部分组成。如下图所示,传输过程中,主机节点负责发送帧头;从机节点负责接收帧头,然后作出解析决定发送应答,还是接收应答或不回复。

1. 帧头 - 主节点的“点名”(必由主节点发送)

帧头的作用是发起一次通信,并告诉哪个从节点该回应了。它包含三个部分:

组成部分通俗解释具体数据内容与规则
同步间隔场“全体注意!”• 时长:一个持续至少13个位时间显性电平(逻辑0)
• 作用:这是一个独特的、绝不会在正常数据中出现的信号,用于唤醒所有从节点,并标志一个新帧的开始
同步场“大家看我的节奏!”• 固定数据:一个固定的字节 0x55
• 二进制模式0x55 的二进制是 01010101,这是一个非常规则的方波。
• 作用:从节点通过测量这个方波的间隔,来校准自己的波特率,确保与主节点同步。这是实现低成本从节点的关键。
受保护标识符“小明,你来回答!”• 数据构成:1个字节,包含6位帧ID + 2位奇偶校验位
• 帧ID范围0x00 - 0x3F (0-63)。它定义了谁该响应以及数据场的长度。
• 奇偶校验位
P0 = ID0 XOR ID1 XOR ID2 XOR ID4
P1 = NOT (ID1 XOR ID3 XOR ID4 XOR ID5)
• 作用:确保从节点不会听错ID,并在接收到错误ID时丢弃该帧。

2. 应答 - 被点名者的“回答”(可由从节点或主节点发送)

应答的作用是携带真正的有效数据。它由被帧头点名的节点发送。

组成部分通俗解释具体数据内容与规则
数据场“我的答案是...”• 数据长度:包含1到8个字节的有效数据。具体长度由帧ID决定。
• 内容:可以是传感器读数、开关状态、控制命令等(如:车窗位置 = 75%)。
• 发送者
- 如果帧ID对应一个从节点,则由该从节点发布数据。
- 如果帧ID对应主节点自身,则由主节点发布数据。
校验和场“我发誓答案没错!”• 计算方式:1个字节,由发送方计算。
• 两种类型
经典校验和:只对数据场的内容进行计算。
增强校验和:对受保护标识符(帧ID) 和数据场一起计算。这是新规范的趋势,安全性更高。

关键点总结

  • 分工明确帧头(Header)永远由主节点发送,用于调度;应答(Response)由被点名的节点发送,用于提供数据。

  • 同步基础:同步间隔场和同步场是建立可靠通信的基础。

  • ID是灵魂受保护标识符是整个帧头的核心,它决定了通信的对象和内容格式。

  • 数据是目的:数据场承载了实际的控制信息或状态信息。

  • 校验保可靠:校验和场确保了数据传输的完整性。

总之:

永远只有主节点能发起通信,并且通过调度表 预先规定好了在什么时间点、由主节点去点名哪个从节点,所以整个网络的通信是完全有序、可预测的。

对比CAN:在CAN总线中,任何节点都可以在总线空闲时“抢麦”,可能存在多个节点同时发送的情况,需要通过复杂的“仲裁”机制来决定谁胜出。而LIN总线从设计上就根本不存在“抢麦”的可能,从而彻底避免了冲突。

四、LIN的帧类型

我们把LIN总线的六种帧类型想象成一个 “特种部队小组” 的不同通信模式。这个小组由一名队长(主节点) 和几名队员(从节点) 组成。

核心成员介绍

  • 队长:LIN 主节点。唯一的大脑,负责发起所有行动指令。

  • 队员1-59号:LIN 从节点,负责执行具体任务。每个队员有一个固定编号(无条件帧ID 0-59)。

现在,我们来看看这个小组的六种作战协议(六种帧类型):

1. 无条件帧 - 【常规点名报数】

  • 形象描述:这是最基础、最常用的通信。队长按照花名册,周期性地、无条件地点名。

  • 对话示例

    • 队长:“1号!

    • 1号队员:“到!我的状态是‘安全’。”

    • 队长:“2号!

    • 2号队员:“到!我的状态是‘弹药充足’。”

  • 特点按部就班,风雨无阻。无论队员的数据有没有变化,只要被点到,就必须回答。用于传输最常规、周期性的数据。

2. 事件触发帧 - 【“有情况的举手!”】

  • 形象描述:队长为了节省时间,不再一个个点名,而是对一组队员喊:“你们这几个人,谁有情况变化,就报告!

  • 对话示例

    • 队长:“第10-13号小组,有情况的报告!

    • (只有11号队员的状态发生了变化)

    • 11号队员:“报告!11号状态变为‘发现敌情’!”

    • (如果10号和12号同时报告,就会造成“冲突”)

  • 特点高效节能。只有当数据发生变化时才响应。但缺点是可能存在冲突(多个队员同时报告)。

3. 零星帧 - 【队长的直觉性询问】

  • 形象描述:队长没有固定的询问 schedule,只有当某个先决条件被满足时,他才偶尔、零星地去询问某个特定队员。

  • 对话示例

    • (队长先听到11号报告“发现敌情”)

    • 队长心想:“既然有敌情,那我得问问侦察员那边什么情况。”

    • 队长:“25号(侦察员),报告你的位置!

  • 特点由事件驱动,非周期性。用于查询那些与另一个事件相关的、不常更新的数据。

4. 诊断帧 - 【专用指挥链路】

  • 形象描述:这是队长与单个队员之间的“专属加密频道”,用于进行深度配置、下达特殊命令或读取身份信息。

  • 对话示例

    • 队长使用指挥链路:“8号,这是诊断指令:请将你的灵敏度调至最高。

    • 8号通过指挥链路回复:“收到,灵敏度已调整至最高。

  • 特点点对点,功能强大。固定使用两个专用的帧ID(0x3C0x3D),数据格式也是固定的8字节,用于实现标准的诊断功能。

5. 用户自定义帧 - 【空白指令】

  • 形象描述:队长手里有一个空白的、没有预先定义内容的指令(ID = 0x3E)。他可以根据临时需要,自由定义这个指令的含义和用法。

  • 对话示例

    • 队长:“现在发布一个自定义指令,含义是‘全体模仿鸟叫’,开始!

  • 特点灵活,用途未知。为未来的特殊应用保留的“后门”。

6. 保留帧 - 【封存的协议】

  • 形象描述:这是一套被封印的指令集(ID = 0x3F - 0xFF),目前禁止使用,是为未来可能开发的“新式武器”或“新战术”预留的。

  • 对话示例

    • (沉默... 目前无人有权使用)

  • 特点面向未来


总结与记忆技巧

你可以这样记忆这六种类型:

帧类型记忆口诀解释
无条件帧“日常点名”最常用,周期性广播。
事件触发帧“有变则报”高效,用于数据变化,但可能冲突。
零星帧“偶尔一问”非周期,由其他事件触发。
诊断帧“秘密热线”专用通道,用于配置和深度命令。
用户自定义帧“空白支票”用途灵活,自定义。
保留帧“未来科技”为明天做准备。

五、调度表

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

总结与优势

LIN调度表的核心作用就是:将不确定的通信,变得确定化。

  • 无冲突:因为所有通信都被预先安排在不同的时间槽里,就像乐队不会所有乐器同时乱响一样,LIN总线也不会发生数据冲突。

  • 可预测:你可以精确地知道任何一个信号会在什么时候出现在总线上,这对于测试和诊断至关重要。

  • 结构化:它使得整个LIN网络的通信行为是规整的、可预期的,而不是杂乱的。

六、实际应用

实例:LIN CAN总线的窗户控制

        在汽车中,每一个LIN总线集群都有一个作为CAN总线网关的主节点,例如在汽车主驾驶,可以打开副驾驶侧的窗户,当你按下按键后,LIN集群会通过CAN总线向另一个LIN集群发送报文,这就会触发第二个LIN集群操作窗户使窗户打开。

详细过程分解(结合图表)

角色介绍:

  • LIN集群:一个主节点带着几个从节点组成的“部门”。

  • 主节点:部门经理。既是本部门的领导,也是部门对外的联络员(CAN网关)。

  • 从节点:部门员工。只和经理沟通,不直接对外。

  • CAN总线:公司内部的高速电话系统(所有经理都接入)。

  • 本例中的角色分配:

    • 主驾车门模块:主驾侧LIN集群的主节点(经理)。

    • 主驾车窗开关:主驾侧LIN集群的一个从节点(员工)。

    • 副驾车门模块:副驾侧LIN集群的主节点(另一个经理)。

    • 副驾车窗电机:副驾侧LIN集群的一个从节点(另一个员工)。


步骤 1:用户输入(在主驾门板上按下开关)

  1. 你按下主驾门板上的“副驾车窗下降”开关。

  2. 这个开关本身是一个LIN从节点。它被按下后,会通过LIN总线向它的“经理”——主驾车门模块(主节点) 报告:“我被按下了,目标是下降副驾车窗”。

步骤 2:主驾侧LIN主节点处理指令并转换协议

  1. 主驾车门模块 收到来自开关的LIN消息。

  2. 它理解了这个指令:“需要控制副驾的车窗”。

  3. 它知道副驾车窗不属于自己部门管,需要跨部门协作。于是,它扮演起 “CAN网关” 的角色。

  4. 它将这个LIN指令“翻译”成一个标准的CAN报文。这个CAN报文会包含:

    • 报文ID:例如 0x123,代表这是一个“车身控制指令”。

    • 数据场:包含具体的信号,例如 Window_Control = RearRight_Down(假设副驾为右后)或 Target_Position = 0%

步骤 3:通过CAN总线进行跨域通信

  1. 主驾车门模块 将这个组装好的CAN报文发送到CAN总线上。

  2. CAN总线是广播形式的,车上所有接入CAN总线的ECU(包括副驾车门模块)都收到了这条消息

  3. 其他ECU(如仪表、BCM)可能也会看到这条消息,但它们发现与自己无关,于是忽略它。

  4. 副驾车门模块(副驾侧LIN集群的主节点)识别出这个报文ID和信号是发给自己的,于是它接收并解析这条消息。

步骤 4:副驾侧LIN主节点驱动执行器

  1. 副驾车门模块 解析出指令:“需要让本部门的车窗电机下降”。

  2. 它再将这个指令“翻译”成LIN总线的语言。

  3. 它通过LIN总线向它的“员工”——副驾车窗电机(LIN从节点) 发送具体的控制命令,例如:Motor_Rotate_Forward(电机正转)。

步骤 5:最终执行与反馈(可选但重要)

  1. 副驾车窗电机 接收到LIN指令,开始转动,将车窗放下。

  2. 同时,电机可能内置位置传感器,它会通过LIN总线向副驾车门模块反馈当前状态,如“正在运行”或“已到达底部”。

  3. 副驾车门模块 可能会再次充当网关,将这个状态信息封装成一条CAN报文(例如 Window_Status = RearRight_FullyOpen)发送到CAN总线上。

  4. 主驾车门模块 接收到这个状态反馈后,可能会点亮开关上的指示灯或做出其他响应,让驾驶员知道指令已成功执行。

总结

        这个过程的精髓在于协议转换网络桥接

  • LIN:用于局部、低成本、低速的控制(如开关、电机、传感器)。

  • CAN:用于全局、高可靠、高速的跨系统通信。

  • 主节点:核心是网关,负责在LIN和CAN之间进行协议转换,实现了不同网络集群之间的信息互通。

正是这种分层、分布式的网络架构,使得现代汽车能够高效、可靠地实现复杂的车身控制功能。

http://www.dtcms.com/a/614860.html

相关文章:

  • 彩票走势图网站是用什么程序做的做原型的素材网站
  • 现在建网站还能赚钱吗在线教育网站建设策划
  • 梅州市住房和建设局网站网络广告文案案例
  • C++ 对象布局之padding(填充字节)
  • 做直播的视频在线观看网站成都网站制作报价
  • 现在都用什么软件做网站创建网站有免费的吗
  • MVC 布局:深入解析其原理与实践
  • iis添加网站网站设计就业前景如何
  • 学院网站建设策划书wordpress的功能简介
  • LeetCode 热题 100——滑动窗口——找到字符串中所有字母异位词
  • 土动静扭剪三轴仪技术指标
  • exe文件反编译成C语言 | 反编译技巧与应用分析
  • 指数型枚举
  • 竞价网站策划网站建设在作用是什么原因
  • 遵义住房城乡建设厅网站邯郸网站建设恋家
  • LeetCode 面试经典 150_二叉树_路径总和(75_112_C++_简单)(DFS)
  • 赋能职业教育:大众ID.4 CROZZ新能源汽车故障诊断仿真教学软件
  • 网站前端是什么意思品牌策划公司推荐
  • Linux字符设备驱动开发详细教程(简单字符设备驱动框架)
  • 电商网站建设运城商务网站建设难不难
  • 【Linux日新月异(三)】CentOS 7软件管理深度指南:从YUM到源码编译
  • 有了空间和域名 网站容易做吗长沙免费旅游景点大全
  • Linux网络NAT、代理服务和内网穿透
  • wordpress链接 颜色济南网站优化小黑
  • 微信授权登录第三方网站开发做h5网站的公司
  • 企业手机网站开通商城建站系统多少钱
  • 全栈项目实战经验,前后端分离开发流程
  • C# 中使用 Influxdb 1.x(四)——在程序内管理Influxdb服务的启停
  • 大模型的On-Policy Distillation(在线蒸馏策略)
  • 杭州网站建设公司有哪几家浅析社区网站的建设