崔艷召 何欣 杜以強(qiáng)
(北京空間機(jī)電研究所,北京 100094)
目前,1553B總線已成為衛(wèi)星平臺(tái)與相機(jī)分系統(tǒng)間進(jìn)行通信的有效選擇。其使用特點(diǎn)是:各類星載相機(jī)的1553B總線通信協(xié)議均不一致,通信的應(yīng)答方式和數(shù)據(jù)的傳輸模式也多種多樣。為了在不同1553B總線通信進(jìn)行地面測(cè)試時(shí),有效地降低地面測(cè)試程序的開發(fā)難度,提高程序的開發(fā)效率,保證接口程序的一致性和地面測(cè)試程序的可靠性,國(guó)內(nèi)外航空、航天領(lǐng)域提出了1553B總線通信測(cè)試的通用化設(shè)計(jì)方向[1-2]。本文設(shè)計(jì)一套1553B總線通信進(jìn)行地面測(cè)試時(shí)的通用化接口程序,可以適應(yīng)不同型號(hào)的星載相機(jī)采用1553B總線進(jìn)行數(shù)據(jù)傳輸?shù)男枨蟆?/p>
要使不同型號(hào)星載相機(jī)的1553B總線通信測(cè)試通用化,要求程序接口和代碼具有通用度高、可靠性高和實(shí)時(shí)性強(qiáng)的特點(diǎn)。本文基于VC編程技術(shù),借鑒程序通用化的設(shè)計(jì)思想,通過給上位機(jī)界面提供通用、高度集成的接口函數(shù),實(shí)現(xiàn)1553B總線通信地面測(cè)試程序的通用化。
本文設(shè)計(jì)的數(shù)據(jù)通信電路由4部分組成:CPCI(compact peripheral component interconnect)接口協(xié)議電路單元、現(xiàn)場(chǎng)可編程門陣列(field programmable gate array,F(xiàn)PGA)時(shí)序和邏輯電路單元、1553B總線通信電路單元、秒脈沖電路單元(產(chǎn)生秒脈沖信號(hào),并以此觸發(fā)1553B總線發(fā)送秒脈沖對(duì)應(yīng)的時(shí)刻數(shù)據(jù)),如圖1所示。
圖1 通信電路的結(jié)構(gòu)Fig.1 Block diagram of the communication board
CPCI接口電路單元采用的協(xié)議芯片為PCI9054[3-5](其配置芯片為NM 93CS56),主要特點(diǎn)如下:
1)具有可選的串行EEPROM接口;
2)CPCI與本地總線的數(shù)據(jù)傳送速率高達(dá)132Mbyte/s[6-7];
3)本地總線時(shí)鐘由外部提供,該時(shí)鐘可與CPCI時(shí)鐘異步;
4)具有8個(gè)32bit的Mailbox寄存器和2個(gè)32 bit的Doorbell寄存器;
5)本地總線速率高達(dá)50MHz;支持復(fù)用/非復(fù)用的32bit地址/數(shù)據(jù);本地總線有三種模式:M模式、C模式和J模式,可利用模式選擇引腳加以選擇。
FPGA時(shí)序和邏輯電路單元選擇的芯片為EP1C3T144,該款芯片具有2910LE邏輯單元,13條M 4KRAM(共6.5Kbyte),還有1個(gè)數(shù)字鎖相環(huán)。EP1C3T144與PCI9054的連接如圖2所示[8-9]。
圖2 EP1C3T144與PCI9054連接圖Fig.2 The connection between EP1C3T144 and PCI9054
1553B協(xié)議定義了一個(gè)多元數(shù)據(jù)總線。該標(biāo)準(zhǔn)不僅定義了串行數(shù)據(jù)總線的數(shù)據(jù)格式、命令/響應(yīng)方式、時(shí)分割等技術(shù),而且定義了數(shù)據(jù)總線及其接口的電氣特性。BU-61580高級(jí)通信引擎為主處理器和1553B總線間提供了完全集成化的接口,實(shí)現(xiàn)了總線控制器(BC),遠(yuǎn)程終端(RT)和監(jiān)視器終端(MT)模式[10-13]。
不同型號(hào)星載相機(jī)的1553B總線協(xié)議不同,對(duì)應(yīng)RT的協(xié)議及其地面檢測(cè)系統(tǒng)的上位機(jī)界面也有較大差別。不同的協(xié)議會(huì)造成1553B總線通信程序頻繁改動(dòng),不但降低了程序的可靠性,而且降低了地面檢測(cè)系統(tǒng)的研發(fā)效率。為了解決這些問題,本文設(shè)計(jì)了通用接口程序。該程序?yàn)樯衔粰C(jī)提供了統(tǒng)一的調(diào)用函數(shù),使各型星載相機(jī)的1553B總線協(xié)議在此接口處實(shí)現(xiàn)了統(tǒng)一調(diào)用。增加通用接口程序后的地面檢測(cè)系統(tǒng)只需修改上位機(jī)的操作界面,無(wú)需進(jìn)行其他改動(dòng),即可滿足RT進(jìn)行1553B總線通信測(cè)試的要求。
1553B總線通信地面檢測(cè)系統(tǒng)如圖3所示,包括上位機(jī)界面、通用接口程序、底層驅(qū)動(dòng)和1553B總線通信板卡(包含BC)。本文設(shè)計(jì)的通用化接口程序是連接上位機(jī)界面與底層驅(qū)動(dòng)的橋梁。通用接口程序接收上位機(jī)的統(tǒng)一調(diào)度,根據(jù)不同參數(shù)來(lái)做相應(yīng)的配置,通過底層驅(qū)動(dòng)和CPCI總線連接1553B總線通信板卡,最后由BC來(lái)實(shí)現(xiàn)與RT的通信。
利用本文設(shè)計(jì)的程序通用,上位機(jī)對(duì)星載相機(jī)進(jìn)行1553B總線通信測(cè)試時(shí)的操作流程如圖4所示。
圖3 1553B總線通信地面檢測(cè)系統(tǒng)結(jié)構(gòu)Fig.3 Themodule of checkoutsystem for 1553B bus communication
圖4 上位機(jī)調(diào)用1553B總線程序流程圖Fig.4 The flow of PC calling 1553B bus program
本程序在運(yùn)行時(shí),只需對(duì)此接口函數(shù)的參數(shù)進(jìn)行設(shè)置,即可滿足不同類型協(xié)議的需要,也可設(shè)置中斷函數(shù),來(lái)滿足1553B總線突發(fā)數(shù)據(jù)的傳輸。本文設(shè)計(jì)的通用化接口程序由5部分組成:BU-61580寄存器設(shè)置函數(shù)、1553B總線數(shù)據(jù)幀收發(fā)函數(shù)、中斷響應(yīng)函數(shù)、電路板復(fù)位函數(shù)以及其他輔助函數(shù)[14-15]。
由于不同類型的協(xié)議對(duì)1553B總線的使用設(shè)置和數(shù)據(jù)傳輸屬性不同,要實(shí)現(xiàn)接口通用化,須將各類協(xié)議使用的設(shè)置參數(shù)化,以方便上位機(jī)選擇使用。本文對(duì)BU-61580寄存器設(shè)計(jì)了通用設(shè)置函數(shù),函數(shù)為重要的設(shè)置均留有通用的接口參數(shù)。寄存器設(shè)置的函數(shù)名為:
BOOLReg_1553_Func(REG_SET_STRUCT*pREG_SET_STRUCT)
其中的參數(shù)為結(jié)構(gòu)體指針,具體定義如下:
使用時(shí)可根據(jù)不同型號(hào)的需要對(duì)此接口函數(shù)的參數(shù)進(jìn)行不同的設(shè)置,具體參數(shù)的定義見表1。
表1 寄存器設(shè)置結(jié)構(gòu)體參數(shù)表Tab.1 The parameters of register-setting structure body
在同一類協(xié)議中,通常存在不同類型的數(shù)據(jù)傳輸,如:不同的消息傳輸模式(一般消息、矢量字和廣播消息)、不同幀內(nèi)消息的個(gè)數(shù)不相同、不同消息內(nèi)字的個(gè)數(shù)不相同等,本節(jié)的通用函數(shù)就是針對(duì)上述問題設(shè)計(jì)。數(shù)據(jù)幀收發(fā)函數(shù)如下:
BOOL Me_1553_Func(byte Me_Num,bool direction,byte Word_Num1,byte Word_Num2,byte Word_Num3,byteWord_Num4,ME_SET_STRUCT*pME_SET_STRUCT)
在使用此函數(shù)時(shí),可根據(jù)不同協(xié)議的需要對(duì)其參數(shù)進(jìn)行設(shè)置,具體參數(shù)的定義可參考表 2。在進(jìn)行1553B總線數(shù)據(jù)幀傳輸時(shí),本文設(shè)計(jì)的一幀內(nèi)消息的最大個(gè)數(shù)為4個(gè)。
表2 數(shù)據(jù)幀收發(fā)函數(shù)參數(shù)表Tab.2 The parameters of data frame sending and receiving function
其中,ME_SET_STRUCT是結(jié)構(gòu)體指針*pME_SET_STRUCT的實(shí)體。
在開機(jī)時(shí),為了保持?jǐn)?shù)據(jù)的識(shí)別統(tǒng)一性,初始化的值都設(shè)置為0,數(shù)據(jù)幀收發(fā)函數(shù)結(jié)構(gòu)體參數(shù)見表3。
表3 數(shù)據(jù)幀收發(fā)函數(shù)結(jié)構(gòu)體參數(shù)表Tab.3 The parameters of structure body of data frame sending and receiving function
為增加消息傳輸?shù)目煽啃?,所有不同類型的消息地址均不相同,可以避免不同類型?shù)據(jù)的沖突。
此中斷函數(shù)的作用是為了配合秒脈沖信號(hào),在1553B總線上輸出對(duì)應(yīng)秒脈沖時(shí)刻的數(shù)據(jù)。同時(shí),上位機(jī)也可以此為時(shí)間基準(zhǔn)進(jìn)行地檢設(shè)備內(nèi)部校時(shí)。此中斷函數(shù)為:void Open_Interrupt(void)。
在VC++6.0編制測(cè)試界面時(shí),需聲明消息響應(yīng):ON_MESSAGE(WM_PCI9054_INTERRUPT,OnInterrupt)。
電路在工作前,需要對(duì)整個(gè)系統(tǒng)進(jìn)行復(fù)位,調(diào)用下述函數(shù)就可發(fā)出電路復(fù)位信號(hào),使電路復(fù)位:RETURN_CODEPci9054_BoardRst(void)。
輔助函數(shù)包括上位機(jī)與驅(qū)動(dòng)之間的地址映射函數(shù)、連接函數(shù)以及解除地址映射函數(shù)和解除連接函數(shù)。
在VC++6.0編制測(cè)試界面時(shí),需聲明一下物理內(nèi)存:PHYSICAL_MEM PciMemory。
程序開始時(shí)的地址映射函數(shù)為:PhysicalMemoryMap(&PciMemory)。
程序開始時(shí)和硬件建立連接的函數(shù)(如連接不上,則彈出提示界面)為:
程序結(jié)束時(shí)的解除地址映射函數(shù)為:PhysicalMemoryUnMap(&PciMemory)。
程序結(jié)束時(shí)和硬件解除建立連接的函數(shù)為:DisconnectToPCI9054()。
為保證通用程序的可靠性,本文使用VC++6.0編制了一個(gè)上位機(jī)測(cè)試界面,可以用此界面實(shí)現(xiàn)1553B總線所有類型消息的傳輸[15]。該上位機(jī)程序?qū)⒑笈_(tái)操作流程界面化,操作人員可以根據(jù)不同需求進(jìn)行靈活設(shè)置。
1553B總線數(shù)據(jù)收、發(fā)測(cè)試界面如圖5所示,1553B總線通信地面檢測(cè)程序自檢界面如圖6所示。
圖5 1553B總線數(shù)據(jù)收、發(fā)測(cè)試界面Fig.5 Receiving and sendingmeasuring interface of 1553B bus data
圖6 1553B總線通信自檢界面Fig.6 Self-checking interface of 1553B bus communication
地面測(cè)試設(shè)備外接1553B總線監(jiān)視器,通過圖4收、發(fā)1553B總線數(shù)據(jù)界面中的“消息收發(fā)次數(shù)”進(jìn)行設(shè)置,對(duì)數(shù)據(jù)進(jìn)行分類測(cè)試。程序經(jīng)過不斷完善,數(shù)據(jù)連續(xù)正確傳輸次數(shù)達(dá)到千萬(wàn)次,數(shù)據(jù)量達(dá)到了10Gbyte。測(cè)試結(jié)果表明:此1553B總線通信通用測(cè)試接口程序在接口架構(gòu)和代碼編寫方面完全可以被上位機(jī)調(diào)用,結(jié)果正確,符合預(yù)期效果。
本文設(shè)計(jì)了一種星載相機(jī)1553B總線通信地面測(cè)試程序的通用化程序,利用CPCI總線設(shè)計(jì)了1553B總線通信的硬件電路,并編制了通用接口程序,減少了地面檢測(cè)設(shè)備1553B總線通信程序的更改次數(shù)和更改量,提高了地面檢測(cè)程序開發(fā)的效率,提高了地面檢測(cè)程序?qū)Σ煌?553B總線傳輸協(xié)議的適應(yīng)性,提高了地面檢測(cè)程序的可靠性。
References)
[1] 顏猛,蔣軒祥.1553總線BC/BBC配置下總線管理軟件的研究與實(shí)現(xiàn)[J].微電子學(xué)與計(jì)算機(jī),2003(1):20-22.YAN Meng,JIANG Xuanxiang.Research and Implementation of 1553 Bus Management Software Based on BC/BBC Configuration[J].M icroelectronicsand Computer,2003(1):20-22.(in Chinese)
[2] 李曼.基于SOC的1553B接口技術(shù)研究[D].西安:西北工業(yè)大學(xué),2007.LIMan.Research of 1553B Interface Technique Based on SOC[D].Xi’an:Northwestern Polytechnical University,2007.(in Chinese)
[3] Tom Shanley.PCI系統(tǒng)結(jié)構(gòu)[M].北京:電子工業(yè)出版社,2000.Tom Shanley.PCISystem Architecture[M].Beijing:Publishing Houseof Electronics Industry,2000.(in Chinese)
[4] 李貴山,戚德虎.PCI局部總線開發(fā)者指南[M].西安:電子科技大學(xué)出版社,2003.LIGuishan,QIDehu.Developer Directory of PCILocal Bus[M].Xi’an:Publishing House of University of Electronic Science and Technology,2003.(in Chinese)
[5] 陳大羽,王琨,李濤,等.空間高速總線SpaceWire節(jié)點(diǎn)的設(shè)計(jì)與實(shí)現(xiàn)[J].航天返回與遙感,2010,31(4):58-64.CHEN Dayu,WANG Kun,LITao,et al.The Design and Implementation of Space High-speed Bus SpaceWire Codec[J].SpacecraftRecovery&Remote Sensing,2010,31(4):58-64.(in Chinese)
[6] 劉濤,黃偉,潘衛(wèi)軍.SpaceWire軟核的設(shè)計(jì)與驗(yàn)證[J].航天返回與遙感,2011,32(1):51-58.LIU Tao,HUANG Wei,PAN Weijun.Design and Verification of SpaceWire IP Core[J].Spacecraft Recovery&Remote Sensing,2011,32(1):51-58.(in Chinese)
[7] 萬(wàn)旻,包斌,成桂梅.一種現(xiàn)場(chǎng)可編程門陣列門延時(shí)精確調(diào)整時(shí)序的方法[J].航天返回與遙感,2010,31(2):62-68.WAN M in,BAO Bin,CHENG Guimei.A FPGA Based Gate Delay Precise Tim ing AdjustMethod[J].Spacecraft Recovery&Remote Sensing,2010,31(2):62-68.(in Chinese)
[8] 陳彥,張宏偉,林宏宇.基于FPGA的CMOS圖像傳感器LUPA-4000時(shí)序設(shè)計(jì)[J].航天返回與遙感,2012,33(5):62-67.CHEN Yan,ZHANG Hongwei,LIN Hongyu.Tim ing Design of CMOS Image Sensor LUPA-4000 Based on FPGA[J].SpacecraftRecovery&Remote Sensing,2012,33(5):62-67.(in Chinese)
[9] 黃偉,劉濤,王華,等.SRAM型FPGA的單粒子效應(yīng)及TMR設(shè)計(jì)加固[J].航天返回與遙感,2012,33(2):49-53.HUANG Wei,LIU Tao,WANG Hua,et al.Single-event Effects on and TMR Radiation-harden of SRAM-based FPGA[J].SpacecraftRecovery&Remote Sensing,2012,33(2):49-53.(in Chinese)
[10] 顧驤,周東,田忠.用于1553總線控制器的存儲(chǔ)管理單元設(shè)計(jì)[J].電子科技大學(xué)學(xué)報(bào),2003,32(3):317-320.GU Xiang,ZHOU Dong,TIAN Zhong.Design of Memory Management Used in M IL-STD-1553 Bus Controllers[J].Journal of University of Electronic Scienceand Technology,2003,32(3):317-320.(in Chinese)
[11] 郭堅(jiān),付連芳,王海濤.基于8051單片機(jī)的1553B總線接口設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2006,14(7):946-950.GUO Jian,FU Lianfang,WANG Haitao.Interface Design of 1553B Bus Based on 8051 Singlechip[J].ComputerMeasurement and Control,2006,14(7):946-950.(in Chinese)
[12] 林強(qiáng),熊華剛,張其善.DSP在1553總線接口技術(shù)中的應(yīng)用[J].微計(jì)算機(jī)應(yīng)用,2004,25(3):339-343.LIN Qiang,XIONG Huagang,ZHANG Qishan.Application of DSP in the Design of 1553 Interface[J].M icrocomputer Applications,2004,25(3):339-343.(in Chinese)
[13] 孫軍文,安妮,王中訓(xùn).基于VC++6.0的網(wǎng)絡(luò)通信設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2011,34(23):52-54.SUN Junwen,AN Ni,WANG Zhongxun.The Network Communicating Design Based VC++6.0[J].Modern Electronics Technique,2011,34(23):52-54.(in Chinese)
[14] 陶桂寶,郭少波.MATLAB與VC++混合編程在系統(tǒng)仿真中的應(yīng)用[J].重慶大學(xué)學(xué)報(bào),2007,30(7):26-29.TAO Guibao,GUO Shaobo.The Application of M ixing Program Using MATLAB and VC++in System Emulation[J].Journal of Chongqing University,2007,30(7):26-29.(in Chinese)
[15] 張曉光.CC++語(yǔ)言考試自動(dòng)評(píng)分系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].西安:電子科技大學(xué),2010.ZHANG Xiaoguang.The Design and Application of Automatic Graded System of CC++Language Exam ination[D].Xi’an:University of Electronic Science and Technology of China,2010.(in Chinese)