跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
折叠
品牌标识

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YT MCAL
  4. MD14 MCAL 2.3.0 LINflexD Timeout Error 说明

MD14 MCAL 2.3.0 LINflexD Timeout Error 说明

已定时 已固定 已锁定 已移动 YT MCAL
1 帖子 1 发布者 313 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • quanfengQ 离线
    quanfengQ 离线
    quanfeng YunTu
    编写于 最后由 编辑
    #1

    1. 背景

    1. 软件:MCAL 2.3.0 Lin_Demo
    2. 背景描述:
    • 有客户在使用 YCT 配置的时候对 LinResponseTimeout 和 LinHeaderTimeout 两个配置项与具体超时时间之间存在什么关系,本篇文章会重点介绍
    • YCT 配置工具中单击 LinResponseTimeout 和 LinHeaderTimeou 也对这两个参数有一定的解释

    a78bd800-03ef-4cfe-9893-631274aa8bf4-image.png

    1. 文档参考:《YTM32B1MD1x_RM_v1.3.pdf》的 19.4.2.5 Errors 章节的 Timeout Error 部分

    2. 描述

    1. 当在超时响应周期内出现响应不完整或无响应时,会发生超时错误。
    • 图 19.10:不完整响应(例如,缺少校验和)
    • 图 19.11:无响应
    • 两个图展示了 “响应超时” 的场景:在规定的 T_Reesponse_Max 时间内,若从设备的响应不完整(如缺少校验和)或完全无响应,会触发 Error。
      96c97a44-0df9-470d-945b-050f2c1f3fd2-image.png

    2.1 Response Timeout Mechanism(响应超时机制)

    1. 用于检测从设备是否在规定时间内返回完整响应,分为主模式和从模式。

    2.1.1 Master

    1. 在标识符字段的停止位结束时,向 OC2 加载 nominal_time_out + LINTCSR.CNT(其中 nominal_time_out = 1.4 × ((DFL + 2) × 10 位时间))。该加载发生在标识符字段结束时(而非数据字段开始时),且会立即加载与 DFL 相关的正确值,无需后续更新。
    2. 若完全无响应(未收到数据起始),或响应不完整,当计数器达到 OC2 值时,触发超时。
      02410dc2-0bcf-426e-a295-63ba090bb89c-image.png

    1. LINOCR 寄存器
    e9e10a74-6c50-4c07-843f-a0a4e7d068b5-image.png

    2. BIDR 寄存器

    • DFL 值为接收数据的长度 - 1,例:RX 的接收长度配置为 8,DFL 的值为 7
      f63f59a7-b701-4b55-acf7-8eb603c01c38-image.png
    1. nominal_time_out = 1.4 × ((DFL + 2) × 10 位时间)
    • nominal_time_out:超时时间,单位是 bits
    • 1.4:LinResponseTimeout(YCT 配置项) / 10
    • DFL:接收数据长度 - 1
    • 10:固定值,单位为 bits

    2.1.2 Slave

    1. 在从机模式下响应超时有两种情况:

    2. Case 1:实现与主模式类似,在标识符字段的停止位结束时加载 OC2,值为 nominal_time_out = 1.4 × ((DFL + 2) × 10 位时间)
      c5916295-13cb-426d-ace7-0918afb048d6-image.png

    3. Case 2:帧头结束 到 数据1 直接的时间(应答间隔时间),OC2 加载 36(最大可能响应空间) + LINTCSR.CNT
      d828e98f-f2b7-41aa-a9bc-52fc5d8e6c44-image.png

    2.2 Header Timeout Mechanism

    1. 用于检测报头(主设备发送的命令帧头部)的接收时效性,分为主模式和从模式。

    2.2.1 Master

    1. 报头由 LINFlexD 自身生成,仅存在两种情况:总线无错且时序正确(标称报头长度),或总线出错(如位错误,由 LINESR 标记)。因此,主模式下无报头超时,该功能被禁用

    2.2.2 Slave

    • header_nominal = 13 + 2 + 10 + 10 = 35 T_bit(标称报头长度,以位时间为单位);
    • header_max = 1.4 × header_nominal = 49 T_bit(最大报头长度);
    • 考虑 14% 的时钟偏差,LINFlexD 实际监控的 header_max 为 49 × 1.14 = 55.86 T_bit;
    • 若计数器在 11 T_bit(Break 持续时间)后启动,则 LINTOCR.HTO 值为 55.86 - 11 = 44.86 T_bit(LinHeaderTimeout(YCT 配置值):复位值为 44)。计数器在 Break 持续时间后重启,LINOC.OC1 加载 LINTOCR.HTO 的值。
    1 条回复 最后回复
    0

  • 云途开发生态介绍

    快速上手云途开发生态

  • 云途论坛规则/Yuntu Forum Rules

    发帖前请查看

  • YT CONFIG TOOL调查问卷

    帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

  • can
    20
    demo
    19
    uds
    13
    lin stack
    10
    md14
    6
    fbl
    5
    yt-link
    5
    adc模块
    4
    Online Users
    • 登录

    • 登录或注册以进行搜索。
    • 第一个帖子
      最后一个帖子
    0
    • 版块
    • 最新
    • 标签
    • 热门