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