蘭天
摘 要: 在機載通信領(lǐng)域,由于飛機體積、重量及功耗等要求,往往需要在一個獨立電臺設(shè)備上實現(xiàn)多種通信模式,同時受限于電臺的成本、功耗等因素,通常各種通信模式功能依靠FPGA的動態(tài)加載來實現(xiàn)。實際工程中發(fā)現(xiàn),當FPGA動態(tài)加載時,由于各版本的加載時間、復位管理、時鐘管理、接口時序等不一致,非常容易出現(xiàn)偶發(fā)的加載后功能異常,此類問題現(xiàn)象隨機,極難定位,很容易耗費大量的人力、物力及時間。為解決上述矛盾,提出一種適合在電臺中使用的FPGA初始化邏輯設(shè)計,保證不同版本的FPGA加載后能穩(wěn)定工作,提升電臺工作的可靠性與穩(wěn)定性。實踐表明,該方法簡單、可靠,具有非常強的工程推廣意義。
關(guān)鍵詞: 機載電臺; 成本; 功耗; FPGA; 動態(tài)加載; 初始化邏輯
中圖分類號: TN914.3?34; V243.1 文獻標識碼: A 文章編號: 1004?373X(2018)01?0152?04
Abstract: In airborne communication field, it is necessary to realize the multiple communication modes in a single transceiver according to the demands of the airplane′s size, weight and power consumption. Normally the various communication mode functions are realized by FPGA dynamic loading because the factors of transceiver′s cost and power consumption. In practical engineering, it is found that the loading time, reset management, clock management and interface timing are inconsistent for FPGA dynamic loading of each version, the abiogenetic function anomaly after loading may occur easily. The above problem phenomenon is random and difficult to locate it, and consumes a large number of manpower, material resource and time. To solve this problem, a reliable FPGA initialization logic design for transceiver is proposed to guarantee the stable working of transceiver after different FPGA loadings, improve the reliability and stability of the transceiver. The practical results show this method is simple and reliable, and has strong engineering extended significance.
Keywords: airborne transceiver; cost; power consumption; FPGA; dynamic loading; initialization logic
0 引 言
在機載通信領(lǐng)域中,為了保證飛機與地面通信鏈路的穩(wěn)定可靠,在電臺體積、功耗、重量等受限的條件下,往往需要一部電臺具備多頻段、多模式的通信功能。從電臺的體積、功耗、成本等因素考慮,一般選用的FPGA芯片都不支持所有功能同時在線運行,因此,不同的通信功能只能通過不同F(xiàn)PGA版本的動態(tài)加載來實現(xiàn)[1?9]。
在工程實際應(yīng)用中,雖然從技術(shù)原理上講,不同版本的FPGA版本動態(tài)加載不存在任何問題,但是對于不同的通信功能而言,由于信號帶寬、操作時鐘、處理算法的不同,使得各版本FPGA程序在動態(tài)加載時的加載時間、復位管理、時鐘管理等皆不一致,這種不一致對于整個通信系統(tǒng)而言,很容易導致FPGA動態(tài)加載后出現(xiàn)偶發(fā)的FPGA功能異常,進而導致整個通信功能失效的情況發(fā)生,更進一步地,此類異常情況,問題現(xiàn)象奇怪,極難定位。這在實際工程設(shè)計中經(jīng)常耗費大量的人力、物力。
為解決電臺中的此類問題,提高機載通信的穩(wěn)定性與可靠性,目前比較常見的容錯設(shè)計是在使用動態(tài)加載功能時,系統(tǒng)會檢測FPGA加載成功的DONE物理指示信號,當系統(tǒng)檢測到DONE信號有效時再繼續(xù)后續(xù)邏輯操作,但是從工程實踐中來看,單獨檢測DONE信號并不可靠,各種動態(tài)加載過程中的偶發(fā)故障依然層出不窮。因此,本文基于FPGA+DSP的硬件架構(gòu),設(shè)計了一種針對機載電臺FPGA上電初始化邏輯,該設(shè)計簡單、可靠,能顯著減低甚至消除功能切換FPGA動態(tài)加載時的錯誤概率。
1 電臺架構(gòu)簡介
現(xiàn)有電臺終端基于軟件無線電思想,采用模塊化實現(xiàn),在組成上主要包括:電源模塊、功放模塊、信道模塊、信號處理模塊和接口與控制模塊等,各模塊通過背板實現(xiàn)信號互連,架構(gòu)形態(tài)如圖1所示[10]。
電源模塊:主要實現(xiàn)對外部輸入電源的濾波、整形和變換,為設(shè)備內(nèi)其他各模塊提供工作電源,是整個電臺的電源管理單元。
功放模塊:主要實現(xiàn)對射頻發(fā)射信號的功率放大、濾波,接收信號的限幅、濾波和低噪放等處理。
信道模塊:主要實現(xiàn)收發(fā)信號的混頻、濾波等。endprint
通用信號處理模塊:主要實現(xiàn)基帶信號處理的調(diào)制、解調(diào)處理,基于軟件無線電的思想,不同通信功能主要靠在該模塊上運行不同的程序來實現(xiàn)。
接口與控制模塊:主要實現(xiàn)幀協(xié)議處理,及與上位機之間的交互和電臺參數(shù)控制管理等功能。
本文后續(xù)所述內(nèi)容皆是基于通用信號處理模塊。一種常用的基于DSP+FPGA架構(gòu)的通用信號處理模塊結(jié)構(gòu)如圖2所示。
從圖2可以看出,通用信號處理模塊主要由DSP、FPGA、時鐘管理單元、電源管理單元、基帶數(shù)據(jù)收發(fā)串行器/解串器等主要器件及其外圍電路構(gòu)成。
需要指出的是,目前設(shè)計的通用信號處理模塊是為了做到對多頻段、多模式通信算法的支持,將ADC及DAC放置到信道模塊內(nèi)。通用信號處理模塊使用串化器和解串器只發(fā)送或者接收基帶數(shù)字信號。
2 FPGA動態(tài)加載的風險分析
實際工程中發(fā)現(xiàn)不同版本間的FPGA程序在動態(tài)加載時存在以下幾種風險:
1) 加載時間不一致
由于不同功能的軟件工程大小不一致,所以最后生成的配置碼流文件大小也不一樣,因此,不同版本的功能軟件配置碼流從存儲器加載到FPGA所需要的時間是不一樣的,事實上,工程中發(fā)現(xiàn)即使同一版本的配置文件,每次動態(tài)加載的加載時間也不是固定的。
2) 系統(tǒng)參數(shù)下發(fā)失敗
一般的功能初始化時,系統(tǒng)參數(shù)的下發(fā)時機是相對固定的,因此動態(tài)加載后,如果FPGA還沒有加載完成時,參數(shù)就已經(jīng)下發(fā),那么就會出現(xiàn)功能軟件收不到系統(tǒng)下發(fā)的參數(shù)的情況,這將影響該功能的正常通信。因此,必須保證參數(shù)下發(fā)一定是在FPGA完全加載成功之后。
3) 程序加載失敗
FPGA加載的機理是將存儲器里面的配置碼流讀出來,再按照特定的時序與接口關(guān)系寫入FPGA,用以配置FPGA內(nèi)部的交叉互聯(lián)線。在機載復雜的電磁環(huán)境下,可能會出現(xiàn)加載異常,如配置過程中某些bit反轉(zhuǎn)等,這將導致程序加載后通信功能異常的情況。
4) 初始復位失敗
FPGA加載后,一般的做法是在時鐘鎖定后依靠FPGA本身內(nèi)部產(chǎn)生一個復位信號,但是實際工程應(yīng)用中發(fā)現(xiàn),這種初始復位方法可能會出現(xiàn)復位失敗的情況,一旦初始復位失效,將導致FPGA內(nèi)部許多寄存器變量處于不定狀態(tài),狀態(tài)機很容易處于非法狀態(tài),因此將導致通信功能異常。
5) 時鐘鎖定時間過長
FPGA加載后,每個版本都需要利用數(shù)字時鐘管理器對輸入時鐘重新進行鎖定,但是每次鎖定所需要的鎖定時間是不固定的。
在時鐘鎖定過程中FPGA不能正常工作。因此,如果某個功能版本的FPGA時鐘鎖定時間較長,系統(tǒng)下發(fā)參數(shù)時FPGA的時鐘還未鎖定,那么FPGA將收不到系統(tǒng)下發(fā)參數(shù),這也會導致通信功能異常。
6) 收發(fā)串行器/解串器失鎖
位于通用信號處理模塊和信道模塊上的收發(fā)串化器及解串器組依靠同步字的通信來保證收發(fā)兩端同步。一般的做法是系統(tǒng)周期監(jiān)視通用信號處理模塊和信道模塊上的解串器同步指示信號,同步指示信號經(jīng)FPGA上報系統(tǒng),一旦系統(tǒng)發(fā)現(xiàn)收發(fā)兩端失步,將通過FPGA向串化器發(fā)送同步建立請求,串化器將重啟同步字發(fā)送流程。此種方法雖然可以保證收發(fā)兩端失步后再恢復,但是這種周期監(jiān)測需要搶占系統(tǒng)底層的資源,對于某些實時性要求很高的通信模式而言,這將引發(fā)通信的異常中斷,因此,此種情況下,不會允許采用周期監(jiān)測的方式來監(jiān)視串化器及解串器兩端的同步狀態(tài)。
依靠收發(fā)兩端的初始同步非常關(guān)鍵,但是另一方面如果某些FPGA版本加載時間過長,在FPGA還未加載成功之前,系統(tǒng)就下發(fā)了初始化同步建立請求,此時該建立請求將被丟失,由于沒有周期性的同步監(jiān)測,串化器與解串器兩端將一直處于失步狀態(tài),這將導致該功能一直異常。
以上六種情況都將給通信功能帶來極高的故障風險,但是對于機載通信的高可靠性要求而言,此類風險是不能接受的。因此,實際工程設(shè)計中需要針對FPGA動態(tài)加載后的故障風險采取一些容錯及糾正措施,以降低此類故障的發(fā)生概率。
3 一般的容錯設(shè)計方法
目前主流的FPGA芯片都提供了FPGA加載完成的指示信號。以XILINX的FPGA為例,當FPGA完成加載后有專用的FPGA加載完成標識,DONE信號輸出。因此,一般針對動態(tài)加載過程中出現(xiàn)的異常問題,最常見的做法是利用DONE信號來檢測FPGA是否完成加載。
最常用的設(shè)計是由DSP檢測FPGA加載成功的DONE信號來完成,如圖3所示,具體流程如下:
1) 從收到系統(tǒng)下發(fā)的版本切換指令開始,DSP啟動計時器,同時周期檢測DONE信號;
2) 如果DSP檢測到DONE信號有效,則上報系統(tǒng)FPGA加載完成,可以啟動參數(shù)下發(fā)流程;
3) 當計時達到最大時間時,如果DONE信號無效,則回到1),DSP將重新啟動FPGA加載過程,同時加載次數(shù)計數(shù)器加1;
4) 如果連續(xù)[N]次加載失敗后,由DSP上報系統(tǒng),加載失敗。
這種處理方式完全依靠FPGA加載后自身的DONE信號,從機理上講該信號反應(yīng)了配置碼流是否完全送入FPGA,并且成功配置了交叉互聯(lián)線,但是該信號并不能反映第2節(jié)所述的諸如初始復位失效,時鐘鎖定時間過長等問題。從實際工程應(yīng)用情況來看,采用該設(shè)計后,動態(tài)加載中的異常情況有所緩解,但依然非常明顯,對于機載航空通信而言,依然不可接受。
因此為提升機載環(huán)境下FPGA程序加載的可靠性,有必要設(shè)計一種更加可靠的檢測邏輯。
4 一種新的動態(tài)加載初始化邏輯設(shè)計
為解決上述問題,本文設(shè)計了一種更加可靠的FPGA加載邏輯,該設(shè)計從容錯機制上更加嚴格,且不僅提升了動態(tài)加載過程的功能可靠性,還兼顧了功能運行過程中的可靠性。該邏輯設(shè)計的流程如圖4所示。endprint
1) 從收到系統(tǒng)下發(fā)的版本切換指令開始,DSP啟動計時器,同時周期檢測DONE信號,轉(zhuǎn)至2);
2) DSP周期檢測到DONE信號,有效轉(zhuǎn)至3),否則轉(zhuǎn)至4);
3) DSP周期檢測FPGA版本標識號,版本號有效則轉(zhuǎn)至5),否則轉(zhuǎn)至9),同時加載次數(shù)計數(shù)器加1;
4) 當計時達到最大時間時,如果DONE信號無效,則回到9),同時加載次數(shù)計數(shù)器加1;
5) DSP回讀FPGA時鐘鎖定標識,鎖定標識有效則轉(zhuǎn)至6),否則轉(zhuǎn)至9),同時加載次數(shù)計數(shù)器加1;
6) DSP向FPGA發(fā)送復位指示轉(zhuǎn)至7);
7) DSP上報系統(tǒng)FPGA動態(tài)加載完成,可以啟動參數(shù)下發(fā)流程,轉(zhuǎn)至8);
8) FPGA正常運行過程中,一旦檢測到串化器及解串器處于閑狀態(tài),則通知DSP啟動同步字發(fā)送流程,一旦串化器有數(shù)要發(fā)送,則立刻停止同步字發(fā)送。同時,DSP檢測FPGA的時鐘鎖定指示,一旦發(fā)現(xiàn)失鎖,則轉(zhuǎn)至6);
9) 如果加載次數(shù)計數(shù)器小于[N,]則轉(zhuǎn)至1),重啟加載過程,否則由DSP上報系統(tǒng),加載失敗。
從上述流程可以看出,該設(shè)計相對傳統(tǒng)的容錯做法主要有以下改進:
在使用DONE信號作為加載完成指示的基礎(chǔ)上,增加了DSP,對FPGA進行版本回讀及時鐘鎖定檢測。確保動態(tài)加載后,F(xiàn)PGA已經(jīng)開始正常工作。
為保證動態(tài)加載后FPGA內(nèi)部存儲器的初始狀態(tài)固定,增加了DSP對FPGA的初始化復位操作;為了保證FPGA的可靠運行,針對FPGA的時鐘鎖定信號進行了實時檢測;為防止串行器/解串器失步,采用空閑時鐘及同步的方法,能有效提高串化器與解串器的穩(wěn)定性。
5 驗證情況
在某通信系統(tǒng)中,使用某型機載航空電臺,針對兩種初始化設(shè)計方法進行了對比測試。
當采用一般的只用DONE信號的初始化邏輯設(shè)計時,在不同功能切換,F(xiàn)PGA動態(tài)加載時,很容易出現(xiàn)各種偶發(fā)且故障現(xiàn)象隨機的功能異常情況,針對此類功能異?,F(xiàn)象,經(jīng)過大量的測試及分析后,均定位為與FPGA動態(tài)加載密切相關(guān)的初始化異常。
在同樣的系統(tǒng)中,測試環(huán)境不變,對電臺中的初始化邏輯進行設(shè)計,按照本文提出的方法修改后,重新測試。大量測試下未出現(xiàn)各類通信功能的異常情況,與此同時,一旦將電臺中的初始化設(shè)計退回原有設(shè)計,各種異常情況很容易再次復現(xiàn),這表明本文提出的方法確實可靠有效。
目前,此方法已在多個平臺上推廣應(yīng)用,大量的實際應(yīng)用表明,該設(shè)計能夠有效降低FPGA在加載時的功能故障,提升機載電臺的穩(wěn)定性,進而保證各種模式下機載通信的可靠性。因此,本文提出的初始化設(shè)計方法在實際工程應(yīng)用中有非常強的應(yīng)用前景。
6 結(jié) 語
基于實際工程研制中所遇到的FPGA動態(tài)加載異常問題,本文設(shè)計了一種全新的FPGA初始化邏輯。工程實踐驗證表明,該方法簡單可靠,且非常有效,能有效提升FPGA動態(tài)加載的可靠性,能克服電臺中在功能切換過程中經(jīng)常出現(xiàn)的偶發(fā)異常情況。因此該方法對于提升電臺通信功能的穩(wěn)定性及機載通信的穩(wěn)定性有很強的現(xiàn)實意義。同時,該設(shè)計是基于DSP+FPGA開發(fā)硬件架構(gòu)的一種通用設(shè)計,能非常方便地推廣移植到采用類似硬件架構(gòu)的平臺上。
參考文獻
[1] 邱永紅,劉衫堅,計淑浪.軟件無線通信系統(tǒng)模塊化體系結(jié)構(gòu)的研究[J].計算機工程與應(yīng)用,2004(15):171?174.
QIU Yonghong, LIU Shanjian, JI Shulang. Research on modular architecture for software wireless communication systems [J]. Computer engineering and applications, 2004(15): 171?174.
[2] 閆復利.全雙工無線數(shù)傳電臺[J].兵工自動化,2009,28(12): 29?31.
YAN Fuli. Full duplex wireless data radio station [J]. Ordnance industry automation, 2009, 28(12): 29?31.
[3] 趙秋明,沈博,胡曉鵬.基于SCA軟件無線電硬件平臺的設(shè)計[J].器件與應(yīng)用,2011,35(19):48?50.
ZHAO Qiuming, SHEN Bo, HU Xiaopeng. Design of hardware platform based on SCA software radio [J]. Parts & applications, 2011, 35(19): 48?50.
[4] 張振.FPGA內(nèi)數(shù)字時鐘管理模塊的研究與設(shè)計[D].西安:西安電子科技大學,2014.
ZHANG Zhen. Research and design of digital clock manager integrated in FPGA [D]. Xian: Xidian University, 2014.
[5] 王爍,周家喜,王慶華.SCA架構(gòu)軟件無線電臺設(shè)計與實現(xiàn)[J].通信技術(shù),2011(6):40?42.
WANG Shuo, ZHOU Jiaxi, WANG Qinghua. Design and implementation of a software?defined radio based on SCA [J]. Communications technology, 2011(6): 40?42.
[6] 何春虎,郭強,孟宓.基于認知無線電的軍用抗干擾電臺的設(shè)計[J].科技視界,2013(20):13?14.endprint
HE Chunhu, GUO Qiang, MENG Mi. The design of military and interference radio based on cognitive radio [J]. Science & technology vision, 2013(20): 13?14.
[7] 張劍鋒.基于認知無線電的電臺架構(gòu)研究[J].軟件,2011(5):56?58.
ZHANG Jianfeng. Research of cognitive radio architecture [J]. Software, 2011(5): 56?58.
[8] 叢鍵,蘇旸,張海燕.一種新型戰(zhàn)術(shù)電臺的關(guān)鍵技術(shù)分析與設(shè)計[J].通信技術(shù),2012(9):36?38.
CONG Jian, SU Yang, ZHANG Haiyan. Architecture design and analysis of a novel multi?channel multi?mode tactical radio [J]. Communication technology, 2012(9): 36?38.
[9] 吳非,廖文瑜,牛吉發(fā).基于SCA的軟件無線電臺配置管理設(shè)計[J].通信技術(shù),2016(6):794?798.
WU Fei, LIAO Wenyu, NIU Jifa. Design of configure manage framework based on SCA SDR radio [J]. Communications technology, 2016(6): 794?798.
[10] 王戰(zhàn)江.基于數(shù)字中頻交換的多通道通信終端架構(gòu)設(shè)計[J].現(xiàn)代電子技術(shù),2016,39(11):5?8.
WANG Zhanjiang. Design of multichannel communication terminal architecture based on digital intermediate frequency exchange [J]. Modern electronics technique, 2016, 39(11): 5?8.endprint