賀 剛,柏 鵬,彭衛(wèi)東,王明芳,韓立峰,趙學軍,高升強
(1.空軍工程大學 科研部 信息中心,西安 710051;2.空軍工程大學 導彈學院,陜西 三原 713800;3.西安陸軍學院,西安 710108)
當前,以硬件描述語言為工具、邏輯器件為載體的系統(tǒng)設(shè)計越來越廣泛。在設(shè)計中,狀態(tài)機是最典型、應(yīng)用最廣泛的電路模塊,其在運行速度的高效、執(zhí)行時間的確定性和高可靠性方面都顯現(xiàn)出強大的優(yōu)勢[1]。
狀態(tài)機的設(shè)計思想已經(jīng)在各個領(lǐng)域均有廣泛的應(yīng)用,文獻[2]在離子注入機設(shè)計中采用狀態(tài)機設(shè)計方法。文獻[2,3]提出了引入狀態(tài)機設(shè)計主要有3個方面的原因:實現(xiàn)快速建模、提高代碼復(fù)用率和管理大量并發(fā)控制流程。有限狀態(tài)機(Finite State Machine,FSM)是根據(jù)當前狀態(tài)以及觸發(fā)條件進行狀態(tài)轉(zhuǎn)換的一種機制,包含一組狀態(tài)集(state)、一個起始狀態(tài)(start state)、一組輸入符號集(alphabet)、一個映射輸入符號和當前狀態(tài)到下一狀態(tài)的輸換函數(shù)(transition function)的計算模型[2,3]。
本文對QPSK調(diào)制發(fā)送系統(tǒng)的幀格式的特征進行了分析,結(jié)合有限狀態(tài)機的模型特征,調(diào)制系統(tǒng)的各部分組成數(shù)據(jù)(同步頭數(shù)據(jù)、標志位數(shù)據(jù)、相位校正數(shù)據(jù)、正文數(shù)據(jù))對應(yīng)于有限狀態(tài)機模型中的狀態(tài)集,根據(jù)觸發(fā)條件,相應(yīng)地將所需數(shù)據(jù)塊依次發(fā)送。由于有限狀態(tài)機是一種具有離散輸入輸出系統(tǒng)的模型,由有限的狀態(tài)和相互之間的轉(zhuǎn)移條件構(gòu)成,在任何時候都只能處于給定數(shù)目狀態(tài)中的一個,因此采用這種設(shè)計方法能穩(wěn)定可靠地按需求將各數(shù)據(jù)塊進行發(fā)送。
所設(shè)計的QPSK調(diào)制系統(tǒng)[4-6]中,發(fā)送的數(shù)據(jù)幀格式如圖1所示。
圖1 幀格式Fig.1 Frame format
由圖1可知,本通信系統(tǒng)一幀數(shù)據(jù)由同步頭數(shù)據(jù)和正文數(shù)據(jù)組成,其中同步頭數(shù)據(jù)為16個63位的m偽碼序列,由捕獲、頻偏估計和標志位三部分組成,其中捕獲占7個63位的m序列,頻偏估計占8個63位的m序列,標志位占1個63位的m序列;正文數(shù)據(jù)由25個數(shù)據(jù)包組成,每個數(shù)據(jù)包由256 bit組成,其中16 bit用于相位校正,240 bit為數(shù)據(jù)正文。
在QPSK調(diào)制器設(shè)計中,在發(fā)信機端需按順序?qū)⑼筋^數(shù)據(jù)、標志位數(shù)據(jù)、相位校正數(shù)據(jù)、正文數(shù)據(jù)依次發(fā)送,在接收端才能根據(jù)數(shù)據(jù)格式將數(shù)據(jù)正確進行接收解調(diào)。因此,根據(jù)有限狀態(tài)機能有效管理各個事件順序執(zhí)行的功能,在本設(shè)計的發(fā)送模塊中采用有限狀態(tài)機的設(shè)計方法,通過有限狀態(tài)機描述的邏輯可以有效地分配各數(shù)據(jù)模塊的發(fā)送順序,以符合通信系統(tǒng)要求的數(shù)據(jù)幀格式。
沒有采用FSM設(shè)計的傳統(tǒng)的發(fā)送系統(tǒng)因為沒有對系統(tǒng)要進入的下一狀態(tài)進入嚴格的約束,系統(tǒng)發(fā)送數(shù)據(jù)的各狀態(tài)間不能達到無縫鏈接,可能會導致狀態(tài)的紊亂。而采用FSM設(shè)計方法,系統(tǒng)在任何時候都只能處于給定數(shù)目狀態(tài)中的一個,因此能保證系統(tǒng)能穩(wěn)定可靠地工作。以下對狀態(tài)機的具體設(shè)計進行分析。
根據(jù)系統(tǒng)硬件設(shè)計需求,系統(tǒng)時鐘采用12MHz。發(fā)送模塊組成結(jié)構(gòu)如圖2所示。
圖2 系統(tǒng)結(jié)構(gòu)圖Fig.2 Structure of system
根據(jù)圖2中系統(tǒng)的組成結(jié)構(gòu),采用了FSM的設(shè)計方法。FSM可以用有向圖來表示,用節(jié)點表示某個特定的狀態(tài),用一條有向線表示狀態(tài)的轉(zhuǎn)移,線上的字母代表的是狀態(tài)的轉(zhuǎn)移條件,本系統(tǒng)設(shè)計中發(fā)送的狀態(tài)轉(zhuǎn)移圖如圖3所示。
圖3 系統(tǒng)狀態(tài)轉(zhuǎn)移圖Fig.3 State shift of system
圖中,狀態(tài)1“idle”為系統(tǒng)起始狀態(tài),表示系統(tǒng)空閑,其工作流程描述如下:
(1)當系統(tǒng)復(fù)位開關(guān)“reset=1”時,系統(tǒng)復(fù)位,各值置零,系統(tǒng)進入空閑狀態(tài);
(2)當“reset=0”時,系統(tǒng)由空閑狀態(tài)轉(zhuǎn)入發(fā)送數(shù)據(jù)狀態(tài),首先進入同步頭數(shù)據(jù)模塊,開始發(fā)送同步頭數(shù)據(jù),當計數(shù)滿則進入標志位數(shù)據(jù)模塊,否則繼續(xù)發(fā)送同步頭數(shù)據(jù);
(3)進入標志位數(shù)據(jù)發(fā)送模塊后,若計數(shù)滿則進入相位校正數(shù)據(jù)模塊,否則繼續(xù)發(fā)送標志位數(shù)據(jù);
(4)進入相位校正數(shù)據(jù)發(fā)送模塊以后,若計數(shù)滿則進入正文數(shù)據(jù)發(fā)送模塊,否則繼續(xù)發(fā)送相位校正數(shù)據(jù);
(5)進入正文數(shù)據(jù)發(fā)送以后,若計數(shù)滿則進入第二輪數(shù)據(jù)發(fā)送,即轉(zhuǎn)到標志位數(shù)據(jù)發(fā)送模塊,否則繼續(xù)發(fā)送正文數(shù)據(jù);
(6)按上述順序,依次發(fā)送數(shù)據(jù)滿25輪即發(fā)送完25個數(shù)據(jù)包之后,系統(tǒng)重新開始進入空閑狀態(tài)。
根據(jù)系統(tǒng)發(fā)送框圖設(shè)計的主控程序狀態(tài)機實現(xiàn)的VHDL核心代碼[7,8]如下:
系統(tǒng)實現(xiàn)在FPGA內(nèi)完成,選用的開發(fā)工具為Xilinx公司的 ISE11平臺,器件為 virtex5系列xc5vsx95t-2ff1136,實現(xiàn)的結(jié)果如圖4所示,其中,clk為系統(tǒng)時鐘,reset為系統(tǒng)復(fù)位信號,dout-cntsyn、dout-cnt-flag、dout-cnt-phase 和 dout-cnt-cont分別表示同步頭數(shù)據(jù)、標志位數(shù)據(jù)、相位較正數(shù)據(jù)和正文數(shù)據(jù),dout為將各部分數(shù)據(jù)按順序發(fā)送的結(jié)果。
圖4 FPGA實現(xiàn)結(jié)果圖Fig.4 Implementation result with FPGA
以FSM作為系統(tǒng)主控程序的編程模型[9,10],實現(xiàn)了軟件單元的功能定義和控制邏輯分離,提高了系統(tǒng)重構(gòu)的柔性,描述了具有邏輯順序的事件,有效地管理同步頭數(shù)據(jù)、標志位數(shù)據(jù)、相位校正數(shù)據(jù)、正文數(shù)據(jù)執(zhí)行的步驟。
本文論述了有限狀態(tài)機設(shè)計思想的基本原理,分析了QPSK調(diào)制系統(tǒng)中發(fā)送數(shù)據(jù)的幀格式,研究了如何使發(fā)送系統(tǒng)各組成模塊的數(shù)據(jù)有序進行發(fā)送,達到模塊間的無縫鏈接,提出了采用有限狀態(tài)機的設(shè)計方法,最后在Xininx公司的FGPA芯片上實現(xiàn)了發(fā)送模塊中同步頭數(shù)據(jù)、標志位數(shù)據(jù)、相位校正數(shù)據(jù)、正文數(shù)據(jù)的有序發(fā)送。這樣的設(shè)計使系統(tǒng)發(fā)送模塊工作穩(wěn)定可靠,完全滿足通信中數(shù)據(jù)發(fā)送的的需求。該設(shè)計思想非常適用于管理大量并發(fā)控制流程的系統(tǒng)設(shè)計。
[1]王巍,高德遠.有限狀態(tài)機設(shè)計策略[J].計算機工程與應(yīng)用,1999(7):54-55.WANG Wei,GAO De-yuan.DesignStrategy for Finite State Machine[J].Computer Engineering and Applications,1999(7):54-55.(in Chinese)
[2]羅宏洋.狀態(tài)機在離子注入機中的應(yīng)用[J].電子工業(yè)專用設(shè)備,2009,38(9):49-53.LUO Hong-yang.Application of FSM in Ion Implanter[J].Equipment for Electronic Products Marufacturing,2009,38(9):49-53.(in Chinese)
[3]馬潔海,高光來.可復(fù)用的狀態(tài)模式設(shè)計[J].內(nèi)蒙古大學學報(自然科學版),2004,35(5):576-582.MA Jie-hai,GAO Guang-lai..A Reusable Design of State Patten[J].Acta Scientiarum Naturalium Universitatis Neimongol(Natural Science Edition),2004,35(5):576-582.(in Chinese)
[4]Erich Gamma.設(shè)計模式[M].李英軍,馬曉星,蔡敏,等,譯.北京:機械工業(yè)出版社,2000:78-80.Erich Gamma.Design Mode[M].Translated by LI Yingjun,MA Xiao-xing,CAI Min,et al.Beijing:Press of Engine Industry,2000:78-80.(in Chinese)
[5]Beek J D,Ove Edfors,MagnusSandell.On channel Estimation inOFDM Systems[C]//Proceedings of 1995IEEE 45th Vehicular Technology Conference.Chicago:IEEE,1995:815-819.
[6]Li Y.Pilot-symbol-aided channel estimation for OFD M in wireless systems[C]//Proceedings of 1995 IEEE 49th Vehicular Technology Conference.Houston,TX,USA:IEEE:1131-1135.
[7]高雪平,官伯然,汪海勇.QPSK調(diào)制解調(diào)的系統(tǒng)仿真實驗[J].杭州電子科技大學學報,2006,26(5):52-55.GAO Xue-ping,GUAN Bo-ran,WANG Hai-yong.The Experiment of QPSK Modulation and Demodulation Simulation[J].Journal of Hangzhou Dianzi University,2006,26(5):52-55.(in Chinese)
[8]羅力凡,常春藤.基于VHDL的FPGA開發(fā)快速入門.技巧.實例[M].北京:人民郵電出版社,2009:105-109.LUO Li-fan,CHANG Chun-teng.Rudimental,Skill and Example of FPGA Design Based VHDL[M].Beijing:People′s Posts and Telecommunications Press,2009:105-109.(in Chinese)
[9]SYNARIO.VHDL Reference Manual[M].Redmond:Microsoft Corporation,1997:2-9.
[10]劉凌,胡永生.數(shù)字信號處理的FPGA實現(xiàn)[M].北京:清華大學出版社,2003:272-278.LIU Ling,HU Yong-sheng.Implement of Digital Signals Process with FPGA[M].Beijing:Tsinghua University Press,2003:272-278.(in Chinese)