(長沙湘計海盾科技有限公司,長沙 410008)
地面衛星仿真與測試平臺可在前期的算法驗證、硬件系統可靠性評估中,為設計人員提供快速、低成本、有效的解決方案。讓衛星的通用化和小型化成為可能[1]。在現有的衛星仿真系統設計中,功能模塊化已成為主流,并通常應用了高性能通用處理器和實時操作系統,采用軟件來實現大部分硬件的功能,極力簡化硬件復雜度,提升系統可靠性。與此同時,對軟件設計能力也提出了更高的要求。星載計算機必需與多個子系統并行進行數據采集和數據處理。對衛星星載計算機及其外圍設備的管理也提出了更高的要求[2]。
PXI作為一種成熟的模塊化儀器系統,可以通過成熟的觸發總線來進行多板同步。并可通過新型觸發總線來進行精確定時[3-5]。通過局部總線來進行相應模塊的高速通信。并且PXI具備優秀的擴展性,當我們需要使用一項新技術應用到星載機上時,可以直接在已有的基礎上添加相應模塊,減少投入成本[6-8]。因此,本文采用PXI來進行星載機的仿真與測試[8-10]。
整個衛星地面仿真系統包含4個分系統:動力學仿真系統、敏感器仿真系統、星載機仿真系統、執行部件仿真系統。分別由4臺PC機在LabVIEW環境中運行各分系統仿真程序,各分系統通過PC機上的CAN卡來進行數據通訊[11-13]。
為了驗證星載機源程序算法的正確性以及使用CAN總線來進行數據通訊的可行性,將仿真系統分為兩個步驟進行:
首先,在PC機下的LabVIEW環境中通過CAN卡進行各分系統之間的數據通訊。星載機的源程序編譯成動態鏈接庫后可以在LabVIEW中方便地調用。因此,通過CAN卡提供的函數,就可以在LabVIEW中進行通訊程序的編寫。
其次,將PC機下的CAN通訊程序移植到PXI的RT系統上面運行,PXI提供了一系列的CAN通訊控件,通過調用這些控件來進行數據通訊。上位機上編寫的程序下載到PXI中,檢驗其RT系統的實時性是否可以滿足星載機的要求。
CAN總線通訊協議描述了不同設備之間的信息傳遞方式。通過分層來有效解決數據的可靠性,實際的數據通信發生在每個設備相鄰的兩層。不同設備只需要通過物理端連接即可。實際開發中只需要關注應用層協議,可以由用戶根據自己的應用場景自由定義。
衛星地面仿真系統包括4個子系統:動力學仿真系統、敏感器仿真系統、星載機仿真系統及執行部件仿真系統,各系統分別運行在PC機上,它們之間通過CAN進行通訊。仿真系統之間CAN通訊結構如圖1所示。分系統之間的數據通訊包括下面的5個部分,其中第1項為動力學仿真系統分別向敏感器和執行部件仿真系統發送數據。動力學系統的運行周期為25 ms,其他分系統接收到數據馬上處理,處理完畢之后立即向后面的系統發送數據。這樣整個系統的周期能保持在25 ms內,保證仿真系統的實時性要求。注意執行部件必須接收到動力學系統和星載機系統發送后的數據后才開始運行。
1)動力仿真系統→敏感器仿真系統,
動力仿真系統→執行部件仿真系統;
2)敏感器仿真系統→星載機仿真系統;
3)星載機仿真系統→執行部件仿真系統;
4)執行部件仿真系統→動力學仿真系統。
由圖1可見,各系統都通過CAN卡將數據發送到CAN總線上面,因此各系統通過CAN控制器的驗收與屏蔽碼的設置來接收需要的數據幀。

圖1 CAN總線結構圖
SJA1000濾波器由4個驗收代碼寄存器和4個屏蔽代碼寄存器組成,分別為ACR0、ACR1、ACR2、 ACR3、與AMR0、AMR1、AMR2、AMR3。其中每個寄存器都為一個字節。
單濾波是指只有一個由4個驗收碼寄存器和4個驗收屏蔽碼寄存器組成的驗收濾波器,總線上的信息只有通過了它的驗收濾波,才予以接收。
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幀發送出去。
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)。
實驗室虛擬儀器集成環境(Laboratory Virtual Instrument Engineering),是一種基于圖形化的編程語言。這種圖形化編程工具和以往基于文本型的編程語言最大的不同是,使用這種語言編程時,不需要編寫程序代碼,而是采用圖形模塊、數據流連接線來形成流程圖。
使用圖形化編程的優勢在于它可以充分利用行業內所熟只的術語概念來設計通用的圖標看,通過圖標可以快速知道其基本的功能與輸入輸出接口。因此,LabVIEW是一個快速靈活構建測試、仿真的工具。其通用的儀器編程和數據采集規范可以有效提升用戶的科學、工程系統的能力。使用它進行原型機驗證時,具備有獨特的優勢。
LabVIEW帶有函數庫和子程序庫具有良好的擴展性,在應用于Windows桌面程序設計時,還提供了用于儀器設備控制、總線控制、以及科學計算、數據分析、顯示與存儲等應用程序模塊。此外,其還可以方便地調用Windows下編譯的動態鏈接庫,通過提供CIN(Code Interface Node)節點來調用C或C++編譯的程序模塊,使得LabVIEW成為一個開放的開發平臺。此外其系統的開發工具箱使得用戶能夠方便地進行程序調試,非常直觀地觀測數據傳輸過程。
本應用程序在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號。
各分系統應用程序編寫完畢后,將其分別運行在四臺PC機中。通過調試,各系統之間的數據傳輸穩定正常。驗證了通訊協議的正確性與CAN總線進行通訊的可行性。
PXI作為PCI總線在儀器控制領域內的擴展。定義了相關電氣和軟件規范,形成了虛擬儀器體系。該體系具備成熟的技術規范和要求,并具有高速信號采集和存儲、高精度定時同步的能力,還具有優秀的擴展能力。
機箱-1044、控制器-8196、示波器-5124、多功能卡-6259、萬用表-4071、定時模塊-6608、矩陣開關-2503、CAN模塊-8461。
PXI軟件開發環境為Window和LabVIEW RT系統,本文中的試驗在LabVIEW RT 系統中進行編寫。LabVIEW RT 的實時性非常好,并具有分布式工程開發的優點。在上位機的LabVIEW中開發的CAN通訊程序,可以通過網線下載到實時操作系統中操作CAN卡,然后就可以運行。
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數據幀。按前面的經驗對波特率、驗收碼、屏蔽碼進行設置后,程序即可運行。
PXI中程序編寫完畢后,接入衛星地面仿真系統中,通過CAN總線與動力學系統、敏感器系統、執行部件系統進行數據通訊。此時動力學仿真程序與星載機仿真程序均運行在PXI中,通過PXI的并行處理技術來運算。此二系統分別采用一個CAN口來進行數據的收發。其中星載機采用CAN1,動力學采用CAN0口。
執行部件仿真程序運行在C8051單片機中,通過板載CAN模塊收發數據。敏感器仿真程序運行在DSP中,通過自帶的CAN模塊來進行數據的收發。此二系統的程序流程圖與星載機相似,均為接收完數據后計算,計算后又馬上把數據發送給下一個系統。
4個分系統的數據均發送到總線上,通過設置CAN參數來決定數據幀的收發。硬件仿真系統搭建完成后,經過調試,各系統均運行正常,數據發送正確。姿軌控制參數曲線分別如圖4和圖5所示。

圖4 飛輪電壓(對日)

圖5 姿態角速度
仿真系統源代碼的在Matlab與VC中進行了數學仿真,其中的飛輪電壓與姿態角速度如圖6,圖7所示。將這些曲線與PXI中的曲線進行對比,可以發現其吻合程度非常好。其他重要參數的曲線也都與數學仿真的結果非常吻合。通過長時間的試驗,該仿真系統運行穩定可靠。

圖6 飛輪電壓
衛星控制系統的性能由姿態角速度和姿態四元數來判定。從圖6、圖7來看,姿態角速度與四元數在經過一段時間的運行后,逐漸趨于穩定,滿足系統穩定判據的要求。
通過對比,在PXI中的仿真結果純數學仿真結果相同。由此,可以證明使用PXI與CAN總線技術來進行星載機仿真的可行性。
通過本文的研究,開發了基于PXI的衛星地面仿真及測試系統,主要成果包括以下幾個方面:
1)完成基于LabVIEW環境的星載機仿真系統的設計,實現了該子系統與動力學仿真子系統,敏感器仿真子系統,執行部件仿真子系統之間的數據通訊。通過對衛星各部件之間的聯試,驗證了星載機系統控制算法的正確性。
2)采用CAN總線來進行星載機的數據傳輸,測試了CAN總線的高速數據傳輸能力及穩定性。
3)利用LabVIEW強大的數據分析工具包和良好的軟件兼容能力,設計了星載機子系統綜合測試系統,并完成了相應的測試工作。驗證了PXI進行大規模數據處理能力以及擴展性能,其實時性能也很好地滿足了星載機的設計要求。
本文中實驗和仿真得到的結論反映了PXI總線技術的先進性,為仿真與測試方面的應用提供了理論基礎。本文的研究成果具有良好的通用性,本系統可作為航天器的通用仿真與測試平臺。本文的結論利用PXI來進行星載機仿真與測試具有重要的實際價值。