公务员期刊网 论文中心 正文

机载设备数据交叉传输方案设计分析

机载设备数据交叉传输方案设计分析

摘要:随着机载设备高集成和高综合化的发展,其可靠性要求越来越高,为了提高双余度计算机的可靠性和处理性能,文章针对机载设备多通道数据高速共享需求设计了一种基于FPGA的具有通道隔离功能的数据交叉传输方案,该方案利用FPGA并行工作的优点实现采集数据自动交叉传输,解放了CPU资源。平台仿真验证和板级测试结果表明该方案能够有效提高整机的可靠性和软件运行效率。

关键词:CCDL;双余度;SPI通讯;时序设计

引言

在当前的嵌入式计算机模块设计中,随着模块集成度的提高,大规模FPGA因为其具备可编程,性能高,且利于集成等优势,得到广泛使用。文章针对机电管理计算机系统,设计了一种基于FPGA实现的板间CCDL电路,它能实现板间双通道采集数据的实时共享和控制指令的热备份,具有数据传输可靠,防止故障蔓延等功能[1]。

1方案设计

CCDL功能主要用于RIU内部双通道之间的数据交互,由于双通道位于同一机箱内部,CCDL设计应尽量满足简单、可靠,且当通道故障时应将故障隔离,防止故障蔓延[2]。基于FPGA的总线双余度硬件数据交叉传输系统方案如图1所示,通道A和通道B为同一硬件模块上的两部分独立电路,两个通道之间通过数字隔离器实现硬件电路隔离并提供数据传输通路。该方案交联信号在产品内部具有如下特点:a)每个通道独立采集输入信号;b)每个通道独立进行信号输出;c)接口采集数据通过CCDL实现自动转发,两个通道都可以获取所有采集接口的数据;每个通道的FPGA经过输出表决策略通过输出接口进行输出控制,当本通道总线有效且CPU有效时,采信本通道输出命令;当本通道总线失效或CPU失效时,采信经CCDL传输过来的对方通道的输出命令。

2硬件电路设计

基于FPGA的CCDL电路可以实现数据的自动转发,该技术的实现使得CPU对底层数据的访问实现透明化操作,通道内FPGA采集到所有数据后,按照固定周期将数据自动发送到对方通道,这样每个通道的CPU均可以访问到两个通道的所有采集数据及输出接口的输出状态。如图2所示,A通道的采集数据一方面存储在FPGA_A中供本通道CPU访问,另一方面通过CCDL发送器发送至B通道供B通道CPU访问;A通道的输出控制一方面可以接收本通道CPU发出的控制指令,另一方面也可以通过CCDL接收器接收B通道CPU发出的指令。同样的,B通道也可以接收A通道的采集数据且为A通道发送输出控制指令。在上述数据交叉共享的基础上结合余度处理策略即可实现整机的双余度管理。由于SPI总线可以实现20M甚至更高的传输速率,根据参考文献[3]的研究成果,基于FPGA的SPI通讯可通过扩展数据线进一步提高数据传输速率,因此可以保证数据传输速率远大于外部传感器数据变化速率,能够满足机电系统的实时性要求。

3FPGA逻辑设计与验证

3.1时序设计

两个通道之间通过SPI串行总线通讯,每个通道FPGA的发送单元为SPI主机,FPGA的接收单元为SPI从机,SPI采用3线制进行通讯。如图3所示,为SPI串行通讯的时序图,每一帧数据流由26bit数据组成,MSB优先,其中前8bit为数据帧地址,第10、11bit为保留位,最后16bit为帧数据。每一帧数据的首个数据位在CS信号下降沿后的第一个SCK上升沿有效,随后的25个数据位在SCK的下降沿逐个输出并在SCK的上升沿保持有效。SPI主机定时发送数据给SPI从机,从机接收数据并存储在FPGA内部的DPRAM中供CPU访问。CCDL数据传输过程由FPGA周期自主完成,不需要CPU参与,解放了CPU资源。

3.2仿真验证

为了方便验证在激励文件中,将CCDL的A、B通道SPI接口在激励文件中进行连接。如图4所示,在系统复位之后。CCDL控制器A、B通道的数据发送模块依次从本通道FPGA内部各个模块读取缓存数据,按照SPI协议自动将数据周期地发送至对方通道的数据接收模块,完成数据自动交叉传输。SPI发送模块将数据按照8位地址+2位保留+16位数据的格式进行编码发送,串行数据在时钟的下降沿更新,上升沿保持。如图5所示,第1帧数据包地址为0x01,数据为0x6311,保留位为0b11,串行数据线上的发送数据与上述数据定义一致。由于CCDL的发送接口和接收接口进行了回绕,SPI发送端输出后,接收端同时也收到了串行数据,SPI接收端在串行时钟的上升沿对串行数据进行采样,当片选信号撤销即一帧数据接收完成后,按照发送的定义的数据格式对接收数据进行解析。如图5所示,串行数据线上接收到的26位数据为0x0076311,解析后地址信息为0x01,数据信息为0x6311,保留位为0b11,接收到的数据与发送端数据一致。

4结束语

文章针对机载设备双余度系统中的数据共享设计了一种数据交叉传输方案,该方案硬件上采用数字隔离器进行通道之间的电气隔离,防止故障蔓延,数据传输采用FPGA实现数据编码和解码并按照SPI传输协议进行发送和接收,CCDL输出传输过程完全由FPGA自主完成,解放了CPU资源有效提升了余度处理计算机的性能。

参考文献

[1]刘明,朱守园,王婷.一种双余度交叉通道链路的设计与实现[J].航空计算技术,2019,49(01):106-108+111..

[2]周勇,王博,白晨.一种基于1394B的CCDL设计与实现[J].信息通信,2019(05):291-292.

[3]孙少华,屈盼让,肖鹏,李庆楠.基于多FPGA的增强型SPI通信研究[J].电子测试,2018(04):83-84+61.

作者:孙少华 屈盼让 蔡晓乐 单位:航空工业西安航空计算技术研究所