车载网络测试 – UDS诊断篇 – 流控制帧

车载网络测试 – UDS诊断篇 – 流控制帧ISO15765 之 CANTP 层中的流控制帧介绍 流控帧

大家好,欢迎来到IT知识分享网。

车载网络测试 - UDS诊断篇 - 流控制帧

目录

一、流控制帧的功能

二、流控制帧组成说明

1、流控制帧组成

2、流控制帧字段说明

a、FlowControl

b、FlowState

c、BlockSize

d、STmin

e、Padding bytes

三、流控制帧使用举例

1、数据发送方发送所有连续帧数据

2、数据发送方每次发送至多2条连续帧

3、流控制帧等待


        在CAN&CANFD总线协议的诊断层测试中,我们除了对于诊断功能(或叫UDS诊断功能)的测试、ID测试(DID、Routine ID、IO Control ID等测试)、DTC故障码的测试外,还有一块非常重要的功能,那就是对于CAN&CANFD协议的传输层CANTP的测试,CAN&CANFD传输层中我们都知道诊断数据存在单帧和多帧2种诊断数据类型;其中单帧比较好理解,就是一帧数据即可完成完整的数据交互信息;然而当数据在一帧数据中无法完成传输的时候,这时候我们的多帧数据出厂的时候,多帧数据中有一个非常重要的数据,那就是流控制帧,今天我们主要就是来看下流控制帧到底是什么?

一、流控制帧的功能

        指示发送网络实体是否可以继续进行消息传输。

二、流控制帧组成说明

1、流控制帧组成

车载网络测试 - UDS诊断篇 - 流控制帧

组成:FlowControl  + FlowState + BlockSize + STmin + Padding bytes

2、流控制帧字段说明

a、FlowControl

        byte 0高四位(bit4-bit7),值为3,代表流控制帧

b、FlowState
Value 名称 说明
0 ContinueToSend (CTS) FlowControlContinueToSend参数应通过将N_PCI字节#1的低半字节设置为“0”来编码。 它应导致发送方恢复连续帧的发送。
该值的含义是接收器准备好接收最大BS数量的连续帧。
1 Wait (WAIT) FlowControl 等待参数应通过将 N_PCI 字节 #1 的低半字节设置为“1”来编码。 它将导致发送方继续等待新的 FlowControl N_PDU 并重新启动其 N_BS 计时器。 如果FlowStatus设置为Wait,则FlowControl消息中的BS(BlockSize)和STmin(SeparationTime最小值)的值不相关并且应被忽略。
2 Overflow (OVFLW) FlowControl Overflow 参数应通过将 N_PCI 字节 #1 的低半字节设置为“2”来编码。 它应导致发送方中止分段消息的传输,并使用参数 <N_Result> = N_BUFFER_OVFLW 进行 N_USData.confirm 服务调用。 该N_PCI FlowStatus参数值仅允许在FirstFrame N_PDU之后的FlowControl N_PDU中传输,并且仅在接收到的FirstFrame N_PDU的消息长度FF_DL超过接收实体的缓冲器大小时才应使用。
如果 FlowStatus 设置为 Overflow,则 FlowControl 消息中的 BS(BlockSize)和 STmin(SeparationTime 最小值)的值不相关,应被忽略
3-F Other 保留值
c、BlockSize
Value 名称 说明
0 BlockSize (BS) BS参数值0应用于向发送方指示在分段消息的传输期间不再发送FC帧。 发送网络层实体应发送所有剩余的连续帧,并且对于来自接收网络层实体的进一步 FC 帧不进行任何停止。
01-FF BlockSize (BS) 该 BS 参数值范围应用于向发送方指示在没有来自接收网络实体的中间 FC 帧的情况下可以接收到的连续帧的最大数量
d、STmin
Value 名称 说明
00-7F SeparationTime:0 ms–127 ms STmin在0x00–0x7F(0–127) 范围内的单位是绝对毫秒 (ms)。
80-F0 Reserved ISO 15765 的这一部分保留了该值范围。
F1-F9 SeparationTime:100 us–900 us 0xF1–0xF9范围内STmin 的单位是100 µs 的偶数倍,其中参数
值 0xF1 代表 100 µs,参数值0xF9 代表 900 µs。
FA-FF Reserved ISO 15765 的这一部分保留了该值范围。
e、Padding bytes

        填充字节这里根据不同的主机厂,有不同的定义的,不过常见的填充字节主要有0x00、0xAA、0xCC、0x55等字节对未使用字节进行填充,我们根据主机厂的规范定义进行填充即可。

三、流控制帧使用举例

1、数据发送方发送所有连续帧数据

Tester:03 22 F1 90 00 00 00 00

DUT:10 14 62 F1 90 30 30 30

Tester:30 00 14 00 00 00 00 //希望DUT返回所有的连续帧数据

DUT:21 30 30 30 30 30 30 30  T1

DUT:22 30 30 30 30 30 30 30  T2

帧间隔:20ms < T2 – T1 < 150ms

2、数据发送方每次发送至多2条连续帧

Tester:03 22 F1 F2 00 00 00 00

DUT:10 26 62 F1 F2 30 30 30

Tester:30 02 1E 00 00 00 00 //希望DUT返回2帧连续帧数据

DUT:21 30 30 30 30 30 30 30  T1

DUT:22 30 30 30 30 30 30 30  T2

帧间隔:30ms < T2 – T1 < 150ms

Tester:30 02 28 00 00 00 00 //希望DUT返回2帧连续帧数据

DUT:23 30 30 30 30 30 30 30  T3

DUT:24 30 30 30 30 30 30 30  T4

帧间隔:40ms < T2 – T1 < 150ms

Tester:30 02 14 00 00 00 00 //希望DUT返回2帧连续帧数据

DUT:25 30 30 30 30 00 00 00

3、流控制帧等待

Tester:03 22 F1 90 00 00 00 00

DUT:10 14 62 F1 90 30 30 30

Tester:31 00 14 00 00 00 00 //Tester繁忙,DUT等待

Tester:30 00 14 00 00 00 00 //希望DUT返回所有的连续帧数据

DUT:21 30 30 30 30 30 30 30  T1

DUT:22 30 30 30 30 30 30 30  T2

        以上是今天对于流控制帧介绍的所有内容,以及我们经常会遇到的使用的方法。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/110484.html

(0)
上一篇 2026-01-31 11:10
下一篇 2026-01-31 11:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信