马玉海,陈雪芹,耿云海,兰盛昌,潘 瑞
(哈尔滨工业大学卫星技术研究所,150080哈尔滨,cxqhit@163.com)
某型号卫星桌面联试平台数据接口研究
马玉海,陈雪芹,耿云海,兰盛昌,潘 瑞
(哈尔滨工业大学卫星技术研究所,150080哈尔滨,cxqhit@163.com)
对某型号卫星桌面联试平台中的数据接口设计与实现进行研究.首先,结合工程需求设计以实时仿真机和星载计算机为中心的桌面联试平台总体结构,并描述平台中各部件之间的接口关系.然后,针对平台中实时仿真机的组成、xPC Target接口编程,接口采样时间,双精度浮点数的接口编码以及CAN总线应用层协议的制定等问题进行研究.最后,通过测试分析验证数据接口方案的有效性与实用性.
卫星;桌面联试;数据接口;实时仿真机;星载计算机
在卫星型号研制过程中,对星上所有设备进行桌面电性能联接调试是必不可少的步骤.卫星桌面联试可以初步验证卫星各功能部件的电气特性和数据接口是否兼容,以及整体设计能否完成任务需求,为型号研制的后续工作展开提供基础.从某种程度上讲,所谓的联接测试平台,就是为构成桌面联试系统,联接起各种星上设备的一系列接口的集合.
卫星桌面联试所涉及的设备、单位和人员较多,常规的桌面联试常常占用较大的工作量和较长的研制时间.为了缩短卫星研制周期,实现卫星研制任务快速响应,满足低成本的新需求、新理念,有必要构建一种具有高可靠性和可扩展性且开发周期短的卫星桌面联接测试平台,进行整星的调试与研制;同时也可以通过调整测试平台的实时仿真组件,适应性地形成不同的仿真回路,实现对卫星各分系统设备的独立调试[1-2].
数据接口的实现是设计高效的联接测试平台的关键.解决了各分系统部件之间的数据接口问题,卫星的研制就得以按功能划分为各个模块,各分系统研制团队通过遵循统一的数据接口规范,构建功能相对独立的模块,从而使研制任务的分配清晰明了、整星与各分系统任务规模减小、成本降低、整星的研制效率提高.同时,已开发成熟的模型和程序等通过适应数据接口规范,可以继承性地应用到新的任务中去,大大缩短后续型号的研制周期.
本文针对某型号卫星桌面联试平台系统的体系结构方案及其主要组成进行详细描述,对实时仿真机的组建、xPC Target接口编程,接口采样时间,双精度浮点数的接口编码以及CAN总线应用层协议的制定等关键问题进行分析与设计,并通过设计的地面控制台发送指令并接收数据,对桌面联试平台系统及其数据接口设计进行测试分析,检验数据接口解决方案的有效性、实用性.
典型的卫星桌面联试系统由实时仿真计算机(仿真机)、地面控制台、星载计算机(星载机)和其它星上部件/设备组成[1-4].桌面联试过程可以对尚未研制完成的设备、不便实现的动力学过程、以及难以获得的环境因素建立数学模型,生成可在仿真机中运行的实时目标代码,以模拟真实运行情境的输入和响应.
在星载机中运行真实的星上控制程序,通过地面控制台发送指令并接收数据,对桌面联试平台系统与各数据接口进行测试分析完成桌面联试.因此,为实现某型号卫星的桌面联试,设计桌面联试平台体系结构如图1所示,主要由3部分组成.
1)xPC实时仿真机.基于PC/104构建并配置有多种外部接口,用于运行xPC Target实时目标代码,模拟星载机外部的设备环境.
2)地面控制台.基于PC机构建并配置多种功能软件及外设接口,用于卫星地面站的模拟及执行仿真过程中的监视与控制.使用MATLAB/Simulink及Visual C++构建xPC Target实时目标编译环境,在调试过程中可实现实时目标的编译、下载、修改及监视;Xilinx Platform Studio(XPS)完成对星载计算机中FPGA嵌入式内核及星载计算机程序注入;用Visual C++编写Windows串口操作界面作地面控制台,按星地指令协议向PCI串口板写入地面指令和接收下行数据.
3)待测星上设备.包括星载计算机、GPS接收机、信号处理单元、数据处理器、测控应答机以及有效载荷中央电子设备等.
图1 某型号卫星桌面联试平台体系结构
图1中所示各设备间的接口关系为:待测星上设备及其与仿真机之间统一采用CAN总线联接,CANcaseXL总线分析仪用于监测调试.仿真机内部主模块与各接口板间用PC/104PLUS总线联接.仿真机与地面控制台之间采用无线通信链路,用蓝牙串口模块BlueRS+E实现.仿真机中的实时目标代码可经局域网电缆或无线局域网通过TCP/IP方式由PC机上注,并可在调试完毕后,通过配置xPC Target Embedded Option以StandAlone模式固化,随仿真机启动运行;星载机中FPGA的BITSTREAM文件从PC机上的开发平台软件通过USB接口上注,并在调试完毕后可进行固化,随上电自主运行.
桌面联试平台的核心设备有:
1)PC/104实时仿真机.PC/104是通过改造成熟的 PC架构形成的工业控制计算机,PC/104PLUS支持 PCI BUS.基于PC/104PLUS组建实时仿真机具有稳定性高、速度快、可扩展性好、接口丰富、体积小巧、开发便捷等特点,适于桌面联试及基于气浮台的半物理仿真[2- 3,5].
本测试平台选用PC/104PLUS智能嵌入式计算机DIGITAL-LOGIC MSM855作为主模块,配置Diamond Emerald-MM8串口通讯板及 Softing CAN-AC2-104 CAN通讯板,扩展了8路串行接口和2路CAN接口.主模块与通讯板间通过紧凑的堆栈式联接成为1个整体设备.值得一提的是,MATLAB/Simulink xPC Target提供了对这些接口通讯硬件产品的支持,可以方便地实现对接口的操作.
2)星载计算机.星载计算机以FPGA为核心集成CAN接口,在快速动态可重构技术的基础上可按控制功能的要求改变计算机构架,使计算机系统结构与控制过程相匹配,从而获得优良的系统性能,也称为可重构星载计算机.其功能结构主要包括处理器单元、配置模块单元、射频模块.
桌面联试中,在星载计算机中运行真实的星上控制程序,并通过CAN总线完成敏感器的数据采集及执行机构的控制输出(敏感器和执行机构可以采用数学模型或者实物),与仿真机及其他星上设备样机构成仿真回路[4].
图2 实时仿真机接口设计
本测试平台采用的实时仿真机接口硬件产品受xPC Target支持,因而参照软件提供的说明文档,可以清楚地了解接口编程的基本操作[6].然而,实际使用中必须对仿真机接口、采样时间、数据格式与接口编码以及总线协议等进行详细设计,以建立完整的桌面联试平台.
如图 2所示,采用 MATLAB/Simulink xPC Target进行仿真机的接口设计,其中Diamond Emerald-MM8 Serial为串口板驱动模块,CAN-AC2-104 Setup为CAN通讯板配置模块[7].RCV1处接收由蓝牙串口模块传送来的模拟地面控制指令,进行数据分流后,分为协议部分和数据部分.XMT1处的数据来自于发送控制时序生成模块Send Rate及CAN总线数据接收模块 CAN Receive,经串口板由蓝牙串口模块传送回模拟地面控制台.
图2中的数据链路可描述为:右侧RCV1→CAN Send代表卫星指令接收装置,接收到地面遥控指令后,根据星地指令协议向星载机发送指令;星载机根据星务管理协议判断该指令对应的设备及操作,例如向有效载荷中央电子设备发送遥测数据下行指令;左侧Receive~XMT1代表中央电子设备,接收到遥测数据下行指令后按协议解析,控制遥测数据按时序发送,直到下行允许指令被复位.
与数学仿真不同,仿真机中的xPC Target实时目标需要采用定步长的数值积分解算器,以定步长运行[8].为保证仿真测试效果,应选取较小的积分步长.接口操作受波特率及接收端处理能力的限制,发送数据时不能采用过小的采样时间;而接收数据希望实时性好,宜采用小的采样时间.因此,必须解决接口配置模块收发采样时间要求不一致的问题[3].
Emerald-MM8串口板驱动模块的Transmit Setup中可设置发送缓冲区数据格式带有待发送数据长度count.通过产生控制时序动态修改count值,(count为0时不发送数据)可实现在保持配置模块较小采样周期的前提下使发送周期加长.
图2中Send Rate模块的实现如图3所示,采样周期为0.05 s.设置模块Pulse Generator中的周期参数为1 s,脉冲宽度为5%,相位延迟为1 s,生成的时序波形如图4所示.指令信号为真时,每1 s内只有第1个采样周期允许发送71 B遥测数据,指令信号为假时,不允许发送数据.
联试平台中收发的数据类型包括整型和浮点型.整型数据用于描述开关指令,计数值等;浮点数用于表示精确时间、姿态参数、某些控制指令以及遥测数据等信息.IEEE754双精度浮点数是标准的浮点数格式,如何将其通过接口或总线进行精确、高效的收发是数据接口设计的关键.
图3 控制时序生成模块图
图4 控制时序波形
MATLAB/Simulink不方便进行数位、内存以及接口编码等操作,考虑用C语言编写 S-Function,实现对浮点数的收发[3].其中 mdlOutputs函数中关键的代码如下:
64位浮点数和8 B无符号整型字面值通过联合体共享内存,可实现双向转换[9];S-Function的唯一参数用于设定采样时间.这种方法无须进行算术及移位运算,效率高,传输精确,星载计算机解码方便.利用封装模块对双精度浮点数-3.141 592 653 589 8(十六进制字面值C00921FB54442D28)进行自发自收的效果如图5.
图5 接口编码模块收发浮点数
控制器局域网(Controller Area Network,CAN)总线是近年来通过对工业现场总线标准进行改造,应用到航天领域的总线;具有可靠性高、速度快、总线操作方便等优点[10].本联试平台采用PC/104实时仿真机,以较低的成本扩展了CAN总线接口板.制定CAN总线应用层通信协议即为不同设备分配满足其功能需求的报文识别码(帧ID).
CAN总线扩展帧ID所在的字节如表1.可见,由于ID尾部未填满整字节,从协议字面信息不容易得到有意义的ID值.而在编程、监视过程中,要大量使用ID值.因此,使用Visual C++设计CAN扩展帧ID计算器如图6.
表1 CAN总线扩展帧帧信息局部字节表
图6 CAN总线扩展帧ID计算器
其核心程序段如下:
通过共同体共享内存,并用位段方式占据末5个不整字节数位,简捷地达到了换算效果.
测试过程分为4个阶段,分别如下.
1)准备阶段.包括各设备电气联接,加电;程序的上注、运行;模拟地面控制台端口打开,监视软件启动、初始化.
BlueRS+E蓝牙串口模块按说明配对后,加电即可工作;注意使用时读写串口的参数要与配对时一致.模拟地面控制台是采用Visual C++在PC机上开发的串口操作界面程序,如图7.针对联接测试中制定的星地指令协议编写,可以方便地点选发送给定含义的指令,或读取文本文件中的指令序列自动定时发送,以及接收下行数据.该程序通过对串口操作,经蓝牙串口模块与仿真机间构成模拟无线星地数据链路.CANcaseXL总线分析仪通过USB电缆联接到PC机,安装驱动程序后,可由专用的CANalyzer软件监视、分析总线活动,程序界面如图8.
图7 卫星地面控制台界面
2)通过模拟地面控制台,手动发送若干测试指令,查看监视及应答结果.
发送指令序号为 01,指令内容全为 00,经蓝牙串口模块无线传输到仿真机后,由图2中RCV1→CAN Send部分解析,在2通道CAN总线上向星载计算机发送ID为8414000x的一帧,如图8中第1行数据所示.由第2行数据可见,星载计算机接下来在1通道CAN总线上向相应设备发送了ID为1C814000x的一帧.第3行到第6行数据运行原理相同,但定义为不同功能含义.
图8 CAN总线数据监测图
3)通过模拟地面控制台,读取指令序列文件定时发送,查看监视及应答结果.
指令序号为0 B,指令内容来自预先写好的指令序列文件,定时间隔500 ms发送一行.实时仿真机解析后在2通道CAN总线上向星载计算机发送ID为844E000x的四帧,文件内容发送完毕,如图8.从对应的下一行可见星载计算机接下来在1通道CAN总线上向相应设备发送ID为1884E000x的一帧,并在数据域转发了指令文件内容.
4)测试通过发送指令,控制星上遥测数据下行.
用CANalyzer设置定时触发节点,总线启动后模拟星上遥测设备定时1 ms向图2中CAN Reveive模块所含的9个ID相应发送9帧数据一次,如图9中前九行数据.模拟地面控制台发送数据下行指令后,星载机向中央电子设备发送数据下行允许指令帧,如图9中第十行数据.图2中判断Send Rate指令为真,模拟地面控制台接收数据区域观察到下行数据(71 B),并间隔1 s更新,可见与图9中标记的数据吻合.(204=CCh,255=FFh,末字节未传送).模拟地面控制台发送数据下行停止指令后,星载机向中央电子设备发送数据下行停止指令帧,如图9中第11行数据.图2中解析协议的逻辑部分输出到Send Rate的指令为假,从模拟地面控制台观察到下行数据更新停止,测试完毕.由指令、数据传输测试结果,可见各接口协议、编程正确,数据链路通畅,传输无误,时间间隔准确.
图9 控制遥测数据下行监测图
本文讨论了卫星桌面联试平台构建工作中有关数据接口的问题.描述了如何基于PC/104构建接口丰富的实时仿真机,并利用MATLAB/Simulink xPC Target对其进行接口编程.利用CAN总线、串口、BlueRS+E蓝牙串口模块等接口方式,完成了一种卫星桌面联试平台数据接口解决方案.在此过程中解决了实时仿真中接口的采样时间,双精度浮点数的接口编码,以及CAN总线应用层协议的制定问题.最后,通过数据传输测试证明了数据接口解决方案的有效性、实用性.
[1]王峰,曹喜滨,邱文勋,等.小卫星控制系统半物理仿真验证平台[J].哈尔滨工业大学学报, 2008,40(11):1681-1685.
[2]KIM B,VELENIS E,KRIENGSIRI P,et al.Designing a low-cost spacecraft simulator[J].IEEE Control Systems Magazine, 2003,23(4):26-37.
[3]杨正贤,孔宪仁,王继河,等.基于xPC的小卫星半物理仿真验证平台[J].系统仿真学报, 2009,21(20):6444-6448.
[4]王继河,王峰,施梨,等.基于dSPACE的微型核仿真验证系统[J].系统工程与电子技术, 2007,29(12):2149-2153.
[5]PC-104 Consortium.PC/104(PLUS)Specifications[B/OL]. http://www.pc104.org/.
[6]MathWorks Inc.MATLAB/SIMULINK RS232 Diamond emerald MM8 help document[R].Natick:The Math-Works,Inc.2007.
[7]MathWorks Inc.MATLAB/SIMULINK CAN Softing CANAC2-104 SJA1000 Help Document[R].Natick:The Math-Works,Inc.2007.
[8]MathWorks Inc.MATLAB/SIMULINK xPC Target Help Document[R].Natick:The MathWorks,Inc.2007.
[9]王力.科学计算程序语言的浮点数机制研究[J].计算机科学, 2008,35(4):285-291.
[10]刘淑芬,孙昕.CAN总线在卫星中的应用技术研究[J].航天控制, 2004,22(6):79-83.
Research on data interfaces in desktop testing platform for a certain satellite
MA Yu-hai,CHEN Xue-qin,GENG Yun-hai,LAN Sheng-chang,PAN Rui
(Research Center of Satellite Technology,Harbin Institute of Technology,150080 Harbin,China,cxqhit@163.com)
Research on design and implementation of data interfaces in the desktop testing platform for a certain satellite was introduced in this paper.Firstly,to satisfy the engineering requirements,general structure of the platform was designed with the real-time simulator and the on-board computer as its core components,and the interfaces among various components in the platform was described.Then,topic focused on researching problems including constitution of the real-time simulator,programming on interfaces using xPC Target,sample time of the interfaces,encoding double precision floating point number for transmission through interfaces,and design of CAN bus protocol on the application layer.Finally,by analyzing results of the testing experiment,effectiveness and practicality of the data interfaces solution were proved.
satellite;desktop testing;data interface;real-time simulator;on-board computer
V422
A
0367-6234(2011)09-0025-05
2010-04-23.
国家自然科学基金资助项目( 60904051,61104026).
马玉海(1988—),男,硕士研究生;
耿云海(1970—),男,教授,博士生导师.
(编辑 张 宏)