(長沙湘計海盾科技有限公司,長沙 410008)
地面衛(wèi)星仿真與測試平臺可在前期的算法驗證、硬件系統(tǒng)可靠性評估中,為設計人員提供快速、低成本、有效的解決方案。讓衛(wèi)星的通用化和小型化成為可能[1]。在現(xiàn)有的衛(wèi)星仿真系統(tǒng)設計中,功能模塊化已成為主流,并通常應用了高性能通用處理器和實時操作系統(tǒng),采用軟件來實現(xiàn)大部分硬件的功能,極力簡化硬件復雜度,提升系統(tǒng)可靠性。與此同時,對軟件設計能力也提出了更高的要求。星載計算機必需與多個子系統(tǒng)并行進行數(shù)據(jù)采集和數(shù)據(jù)處理。對衛(wèi)星星載計算機及其外圍設備的管理也提出了更高的要求[2]。
PXI作為一種成熟的模塊化儀器系統(tǒng),可以通過成熟的觸發(fā)總線來進行多板同步。并可通過新型觸發(fā)總線來進行精確定時[3-5]。通過局部總線來進行相應模塊的高速通信。并且PXI具備優(yōu)秀的擴展性,當我們需要使用一項新技術應用到星載機上時,可以直接在已有的基礎上添加相應模塊,減少投入成本[6-8]。因此,本文采用PXI來進行星載機的仿真與測試[8-10]。
整個衛(wèi)星地面仿真系統(tǒng)包含4個分系統(tǒng):動力學仿真系統(tǒng)、敏感器仿真系統(tǒng)、星載機仿真系統(tǒng)、執(zhí)行部件仿真系統(tǒng)。分別由4臺PC機在LabVIEW環(huán)境中運行各分系統(tǒng)仿真程序,各分系統(tǒng)通過PC機上的CAN卡來進行數(shù)據(jù)通訊[11-13]。
為了驗證星載機源程序算法的正確性以及使用CAN總線來進行數(shù)據(jù)通訊的可行性,將仿真系統(tǒng)分為兩個步驟進行:
首先,在PC機下的LabVIEW環(huán)境中通過CAN卡進行各分系統(tǒng)之間的數(shù)據(jù)通訊。星載機的源程序編譯成動態(tài)鏈接庫后可以在LabVIEW中方便地調(diào)用。因此,通過CAN卡提供的函數(shù),就可以在LabVIEW中進行通訊程序的編寫。
其次,將PC機下的CAN通訊程序移植到PXI的RT系統(tǒng)上面運行,PXI提供了一系列的CAN通訊控件,通過調(diào)用這些控件來進行數(shù)據(jù)通訊。上位機上編寫的程序下載到PXI中,檢驗其RT系統(tǒng)的實時性是否可以滿足星載機的要求。
CAN總線通訊協(xié)議描述了不同設備之間的信息傳遞方式。通過分層來有效解決數(shù)據(jù)的可靠性,實際的數(shù)據(jù)通信發(fā)生在每個設備相鄰的兩層。不同設備只需要通過物理端連接即可。實際開發(fā)中只需要關注應用層協(xié)議,可以由用戶根據(jù)自己的應用場景自由定義。
衛(wèi)星地面仿真系統(tǒng)包括4個子系統(tǒng):動力學仿真系統(tǒng)、敏感器仿真系統(tǒng)、星載機仿真系統(tǒng)及執(zhí)行部件仿真系統(tǒng),各系統(tǒng)分別運行在PC機上,它們之間通過CAN進行通訊。仿真系統(tǒng)之間CAN通訊結(jié)構如圖1所示。分系統(tǒng)之間的數(shù)據(jù)通訊包括下面的5個部分,其中第1項為動力學仿真系統(tǒng)分別向敏感器和執(zhí)行部件仿真系統(tǒng)發(fā)送數(shù)據(jù)。動力學系統(tǒng)的運行周期為25 ms,其他分系統(tǒng)接收到數(shù)據(jù)馬上處理,處理完畢之后立即向后面的系統(tǒng)發(fā)送數(shù)據(jù)。這樣整個系統(tǒng)的周期能保持在25 ms內(nèi),保證仿真系統(tǒng)的實時性要求。注意執(zhí)行部件必須接收到動力學系統(tǒng)和星載機系統(tǒng)發(fā)送后的數(shù)據(jù)后才開始運行。
1)動力仿真系統(tǒng)→敏感器仿真系統(tǒng),
動力仿真系統(tǒng)→執(zhí)行部件仿真系統(tǒng);
2)敏感器仿真系統(tǒng)→星載機仿真系統(tǒng);
3)星載機仿真系統(tǒng)→執(zhí)行部件仿真系統(tǒng);
4)執(zhí)行部件仿真系統(tǒng)→動力學仿真系統(tǒng)。
由圖1可見,各系統(tǒng)都通過CAN卡將數(shù)據(jù)發(fā)送到CAN總線上面,因此各系統(tǒng)通過CAN控制器的驗收與屏蔽碼的設置來接收需要的數(shù)據(jù)幀。
圖1 CAN總線結(jié)構圖
SJA1000濾波器由4個驗收代碼寄存器和4個屏蔽代碼寄存器組成,分別為ACR0、ACR1、ACR2、 ACR3、與AMR0、AMR1、AMR2、AMR3。其中每個寄存器都為一個字節(jié)。
單濾波是指只有一個由4個驗收碼寄存器和4個驗收屏蔽碼寄存器組成的驗收濾波器,總線上的信息只有通過了它的驗收濾波,才予以接收。
1)CAN總線協(xié)議規(guī)范:本文所采用CAN2.0 A版本的總線協(xié)議規(guī)范。 CAN總線節(jié)點電氣接口由82C250 CAN總線收發(fā)器芯片或其他兼容芯片構成。
2)數(shù)據(jù)幀結(jié)構:本線系統(tǒng)采用標準數(shù)據(jù)幀來傳送各部件的數(shù)據(jù)和指令,標準數(shù)據(jù)幀相關結(jié)構如表1所示。
表1 CAN2.0A標準幀結(jié)構
說明:
(1)不同子系統(tǒng)進行通訊時,其發(fā)送幀和接收幀的ID號是一致的;
(2)對于一包涵蓋所有子系統(tǒng)通訊數(shù)據(jù)的完整的數(shù)據(jù)幀,其ID分配規(guī)則如下:
1幀: 1個ID;
2幀: 2個ID,其中頭幀ID優(yōu)先級高,尾幀ID優(yōu)先級低;
3幀: 3個ID,其中頭幀ID優(yōu)先級高,中間幀ID優(yōu)先級次之,尾幀ID優(yōu)先級最低;
3幀以上:3個ID,其中頭幀和尾幀各用一個ID,中間幀共用一個ID,采用多次傳送,其優(yōu)先級設置同3幀。
星載機CAN總線協(xié)議:
星載機每包數(shù)據(jù)包含70字節(jié)的數(shù)組,為滿足CAN數(shù)據(jù)傳輸?shù)囊?,先將其填充?0字節(jié)的數(shù)組,然后再通過10幀發(fā)送出去。
PC機:
CPU:Intel Pentium4 2.4 G;
內(nèi)存:Kinston DDR 512 MB;
顯卡:NVIDIA GeForce4 Ti4200;
CAN卡:ZLGPCI9820
該卡設備參數(shù)如下:
計算機接口: 32位33 M PCI 數(shù)據(jù)總線,即插即用;
CAN控制器: PHILIPS SJA1000;
CAN收發(fā)器: PHILIPS PCA82C250;
數(shù)據(jù)傳送速率: CAN總線速率可編程,范圍在5 Kbps~1 Mbps 內(nèi);
CAN 通訊接口: DB9 針型插座,符合DeviceNet 和CANopen 標準;
光電隔離耐壓: 1 000 VDC;
CAN協(xié)議: CAN 2.0 B規(guī)范(兼容CAN 2.0 A);
建議最高幀流量: 單通道1 000幀/秒;
數(shù)據(jù)緩沖區(qū)大小: 軟件發(fā)送緩沖16 幀,軟件接收緩沖100 000幀;
溫度: 0~70 ℃;
物理尺寸: 標準PCI 短卡(130 mm*90 mm)。
實驗室虛擬儀器集成環(huán)境(Laboratory Virtual Instrument Engineering),是一種基于圖形化的編程語言。這種圖形化編程工具和以往基于文本型的編程語言最大的不同是,使用這種語言編程時,不需要編寫程序代碼,而是采用圖形模塊、數(shù)據(jù)流連接線來形成流程圖。
使用圖形化編程的優(yōu)勢在于它可以充分利用行業(yè)內(nèi)所熟只的術語概念來設計通用的圖標看,通過圖標可以快速知道其基本的功能與輸入輸出接口。因此,LabVIEW是一個快速靈活構建測試、仿真的工具。其通用的儀器編程和數(shù)據(jù)采集規(guī)范可以有效提升用戶的科學、工程系統(tǒng)的能力。使用它進行原型機驗證時,具備有獨特的優(yōu)勢。
LabVIEW帶有函數(shù)庫和子程序庫具有良好的擴展性,在應用于Windows桌面程序設計時,還提供了用于儀器設備控制、總線控制、以及科學計算、數(shù)據(jù)分析、顯示與存儲等應用程序模塊。此外,其還可以方便地調(diào)用Windows下編譯的動態(tài)鏈接庫,通過提供CIN(Code Interface Node)節(jié)點來調(diào)用C或C++編譯的程序模塊,使得LabVIEW成為一個開放的開發(fā)平臺。此外其系統(tǒng)的開發(fā)工具箱使得用戶能夠方便地進行程序調(diào)試,非常直觀地觀測數(shù)據(jù)傳輸過程。
本應用程序在PC環(huán)境下進行編寫。CAN卡采用周立功公司的ZLGPCI9820雙路CAN卡,該卡的驅(qū)動程序包提供了LabVIEW下的動態(tài)連接庫文件,其包含了我們開發(fā)應用程序所需要的VCI函數(shù)。通過LabVIEW下的CLF節(jié)點,可以方便地對CAN卡進行初始化、數(shù)據(jù)發(fā)送、數(shù)據(jù)接收等操作。VCI函數(shù)調(diào)用流程如圖2所示。
圖2 VCI函數(shù)使用流程
根據(jù)CAN通訊協(xié)議的要求,星載機必須接收執(zhí)行系統(tǒng)、動力系統(tǒng)、敏感器發(fā)送來的數(shù)據(jù)包,然后將接收到的數(shù)據(jù)進行處理后輸入到星載機源代碼中計算,最后將計算結(jié)果進行處理,通過數(shù)據(jù)包發(fā)送出去。程序流程圖設計如圖3所示。
圖3 星載機程序流程圖
根據(jù)仿真系統(tǒng)的設計要求,在制定的CAN通訊協(xié)議中規(guī)定了各分系統(tǒng)數(shù)據(jù)幀驗收碼、屏蔽碼、波特率等參數(shù),在LabVIEW中的程序控制面板中進行設置即可。
應用程序中CAN0、CAN1分別為CAN卡的兩個端口,可對其進行單獨操作。DeviceType中選擇CAN卡的型號。Filter控件為濾波類型選擇,可選擇單濾波還是雙濾波。
其中ReceiveNum控件顯示緩存中數(shù)據(jù)幀的幀數(shù),ID控件中設置要發(fā)送數(shù)據(jù)幀的ID,IDReceived控件顯示接收到數(shù)據(jù)幀的ID號。
各分系統(tǒng)應用程序編寫完畢后,將其分別運行在四臺PC機中。通過調(diào)試,各系統(tǒng)之間的數(shù)據(jù)傳輸穩(wěn)定正常。驗證了通訊協(xié)議的正確性與CAN總線進行通訊的可行性。
PXI作為PCI總線在儀器控制領域內(nèi)的擴展。定義了相關電氣和軟件規(guī)范,形成了虛擬儀器體系。該體系具備成熟的技術規(guī)范和要求,并具有高速信號采集和存儲、高精度定時同步的能力,還具有優(yōu)秀的擴展能力。
機箱-1044、控制器-8196、示波器-5124、多功能卡-6259、萬用表-4071、定時模塊-6608、矩陣開關-2503、CAN模塊-8461。
PXI軟件開發(fā)環(huán)境為Window和LabVIEW RT系統(tǒng),本文中的試驗在LabVIEW RT 系統(tǒng)中進行編寫。LabVIEW RT 的實時性非常好,并具有分布式工程開發(fā)的優(yōu)點。在上位機的LabVIEW中開發(fā)的CAN通訊程序,可以通過網(wǎng)線下載到實時操作系統(tǒng)中操作CAN卡,然后就可以運行。
PXI提供了型號為8461的CAN卡,該卡采用飛利浦SJA1000獨立控制器,并具有兩個CAN口,為實現(xiàn)衛(wèi)星地面仿真與測試系統(tǒng)的要求,在PXI的LabVIEW環(huán)境下進行了CAN通訊程序設計。
PXI 8461CAN卡具有兩種程序設計方式:一種是Frame API;另一種是Channel API。本程序中采用應用范圍更廣的Frame API,F(xiàn)rame API支持遠程幀。程序主要通過以下6個VI ncConfigCANNet.vi、ncOpen.vi、ncGetAttr.vi、ncReadNetMult.vi、ncWriteNetMult.vi、ncClose.vi來進行編寫。
由于在PC機下PCI9820CAN卡與PXI下8461CAN卡的控制器均為SJA1000,因此,其設置方法也基本相同。不同的是其屏蔽碼的設置正好相反,在PCI9820CAN中FFFFFFFF表示全收,而在PXI中表示只接收與驗收碼相同的ID數(shù)據(jù)幀。按前面的經(jīng)驗對波特率、驗收碼、屏蔽碼進行設置后,程序即可運行。
PXI中程序編寫完畢后,接入衛(wèi)星地面仿真系統(tǒng)中,通過CAN總線與動力學系統(tǒng)、敏感器系統(tǒng)、執(zhí)行部件系統(tǒng)進行數(shù)據(jù)通訊。此時動力學仿真程序與星載機仿真程序均運行在PXI中,通過PXI的并行處理技術來運算。此二系統(tǒng)分別采用一個CAN口來進行數(shù)據(jù)的收發(fā)。其中星載機采用CAN1,動力學采用CAN0口。
執(zhí)行部件仿真程序運行在C8051單片機中,通過板載CAN模塊收發(fā)數(shù)據(jù)。敏感器仿真程序運行在DSP中,通過自帶的CAN模塊來進行數(shù)據(jù)的收發(fā)。此二系統(tǒng)的程序流程圖與星載機相似,均為接收完數(shù)據(jù)后計算,計算后又馬上把數(shù)據(jù)發(fā)送給下一個系統(tǒng)。
4個分系統(tǒng)的數(shù)據(jù)均發(fā)送到總線上,通過設置CAN參數(shù)來決定數(shù)據(jù)幀的收發(fā)。硬件仿真系統(tǒng)搭建完成后,經(jīng)過調(diào)試,各系統(tǒng)均運行正常,數(shù)據(jù)發(fā)送正確。姿軌控制參數(shù)曲線分別如圖4和圖5所示。
圖4 飛輪電壓(對日)
圖5 姿態(tài)角速度
仿真系統(tǒng)源代碼的在Matlab與VC中進行了數(shù)學仿真,其中的飛輪電壓與姿態(tài)角速度如圖6,圖7所示。將這些曲線與PXI中的曲線進行對比,可以發(fā)現(xiàn)其吻合程度非常好。其他重要參數(shù)的曲線也都與數(shù)學仿真的結(jié)果非常吻合。通過長時間的試驗,該仿真系統(tǒng)運行穩(wěn)定可靠。
圖6 飛輪電壓
衛(wèi)星控制系統(tǒng)的性能由姿態(tài)角速度和姿態(tài)四元數(shù)來判定。從圖6、圖7來看,姿態(tài)角速度與四元數(shù)在經(jīng)過一段時間的運行后,逐漸趨于穩(wěn)定,滿足系統(tǒng)穩(wěn)定判據(jù)的要求。
通過對比,在PXI中的仿真結(jié)果純數(shù)學仿真結(jié)果相同。由此,可以證明使用PXI與CAN總線技術來進行星載機仿真的可行性。
通過本文的研究,開發(fā)了基于PXI的衛(wèi)星地面仿真及測試系統(tǒng),主要成果包括以下幾個方面:
1)完成基于LabVIEW環(huán)境的星載機仿真系統(tǒng)的設計,實現(xiàn)了該子系統(tǒng)與動力學仿真子系統(tǒng),敏感器仿真子系統(tǒng),執(zhí)行部件仿真子系統(tǒng)之間的數(shù)據(jù)通訊。通過對衛(wèi)星各部件之間的聯(lián)試,驗證了星載機系統(tǒng)控制算法的正確性。
2)采用CAN總線來進行星載機的數(shù)據(jù)傳輸,測試了CAN總線的高速數(shù)據(jù)傳輸能力及穩(wěn)定性。
3)利用LabVIEW強大的數(shù)據(jù)分析工具包和良好的軟件兼容能力,設計了星載機子系統(tǒng)綜合測試系統(tǒng),并完成了相應的測試工作。驗證了PXI進行大規(guī)模數(shù)據(jù)處理能力以及擴展性能,其實時性能也很好地滿足了星載機的設計要求。
本文中實驗和仿真得到的結(jié)論反映了PXI總線技術的先進性,為仿真與測試方面的應用提供了理論基礎。本文的研究成果具有良好的通用性,本系統(tǒng)可作為航天器的通用仿真與測試平臺。本文的結(jié)論利用PXI來進行星載機仿真與測試具有重要的實際價值。