目录

一、LIN总线报文帧结构 (Message Frame )

1、报文整体机构

2、同步间隔段(Break Field)

3、同步段(Sync Byte Field)

4、受保护 ID 段(Protected Identifier Field)

5、数据段(Data Field)

6、校验和段(Checksum Field)

二、帧传输时间的计算


一、LIN总线报文帧结构 (Message Frame )

1、报文整体机构

一个完整的LIN 总线报文帧“Message Frame”包含 报头“Header”和响应“Response”,主机任务负责发送帧头;从机任务接收帧头并对帧头所包含信息进行解析,然后决定是发送应答,还是接收应答,还是不作任何反应。

帧头包括同步间隔段同步段以及PID(Protected Identifier,受保护ID)段,应答包括数据段校验和段,其中值“0”为显性电平(Dominant),值“1”为隐性电平(Recessive),总线上实行“线-与”:当总线上有大于等于一个节点发送显性电平时,总线呈显性电平;所有的节点都发送隐性电平或不发送信息(不发送任何信息时总线默认呈隐性电平)时,总线才呈现隐性电平,即显性电平起主导作用。图中帧间隔为帧之间的间隔;应答间隔为帧头和应答之间的间隔;字节间间隔包括同步段和受保护ID段之间的间隔、数据段各字节间之间的间隔以及数据段最后一个字节和校验和段之间的间隔。

2、同步间隔段(Break Field)

同步间隔段由同步间隔(Break)和同步间隔段间隔符(Break Delimiter)构成,如图3.3所示。同步间隔是至少持续 13 位(以主机节点的位速率为准)的显性电平,由于帧中的所有间隔或总线空闲时都应保持隐性电平,并且帧中的任何其它字段都不会发出大于 9 位的显性电平,因此同步间隔可以标志一个帧的开始。同步间隔段的间隔符是至少持续 1 位的隐性电平。

3、同步段(Sync Byte Field)

在介绍同步段之前,首先介绍一下字节域(Byte Field)的概念,字节域包括 1 位起始位(Start Bit,显性) + 8 位数据位 + 1 位停止位(Stop Bit,隐性),是一种标准 UART 数据传输格式,如图 3.4 所示。在 LIN 的一帧当中, 除了上一节讲述的同步间隔段,后面的各段都是通过字节域的格式传输的。在 LIN 帧中,数据传输都是先发送 LSB(Least Significant Bit,最低有效位),最后发送 MSB(Most Significant Bit,最高有效位)。

LIN 同步以下降沿为判断标志,采用字节 0x55(转换为二进制为 01010101b)。同步段的字节域如图 3.5 所示。

从机节点可以不采用精度高的时钟,而采用片上振荡器等精度和成本相对较低的时钟,由此带来的与主机 节点时钟产生的偏差,需要通过同步段进行调整,调整的结果是使从机节点数据的位速率与主机节点一致。同 步段用于同步的基准时钟为主机节点的时钟。从机节点通过接收主机节点发出的同步段,计算出主机节点位速 率,根据计算结果对自身的位速率重新作调整。计算公式如下:

1位时间 =(第7位的下降沿时刻 - 起始位的下降沿时刻)/ 8

4、受保护 ID 段(Protected Identifier Field)

受保护 ID 段的前 6 位叫作帧 ID(Frame ID),加上两个奇偶校验位后称作受保护 ID。如图 3.6 所示。

接收/发送/忽略应答部分)都是依据帧 ID 判断的。如果帧 ID 传输错误,将会导致信号无法正确到达目的地,因此引入奇偶校验位。校验公式如下,其中“⊕”代表“异或”运算,“¬”代表“取非”运算。

P0 = ID0 ⊕ ID1 ⊕ ID2 ⊕ ID4

P1 = ¬ (ID1 ⊕ ID3 ⊕ ID4 ⊕ ID5)

由公式可以看出,PID 不会出现全 0 或全 1 的情况,因此,如果从机节点收到了“0xFF”或“0x00”,可判断为传输错误。

依据帧 ID 不同将帧进行分类,如下所示:

5、数据段(Data Field)

节点发送的数据位于数据段,包含 1 到 8 个字节(注 1),先发送编号最低的字节 DATA1,编号依次增加, 如图 3.7 所示。

数据段包含了两种数据类型,信号(Signal)和诊断消息(Diagnostic messages)。

信号(Signal)由信号携带帧传递,一个帧 ID 对应的数据段可能包含一个或多个信号。信号更新时要保证其 完整性,不能只更新一部分。一个信号通常由一个固定的节点发出,此节点称为该信号的发布节点(Publisher);其余的一个或多个节点接收,它们称为信号的收听节点(Subscriber)(注 2)。

诊断消息(Diagnostic message)由诊断帧传递,对消息内容的解析由数据自身和节点状态决定。

6、校验和段(Checksum Field)

校验和段是对帧中所传输的内容进行校验,如下图所示。

校验和分为标准型校验和(Classic Checksum)及增强型校验和(Enhanced Checksum),如下表所示。

采用标准型校验和还是增强型校验和由主机节点管理,发布节点和各收听节点根据帧 ID 来判断采用哪种校验和。

校验方法为将校验对象的各字节作带进位二进制加法(每当结果大于等于 256 时就减去 255),并将所得最 终的和逐位取反,以该结果作为要发送的校验和。接收方根据校验和类型,对接收数据作相同的带进位二进制 加法,最终的和不取反,并将该和与接收到的校验和作加法,如果结果为 0xFF,则校验和无误,这在一定程度上保证了数据传输的正确性。

例如:采用标准型校验和,Data1 = 0x4A,Data2 = 0x55,Data3 = 0x93,Data4 = 0xE5,计算方法如表 3.3 所示:

二、帧传输时间的计算

帧(有关帧的结构参照 3.1 节的图 3.2)在总线上传输的时间计算如表 3.4 所示。其中,TFrame_Maximum为帧在总 线上传输的最大时间;THeader_Maximum为帧头在总线上传输的最大时间;TResponse_Maximum为应答在总线上传输的最 大时间;THeader_Nominal为帧头额定传输时间:同步间隔段(包含同步间隔和同步间隔段间隔符)的最小传输时间 + 同步段传输时间 + 受保护ID段传输时间;帧头的余量THeader_Rest包含字节间间隔,规定为帧头额定传输时间的 0.4 倍;TResponse_Nominal为应答额定传输时间:数据段传输时间 + 校验和段传输时间;应答的余量TResponse_Rest包含 应答间隔以及字节间间隔,规定为应答额定传输时间的 0.4 倍;Ndata表示数据段包含N个字节。

最小帧长度:

✓ Theader_nominal=34*Tbit
✓ Tres ponse_nominal=10*(ndata+1)*Tbit
✓ Tframe_nominal=Theader_nominal+Tresponse_nominal

最大帧长度(考虑串口波特率时钟的最大抖动):

✓ Theader_max=1.4*Theader_nominal
✓ Tresponse_max=1.4*Tresponse_nominal
✓ Tframe max=Theader max+Tresponse max

LIN总线协议详解2(LIN总线报文帧结构)相关推荐

  1. 细说汽车电子通信总线之LIN总线协议详解

    内容提要 1. LIN总线概述 1.1 LIN总线特点及发展历史 1.2 LIN 总线协议的物理层(收发器) 2. LIN总线报文帧结构(Message Frame Structure)详解 2.1 ...

  2. 细说汽车电子通信总线之CAN 2.0 总线协议详解

    引言 1. CAN总线发展历史与ISO规范 2. CAN总线主要功能特性 3. CAN 2.0总线协议的物理层电气特性 4. CAN 2.0总线协议消息报文详解 4.1 CAN2.0总线的通信报文帧格 ...

  3. can总线不加末端电阻_细说汽车电子通信总线之CAN 2.0 总线协议详解

    引言 1. CAN总线发展历史与ISO规范 2. CAN总线主要功能特性 3. CAN 2.0总线协议的物理层电气特性 4. CAN 2.0总线协议消息报文详解 4.1 CAN2.0总线的通信报文帧格 ...

  4. LIN总线协议详解7(LIN帧收发的硬件实现)

    帧收发的硬件实现 目录 帧收发的硬件实现 一.组成 二.协议控制器 1.协议控制器介绍 2.实现方法 三.总线收发器 1.实现方案 2.采用IC厂家的集成方案 四.LIN 总线 五.时钟源 六.EMI ...

  5. LIN总线协议详解10(LIN的API)

    目录 LIN的API 1.什么是API 2.LIN的API ​3.核心API ​4.传输层API 5.配置与识别API 6.注意事项 6.1.兼容性 6.2.开发工具 ​7.API使用示例 7.1从机 ...

  6. AMBA总线—APB总线协议详解

    文章目录 一.APB总线介绍 1.1.什么是APB总线 1.2.典型的基于 AMBA 总线的系统架构 1.3.APB信号列表(重点) 二.APB总线传输(时序) 2.1.APB 状态机 2.2.写操作 ...

  7. 五种通信总线协议详解

    基础: UART硬件连接 UART控制器 一般情况下处理器中都会集成UART控制器,我们使用UART进行通信时只需要对其内部的相关寄存器进行设置即可 Exynos4412下的UART控制器(Exyno ...

  8. UART总线协议详解

    文章目录 1.UART概念 1.1硬件连接 2. RS232总线协议 2.1硬件连接 3. RS485总线协议 3.1硬件连接 1.UART概念   UART(Universal Asynchrono ...

  9. AMBA总线—AHB总线协议详解

    文章目录 一.AMBA总线介绍 1.1.AMBA发展史 1.2.典型的AMBA系统 二.AHB总线(宏观构造) 2.1.AHB总线组成 2.2.AHB总线组成互连 2.3.AHB操作概述 2.4.AH ...

最新文章

  1. 「Linux」作怪的网络
  2. static slice是什么呢?
  3. 陈程杰、夏瑞:数据分析工具TBtools介绍和操作视频+公众号/社群
  4. Springmvc+Easyui 搜索,新增,删除,修改
  5. 调用webapi 错误:使用 HTTP 谓词 POST 向虚拟目录发送了一个请求,而默认文档是不支持 GET 或 HEAD 以外的 HTTP 谓词的静态文件。的解决方案
  6. System.arraycopy和Arrays.copyOf的关系
  7. php url 2f,PHP2(url二次编码)
  8. 使用YOLO V4通过社交距离和口罩检测来缓解COVID
  9. Iptables基本概念及应用
  10. sql server 2005安装需求
  11. 用js把数字转化成为大写金额
  12. 【单位换算】存储单位(bit Byte KB MB GB TB PB EB ZB YB BB)时间单位(ms μs ns ps)长度单位(dm cm mm μm nm pm fm am zm ym)
  13. Python内进制转换(2进制,8进制,10进制,16进制转换)
  14. 账号被罚了,申诉的结果出来了,果然
  15. 如何快速把多个excel表合并成一个excel表(不熟悉vba及公式的人)
  16. excel 外部链接 乱码_在Excel文件中查找外部链接
  17. 一篇文章带你了解和学会VCN安卓快速开发
  18. J2EE疑难解决实例--转自JSP中文网
  19. 魔方机器人(一)还原算法
  20. win10操作系统如何进行局域网文件共享

热门文章

  1. HTTP Catcher(网球)使用教程【五】开启DNS劫持
  2. DevOps on DevCloud|如何实现应用接口的混合驱动测试
  3. python IPy 匹配ip地址段
  4. CDN原理以及实验部署操作步骤
  5. DM*PN 的三个发展阶段概述
  6. JAVA文档注释与多行注释的区别
  7. 静态代理、JDK与CGLIB动态代理、AOP+IoC原理
  8. Licode-SFU的架构
  9. 牛客国庆集训派对Day6 I.清明梦超能力者黄YY(树剖)
  10. Vue 父组件如何触发子组件中的方法