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

LIN总线基础讲解之二—LIN总线网络的物理层与帧结构

目录

1 概述

2 物理层详解

2.1 拓扑结构

2.2 传输介质与电平

2.3 位速率与同步

3 LIN帧结构

3.1 同步间隔段

3.2 同步段

3.3 受保护的ID段

3.4 数据段

3.5 校验和段

4 举例说明

5 总结


1 概述

    在上一篇文章里,我们认识了LIN总线,知道它成本低、结构简单,主要用在车上的舒适功能控制。今天,我们就来把它“拆开看看”,一起走进导线内部,看看电信号是怎么工作的,也学一学LIN总线自己那套独特的“语言”——也就是它的帧结构。

    搞懂物理层和帧结构,是设计LIN节点、排查故障、做深度优化的基本功。就像建筑师要懂材料,程序员要懂代码一样,这是绕不开的基础。

2 物理层详解

     物理层定义了在传输介质上传输原始比特流所需的技术规范。简单说,就是信号长什么样,用什么线来传

2.1 拓扑结构

    LIN网络采用严格的主从结构和总线型拓扑。

   主节点: 有且仅有一个。它通常是网络中的“大脑”,比如一个车身控制模块。主节点控制着整个网络的通信节奏。

    从节点: 最多16个。它们是执行具体任务的“手脚”,如车窗电机控制器、门锁开关等。

   总线型拓扑: 所有节点(主和从)都并联在同一根总线上。这种结构简单,易于扩展。

    一个形象的比喻: 主节点就像课堂上的老师,而从节点就是学生。老师负责提问(发起通信),指定某位学生来回答(从节点响应)。没有老师的允许,学生不能随意发言,这保证了课堂秩序。

2.2 传输介质与电平

    线束: LIN总线仅使用两根线:

  • LIN信号线: 一根,用于传输数据。
  • GND: 一根,作为公共参考地。
  • 省去一根信号线(对比CAN总线)是其低成本的关键之一。

    电压电平(核心概念):LIN总线通过信号线上的电压值来表示逻辑“0”和“1”。这里引入了两个非常重要的概念:显性电平 和 隐性电平

  • 显性电平: 代表逻辑‘0’。此时,总线电压被下拉至接近GND的电压(通常≤1.2V)。这个电平是“强大”的,因为它能够覆盖掉总线上的其他电压。
  • 隐性电平: 代表逻辑‘1’。此时,总线通过一个上拉电阻被上拉至电池电压(通常是12V,在系统工作时,MCU端看到的通常是5V或3.3V)。这个电平是“弱小”的,默认状态。

    为什么这么设计?——线与逻辑:这种显性/隐性的设计实现了一种线与逻辑。如果网络上任何一个节点将总线拉低到显性电平(‘0’),那么无论其他节点想输出什么,整个总线都被表现为显性电平。只有当所有节点都放手(输出隐性电平‘1’)时,总线才表现为隐性电平。这为错误检测和帧类型的扩展提供了基础。

  

2.3 位速率与同步

    速率: LIN总线支持的速率范围为1 kbps 到 20 kbps。最常用的速率是19.2 kbps(在晶体振荡器精度支持下,可以达到很好的性价比)。

    同步机制: 由于从节点可能使用成本较低、精度较差的RC振荡器,其自身产生的波特率可能与主节点不一致。为了解决这个问题,LIN帧中包含了同步段,专门用于从节点与主节点的波特率进行同步校准。这是LIN协议的一个精妙设计,我们稍后会详细解释。

3 LIN帧结构

    LIN总线上的所有通信都以“帧”为单位进行。一帧LIN报文是承载信息的最小完整单元,就像一列火车,有车头、车厢和车尾。它由报头 响应 两部分组成,具体的帧结构如下:

3.1 同步间隔段

  • 作用: 这是一个“醒醒,注意了!”的信号。它用来唤醒处于休眠状态的从节点,并标志着一帧报文的开始。
  • 形态: 它由一个持续至少13位时间显性电平(‘0’),紧跟一个至少1位时间隐性电平(‘1’) 的“间隔符”构成。
  • 意义: 在正常的LIN通信中,不会出现如此长时间的显性位。因此,同步间隔段是一个独一无二、极易识别的“起始信号”,确保了所有从节点都能可靠地识别到一帧的开始。

3.2 同步段

(1)作用: 一个“对表”信号。用于从节点校准自己的波特率,使其与主节点保持一致。

(2)内容: 固定为 0x55(十六进制),用二进制表示是 01010101

(3)工作原理:

  • 主节点以精确的波特率发送这个0x55。
  • 从节点接收到这个字节后,通过测量第一个下降沿(从‘1’到‘0’)和最后一个上升沿(从‘0’到‘1’)之间的时间,可以计算出主节点发送8个位(5个边沿)用了多少个自己的时钟周期。
  • 从而,从节点可以调整自己的波特率分频器,使得在接下来的通信中,自己的位定时与主节点同步。
  • 这个过程对于使用低成本RC振荡器的从节点至关重要,确保了通信的可靠性。

3.3 受保护的ID段

(1)作用: LIN报文的“身份证”和“指令牌”。它告诉从节点两件事:

  • 这帧数据是什么意思? (即帧的身份)
  • 谁应该来响应(回复数据)或者谁应该来收听?

(2)长度: 6位(实际标识符) + 2位奇偶校验位 = 8位。

(3)标识符编码:

  • ID[5:4] 通常表示帧的类型(我们在后续文章会深入讲解)。
  • ID[3:0] 与 ID[5:4] 共同决定了帧的具体含义。

(4)奇偶校验: 后两位是前六位的奇偶校验位,用于保护标识符在传输中不发生错误,计算公式如下:

  • P0 = ID0 XOR ID1 XOR ID2 XOR ID4
  • P1 = NOT (ID1 XOR ID3 XOR ID4 XOR ID5)

(5)关键点:

  • 标识符并不代表节点的地址,而是代表这帧数据内容的含义
  • 从节点通过监听标识符来判断自己是否需要响应或接收。例如,一个控制左前车窗的从节点,它会“订阅”标识符为“车窗控制”的帧。当主节点发出这个标识符的报头后,该从节点就知道:“轮到我了,我要回复当前车窗的状态数据”;而其他节点则会忽略这帧。

3.4 数据段

(1)作用: 承载实际传输的数据。

(2)长度: 可包含 2、4或8个字节 的数据。8字节是最常用的格式。

(3)内容: 数据段可以包含一个或多个“信号”。信号是LIN总线中最基本的数据单元,比如“车窗开关状态”、“电机电流值”、“温度值”等。这些信号按照LDF文件中的定义,被“打包”进数据段的各个字节的特定位置。

3.5 校验和段

(1)作用: 保证数据在传输过程中的完整性,确保数据没有因干扰而出错。

(2)类型:

  • 经典校验和: 仅对数据段的内容进行计算(LIN 1.3)。
  • 增强型校验和: 对标识符段数据段的内容一同进行计算(LIN 2.0及以上)。这是目前的主流方式,提供了更好的保护。

(3)计算方法: 将所有需要保护的字节相加,然后取256的补码(即求和后,反转所有位,再加1,最后只取低8位)。

(4)工作流程: 发送方计算校验和并附在数据段之后。接收方按照同样的规则计算接收到的数据的校验和,并与接收到的校验和字节进行比较。如果一致,则认为数据正确;否则,丢弃该帧。

4 举例说明

让我们以一个“主节点查询车内温度”的实例,将整个帧结构串联起来:

(1)主节点决定要读取温度值。它在调度表中查到,温度数据对应的帧标识符是 0x23

(2)主节点在LIN总线上发送报头

  • 先拉低总线至少13位时间(同步间隔段),再拉高1位时间(间隔符)。
  • 然后发送 0x55(同步段),让所有从节点校准波特率。
  • 最后发送 0x23 这个字节(标识符段),其中包含了6位标识符和2位奇偶校验位。

(3)温度传感器(从节点) 一直在监听总线。它识别出标识符 0x23 是自己负责响应的帧。

(4)温度传感器开始发送响应

  • 它将测量到的温度值(例如25°C)打包成1个或2个字节的数据段
  • 它根据增强型校验和规则,对 0x23 和温度数据字节进行计算,得到校验和字节。
  • 它将数据段校验和段依次发送到总线上。

(5)主节点接收到完整的帧后,验证校验和是否正确。如果正确,它就提取出温度值,可以自己使用,或者通过CAN总线转发给其他需要这个信息的模块(如空调控制器)。

(6)网络中的其他从节点(如车窗控制器)也听到了这个标识符,但它们发现与自己无关,于是忽略这帧数据的响应部分。

5 总结

    通过本次的讲解,我们清晰地看到了LIN总线通信的物理基础和报文骨架。从显性/隐性电平的“线与”逻辑,到精妙的同步机制,再到通过标识符来寻址内容的通信模式,每一个设计都体现了其“低成本、高可靠性”的核心思想。

    理解帧结构是理解LIN通信的基石。在下一篇文章中,我们将更进一步,探讨LIN网络的 交通规则——调度表 和帧类型,看看主节点如何高效地管理多个从节点之间的通信,以及LIN总线如何应对不同类型的数据传输需求。我们下次再见!

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

相关文章:

  • 十三、More Deeper:VGG详解,从网络结构到实战
  • 天台网站建设大丰有做网站的
  • 网站建设公司利润怎么样利用网站制作网页
  • 单端口RAM IP核
  • 26、【Ubuntu】【远程开发】内网穿透:密钥算法介绍(二)
  • 什么网站可以做电子画册医院网站建设 南宁
  • 免费物业网站模板网架生产企业
  • FreeRTOS coreHTTP 客户端库源码与架构全景剖析
  • HttpServletRequest中的 Attribute(属性)生命周期和作用域是 Java Web 开发中的重要概念
  • 甘肃省水利厅引洮工程建设管理局网站网页制作与网站建设...
  • 浦东建设网站柳州网站建设柳州
  • Linux 基础开发工具----Vim编辑器的常见命令
  • Flutter for HarmonyOS开发指南(八):国际化与本地化深度实践
  • 建设局主要负责什么黑帽seo软件
  • 购买东西网站怎么做网页空间租用
  • 什么网站做外贸最多的网站建设虚线的代码
  • AIDD - 自主决策实验室 Intrepid Labs 介绍
  • 自己网站建设要维护23个营销专业术语
  • 如何做app网站网站后端用什么语言
  • HarmonyOS SDK使能美团高效开发,打造优质创新应用体验
  • 河北公司网站建设效果网站整合discuz论坛
  • 沈阳网站建设哪里的公司比较好厦门市建设工程造价网
  • 插值——拉格朗日插值
  • 马鞍山集团网站设计国外免费ip地址和密码
  • ps做汽车网站下载长沙圭塘网站建设公司
  • AJAX和Promise
  • 直播网站建设费用腾讯云域名控制台
  • 山东兴润建设集团网站ps设计网站步骤
  • 广州网站 制作信科便宜seo就业
  • 基于ENAS与YOLOv8的草莓成熟度自动检测系统:原理、实现与性能优化(含详细代码)