APP下载

基于LVDS的电子星模拟器设计

2022-03-30唐永学朱桂梅

计算机测量与控制 2022年2期
关键词:星图板卡模拟器

唐永学,朱桂梅,郝 亮

(1.北京轩宇空间科技有限公司,北京 100190;2.丹娜(天津)生物科技股份有限公司,天津 300467)

0 引言

随着近期“嫦娥”系列月球探测器、中国空间站核心舱、“天舟”系列货运飞船、“神舟”系列载人飞船的陆续成功发射,证明中国航天技术水平走在了国际前列。航天事业的步伐不断的前进,对卫星执行任务的要求越发复杂、任务完成精度越高[1],这就对卫星的姿态确定精度要求愈来愈高[2]。航天飞行器姿态测量主要的敏感器为星敏感器,卫星为了获得其在空间中的位置信息及姿态变化情况,需要利用其上装置的星敏感器来探测轴指向视场内的恒星的数量、亮度及相对位置等信息[3]。

星敏感器自身存储有全天区的导航星图,在工作过程中,通过其光学系统拍摄所对应的天球上的恒星,得到观测星图,将观测星图与导航星图进行特征匹配,从而得出卫星本体的坐标系的姿态。姿态确定的输入信息是姿态敏感器的测量数据,输出是卫星的三轴姿态参数[4]。

电子星空模拟器是与星敏感器配套的地面测试设备。它可根据输入的惯性姿态数据,实时生成与该姿态对应的星图,按照接口时序向星敏感器线路盒输出,使星敏感器线路获得所需的电子图像,从而达到实时动态模拟在轨星敏工作过程。

电子星模拟器可模拟光学系统残差、暗电流、噪声、总剂量效应、单粒子成像、温度、杂光(日、月、飞行器反射光)、拖尾等因素的影响,即可用于星敏感器软件调试、测试,也可替代动态光学星模拟器作为星敏感器的输入,用于控制系统联试,验证星敏感器在轨工作性能[5-6]。

1 系统原理与组成

星模拟器主要星在实验室里生成静态或者动态星图。星模拟器根据使用用途,可以分为静态星模拟器(static star simulator)、动态星模拟器(dynamic star simulator)和电子星模拟器(electrical star simulator)。

静态星模拟器产生一幅固定天区的星图,不能测试星敏感器的动态性能,也不能参与闭路测试。静态星模拟器的星点位置模拟精度较动态星模拟器要更高,一般用来考察星敏感器的光路和电路性能[7]。

动态星模拟器用于星敏感器动态性能的测试和标定,可以对星敏感器动态光学和电性能进行验证。动态星模拟器需要实时显示星图,对星图质量具有较高要求,具有光学系统,要求安装精度高,成本较高[8-9]。

电子星模拟器产生星敏感器线路所需的电子图像。电子星模拟器没有复杂的光学系统,电子图像传送至星敏感器的CPU板,供CPU板软件处理,从而达到实时动态模拟在轨星敏工作过程的目的,验证星敏感器的在轨工作性能。

电子星模拟器由控制计算机及相关连接电缆组成,其工作原理如图1所示。电子星模拟器由高性能PC机、图像处理板、硬件底层驱动程序(FPGA程序、硬件驱动程序等)和人机交互界面软件等组成。电子星模拟器控制计算机不仅可以自动生成星图,也可以接收动力学计算机的输入指令生成星图,因此要求电子星模拟器控制计算机与动力学计算机间的通讯协议应简单、直接。

图1 电子星模拟器系统组成框图

地面动力学每个仿真周期输出惯性四元数信息,电子星模拟器根据输入的四元数,查找星图表,实时生成与该姿态对应的星图,并将该星图转换为数字视频信号通过LVDS电缆输出,使星敏获得所需要的电子图像。在地面动力学闭环测试中,仿真周期设置为10 ms,则姿态更新周期为10 ms,星敏感器的采样周期为200 ms,可设置不同工况下电子星模拟器产生星图[10-11]。电子星模拟器图像分辨率支持1 024*1 024;图像位宽支持12 bit;能够同时完成帧频10 Hz的图像上传及采集。

2 电子星模拟器硬件方案设计

电子星模拟器包括测试计算机、LVDS图像卡、通讯卡和对应测试电缆组成。其中,电子星模拟器接受指令并按照指令生成图像,通过LVDS图像卡提供给星敏感器,也可以通过LVDS图像卡接收来自星敏感器发来的图像并存储。电子星模拟器总体结构如图2所示。

图2 电子星模拟器总体结构

电子星模拟器具体功能要求如下:

1)采用PC机扩展卡的形式,可选用PCI/PCIe接口扩展卡;

2)图像为1 024×1 024×12 bit;

3)支持同时激励2台星敏感器;

4)能够同时完成帧频10 Hz的图像上传及采集;

5)要求板卡支持最大带宽同时读写不低于20 Mbps;

6)要求板卡支持LVTTL电平发送与接收;

7)要求板卡支持RS422差分信号,不低于2路。

2.1 电子星模拟器图像处理卡

图像处理板为北京轩宇空间科技有限公司研发的PCIe LVDS图像卡。该卡主要实现LVDS、LVTTL及其RS422差分电平接口,通过PCIe 总线与PC机通讯,实现与星敏感器接口时序,以及图像的上传与下载功能。具体性能如下:PCIe板卡尺寸167.65 mm*106.65 mm;符合PCIe V1.1规范,支持PCIe 1 Lane接口;支持DMA读写功能,50 MHz系统时钟实测最大读带宽130 MB/s,写带宽84 MB/s,可支持66 MHz系统时钟,最大读写带宽可达150 MB/s;板载1GB DDR2颗粒,用作Fifo缓存;采用FPGA芯片,可根据实际需要实现特定时序接口;采用高速电磁隔离,最大传输延迟:7 ns;最大可承受脉冲电压:6 kV;最大支持20/20 LVDS输入/输出接口,符合IEEE 1596.3 SCI /TIA/EIA-644规范;支持 4/4 路3.3 V LVTTL输入/输出接口;支持 4/4 路RS422差分电平输入/输出接口,符合TIA/EIA-422-B /ITU V1.1标准。

2.2 电子星模拟器串口通信卡

串口通讯卡主要与动力学计算机进行通讯,通过动力学计算机对电子星模拟器进行远程操作,接收来自动力学计算机的指令,根据指令响应操作。采用MOXA卡,型号CP-134U-I。具体性能如下:处理最高效能可达700 kbps以上;最高传输率达921.6 kbps;提供信号自动流向控制;兼容3.3/5 V PCI和PCI-X;支持Windows、WinCE 5.0、Linux、Unix等驱动;具备15 kV ESD静电保护;2 kV光电隔离保护。

2.3 电子星模拟器主机

电子星模拟器主机负责人机交互、图像生成、图像采集、存储显示等,是测试软件运行的载体以及LVDS图像卡、串口通信卡的安装平台。采用商用计算机实现,商用计算选择是主要考虑图像处理速度、主板安装插槽、硬盘存储空间。

为了能更好的进行图像处理,在计算机CPU选择时着重考虑处理速度,目前选择i7系列CPU,主频为3.4 GHz,四核八线程,以满足图像处理速度;因MOXA通讯卡总线为PCI,而自研的LVDS图像处理卡为PCI-E接口,因此在选择主板时应选择有PCI和PCI-E的主板;选择1 T以上存储空间的硬盘。根据上述要求,选择惠普的商用电脑ProDesk 480G6。

3 电子星模拟器软件设计

电子星模拟器软件需具备合理的设计实现思路,利用Windows系统平台快速开发出软件,满足测试的要求。在性能上保证了软件的稳定性、长时间测试性、运行的快速性;同时具有较高的数据存储性能,兼顾对硬件的安全性、军工产品的安全性、可靠性以及较低的资源占有率;界面的直观操作具有美观性、可用性、通用性等。

3.1 软件运行环境

电子星模拟器软件采用Microsoft Visual Studio 2010编写,程序语言为C#以及VC++,软件运行在Windows 7操作系统下;使用NI VISA来驱动LVDS板卡。人机交互界面、图像显示模块、动力学参数模块均是使用C#开发。人机交互界面使用了WPF界面开发以及Prism框架。板卡操作模块、图像生成模块、板卡驱动模块是使用C/C++开发。这样的方案考虑了板卡操作的性能优化,以及界面开发的便捷性。C#调用C/C++动态库的接口,采用调用方清堆栈的方式进行[12-14]。

3.2 软件结构及功能模块

电子星模拟器软件为通用型软件,为了兼容多种动力学地面设备,传递动力学参数使用串口和网口两种传输模式。

软件的功能模块主要包括:人机交互、板卡操作模块、图像生成、图像发送、图像采集、动力学参数接收/生成及图像显示等功能。

1)人机交互模块。基于灵活配置的软件框架实现基本的按钮控件、编辑框控件、主界面的显示控件、开始/停止图像数据输出、开始/停止图像数据采集、动力学参数显示等。人机交互模块使用C#开发,便于界面开发实现,且较为美观。

2)板卡操作模块。主要实现功能是:初始化LVDS图像板卡发送功能、采集功能以及中断功能;维护板卡操作线程;在板卡操作线程中将模拟星图数据通过LVDS板卡发送图像数据,并通过板卡采集图像数据。此模块使用VC++开发接口,以便于C#调用为原则进行设计;调用图像生成模块和板卡驱动模块;调用NI VISA接口来操作板卡。

3)图像生成模块。主要功能是根据动力学参数以及其他系数(星点参数、标定系数等),调用星图库生成模拟星图数据。

4)动力学参数接收/生成模块。根据界面用户选择初始化相应的串口或网口,根据界面用户选择开启接收线程(从串口或网络接收动力学参数)或生成线程(本地生成动力学参数);维护动力学参数的实时性。使用C#开发;生成动力学参数主要是四元数根据当前设定的角速度进行积分、计算。

5)图像显示模块。主要实现功能是:将RAW数据格式转换BMP格式;BMP格式数据到显示窗口的转换;定时图像更新;图像分析,放大缩小,灰度值显示。使用C#开发,窗口位图按照BMP格式数据输出。

各软件模块的关系如图3所示。

图3 软件模块关系

3.3 软件工作流程

电子星模拟器软件在线程同步性方面做了较多努力,重新设计了各个线程的分工。板卡操作模块,是软件的核心模块,软件的性能主要靠板卡操作模块的运行情况来保证。在设计过程中多次对板卡操作模块的工作流程进行了优化,以提升图像发送和采集的性能和稳定性。在电子星模拟器软件中使用了多线程技术,如果不加入同步锁,进行线程同步操作时,很容易导致线程间争夺资源或表现出不合理的结果,所以在代码开发中严格使用锁,对线程同步进行严格的设计和测试,避免线程的互锁。电子星模拟器软件主要工作线程的流程如图4所示。

图4 电子星模拟器软件流程图

3.4 软件其他说明

3.4.1 动力学参数说明

为了动力学接口统一和明确,要求动力学参数传递(网络、串口)时,四元数的顺序必须为(q3,q2,q1,q0),三轴角速度的顺序为(w1,w2,w3);动力学传递的角速度的单位为rad/s;为了便于查看,界面显示的角速度单位为°/s。

3.4.2 星图库简要说明

星图库采用北京控制工程研究所的星图库,专门为小型长寿命星敏电子星模模拟器提供,目前提供的库生成的星图为1 024×1 024×12 bit。

3.4.3 板卡操作技术简要说明

LVDS输出/输入卡是北京轩宇空间科技有限公司自主研发的LVDS通讯卡,驱动使用NI VISA通用驱动。在NI VISA提供的库的基础上进行了进一步的封装,形成板卡驱动模块,使其更加易用。主要函数如表1所示。

表1 板卡驱动模块函数

4 实验结果与分析

4.1 电子星模拟器指令响应时间

根据指标要求能够同时完成帧频10 Hz的图像上传及采集,即电子星模拟器接收到动力学计算机的指令后,将生成的星图上传给星图的响应时间≤100 ms。响应时间定义:电子星模拟器接收到指令计算机最后一个字节停止位至电子星模拟器将图像的第一个数据位推出的时间间隔。

由于使用Windows系统,实时性有一定限制。为保证图像正确性及其周期性准确,采用板卡端控制时序的策略,在发送一帧图之前的一定时间内,向软件发送图像数据请求。软件则需要在请求时间内,将图像数据发送至板卡。这样的方案下,由于板卡时钟和动力学指令为异步,则有,请求时间<电子星模拟器指令实际响应时间<请求时间+动力学指令时间间隔。电子星模拟器指令实际响应时间受设定的请求时间以及动力学指令时间间隔两方面影响。

为了配合验证,将动力学参数指令发送时间间隔设定为10 ms。为了保证图像数据的准确性,请求时间应大于软件端所需要的图像发送时间。软件操作流程如图5所示。

图5 软件操作流程图

通过以上分析,影响响应时间的因素主要有:星图生成时间、写DMA时间及Windows线程调度引起的线程等待。表2所示的是通过软件打印星图生成时间、写DMA时间,以及获取的请求标志时间间隔,运行情况为单通道发送。

表2 单通道软件测试发送时间

星图生成时间较短,均小于5 ms。板卡写DMA带宽为84 MB/s,根据此速度计算得到写2 MB数据时间为23.8 ms。根据上图可以看出,DMA时间最大为25 ms。连续发送1 000次2 M数据的时间为24 120 ms,认为DMA发送时间为25 ms是可信的。

为了确认Windows系统下,线程调度引起的线程等待时间,在2通道发送、采集均开启的情况下,继续进行测试。通过48小时拷机实验,利用软件输出的数据文件进行统计,结果为:中断的时间间隔为90~110 ms,中断响应受Windows系统线程调度影响导致的不稳定度认为是10 ms;从接收到板卡中断,到写DMA完成时间为25~45 ms;从接收到板卡中断,到写DMA完成,再到读取板卡采集图像数据完成,时间为50~75 ms;一个周期内,最大的耗时不超过中断的不稳定度+完成发送采集的时间,即10 ms+75 ms=85 ms,为了保证系统的稳定性,中断到板卡开始发送数据的时间间隔设定为90 ms,略大于测试的最大耗时,周期为100 ms,则可以保证系统的正常运行。

综上所述,使用动力学参数生成图像的时机为响应中断的时间,中断到板卡开始发送数据为90 ms,响应中断的不稳定度为10 ms,可以认为取动力学参数的时间到发送图像的时间为80~90 ms,由于动力学参数间隔为10 ms,故电子星模拟器指令响应时间为80~100 ms,满足系统设计指标。

4.2 电子星模拟器四元数误差

在某卫星控制分系统地面测试中,将电子星模拟器接入闭环测试回路,在测试过程中,将同一时间段的地面动力学输出给星敏的理论数据和星敏采集到的姿态信息数据进行分析,理论值和采集值的误差曲线如图6所示,经过数据分析,理论值和采集值的最大误差为0.000 7,小于0.07%,此误差对于闭环测试系统姿态确定的影响可忽略不计。电子星模拟器性能满足要求,证明了电子星模拟器的实用性和有效性。

图6 理论值和采集值误差

5 结束语

本文设计完成了电子星模拟器的软硬件,此电子星模拟器在某卫星控制分系统地面测试中成功的进行了闭环试验。为更充分的验证卫星控制系统方案的可行性,以及确定姿态的工作情况,将电子星模拟器应用于卫星控制分系统的闭环测试中,在地面模拟了星敏在轨识别的星图,测试结果表明电子星模拟器动态响应迅速、工作稳定、误差小,该电子星模拟器具有通用性,可广泛应用于控制系统闭环测试中。

猜你喜欢

星图板卡模拟器
讲给孩子的航天发展故事(6) 被英国人骗走的敦煌星图
驾驶模拟器转向系统的设计与研究
盲盒模拟器
跟着EN菌来个星空大发现
星图完成功能升级
中国古代星图展
航空电子设备维修方法分析与研究
航空电子设备维修方法分析与研究
中国首个自主研发的地球模拟器投入使用
板级备件通用测试系统设计