LIN资料整理(二): LIN协议层

2023-05-16

目录

一、LIN帧的结构

 1、帧头的帧结构

(1)同步间隔段

(2)同步段

(3)受保护ID段

2、应答的帧结构

(1)数据段

(2)校验和段

3、帧在总线上传输时间的计算

4、帧的类型

(1)无条件帧

(2)事件触发帧

(3)偶发帧

(4)诊断帧

(5)保留帧


一、LIN帧的结构

帧(Frame)包含两个部分:

  • 帧头:由主机任务负责发送,,从机任务接收并对帧头包含的信息进行解析,然后决定是发送应答还是接收应答,还是不做响应
  • 应答:由从机任务负责发送

 1、帧头的帧结构

帧头包含:同步间隔段、同步段、受保护ID段

(1)同步间隔段

 同步间隔段由同步间隔同步间隔段间隔符构成:

  • 同步间隔:至少是持续13位的显性电平(以主机节点速率为准),由于帧中所有间隔或总线空闲的时候都必须保持隐性电平,且帧中其他字段不会发出大于9位的显性电平,因此同步间隔可以标志一个帧的开始。(注:从机任务接收同步间隔段时,以该从机任务所在节点速率为准,当检测到总线上有持续11位的显性电平时,则认为是帧的开始)
  • 同步间隔段间隔符:至少持续1位的隐性电平

(2)同步段

在LIN帧中,数据传输都是先发送LSB(最低有效位),最后发送MSB(最高有效位)

 LIN同步段以下降沿为判断标志,采用字节0x55( 01010101b ),如下图:

(3)受保护ID段

受保护ID段的前6位叫做帧ID,加上2个奇偶校验位后称作受保护ID,从机任务对帧头做出的反应都是依据ID判断的,如果ID传输错误,会导致该信号无法正确到达目的地,因此引入奇偶校验位:

  • P0 =(ID0 ^ ID1 ^ ID2 ^ ID4)& 0x01
  • P1 =(~(ID1 ^ ID3 ^ ID4 ^ ID5))& 0x01
  • 可以看出PID不会出现全0或全1的情况,因此,如果从机节点收到0xFF或者0x00,可判断为传输错误

 帧的类型:

 注意:诊断帧0x3C0x3D默认采用标准校验

2、应答的帧结构

应答包含:数据段、校验和段

(1)数据段

数据段包含了两种数据类型:信号和诊断消息

数据的内容与长度是由系统设计者根据帧ID事先设计好的

(2)校验和段

校验和段是对传输的内容进行校验:

 校验和类型:

  • 标准型校验和的计算方法:
    • 发送方:将各字节做带进位的二进制加法(每当结果大于256时就减去255),并将所得结果取反
    • 接收方:将接收的各字节做带进位的二进制加法,结果不取反,该和与接受到的校验和作加法,若结果为0xFF,则校验和无误

3、帧在总线上传输时间的计算

4、帧的类型

(1)无条件帧

无条件帧具有单一发布节点,无论信号是否发生变化,帧头都被无条件应答的帧

  •  帧ID = 0x30 应答部分的发布节点为从机节点1,收听节点为主机节点。典型应用如从机节点1 向主机节点报告自身某信号的状态。
  • 帧ID = 0x31 应答部分的发布节点为主机节点,收听节点为从机节点1 和从机节点2。典型应用如主机节点向从机节点发布信息。
  • 帧ID = 0x32 应答部分的发布节点为从机节点2,收听节点为从机节点1。典型应用如从机节点之间彼此通信。

(2)事件触发帧

事件触发帧是主机节点在一个时隙中查询各从机节点的信号是否发生变化时使用的帧,当存在多个发布节点时,通过冲突解决进度表来解决冲突

与事件触发帧关联的多个无条件帧需要满足以下5 个条件:

  1. 数据段包含的数据字节数等长;
  2. 使用相同的校验和类型;
  3. 数据段的第一个字节为该无条件帧的受保护ID,这样才能够知道应答是哪个关联的无条件帧发送出来的;
  4. 由不同的从机节点发布;
  5. 不能与事件触发帧处于同一个进度表

(3)偶发帧

偶发帧是主机节点在同一帧时隙中当自身信号发生变化时向总线启动发送的帧。当存在多个关联的应答信号变化时,通过事先设定的优先级来仲裁。

(4)诊断帧

诊断帧包括主机请求帧和从机应答帧,主要用于配置、识别和诊断用

  • 主机请求帧,帧ID = 0x3C
  • 从机应答帧,帧ID = 0x3D 
  • 数据段规定8各字节,一律采用标准型校验和

(5)保留帧

保留帧的帧ID为0x3E和0x3F,为将来拓展用

5、进度表

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

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

LIN资料整理(二): LIN协议层 的相关文章

  • 实现TCP并发服务器---IO多路复用

    实现TCP并发服务器 IO多路复用 1 服务器模型 1 1 概念 服务器模型主要分为两种 xff0c 循环服务器 xff0c 并发服务器 循环服务器 xff1a 服务器在同一时间只能处理一个客户端的请求 并发服务器 xff1a 服务器在同一
  • STM32串口发送中断踩坑

    今天想测试下Modbus设备 xff0c 手上暂时没有串口转485的模块 xff0c 就打算用手上的stm32f042的开发板做个串口转485模块 如下所示 但是软件实际开发过程中 xff0c 遇到了麻烦 现象 在打开串口接收中断时 xff
  • 十六进制转十进制(c语言)

    输入的十六进制数 xff0c 通过字符型存放在a 数组中 首先将字符型转为int型 xff08 将a转为10等等 xff09 存放在b 数组中 在与10 n相乘在相加得出结果 include lt stdio h gt include lt
  • 对视频图像进行OSD叠加

    频叠加就是将图片和文字信息叠加到视频信号中 xff0c 如电视台的LOGO xff0c 电影的字幕 xff0c 电视机的菜单 xff0c 都是通过视频叠加的形式显示在视频图像中的 区别于用于专业影视编辑行业的字幕叠加器 xff0c 字符叠加
  • VS2019 C#开发手机App环境配置和开发

    参考链接 xff1a https www dianyuan com eestar article 1284 html 上位机开发人员 xff0c 想开发APP xff0c 从头学Java xff0c 需要花的时间成本太大 xff0c 最近网
  • 华为手机通过ADB禁止系统更新和卸载自带软件

    参考链接 xff1a 电源网 刚买华为手机最烦的是每天都提示系统更新 xff0c 就算设置不提醒 xff0c 过两天又开始提醒 xff0c 不死不休 xff0c 最后还是一次手误最终还是让它得逞了 xff0c 自动更新了 xff0c 下面就
  • C#利用Socket实现C/S模式通信

    参考链接 xff1a https www dianyuan com eestar article 1330 html 首先我们要了解一下几点内容 xff1a 1 Tcp IP协议是什么 xff1f 2 Socket是什么 xff1f 3 s
  • OpenCV 图像处理 灰度化、二值化与加噪

    参考链接 xff1a https www dianyuan com eestar article 1414 html 因为要自动检测裂缝 xff0c 就考虑到了图像的二值化处理 xff0c 虽然C 可以实现二值化处理 xff0c 但是是逐个
  • ROC-RK3328-CC 开发板开箱和上手指南

    参考链接 xff1a https www dianyuan com eestar article 1424 html RK3328处理器采用了64位A53架构四核处理器 xff0c 主频为1 5GHz xff0c GPU则采用了Mali 4
  • C#中AForge库调节视频亮度、饱和度等属性

    参考链接 xff1a https www dianyuan com eestar article 1479 html 之前工作中需要调节摄像头的亮度 饱和度调节 xff0c 之前一直通过调用AForge的调节控件才能调节 xff0c 虽然可
  • Ubuntu下安装和配置Qtcreator5.15版本

    Qt选择 在官方的声明中 xff0c Qt5 15是Qt5 x的最后一个LTS版本 xff0c 增加了即将在2020年底推出的Qt6的部分新特性 xff0c 为了之后的新版本有更好的兼容性 xff0c 选择了Qt5 15 下载Qt 对于普通
  • python 获取文件夹下的文件名操作(两种)

    一 相对路径 文件存储的想对路径路径 path 61 39 data 0 39 os walk 是一个生成器 xff0c 返回三个值 xff1a 根目录 xff0c 根目录下的目录和文件列表 folder 61 os walk path 3
  • 1、串口(UART/COM/TTL/RS232/RS485)

    目录 串口简介 串行通讯制式 UART 2 1 简介 2 2 电平标准 TTL RS232 RS485 2 3 电平转换 xff08 重点讲解RS232 TTL xff09 USB转TTL USB转RS232 USB转RS485 RS232
  • 集成Python和QML

    Qt包括QML作为一种声明性地描述用户界面并使用JavaScript作为其中的脚本语言的手段 可以编写完整的独立QML应用程 序 xff0c 或将它们与C 43 43 结合使用 PyQt5允许QML以完全相同的方式与Python集成 特别是
  • 个人小型管理服务器 SVN的安装和使用方法

    1 下载TortoiseSVN客户端 官网下载地址 Downloads TortoiseSVN 注意下载跟你电脑位数匹配 64位 32位 的安装包 在页面的下面你还可以找到语言包 如图 下载完成后 应该有这些安装包 如图 接下来我们安装To
  • Ubuntu20.04下安装QtCreator 5.14.2(安装/卸载/创建快捷键/添加收藏)

    原文链接 xff1a https www dianyuan com eestar article 2864 html 都是自己原创 xff0c 发这里提高下知名度 xff0c 也帮助需要的人 一 Qt和Qt Creator的区别 Qt是C
  • WPF中自定义双滑块Slider

    项目中遇到需要双滑块的情况 xff0c 可以网上的基本都是单滑块的样式和例子 xff0c 但是双滑块的很少 xff0c 后来终于在网上找到一个大神的帖子 xff0c 通过修改和完善终于符合自己的需求 xff0c 可后来再查看代码的时候好像又
  • C#通过API对硬件进行禁用和启用

    慢慢的随着年龄的增长 xff0c 脑子越来越不够用 xff0c 而自己的收藏栏也越来越杂乱 xff0c 虽然现在的网上要啥都有 xff0c 但是没有经过自己亲手实验和整理总结 xff0c 下次需要的时候一切又要从头开始 xff0c 而电子星
  • Ubuntu下如何获取usb相机的PID/VID并打开指定的相机

    项目需求控制和打开两个USB摄像头 xff0c 并且根据相机的PID和VID来打开指定的相机 xff0c 来区分主副相机 xff0c 在Windows下可以通过AForge Video DirectShow库来实现 xff0c 但是Ubun
  • ubuntu在arm平台下编译安装opencv(亲测可用)

    X86平台安装很多软件一句话就可以搞定 xff0c 非常方便 xff0c 但是在arm平台一个简单的软件安装起来都非常费尽 xff0c 一个软件安装就要折腾好几天 下面就把安装opencv的过程记录下来 一 通过pip安装opencv xf

随机推荐