UDS中时间参数相关

分为应用层和网络层

具体的分析参考一文搞懂UDS的各种时间参数 -- CN知EV

网络层

相关定义

参数 全称/描述 控制方 主要作用 默认值/范围
N_As 发送帧间分离时间 发送方 控制发送节奏,防止淹没总线 典型值:20ms
N_Ar 接收帧间分离时间 接收方 检测传输超时 典型值:25ms
N_Bs 流控制帧等待超时 发送方 防止无限等待流控制帧 典型值:1000ms
N_Br 接收就绪时间 接收方 准备接收下一块数据的时间 -
STmin 最小分离时间 接收方 (通过FC帧) 精确控制CF帧的流入速率 0-127ms (0x00-0x7F)
N_Cs 客户端请求超时 客户端 (应用层) 确保整个请求有响应 厂商定义

如图所示

1. N_As (发送帧间分离时间)
  • 定义 :发送方在发送两个连续帧之间必须插入的最小时间间隔。

  • 谁遵守发送方(无论是客户端还是服务器,谁发多帧谁遵守)。

  • 用途

    • 防止发送方以过快的速度淹没总线,给其他报文和接收方的处理留出时间。

    • 确保总线负载在可控范围内。

  • 实际应用:发送方在发送完一个CF后,必须等待至少N_As时间,才能发送下一个CF。这个时间通常由CAN驱动或控制器硬件来保证。

2. N_Ar (接收帧间分离时间)
  • 定义 :接收方在等待下一个连续帧 时,所允许的最大时间

  • 谁遵守接收方

  • 用途

    • 检测传输中断。如果接收方在收到一个CF之后,超过N_Ar时间还没有收到下一个CF,它就认为本次多帧传输失败。

    • 随后,接收方会向上层报告一个超时错误(如 N_TIMEOUT_A),并丢弃已接收到的部分数据。

  • 关系N_Ar > N_As。这很好理解,接收方的等待时间必须大于发送方的发送间隔,否则会误判为超时。

3. N_Bs (流控制帧等待超时)
  • 定义 :发送方在发送首帧 之后,等待接收方回复流控制帧最大时间

  • 谁遵守发送方

  • 用途

    • 防止因为流控制帧丢失或接收方故障,导致发送方无限期地等待下去。

    • 如果超过N_Bs时间仍未收到流控制帧,发送方将中止本次传输,并上报超时错误(如 N_TIMEOUT_Bs)。

  • :这个值通常设置得较大(如1000ms),因为接收方可能需要一些时间来准备资源(如分配缓冲区)。

4. STmin (最小分离时间)
  • 定义 :由接收方 通过流控制帧 动态告知发送方的、希望发送方遵守的最小连续帧间隔

  • 谁遵守发送方(必须遵守接收方的要求)。

  • 用途

    • 接收方根据自身的处理能力、缓冲区状态和CPU负载,动态地控制数据流的输入速率。

    • 如果接收方正在处理高优先级任务,可以通过增大STmin来降低诊断数据流入的速度。

  • 实际间隔 :发送方最终采用的CF间隔是 max(N_As, STmin) 。即取自身硬件限制和接收方要求中的较大值

    • 例:N_As = 5ms, STmin = 10ms -> 实际间隔为 10ms

    • 例:N_As = 5ms, STmin = 0ms -> 实际间隔为 5ms

5. N_Cs (客户端请求超时)
  • 定义 :这是应用层和网络层的一个衔接点。指客户端 从发送完请求消息 到开始接收响应消息第一个帧(可以是SF, FF或FC)所等待的最大时间。

  • 谁遵守客户端(诊断仪)。

  • 用途:判断服务器(ECU)是否"活着"并对请求做出了响应。如果超时,诊断仪会报"无响应"错误

总结与工作流程

可以把这些时间参数想象成一场有序的对话

  1. 发起请求 :客户端发送首帧(FF),并启动 N_Bs (等待对方说"请讲")和 N_Cs(等待对方完整回答)计时器。

  2. 流量调控 :服务器回复流控制帧(FC),其中包含 STmin("请以这个速度说")和BS("每次说这么多句")。

  3. 数据传输 :客户端以 max(N_As, STmin) 的间隔("按我最快的能力或你要求的速度,取慢的那个")连续发送CF。服务器则用 N_Ar 来监控每一句是否及时到达("有没有卡壳?")。

  4. 流程重复:如果数据没发完,服务器会再次发送FC(流程回到第2步),直到所有数据发送完毕。

应用层

应用层时间参数

在ISO-15765-3标准中针对Tester以及Server列出了3对P时间参数,分别为*P2Client、P2Server、P2*Client、P2 Server、P3Client(Phy) 、P3Client(Func)。

为了较好的比较这六者之间的关系

原文链接:https://blog.csdn.net/wto9109/article/details/116176643

相关推荐
IAMeee9 天前
从项目中学习CAN和CANFD报文结构(新手入门)
自动化测试·can·uds·canfd·1024程序员节
Stephen深瞳4 个月前
工具:Autosar:DBC转ARXML
汽车·autosar·uds
CyberSecurity_zhang1 年前
入门车载以太网(7) -- DoIP
tls·uds·车载以太网·汽车诊断·doip
逸埃1 年前
[AutoSar]BSW_Diagnostic_007 BootLoader 跳转及APP OR boot response 实现
autosar·uds·bootloader·dcm
逸埃1 年前
[AutoSar]BSW_Diagnostic_006 RoutineControl (0x31)的配置和实现
autosar·uds·dcm·rid
77赫兹1 年前
【UDS诊断】——0x34、0x36、0x37服务
uds
原野风霜3241 年前
UDS诊断协议介绍
uds
嵌入式历练者1 年前
UDS服务19 01按掩码读DTC数量
嵌入式·uds
疯狂的机器人1 年前
【Python搞定车载自动化测试】——Python实现CAN总线Bootloader刷写(含Python源码)
python·自动化·can·诊断·uds·bootloader·刷写