摘 要: 針對傳統(tǒng)的地面測控測試設(shè)備結(jié)構(gòu)復(fù)雜、可移植性差、難以滿足當(dāng)前測試要求的現(xiàn)狀,提出了基于CPCI總線設(shè)計的衛(wèi)星PCM測控測試設(shè)備。設(shè)備采用“通用前板+專用背板”板卡設(shè)計方法,提高通用性,降低成本;使用FPGA代替?zhèn)鹘y(tǒng)分立元件,提高設(shè)計效率和可靠性。為便于調(diào)試,硬件功能盡量簡化,只完成數(shù)據(jù)發(fā)送接收操作,遙測幀同步、遙控指令解析等工作由軟件實現(xiàn)。
關(guān)鍵詞: CPCI; 通用化設(shè)計; 軟件幀同步
近年來,我國衛(wèi)星發(fā)射任務(wù)日益繁重,衛(wèi)星研制周期逐漸縮短,測試時間也被壓縮,同時衛(wèi)星型號逐漸增多,若對每一種型號的衛(wèi)星都單獨研發(fā)測試設(shè)備,不僅浪費資源而且影響測試進度,因此,衛(wèi)星地面測試設(shè)備應(yīng)向高效、通用的方向發(fā)展。傳統(tǒng)的地面測試設(shè)備多采用分立元件設(shè)計,其結(jié)構(gòu)復(fù)雜、功能單一、可移植性差、更新?lián)Q代困難、操作不夠靈活,已不能適應(yīng)當(dāng)前復(fù)雜緊迫的地面測試工作。
基于CPCI的衛(wèi)星PCM測控測試設(shè)備是地面測試系統(tǒng)的重要組成部分,采用了數(shù)字化、通用化的設(shè)計思想,功能如下:
(1) 完成衛(wèi)星下行遙測PCM信號的接收和分路;對接收的遙測數(shù)據(jù)幀同步處理;通過數(shù)據(jù)服務(wù)端口上傳遙測數(shù)據(jù)幀,通過狀態(tài)服務(wù)端口通報遙測數(shù)據(jù)接收情況。
(2) 通過遙控數(shù)據(jù)接收端口接收網(wǎng)絡(luò)遙控指令;完成上行遙控PCM信號的分路輸出;通過狀態(tài)服務(wù)端口通報遙控指令發(fā)送情況。
1 總體設(shè)計方案
1.1 總線平臺選擇
為使設(shè)備結(jié)構(gòu)簡單,方便測試,采用了“計算機+專用板卡”的結(jié)構(gòu),常見的板卡形式為PCI結(jié)構(gòu)或CPCI結(jié)構(gòu)。雖然PCI總線也是一種高性能總線,但是由于其接口不牢固,在惡劣環(huán)境下容易脫落、斷裂,所以其只能用在比較穩(wěn)定、理想的環(huán)境中[1]。而CPCI技術(shù)標準融合了PCI局部總線的電氣特性、工業(yè)級歐卡封裝結(jié)構(gòu)和規(guī)格、EC 2 mm高密度針孔連接器等3項技術(shù)[2],具有和PCI相同的電氣性能和更為牢固的機械結(jié)構(gòu),因此在可靠性要求較高的場合得到了廣泛應(yīng)用。
目前,CPCI板卡的設(shè)計一般采用2種方案:可編程邏輯器件和專用總線接口器件[3]。可編程邏輯器件是根據(jù)CPCI協(xié)議在FPGA或CPLD中實現(xiàn)CPCI總線接口控制器,但是由于CPCI協(xié)議的復(fù)雜性,使得開發(fā)難度大、周期長,而且很難在短期內(nèi)達到系統(tǒng)穩(wěn)定,這種方法只適合于大批量生產(chǎn)的情況。對于一般的開發(fā)者來說,大都采用現(xiàn)成的CPCI接口器件。這類專用接口器件具有較低的成本和很好的通用性,能夠優(yōu)化數(shù)據(jù)傳輸,提供配置空間,具備用于突發(fā)傳輸功能的片內(nèi)FIFO等,是一種省時省力的方案。這類專用芯片有很多,如PLX公司的CPCI總線目標接口器件PCI9052、PCI9054和AMCC公司的55933等。
根據(jù)設(shè)備的功能要求,本設(shè)計采用了CPCI總線結(jié)構(gòu),接口芯片選擇成本較低但性能優(yōu)異的PCI9054。
1.2 設(shè)計方案
衛(wèi)星PCM測控測試設(shè)備由遙測數(shù)據(jù)接收板卡、遙控指令發(fā)送板卡、控制軟件、CPCI主機4個部分組成。遙測數(shù)據(jù)接收板卡對衛(wèi)星下行PCM遙測數(shù)據(jù)進行信號隔離和電平變換,將遙測數(shù)據(jù)串并轉(zhuǎn)換后,通過CPCI總線送至測控設(shè)備軟件,進行幀同步處理。遙控指令發(fā)送板卡將CPCI總線送來的指令內(nèi)容按照遙控指令幀格式組裝,組裝后的遙控指令經(jīng)并串轉(zhuǎn)換、信號隔離、電平變換后,發(fā)送給衛(wèi)星,板卡還可以發(fā)送生成的虛擬遙測數(shù)據(jù),由遙測板卡接收,進行環(huán)路自測試。測控設(shè)備軟件負責(zé)板卡的參數(shù)設(shè)置和狀態(tài)查詢,實現(xiàn)遙測數(shù)據(jù)幀同步,通過網(wǎng)絡(luò)端口上傳遙測數(shù)據(jù)幀、接收遙控數(shù)據(jù)、通報設(shè)備工作狀態(tài)。其組成框圖如圖1所示。
2 硬件設(shè)計
2.1 通用化板卡設(shè)計
為使設(shè)備具有通用性,在設(shè)計硬件板卡時,采用“通用前板+專用背板”的設(shè)計方法。前板放置CPCI接口芯片(PLX9054)、FPGA(EP1C12QC2048)以及二者的配置電路,將FPGA的IO管腳通過CPCI接插件送至背板,背板則根據(jù)信號相應(yīng)的電氣特性要求,設(shè)計不同的電路,然后將信號連接到CPCI接插件上,實現(xiàn)與FPGA相連。這樣前板只需負責(zé)信號邏輯處理,不需考慮信號的具體電氣特性;后板只負責(zé)實現(xiàn)硬件接口所要求的電氣特性,不涉及信號的邏輯處理。因此,前板可以看成通用的信號處理板,當(dāng)需要實現(xiàn)不同的功能時,只需改變FPGA內(nèi)邏輯和重新設(shè)計相應(yīng)背板即可,前板不必重新設(shè)計,極大節(jié)省了設(shè)計時間。這種設(shè)計方法可以在對信號處理速度要求不高(10 Mb/s以下)、接口特性相對簡單的場合應(yīng)用。
2.2 FPGA邏輯設(shè)計
2.2.1 遙測接收卡邏輯設(shè)計
遙測接收模塊如圖2所示。模塊具有1路遙測PCM解調(diào)通道和1路用于閉環(huán)測試的自測試接收通道。遙測PCM數(shù)據(jù)進入解調(diào)通道后,首先進行信號隔離,實現(xiàn)星上設(shè)備和地面設(shè)備的隔離保護。隔離后信號分成3路,2路作為分路輸出,經(jīng)信號隔離后輸出給下級設(shè)備,另外1路作為解調(diào)數(shù)據(jù)。輸入的PCM數(shù)據(jù)可以是NRZ-L/M/S 3種碼型之一。如果輸入的是NRZ-M/S 2種中的1種,則碼型轉(zhuǎn)換電路對其進行差分解碼,轉(zhuǎn)換成NRZ-L輸出。串并轉(zhuǎn)換模塊將接收的串行PCM遙測數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù),寫入同步FIFO,以供測控設(shè)備軟件讀取。
自測試接收通道有2種可選模式:(1)接收遙測數(shù)據(jù)幀,用于遙測PCM解調(diào)通道模塊的自檢;(2)接收遙控數(shù)據(jù)幀,用于遙控PCM調(diào)制模塊的自測試以及在設(shè)備工作時接收遙控PCM調(diào)制模塊發(fā)送的遙控指令,向測控主機反饋指令的發(fā)送狀況,2種工作模式能夠使用軟件切換。其工作流程和解調(diào)通道類似,均是將接收數(shù)據(jù)串并轉(zhuǎn)換后寫入同步FIFO,以供計算機讀取。
由于測試通道要求既能夠接收遙測數(shù)據(jù)又能夠接收遙控數(shù)據(jù),并能夠靈活切換,而且遙控方式也要比較靈活。如果直接在硬件上同步會比較復(fù)雜,而且系統(tǒng)的碼速率比較低,采用軟件處理其速度完全能夠滿足要求。故將接收數(shù)據(jù)在軟件上進行幀同步或遙控指令檢測的實現(xiàn)方法。
2.2.2 遙控指令發(fā)送卡邏輯設(shè)計
遙控指令發(fā)送模塊如圖3所示,模塊具有1路遙控指令發(fā)送通道和1路用于閉環(huán)測試的自測試發(fā)送通道。由于遙控指令是突發(fā)的,為防止FPGA的FIFO出現(xiàn)數(shù)據(jù)無法全部讀出的情況,使用2塊雙口RAM交替緩存遙控指令,1塊作為工作區(qū)存儲正在發(fā)送指令內(nèi)容,另1塊作為存儲區(qū)存儲下次發(fā)送的指令內(nèi)容。發(fā)送遙控指令時,首先由主機軟件將指令內(nèi)容存入RAM,然后查詢上一幀數(shù)據(jù)是否發(fā)送完畢,如果發(fā)送完畢,則啟動1次發(fā)送。發(fā)送時序列生成器首先根據(jù)設(shè)置的前導(dǎo)序列長度和樣式發(fā)送前導(dǎo)序列,然后序列生成器在內(nèi)部產(chǎn)生的PCM時鐘的作用下串行輸出PCM數(shù)據(jù),當(dāng)1個Byte串行移位結(jié)束后從雙口RAM下一地址中取數(shù),繼續(xù)移位操作。當(dāng)遙控指令發(fā)送完之后,F(xiàn)PGA將根據(jù)軟件的設(shè)置繼續(xù)發(fā)送預(yù)設(shè)好的填充序列,直到啟動下一次發(fā)送。發(fā)送的數(shù)據(jù)通過碼型變換器變換成設(shè)置的碼型。輸出的PCM時鐘可設(shè)為常發(fā)或突發(fā)模式,當(dāng)處于常發(fā)模式時,無論有無遙控指令,均輸出時鐘;當(dāng)處于突發(fā)模式時,只有發(fā)送遙控指令時才有時鐘輸出。
自測試發(fā)送通道,在結(jié)構(gòu)上與遙控發(fā)送通道類似,只是自測試通道需要產(chǎn)生連續(xù)的遙測數(shù)據(jù),使用RAM無法實現(xiàn),故使用FIFO作為數(shù)據(jù)緩存,測控軟件在查詢到硬件FIFO中有足夠的空間后,將1幀遙測數(shù)據(jù)寫入,F(xiàn)PGA依次將FIFO中的數(shù)據(jù)讀出,通過并串轉(zhuǎn)換及碼型變換后送到數(shù)據(jù)源選擇器,軟件根據(jù)當(dāng)前的工作模式選擇輸出。如果工作在轉(zhuǎn)發(fā)遙控數(shù)據(jù)模式,數(shù)據(jù)源選擇器將會輸出遙控發(fā)送通道產(chǎn)生的遙控PCM數(shù)據(jù)和時鐘;如果工作在發(fā)送遙測數(shù)據(jù)模式,將會把自測試通道產(chǎn)生的遙測數(shù)據(jù)送出,從而使得自測試通道既能夠發(fā)送遙控數(shù)據(jù),又能夠發(fā)送遙測數(shù)據(jù)。
3 軟件設(shè)計
3.1 驅(qū)動程序開發(fā)
常用的嵌入式操作系統(tǒng)有VxWorks和Windows2000 由于Windows2000通用、軟件資源豐富、易于使用和擴展,本設(shè)計選擇Windows2000作為操作系統(tǒng)平臺。
在Windows環(huán)境下,常用的驅(qū)動程序開發(fā)工具有WindowsDDK、Driverstudio和WinDriver。前2種工具需要開發(fā)人員具有系統(tǒng)內(nèi)核層次的知識,開發(fā)周期較長且難度較大,而WinDriver可以在用戶模式下編寫驅(qū)動程序,其函數(shù)庫提供了大量的API函數(shù),便于調(diào)用。另外,WinDriver針對PCI9054特別編寫了API函數(shù)包,這些函數(shù)能夠方便地實現(xiàn)中斷處理、DMA傳輸、I/O操作、內(nèi)存映射以及即插即用等功能[4],可以滿足一般的設(shè)計要求。故本設(shè)計選用WinDriver作為驅(qū)動開發(fā)工具。其開發(fā)流程如下:
(1) 在Driver Wizard下選擇需要生成驅(qū)動程序的硬件板卡。
(2) 生成INF文件。
(3) 探測硬件,Wizard會自動探測硬件資源。
(4) 測試硬件,包括讀/寫I/O Port、Memory space和相關(guān)寄存器以及監(jiān)聽硬件的中斷。
(5) 生成Driver Code。
(6) 修改設(shè)計代碼,完善驅(qū)動程序的功能。
3.2 控制軟件組成
控制軟件由板卡控制模塊、遙測參數(shù)設(shè)置模塊、遙控參數(shù)設(shè)置模塊、數(shù)據(jù)接收模塊、指令發(fā)送模塊、網(wǎng)絡(luò)通信模塊6部分組成,組成框圖如圖4所示。
板卡控制模塊作為控制軟件的基礎(chǔ),控制板卡的打開、關(guān)閉、初始化、讀、寫、中斷等操作。遙測參數(shù)設(shè)置模塊根據(jù)網(wǎng)絡(luò)指令,設(shè)置遙測幀同步字、幀長、碼型等參數(shù),提交當(dāng)前設(shè)備的工作狀態(tài)。遙控參數(shù)設(shè)置模塊根據(jù)網(wǎng)絡(luò)指令,設(shè)置遙控指令長度、碼型、前導(dǎo)序列長度、圖樣、是否校驗等參數(shù),提交當(dāng)前設(shè)備的工作狀態(tài)。數(shù)據(jù)接收模塊完成遙測數(shù)據(jù)幀同步、遙控指令自環(huán)接收和統(tǒng)計誤碼率,提交同步后的遙測數(shù)據(jù)和誤碼率統(tǒng)計結(jié)果。遙控指令發(fā)送模塊將接收的遙控指令內(nèi)容寫入板卡的緩存RAM中。網(wǎng)絡(luò)通信模塊實現(xiàn)本地設(shè)備和總控設(shè)備的網(wǎng)絡(luò)通信,解析總控送來的遙控指令內(nèi)容,上傳同步后的遙測數(shù)據(jù),設(shè)置設(shè)備的工作參數(shù),上傳設(shè)備當(dāng)前工作狀態(tài)。
3.3 軟件幀同步
由于輸入的遙測數(shù)據(jù)碼速率較低(<100 Kb/s),為了簡化硬件設(shè)計,使用軟件完成幀同步的工作。遙測幀同步器按照設(shè)定的格式搜索數(shù)據(jù)流中按照幀長關(guān)系反復(fù)出現(xiàn)的幀同步字,從而按照定義好的格式輸出同步后的數(shù)據(jù)。幀同步器按照如圖5所示的邏輯狀態(tài)進行工作。圖中,幀同步容錯參數(shù)為0~3 bit可設(shè);校驗至鎖定次數(shù)(L2)參數(shù)為0~7次可設(shè);保護至鎖定次數(shù)(L3)參數(shù)為0~7次可設(shè)。
(1)幀同步器處于搜索狀態(tài),在此狀態(tài)下,每到來1個新的數(shù)據(jù)位,遙測幀同步器都將移位寄存器中的數(shù)據(jù)與設(shè)置的幀同步字進行比較,在某些通信方式(如PSK)的解調(diào)過程中,會引入相位模糊。在這種情況下,PCM數(shù)據(jù)有可能與發(fā)送方發(fā)送的信息是全部反向的。而PCM解調(diào)器在進行幀同步的過程中,通過對幀同步字數(shù)據(jù)反轉(zhuǎn)狀態(tài)的判別,可以在發(fā)生數(shù)據(jù)反轉(zhuǎn)時自動將接收到的數(shù)據(jù)反向,以實現(xiàn)自動適應(yīng)相位模糊的功能??紤]到誤碼的存在,比較時并不要求全對,只要滿足容錯(M)參數(shù)(0~3 bit錯誤)要求即可。當(dāng)搜索到同步字后,即進入校驗狀態(tài)。
(2)在校驗狀態(tài)下,每隔幀長乘以8個bit,再將當(dāng)前移位寄存器中的數(shù)據(jù)與設(shè)定的幀同步字進行比較,如果不正確,則表示搜索狀態(tài)獲得的比較結(jié)果可能是錯誤的(如當(dāng)數(shù)據(jù)域中出現(xiàn)與幀同步字相同的序列),回到搜索狀態(tài)重新搜索同步。當(dāng)在校驗狀態(tài)連續(xù)L2次比較均正確后,即認為幀同步鎖定,開始接收數(shù)據(jù)幀。
(3)在鎖定狀態(tài)也會每隔幀長乘以8個bit檢查同步字是否如約出現(xiàn),如果沒有出現(xiàn),便進入保護狀態(tài)。
(4)在保護狀態(tài)下,如果連續(xù)L3次如約收到幀同步字,則回到鎖定狀態(tài);否則,返回搜索狀態(tài)重新搜索同步。
4 設(shè)備測試和使用
本設(shè)備在交付前由用戶方進行了詳細的測試,測試范圍包括接口電氣特性測試、功能測試、老化測試等,測試結(jié)果各項指標均達到了技術(shù)要求,設(shè)備于2008年3月交用戶使用。通過一年來設(shè)備的運行狀況以及用戶反映,證明該設(shè)備具有可靠性高、測試快速準確、操作簡便等優(yōu)點。
基于CPCI的衛(wèi)星PCM測控測試設(shè)備采用目前廣泛使用的先進測控總線標準CPCI總線技術(shù)研制而成,研制周期短,升級簡單,只需稍作更改便可以應(yīng)用于其他項目的測試工作,具有廣闊的應(yīng)用前景。
參考文獻
[1] 于兵,張為公.基于CPCI接口的視頻采集卡的設(shè)計[J]. 測控技術(shù), 2008(7):20-22.
[2] PICM. PICMG2.0 D3.0 Compact PCI specification[S]. 1999.
[3] 趙肖東. 基于CPCI的高速數(shù)據(jù)傳輸卡設(shè)計[D]. 北京:中國科學(xué)研究院研究生院(電子學(xué)研究所),2006.
[4] 韓慧,于守謙. 基于PCI總線圖像采集卡開發(fā)的圖像處理系統(tǒng)[J]. 計算機測量與控制, 2003,11(6):455-457.