APP下载

基于PXI总线的星载机仿真系统研究

2020-01-03

计算机测量与控制 2019年12期
关键词:PC机控件子系统

(长沙湘计海盾科技有限公司,长沙 410008)

0 引言

地面卫星仿真与测试平台可在前期的算法验证、硬件系统可靠性评估中,为设计人员提供快速、低成本、有效的解决方案。让卫星的通用化和小型化成为可能[1]。在现有的卫星仿真系统设计中,功能模块化已成为主流,并通常应用了高性能通用处理器和实时操作系统,采用软件来实现大部分硬件的功能,极力简化硬件复杂度,提升系统可靠性。与此同时,对软件设计能力也提出了更高的要求。星载计算机必需与多个子系统并行进行数据采集和数据处理。对卫星星载计算机及其外围设备的管理也提出了更高的要求[2]。

PXI作为一种成熟的模块化仪器系统,可以通过成熟的触发总线来进行多板同步。并可通过新型触发总线来进行精确定时[3-5]。通过局部总线来进行相应模块的高速通信。并且PXI具备优秀的扩展性,当我们需要使用一项新技术应用到星载机上时,可以直接在已有的基础上添加相应模块,减少投入成本[6-8]。因此,本文采用PXI来进行星载机的仿真与测试[8-10]。

1 星载机仿真系统设计方案

整个卫星地面仿真系统包含4个分系统:动力学仿真系统、敏感器仿真系统、星载机仿真系统、执行部件仿真系统。分别由4台PC机在LabVIEW环境中运行各分系统仿真程序,各分系统通过PC机上的CAN卡来进行数据通讯[11-13]。

为了验证星载机源程序算法的正确性以及使用CAN总线来进行数据通讯的可行性,将仿真系统分为两个步骤进行:

首先,在PC机下的LabVIEW环境中通过CAN卡进行各分系统之间的数据通讯。星载机的源程序编译成动态链接库后可以在LabVIEW中方便地调用。因此,通过CAN卡提供的函数,就可以在LabVIEW中进行通讯程序的编写。

其次,将PC机下的CAN通讯程序移植到PXI的RT系统上面运行,PXI提供了一系列的CAN通讯控件,通过调用这些控件来进行数据通讯。上位机上编写的程序下载到PXI中,检验其RT系统的实时性是否可以满足星载机的要求。

1.1 CAN总线通讯

CAN总线通讯协议描述了不同设备之间的信息传递方式。通过分层来有效解决数据的可靠性,实际的数据通信发生在每个设备相邻的两层。不同设备只需要通过物理端连接即可。实际开发中只需要关注应用层协议,可以由用户根据自己的应用场景自由定义。

卫星地面仿真系统包括4个子系统:动力学仿真系统、敏感器仿真系统、星载机仿真系统及执行部件仿真系统,各系统分别运行在PC机上,它们之间通过CAN进行通讯。仿真系统之间CAN通讯结构如图1所示。分系统之间的数据通讯包括下面的5个部分,其中第1项为动力学仿真系统分别向敏感器和执行部件仿真系统发送数据。动力学系统的运行周期为25 ms,其他分系统接收到数据马上处理,处理完毕之后立即向后面的系统发送数据。这样整个系统的周期能保持在25 ms内,保证仿真系统的实时性要求。注意执行部件必须接收到动力学系统和星载机系统发送后的数据后才开始运行。

1)动力仿真系统→敏感器仿真系统,

动力仿真系统→执行部件仿真系统;

2)敏感器仿真系统→星载机仿真系统;

3)星载机仿真系统→执行部件仿真系统;

4)执行部件仿真系统→动力学仿真系统。

由图1可见,各系统都通过CAN卡将数据发送到CAN总线上面,因此各系统通过CAN控制器的验收与屏蔽码的设置来接收需要的数据帧。

图1 CAN总线结构图

1.2 SJA1000控制器设置

SJA1000滤波器由4个验收代码寄存器和4个屏蔽代码寄存器组成,分别为ACR0、ACR1、ACR2、 ACR3、与AMR0、AMR1、AMR2、AMR3。其中每个寄存器都为一个字节。

单滤波是指只有一个由4个验收码寄存器和4个验收屏蔽码寄存器组成的验收滤波器,总线上的信息只有通过了它的验收滤波,才予以接收。

1.3 CAN通讯协议

1)CAN总线协议规范:本文所采用CAN2.0 A版本的总线协议规范。 CAN总线节点电气接口由82C250 CAN总线收发器芯片或其他兼容芯片构成。

2)数据帧结构:本线系统采用标准数据帧来传送各部件的数据和指令,标准数据帧相关结构如表1所示。

表1 CAN2.0A标准帧结构

说明:

(1)不同子系统进行通讯时,其发送帧和接收帧的ID号是一致的;

(2)对于一包涵盖所有子系统通讯数据的完整的数据帧,其ID分配规则如下:

1帧: 1个ID;

2帧: 2个ID,其中头帧ID优先级高,尾帧ID优先级低;

3帧: 3个ID,其中头帧ID优先级高,中间帧ID优先级次之,尾帧ID优先级最低;

3帧以上:3个ID,其中头帧和尾帧各用一个ID,中间帧共用一个ID,采用多次传送,其优先级设置同3帧。

星载机CAN总线协议:

星载机每包数据包含70字节的数组,为满足CAN数据传输的要求,先将其填充成80字节的数组,然后再通过10帧发送出去。

2 基于PC机的仿真系统设计

2.1 硬件平台

PC机:

CPU:Intel Pentium4 2.4 G;

内存:Kinston DDR 512 MB;

显卡:NVIDIA GeForce4 Ti4200;

CAN卡:ZLGPCI9820

该卡设备参数如下:

计算机接口: 32位33 M PCI 数据总线,即插即用;

CAN控制器: PHILIPS SJA1000;

CAN收发器: PHILIPS PCA82C250;

数据传送速率: CAN总线速率可编程,范围在5 Kbps~1 Mbps 内;

CAN 通讯接口: DB9 针型插座,符合DeviceNet 和CANopen 标准;

光电隔离耐压: 1 000 VDC;

CAN协议: CAN 2.0 B规范(兼容CAN 2.0 A);

建议最高帧流量: 单通道1 000帧/秒;

数据缓冲区大小: 软件发送缓冲16 帧,软件接收缓冲100 000帧;

温度: 0~70 ℃;

物理尺寸: 标准PCI 短卡(130 mm*90 mm)。

2.2 软件环境

实验室虚拟仪器集成环境(Laboratory Virtual Instrument Engineering),是一种基于图形化的编程语言。这种图形化编程工具和以往基于文本型的编程语言最大的不同是,使用这种语言编程时,不需要编写程序代码,而是采用图形模块、数据流连接线来形成流程图。

使用图形化编程的优势在于它可以充分利用行业内所熟只的术语概念来设计通用的图标看,通过图标可以快速知道其基本的功能与输入输出接口。因此,LabVIEW是一个快速灵活构建测试、仿真的工具。其通用的仪器编程和数据采集规范可以有效提升用户的科学、工程系统的能力。使用它进行原型机验证时,具备有独特的优势。

LabVIEW带有函数库和子程序库具有良好的扩展性,在应用于Windows桌面程序设计时,还提供了用于仪器设备控制、总线控制、以及科学计算、数据分析、显示与存储等应用程序模块。此外,其还可以方便地调用Windows下编译的动态链接库,通过提供CIN(Code Interface Node)节点来调用C或C++编译的程序模块,使得LabVIEW成为一个开放的开发平台。此外其系统的开发工具箱使得用户能够方便地进行程序调试,非常直观地观测数据传输过程。

2.3 通讯程序开发

本应用程序在PC环境下进行编写。CAN卡采用周立功公司的ZLGPCI9820双路CAN卡,该卡的驱动程序包提供了LabVIEW下的动态连接库文件,其包含了我们开发应用程序所需要的VCI函数。通过LabVIEW下的CLF节点,可以方便地对CAN卡进行初始化、数据发送、数据接收等操作。VCI函数调用流程如图2所示。

图2 VCI函数使用流程

根据CAN通讯协议的要求,星载机必须接收执行系统、动力系统、敏感器发送来的数据包,然后将接收到的数据进行处理后输入到星载机源代码中计算,最后将计算结果进行处理,通过数据包发送出去。程序流程图设计如图3所示。

图3 星载机程序流程图

根据仿真系统的设计要求,在制定的CAN通讯协议中规定了各分系统数据帧验收码、屏蔽码、波特率等参数,在LabVIEW中的程序控制面板中进行设置即可。

应用程序中CAN0、CAN1分别为CAN卡的两个端口,可对其进行单独操作。DeviceType中选择CAN卡的型号。Filter控件为滤波类型选择,可选择单滤波还是双滤波。

其中ReceiveNum控件显示缓存中数据帧的帧数,ID控件中设置要发送数据帧的ID,IDReceived控件显示接收到数据帧的ID号。

2.4 系统联试

各分系统应用程序编写完毕后,将其分别运行在四台PC机中。通过调试,各系统之间的数据传输稳定正常。验证了通讯协议的正确性与CAN总线进行通讯的可行性。

3 PXI仿真系统设计

3.1 PXI总线概述

PXI作为PCI总线在仪器控制领域内的扩展。定义了相关电气和软件规范,形成了虚拟仪器体系。该体系具备成熟的技术规范和要求,并具有高速信号采集和存储、高精度定时同步的能力,还具有优秀的扩展能力。

3.2 硬件平台

机箱-1044、控制器-8196、示波器-5124、多功能卡-6259、万用表-4071、定时模块-6608、矩阵开关-2503、CAN模块-8461。

3.3 软件环境

PXI软件开发环境为Window和LabVIEW RT系统,本文中的试验在LabVIEW RT 系统中进行编写。LabVIEW RT 的实时性非常好,并具有分布式工程开发的优点。在上位机的LabVIEW中开发的CAN通讯程序,可以通过网线下载到实时操作系统中操作CAN卡,然后就可以运行。

3.4 通讯程序开发

PXI提供了型号为8461的CAN卡,该卡采用飞利浦SJA1000独立控制器,并具有两个CAN口,为实现卫星地面仿真与测试系统的要求,在PXI的LabVIEW环境下进行了CAN通讯程序设计。

PXI 8461CAN卡具有两种程序设计方式:一种是Frame API;另一种是Channel API。本程序中采用应用范围更广的Frame API,Frame API支持远程帧。程序主要通过以下6个VI ncConfigCANNet.vi、ncOpen.vi、ncGetAttr.vi、ncReadNetMult.vi、ncWriteNetMult.vi、ncClose.vi来进行编写。

由于在PC机下PCI9820CAN卡与PXI下8461CAN卡的控制器均为SJA1000,因此,其设置方法也基本相同。不同的是其屏蔽码的设置正好相反,在PCI9820CAN中FFFFFFFF表示全收,而在PXI中表示只接收与验收码相同的ID数据帧。按前面的经验对波特率、验收码、屏蔽码进行设置后,程序即可运行。

3.5 系统联试

PXI中程序编写完毕后,接入卫星地面仿真系统中,通过CAN总线与动力学系统、敏感器系统、执行部件系统进行数据通讯。此时动力学仿真程序与星载机仿真程序均运行在PXI中,通过PXI的并行处理技术来运算。此二系统分别采用一个CAN口来进行数据的收发。其中星载机采用CAN1,动力学采用CAN0口。

执行部件仿真程序运行在C8051单片机中,通过板载CAN模块收发数据。敏感器仿真程序运行在DSP中,通过自带的CAN模块来进行数据的收发。此二系统的程序流程图与星载机相似,均为接收完数据后计算,计算后又马上把数据发送给下一个系统。

4个分系统的数据均发送到总线上,通过设置CAN参数来决定数据帧的收发。硬件仿真系统搭建完成后,经过调试,各系统均运行正常,数据发送正确。姿轨控制参数曲线分别如图4和图5所示。

图4 飞轮电压(对日)

图5 姿态角速度

3.6 仿真结果及分析

仿真系统源代码的在Matlab与VC中进行了数学仿真,其中的飞轮电压与姿态角速度如图6,图7所示。将这些曲线与PXI中的曲线进行对比,可以发现其吻合程度非常好。其他重要参数的曲线也都与数学仿真的结果非常吻合。通过长时间的试验,该仿真系统运行稳定可靠。

图6 飞轮电压

卫星控制系统的性能由姿态角速度和姿态四元数来判定。从图6、图7来看,姿态角速度与四元数在经过一段时间的运行后,逐渐趋于稳定,满足系统稳定判据的要求。

通过对比,在PXI中的仿真结果纯数学仿真结果相同。由此,可以证明使用PXI与CAN总线技术来进行星载机仿真的可行性。

4 结论

通过本文的研究,开发了基于PXI的卫星地面仿真及测试系统,主要成果包括以下几个方面:

1)完成基于LabVIEW环境的星载机仿真系统的设计,实现了该子系统与动力学仿真子系统,敏感器仿真子系统,执行部件仿真子系统之间的数据通讯。通过对卫星各部件之间的联试,验证了星载机系统控制算法的正确性。

2)采用CAN总线来进行星载机的数据传输,测试了CAN总线的高速数据传输能力及稳定性。

3)利用LabVIEW强大的数据分析工具包和良好的软件兼容能力,设计了星载机子系统综合测试系统,并完成了相应的测试工作。验证了PXI进行大规模数据处理能力以及扩展性能,其实时性能也很好地满足了星载机的设计要求。

本文中实验和仿真得到的结论反映了PXI总线技术的先进性,为仿真与测试方面的应用提供了理论基础。本文的研究成果具有良好的通用性,本系统可作为航天器的通用仿真与测试平台。本文的结论利用PXI来进行星载机仿真与测试具有重要的实际价值。

猜你喜欢

PC机控件子系统
不对中转子系统耦合动力学特性研究
使用“填表单”微信小程序 统计信息很方便
基于.net的用户定义验证控件的应用分析
关于.net控件数组的探讨
网络空间供应链中入侵检测及防御子系统的投资机制研究
网络空间供应链中入侵检测及防御子系统的投资机制研究
一种基于NB-IoT的公路雾灯自动指示系统
基于WiFi技术的智能手机双控视频小车
用VC++实现PC机与单片机的串行通信
单片机与PC机串行数据通信的工程实践