APP下载

基于cPCI总线的一种反射内存卡的研究与设计

2015-01-25王玉龙徐志跃刘亚斌

电子设计工程 2015年5期
关键词:板卡命令内存

王玉龙,徐志跃,刘亚斌

(北京航空航天大学 自动化科学与电气工程学院,北京 100191)

半实物仿真测试系统是武器装备开发与研制过程中不可缺少的测试系统,由于单个计算机很难完整实现复杂测试系统所有的功能,因此多台测控计算机组成的大型系统成为武器装备测试系统主要的发展方向,同时多台测控计算机之间的强实时性、可靠性、数据传输可预测性与高速性等性能要求,对武器装备的测试结果有着重要的影响。

反射内存网络由多个反射内存板卡通过光纤作为通信介质构成,是一种高速性、实时性与确定性实时网络,反射内存通信网络在半实物测试系统中的运用,可以很好的满足测试系统对数据传输高效率、传输时间可预测等性能的要求[1]。本文针对反射内存网络的特点,提出了一种高效,稳定的用于反射内存实时网络的反射内存卡设计方案。

1 反射内存板卡设计

1.1 反射内存卡硬件设计

板卡工作在基于cPCI总线的测控计算机内,反射内存网络各节点板卡使用光纤作为介质进行数据传输、Altera的EP3C120F780型号的FPGA作为板卡核心处理器;板载SDRAM为共享内存的载体。

反射内存卡硬件整体框图总如图1所示,各个模块所选用的芯片如下:

图1 反射内存卡硬件整体框图Fig.1 Reflective memory card hardware block diagram

1)光电转换器

考虑到反射内存网络使用光纤作为传输介质,板卡需实现光-电、电-光信号之间的相互转换,选用Finisar公司的FTLF8519P2BNL作为光纤收发器比较合适。此模块体积小、重量轻、具有高达2.125Gb/s的双向数据传输速率,能够满足反射内存卡2Gb/s的光信号传输速率。

2)串并转换器

板载FPGA采用并行方式处理数据,而数据在各个节点之间以串行方式进行传输,选用TI公司的TLK2501作为串并转换器比较合适。此模块采用8B/10B编解码器、具有时钟修正、数据丢失检测等功能,能够保证可靠的传输性能和较强的纠错能力。

3)板载存储器的实现

反射内存网的信息需要实时的存储于每一块反射内存卡的板载存储器中。对SDRAM与SRAM两种存储器进行速率、可靠性、价格、容量等方面进行比较后可知选用Micron公司的SDRAM存储器MT48LC64M8A2完全能够达到要求。

4)电源模块

线性电源体积小、纹波低、微噪声,因此板卡工作电源全部使用Linear Technology公司的线性电源转换芯片。

1.2 反射内存卡FPGA代码设计

FPGA代码是整个反射内存板卡设计的核心内容。本板卡在代码开发过程中,严格按照单元模块化、程序可配置性与代码最优化的规则进行设计。整个硬件程序主要分为上位机数据通信模块、板卡各功能芯片实现模块与自定义的网络传输协议3个方面。

1)与上位机通信模块

cPCI总线的基本操作有数据的读写、设备配置与中断操作等,每一种操作的相关信号都遵循一系列复杂的时序[2]。cPCI总线以PCI9054作为桥接芯片后,数据线与地址不再复用,并且无需关注寄存器的配置,大大简化了对总线的操作。FPGA通过PCI9054与上位节进行数据传输的状态机如图2所示。

图2 FPGA与PCI9054通信状态机Fig.2 Communication state machine between FPGA and PCI9054

2)板卡功能的实现

作为反射内存卡核心部分的FPGA程序,不仅包含实时与上位机之间进行数据传输、与网络中的其它节点进行数据通信模块;还有板卡正常运行所不可缺少的数据缓冲模块、SDRAM管理模块、板卡初始化与节点配置模块。因此,FPGA程序在结构上主要分为3个部分:

①响应主机对本节点或网络中其他节点的读写数据、中断触发命令与节点搜索操作;

②响应网络中其他节点对本节点或需经过本节点中转给其他节点的数据、中断触发命令、网络节点搜索命令等操作;

③操作网络上信息的收发,向板载共享内存存取数据所需的缓冲模块。

FPGA程序设计整体框图如图3所示。

图3 板卡功能结构图Fig.3 System function structure diagram

3)网络通信协议的实现

通信协议(Communications Protocol)是指双方实体完成通信或服务所必须遵循的规则和约定[3]。反射内存网络是一种强实时性的数据共享网络,针对其特点,反射内存卡之间的网络通信协议应遵循语法上,数据报文应以简明、简短的帧为单位,并严格包括帧头、信息体和帧尾三部分;语义上,通信内容应包括数据、中断命令、搜索命令、设置存储范围命令4种[4]。

①数据帧格式

数据帧包含地址连续和地址不连续两种模式。在地址连续模式中,数据区装载有效的数据,数据的起始地址代表数据区第一个数据的地址,其后数据可从起始地址累加获得(即地址是连续的),如表1所示。在地址不连续模式中,数据区中的数据是不连续的,每个有效数据前都伴有相应的地址,如表2所示。为了提高数据传输效率,数据帧采用动态包长格式。数据帧包含帧头区、源ID区、数据包长、数据区(地址和数据)、帧错误区、帧尾区和CRC校验。

其中,帧头区表示一帧数据传输的开始;源ID区指示发起此次数据更新的节点号;数据包长指示数据帧包含有效数据长度,实现动态包长;帧错误区指示数据帧是否出现错误。

表1 地址连续模式数据帧格式Tab.1 Address continuous mode data frame format

表2 地址不连续模式数据帧格式Tab.2 The address is not continuous mode data frame format

②中断命令帧格式

反射内存网络中各节点之间可以发送中断命令信息,用于触发节点中断并做出相应命令回应。中断命令帧包括帧头区、源ID区、目标ID区、命令类型、帧错误区、帧尾区和CRC校验,如表3所示。

表3 中断命令帧格式Tab.3 Interrupt a command frame format

其中,源ID区指示发起此次中断命令的节点号;目标ID指示中断命令发送到该节点号;命令类型表示中断命令类型。

③搜索命令帧格式

反射内存网络各节点通过搜索命令获取网络上所有节点的ID号信息,因此在初始化过程中网络上每个节点都会发起搜索命令,搜索命令成功返回后,搜索命令帧中装载有网络上所有节点的ID号和数量信息,从而网络上所有节点被激活,每个节点可以方便的与其他节点通信。搜索命令帧包括帧头区、源ID区、所有节点ID区、节点数量、帧错误区、帧尾区和CRC校验,如表4所示。

表4 搜索命令帧格式Tab.4 The search command frame format

其中,所有节点ID区装载搜索到的有效节点号;节点数量区指示搜索命令帧的有效节点数量。

④设置存储范围命令帧格式

为了避免一个节点更新的数据在同一时刻被另一个节点的更新所覆盖,因此为网络中每个节点分配自己的共享内存区域,本节点只能更新本节点内存区域的数据,对于其他节点的区域只能读访问,不能写访问,可有效的避免了由于写访问引起的节点冲突。设置存储范围命令帧包括帧头区、源ID区、起始地址区、终地址区、帧错误区、帧尾区和CRC校验,如表5所示。

其中,起始地址区要设置存储的起始地址;终地址区要设置存储的终地址;

2 测试结果分析

2.1 随机数生成与对比方法

测试数据在由多块反射内存卡组成的网络中传输的性能,采用发送随机数的方式最为合适。Donald E.Knuth的减法随机数生成算法是一种有延搁的斐波那契序列生成方法,采用延搁(24,55)可使随机周期达到 230(255-1)。 减法随机数生成算法通过递推当前已产生的随机数据序列生成新的随机数。设历史序列Xi∈(0.231-1)中已有55个以上元素,则随后的整数随机数Xn的值可由公式(1)递推获得。

表5 设置存储范围帧格式Tab.5 Set the storage extent frame format

2.2 误码率计算方法

反射内存共享区数据更新的误码率测试,是测试反射内存网络性能的重要参数之一,误码率Err可以用式(2)计算。

其中,DErr为已经出现的误码比特数,Nf为已经测试的子周期数,Np为网络中节点个数,Dsum为共享内存中总共的比特数。

2.3 网络传输延迟测算

反射内存网有强实时性特点,可以通过数据传输迟延的测式来验证反射内存网络的实时性[5]。本项测试主要测试数据在板卡之间传输迟延,为了最大程度避免操作系统对数据传输造成的延时影响,采用FPGA内部定时发送随机数据的方式进行传输迟延测试。一帧数据从发送开始计时,经环状网络回传到本节点后结束计时,所经过的时间即为网络传输总迟延。采作三块反射内存板卡组成反射内存网络,并以公式(1)进行发送数据的生成,数据帧采用动态包长格式,使包长为1、5、10分别测试,数据由节点 0发送,经节点 1,节点2后再传回节点0。测试记录如表6。

从表6可以看出数据传输的总体速率较高,平均延时很少,传输320 bit的数据延时不到2 ms,传输速率最高可到245 Mb/s,综合考虑可知,以此板卡组建的反射内存网络具有很好的强实时性。

2.4 反射内存网可靠性测试

可靠性实验即通过长时间,大批量的测试来估算反射内存网络传输的误码率,通过误码率的大小来判别其数据传输可靠性[6]。实验用3个节点搭建一个环状网络,ID号分别为Node_0,Node_1与Node_2。实验分为3组,第一组用Node_0作为数据更新发起卡将产生的随机数填入共享内存内,其他两个节点作为数据校验卡接收共享内存中的数据并根据公式(2)进行误码校验并计算误码率,一共2小时;其他两组分别使用Node_1和Node_2作为发起卡,测试时间分别为5小时与10.5小时。测试结果如表7所示。

表6 数据帧测试记录表Tab.6 Data frame test recording table

表7 可靠性实验记录表Tab.7 Reliability test recording table

由表11可以看出在总共长达17个多小时的实验中,在几万次测试中仅Node_1作为发送卡时出错一次,总误码率为0.001%。经检查,出错原因是随机数产生不一致造成的,而并非网络传输问题。由此可见,此板卡组成的反射内存网络误码率极低,具有很好的可靠性。

3 结 论

根据武器装备半实物测试系统对数据传输网络有着强实时性、可靠性、数据传输可预测性与高速性等要求,提出了一种反射内存卡的设计方法,并基于此卡设计了反射内存网络数据传输协议,通过实验严格验证了此板卡各项工作性能。证明基于此反射内存板卡设计的反射内存网络完全可以实现武器装备半实物测试系统[7]对数据传输强实时性与可靠性的需求,对我国武器装备的生产和发展都有着十分重要的意义。

[1]林晓焕,唐长春,柳文安.基于反射内存的实时网络系统设计[J].西安工程大学学报,2010,24(1):60-65.LIN Xiao-huan,TANG Chang-chun,LIU Wen-an.The realtime network system design based on the reflection memory[J].Journal of Xi’an Polytechnic University,2010,24(1):60-65.

[2]李贵山,陈金鹏.PCI局部总线及其应用[M].西安:西安电子科技大学出版社,2003.

[3]冯旭哲,罗飞路,陈建云,等.基于反射内存网络的实时测试系统设计与实现[J].计算机测量与控制,2007,15(11):1447-1448.FENG Xu-zhe,LUO Fei-lu,CHEN Jian-yun,et al.Design and realization of real-time test system based on reflective memorynetwork[J].Computer Measurement&Control,2007,15(11):1447-1448.

[4]肖卫国,尔联洁,谢廷毅,等.基于共享内存机制微机实时网的数据传输实时性研究[J].系统仿真学报,2004,16(8):1717-1720.XIAO Wei-guo,ER Lian-jie,XIE Ting-yi,et al.Research on data communication real-time based on shared-memory mechanism micro-computer real-time network[J].Journal of System Simulation,2004,16(8):1717-1720.

[5]冯炳灿,孔德仁,商飞.反射内存网络在实时测控系统中的应用[J].计算机测量与控制,2011,19(1):4-8.FENG Bing-can,KONG De-ren,SHANG Fei.Application of reflective memory network in real time measurement and control system[J].Computer Measurement&Control,2011,19(1):4-8.

[6]张西健,关国枢.基于反射内存实时网络的分布式半实物仿真系统[J].鱼雷技术,2000,2(1):2-4.ZHANG Xi-jian,GUAN Guo-shou.Distributed hardware in the loop simulation system based on reflective memory real time network[J].Torpedo Technology,2000,2(1):2-4.

[7]安恒,杨生胜,薛玉雄,等.一种空间辐射剂量测试系统的设计与试验[J].现代应用物理,2014(4):256-259.AN Heng,YANG Sheng-sheng,XUE Yu-xiong,et al.Design and test of a spatial radiation dose test systems[J].Modern Applied Physics,2014(4):256-259.

猜你喜欢

板卡命令内存
只听主人的命令
笔记本内存已经在涨价了,但幅度不大,升级扩容无须等待
“春夏秋冬”的内存
基于PCI9054的多总线通信板卡的研制
基于FPGA的多通道模拟量采集/输出PCI板卡的研制
移防命令下达后
这是人民的命令
一种基于光纤数据传输的多板卡软件程序烧写技术
内存搭配DDR4、DDR3L还是DDR3?
一种通用模拟量及开关量信号采集板卡的设计