WiFi-TSN 低时延转换架构*

2022-04-19 10:49王雪迪时广轶
电子技术应用 2022年4期
关键词:状态机字段校验

王 博,王雪迪,时广轶,严 伟

(北京大学 软件与微电子学院,北京 102627)

0 引言

21 世纪以来,工业物联网技术的发展日新月异。从工业现场总线到以太网,从传统的以太网到工业以太网,从工业以太网到时间敏感网络(Time Sensitive Network,TSN),从时间敏感网络再到无线-TSN 技术,每一次技术革命都蕴含着通信技术的飞跃。当前工业互联网技术的核心是TSN。TSN 通过加入时间同步机制、流量整形机制以及排队转发机制,使不同业务的流量同时在一个网络中流转,同时能保证实时流量的确定性传输[1-2]。然而传统的TSN 技术主要集中在有线传输领域,有线组网有建设周期长、成本高、缺少灵活性等缺点。所以TSN 与无线技术的融合成为学术界和工业界研究的热点。5G技术和WiFi 技术成为业内公认的最适合与TSN 融合的两种候选技术,但是目前并没有实际落地的产品和方案[3-5]。

物联网技术飞速发展,其核心技术为无线通信。本世纪初,无线通信技术开始蓬勃发展,逐渐走进工业控制领域,为万物互联提供了新的手段。无线技术可以为端到端的通信设备提供灵活、低成本的组网环境。然而,无线通信方案也有其不足:由于信道的复杂,无线通信缺乏时间确定性的机制。目前在工业界和学术界,应用于工业控制领域的无线组网方案还比较少见[6-7]。如何实现时间确定和低时延的无线-TSN 混合网络,进行数据的可靠传输,这成为工业界的研究热点。

李众和王鹏澄等人设计了一种基于ZigBee、WiFi、以太网的网关,该网关采用STM32 和CC2530 双处理器架构。其中,硬件部分的STM32 作为主处理器进行不同网络中数据的转发,软件部分移植了LwIP 精简TCP/IP 协议。该研究用软硬件协同的方式实现了物联网网关的系统[8]。

ÓSCAR SEIJO 等人提出了一种适用于工业控制应用的有线-无线混合体系架构。在该架构中,使用时间敏感网络(TSN)来控制有线网络,并且设计了针对于802.11 的媒体访问控制(MAC)协议来控制无线网络。为了实现有线和无线网络的融合,还提出了一种具有实时特性的确定性接入点(AP)的网桥[9]。

印尼大学工程学院电气工程系的Delphi Hanggoro、Lukman Rosyidi、Riri Fitri Sari 设计了一种物联网多协议网关系统。该网关是用Python 和Lazarus 语言开发的一个嵌入式系统,并且支持前端用户显示界面。该网关传输三种网络协议,其中WiFi 协议数据传输的最大延迟为362 ms[10]。

传统的网桥系统采用软件实现网络协议的转换,延迟比较高,无法满足低时延、高实时性的应用场景。本文设计了一种支持WiFi 协议和TSN 协议在数据链路层进行协议转换的网桥架构。它是一个基于数字电路的硬件网关,采用Verilog 语言进行电路描述,具有端到端延时低的优点。该电路架构支持WiFi 数据与TSN 数据进行协议格式转换,端到端的最低延迟可达到微秒级别。

1 WiFi-TSN 协议转换原理

TSN 是确保网络数据传输时间确定性的一个协议标准集合,它是隶属于IEEE 802.1 下的协议标准。根据协议标准,TSN 工作在OSI 模型的第二层即数据链路层。同时,TSN 的大部分机制都是通过硬件来实现的,所以处理数据流只消耗极少的时间。WiFi 协议主要遵循IEEE 802.11 协议标准。802.11 标准中规定的协议帧也包含Address 字段,只要将802.11 与TSN 协议的Address 进行统一编址,就有希望实现WiFi 网络到TSN 网络的协议转换。

基于以上技术背景,本文设计了基于硬件电路的WiFi和TSN 的网络协议转化模型,如图1 所示,它主要工作于数据链路层。在数据链路层,本文设计的WiFi-TSN 低时延转换电路可以完成WiFi 与TSN 的协议数据的拆帧与组帧,包括:TSN 帧头的拆解与填充、VLAN Tag 的解析与填充、MAC 地址的统一编址与映射、payload 的填充、CRC 校验与重新计算等。

图1 WiFi-TSN 协议转换模型

WiFi 和TSN 的协议帧转换过程示意如图2 所示。当WiFi 网络和TSN 网络进行桥接,并且有两种网络有统一编制的MAC 地址时,可以进行协议帧的转换。

图2 WiFi 协议帧和TSN 协议帧转换示意图

协议转换时每个字段的组帧方法如下所述:

(1)对于地址字段,将WiFi 数据帧的Address1、Address2与TSN 数据帧的Destination Address、Source Address 直接替换;

(2)WiFi 的帧主体Frame Body 和TSN 的payload 可以直接替换来组帧。但需要注意该字段的字节长度,TSN协议帧的payload 长度为46~1 500 B,而WiFi 协议帧的字段长度为0~2 312 B,所以一种网络协议数据长度太长或者太短会造成两种网络不兼容的问题。因此两种网络进行桥接时,应充分考虑两种网络的实际情况,设定TSN 协议的payload 字段和WiFi 协议的Frame Body 的长度为46~1 500 B;

(3)当WiFi 协议数据转换为TSN 数据时,应对WiFi协议帧的frame body 进行计数,并将计数结果填充到TSN协议帧的length/type 字段中;

(4)WiFi 和TSN 的FCS 字段长度都为4 B,在协议转换时,FCS 的位置应填充CRC caculator 计算的结果;

(5)WiFi 协议的Preamble 和Header 字段,一种是144 bit的长帧头,另一种是72 bit 的短帧头,组帧时根据CPU配置的寄存器进行选择;

(6)TSN 协议的Preamble 和SFD 分别为7 B 和1 B 的固定值,硬件电路应固化这两个固定值;

(7)剩余的字段由CPU 进行统一配置,组帧时硬件电路根据寄存器的配置值进行协议帧的封装。

2 WiFi-TSN 转换电路架构设计

本文设计的WiFi-TSN 低时延转换架构如图3 所示。其中,实线框内包含了该系统的所有电路模块。虚线框内部分表示与本系统进行数据交互的电路部分。黑色箭头表示数据流向。该电路架构支持CPU 通过APB 接口对配置寄存器的内容进行实时更新。Registers 存储的内容指示了WiFi 协议与TSN 协议的各个字段的默认值,也可以寄存中断类型的信息。除此之外,该电路架构处理两个流向的数据,上行方向指的是WiFi MAC 到TSN switch,下行方向指的是从TSN switch 到WiFi MAC。对于上行方向的数据,该电路对GMII 收到的协议帧进行识别和解析、进行CRC 校验、缓存入WiFi FIFO、根据Registers 内的配置信息进行组帧以完成WiFi 到TSN 的协议转换、转发到TSN switch。对于下行方向的数据,该电路进行上行数据处理过程的逆向处理。电路架构中每个模块的功能分别如下所述:

图3 WiFi-TSN 协议转换电路架构

(1)APB ports:CPU 通过APB ports 对电路进行寄存器的配置以及读取;

(2)Registers:寄存WiFi 和TSN 的协议帧的字段信息、寄存中断类型信息;

(3)WiFi header checker:通过状态机对接收到的WiFi协议数据进行识别、校验和缓存;

(4)TSN header checker:通过状态机对接收到的TSN协议数据进行识别、校验和缓存;

(5)WiFi CRC checker:对接收到的WiFi 协议数据进行CRC32 校验,当校验出错时,将WiFi 错误指示信号置位;

(6)TSN CRC checker:对接收到的TSN 协议数据进行CRC32 校验,当校验出错时,将TSN 错误指示信号置位;

(7)WiFi->TSN translator:将接收到的WiFi 协议数据转换为TSN 协议数据;

(8)TSN->WiFi translator:将接收到的TSN 协议数据转换为WiFi 协议数据;

(9)WiFi CRC caculator:对接收到的WiFi 协议数据进行CRC32 校验,寄存校验结果;

(10)TSN CRC caculator:对接收到的TSN 协议数据进行CRC32 校验,寄存校验结果;

(11)WiFi FIFO:缓存WiFi 的协议数据;

(12)TSN FIFO:缓存TSN 的协议数据。

下面介绍电路架构的两个关键模块的工作原理,WiFi header checker 模块和TSN header checker 模块。

2.1 WiFi header checker 模块

WiFi header checker 模块是一个状态机模块,该状态机是一个mealy 型状态机。状态机通过判断GMII 接收到的8 bit 数据和当前的状态,进行状态的跳转和输出信号的改变。状态图如图4 所示。每个状态释义及工作细节如下:

(1)IDLE:状态机上电之后进入IDLE 初始状态,等待GMII 接收数据,如果接收到的数据为连续的16 个8′hff,则判定为长前导码,进入SFD 状态;若接收到的数据为连续的7 个8′h00,则判定为短前导码,进入SFD 状态;若接收到的数据既非长前导码也非短前导码,则继续持续在IDLE 状态。

(2)SFD:该状态为起始定界符状态,如果收到的数据为16′05CF,则判定接收到了起始界定符,进入header状态,否则回到IDLE 状态。

(3)header:该状态为MAC header 状态,每接收1 B 数据,计数器自加1,接收到6 B,则认为MAC header 已接收完成,进入MDPU 状态。

(4)MDPU:该状态为MAC 数据接收状态,在接收数据的过程中,电路一边缓存入FIFO 中,一边进行CRC 校验。同时,通过计数器对帧长度进行统计,并通过计数器的值来判定并寄存MAC 地址字段,以便下游模块在协议转换时进行地址字段的封装。接收数据完成之后,状态机回到IDLE 状态等待下一帧的接收。

2.2 TSN header checker 模块

TSN header checker 模块也是一个状态机模块,工作流程类似于WiFi header checker,但是具体的流程细节有所不同。状态图如图5 所示:每个状态释义及工作细节如下:

图5 TSN 数据接收状态机

(1)上电之后,状态机进入idle(空闲)状态,等待GMII接口的数据。当GMII 接口收到数据之后,状态机进入rx_pre(接收前导码)状态。

(2)在rx_pre 状态中,状态机边接收边检测数据的值。如果7 B 数据中每个字节的数据值都为01010101,表示接收到的TSN 数据的前导码值正确,进入rx_sfd(接收起始符)状态,否则回到idle 状态。

(3)在rx_sfd 状态中,状态机边接收边检测数据的值,如果接收到的1 B 数据为8′b11010101,表示接收到的TSN 数据的起始符值正确,进入rx_addr(接收MAC 地址)状态,否则回到idle 状态。

(4)在rx_addr 状态中,状态机依次接收6 B 的MAC目的地址和6 B 的MAC 源地址,接收完成后,进入rx_vlan(接收VLAN Tag)状态。

(5)在rx_vlan 状态中,接收并锁存完毕之后,进入rx_leng(接收数据长度)状态。

(6)在rx_leng 状态中,状态机接收并锁存数据的字节数。接收完毕后,进入rx_data(接收数据)状态。

(7)在rx_data 状态中,状态机接收数据,并将数据缓存入TSN FIFO 中。当接收数据的数量达到rx_leng 状态中锁存的字节数后,表示接收数据完成,接下来回到idle状态。

3 仿真与评估

3.1 功能仿真

图6 展示了WiFi 协议帧转换为TSN 协议帧的过程。

当电路接收到WiFi 协议帧时,状态机依次检查WiFi协议帧的Preamble、Header 等每个字段,锁存WiFi 协议帧的Address1、Address2 字段,并用WiFi FIFO 缓存Frame Body 字段,接收缓存完毕后,rx_done_wifi 信号被置位,指示WiFi 数据缓存完成。WiFi-TSN translator 模块在识别到rx_done_wifi 信号被拉高的下一个时钟周期,开始从GMII 口发送TSN 协议帧的各个字段,其中Destination Address 和Source Address 字段用之前锁存的Address1、Address2 字段进行填充,VLAN tag 字段使用CPU 配置的值进行填充,payload 字段用WiFi FIFO 中取出的数据进行填充,FCS 用TSN CRC caculator 计算的值进行填充。

图7 展示了TSN 协议帧转换为TSN 协议帧的过程,电路的工作流程为图6 的逆过程,这里不再赘述。

图6 WiFi 协议帧转换为TSN 协议帧

图7 TSN 协议帧转换为WiFi 协议帧

从图6、图7 的仿真波形可以看到,接收TSN 数据完成和接收WiFi 数据完成的下一个时钟周期,rx_done_tsn 和rx_done_wifi 被置位,再下一个时钟周期,协议转换后的数据帧开始发送。由此可见,从接收完成数据到开始发送新的协议类型数据,仅消耗了2 个时钟周期,本文设计的硬件电路进行协议转换的延迟非常小。

3.2 性能分析

交换机类型的设备的时延性能有四种评判指标,分别为首位进到末位出(FILO)、末位进到首位出(LIFO)、首位进到首位出(FIFO)和末位进到末位出(LILO)。这些指标的时延都是在交换机的入口和出口进行测量的。

其中,LIFO 可以通过硬件电路的设计直接得出。无论是WiFi 协议帧转换为TSN 协议帧还是TSN 协议帧转换为WiFi 协议帧,LIFO 都为2 个时钟周期,即16 ns。剩余三个指标都与协议帧的长度有关。本文选取LILO 指标对电路的时延进行评判。

本文通过Vivado 软件进行了大量的仿真测试,选取了100 B、300 B、600 B、900 B、1 200 B、1 500 B 长度的协议帧,根据仿真图测量了端到端时延,并绘制数据图,如图8 所示。从图8 中可以看出,WiFi 协议帧转换为TSN 协议帧的LILO 时延和TSN 协议帧转换为WiFi 协议帧的LILO 时延都和协议帧长度呈正相关。区别在于:当原始协议帧的字节数相同时,TSN 协议帧转换为WiFi协议帧的LILO 时延更大,这是因为TSN 协议帧帧头和帧尾的字节数小于WiFi 协议帧的帧头和帧尾的字节数,所以TSN 协议帧转换为WiFi 协议帧后,字节数变大了,电路的LILO 时延也就更大了。

图8 电路的端到端时延

4 结论

本文提出了一种在数据链路层对两种协议帧进行协议转换的方案,设计出了一种WiFi-TSN 低时延转换架构,并且用Verilog HDL 语言对硬件电路进行设计。最后本文通过大量的测试用例,验证了两种协议帧转换的功能正确性,并且测量分析了电路的端到端时延,最低时延可达微秒级别。结果表明,本文设计的WiFi-TSN低时延转换电路能够正确进行协议转换,并且具有极低的端到端时延。

猜你喜欢
状态机字段校验
使用Excel朗读功能校验工作表中的数据
基于有限状态机的交会对接飞行任务规划方法
浅谈台湾原版中文图书的编目经验
基于Spring StateMachine的有限状态机应用研究
智能电能表的现场快速校验方法探讨
Can we treat neurodegenerative diseases by preventing an age-related decline in microRNA expression?
电子式互感器校验方式研究
无正题名文献著录方法评述
无正题名文献著录方法评述
浅谈微电子故障校验