基于VPX的SRIO通信模块设计
谷晓鹏;杨玉亮;张然
【摘 要】针对VPX下SRIO通信的需求,提出一种封装SRIO通信接口的方法,设计
并实现了一种SRIO通信模块.SRIO通信模块采用软件模块化设计思想,在SRIO通
信接口的基础上设计PowerPC板CPU之间的通用的数据通信方式,可实现
PowerPC板内、板间的数据通信.该模块以库函数形式实现二进制重牛角尖 用,可移植于任
意PowerPC程序设计中,实现通信参数的可视化配置,有利于软件结构化、模块化
设计.测试分析表明,该模块具有良好的性能和二进制可重用性.
【期刊名称】《雷达与对抗》
【年(卷),期】2015(035)002
【总页数】5页(P64-68)
【关键词】通信模块;VPX;Serial RapidIO;软件模块化
【作 者】谷晓鹏;杨玉亮;张然
【作者单位】海军指挥所,北京100841;中国船舶重工集团公司第七二四研究所,南
京211153;中国船舶重工集团公司第七二四研究所,南京211153
【正文语种】中 文
【中图分类】TN95
随着技术的进步以及应用性能需求的不断提高,雷达系统各单元之间的通信对带宽
要求不断提高。VPX各单元之间的Serial RapidIO(以下简称SRIO)总线由于传输
带宽的优势,应用越来越广泛,因此SRIO通信越来越普遍。但是,直接使用
SRIO通信接口函数存在很多不足:
(1)SRIO通信相关接口函数多,使用不方便,每个软件人员需花大量时间学习其使
用方法;
(2)SRIO通信需要对CPUID、地址、门铃等进行约定,需各个软件相关人员进行
讨论确定;当CPU之间需增加新的报文或者已有CPU与新的CPU进行通信时,整
个项目相关人员可能都需对通信模块程序进行修改;
(3)程序运行过程中,SRIO通信出现收不到数据或者数据错误时很难进行定位和排
查;
(4)每个软件人员对SRIO通信进行设计时未对自身程序的通信速度、稳定性等进
行系统的测试,很难保证通信的可靠性。
针对上述问题,提出一种封装SRIO通信接口内存16g够用吗 的方法,设计并实现了一种SRIO通
信模块。该模块以库函数形式实现二进制重用,可移植于任意PowerPC程序设计
中,实现通信参数的可视化配置,有利于软件结构化、模块化设计。
VPX机箱中同一PowerPC板各单元之间通过Serial RapidIO高速串行总线进行
互连,每个CPU都有一个SRIO接口,通过switch路由于背板。不同PowerPC
板间通过机箱中交换板进行互连[1],如图1所示。
VPX6-8640D的每个RapidIO设备(8640D cpu)都有inbound SRIO memory
windows,允许其他RapidIO设备来访问该设备。同时,还有outbound SRIO
memory windows,允许该RapidIO设备去访问其他设备[2]。
2.1 需求分析与设计
SRIO通信时,首先需要对CPUID、地址、门铃等进行约定。当通信需求改变时,
整个项目相关人员可能都需对通信模块程序进行修改。针对该问题,本模块设计并
实现了一种通信参数的可视化配置方法,通过该方法同时增加了模块的通用性和可
移植性
SRIO通信相关接口函数多,使用不方便,每个软件人员需花大量时间学习其使用
方法。本模块提出一种封装SRIO通信接口的方法,有效地解决了该问题。
2.1.1 通信参数的可视化配置方法
(1)配置文件设计
参与通信的CPU采用统一配置文件,完成对CPUID、地址、门铃等的配置。使用
门铃作为每条配置信息的唯一标识。通信过程中,使用门铃完成配置信息的索引,
进而实现CPU间数据到对应地址的映射。
各CPU的发送和接收窗口个数均有一定限制(发送窗8个,接收窗4个),需采用
地址偏移方式实现多数据报文的通信。配置文件设生产车间标语大全 计过程中,加入发送窗口和接收
窗口建立标识,并通过地址偏移和门铃的设置实现窗口的复用。
每个CPU可配置多条配置信息,每条配置信息又可实现多种报文的通信。配置信
息结构如图2所示。
(2)可视化界面设计
参数配置程序用于生成或修改配置文件,效果如图3所示。
设置配置文件参数过程中,当参数设置不合理时将弹出提示对话框,例如地址越界、
地址不对齐、地址重用等错误。
2.1.2 SRIO通信接口封装方法[3-4]
该模块设计提供3个功能模块: SRIO初始化模块、SRIO发送模块和SRIO接收模
块,分别对应3个功能接口函数。通信流程如图4所示。增加新的报文或者增加
新的通信CPU时仅需对配置文件进行修改。
(1)SRIO初始化模块
初始化模块主要实现以下功能:
SRIO接收窗口和发送窗口的创建;
SRIO接收缓存区、信号量、相关变量的初始化;
SRIO门铃输入的初始化,门铃中断处理函数的创建;
SRIO接收任务的创建。
(2)SRIO发送模块
该模块设计流程为:
将门铃作为唯一标识,从配置信息中查找到对应的发送地址;
通过DMA传输方式,将待发送数据传输至发送地址中,完成数据到总线的映射;
发送门铃中断通知接收端数据已更新。
(3)SRIO接收模块
该模块设计流程为:
门铃中断输入函数接收门铃;
判断门铃值,启动门铃对应的接收任务;
接收任务读取对应接收地址中的数据值接收缓存区,接收地址通过门铃值索引得
到;
通过读取缓存区接口函数,读取缓存区数据。
2.2 可靠性设计
模块设计中主要采取了以下几种方法提高模块的可靠性:
(1)模块编译成库函数的形式,仅提供给用户库函数和头文件;
(2)通过编译器的强类型检查,接口参数使用错误时,报送错误信息,避免运行过
程中产生通信错误或者模块崩溃;
(3)配置文件设置过程中,对各配置参数的有效性进行检查,避免了配置的设置参
数无效产生通信错误;
(4)通信过程中,数据包的最后16位作为校验位,以检验数据包的有效性。
(1)可重用性
该模块通过库函数形式,可以实现二进制重用,用户春节作文三年级 无需对模块代码进行学习和了
解,仅通过接口函数的调用,即可完成相应的SRIO通信。
(2)可靠性
模块设计过程中充分考虑了可靠性的设计。开发完成后,对模块完成了功能、性能
和异常的测试,保证软件具有成熟性、容错性。
(3)可维护性
通信过程中出现故障时,通过检查接口调用方式,参数配置等方式来确定故障位置。
硬件升级或应用环境能力改变,模块的升级不影响库函数的接ppt文字环绕 口签名,使得模块易
于升级。
4.1 模块功能测试
测试硬件环境: VPX插箱,两块PowerPC板,1块交换板,CPU类型:8640D;
8片CPU接收缓存区均设置为4 MB,单数据包大小设置为1200 B,发送速度
20 MBps,设置配置文件(共56条配置信息),完成每片CPU分别与其他7 片
CPU的通信,测试5 min;
记录测试结果,发送接收数据一致;
测试结果表明:参数配置程序完成了参数的可视化配置,同时模块实现了多个CPU
之间的数据通信。
4.2 通信速度测试
测试硬件环境: VPX插箱,两块PowerPC板,1块交换板,CPU类型:8640D。
4.2.1 数据分类测试
接收缓存区大小为64 MB,单数据包大小分别为: 1200 B、65532 B、2 MB、8
MB、16 MB、32 MB时,设置配置文件,实现两PowerPC板上各一个CPU之
间的通信,发送10 min,测试结果如表1所示。测试结果表明:该模块对各种类型
报文的通信都具有良好的性能。
4.2.2 通信能力测试
模块通信能力主要取决于DMA传输速度和内存拷贝速度,二者均受到硬件条件限
制,下面分别进行测试。
改变单次发送数据包大小,分著名的英文 别设置为1 MB、2 MB、4 MB、8 MB、16 MB、
32 MB,调用本模块发送函数循环发送,接收模块接收数据后循环拷贝至缓存,
过程中分别计算DMA传输速度和内存拷贝速度。
计算方法: DMA传输速度记为(VDMA)MBps,发送次数(N)次,单次数据项目报告怎么写 包大小
(L)MB,传输时间(T)s,则: VDMA= N* L/T;计算20次结果取平均值。内存拷贝
速度采用相同计算方法。测试结果如表2所示。
由表2得出以下结论:
(1)DMA传输速度>800 MBps,而内存拷贝速度峰值为110 MBps左右。该速度
为通信过程中的峰值速度,大于该发送速度,接收端将不能及时读取数据至缓存;
(2)测试结果表明:模块通信速度受底层memcpy函数的限制,即硬件的处理能力,
本模块具有良好的性能,满足通信需求。
4.3 稳定性测试
上一节测试中,分别挑选3种情况进行长时间测试,结果如下:
(1)1200 B数据,0.2 ms/次发送速度,运行2 h,记录所有数据包的流水号,并
分段将输入输出详细数据记文件,数据校验位正确,结果正确;
(2)65532 B数据,1 ms/次发送速度,运行2 h,记录所有数据包的流水号,并分
段将输入输出详细数据记文件,数据校验位正确,结果正确;
(3)32 MB数据,500 ms/次发送速度,运行2 h,记录所有数据包的流水号,并
分段将输入输出详细数据记文怎样看风水 件,数据校验位正确,结果正确。
测试结果表明,该模块具有良好的稳定性。
4.4 实用测试
该模块已应用于某项目中,VPX插箱中各CPU间SRIO通信均使用该模块,满足
项目中所有通信需求。模块的易用性和可靠性节省了项目软件开发人员大量开发时
间,并达到了所需的性能要求。
本文设计的SRIO通信模块具备良好的工程实用性,后期将会应用于更多的项目和
产品中。其模块化的特点在项目和产品的软件开发中具有诸多优势,后续的应用反
馈将使模块更加完善。本文的设计思想为工程应用中的软件模块化提供了参考。
【相关文献】
[1]尹亚明,等.新型高性能RapidIO互连技术研究[J].计算机工程与科学,2004(12).
[2]Sam O嵌入式系统互连[M].北京:电子工业出版社,2006.
[3]李春田.模块化研究[M].北京:中国标准出版社,2008.
[4]徐惠民.基于VxWorks的嵌入式系统及实验[M].北京:北京邮电大学出版社,2006.
本文发布于:2023-04-23 14:59:43,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/fan/82/511005.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |