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

【芯片测试篇】:LIN总线

文章目录

  • 前言
  • 1. LIN 总线架构
  • 2. 报文帧格式
  • 3. 物理层


前言

  • 在项目中遇到了用93K与MCU通过LIN总线通信的测试需求,现将LIN总线的理论知识总结如下。

  • 本地互连网络 (LIN) 是汽车中采用的一种易于实现的低成本多点通信总线。在大多数应用中,它用作控制器局域网的子总线。
  • LIN 总线可以以高效而直接的方式管理汽车中组件和系统之间的通信,因为在这类场合中无需 CAN 的高带宽和多功能性;不过,在多数情况下,LIN 都是 CAN 总线的子总线。

1. LIN 总线架构

  • LIN 每个仪表组中都存在两种类型的节点:1个指挥官节点,以及最多 16 个后续响应者节点。指挥官节点负责管理总线与每个响应者之间的通信。
    在这里插入图片描述
  1. 微控制器 (Microcontroller) 通过 LIN 协议进行编程,并用于通过串行接口 (SCI) 将通信驱动至收发器 (Transceiver) 。
  2. 串行通信接口 (SCI) 已经在大多数 LIN 应用中取代了 UART,一个 LIN 报文由多个 SCI 帧组成,而一个 SCI 帧是:开始位,然后是最低有效位至最高有效位,然后是停止位。
  3. LIN 总线传输只需一根线,并且采用较慢的通信速度 (比如:19200 bps)。
  • 指挥官/响应者原理:指挥官节点负责控制总线上的所有通信,并包含要发送的指挥官和响应者任务。响应者节点无法互相通信,仅包含响应者任务,并只有在报文针对的是自己时,才会响应指挥官,有以下两种通信情况:
    • 指挥官以报头(帧开头)形式将请求发送到指定的响应者,然后对应的响应者以响应帧形式响应指挥官。
    • 指挥官向响应者发送报头和响应帧,而响应者只会侦听,但不作出响应。

2. 报文帧格式

  1. 每个 LIN 报文都采用特定的结构:第一部分是令牌,第二部分是数据。
    在这里插入图片描述
  • 令牌始终通过指挥官任务发送,并分为同步中断、同步域和受保护标识符 (PID)。
    • 同步中断和同步域用于将 LIN 总线上的所有响应者与指挥官的时序进行同步,同步中断位至少需要 13 个 bit ,然后跟1 个定界位 (DEL) ;同步域包含10 个位(1 个开始位、8 个同步位和 1 个停止位),同步位数据一般发送 0x55。
    • PID 用于定义哪个响应者将响应、接收或忽略所发送的报文头,标识符位包含 10 个 bit(1 个开始位、6 个标识符位、2 个奇偶校验位和 1 个停止位)。
  1. 报文的数据部分通过响应者任务发送,而响应者任务可由指挥者或响应者节点发送,具体取决于 PID“指令”,。响应分为多个数据字节(最多 8 个)和一个校验和。
    在这里插入图片描述
  • 响应总共包含每个数据字节各 10 位(1 个开始位、8 个数据位和 1 个停止位,最多 8 个数据字节)以及 10 个校验和位(1 个开始位、8 个校验和解位以及 1 个停止位)。

3. 物理层

  • LIN 收发器将来自微控制器的位逻辑转换到更高的电压电平并通过总线传输,LIN 收发器的 TXD(发送)和 RXD(接收)通过电压转换促进总线的进出通信,其中电压转换发生在信号通过收发器时。
    在这里插入图片描述
  1. TXD 连接到微控制器,负责发送并在 LIN 总线上广播报文。
  2. RXD 会监测总线并将 LIN 总线上的报文转换为微控制器可以解析的电压电平,然后响应总线上发生的通信。
  • TXD 和 RXD 的典型电压电平是大多数微控制器的典型电平:3.3V 和 5V。LIN 总线和 LIN 收发器通常采用 9V 至 18V 范围内的电压工作,但有些器件最高可以采用 30V 电压。汽车系统通常采用 12V 电池,但有些大型汽车最高会采用 24V 电池。
  • 当收发器的 TXD 控制处于关闭状态时,上拉电阻确保总线上的电压电平达到或接近电池电压电平,也就是“隐性”状态;在收发器被激活且 TXD 控制晶体管导通后,总线会驱动为低电平,接近接地电平,并且高电平状态会被覆盖,也就是“显性”状态。
  • 电压阈值:
    在这里插入图片描述在这里插入图片描述
    • 对于显性脉冲(低电平),发送器必须将电压电平向下驱动至电池电压电平的 20%,而接收器将在其终端电压电平达到 40% 时解析显性位。对于隐性脉冲(高电平),发送器必须将电压驱动至电池电压的 80%,而接收器会在总线上的电压电平达到 60% 时解析隐性位。

http://www.xdnf.cn/news/1414063.html

相关文章:

  • AI 赋能 Java 开发效率:全流程痛点解决与实践案例(一)
  • Linux/UNIX系统编程手册笔记:用户和组、进程凭证、时间以及系统限制和选项
  • 利用DeepSeek编写验证xlsx格式文件中是否启用sharedStrings.xml对读写效率影响python程序
  • DRF快速构建RESTful API指南
  • redis详解 (最开始写博客是写redis 纪念日在写一篇redis)
  • C++内存序不迷茫:从CPU缓存一致性理解Memory Order
  • Wi-Fi技术——初识
  • 如何绕过 disable-devtool.js 打开控制台
  • C语言中如何使用NULL
  • 配置 Kubernetes Master 节点不可调度的标准方法
  • stm32F4挂载emmc以及重定义printf
  • ThinkPHP8学习篇(五):数据库(一)
  • 洛谷p2392kkksc03考前临时抱佛脚 详解(回溯,深度搜索法)
  • Redis常见数据类型及应用场景
  • java 安装流程配置
  • 金仓数据库KingbaseES:中国自主原创的数据库领军者
  • 【四位加密】2022-10-25
  • GDPU操作系统实验:生产者消费者问题
  • 【读数笔记】《你的生存本能正在杀死你》
  • 经典卷积神经网络CNN
  • sublime MAC系统快捷键及常见问题
  • Qwen2.5-VL代码初步解读
  • 恒香全新旗舰店开幕 新店传承百年文化
  • 容器seccomp配置文件在云服务器安全策略中的实施规范
  • 常用定位技术对比解析
  • MySQL数据库——0.MySQL大纲
  • 【全功能图片处理工具详解】基于Streamlit的现代化图像处理解决方案
  • OpenCV 图像轮廓检测
  • 【系统分析师】高分论文:论面向服务方法在信息系统开发中的应用
  • 基于CotSegNet网络和机器学习的棉花点云器官分割和表型信息提取