基于反射内存的多功能通讯板卡研制
扫描二维码
随时随地手机看文章
引 言
随着装备性能的提高,装备的控制周期已达到 1 ms 甚至百微秒量级 [1]。因此对虚拟仿真系统中通常采用的反射内存网络进行数据传输。虚拟模型之间通过网络传递数据,虚拟模型与实装模型之间通过相应的串行接口卡进行通讯,例如 RS 422、1553B 通讯板卡。因此若能直接实现反射内存网中数据与串行接口之间的直接数据传输[2],将极大地提高通讯卡的通用性和仿真系统的实时性[3]。
当今市面上常见的反射内存网络产品无法单独满足虚拟仿真系统对网络功能的需求,所以基于反射内存的多功能通讯模块的研制对于半实物仿真系统有着十分重要的意义。
1 多功能通讯模块原理及工作模式
反射内存网络示意图如图 1 所示。多功能通讯板卡组建的反射内存网络通过光纤连接而成。网上的每台计算机通过CPCI 插槽插入一块多功能通讯板卡形成网络上的一个节点。
网络上每个节点的局部内存都映射到一个虚拟的全局内存,构成分布式共享存储器。用户对本地节点内存的读写相当于对全局内存的读写。对于本地节点内存的读写可以由宿主机或带有 RS 422 接口的设备完成。多功能通讯板卡上集成了4 路 RS 422 接口,使带有 RS 422 的设备能直接访问反射内存网。
2 总体方案设计
图 2 所示为多功能通讯板卡总体框图。该板卡总体上由 宿主机交互模块、DDR2 模块、RS 422 模块、光纤接口模块 四部分组成,各个模块均挂载在 Avalon 总线上,借助该总线 进行数据交互。Avalon 交换式总线定义的内联线策略使得任 何一个 Avalon 总线上的主外设都可以与任何一个从外设沟通。
2.1 宿主机交互模块设计
宿主机交互模块负责处理板卡和宿主机的信息交互,实现数据解析、数据组帧和打包、与Avalon 总线交互等功能。该模块由CPCI 总线的接口单元、数据解析单元和数据组帧单元等构成。宿主机交互模块框图如图 3 所示。
PLX9054 的工作模式采用C 模式,传输方式选择 DMA模式。
数据解析单元通过PCI 总线的地址位来区分上位机的数据种类 [4]。上位机发送的数据种类有经由RS 422 接口的数据、广播到反射内存网络的数据、读写本地内存的数据 [5]。为了更好地管理数据,将反射内存网络中的内存划分为两大区域 :地址 0x00000000~0x000FFFF 是 RS 422 数据, 地址0x0010000~0x8000000 是通用内存数据。
数据组帧加包是为了解决从单一数据源发送数据到不同出口而产生的数据带宽不同、协议不匹配等问题 [6]。为了方便数据交互,统一各路数据结构,根据目前反射内存网络没有形成协议标准的现状,设计其实现机制和数据结构如下所示:
(1) 发送到 RS422接口的数据由命令标志位和数据位构成。其中命令标志位用于区分数据帧和命令帧。命令帧包括波特率配置和字长配置。
(2) 发送到反射内存网络的数据格式由帧头标志、节点号、中断标志、协议号标志、包长度组成。其中节点号表示该数据包的源节点号,协议号标志表示该数据包的数据源采用的协议。帧头标志位用于区分帧头和地址帧、数据帧、校验帧。
(3) 为了提高系统带宽, 宿主机交互模块集成了四个Avalon总线主端口,由于每个总线主机均有自己的专用互联, 总线主机只需抢占共享从机,而非总线本身,因此不会造成总线拥塞。Avalon接口性能很高,可每个时钟传输 1次,所以对上下行数据的传输速率的影响可忽略不计。
2.2 光纤接口模块设计
图 4 所示为光纤接口模块。该模块由光电收发器、编解码控制、数据仲裁和数据解析等功能单元组成。其中,光传输模块采用集成光电转换方案,其支持的最高串行数据传输率为1.062 5 Gb/s。
各功能单元之间为保持数据的完整性,设计了多个FIFO来缓存接收和发送数据。解决上下接口速率不匹配、跨时钟 域的问题。
在高速串行收发器中,内置有 8 B/10 B 解码器可以检查出单比特错误,同时还内置有CRC 校验器,能够有效发现错误并纠正单比特错误。利用这两种方案能够将错误有效反馈给上层进行处理。
2.3 RS422模块设计
图 5 所示为 RS 422 模块。该模块主要由UART 模块、控制模块和RS 422 接口电路组成。
UART 在Avalon 总线体系里是一个常用的字符型外围设备[7],为Altera FPGA上的嵌入式系统和外部设备提供了串行字符流通信方式。主控制模块的主要功能单元为UART 控制、地址匹配和数据打包等。同时控制模块内嵌 3 个Avalon 主端口和 1 个Avalon 从端口,通过 Avalon 总线与其他模块进行数据交互。
3 主要功能及性能指标测试
测试时搭建由虚拟机和实物设备构成的半实物仿真系统验证基于反射内存的多功能板卡的各项功能及性能。
3.1 反射内存网络功能测试
测试网络采用由三个节点、光纤互联组成的环状链路, 其中一个网络节点接入RS 422 设备,测试是否能构成共享内存网络。测试模型如图 6 所示。
在广播通讯测试中,节点 0 计算机作为数据源发送数据 包,环路节点 1、2 收到数据包后执行存储操作,同时按序转 发数据包。当数据包回到节点 0 时,该节点删除数据包,不 再转发,最后将 3 个节点的内存数据读取比较。本次测试用大 小为 12 字节的数据包进行了长时间连续测试。实际测试结果 表明传输中的误码率低于 10-15。
3.2 RS 422 功能测试
测试 2 模型和测试 1 一致。节点 3上的 RS 422 设备作为 数据源广播大小为 12 字节的数据包,最后比较各节点内存数 据。每个通道按照三种波特率 9 600 b/s、115.2 Kb/s、1 Mb/s 和字长 8 位、9 位共 6 种组合方式分别测试,设备收发的数据 和各节点内存区数据完全一致。
3.3 网络传输速率测试
测试 3 沿用测试 1 的测试模型。宿主机读写采用 DMA 方式,测试时,节点 0 宿主机发起数据写传输,发起的同时开 启 RTX 系统提供的 0.1 ms 时钟,当数据通过环形网络更新完 毕时则停止计时,得到数据写速率。每次发送 100 个数据包, 发送 500 次,有效数据总量为 200 000 MB。试验数据如表 1 所列。通过宿主机读内存数据,每次读100 个数据包,读500次, 有效数为 200 000 MB,得到数据读速率。数据读测试如表 2 所列。
在数据量较小时,传输速率不高,因为大部分时间开销 都在中断的传输和逻辑判断中。当发送数据变大时,传输速 率较快,并趋于稳定。
3.4 传输延时测试
传输延时包括节点间延时和节点内延时,测试模型如图 7所示。相邻节点之间完成数据发送接收过程的延时测试,需要依次经过发送节点发送单元、光电收发器、光纤、光电收发器、接收节点接收单元,其中光纤长度为 10m。通过 100 次测试单板自收发,可测得节点与节点间的时延平均为 244.4ns。节点内部处理相邻节点发送的数据并转发时会造成延时。完成以上一次收发需要经过两次节点间时延和一次节点内时延。经过 100次测试,得出节点内平均时延为 263.2 ns。
4 结 语
通过一系列实验测试证明,基于反射内存的多功能通讯板卡设计合理,满足高速(带宽最高为 30 MB/s)、可靠(误码
率低于10-15)、可预测(时延是深亚微秒级)、多功能(支持多模式的RS 422)等要求。目前,该板卡已应用在虚拟仿真平台。需要指出的是,该板卡上还集成了 RS 232、1533B、CAN 等通讯模块,改动FPGA 程序即可扩展板卡的通讯能力。