前 言
1 TSN简介
2 时钟同步机制
3 时间感知整形器机制
4 抢占式MAC机制
5 时间敏感流转发与排队机制
前 言
本指导文档适用开发环境:
Windows开发环境:Windows 7 64bit、Windows 10 64bit
Linux开发环境:Ubuntu18.04.4
虚拟机:VMware15.5.5
Linux Processor SDK:ti-processor-sdk-linux-rt-am64xx-evm-08.01.00.39
U-Boot:U-Boot-2021.01
Kernel:Linux-5.10.65
本文档主要演示TSN(时间敏感型网络)的通信测试。案例位于产品资料“4-软件资料Demobase-demostsn_test”目录下。
进行本文档操作前,请先按照《调试工具安装》文档安装USB转串口驱动、SecureCRT串口调试终端等相关软件。默认使用USB TO UART0作为调试串口。
评估板简介
创龙科技TL62x-EVM是一款基于TI Sitara系列AM62x单/双/四核ARM Cortex-A53 单核ARM Cortex-M4F异构多核处理器设计的高性能低功耗工业评估板,由核心板和评估底板组成。处理器ARM Cortex-A53(64-bit)主处理单元主频高达1.4GHz,ARM Cortex-M4F实时处理单元主频高达400MHz,采用16nm最新工艺,具有可与FPGA高速通信的GPMC并口,同时支持双屏异显、3D图形加速器。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。
评估板接口资源丰富,引出3x Ethernet(两路支持TSN)、3x CAN-FD、9x UART、多路DI/DO、GPMC、USB、MIPI、LVDS LCD、TFT LCD、HDMI等接口,板载WIFI模块,支持4G模块,可选配外壳直接应用于工业现场,方便用户快速进行产品方案评估与技术预研。
评估板正面图
根据抓取的数据包分析可知:
端口5001:在204us之后关闭(TC0/Q0)阀门。
图 35
端口5002:在572us之后关闭(TC1/Q1)阀门。
图 36
端口5003:在198us之后关闭(TC2/Q2)阀门。
图 37
备注:数据包未按设置的门限打开时间进行发送,原因未知,但与官方测试结果一致。
抢占式MAC机制
TSN的标准协议:Preemption (IET,802.1Qbu/802.3br) with Linux packet scheduler
简介
在TAS机制中会存在两个问题:第一,保护带宽消耗了一定的采样时间;第二,低优先级反转的风险。因此,TSN的802.1Qbu和IEEE 802.3工作组共同开发了IEEE 802.3br,即可抢占式MAC机制。其采用了802.3TG中的帧抢占机制,将给定的出口分为2个MAC服务接口,分别称为可被抢占MAC(pAMC-Preemptable MAC)和快速MAC(eMAC-express MAC)。pMAC可被eMAC抢占,进入数据堆栈后等待eMAC数据传输完成,再进行传输。
图 38 基于抢占式MAC的传输机制
通过抢占,保护带宽可被减少至最短低优先级帧片段。然而在最差情况下,低优先级的片段可在下一个高优先级前完成。当然,抢占这个传输过程仅在连接层接口,即对于抢占式MAC,交换机需专用的硬件层MAC芯片支持。
案例测试
基于CPSW网口测试
请准备2个TL64x-EVM评估板,使用网线将2个评估板的ETH1网口互连。其中评估板1作为iperf3服务端,评估板2作为iperf3客户端。
备注:暂不支持PRG网口。
请将案例"ietbin"目录下iet-fpe-with-mac-verify.sh脚本文件分别拷贝至评估板1、2文件系统。分别进入评估板1、2文件系统,执行如下命令初始化并使能网口IET功能。
Target# ./iet-fpe-with-mac-verify.sh
图 39 评估板1文件系统
图 40 评估板2文件系统
进入评估板1文件系统,执行如下命令,设置评估板1网口ETH1的静态IP为192.168.2.10,并启动2个iperf3服务器,对应端口分别为5002和5003。
Target# ip addr add 192.168.2.10/24 dev eth0
Target# iperf3 -s -i30 -p5002 &
Target# iperf3 -s -i30 -p5003 &
图 41
进入评估板2文件系统,执行如下命令,设置评估板2网口ETH1的静态IP为192.168.2.20,并启动2个iperf3客户端,对应端口分别为5002和5003。首先运行端口为5002的客户端,数据将会进入Q0队列;然后运行端口为5003的客户端,数据将会进入Q1队列。由于在使用脚本初始化时将会配置Q0可被Q1抢占,因此端口为5002的客户端可被端口为5003的客户端抢先发送数据。
Target# ip addr add 192.168.2.20/24 dev eth0
Target# iperf3 -c 192.168.2.10 -u -b200M -l1472 -u -t30 -i30 -p5002 &
Target# iperf3 -c 192.168.2.10 -u -b50M -l1472 -u -t30 -i30 -p5003 &
图 42
评估板1串口调试终端将会打印如下信息。
图 43
分别进入评估板1、2文件系统,执行如下命令,查看IET的状态。
Target# ethtool -S eth0 | grep iet
图 44 评估板1(服务端)
图 45 评估板2(客户端)
参数解析:
iet_rx_assembly_ok:表示接收端成功重新组装MAC帧的次数。
iet_rx_frag:表示接收端接收到抢占帧的次数。
iet_tx_frag:表示发送端产生抢占帧的次数。
从上述测试结果分析可知:客户端参数iet_tx_frag为13805,表示存在发送帧抢占的情况,发送端使用MAC抢占机制。服务端参数iet_rx_frag为13805,iet_rx_assembly_ok为11316,表示存在接收到对端抢占帧的情况。
时间敏感流转发与排队机制
TSN的标准协议:Forwarding and Queuing Enhancements for Time-Sensitive Streams (FQTSS, 802.1Qav)
简介
802.1Qav协议制定初衷是确保传统的异步以太网数据流不会干扰AVB的实时数据流传输,现在Qav不再局限于音视频的传输。此协议规定了每类优先级的入口计量、优先级再生以及处理时间感知队列的算法。其利用IEEE 802.1AS协议生成的定时信息和VLAN优先级来隔离受控和非受控队列之间的帧,同时支持时间敏感流量在有线或无线局域网之间传输。
案例测试
基于CPSW网口测试
请使用网线将评估板的ETH1网口与PC机网口直连。
备注:暂不支持PRG网口。
请将PC机配置为静态IP,其中IP地址为:192.168.2.10,子网掩码为:255.255.255.0,请根据实际情况进行修改,如下图所示。
图 46
请将案例"fqtssbin"目录下所有脚本拷贝至评估板文件系统任意目录。
图 47
- TX CPPI channels on Host P0测试
在fqtss-tx_cppi_channel_on_host_p0-init.sh脚本所在目录下执行如下命令测试TX CPPI channels on Host P0功能。本此测试将会对主机端口TX通道限制速率。
Target# ./fqtss-tx_cppi_channel_on_host_p0-init.sh
图 48
执行如下命令,设置评估板网口ETH1的静态IP为:192.168.2.20,并测试与PC机是否通信正常。
Target# ip addr add 192.168.2.20/24 dev eth0
Target# ping 192.168.2.10
图 49
在PC机上,在CMD命令行终端执行如下命令,运行3个iperf3服务器进程,对应端口分别为5001、5002和5003。
CMD# iperf3.exe -s -i30 -p5001
CMD# iperf3.exe -s -i30 -p5002
CMD# iperf3.exe -s -i30 -p5003
图 50
图 51
图 52
进入评估板文件系统,执行如下命令,启动3个iperf3客户端,并与服务端进行通信测试。
Target# iperf3 -c 192.168.2.10 -t10 -p5001 -Tpri7 & iperf3 -c 192.168.2.10 -t10 -p5002 -Tpri6 & iperf3 -c 192.168.2.10 -t10 -p5003 -Tpri0
图 53
从上图可知,端口为5001的客户端(pri7,限速100Mb/s)的带宽为89.2Mb/s;端口为5002的客户端(pri6,限速200Mb/s)的带宽为162Mb/s;端口为5003的客户端(pri0,不限速)的带宽为502Mb/s。
根据上述测试结果分析可知:对主机端口TX通道的速率限制功能正常。
External Ports FIFOs测试
请将评估板断电重启,进入评估板文件系统。
在fqtss-external_ports_fifos-init.sh脚本所在目录执行如下命令测试External Ports FIFOs功能。本此测试将会对主机端口TX通道和外部端口FIFO,启用速率限制。
Target# ./fqtss-external_ports_fifos-init.sh
图 54
执行如下命令,设置评估板网口ETH1的静态IP为:192.168.2.20,并测试与PC机是否通信正常。
Target# ip addr add 192.168.2.20/24 dev eth0
Target# ping 192.168.2.10
图 55
在PC机上,在CMD命令行终端执行如下命令,运行3个iperf3服务器进程,对应端口分别为5001、5002和5003。
CMD# iperf3.exe -s -i30 -p5001
CMD# iperf3.exe -s -i30 -p5002
CMD# iperf3.exe -s -i30 -p5003
图 56
图 57
图 58
进入评估板文件系统,执行如下命令,启动3个iperf3客户端,并与服务端进行通信测试。
Target# iperf3 -c 192.168.2.10 -t10 -p5001 -Tpri7 & iperf3 -c 192.168.2.10 -t10 -p5002 -Tpri6 & iperf3 -c 192.168.2.10 -t10 -p5003 -Tpri0
图 59
从上图可知,端口为5001的客户端(pri7,限速100Mb/s)的带宽为80.5Mb/s;端口为5002的客户端(pri6,限速200Mb/s)的带宽为139Mb/s;端口为5003的客户端(pri0,不限速)的带宽为368Mb/s。
根据上述测试结果分析可知:对主机端口TX通道和外部端口FIFO的速率限制功能正常。