基于FPGA IP核的AFDX与ARINC429总线转换接口设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于FPGA IP核的AFDX与ARINC429总线转换接口设计刘连生;梁林林
【摘要】航空电子全双工交换式以太网(AFDX)是下一代航电系统的主干连接网,ARINC429是一种在航空电子系统领域中较成熟的总线标准,在某些分系统内仍然被采用;如何实现这两种总线的转换是目前航电系统的关键技术之一;利用设计的AFDX协议和ARINC429协议的IP核,完成了两种总线协议的相互转换;从AFDX 数据帧中解析出429数据字,或者将429数据字添加到AFDF协议各层首部组成AFDX帧;通过Modelsim SE的RTL级的仿真和FPGA的实物测试,结果表明AFDX协议帧和ARINC429数据字可以相互转换,验证了IP核及总线转换接口设计的正确性.
【期刊名称】《计算机测量与控制》
【年(卷),期】2015(023)008
【总页数】4页(P2766-2768,2772)
【关键词】AFDX;FPGA;IP核;ARINC429;协议转换
【作者】刘连生;梁林林
【作者单位】中国民航大学基础实验中心,天津300300;中国民航大学基础实验中心,天津300300
【正文语种】中文
【中图分类】TP334
AFDX是基于IEEE-803.2以太网技术发展的新型航空总线,其数据传输的确定性、数据传输速度的高速性等特点使其得到了快速的发展。

ARINC429总线是从20世纪70年代开始使用的机载数据总线,具有很高的成熟度,目前很多现役飞机的机载设备间通信依旧在使用这种总线。

怎样实现这两种总线协议的相互转换,对于构建新型航电系统、航空总线的过渡具有重要意义。

本文是基于ARINC-664的第
7部分[1]:允许其他总线标准映射到网络的基础上设计了这个系统,实现了AFDX和ARINC429总线的相互转接。

系统的各个设计环节都通过了RTL级和FPGA的实物验证,保证了系统的可靠性和可行性。

针对系统本文进行了软件和硬件两个方面的设计,如图1。

系统充分利用了可编程逻辑器件和IP内核的优势,搭建了基于FPGA的嵌入式IP软核的SOPC系统,
软核处理器采用Altera公司的Nios II核,硬件包括:8 MB的FLASH、8 MB的SDRAM、JTAG接口、HI-8583芯片和两个PHY,PHY芯片主要实现以太网的
物理层接口功能。

Nios II有一套通用外设和接口库,用户可以快速的完成嵌入式开发。

SDRAM用
作双向的数据缓存器,可以解决两种总线协议速率不同的问题。

中断控制器监视ADFX端系统和ARINC429端点系统接收数据的中断时刻,及管理两个端系统的
中断顺序,本系统规定ARINC429端点系统接收部分HF1的中断优先级大于HF2,ADFX端系统接收部分的中断优先级大于ARINC429端点系统的接收部分。

AFDX 控制器包括AFDX IP核和MAC Hard,AFDX IP核完成AFDX的相关协议[2],MAC Hard为AFDX提供以太网MAC功能。

HI-8583控制器完成HI-8583芯片的所有控制逻辑,实现Avalon总线接口,ARINC429相关协议MAC模块是嵌入在FPGA硬核中的。

本系统的重点在于设计HI-8583控制器和AFDX协议的
IP核。

此系统完成了AFDX端系统和ARINC429端节点两部分功能,实现了两种总线协
议的自由通信。

中断控制器监视着两个端系统的接收端。

当有ARINC429数据输
入时,HI-8583控制器会将收到的数据缓存于SDRAM,AFDX IP核会通过Avalon接口访问数据,封装调度帧后发送到AFDX互连的网络。

当接收到含有ARINC429数据信息的网络帧时,AFDX IP核会将帧解析后缓存在SDRAM,同
样HI-8583控制器会将数据发送给HI-8583芯片,从而实现了两种协议的桥连。

AFDX端系统为航空电子子系统到AFDX网络的连接提供了“接口”[3]。

AFDX网络不同于普通以太网的特性主要是端系统实现了虚拟链路和冗余管理两部分功能,从而增加了系统的可靠性和确定性。

本系统设计的AFDX协议的IP内核主要包括发送部分、接收部分、配置寄存器管理三个部分。

具体设计如图2。

虚拟链路的调度算法本系统采用CPU端来完成,用C语言来编写算法,降低了开发的难度性,易于实现。

调度算法决定了帧传输的最佳顺序。

2.1 发送模块
发送模块要实现以下功能:按照端系统寄存器的配置,流量整形各条虚链路上的数据帧,在各虚链路之间进行调度以适应给定的虚链接带宽的限制,然后根据配置信息设置各虚链路的冗余状态,最后将其帧发往MAC A、MAC B模块[4]。

1)调度模块包含有调度和流量整形两个环节,调度器从配置寄存器中读取出
VL_n(虚拟链路号)及BAG(带宽分配间隙)、Jitter Max(最大抖动时间)等,然后发给流量整形器,等待流量整形中的配置信息的反馈。

流量整形接收到虚拟链路号后开始计时,直到该帧的通信资源满足系统要求后,置位发送使能信号,组织调度帧管理模块。

2)帧管理部分主要是将SDRAM中的ARINC429数据根据调度模块的控制信息
封装UDP、IP和以太网头,并放在需要传输的虚连接的队伍中。

根据调度模块的
使能将待发送帧根据冗余性的设置写入相应MAC的发送缓存中。

3)发送冗余管理功能是根据虚拟链路的冗余管理确定帧的传输方式,包括只在网
络A传输、只在网络B传输、在网A和网络B传输这三种方式,如果需要冗余发送,则需复制AFDX帧,然后进行相应的操作。

配置寄存器包含了终端节点所有的配置信息,Jitter Max、BAG、Redundany
(冗余)、Lmax(最大帧长度)、VL_n都来自有CPU调度算法处理后发送来的数据。

配置寄存器解析出调度算法中的信息。

CPU分两次将控制信息写入,当配
置寄存器模块解析出控制信息后,其会向发送部分的调度模块发出一个WE(写使能)。

当系统接收到来自配置寄存器的写使能后,调度管理模块会去主动接收控制信息,包括BAG,Redundany等。

分析控制信息后调度模块会使能流量调整模
块(flow_en=1),之后开始计数来完成算法中的时间配置信息,当完成后会使
能帧管理部分(T_en A=1),帧管理模块封装的ARINC429数据的帧的发送顺
序及时间间隔等信息。

帧管理会将帧发送到MAC缓存。

图3将整个发送部分进行了RTL级的仿真,实现了从SDRAM连续取出两个ARINC429数据,通过接收CPU的调度算法,并封装帧、冗余管理后发送到MAC。

经计算帧的长度为72Bytes,本系统的MAC取32位宽度,系统中定义了一个计数器,当计数器计到18时表明一帧数据已经写入MAC缓存。

从仿真图中可以看出AFDX帧的第5、6Bytes是虚拟链路号,第43、44、45、46Bytes是AFDX的有效载荷。

2.2 接收模块
接收部分的MAC的功能由FPGA上MAC硬核来完成。

MAC接收到AFDX帧后,先去校验帧,并删除帧校验序列,然后将剩余部分放在接收缓存中。

接收部分会取出缓存中的帧并进行完整性检查和冗余管理,最后对帧按照AFDX协议作相应的
修改后存入缓存,供HI-8583控制器读取并做相应的处理。

1)完整性检查:AFDX端系统使用SN对虚拟链路上传输的帧进行顺序编号,检
测网络端口和虚拟链接的接收终端系统连续帧的序列号,判断虚拟链路接收的帧序
列号是否完整有效。

SN只有在以下三种情况下才认为帧是完整的:SN=0、SN =PSN⊕1、SN=PSN⊕2,其中PSN为虚拟链路接收到帧的序号。

2)冗余管理:冗余性检查那些经过了完整性检查的合法帧,当终端接收到第一个有效帧时,其会传送给应用程序,一旦系统接收到这个有效的帧,别的相同顺序号的帧会被舍弃即此时SN=PSN。

3)帧管理:将经过了完整性检查和冗余处理后的AFDX帧进行IP校验和,然后对UDP信息包按照AFDX协议规范重新组装。

得到系统所需要的ARINC429数据,并将数据存于SDRAM中,缓存起来,等待相应的处理[5]。

当AFDX端系统检测到来自AFDX网络发送来的以太网帧时,会产生中断(本系统设置上升沿中断),接收部分的完整性检测从MAC缓存中取走帧进行检测。

检测没有错误时输出冗余检测的使能信号(intech=1),同样冗余检测正确后输出帧管理的使能信号(Redundanych=1),帧管理会解析AFDX帧中的
ARINC429数据,之后将数据存入SDRAM中,输出信号(outdata_en=1)使能HI-8583控制器读取ARINC429数据。

图4是AFDX IP核接收部分的RTL级仿真,接收的帧是AFDX IP核发送模块发送到MAC中缓存的帧。

图中将AFDX 帧中的ARINC429数据(6ff8ae23)解析出来。

HI-8583芯片直接和FPGA引脚相连,其可以自动完成电平转换、自动产生字与字之间的间隔、具有独立的双向接收和发送接口、串行数据速率可设置、自动完成校验位等功能[6]。

HI-8583控制器是本系统创建的基于Avalon总线的IP内核,在用户端可以通过Avalon总线接口来访问HI-8583芯片,而不需要关心HI-8583的内部时序和操作细节,并且具有很好的移植性。

如图5。

3.1 发送模块
发送模块主要实现从SDRAM取走ARINC429数据,配置HI-8583的时序,然后将ARINC429数据送入到HI-8583芯片的缓存中并使能发送。

首先对HI-8583进行初始化,设置其为发送模式,即向寄存器中写入31e1,并
且在这期间CWSTR必须保持至少80 ns的低电平。

本系统保持了100 ns,符合
其时序的要求。

ARINC429数据是32位,但是HI-8583只有16位的数据总线,因此一次只可以写16位,数据需要分两次写入,先写入高位。

首先PL1保持至少80 ns的低电平时写入ARINC429数据的高16位,而后置PL1为高电平。

PL2
保持至少80 ns的低电平时送入ARINC429数据的低16位。

而后置PL2为高电平。

PL1和PL2的低电平时刻至少要间隔85 ns,这时ARINC429数据已经写入
到HI-858中了,最后置ENTX为低电平启动HI-8583发送数据使能。

CLK为FPGA为HI-8583提供的时钟信号。

图6为发送模块的RTL级仿真,给出了发送一个ARINC429数据的全部过程。

Indata为要发送的ARINC429数据,data为发送到HI-8583数据线上的数据。

PL1,PL2,CWSTR,TXEN,clk分别接HI-8583芯片的PL1,PL2,CWSTR,TX,clk引脚。

从图中可以看出,发送部分设计的时序完全符合HI-8583的时序要求。

3.2 接收模块
接收模块主要实现从HI-8583已经接收完成的缓存中将ARINC429数据取走,
并存在SDRAM中,等待后续的操作。

系统首先监视中断信号HF,当HF出现低电平时,系统进去中断模式,开始从HI -8583的FIFO中取走ARINC429数据,HI-8583只有16位数据线,所以要取两次,先取高位。

当中断出现后置SEL为低电平,而后置EN为低电平,间隔至
少是10 ns。

之后置EN为高电平,读走ARINC429数据的高16位。

EN高电平
至少要保持60 ns,数据才可以正确接收。

而后再置SEL为高电平,EN为低电平,读走ARINC429数据的低16位,EN的低电平至少要保持60 ns。

CLK为FPGA
为HI-8583提供的时钟信号。

图7是接收模块的仿真,当中断到来时取走一个ARINC429数据的全部过程。

Data_ax为中断后接收到的ARINC429数据。

SEL,En,HF分别接HI-8583器件SEL,En,HF。

HF为系统的中断源,并且下降沿中断。

从图中可以看出接收部分设计的时序符合HI-8583的时序要求。

当32位的ARINC429数据全部从HI
-8583取走后产生一个rd_en的低电平,表明数据已接收完成。

在软硬件协同设计完成后把EDK工具生成的网表导入Modesim SE软件中进行仿真,本系统对AFDX的IP核的发送和接收部分、HI-8583 IP核的发送和接收部
分分别进行了RTL级的仿真,验证了系统设计的正确性和可行性。

通过仿真验证
可以看出本系统的设计实现了两种协议总线的转接,ARINC429数据通过系统被
封装成AFDX帧并调度发送到AFDX的互联网络,从AFDX端系统接收到数据解
析出系统需要的ARINC429数据。

将编译好的系统下载到FLASH中,并设置进入系统的复位地址,编写用户端程序,将编译生成的烧写文件写入Alter公司的EP2C20Q240C8芯片上,连接硬件PHY 和HI-8583。

将系统连接在AFDX网络交换机端口和ARINC429总线系统之间,通过429板卡任意向HI-8583器件发送一个ARINC429数据,AFDX网络接收
到发送来的ARINC429数据帧后再将这个帧发送给系统的AFDX端,而后在HI-8583的TXOUT端可以接收到这个ARINC429数据,从而实现了数据的互传。

本系统采用429板卡将ARINC429数据0x0ff0aa55发送到HI-8583的接收端,设置传输速率为低速12.5 ksps,奇校验,同时观察HI-8583的TXOUT端的波
形变化,从波形中可以看出信号为双极性归零码,周期为80μs,频率为12.5 k Hz,最大电压为6.80 V,最小电压为-6.72 V,上升沿与下降沿时间均为8.6 ms,字间隔为4Bit,ARINC429数据为0x8ff0aa55,完全符合ARINC429数据规范
和航空数据总线标准,同样系统也可以从AFDX端来验证系统是否满足AFDX端
系统的性能要求及系统的正确性。

至此实际验证了FPGA各个IP内核特别是本系
统设计的AFDX控制器、HI-8583控制器的正确性、可靠性。

本文介绍了AFDX和ARINC429总线结构和协议规范,重点论述了基于FPGA的AFDX IP核和HI-8583 IP核的设计与实现,首先从仿真方面验证了IP核的正确性和可靠性,然后将IP核用于与系统的实现中,完成了整个系统的设计,在硬件上对系统进行了试验与分析。

无论从软件还是硬件上均采用模块化的设计思想,有利于系统以后的研发和移植。

系统的设计方案兼备了硬件的强大并行处理能力及软件的灵活性和可编程性,具有方便、快捷、高效的优点,为AFDX总线和
ARINC429总线的通信提供了一个很好的参考方案。

【相关文献】
[1]Airlines Electronic Engineering Committee.Air-craft data network part 7avionics full duplex switched Ethernet(AFDX)network[Z].ARINC 664.2005.
[2]张志,翟正军,姚方圆.基于FPGA的AFDX端系统协议芯片的设计与实现[J].计算机测量与控制,2010,18(2):422 -424.
[3]支超有.机载设备总线技术及其应用[M].北京:国防工业出版社,2009.
[4]段晓峰,马克杰,周江.基于FPGA的AFDX软硬件协同设计[J].计算机系统应用,2014,23(9):18-25.
[5]Ding L,Song D,Zeng X X.The research of AFDX system simulation model
[A].multimedia technology(ICMT),2010 International Conference[C].2010.
[6]HI-8583,ARINC429 System on a Chip,HOLT Integrated Circuits[Z].。

相关文档
最新文档