太阳模拟器智能采集卡太阳模拟器智能采集卡是本系统关键部件,以Atmega128单片机为核心,外围电路由ADC和DI采集部分、DAC和DO输出部分以及串口通信部分构成。各卡单片机上串口0向GNCC输出太阳角度信息,串口1既用做双CPU之间的数据实时交互,又作为本卡故障注入通道。单卡硬件原理如图2所示。
太阳模拟器采集卡电气原理图2功能实现和软件编程2.1单片机软件下面以太阳模拟器1板载程序为例讨论。
(1)各种太阳敏感器角度计算主程序main通过不断刷新采集敏感器信号计算出太阳姿态角度。其中Dss1CodeX_Angle函数中细码的算法和Ass1函数中对光电池信息的处理较为繁琐,需经大量的浮点运算。
Atmega128具有的精简指令集RISC结构和1MIPS/MHz的高速运行处理能力对本案实时地取得太阳角度尤为重要。
(1)基于AVR双CPU的太阳模拟器及其故障注入系统采集太阳敏感器一部分粗码和监视码信号Take_AIJ//采集太阳敏感器一部分细码和光电池信号Dss1CodeX_AngleJ//计算数字太阳1的细码角度Dss1CodeC_AngleJ//由采集的格雷码计算数字太阳1的粗码角度Dss1J//由粗码和细码合成完整的数字太阳1角度码Ass1J//计算模拟太阳1、模拟太阳21、模拟太阳22的角度码DOJ//输出逻辑太阳、应急和监视码信号DAJ//输出“模拟器太阳”角度的电压量YY(2)串口功能实现由外中断处理函数uart1_rx_isr承担如下任务:①通过GX5658板接收太阳模拟器采集卡2上Take_Angle函数计算的另一半7个字节的角度信息,形成完整的一桢数据,数据包头为91EB。
②发送本板上Take_Angle函数计算的半桢7个字节的角度信息,使太阳模拟器采集卡2同时形成完整的一桢数据,数据包头为99EB。
③当有注入的故障角度时,接收一桢34个字节的故障角度值的完整信息。数据包头为EB90。
外中断处理函数uart0_rx_isr调用故障模式的应对函数GZ_ctl,响应GNCC的取数指令,对GNCC输出整桢角度数据。
在uart1_rx_isr中设置中断嵌套,使uart0_rx_isr可以中断其正在进行的数据交互。
(3)故障模式的应对函数GZ_ctl可通过注入改变的变量有三种状态:保持、强制和阶跃。上述注入的34个故障字节中,含有故障控制字节和故障变量字节。每2位故障控制位对应一个故障变量字节:00表示对应变量对GNCC输出采用计算值;01表示采用注入强制值;10表示对应变量采用注入阶跃值,即计算值和注入值之和。函数GZ_ctl完成对24个故障变量之故障模式的识别和处理,将全部变量按故障模式和变量值整理后传给GNCC。
GX5658应用软件GX5658对2个太阳模拟器采集卡的接收采用中断方式。
该板主程序main承担如下任务:①GX5658在主程序中向太阳模拟器采集卡1发包头91EB后,延时等待中断处理函数int0_isr收回包头为99EB的7个字节,转发给采集卡2;然后主程序中向太阳模拟器采集卡2发包头91EB后,延时等待中断处理函数int0_isr收回包头为99EB的7个字节,转发给采集卡1。
②GX5658在主程序中判断双口RAM的标志字节,为AA时发送故障数据桢34字节。
工控机主控器软件和调度机软件主控器APCI5095黑模式运行。功能是将从网口接收的故障数据经APCI总线传给输给GX5658的双口RAM,进而注入到2个太阳LTU中,以回应GNCC的取数命令。
调度机上运行用Delphy编写的故障注入程序,用户通过调度计算机按屏幕提示格式输入故障数据族,既每次注入将所有变量打包从调度机通过TCP/IP协议由调度机经过以太网传入工控机主控器。
结束语本设计利用Atmega128具有的1MIPS/MHz高速运行处理和浮点运算能力,解决了系统设计中大量的太阳角度数据的实时运算并实时返回给GNCC的要点问题。本文提出并实现了一种新的注入故障的方法:故障数据通过TCP/IP协议由调度机经以太网注入,经GX5658分配给主备太阳模拟器响应GNCC,这使模拟的故障形式灵活多样,阐述了其实现手段。
基于AVR双CPU系统的太阳模拟器及其故障注入系统作为部件,已在某重点型号卫星的GNCC室内联调中实际使用,完成了预期的功能,主要包括:1)在正常情况下,太阳模拟器采集太阳敏感器电信号,根据地面星体运动学和轨道运动学模型计算输出角度,通过星地接口电路提供给GNCC构成闭路。无论是逻辑式太阳模拟器、数字式太阳模拟器还是模拟式太阳模拟器都参加了测试得到验证。2)在部件故障测试中,通过数据注入的办法,将太阳模拟器输出的角度和监视码等信息模拟故障状态,在部件的故障诊断设计验证试验中得到验证。3)在系统故障模式中对三种太阳敏感器的模型都进行了充分的验证。