《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 基于CPCI的測(cè)控測(cè)試設(shè)備的設(shè)計(jì)與實(shí)現(xiàn)
基于CPCI的測(cè)控測(cè)試設(shè)備的設(shè)計(jì)與實(shí)現(xiàn)
張德智, 馮文全
(北京航空航天大學(xué) 電子信息工程學(xué)院, 北京100191)
摘要: 針對(duì)傳統(tǒng)的地面測(cè)控測(cè)試設(shè)備結(jié)構(gòu)復(fù)雜、可移植性差、難以滿足當(dāng)前測(cè)試要求的現(xiàn)狀,提出了基于CPCI總線設(shè)計(jì)的衛(wèi)星PCM測(cè)控測(cè)試設(shè)備。設(shè)備采用“通用前板+專用背板”板卡設(shè)計(jì)方法,提高通用性,降低成本;使用FPGA代替?zhèn)鹘y(tǒng)分立元件,提高設(shè)計(jì)效率和可靠性。為便于調(diào)試,硬件功能盡量簡(jiǎn)化,只完成數(shù)據(jù)發(fā)送接收操作,遙測(cè)幀同步、遙控指令解析等工作由軟件實(shí)現(xiàn)。
Abstract:
Key words :

摘   要: 針對(duì)傳統(tǒng)的地面測(cè)控測(cè)試設(shè)備結(jié)構(gòu)復(fù)雜、可移植性差、難以滿足當(dāng)前測(cè)試要求的現(xiàn)狀,提出了基于CPCI總線設(shè)計(jì)的衛(wèi)星PCM測(cè)控測(cè)試設(shè)備。設(shè)備采用“通用前板+專用背板”板卡設(shè)計(jì)方法,提高通用性,降低成本;使用FPGA代替?zhèn)鹘y(tǒng)分立元件,提高設(shè)計(jì)效率和可靠性。為便于調(diào)試,硬件功能盡量簡(jiǎn)化,只完成數(shù)據(jù)發(fā)送接收操作,遙測(cè)幀同步、遙控指令解析等工作由軟件實(shí)現(xiàn)。
關(guān)鍵詞: CPCI; 通用化設(shè)計(jì); 軟件幀同步

    近年來,我國衛(wèi)星發(fā)射任務(wù)日益繁重,衛(wèi)星研制周期逐漸縮短,測(cè)試時(shí)間也被壓縮,同時(shí)衛(wèi)星型號(hào)逐漸增多,若對(duì)每一種型號(hào)的衛(wèi)星都單獨(dú)研發(fā)測(cè)試設(shè)備,不僅浪費(fèi)資源而且影響測(cè)試進(jìn)度,因此,衛(wèi)星地面測(cè)試設(shè)備應(yīng)向高效、通用的方向發(fā)展。傳統(tǒng)的地面測(cè)試設(shè)備多采用分立元件設(shè)計(jì),其結(jié)構(gòu)復(fù)雜、功能單一、可移植性差、更新?lián)Q代困難、操作不夠靈活,已不能適應(yīng)當(dāng)前復(fù)雜緊迫的地面測(cè)試工作。
 基于CPCI的衛(wèi)星PCM測(cè)控測(cè)試設(shè)備是地面測(cè)試系統(tǒng)的重要組成部分,采用了數(shù)字化、通用化的設(shè)計(jì)思想,功能如下:
   (1) 完成衛(wèi)星下行遙測(cè)PCM信號(hào)的接收和分路;對(duì)接收的遙測(cè)數(shù)據(jù)幀同步處理;通過數(shù)據(jù)服務(wù)端口上傳遙測(cè)數(shù)據(jù)幀,通過狀態(tài)服務(wù)端口通報(bào)遙測(cè)數(shù)據(jù)接收情況。
   (2) 通過遙控?cái)?shù)據(jù)接收端口接收網(wǎng)絡(luò)遙控指令;完成上行遙控PCM信號(hào)的分路輸出;通過狀態(tài)服務(wù)端口通報(bào)遙控指令發(fā)送情況。
1 總體設(shè)計(jì)方案
1.1 總線平臺(tái)選擇

   為使設(shè)備結(jié)構(gòu)簡(jiǎn)單,方便測(cè)試,采用了“計(jì)算機(jī)+專用板卡”的結(jié)構(gòu),常見的板卡形式為PCI結(jié)構(gòu)或CPCI結(jié)構(gòu)。雖然PCI總線也是一種高性能總線,但是由于其接口不牢固,在惡劣環(huán)境下容易脫落、斷裂,所以其只能用在比較穩(wěn)定、理想的環(huán)境中[1]。而CPCI技術(shù)標(biāo)準(zhǔn)融合了PCI局部總線的電氣特性、工業(yè)級(jí)歐卡封裝結(jié)構(gòu)和規(guī)格、EC 2 mm高密度針孔連接器等3項(xiàng)技術(shù)[2],具有和PCI相同的電氣性能和更為牢固的機(jī)械結(jié)構(gòu),因此在可靠性要求較高的場(chǎng)合得到了廣泛應(yīng)用。
 目前,CPCI板卡的設(shè)計(jì)一般采用2種方案:可編程邏輯器件和專用總線接口器件[3]??删幊踢壿嬈骷歉鶕?jù)CPCI協(xié)議在FPGA或CPLD中實(shí)現(xiàn)CPCI總線接口控制器,但是由于CPCI協(xié)議的復(fù)雜性,使得開發(fā)難度大、周期長,而且很難在短期內(nèi)達(dá)到系統(tǒng)穩(wěn)定,這種方法只適合于大批量生產(chǎn)的情況。對(duì)于一般的開發(fā)者來說,大都采用現(xiàn)成的CPCI接口器件。這類專用接口器件具有較低的成本和很好的通用性,能夠優(yōu)化數(shù)據(jù)傳輸,提供配置空間,具備用于突發(fā)傳輸功能的片內(nèi)FIFO等,是一種省時(shí)省力的方案。這類專用芯片有很多,如PLX公司的CPCI總線目標(biāo)接口器件PCI9052、PCI9054和AMCC公司的55933等。
 根據(jù)設(shè)備的功能要求,本設(shè)計(jì)采用了CPCI總線結(jié)構(gòu),接口芯片選擇成本較低但性能優(yōu)異的PCI9054。
1.2 設(shè)計(jì)方案
 衛(wèi)星PCM測(cè)控測(cè)試設(shè)備由遙測(cè)數(shù)據(jù)接收板卡、遙控指令發(fā)送板卡、控制軟件、CPCI主機(jī)4個(gè)部分組成。遙測(cè)數(shù)據(jù)接收板卡對(duì)衛(wèi)星下行PCM遙測(cè)數(shù)據(jù)進(jìn)行信號(hào)隔離和電平變換,將遙測(cè)數(shù)據(jù)串并轉(zhuǎn)換后,通過CPCI總線送至測(cè)控設(shè)備軟件,進(jìn)行幀同步處理。遙控指令發(fā)送板卡將CPCI總線送來的指令內(nèi)容按照遙控指令幀格式組裝,組裝后的遙控指令經(jīng)并串轉(zhuǎn)換、信號(hào)隔離、電平變換后,發(fā)送給衛(wèi)星,板卡還可以發(fā)送生成的虛擬遙測(cè)數(shù)據(jù),由遙測(cè)板卡接收,進(jìn)行環(huán)路自測(cè)試。測(cè)控設(shè)備軟件負(fù)責(zé)板卡的參數(shù)設(shè)置和狀態(tài)查詢,實(shí)現(xiàn)遙測(cè)數(shù)據(jù)幀同步,通過網(wǎng)絡(luò)端口上傳遙測(cè)數(shù)據(jù)幀、接收遙控?cái)?shù)據(jù)、通報(bào)設(shè)備工作狀態(tài)。其組成框圖如圖1所示。

2 硬件設(shè)計(jì)
2.1 通用化板卡設(shè)計(jì)

 為使設(shè)備具有通用性,在設(shè)計(jì)硬件板卡時(shí),采用“通用前板+專用背板”的設(shè)計(jì)方法。前板放置CPCI接口芯片(PLX9054)、FPGA(EP1C12QC2048)以及二者的配置電路,將FPGA的IO管腳通過CPCI接插件送至背板,背板則根據(jù)信號(hào)相應(yīng)的電氣特性要求,設(shè)計(jì)不同的電路,然后將信號(hào)連接到CPCI接插件上,實(shí)現(xiàn)與FPGA相連。這樣前板只需負(fù)責(zé)信號(hào)邏輯處理,不需考慮信號(hào)的具體電氣特性;后板只負(fù)責(zé)實(shí)現(xiàn)硬件接口所要求的電氣特性,不涉及信號(hào)的邏輯處理。因此,前板可以看成通用的信號(hào)處理板,當(dāng)需要實(shí)現(xiàn)不同的功能時(shí),只需改變FPGA內(nèi)邏輯和重新設(shè)計(jì)相應(yīng)背板即可,前板不必重新設(shè)計(jì),極大節(jié)省了設(shè)計(jì)時(shí)間。這種設(shè)計(jì)方法可以在對(duì)信號(hào)處理速度要求不高(10 Mb/s以下)、接口特性相對(duì)簡(jiǎn)單的場(chǎng)合應(yīng)用。
2.2 FPGA邏輯設(shè)計(jì)
2.2.1 遙測(cè)接收卡邏輯設(shè)計(jì)

 遙測(cè)接收模塊如圖2所示。模塊具有1路遙測(cè)PCM解調(diào)通道和1路用于閉環(huán)測(cè)試的自測(cè)試接收通道。遙測(cè)PCM數(shù)據(jù)進(jìn)入解調(diào)通道后,首先進(jìn)行信號(hào)隔離,實(shí)現(xiàn)星上設(shè)備和地面設(shè)備的隔離保護(hù)。隔離后信號(hào)分成3路,2路作為分路輸出,經(jīng)信號(hào)隔離后輸出給下級(jí)設(shè)備,另外1路作為解調(diào)數(shù)據(jù)。輸入的PCM數(shù)據(jù)可以是NRZ-L/M/S 3種碼型之一。如果輸入的是NRZ-M/S 2種中的1種,則碼型轉(zhuǎn)換電路對(duì)其進(jìn)行差分解碼,轉(zhuǎn)換成NRZ-L輸出。串并轉(zhuǎn)換模塊將接收的串行PCM遙測(cè)數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù),寫入同步FIFO,以供測(cè)控設(shè)備軟件讀取。


    自測(cè)試接收通道有2種可選模式:(1)接收遙測(cè)數(shù)據(jù)幀,用于遙測(cè)PCM解調(diào)通道模塊的自檢;(2)接收遙控?cái)?shù)據(jù)幀,用于遙控PCM調(diào)制模塊的自測(cè)試以及在設(shè)備工作時(shí)接收遙控PCM調(diào)制模塊發(fā)送的遙控指令,向測(cè)控主機(jī)反饋指令的發(fā)送狀況,2種工作模式能夠使用軟件切換。其工作流程和解調(diào)通道類似,均是將接收數(shù)據(jù)串并轉(zhuǎn)換后寫入同步FIFO,以供計(jì)算機(jī)讀取。
 由于測(cè)試通道要求既能夠接收遙測(cè)數(shù)據(jù)又能夠接收遙控?cái)?shù)據(jù),并能夠靈活切換,而且遙控方式也要比較靈活。如果直接在硬件上同步會(huì)比較復(fù)雜,而且系統(tǒng)的碼速率比較低,采用軟件處理其速度完全能夠滿足要求。故將接收數(shù)據(jù)在軟件上進(jìn)行幀同步或遙控指令檢測(cè)的實(shí)現(xiàn)方法。
2.2.2 遙控指令發(fā)送卡邏輯設(shè)計(jì)
   遙控指令發(fā)送模塊如圖3所示,模塊具有1路遙控指令發(fā)送通道和1路用于閉環(huán)測(cè)試的自測(cè)試發(fā)送通道。由于遙控指令是突發(fā)的,為防止FPGA的FIFO出現(xiàn)數(shù)據(jù)無法全部讀出的情況,使用2塊雙口RAM交替緩存遙控指令,1塊作為工作區(qū)存儲(chǔ)正在發(fā)送指令內(nèi)容,另1塊作為存儲(chǔ)區(qū)存儲(chǔ)下次發(fā)送的指令內(nèi)容。發(fā)送遙控指令時(shí),首先由主機(jī)軟件將指令內(nèi)容存入RAM,然后查詢上一幀數(shù)據(jù)是否發(fā)送完畢,如果發(fā)送完畢,則啟動(dòng)1次發(fā)送。發(fā)送時(shí)序列生成器首先根據(jù)設(shè)置的前導(dǎo)序列長度和樣式發(fā)送前導(dǎo)序列,然后序列生成器在內(nèi)部產(chǎn)生的PCM時(shí)鐘的作用下串行輸出PCM數(shù)據(jù),當(dāng)1個(gè)Byte串行移位結(jié)束后從雙口RAM下一地址中取數(shù),繼續(xù)移位操作。當(dāng)遙控指令發(fā)送完之后,F(xiàn)PGA將根據(jù)軟件的設(shè)置繼續(xù)發(fā)送預(yù)設(shè)好的填充序列,直到啟動(dòng)下一次發(fā)送。發(fā)送的數(shù)據(jù)通過碼型變換器變換成設(shè)置的碼型。輸出的PCM時(shí)鐘可設(shè)為常發(fā)或突發(fā)模式,當(dāng)處于常發(fā)模式時(shí),無論有無遙控指令,均輸出時(shí)鐘;當(dāng)處于突發(fā)模式時(shí),只有發(fā)送遙控指令時(shí)才有時(shí)鐘輸出。

    自測(cè)試發(fā)送通道,在結(jié)構(gòu)上與遙控發(fā)送通道類似,只是自測(cè)試通道需要產(chǎn)生連續(xù)的遙測(cè)數(shù)據(jù),使用RAM無法實(shí)現(xiàn),故使用FIFO作為數(shù)據(jù)緩存,測(cè)控軟件在查詢到硬件FIFO中有足夠的空間后,將1幀遙測(cè)數(shù)據(jù)寫入,F(xiàn)PGA依次將FIFO中的數(shù)據(jù)讀出,通過并串轉(zhuǎn)換及碼型變換后送到數(shù)據(jù)源選擇器,軟件根據(jù)當(dāng)前的工作模式選擇輸出。如果工作在轉(zhuǎn)發(fā)遙控?cái)?shù)據(jù)模式,數(shù)據(jù)源選擇器將會(huì)輸出遙控發(fā)送通道產(chǎn)生的遙控PCM數(shù)據(jù)和時(shí)鐘;如果工作在發(fā)送遙測(cè)數(shù)據(jù)模式,將會(huì)把自測(cè)試通道產(chǎn)生的遙測(cè)數(shù)據(jù)送出,從而使得自測(cè)試通道既能夠發(fā)送遙控?cái)?shù)據(jù),又能夠發(fā)送遙測(cè)數(shù)據(jù)。
3 軟件設(shè)計(jì)
3.1 驅(qū)動(dòng)程序開發(fā)

 常用的嵌入式操作系統(tǒng)有VxWorks和Windows2000 由于Windows2000通用、軟件資源豐富、易于使用和擴(kuò)展,本設(shè)計(jì)選擇Windows2000作為操作系統(tǒng)平臺(tái)。
 在Windows環(huán)境下,常用的驅(qū)動(dòng)程序開發(fā)工具有WindowsDDK、Driverstudio和WinDriver。前2種工具需要開發(fā)人員具有系統(tǒng)內(nèi)核層次的知識(shí),開發(fā)周期較長且難度較大,而WinDriver可以在用戶模式下編寫驅(qū)動(dòng)程序,其函數(shù)庫提供了大量的API函數(shù),便于調(diào)用。另外,WinDriver針對(duì)PCI9054特別編寫了API函數(shù)包,這些函數(shù)能夠方便地實(shí)現(xiàn)中斷處理、DMA傳輸、I/O操作、內(nèi)存映射以及即插即用等功能[4],可以滿足一般的設(shè)計(jì)要求。故本設(shè)計(jì)選用WinDriver作為驅(qū)動(dòng)開發(fā)工具。其開發(fā)流程如下:
    (1) 在Driver Wizard下選擇需要生成驅(qū)動(dòng)程序的硬件板卡。
    (2) 生成INF文件。
    (3) 探測(cè)硬件,Wizard會(huì)自動(dòng)探測(cè)硬件資源。
    (4) 測(cè)試硬件,包括讀/寫I/O Port、Memory space和相關(guān)寄存器以及監(jiān)聽硬件的中斷。
    (5) 生成Driver Code。
    (6) 修改設(shè)計(jì)代碼,完善驅(qū)動(dòng)程序的功能。
3.2 控制軟件組成
 控制軟件由板卡控制模塊、遙測(cè)參數(shù)設(shè)置模塊、遙控參數(shù)設(shè)置模塊、數(shù)據(jù)接收模塊、指令發(fā)送模塊、網(wǎng)絡(luò)通信模塊6部分組成,組成框圖如圖4所示。


 板卡控制模塊作為控制軟件的基礎(chǔ),控制板卡的打開、關(guān)閉、初始化、讀、寫、中斷等操作。遙測(cè)參數(shù)設(shè)置模塊根據(jù)網(wǎng)絡(luò)指令,設(shè)置遙測(cè)幀同步字、幀長、碼型等參數(shù),提交當(dāng)前設(shè)備的工作狀態(tài)。遙控參數(shù)設(shè)置模塊根據(jù)網(wǎng)絡(luò)指令,設(shè)置遙控指令長度、碼型、前導(dǎo)序列長度、圖樣、是否校驗(yàn)等參數(shù),提交當(dāng)前設(shè)備的工作狀態(tài)。數(shù)據(jù)接收模塊完成遙測(cè)數(shù)據(jù)幀同步、遙控指令自環(huán)接收和統(tǒng)計(jì)誤碼率,提交同步后的遙測(cè)數(shù)據(jù)和誤碼率統(tǒng)計(jì)結(jié)果。遙控指令發(fā)送模塊將接收的遙控指令內(nèi)容寫入板卡的緩存RAM中。網(wǎng)絡(luò)通信模塊實(shí)現(xiàn)本地設(shè)備和總控設(shè)備的網(wǎng)絡(luò)通信,解析總控送來的遙控指令內(nèi)容,上傳同步后的遙測(cè)數(shù)據(jù),設(shè)置設(shè)備的工作參數(shù),上傳設(shè)備當(dāng)前工作狀態(tài)。
3.3 軟件幀同步
    由于輸入的遙測(cè)數(shù)據(jù)碼速率較低(<100 Kb/s),為了簡(jiǎn)化硬件設(shè)計(jì),使用軟件完成幀同步的工作。遙測(cè)幀同步器按照設(shè)定的格式搜索數(shù)據(jù)流中按照幀長關(guān)系反復(fù)出現(xiàn)的幀同步字,從而按照定義好的格式輸出同步后的數(shù)據(jù)。幀同步器按照如圖5所示的邏輯狀態(tài)進(jìn)行工作。圖中,幀同步容錯(cuò)參數(shù)為0~3 bit可設(shè);校驗(yàn)至鎖定次數(shù)(L2)參數(shù)為0~7次可設(shè);保護(hù)至鎖定次數(shù)(L3)參數(shù)為0~7次可設(shè)。


    (1)幀同步器處于搜索狀態(tài),在此狀態(tài)下,每到來1個(gè)新的數(shù)據(jù)位,遙測(cè)幀同步器都將移位寄存器中的數(shù)據(jù)與設(shè)置的幀同步字進(jìn)行比較,在某些通信方式(如PSK)的解調(diào)過程中,會(huì)引入相位模糊。在這種情況下,PCM數(shù)據(jù)有可能與發(fā)送方發(fā)送的信息是全部反向的。而PCM解調(diào)器在進(jìn)行幀同步的過程中,通過對(duì)幀同步字?jǐn)?shù)據(jù)反轉(zhuǎn)狀態(tài)的判別,可以在發(fā)生數(shù)據(jù)反轉(zhuǎn)時(shí)自動(dòng)將接收到的數(shù)據(jù)反向,以實(shí)現(xiàn)自動(dòng)適應(yīng)相位模糊的功能??紤]到誤碼的存在,比較時(shí)并不要求全對(duì),只要滿足容錯(cuò)(M)參數(shù)(0~3 bit錯(cuò)誤)要求即可。當(dāng)搜索到同步字后,即進(jìn)入校驗(yàn)狀態(tài)。
 (2)在校驗(yàn)狀態(tài)下,每隔幀長乘以8個(gè)bit,再將當(dāng)前移位寄存器中的數(shù)據(jù)與設(shè)定的幀同步字進(jìn)行比較,如果不正確,則表示搜索狀態(tài)獲得的比較結(jié)果可能是錯(cuò)誤的(如當(dāng)數(shù)據(jù)域中出現(xiàn)與幀同步字相同的序列),回到搜索狀態(tài)重新搜索同步。當(dāng)在校驗(yàn)狀態(tài)連續(xù)L2次比較均正確后,即認(rèn)為幀同步鎖定,開始接收數(shù)據(jù)幀。
 (3)在鎖定狀態(tài)也會(huì)每隔幀長乘以8個(gè)bit檢查同步字是否如約出現(xiàn),如果沒有出現(xiàn),便進(jìn)入保護(hù)狀態(tài)。
   (4)在保護(hù)狀態(tài)下,如果連續(xù)L3次如約收到幀同步字,則回到鎖定狀態(tài);否則,返回搜索狀態(tài)重新搜索同步。
4 設(shè)備測(cè)試和使用
 本設(shè)備在交付前由用戶方進(jìn)行了詳細(xì)的測(cè)試,測(cè)試范圍包括接口電氣特性測(cè)試、功能測(cè)試、老化測(cè)試等,測(cè)試結(jié)果各項(xiàng)指標(biāo)均達(dá)到了技術(shù)要求,設(shè)備于2008年3月交用戶使用。通過一年來設(shè)備的運(yùn)行狀況以及用戶反映,證明該設(shè)備具有可靠性高、測(cè)試快速準(zhǔn)確、操作簡(jiǎn)便等優(yōu)點(diǎn)。
   基于CPCI的衛(wèi)星PCM測(cè)控測(cè)試設(shè)備采用目前廣泛使用的先進(jìn)測(cè)控總線標(biāo)準(zhǔn)CPCI總線技術(shù)研制而成,研制周期短,升級(jí)簡(jiǎn)單,只需稍作更改便可以應(yīng)用于其他項(xiàng)目的測(cè)試工作,具有廣闊的應(yīng)用前景。
參考文獻(xiàn)
[1]     于兵,張為公.基于CPCI接口的視頻采集卡的設(shè)計(jì)[J]. 測(cè)控技術(shù), 2008(7):20-22.
[2]     PICM. PICMG2.0 D3.0 Compact PCI specification[S]. 1999.
[3]     趙肖東. 基于CPCI的高速數(shù)據(jù)傳輸卡設(shè)計(jì)[D]. 北京:中國科學(xué)研究院研究生院(電子學(xué)研究所),2006.
[4]     韓慧,于守謙. 基于PCI總線圖像采集卡開發(fā)的圖像處理系統(tǒng)[J]. 計(jì)算機(jī)測(cè)量與控制, 2003,11(6):455-457.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。