基于时间触发以太网的AS6802时间同步协议的设计与实现

随着分布式系统的发展,系统中设备之间数据交互的实时性、可靠性以及高安全性需求更加迫切,使得以太网技术无法适用于相应的业务领域。时间触发以太网将时间触发技术的实时性、确定性与传统以太网的优势相结合,有效地解决了传统以太网无法满足高实时性、可靠性需求的弊端,被广泛应用于航天航空、工业控制等具有高实时性、高安全性需求的领域。由于时间触发以太网的实时性和确定性是以高精度的全局同步时钟为基础的,因此精确时间同步是时间触发以太网技术研究的基础,具有重要的研究价值和广阔的应用前景。

2011年颁布的开放标准AS6802定义了一种确定性、高容错和无阻塞通信的同步技术。在研究开放标准AS6802协议标准和现有以太网时间同步方案后,本文首先采用FPGA+ARM的软硬件协同设计平台,自主设计和实现了集成三种功能单元的时间同步单元,并详细描述了FPGA实现的各个同步单元中各功能模块的设计;然后,在ModelSim仿真环境中对各主要模块进行了功能仿真;最后,在千兆以太网环境中对此系统进行实测,同步精度优于20纳秒。由于使用FPGA实现的接收和发送模块代替了现有以太网时间同步方案中的MACIP核,因此本系统对于以太网帧数据的接收与发送更加灵活,减少了MACIP核引入的动态时延,使得同步精度更高,并具有成本低、便于移植的特点。

一、研究现状

目前主流以太网时间同步技术主要基于NTP、IEEE1588[6]、以及AS6802三种时间同步协议来进行实现。NTP协议[7]作为最早提出的时间同步协议,被广泛应用于传统以太网中,其同步精度可以达到毫秒级,但随着实时网络研究的兴起,航天航空、工业控制等领域实时性的需求不再满足于毫秒级的同步精度。

IEEE标准委员会于2002年通过的IEEE1588高精度时间同步协议相比NTP协议[8],其时间同步精度可以达到亚微秒级,有效解决了实时网络中时间同步精度不满足的问题。自从IEEE1588时间同步协议提出以来,得到了广泛的认可,许多厂商更是基于IEEE1588开发出了各自的产品[9]。目前,More Than IP 公司和 Arasan公司相继推出了支持IEEE1588协议的MAC模块,可实现精度为50ns的时钟同步[10][11];Hirschmann公司采用FPGA芯片实现IEEE1588时间同步的方式,其同步精度可达60ns[12]。IEEE 1588协议虽然可以提供很高的同步精度,但无法对于网络中潜在的故障节点进行容错过滤,同时IEEE1588协议中定义的主从时间同步模型,其时间同步精度过于依赖主时钟的稳定性,存在一定的局限性。

2011年颁布的开放标准AS6802[13],它继承了IEEE1588协议中的透明时钟机制[14],同时在同步处理过程中,增加了一系列容错机制[15],有效解决了IEEE 1588协议无法进行容错处理的缺陷;同时AS6802中引入了全局时间基准,网络节点的时间同步以其本地时间与全局时间基准的差值作为依据,来进行时间同步。因此同步精度[16]受网络中故障节点的影响。由于AS6802协议提出时间相对较晚,目前其相应的产品主要被TTTech公司垄断,用于汽车、飞机、航天航空系统中关键控制信号的传输;而在国内,AS6802协议的研究主要在各大航天所、研究所与高校的预研项目中进行开发研究,尚处于理论研究阶段。2011年,北京航空航天大学刘晚春[17]等人在SAE AS6802标准形成之际,对AS6802协议的时间同步机制进行了分析研究,并在特定的网络场景下,对其进行了仿真验证,为本设计提供了重要的理论基础;2013年,电子科技大学郭爱英[18]提出了一种基于FPGA的AS6802协议的实现方案,并对其进行了板级调试,但其在板级调试过程中,未能考虑实际情况下PHY侧引入时延,且缺少TTE的网络通信场景验证,尚不能投入实际应用之中;2017年,北京交通大学毛轶针对AS6802协议中定义的容错机制展开研究,设计了一套时间触发以太网容错时钟同步机制,并对其完成了仿真验证[19],为本设计中容错机制的引入,具有很好的借鉴作用。AS6802协议的高精度、高容错特性使其很好的适用于汽车、航天航空等具有高实时性、高可靠性需求的领域[20],因此对于AS6802协议进行研究,早日开发出能投入实际应用的产品,是国内学者急切需要解决的事情。

二、原理

AS6802 协议是一种可容错的高精度时间同步协议,其在以太网协议基础上,改变链路层的结构,增强以太网数据传输的时间确定性,提供了一种端到端的消息确定性传输服务。AS6802协议主要包括消息固化功能、压缩功能以及结团检测功能[22],同时基于其三种不同的功能组件,定义了相应的冷启动服务[23]、重启动服务以及时间同步服务。下图是AS6802实现的原理框图。

基于时间触发以太网的AS6802时间同步协议的设计与实现

图1 AS6802同步原理

三、实现

本课题由一台TTE交换机作为CM1、三台端系统板卡作为SM以及分析机构成时间同步测试平台[27]如图 2 所示。其中SM1、SM2和SM3由CPU配置时间同步单元的模式切换参数,启用SM同步功能实现,三个SM具有不同的成员向量以及透明时钟域值。CM1则由时间同步单元启动CM同步功能实现,虚线部分CM2由于实验室环境有限,未能加入测试。

基于时间触发以太网的AS6802时间同步协议的设计与实现

图2 时间同步测试平台

测试结果如图3、图4所示,SM发送时间点T0为72,接收时间点T3为342;CM接收时间点T1为5245,发送时间点为T2为5423;由步骤5的得到单侧PHY时延为23和透明时钟值为118。需注意的是各个时延单位为clk,系统时钟为125MHZ。

基于时间触发以太网的AS6802时间同步协议的设计与实现

图3 SM接收时间点与发送时间点捕获图

基于时间触发以太网的AS6802时间同步协议的设计与实现

图4 CM接收时间点与发送时间点捕获图

基于时间触发以太网的AS6802时间同步协议的设计与实现

图5 AS6802测试平台实际开发环境

四、调试问题

由于Modelsim功能仿真无法完成模拟实际板级调试的硬件环境,因此在板级调试过程中,往往因为代码风格、时序设计以及硬件问题会出现与预期不相符的结果,因此面对板级调试过程中遇到的问题,一般分析问题出现的原因,利用chipscope抓取关键信号,找出设计中逻辑出错或时序不满足的地方进行修改。下面是时间同步单元板级调试过程中出现的问题以及解决方法。

1.同步精度超过预期值

在同步精度测试过程中,发现每次不同开发板之间同步精度不一样,最高达到40ns左右,与预期20ns的时间精度值不相符。首先利用chipscope抓取CM上数据帧的接收时间点(receive_pit),发现接收时间点与预期的接收时间点的偏差值固定在一个相同数值上,得出结论SM到CM这段路径上的传输时延与预期存在偏差值,而偏差值出现原因在于不同开发板之间PHY侧引入时延不一样。因此,将各个开发板PHY时延进行自回环测试,其测试方法与透明时钟测试类似,不再累述。最后用得到的单侧PHY时延((T2-T1)/2),更新时间同步单元的透明时钟域内PHY时延参数,进而解决了因传输时延误差引起的同步精度超过预期值的问题。

2.数据帧丢失

在板级调试过程中,存在某些时间同步周期内,CM接收不到来自SM的数据帧丢失。时间同步单元出现丢帧情况,一般为接收FIFO模块检测到GMII接口过来数据错误信号(data_err)拉高,因此利用chipscope对接收FIFO模块data_err信号进行抓取,发现data_err未出现拉高情况且数据正常写入FIFO;接着对FIFO读逻辑的信号进行观测,在正常情况下,FIFO中控制读计数的prog_empty信号拉低后,读计数会从0开始计数,并拉高读使能,然而在丢帧的情况下,FIFO中控制读计数会出现任意跳变的情况;接着,检查prog_empty信号控制读计数的逻辑是否出错,发现由于接收FIFO是异步FIFO,而prog_empty信号是由写时钟域内的写指针与读时钟域内的读指针计算差值得到的,因此在读时钟域,用于逻辑控制时,需要对其进行跨时钟域处理,因此对prog_empty信号在读时钟域内打两拍,进行同步处理之后,数据帧正常接收。

3.PC分析机软件接收时间同步单元发送的数据帧时异常

CM在每个时间同步周期会将自身的同步信息以及各个SM与CM的同步偏差值封装成特定以太网帧发送给PC分析机,用于同步结果显示,而每次接收CM发送的以太网帧时,分析机会异常关闭的情况。分析原因可能是CM组帧不符合分析机要求的帧格式,因此用chipscope抓取CM发送给PC分析机以太网帧的数据信号与分析机要求的帧格式进行对比,发现帧格式符合要求;但由于时间同步周期初始为1ms,而分析机解析同步信息的处理时间在100ms左右,因此将CM处的同步信息以及同步偏差值,以100ms为周期进行捕获,并转发给PC分析机,最终分析机可以正常解析时间同步单元发送的数据帧。

4.重启动测试过程中SM连续同步失步跳变

SM理论上重启动之后,会进入同步状态,直到团检测通过,才会跳转至非同步状态,而重启动测试过程时,SM重启动完成后,又重新进入非同步状态。分析原因可能是网络中存在结团,导致结团检测通过,使SM跳转至非同步状态;因此用chipscope抓取SM结团检测通过信号(sync_clique_err),发现检测到该信号拉高,而失步一段时间后,SM又会从非同步态,跳转至同步态;得出问题原因在于结团检测阈值与重启动阈值不相等,此时SM接收到成员向量值等于重启动阈值,但小于结团检测阈值,因此将重启动阈值与同步检测阈值均设定为2后,重启动测试正常。

五、结束语

本论文根据实验室项目对时间同步功能需求以及AS6802协议的分析,采用FPGA+ARM的软硬件协同设计平台,自主设计和实现了一套集成了SM、SC和CM三个功能单元的时间同步单元,并完成了时间同步单元各个子模块的设计与实现,搭建仿真平台对时间同步单元各个关键子模块进行了功能仿真验证,然后在实验室硬件环境下,将时间同步单元分别切换至SM和CM同步模式后,进行了板级调试,并按照项目中规定测试内容,完成了对时间同步单元的功能测试,并将时间同步单元加入现有端系统和交换机中完成了联调测试,最终时间同步精度可到达20ns以内,与预期目标相符合。

六、演示视频

下面是两个端系统主机(FPGA开发板插在主机的PCIE插槽上)一对一双冗余连接实现同步后,可以互相点播对方主机上的视频。

视频加载中...
-->


分享到:


相關文章: