Design of SCA standard conformance test for hardware abstraction layer based on a satellite navigation receiver
-
摘要: 针对卫星导航信号波形在不同硬件平台上的可移植性问题,在系统中引入Modem硬件抽象层(MHAL)后,实现了不同计算单元上组件间管理的统一性和通信的标准化. 为了便于测试MHAL的标准符合性[1],防止不同研制单位研制出互相不兼容的软件通信体系结构(SCA)通信设备,现以某卫星导航接收机为例说明具体硬件平台的MHAL测试方法,设计了一组测试用例集. 通过采用公共对象请求代理体系结构(CORBA)中间件TAO (The ACE ORB)和软件功能动态配置法,该测试用例集可屏蔽被测设备之间的差异,提高测试用例的通用性、兼容性、测试效率. 用户只需在PC端一键操作即可完成自动化测试. 结果表明:该测试用例集可以验证MHAL实现数据传输的能力、满足SCA标准的符合性程度和用户需求.
-
关键词:
- 软件通信体系结构(SCA) /
- Modem硬件抽象层(MHAL)接口 /
- 通信标准化
Abstract: Aiming at the portability of satellite navigation signal waveform on different hardware platforms, after introducing the Hardware Abstraction Layer into the system, the unification of management and communication standardization between components in different computing units are realized. In order to test the conformity of modem hardware abstraction layer (MHAL)and prevent different research units from developing incompatible software communications architect (SCA) communication equipment, a Satellite navigation receiver is taken as an example. MHAL test method based on specific hardware platform is explained, and a set of test cases is designed. By using CORBA (Common Object Request Broker Architecture) middleware Tao and software function dynamic configuration method, the test case set can shield the differences between the tested devices, improve the universality, compatibility and test efficiency of test cases. And users can complete the automatic test with one key operation on the PC. The results show that the test suite can fully verify the ability of hardware abstraction layer to realize data transmission and meet the conformity of SCA, so as to meet the needs of users -
0. 引 言
当前,国内已经确立了下一代通信装备完全按照软件通信体系结构(SCA)标准进行设计、生产、研制、维护的总体思路. 在这一背景下,为了促进不同单位独立研制的无线电软硬件模块、平台、整机设备之间的相互兼容性,必须依据软件无线电通信体系结构系列标准,制定完备系统的测试方法和测试流程. 在此基础上研制软件无线电符合性测试系统,对不同厂家采用不同实现方式研制的无线电产品进行全面、严格的符合性测试,以验证其是否符合标准规范的要求,保证装备的顺利集成、联调联试和作战使用. 因此,符合性测试系统是提高软件无线电通信装备标准兼容性的重要技术手段,是实现真正意义上的通用化、系列化、模块化的重要保证.
Medom硬件抽象层(MHAL)软件通过屏蔽硬件平台相关的底层通信机制、封装标准的通信接口,实现波形组件间通信方式与具体硬件平台的分离,保持波形组件底层通信访问接口的一致性. MHAL参考模型定义了MHAL通信服务,该服务由一系列与MHAL接口组件协同工作的MHAL通信函数组成. 其中,MHAL接口组件由运行在通用处理器(GPP)和数字信号处理器(DSP)上的软件驱动程序和现场可编程逻辑门阵列(FPGA)接口组成,提供消息传输,MHAL通信函数则提供抽象的消息路由功能,波形使用MHAL通信服务来实现不同计算单元(CE)中软件组件间的数据流和控制流传输.
通过对MHAL应用程序编程接口(API)的研究,实现SCA标准中对MHAL的接口测试,提高波形的可移植性,达到波形与硬件的解耦[2].
1. MHAL参考模型及被测接口
MHAL通信服务由一系列与MHAL接口组件协同工作的MHAL通信函数组成[3],其中MHAL接口组件由运行在GPP和DSP上的软件驱动程序组成,提供消息传输,MHAL通信函数则提供抽象的消息路由功能[4]. 参考模型如图1所示.
图 1 硬件抽象层参考模型[5]SCA标准中定义了一系列MHAL函数[6],如GPP MHAL接口:MHALPacketConsumer::pushPacket,实现将通信数据推送到消费者的能力. DSP MHAL接口:mhalFunPtr reroute_LD_sink (uint16_t LD, mhalFunPtr newSinkFx),用于实现逻辑地址(LD)与信宿函数的映射. 通过对MHAL函数的测试,可以判断不同计算单元(CE)屏蔽底层硬件差异实现透明数据传输的能力[7].
现以SCA标准中的MHAL接口为被测对象,设计测试用例,对MHAL接口进行SCA标准符合性测试, 测试用例分类及测试对象如表1所示.
表 1 测试用例分类及测试对象测试类型 测试项 覆盖接口/测试对象 MHAL接口符合性测试 MHAL GPP ComsumerPort pushPacket() ComsumerPort addTxRoute() ProducerPort pushPacket() ProducerPort getRxRoutes() MHAL DSP MhalComm() reroute_LD_sink() LD_of() MHAL FPGA 多深度FIFO发送 多深度FIFO接收 FIFO接收/RAM接收 /N-Word寄存器接收/Strobe接收 RFChain测试 MHAL RFChain RFC_DefModulationMode RFC_ModulationMode RFC_TxALCAttackTime RFC_TxALCDecayTime 性能测试 吞吐量 GPP与非GPP硬件抽象层吞吐量 非GPP间硬件抽象层吞吐量 2. MHAL测试设计
硬件平台符合性测试系统由测试平台和被测设备组成,测试框架如图2所示. 测试用例由硬件平台控制终端的符合性测试软件和分别部署在GPP、DSP、FPGA上的GPP测试组件、DSP测试组件、FPGA测试组件组成. 测试平台是测试用例的主控单元,通过与GPP测试组件、DSP测试组件、FPGA测试组件的数据收发完成测试用例流程.
GPP测试组件:在接口符合性测试中GPP不需进行相关操作,所有操作由PC端符合性测试软件直接调用MHAL的接口执行测试流程. 在MHAL吞吐量测试中,GPP需精确计时,并与DSP、FPGA进行数据收发,完成MHAL吞吐量测试.
DSP测试组件接收到GPP的测试指令后,完成GPP-DSP的连通性测试、GPP-DSP-FPGA的连通性测试,以及基于LD的DSP端SCA_API接口符合性测试及MHAL吞吐量测试.
FPGA测试组件接收到GPP/DSP的测试指令后,完成GPP-FPGA/DSP-FPGA的连通性测试、以及基于LD的FPGA端MHAL接口测试及吞吐量测试.
2.1 MHAL接口符合性测试
现以GPP端MHAL的pushPacket接口测试为例,对MHAL接口符合性测试进行举例说明.
2.1.1 基本描述
pushPacket接口函数测试用例如表2所示.
表 2 pushPacket接口函数测试用例基本描述 内容 名称 pushPacket方法 功能 向指定LD发送payload 类型 软件功能与接口 目的 验证该接口功能是否正常 约束 设备提供PF_MHALPacketConsumer接口 行为 调用此方法,观察返回值 复杂度 一般 测试级别 基本测试 2.1.2 内容描述
2.1.2.1 测试声明1
测试条件:GPP MHAL设备工作正常,并从设备组件获取到MHAL:: PF_MHALPacketConsumer接口,设置参数为无效的LD.
执行过程:调用此方法,设置参数接收端口逻辑地址为无效的LD,观察测试函数状态.
2.1.2.2 测试声明2
测试条件:GPP MHAL设备工作正常,并从设备组件获取到MHAL:: PF_MHALPacketConsumer接口.
执行过程:调用此方法,设置参数接收端口逻辑地址为有效的LD,观察测试函数状态.
2.1.3 期望测试结果
pushPacket方法期望测试结果如表3所示.
表 3 pushPacket方法期望测试结果测试编号 期望测试结果 关键项说明 测试声明1 LD指定的MHAL目的端口没有收到报文,测试失败 是 测试声明2 LD指定的MHAL目的端口收到报文,测试成功 是 2.2 RF chain测试
现以工作频段测试为例,对MHAL RF chain接口进行输出响应测试. 硬件平台控制被测设备的信道模块输出单载波,利用频谱仪测量工作频率.
硬件平台控制端向被测设备的信道模块发送RF chain消息,控制被测设备的信道模块依次输出三个单载波信号,这三个单载波信号的中心频点为有效频段范围内的任意三个频点. 利用频谱仪测量单载波信号是否满足要求, 测试图如图3所示.
2.2.1 基本描述
设备工作频段测试用例如表4所示.
表 4 设备工作频段测试用例基本描述 内容 名称 设备工作频段测试 功能 GPP下发与工作频率相关的RF Chain消息至信道模块,信道模块对外输出射频信号 类型 RF Chain输出响应测试 目的 对设置工作频率的相关RF Chain消息进行SCA符合性测试 约束 GPP MHAL、FPGA MHAL正常工作 行为 运行此用例,通过频谱分析仪测量射频输出的中心频率指标参数 复杂度 一般 测试级别 基本测试 工作频段测试需进行信道初始配置和信道工作配置,配置过程中需要向信道模块下发MHAL RF chain消息,具体操作如下:
1) 信道初始配置:硬件平台测试终端向被测设备的信道模块发送RF Chain消息. 首先构建单载波模式参数表,通过RFC_DefModulationMode接口,设置FM模式,采样率为4 M,通过RFC_ChannelFrequency接口依次配置工作频率F1、F2、F3.
2)信道工作配置:下发RFC_ModulationMode命令,调用RFC_DefModulationMode中设置的调制模式编号,通过RFC_TxBusyStatusResponse命令查询发射资源状态是否可用,并发送RFC_ConnectTxBlock命令连接波形与射频链发射通路,然后下发RFC_ChannelTxModeSet命令请求进入发射状态.
2.2.2 内容描述
2.2.2.1 测试声明1
测试条件:GPP MHAL及信道模块工作正常,测试仪器为频谱分析仪.
执行过程:
1)配置信道中心频点F1;
2)通过频谱分析仪测试信道输出的射频信号.
2.2.2.2 测试声明2
测试条件:GPP MHAL及信道模块工作正常,测试仪器为频谱分析仪.
执行过程:
1)配置信道中心频点F2;
2)通过频谱分析仪测试信道输出的射频信号.
2.2.2.3 测试声明3
测试条件:GPP MHAL及信道模块工作正常,测试仪器为频谱分析仪.
执行过程:
1)配置信道中心频点F3;
2)通过频谱分析仪测试信道输出的射频信号.
2.2.3 期望测试结果
设备工作频段测试期望结果如表5所示.
表 5 设备工作频段测试期望结果测试声明编号 期望测试结果 关键项说明 测试声明1 F1±1% 是 测试声明2 F2±1% 是 测试声明3 F3±1% 是 2.3 吞吐量测试
现以GPP−>DSP/FPGA吞吐量测试为例,简述基于MHAL接口的模块间吞吐量测试.
2.3.1 基本描述
GPP−>DSP/FPGA吞吐量测试基本描述如表6所示.
表 6 GPP−>DSP/FPGA吞吐量测试用例基本描述 内容 名称 GPP−>DSP/FPGA吞吐量测试 功能 测试GPP−>DSP/FPGA之间吞吐量指标 类型 软件功能与接口 目的 验证GPP−>DSP/FPGA之间吞吐量是否满足需求 约束 GPP/DSP/FPGA MHAL正常工作 行为 运行此用例,计算吞吐量并判断其是否满足需求 复杂度 一般 测试级别 基本测试 2.3.2 内容描述
2.3.2.1 测试声明1
测试条件:GPP/DSP/FPGA MHAL工作正常.
执行过程:
1) GPP接收到上位机下发的测试指令及测试参数后,将测试指令及测试参数转发给DSP或FPGA模块,DSP或FPGA模块接收测试指令及测试参数,从测试参数中提取测试数据包数M.
2) GPP重复发送测试数据给DSP或FPGA模块.
3) DSP或者FPGA模块接收到第一包测试数据起开始计时,当测试包数等于测试数据包数M时,向上位机上报统计时间,即传送时间;当测试包数小于测试数据包数M时,数据包丢失,上报结果测试失败.
4)上位机根据DSP或FPGA模块上报的测试结果,吞吐量=成功传送的数据/传送时间,计算吞吐量.
2.3.3 期望测试结果
GPP->DSP/FPGA吞吐量测试结果如表7所示.
表 7 GPP−>DSP/FPGA吞吐量测试期望结果测试声明编号 期望测试结果 关键项说明 测试声明1 与参考指标对比,判断是否满足需求 是 3. 创新点
3.1 硬件平台模块间性能测试方法
波形可移植性评估是验证不同的波形能否在同一个硬件平台上运行,测试项包括:
1)软件运行环境标准符合性测试:对核心框架、设备组件、服务组件进行接口验证;
2)波形SCA标准符合性测试:对波形组件与核心框架组件之间的接口进行验证;
3)波形传输性能评估:对功能波形所要求的功能、性能指标进行测试,从而判断在硬件环境满足波形传输性能测试的前提条件下,待移植的波形软件功能;
4)硬件平台标准符合性及性能测试:包含MHAL接口符合性测试、MHAL性能测试.
针对硬件平台的性能测试,目前常用方法为单个模块的吞吐量,如GPP模块内两组件之间的吞吐量. 本文提出一套GPP−>DSP/FPGA、DSP/FPGA−>GPP、DSP−>FPGA、FPGA−>DSP模块之间MHAL吞吐量测试方法,通过对比波形对硬件平台的指标要求和MHAL吞吐量测试结果,可以完成波形可移植性评估中的第4项硬件平台性能测试.
3.2 PC端采用CORBA中间件TAO
MHAL接口符合性测试中,PC端通过采用CORBA的中间件TAO与被测设备通信,将设备端的嵌入式测试用例放在PC端运行,即可屏蔽被测设备之间的差异,提高测试用例的通用性、兼容性、测试效率,用户只需在PC端一键操作即可完成自动化测试. 采用中间件TAO[8]后,PC端与被测设备的测试流程如图4所示.
步骤1)和2):PC通过CORBA软总线与待测设备的域管理器[9]建立连接,并通过设备名查找到MHAL设备,利用MHAL::PF_MHALPacketConsumer::pushpacket()方法将数据推送至DSP/FPGA端.
步骤3)和4):DSP/FPGA收到数据后,DSP/FPGA通过各自的推送接口将数据推送至MHAL; MHAL通过MHAL::WF_MHALPacketConsumer::pushpacket()将数据推送至PC端.
根据以上描述,现将PC端采用CORBA中间件TAO的测试方法和传统不采用CORBA中间件的测试方法进行对比,如表8所示.
表 8 两种测试方法对比对比项 本文测试方法 传统测试方法 PC与被测设备的通信机制 PC与被测设备之间采用CORBA通信机制 PC与被测设备之间采用用户数据报协议(UDP)通信机制 GPP端是否运行测试用例 GPP端无测试用例 GPP端必须植入嵌入式测试用例,此代理程序通过消息转发建立MHAL与PC端测试用例之间的通信链路 用户体验对比 用户只需在PC端一键操作,启动测试软件,即可完成MHAL接口符合性测试 需在被测设备供应商提供的基础工程中添加测试用例,编译生成可执行文件,并将该可执行文件加载至被测设备启动,然后运行PC端测试用例进行测试 3.3 软件功能可动态配置
为兼容各厂家设备之间的差异性,提高测试的通用性,在测试用例设计时采用可配置参数法,实现软件功能的动态配置.
以MHAL吞吐量测试为例,各厂家设备的MHAL吞吐量指标不一样. 测试时需在EXCEL文件上录入多组参数,如数据包大小、数据包间时延、数据包个数、发送数据类型等参数,通过运行多组测试数据,直至逼近被测设备的最大吞吐量.
4. 测试用例的验证
为判断测试用例是否具有验证陪测设备硬件平台标准符合性测试的功能,可依据SCA标准[3],进行MHAL接口符合性测试功能验证和性能测试功能验证[10].
4.1 MHAL接口符合性测试功能验证
采用以下方法对MHAL接口符合性测试用例进行验证:
1)静态代码审查:检查API函数名、函数参数及返回值是否符合SCA标准.
2)收发数据标准符合性检查:利用抓包工具抓取收发MHAL数据并判断该数据是否符合SCA标准. 如图5所示,MHAL通过数据包交换的方式进行数据收发. 每个MHAL数据包含报头和载荷,报头中的逻辑目的地址为目的端口字段. ICD结构如图5所示.
3)以某接收机为陪测对象进行功能测试:如图3所示,搭建测试环境,利用测试平台控制端向陪测设备下发测试指令及测试参数,根据测试结果判断测试用例是否具有验证陪测设备MHAL接口符合性测试的功能.
经以上3项验证测试,测试结果满足测试期望,MHAL接口符合性测试用例具有验证陪测设备MHAL接口符合性测试的功能.
4.2 MHAL吞吐量测试功能验证
以某接收机为陪测对象对MHAL进行吞吐量测试,传输速率测试结果在1~1 000 Mbps,测试结果满足测试期望. MHAL吞吐量测试用例具有验证陪测设备MHAL吞吐量测试的功能.
5. 结束语
针对波形可移植性评估中的硬件平台测试,本文实现了一组通用性测试用例集. 经过静态代码审查、收发数据标准符合性检查、以某接收机为陪测对象进行的功能测试3项测试,结果表明,本文实现的测试用例集具有硬件平台标准符合性测试能力. 为波形可移植性评估中的硬件平台测试提供了一种切实可行的办法.
-
图 1 硬件抽象层参考模型[5]
表 1 测试用例分类及测试对象
测试类型 测试项 覆盖接口/测试对象 MHAL接口符合性测试 MHAL GPP ComsumerPort pushPacket() ComsumerPort addTxRoute() ProducerPort pushPacket() ProducerPort getRxRoutes() MHAL DSP MhalComm() reroute_LD_sink() LD_of() MHAL FPGA 多深度FIFO发送 多深度FIFO接收 FIFO接收/RAM接收 /N-Word寄存器接收/Strobe接收 RFChain测试 MHAL RFChain RFC_DefModulationMode RFC_ModulationMode RFC_TxALCAttackTime RFC_TxALCDecayTime 性能测试 吞吐量 GPP与非GPP硬件抽象层吞吐量 非GPP间硬件抽象层吞吐量 表 2 pushPacket接口函数测试用例
基本描述 内容 名称 pushPacket方法 功能 向指定LD发送payload 类型 软件功能与接口 目的 验证该接口功能是否正常 约束 设备提供PF_MHALPacketConsumer接口 行为 调用此方法,观察返回值 复杂度 一般 测试级别 基本测试 表 3 pushPacket方法期望测试结果
测试编号 期望测试结果 关键项说明 测试声明1 LD指定的MHAL目的端口没有收到报文,测试失败 是 测试声明2 LD指定的MHAL目的端口收到报文,测试成功 是 表 4 设备工作频段测试用例
基本描述 内容 名称 设备工作频段测试 功能 GPP下发与工作频率相关的RF Chain消息至信道模块,信道模块对外输出射频信号 类型 RF Chain输出响应测试 目的 对设置工作频率的相关RF Chain消息进行SCA符合性测试 约束 GPP MHAL、FPGA MHAL正常工作 行为 运行此用例,通过频谱分析仪测量射频输出的中心频率指标参数 复杂度 一般 测试级别 基本测试 表 5 设备工作频段测试期望结果
测试声明编号 期望测试结果 关键项说明 测试声明1 F1±1% 是 测试声明2 F2±1% 是 测试声明3 F3±1% 是 表 6 GPP−>DSP/FPGA吞吐量测试用例
基本描述 内容 名称 GPP−>DSP/FPGA吞吐量测试 功能 测试GPP−>DSP/FPGA之间吞吐量指标 类型 软件功能与接口 目的 验证GPP−>DSP/FPGA之间吞吐量是否满足需求 约束 GPP/DSP/FPGA MHAL正常工作 行为 运行此用例,计算吞吐量并判断其是否满足需求 复杂度 一般 测试级别 基本测试 表 7 GPP−>DSP/FPGA吞吐量测试期望结果
测试声明编号 期望测试结果 关键项说明 测试声明1 与参考指标对比,判断是否满足需求 是 表 8 两种测试方法对比
对比项 本文测试方法 传统测试方法 PC与被测设备的通信机制 PC与被测设备之间采用CORBA通信机制 PC与被测设备之间采用用户数据报协议(UDP)通信机制 GPP端是否运行测试用例 GPP端无测试用例 GPP端必须植入嵌入式测试用例,此代理程序通过消息转发建立MHAL与PC端测试用例之间的通信链路 用户体验对比 用户只需在PC端一键操作,启动测试软件,即可完成MHAL接口符合性测试 需在被测设备供应商提供的基础工程中添加测试用例,编译生成可执行文件,并将该可执行文件加载至被测设备启动,然后运行PC端测试用例进行测试 -
[1] 粟欣, 许希斌. 软件无线电原理与技术[M]. 北京: 人民邮电出版社, 2010: 29. [2] Joint program executive office (JPEO) Joint tactical radio system (JTRS). Software communications architecture specification, Version 4.0[S/OL]. [2020-11-20]. Space and Naval Warfare Systems Center San Diego 53560 Hull Street, San Diego CA 92152-5001, 2012. https://www.defense.gov/
[3] Joint program executive office (JPEO) Joint tactical radio system (JTRS). Software communications architecture specification, Version 4.1[S/OL]. [2020-11-20]. Space and Naval Warfare Systems Center San Diego 53560 Hull Street, San Diego CA 92152-5001, 2015. https://www.defense.gov/
[4] 郝嘉禄. 软件无线电支撑应用系统设计与实现[D]. 长沙: 国防科学技术大学, 2015. [5] 张剑锋, 马叶锋. 软件无线电及 SCA 简介[J]. 通信与广播电视, 2006(1): 9-13, 23. [6] 李兰花. 基于SCA和USRP的通信系统设计与实现[D]. 长沙: 湖南师范大学, 2016. [7] 唐麒. 小型化软件通信体系结构的研究与实现[D]. 长沙: 国防科学技术大学, 2011. [8] GOMEZ I, MAROJEVIC V, GELONCH A. ALOE: an open-source SDR execution environment with cognitive computing resource management capabilities[J]. IEEE Communication Magazine, 2011, 49(9): 76-83. DOI: 10.1109/MCOM.2011.6011737
[9] 李雅萍, 杨尚森, 李阳. CORBA 技术在 SCA 系统中的应用[J]. 计算机工程与设计, 2008, 29(16):4200-4203, 4206. [10] 赵匡. 基于 SDR-4000 的软件无线电体系架构设计实现[D]. 长沙: 国防科学技术大学, 2012.