当前位置:首页 期刊杂志

基于FC的自定义高速主机接口单元设计与实现

时间:2024-07-28

孟 博,蔡 明,张 楠

(1.中航工业西安航空计算技术研究所,陕西 西安 710068;2.空装驻西安地区第六军事代表室, 陕西 西安 710068)

0 引言

作为一种高速串行的总线网络,FC网络主要用于大数据量传输场合。当前机载航电系统多采用综合化体系架构,具有各类传感器、数字化地图和视频影像显示等功能的综合处理能力,要求网络必须提供足够大的通信带宽和高可靠安全性能。为了达到现代机载航电系统高带宽、低延迟、低误码率、高可靠性和强抗干扰能力等要求,现代主要机载航电系统均选用FC作为航电统一网络,大大提高了飞机性能指标[1-3]。本文设计了一种自定义高速串行主机FC接口单元,该串行主机接口可以实现FPGA GTP到GTP的高速数据通信,无需外部处理器介入,具有更高的通信效率。

1 系统架构

自定义高速串行主机FC接口单元应用于机载航电通信环境,作为机载航电通信系统的FC通信接口使用,支持FC-AE-ASM通信协议[4,5]。该接口单元对外提供高速差分串行数据主机接口和FC通信接口,通过高速差分串行数据主机接口接收前端机载系统内部载板发送的数据,通过FC通信接口实现与后端机载数据记录系统之间的点到点数据传输,FC接口单元系统架构如图1所示。

FC接口单元的主要硬件配置和通信接口包括时钟电路、复位电路、离散量接口、自定义主机接口和FC通信接口等。FC接口单元以FPGA为核心实现协议转换功能,该FPGA集成度高、器件密度大、速度快、片上存储资源丰富,具有多用户IO管脚和多路高速GTP,支持100 Mbps~3.75 Gbps多种通信速率,且速率可动态配置,支持RapidIO、QDR等多种高速通信接口编码和电平特性,能够满足设计需求,可以实现复杂的时序与组合逻辑电路功能。

图1 FC接口单元系统架构

2 设计方案

2.1 自定义主机接口

FC接口单元通过自定义高速串行主机接口实现与前端机载系统的数据交互。该高速串行接口将承载12路1394总线数据、1路维护数据以及1路状态数据内容的数据注入。该接口单元高速串行主机接口根据接口定义完成输入数据采集,并依据通信配置信息,进行FC-AE-ASM消息的数据组帧,并提交FC发送单元进行发送。

自定义高速串行主机接口采用FPGA内部硬核GTP实现,为1 Lane GTP到GTP的自定义主机接口,使用差分信号,单向通信速率2.125 Gbps。自定义高速串行主机接口数据格式见表1,其中数据帧内容包括数据首帧、数据中间帧、数据尾帧、数据帧分片序号、数据帧分片长度、数据帧分片内容和数据总长度。在设计和实现时,FC接口单元与前端机载系统需采用相同的GTP接口配置,GTP接收端采用AC耦合。

表1 自定义高速串行主机接口数据格式

GTP核实现高速串行链路上的10B码流和内部逻辑使用的8B并行数据之间的转换,GTP接收状态机按照既定的接收规则接收前端机载系统传来的数据帧,将接收到的数据帧进行CRC校验以及各种错误检测,最后将接收的正确数据帧存放在GTP接收缓冲区中。错误检测单元根据接收到的数据帧以及状态机当前状态判断接收的数据是否正确,如果检测到错误,则立即通知状态机进行相应的状态跳转,数据帧错误状态包括数据EOF无效、数据CRC无效、数据长度无效、帧标识无效、帧序号无效和数据接收缓冲区满等。GTP接收缓冲区管理采用轮流存放方式,GTP接收缓冲区包括4个缓冲buffer,每个缓冲buffer可容纳一个最大的自定义数据帧,大小为2096个字节。缓冲区采用简单双口RAM例化,写入端连接GTP接收状态机,读出端连接ASM消息发送控制单元。

2.2 FC接口

FC通信接口实现与后端机载数据记录系统之间的点到点数据传输,该FC接口单元从主机接口GTP接收缓冲区中读取数据帧,按照ASM协议要求进行组帧,然后将数据帧存放在MAC发送缓冲区中,再从MAC发送缓冲区中读取并发送至光纤链路。该FC接口满足FC-AE-ASM协议要求,通信速率2.125 Gbps,全双工通信,支持点到点拓扑结构,支持3类服务,支持不小于80%线速ASM协议流数据发送带宽,支持1路流数据块消息发送通道。

MAC发送缓冲区与主机接口GTP接收缓冲区类似,采用顺序轮流的使用方式,包括8个缓冲buffer,每个缓冲buffer可容纳一个最大FC帧,大小为2148个字节,写入端连接ASM消息发送控制单元,读出端连接MAC发送控制单元。

3 测试验证

使用FC接口单元作为数据激励源搭建测试验证环境,将激励源的FC接口单元数据发送端和被测FC接口单元的主机接口接收端连接,同时使用高速数据线缆将激励源和被测模块两端的FC接口连接。测试验证环境示意图如图2所示。

图2 测试验证环境示意图

数据激励源母板集成模块连接器和RS232串口驱动器,该驱动器实现测试设备的UART串口功能。测试逻辑使用伪随机码并按照约定格式发送,启动发送由逻辑集成的MicroBlaze处理器控制。接口单元接收到数据后,由逻辑进行比对,将正确和错误结果使用不同的中断上报给MicroBlaze处理器,处理器响应中断,并进行统计计数,通过UART串口上报PC机打印结果。

FC接口单元上电后,MicroBlaze处理器运行,设置软件计数变量为0,读取FC链路状态,在判断链路状态正常情况下,发送第一次测试命令到测试逻辑,测试逻辑启动伪随机码逻辑,并在发送的同时填入到数据比较缓存中。FC接口单元接收FC数据,并将接收到的数据暂存于数据接收缓存中,在FC数据接收完成后,将接收缓存中的数据和测试逻辑比较缓存中的数据通过硬件进行读取比较,比较完成后,根据结果上报中断到处理器。处理器响应中断,按照约定频率,比如10次正确输出一次,单次错误输出并停止测试,通过UART输出测试结果,并在PC机端观察串口输出结果,并以此作为合格判据。

4 结论

结合现代机载航电系统对于数据传输带宽、数据传输效率和安全可靠性等方面的高要求,本文设计了一种自定义高速串行主机FC接口单元,该串行主机接口采用FPGA内部硬核GTP,可以实现FPGA GTP到GTP的高速数据通信,无需外部处理器介入,具有更高的通信效率。最后搭建测试平台,利用MicroBlaze处理器开发功能测试逻辑。经测试验证和工程应用表明,该FC接口单元各项性能指标均符合主机系统要求,应用前景广泛。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!