前 言
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模块,可选配外壳直接应用于工业现场,方便用户快速进行产品方案评估与技术预研。
评估板正面图
TSN简介
时间敏感网络(TSN:Time Sensitive Networking)是IEEE802.1工作组中的TSN任务组开发的一套协议标准。该标准定义了以太网数据传输的时间敏感机制,为标准以太网增加了确定性和可靠性,以确保以太网能够为关键数据的传输提供稳定一致的服务级别。
TSN技术标准起源于音视频行业,用于满足广播、直播、现场等公共媒体的高清视频及音频数据高实时、同步传输的高带宽网络应用需求,同时旨在用以太网取代家庭中的高清多媒体接口(HDMI)、扬声器和同轴电缆。虽然AVB任务组的研究成果没有广泛应用于家庭娱乐设备,但已经在工作室、体育和娱乐等场所得到推广。这一成功吸引了汽车界和工业界的关注。在汽车领域中,随着车载以太网在高级驾驶辅助系统方面的需求日益增加,而传统以太网的高延时及其不确定是无法满足无人驾驶或智能驾驶的车载音视频同步、安全和车联网交互等需求,因此极低延时的高带宽以太网传输技术应运而生。透过以太网实现的TSN架构由于能够增加产品的差异化、改善驾驶员的行车体验。
TSN是一组IEEE 802.1协议标准,包括802.1AS-Rev、802.1Qbv、802.1Qbu、802.1CB等多个协议,工作在OSI七层网络模型中的第二层—数据链路层。
图 1
TSN是目前国际产业界正在积极推动的全新工业通信技术。时间敏感型网络允许周期性与非周期性数据在同一网络中传输,使得标准以太网具有确定性传输的优势,并通过厂商独立的标准化进程,已成为广泛聚焦的关键技术。
TSN主要价值特点:
- TSN提供微秒级确定性服务,保证各行业的实时性需求。
TSN可达到10us级的周期传输,性能优于主流的工业以太网。并且,TSN面向音视频、工业、汽车等多种行业,将实时性延伸至更高的层次。
- TSN降低整个通信网络复杂度,实现周期性数据和非周期性数据同时传输。
以工业为例,当前周期性控制数据使用工业以太网传输,非周期性数据使用标准以太网传输。TSN通过其调度机制能够实现周期性数据和非周期性数据在同一网络中传输,进一步简化了整个通信中的网络复杂性。
- TSN统一网络传输,提高经济性。
TSN能够帮助实现信息技术(IT)与运营技术(OT)融合,统一的网络能够减少开发部署成本,降低控制器等产品网络配置所需的工程时间。
参考链接:http://iiot.cechina.cn/20/0218/09/20200218092258.htm。
时钟同步机制
TSN的标准协议:Timing over packet (802.1AS-2011,IEEE1588,gPTP) with linuxptp (ptp4l)
简介
TSN标准由IEEE 802.1AS[10]和为工业所开发的升级版IEEE 802.1AS-rev[11]构成。
IEEE 802.1AS是基于IEEE 1588 V2精确时钟同步协议发展的,称为:gPTP——广义时钟同步协议。gPTP是一个分布式主从结构,它对所有gPTP网络中的时钟与主时钟进行同步。
首先由最佳主时钟算法(best clock master algrothms,BCMA)建立主次关系,分别称为主时钟(clock master,CM)和从时钟(clock slave,CS)。每个gPTP节点会运行一个gPTP Engine。
IEEE1588所采用的PTP是由网络的L3和L4层的IP网络传输,通过IPv4或IPv6的多播或单播进行分发时钟信息。而gPTP则是嵌入在MAC层硬件中,仅在L2工作,直接对数据帧插入时间信息,并随着数据帧传输到网络每个节点。
图 2 IEEE802.1AS的时钟结构
案例测试
本小节主要演示TI AM64x基于TSN的时钟同步机制进行PTP(高精度时间同步协议)对时测试。
评估板配备5个千兆网口,对应的网卡名字如下所示:
表 1
网口名称 | 支持模式 | 网口名称 |
---|---|---|
ETH1 | CPSW(RGMII1) | eth0 |
ETH2 | CPSW(RGMII2)(默认),或PRG1(RGMII2)(仅限AM6442) | eth1 |
ETH3 | PRG0(RGMII1)(仅限AM6442) | eth2 |
ETH4 | PRG0(RGMII2)(仅限AM6442) | eth3 |
ETH5 | PRG1(RGMII1)(仅限AM6442) | eth4 |
请准备2个TL64x-EVM评估板,2个评估板上电启动,请将案例"ptpbin"目录下可执行文件ppstest、testptp文件分别拷贝至2个评估板文件系统任意目录下。2个评估板分别在可执行执行所在目录下,执行如下命令,使能PTP,并测试当前评估板计时是否准确,按"Ctrl C"停止测试。
Target# ./testptp -d /dev/ptp0 -P 1 //使能PTP
Target# ./ppstest /dev/pps0 //测试计时是否准确
图 3
基于CPSW网口测试
请使用网线将2个评估板的ETH1网口互联。评估板1的ETH1网口作为Master,评估板2的ETH1网口作为Slave。
进入评估板1文件系统,执行如下命令,查看ETH1网口PTP编号。
Target# ethtool -T eth0
图 4
从上图打印信息可知,ETH1的PTP编号为0。
进入评估板1文件系统,执行如下命令,进行对时测试。
Target# ptp4l -E -2 -H -i eth0 -l 7 -m -q -p /dev/ptp0
图 5
图 6
图 7
进入评估板2文件系统,执行如下命令创建ptp.cfg配置文件,配置超时参数为600。
Target# vi ptp.cfg
Target# cat ptp.cfg
添加如下内容:
[global]
tx_timestamp_timeout 600
图 8
进入评估板2文件系统,执行如下命令,进行对时测试。
Target# ptp4l -E -2 -H -i eth0 -s -l 6 -m -q -p /dev/ptp0 -f ptp.cfg
图 9
由上图可知,path delay约为536ns,即PTP对时功能正常。
基于PRG网口测试
请使用网线将2个评估板的ETH3网口互联。评估板1的ETH3网口作为Master,评估板2的ETH3网口作为Slave。
进入评估板1文件系统,执行如下命令,查看ETH3网口PTP编号。
Target# ethtool -T eth2
图 10
从上图可知,ETH3的PTP编号为3。
进入评估板1文件系统,执行如下命令,进行对时测试。
Target# ptp4l -E -2 -H -i eth2 -l 7 -m -q -p /dev/ptp3
图 11
图 12
图 13
进入评估板2文件系统,执行如下命令创建ptp.cfg配置文件,配置超时参数为600。
Target# vi ptp.cfg
Target# cat ptp.cfg
添加如下内容:
[global]
tx_timestamp_timeout 600
图 14
进入评估板2文件系统,执行如下命令,进行对时测试。
Target# ptp4l -E -2 -H -i eth2 -s -l 6 -m -q -p /dev/ptp3 -f ptp.cfg
图 15
由上图可知,path delay约为455ns,即PTP对时功能正常。。
案例编译
请将产品资料“4-软件资料Demobase-demostsn_testptpsrc”目录下源码拷贝至Ubuntu工作目录。
在源码目录下,执行如下命令编译testptp.c,编译完成后将会在当前目录下生成ppstest可执行程序。
Host# aarch64-none-linux-gnu-gcc -Wall testptp.c -o testptp
图 16
执行如下命令,将pps-tools.tar.gz压缩包解压至当前目录,并进入解压后的目录进行编译,编译完成将在当前目录下生成ppstest可执行程序。
Host# tar -zxf pps-tools.tar.gz -C .
Host# cd pps-tools/
Host# make CC=aarch64-none-linux-gnu-gcc
图 17
时间感知整形器机制
网络协议:Time aware shaper (EST,802.1Qbv) with Linux packet scheduler (tc qdisc)
简介
时间感知整形器(Time Awareness Shaper,TAS)是为了更低的时间粒度、更为严苛的工业控制类应用而设计的调度机制,目前被工业自动化领域的企业所采用。
TAS由IEEE 802.1Qbv定义,是基于预先设定的周期性门控制列表,动态地为出口队列提供开/关控制的机制。Qbv定义了一个时间窗口,是一个时间触发型网络(Time-trigged)。窗口在此机制中是被预先确定的。门控制列表被周期性的扫描,并按预先定义的次序为不同的队列开放传输端口。
出口硬件有8个软件队列,每个都有唯一的传输选择算法。传输由门控制列表(gate control list,GCL)控制。它是多个门控制实体确定软件的队列开放。
图 18 TAS的工作原理
在TAS机制中,为了确保数据传输前网络是空闲的,在整个启动传输前需设置一个保护带宽(Guardband)。Guardband占用最大的以太网帧传输长度,以确保最差情况—即使前面有一个标准以太网帧正在传输,也不会让GCL在重启下一个周期前被占用网络。
案例测试
iperf3工具安装
请将产品资料“4-软件资料ToolsWindows”目录下的iperf-3.1.3-win64.zip压缩包解压至Windows非中文目录下,并参考如下方法将配置系统环境变量。
在Windows右键“我的电脑”,选择“属性(R) -> 高级系统设置”,打开如下系统属性界面。
图 19
图 20
图 21
点击“环境变量(N)…”,打开如下界面。双击点击“系统变量(S)”的PATH,添加iperf3实际路径。
图 22
打开CMD命令行终端执行如下命令,验证iperf3的环境变量是否配置成功,如下图所示。
CMD# iperf3 -h
图 23
基于CPSW网口测试
请使用网线将评估板的ETH1网口与PC机网口直连。
备注:暂不支持PRG网口。
请将PC机配置为静态IP,其中IP地址为:192.168.2.10,子网掩码为:255.255.255.0,请根据实际情况进行修改,如下图所示。
图 24
请将案例"estbin"目录下est-init.sh脚本拷贝至评估板文件系统任意目录。在脚本文件中已设置3个阀门(Q0-Q2)EST调度器,并且设置阀门的打开时间分别为250us、125us和125us,总循环时间为500us。调度器与端口对应关系,如下表所示。
表 2
端口 | 调度器 |
---|---|
5001 | TC0 <-> Q0 |
5002 | TC1 <-> Q1 |
5003 | TC2 <-> Q2 |
进入评估板文件系统,在est-init.sh脚本所在目录下执行如下命令,初始化EST。
Target# ./est-init.sh
图 25
执行如下命令,配置ETH1网口的静态IP为:192.168.2.20,与PC机同一网段,并测试与PC机是否通信正常。
Target# ip addr add 192.168.2.20/24 dev eth0
Target# ping 192.168.2.10
图 26
在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
图 27
图 28
图 29
在评估板文件系统执行如下命令,启动3个iperf3客户端,并与服务端进行通信测试。
Target# iperf3 -c 192.168.2.10 -u -b100M -p 5003 -l1472 -t10 -i5& iperf3 -c 192.168.2.10 -u -b100M -p 5002 -l1472 -t10 -i5& iperf3 -c 192.168.2.10 -u -b100M -p 5001 -l1472 -t10 -i5&
图 30
请双击产品资料“4-软件资料ToolsWindow”目录下的Wireshark-win64-3.6.8.exec程序,安装默认步骤安装即可。
安装完成后,打开Wireshark工具,如下图所示。
图 31
双击选择“以太网”进入如下界面,输入内容:ip.host == 192.168.2.20,按下回车键,开始抓取客户端发送的网络数据包。
图 32
为了便于分析网络包的发送情况,右键选择“设置/取消设置 时间参考”,将对应端口的第一个数据包设置为时间参考,如下图所示。
图 33
图 34