摘 要:AFDX端系统核心芯片及技术是实现AFDX网络通信的基础和关键,广泛应用在航空领域的网络通信和控制系统中。在深入解读、分析AFDX网络总线协议及通信机理上,提出了一种端系统芯片的设计方案,详细说明了端系统芯片的架构设计、工作原理及技术优势。该型AFDX网络端系统SoC芯片满足航空系统小型化、低功耗的设计要求,芯片内部集成ARM922T处理器、AFDX网络终端协议处理单元、双余度10/100M AFDX MAC端口以及基于DMA的高性能数据传输PCI总线,在片上实现UDP/IP协议栈,是一款为大型客机机载设备提供高速互联网络的终端系统SoC芯片。
0 引言
AFDX网络采用全双工、双余度、虚链路、带宽固定分配、完整性检查和余度管理等措施,使之满足航空电子系统通信对高带宽、确定性、实时性和高可靠的通信服务要求[1,2]。
AFDX端系统作为AFDX网络的核心组成部分,广泛应用于引擎、飞行控制、导航以及其他对操作平台至关重要的系统中[3]。
本文在深入理解AFDX协议,掌握关键技术的基础上,针对AFDX网络各节点之间的通信设计并实现了一款协议处理SoC芯片,该芯片是一款完全具有自主知识产权的核心AFDX网络端系统芯片,实现了ARINC664协议所规定的技术指标,是从标准协议理解、系统定义到芯片设计与验证、封装、测试等完全自主研制的系统级芯片。
1 芯片设计与实现
1.1 芯片功能
AFDX端系统芯片实现了AFDX网络端系统的链路层、网络层(IP协议)、传输层(UDP协议)以及三类通信端口(采样、队列、SAP)的全部功能,采用32位PCI总线与主机进行通信和数据传输,通过两个独立可配置的10 M/100 M MAC与AFDX网络互联,实现双余度网络控制。主要功能:(1)内嵌低功耗ARM922T处理器,工作频率200 MHz;(2)具有完整的AFDX网络协议栈功能;(3)发送支持128个VL(含4个Sub-VL),发送BAG支持2K(K=-1,0,1,…,7);(4)接收支持4 096个VL,技术延迟不大于150 μs;(5)支持完整性检查和余度管理;(6)通过硬件实现快速发送调度和虚拟链路过滤;(7)具有64位高分辨率时间同步;(8)支持采样、列队和服务访问端口配置;(9)支持多种MIB统计(CRC、非字节对齐、超短帧、超长帧、VLID错、常数域错等);(10)内核电压1.8 V,I/O电压3.3 V。
1.2 芯片架构设计
AFDX网络端系统芯片架构设计采用SoC片上系统实现,提出一种专用数据通道结构、控制流与数据流分开的设计,在以太网接口与PCI总线接口之间构建专用、快速的协议处理通道,数据收发不通过片上总线,处理器只是通过片上总线控制数据的解析和收发,专用数据通道内部设置多个控制器和命令链表队列,在不需要片上处理器和主机过多干预的情况下,实现数据的自动收发和状态更新。AFDX网络端系统芯片架构见图1[4]。
1.2.1 硬件设计
AFDX网络端系统芯片的硬件设计主要包括AFDX协议处理单元、处理器、存储器、外围接口控制、PCI主机接口等。
AFDX协议处理单元是AFDX网络端系统芯片设计的核心,也被称为中央处理单元(CCU),负责完成PCI接口与两个独立的MAC接口之间的数据接收和发送。CCU结合片上处理器以及AFDX协议堆栈嵌入式软件,对从MAC端口接收的数据进行完整性检查和余度管理,完成数据与包头的分离、数据部分校验和的计算,为片上处理器进行协议栈处理提供必要信息。CCU发送部分能支持128路VL同时工作,接收部分支持4 096个VL,采用位图寄存器实现了各路VL对片内存储器的共用。CCU内部原理框图如图2所示。
芯片采用ARM922T处理器作为其核心处理器,端系统芯片集成的微处理器及在处理器上运行的协议栈软件提高了芯片的智能化程度,不再需要主机干预,自动完成下层协议的打包或解包,大大减少主机处理器的负担,提高消息的处理速度[5]。
存储器采用SDRAM控制器和外部虚线(External Bus Interface,EBI)接口进行控制,EBI提供了一个灵活的外部存储器接口,用来确保外部设备和嵌入式存储器控制器之间的数据传输[6]。
外围接口控制包括片上总线、中断控制器、DMA控制器、MAC介质访问控制器、PHY配置管理器、定时控制器、看门狗、通用输入输出接口、UART接口、调试接口等。
PCI接口主要实现了AFDX终端系统与PCI总线的连接,与PCI总线上的主机内存进行数据交换,PCI接口包含3个不同类型的通道:DMA类型的主通道、寄存器类型的从通道0和FIFO类型的从通道1。
1.2.2 软件设计
为满足以端系统芯片为核心构建的AFDX网络端系统应用需求,基于ARINC664通信协议,对芯片各模块的功能与性能设计进行分析,配套规划的软件包括验证软件和功能软件。
验证软件依据验证规范进行设计,包括芯片验证过程中的虚拟原型验证、FPGA原型验证及样片验证,功能覆盖芯片设计的每一个功能、性能点,有效保障了芯片设计的正确性。功能软件为芯片系统应用时为用户提供的软件,内容涉及底层传输软件、主机驱动软件,结构图如图3所示。
底层传输软件:主要实现了片上逻辑初始化、配置表加载与查询、中断处理、调试与错误信息处理、UDP/IP协议解析功能和采样、队列和SAP端口的数据收发等功能。
主机驱动软件:提供上层应用软件和底层传输软件的数据通信通路,包括寄存器的读写访问、通信端口的创建与管理、主机与AFDX网络端系统外部存储器之间的数据搬运等功能。
1.3 工作原理
端系统芯片协议处理由下向上包括:物理链路层、网络层(IP协议)、传输层(UDP协议)。在物理链路层,发送端通过虚拟链路(Virtual Link)和带宽分配间隙(Bandwidth Allocation Gap)进行交通整形,接收端通过完整性检查(IC)和冗余管理对接收数据进行过滤和检查;在网络层和传输层,采用成熟的UDP/IP协议对消息进行处理,向上则通过采样、队列、SAP三类端口与应用层进行数据传输[7]。
AFDX网络端系统芯片通过片上处理器运行AFDX协议堆栈,从PCI接口获取消息信息,驱动PCI桥,直接从主机内存提取数据并完成UDP、IP协议的封装,AFDX端系统芯片上实现了发送调度、错误注入、SN号添加和MAC数据发送。芯片集成了接收帧错误检查、网络过滤、完整性检查和余度管理等功能,当接收到一帧有效数据,接收控制电路通过中断通知片上微处理器进行协议处理,包括帧的解包、分片的组装,最终根据通信配置表将处理好的消息写到主机内存,通知主机CPU进行处理。这种方式大大减少了CPU的载荷,提高主机系统性能,在高载荷网络中尤为重要[8]。
1.4 物理实现
由于完全层次化设计流程在模块接口处优化能力有缺陷,因此,AFDX网络端系统芯片在处理器物理设计时局部采用半层次化设计流程,有利于更好地优化模块边界逻辑,半层次化设计流程仍然采用自动布局布线工具,通过人工布局、时钟树生成和时序调整来主导芯片版图设计。对于复杂模块,首先进行模块级布局和逻辑综合,在完成post-place及post-clock步骤之后集成到顶层,顶层仍然进行flatten时序优化及布线优化。端系统芯片版图如图4所示,该版图设计已申请并获得国家布图保护专利授权。
AFDX网络端系统芯片采用CBGA480封装形式,设计规模为670万门,达到0.18 μm CMOS工艺设计,芯片管芯总共有482个引脚,引线最高工作频率为100 MHz。
2 技术优势
从国外公司提供的AFDX网络端系统产品来看,国外公司基本采用FPGA芯片加嵌入式处理器芯片的解决方案,这种实现方式需要占用大量系统资源,处理效率较低,设计复杂,功耗较大。
AFDX端系统芯片采用片上处理器,通过PCI总线控制器直接与主机存储器进行数据交换,大大降低了主机的系统开销,缩短了协议处理的时间和数据拷贝。与国外同类产品相比,具有功耗低、面积小、延迟小、功能全等特点,主要表现在:(1)功耗小于1 W;(2)尺寸仅为37.5 mm×37.5 mm;(3)发送技术延时参数平均69 μs,接收技术延迟参数平均4 μs,远远小于ARINC664标准150 μs的设计要求;(4)支持10/100 M的网络传输速率;(5)符合ARINC664协议规范。
基于该芯片研制的PMC卡与国外同类产品相比具有以下优势:(1)器件数目减少到1/2;(2)可靠性提高1/4;(3)重量减轻到1/2;(4)器件功耗为1/3。
3 芯片验证
AFDX网络端系统芯片已经过ATE测试、功能性能测试、协议符合性测试、系统应用验证和定型评测,实测流量达到了100 Mb/s全载荷发送,满足ARINC664 Part7协议要求。具体测试内容及测试结果如表1所示。
4 总结
AFDX端系统芯片是一款完全符合ARINC664协议、具有自主知识产权的协议处理芯片,该芯片设计新颖,功耗低,面积小,功能性能稳定可靠,满足AFDX网络系统应用要求。该芯片已进行了ATE、功能性能、协议符合性、系统应用等充分验证。验证结果表明,该芯片符合ARINC664协议要求,功能、性能满足AFDX网络实时性、确定性的系统要求。该芯片协议处理软件已经过GJB5000测试,芯片技术成熟,已成功定型,对后续基于该芯片的模块设计及应用解决方案具有重要的参考价值。
参考文献
[1] ARINC664.Aircraft data network-Part7:deterministic networks[S].ARINC,2003.
[2] 田靖,田泽.AFDX-ES SoC虚拟仿真平台的构建与应用[J].计算机技术与发展,2010,20(8):192-194.
[3] 李大鹏,王世奎,李雯.AFDX端系统发送单元的研究与实现[J].航空计算技术,2012,42(2):128-131.
[4] 张志,翟正军,姚方圆.基于FPGA的AFDX端系统协议芯片的设计与实现[J].计算机测量与控制,2010,18(2):422-425.
[5] 杨海波,田泽,蔡叶芳,等.FC IP软核的仿真与验证[J].计算机技术与发展,2009,19(9):168-172.
[6] 张荣华,田泽,韩炜.AFDX网络端系统芯片架构的研究与设计[J].计算机技术与发展,2011,21(8):166-168.
[7] 刘芸,王红春,王兵.AFDX端系统协议软件设计与实现[J].电光与控制,2012,19(11):71-76.
[8] 许燕婷.AFDX端系统协议栈虚拟链路层分析及仿真研究[D].上海:上海交通大学,2011.