车用技术总线 | 从应用角度了解下LIN总线

2023-05-16

注意:本文约4850字,完整阅读时间约13分钟。

 

主要内容

  • LIN总线概述

  • LIN总线的应用

  • 示例:LIN总线和CAN总线的窗户控制

  • LIN总线的信号报文

  • 记录LIN总线数据

  • LIN总线数据记录应用案例

本文将介绍LIN(Local Interconnect Network,本地连接网络)协议的基本知识,包括LIN总线和CAN总线的对比、LIN总线的应用案例、LIN是如何运行的以及LIN中的6种帧类型;另外,这是一篇偏实用的简介,所以里面还会介绍到LIN总线数据记录的基础知识。

 

什么是LIN总线 

LIN总线是CAN总线的补充,它的可靠性以及性能较低,但成本也是比较低的。下面我们将简单介绍下LIN总线的特点以及其和CAN总线之间的异同。

  • 更低的成本(如果对速度或者容错性的要求较低)

  • 常用在车辆的窗户、雨刮器、空调等

  • LIN集群中只有一个主节点和最多有16个从节点

  • 只有一根信号线(需要配合地线),波特率为1-20 kbit/s,线缆最长能达40米

  • 由时间出发的调度表能保证报文间延迟的时间

  • 可变的数据长度(2、4、8字节)

  • LIN总线支持错误检查、校验和配置

  • 工作电压为12V

  • 物理层是基于ISO 9141(K线)

  • 支持睡眠模式和唤醒

  • 现在的新车上都还有10个以上的LIN节点

 

 LIN总线和CAN总线的对比

  • LIN总线的成本更低(线束更少、不需要购买许可以及节点更便宜)

  • CAN总线使用双绞屏蔽线-5V,LIN总线使用单线-12V

  • LIN总线中的主节点通常也是一个CAN、LIN的网关

  • LIN总线报文发送的顺序是确定的,不是事件驱动的,即没有总线仲裁

  • LIN总线中主节点只能有一个,而CAN总线没有主从的概念

  • CAN总线会使用11或29位的标识符,LIN总线中的标识符是6位的

  • CAN总线的波特率能达1Mbit/s而LIN总线的波特率最大也就20 kbit/s

LIN总线的历史

下面我们简要的回顾下LIN总线规范的历史吧~

1999年:LIN 1.0由LIN联盟(宝马、大众、奥迪、沃尔沃、梅赛德斯奔驰、瑞典的火山汽车以及摩托罗拉)发布

  • 2000年:LIN协议被更新了(LIN 1.1和LIN1.2)

  • 2002年:发布了LIN1.3,主要是修改了物理层

  • 2003年:发布了LIN 2.0,可以说是全新一代,也被广泛使用

  • 2006年:发布了LIN 2.1

  • 2010年:发布了LIN 2.2A,是现在广泛采用的版本

  • 2010-12年:基于LIN 2.0,SAE将LIN标准化为SAE J2602

  • 2016年:CAN in Automation(CiA)也将LIN标准化了(ISO 17987:2016)

LIN总线的未来

LIN总线正在为当代车辆提供低成本的功能扩展中,起到越来越重要的作用。

因此,在过去十多年中,LIN总线已迅速得到了普及,到2020年,汽车中的节点数量预计将超过7个亿,而2010年约为2个亿。

 

网络安全与新协议

但是,随着LIN总线的普及,对其网络安全的要求也越来越高。LIN总线也面临着CAN总线相似的风险,并且由于LIN总线应用在座椅、方向盘等设备上,所以LIN总线还需尽量控制这些风险。

未来,CAN FD、FlexRay以及汽车以太网在汽车网络上的应用会越来越多。虽然这些体系在未来汽车中扮演的角色尚未确定,但大部分人认为LIN总线仍会是未来满足现代汽车功能不断增长需求中至关重要低成本的解决方案。

 

 

LIN总线的应用

如今,LIN总线已经成为现代车辆上约定俗成的标准,下面是一些LIN总线在汽车上的应用:

  • 方向盘附近:巡航控制、雨刮开关、温度控制、收音机等

  • 舒适度模块:温度、天窗、光线、湿度的传感器等

  • 动力总成:位置、转速、压力传感器等

  • 发动机:小型电动机、冷却风扇的电动机等

  • 空调:电动机、控制面板(空调通常很复杂)等

  • 车门:后视镜、窗户、座椅控制装置、锁等

  • 座椅:位置马达、压力传感器等

  • 其他:雨刮、雨量传感器、前大灯、空调进气等

此外,LIN总线出现在了其他行业中

  • 家电:洗衣机、冰箱、炉灶等

  • 自动化:制造设备、金属加工等

 

示例:LIN总线和CAN总线的窗户控制

一个LIN集群的节点通常都是在一块的,每个集群中都有一个作为主干CAN总线网关的主节点。

示例:在汽车主驾驶侧,您可以打开副驾驶侧的窗户。当你按下按键后,LIN集群会通过CAN总线向另一个LIN集群发送报文,那这就会触发第二个LIN集群操作窗户使窗户打开。

LIN总线是如何工作的?

LIN总线的工作核心相对简单:

主节点循环询问每个从节点(发送一些请求报文),从节点会在主节点询问后发送数据(向主节点或从节点)。

但是,随着其他各种规范的更新,LIN规范中也添加了其他新功能,这样它也变得复杂起来。

下面,我们会介绍一些基础知识:LIN的报文以及6种报文类型

 

LIN总线的信号报文

简单来说,LIN总线的信号报文由报文头和数据响应组成。

通常,LIN的主节点会将报文头发送到LIN总线上,这将会触发一个从节点,它会将最多8个字节的数据到数据响应中。

整个LIN报文的结构如下图所示。

 

帧结构

间隔场:SBF(Sync Break Field,同步间隔场)又叫间隔场,间隔信号至少由13个显性位组成,间隔界定符至少由1个隐性位组成(实际上通常是18+2位)。间隔场表示一帧报文的起始(类似于CAN总线中的SoF,帧起始),由主节点发出。

同步场:8位的同步场常配置为0x55(二进制为:01010101),这是为了让LIN节点识别上升或者下降沿之间的时间,以确保所有从节点使用与主节点相同的波特率发送和接收数据。

标识符场:前6位放标识符,后2位放奇偶校验符。该标识符场用于发送每个LIN报文的标识符,以及哪些节点需要对报文头进行相应。从节点会判断标识符的有效性(基于奇偶校验位),并且进行以下操作:

  1. 忽略后续数据的发送

  2. 侦听另一个节点传输的数据

  3. 将数据填入对应报文头的数据响应中

通常,每次轮询一个从节点,这就意味着不会有报文冲突,因此也无需仲裁。

请注意,这6位的标识符允许使用的64个ID中(即从0到63(0x3f)),ID 60-61用于诊断(下面会介绍),而ID 62-63则是保留的。

数据场:当LIN的从节点被询问时,它可以通过发送2、4或8字节的数据进行相应。从LIN 2.0开始,数据长度就取决于ID决定(ID 0-31:2个字节,32-47:4个字节,48-63:8个字节)

校验和场:像CAN总线中一样,校验和场可以确保LIN报文的有效性。经典校验(也称8位经典校验)是指对仅对数据场进行校验(LIN 1.3),而增强校验会校验标识符场(PID)以及数据场的内容(LIN 2.0及以上)

字节间隔和响应间隔

由于低成本LIN节点的性能通常很差,因此通常会发送延迟。为了减少这种情况的发生,可以选择添加字节间隙,如下图所示。另外,在报文头和数据响应之间,可以存在响应间隔,允许从节点有足够的时间对主节点的报文头进行识别、处理和响应,比较高级节点的间隔可能为0。

 

记录LIN总线数据

CANedge可以让您轻松地将LIN总线的数据记录到8-32 GB的SD卡中。仅需将它连接到您的LIN应用程序便可以开始记录,并可以通过免费的软件或者API来处理这些数据。

LIN报文帧的六种类型

虽然存在很多LIN报文帧类型,但是在一般应用中,通常都是由“无条件帧”来完成的。

需要注意的是,下面介绍的每一种帧类型都遵循同样的LIN报文帧结构,仅仅只是在时序或数据字节上有所区别。

下面,我们会简要介绍LIN报文帧的类型。

无条件帧:主节点发送报文头,向特定的从节点处请求信息的默认通行形式。相应的从节点会做出相应的反应

事件触发帧:主节点轮询多个从节点。一个从节点的某个无条件帧有信号被更新时,才会响应,这可以增强LIN总线的响应能力,其PID会放在第一个数字字节中。如果有多个从节点同时响应时,就会发生冲突,主节点会将其默认为无条件帧

零星帧(偶发帧):仅当主节点知道特定的从节点更新了数据后才主节点发送,主节点这时也是从节点,它自己将数据响应接在报文头后,并向从节点提供动态的信息

诊断帧:从LIN 2.0开始,ID 60、(0x3c)ID 61(0x3d)就用于读取主节点或从节点的诊断信息。诊断帧包含8个字节数据。ID 60是主请求帧,ID 61是从响应帧

用户定义帧:ID 62(0x3e)是用户定义帧,即可以包含任何类型的信息

保留帧:ID 63(0x3f)是保留帧,且不能用在适用于LIN 2.0的网络中

 

LIN总线高级应用

下面我们将介绍两个LIN总线的高级应用

LIN的.ncf文件(Node Configuration Files)以及.ldf文件(LIN Description File)

为了更快速的构建LIN网络,市面上的LIN节点一般都会带有节点的.ncf文件,这个文件会详细说明节点的功能。

然后,OEM会将这些节点的.ncf文件整合成一个集合文件,这个集合文件就是.ldf文件。最后,主节点会根据.ldf文件中的调度表等进行设置和管理LIN 集群。

请注意,可以使用前面讲到的诊断帧来重新配置LIN总线的节点。这种配置可以在生产期间完成,也可以在每次网络启动完成。比如,您可以通过这种方式来更改节点的ID。

如果您熟悉CANopen,那您可能会发现有点像用于预配置CANopen节点的设备配置文件以及SDO(Service Data Objects)在更新配置时的作用。

 

 LIN总线的休眠与唤醒

LIN总线的关键优势不仅是可以节省成本,还可以节省能耗。

LIN的主节点可以通过发送第一个字节为0的诊断帧(ID 60)来让所有的从节点进入休眠模式。另外,如果总线超过4秒也没有活动,从节点就会自动进入休眠模式。

从节点的唤醒可以是通过主节点或从节点发动唤醒请求。这需要将总线置为250-5000μs的显性,紧接着暂停150-250ms。如果主节点没有发送报文头,那这操作最多只能重复3次。如需要发送第4次唤醒请求,那则需要先等待1.5秒。通常,节点会在1到2此的脉冲后唤醒。

 

LIN总线数据记录应用案例

车辆CAN或LIN总线开发

可以同时记录CAN或LIN总线数据的记录仪对于OEM车辆开发来说十分重要,可以用于优化和诊断

现场设计原型设备数据远程处理

可以通过物联网(IoT)CAN、LIN兼容的数据记录仪大规模收集来自汽车设计原型设备的CAN或LIN总线数据来加快研发的速度

预测性维护

云端可以通过物联网(IoT)CAN或LIN记录仪监视工业机械,并可以基于预测模型来预测以及避免故障的发送

偶发的LIN错误诊断

LIN的记录仪可以充当工业机械的“黑匣子”的功能,为纠纷或者偶发错误的诊断提供依据

 

在实际中记录LIN数据需要注意的事项

下面我们为您列出了在记录LIN总线数据时需要注意的事项

LIN记录仪以及LIN接口

想要记录LIN总线数据,您需要LIN总线数据记录仪和一个接口。带有SD卡的LIN总线数据记录仪的优势在于您可以脱机地记录数据,比如在车辆实际使用的期间。另外,加上一个接口便能更好的服务于车辆功能动态测试。

对于可以脱机的LIN记录仪,它的优势在于其可以即插即用、紧凑且成本比较低,所以整个车队的大规模应用也不会负担太大。

 

支持CAN或是LIN

通常,您需要将LIN总线数据与CAN总线数据结合起来,来全面了解运行中的车辆:

  • 驾驶行为与LIN总线的各种功能使用情况是如何关联的?

  • LIN主节点与CAN总线间的交互是否会出现问题?

  • LIN相关问题是否与某些基于CAN的事件相关?

想要将两种数据结合,您需要一个即可记录CAN,又可记录LIN的记录仪。另外,支持CAN FD也会越来越重要,因为预计CAN FD会越来越多的应用到车上。

 

WiFi

如果需要从大型车辆测试车队中通过物理连接的方式来提取LIN总线上的数据,这会非常麻烦。那如果您拥有一个支持WiFi的CAN或LIN的记录仪,那么这都会变得再简单不过了。

您只需配置好一个WiFi热点,当车辆在这个WiFi覆盖范围内时,数据会从SD卡中自动上传。您还可以在车上添加蜂窝热点,来近实时地进行数据的传输。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

车用技术总线 | 从应用角度了解下LIN总线 的相关文章

  • Win10下 Ubuntun1604LTS双系统安装

    1 下载Ubuntu 16 04 https www ubuntu com download alternative downloads 下载 16 04LTS版 2018 03 10 Ubuntu 16 04 4 LTS Ubuntu 1
  • 主祷文

    主 祷 文 我们在天上的父 xff0c 愿人都尊你的名为圣 愿你的国降临 愿你的旨意行在地上 xff0c 如同行在天上 我们日用的饮食 xff0c 今日赐给我们 免我们的债 xff0c 如同我们免了人的债 不叫我们遇见试探 xff0c 救我
  • 嵌入式Linux系统串口通信协议设计

    1 设计基础 这里指的协议是应用层协议 xff0c 针对应用协议的设计 xff0c 需要注意的有几个基本点 xff1a 可识别 xff0c 兼容性 xff0c 访问控制 xff0c 可追溯 xff0c 数据完整性校验 首先是可识别 xff0
  • 什么是导航?导航具有什么样的作用?

    导航 xff08 Navigation xff09 是引导载体从起始点安全 可靠地引导到目的地的过程 xff0c 导航的基本作用就是回答我在哪里 xff1f 通常用载体在空间的即时位置 速度 姿态和航向等参数来描述导航过程 xff0c 这些
  • 一个失败的程序员

    一个失败的程序员 第一次写博客 xff0c 看了别人的很久 xff0c 也想了很久 xff0c 觉得无论文笔有多不好 xff0c 分享的内容有多糟糕 xff0c 都应该有这个勇气迈出第一步 xff0c 记录生活 抒写回忆 xff0c 等到回
  • 学习FreeRTOS前的准备工作

    转自 http bbs armfly com read php tid 61 1552 了解FreeRTOS之前 xff0c 一定要搞清楚FreeRTOS xff0c SafeRTOS和OpenRTOS之间的关系 1 先说FreeRTOS和
  • Linux网络编程(一)

    Linux网络编程博文均选自 unix网络编程 Richard Stevens xff0c 仅限于学习与查漏补缺只用 xff0c 原址 xff1a http blog csdn net hongchangfirst article deta
  • vscode配合gitee同步云设置

    更换开发设备后 xff0c 新安装的vscode软件 xff0c 是没有原先的配置的 xff0c 诸如快捷键 xff0c 快捷代码段生成 安装的各个插件 xff0c 插件的配置等都木大了 xff0c 开发起来会很别扭 xff0c 网上最多的
  • 升压减压以及充电电路设计

    供电电路在整个硬件系统中都是极其重要的 xff0c 只有能产生稳定电压与电流的供电电路才能保证整个硬件系统的正常工作 在本系统中 xff0c STM32F103C8T6需要的电压为3 3V xff0c 同时还有其他的模块需要5V的电压 xf
  • Java枚举详解及常见用法

    1 枚举的使用场景 枚举是一个被命名的整型常数的集合 xff0c 用于声明一组带标识符的常数 枚举在曰常生活中很常见 xff0c 例如一个人的性别只能是 男 或者 女 xff0c 一周的星期只能是 7 天中的一个等 类似这种当一个变量有几种
  • ros编译时与opencv发生冲突的解决办法 opencv_imgcodecs3.so.3.3.1: undefined reference to `TIFFReadDirectory@LIBTIFF

    在编译ros项目的时候 xff0c 遇到下面的错误 xff1a 38 Building CXX object cube slam detect 3d cuboid CMakeFiles detect 3d cuboid dir src ma
  • ROS的一些常用的命令

    下面是ros下面的一些常用操作 xff0c 先做个总结 xff0c 方便后续使用 1 只编译工作空间下面的一个包 catkin make DCATKIN WHITELIST PACKAGES span class token operato
  • realsense相机两种获取相机内外参的方式

    realsense相机出厂的时候一般都标定好了 xff0c 直接读取他们的内参即可 终端输入 xff1a rs sensor control 然后按照提示操作即可 方法 xff1a https blog csdn net mystyle a
  • 【Python开发利器-TKinterDesigner 】 :第一讲:TkinterDesigner的基本功能介绍

    Python开发利器 TKinterDesigner xff1a 第一讲 xff1a TkinterDesigner的基本功能介绍
  • 基于Spine动画的AVATAR换装系统优化

    大家好 xff0c 我是红孩儿 xff0c 目前在玩吧技术专家组负责技术研发工作 xff0c 好久不见 xff0c 作为一名引擎开发者 xff0c 这次我给大家分享一下基于Spine动画的AVATAR换装优化 xff0c 希望能够对有类似需

随机推荐

  • TKinterDesigner v1.6.4 前瞻- 即将开启Python移动开发时代

    TKinterDesigner v1 6 4 前瞻 即将开启Python移动开发时代 我想 xff1a 这可能是一个新时代的开启吧
  • TKinterDesigner从入门到精通视频教程

    想使用TKinter开发桌面应用 xff1f 想使用TKinter开发移动应用 xff1f TKinterDesigner来帮助你吧 xff01 欢迎使用TKinterDesigner xff01 以下是 TKinterDesigner从入
  • 房卡麻将分析系列 "牌局回放" 之 播放处理

    持续放出房卡麻将设计与研发讲解 敬请关注微信共众号 xff1a 红孩儿的游戏开发之路 房卡麻将分析系列 34 牌局回放 34 之 播放处理 昨天红孩儿给大伙讲了讲 牌局回放 的数据记录处理 xff0c 有了数据的存储 xff0c 下面就是数
  • AutoSAR 标准--基础安全特性

    CSM 密码服务管理器 Crypto Service Manager xff1a 访问加密服务 配置用于执行服务的加密服务和算 同步或异步执行的配置 安全计数器的配置 对加密密钥的操作配置 配置证书操作 CRYIF 密码算法接口 Inter
  • 房卡麻将分析系列之"发牌器"算法设计

    房卡麻将分析系列之 34 发牌器 34 算法设计 大家好 xff0c 经过一段时间的努力 xff0c 在填平了大部分源码框架中的坑后 xff0c 我们的 大赢家 红中麻将总算完成了1 0版本 xff0c 虽然仍然有诸多问题 xff0c 但总
  • 房卡麻将分析系列之"架构选型"

    房卡 麻将研发技巧 xff0c 尽在 红孩儿的游戏开发之路 xff0c 欢迎关注公众号 xff01 房卡麻将分析系列之 34 架构选型 34 这段时间 xff0c 团队的棋牌订制咨询量激增 xff0c 每天都有人问如何进行订制合作 xff0
  • 房卡麻将分析系列之"断线重连"

    房卡 麻将研发技巧 xff0c 尽在 红孩儿的游戏开发之路 xff0c 欢迎关注公众号 xff01 房卡麻将分析系列之 34 断线重连 34 大家好 xff0c 我是红孩儿 xff0c 房卡 麻将分析系列继续进行中 在进行游戏的过程中 xf
  • 房卡麻将分析系列之"千里传音"

    房卡 麻将研发技巧 xff0c 尽在 红孩儿的游戏开发之路 xff0c 欢迎关注公众号 xff01 房卡麻将分析系列之 34 千里传音 34 在房卡棋牌游戏中 xff0c 因为要频繁的看牌 xff0c 出牌 为了实时沟通打字聊天往往比较麻烦
  • 房卡棋牌分析系列之"微信登录"

    房卡 麻将研发技巧 xff0c 尽在 红孩儿的游戏开发之路 xff0c 欢迎关注公众号 xff01 房卡棋牌分析系列之 34 微信登录 34 房卡棋牌之所以火热 xff0c 很大程度上取决于当下中国智能机的普及和微信作为基础通讯社交工具的广
  • 程序员三十岁之后要考虑什么?

    程序员三十岁之后要考虑什么 xff1f 周六受邀参加了触控科技CocoaChina开发者社区举办的 34 移动游戏人才培养和创业机会 的沙龙 其间被问到一个问题 xff1a 程序员三十岁之后该怎么办 xff1f 三十岁后该怎么办 xff1f
  • 房卡麻将分析之"一键入局"

    地方棋牌 xff0c VR AR技术 xff0c 请关注公众号 xff1a 34 红孩儿的游戏开发之路 房卡麻将分析之 34 一键入局 34 房卡麻将通过微信邀请好友加入房间进行游戏 xff0c 大大方便了玩家进行麻将游戏 这也凸显了微信对
  • 房卡麻将分析之"防作弊处理"

    房卡麻将分析之 34 防作弊处理 34 棋牌游戏最重要的一个特点就是人与人对局 xff0c 因为玩家各自的不可见 xff0c 就存在着一些作弊的可能性和漏洞 对于手机房卡麻将游戏 xff0c 大家最讨厌的问题就是作弊 如何防止玩家作弊 xf
  • 房卡麻将分析之“缺人玩法”

    一般玩麻将都是四个人 xff0c 遇到 三缺一 怎么办 xff1f 大多数情况下 xff0c 玩家只好等待或叫人 xff0c 这无疑增加了玩家的等待时间 xff0c 同时也减缓了房卡的消耗速度 其实四个人并不是玩麻将的硬性条件 xff0c
  • 房卡麻将分析之“代开房间”

    什么是代开房间 代开房间 xff0c 就是可以创建一个新的房间 xff0c 让其它玩家加入 为什么要做代开房间 xff08 1 xff09 可以帮助没有房卡的朋友开房 xff0c 提升未买卡玩家玩游戏的积级性 xff08 2 xff09 代
  • 信号量sem_wait()的使用

    闲来无事 xff0c 我给大家讲下UNIX Linux下信号量函数的使用 首先你得知道什么叫信号量 xff0c 什么时候要用信号量 这个嘛 xff0c 主要就是用来保护共享资源的 xff0c 也就是说如果你想限制某个 xff08 些 xff
  • 房卡麻将分析之“俱乐部功能”

    什么是俱乐部 群主 xff08 代理 xff09 创建俱乐部后 xff0c 可以邀请自已的群成员成为自已的俱乐部会员 xff0c 方便管理 俱乐部玩法由创始人设置 xff0c 只有俱乐部成员才能加入 xff0c 并且俱乐部房间全部消耗创始人
  • 红孩儿网狐Cocos经典棋牌开发教程-卞安-专题视频课程

    红孩儿网狐Cocos经典棋牌开发教程 4750人已学习 课程介绍 由知名Cocos技术讲师红孩儿讲解的基于网狐源码进行棋牌开发的系列教程 课程收益 1 快速理解掌握网狐棋牌的源码框架 2 能够学会使用网狐棋牌快速换皮产品 3 能够在网狐棋牌
  • STM32F407VET6 普通 IO 口模拟串口发送数据

    1 只实现了 xff0c 使用普通 IO 口模拟串口的发送 xff0c 没有实现接收 2 由于是模拟发送的是 TTL 电平 xff0c 所以在使用串口助手验证发送数据的准确性时 xff0c 应该使用 USB 转 TTL xff0c 而不能使
  • 虹科知识分享|关于阻塞函数和非阻塞函数

    在CAN和LIN相关的开发库里 xff0c 不可避免的会出现 收 和 发 的函数 如何快速有效的处理数据 xff0c 是开发中重要的事项 但实际上单路CAN由于波特率的限制 xff0c 数据量并不会很大 xff1a 以常用的500k为例 x
  • 车用技术总线 | 从应用角度了解下LIN总线

    注意 xff1a 本文约4850字 xff0c 完整阅读时间约13分钟 主要内容 LIN总线概述 LIN总线的应用 示例 xff1a LIN总线和CAN总线的窗户控制 LIN总线的信号报文 记录LIN总线数据 LIN总线数据记录应用案例 本