文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2012)10-0012-03
遙測(cè)系統(tǒng)一般由輸入設(shè)備、傳輸設(shè)備和終端設(shè)備組成。按其使用信道的方式,可分為時(shí)分制遙測(cè)系統(tǒng)、頻分制遙測(cè)系統(tǒng)和碼分制遙測(cè)系統(tǒng)[1]。脈沖編碼調(diào)制(PCM)在遙測(cè)系統(tǒng)中占主導(dǎo)地位。在進(jìn)行多路傳輸?shù)腜CM遙測(cè)系統(tǒng)中,待測(cè)參數(shù)可以是模擬信號(hào)或者是數(shù)字信號(hào),也可以是數(shù)字和模擬混合信號(hào)。這些信號(hào)包括速變信號(hào)、緩變信號(hào)、負(fù)脈沖信號(hào)和階躍信號(hào)。對(duì)于模擬信號(hào),需要將其轉(zhuǎn)換成數(shù)字信號(hào),再經(jīng)過PCM多路復(fù)用器,按一定的格式由程序控制器完成格式控制,使PCM遙測(cè)信息呈現(xiàn)出具有一定周期的數(shù)據(jù)結(jié)構(gòu)形成串行的PCM碼元序列。PCM遙測(cè)信息完成組幀后,通過調(diào)制發(fā)射出去。
1 遙測(cè)數(shù)據(jù)編碼的原理分析
在數(shù)字通信系統(tǒng)中,一般采用時(shí)分復(fù)用方式提高信道的傳輸速率。所謂時(shí)分多路復(fù)用(即時(shí)分制)即利用各路信號(hào)在信道上占有不同的時(shí)間間隔的特征來分開各路信號(hào)[2],其特點(diǎn)是:各路信號(hào)在頻譜上是相互重疊的,但在傳輸時(shí)是彼此獨(dú)立的;任何時(shí)刻,信道上只有一個(gè)信道在傳輸[3]。
1.1 復(fù)接幀結(jié)構(gòu)分析
數(shù)據(jù)以幀為單位傳輸,每一片段稱為一幀,幀的長度稱為幀周期。在每一個(gè)幀內(nèi),一般還要分為等時(shí)間間隔的小段,這些事件小段的分配決定幀結(jié)構(gòu)的構(gòu)成方式。通常,將這一小段稱作子幀,而包含子幀的結(jié)構(gòu)叫做復(fù)幀[4]。
在數(shù)字通信系統(tǒng)中,一般采用時(shí)分復(fù)用方式提高信道的傳輸速率。滿足復(fù)接條件的低速支路碼流進(jìn)行復(fù)接時(shí),根據(jù)碼流的具體匯接方式分為逐位復(fù)接、按字復(fù)接和逐幀復(fù)接。本文采用按字復(fù)接[5]。因?yàn)楸纠?路數(shù)字信號(hào)和16路模擬信號(hào),按字復(fù)接有利于數(shù)字電話交換,降低設(shè)計(jì)難度,但同時(shí)要求有較大的存儲(chǔ)容量。為了既不丟失信號(hào)的信息又能合理利用信道,對(duì)于不同速率的參數(shù),應(yīng)在復(fù)幀基礎(chǔ)上用不同的子幀來實(shí)現(xiàn)。數(shù)字通道在復(fù)幀的固定位置(即占復(fù)幀前88 B),模擬通道占160 B,幀計(jì)數(shù)占4 B,復(fù)幀同步碼有4 B,因此就構(gòu)成了復(fù)幀的256 B。這樣就提出一個(gè)問題:模擬信號(hào)有16路,每一路表示一個(gè)單獨(dú)信息。對(duì)于模擬信號(hào)一個(gè)子幀必須包括16路信息;每路采樣率為3 200 S/s,32個(gè)采樣點(diǎn)組成一路信息為一個(gè)周期,則一個(gè)子幀有16×32=512 B。這樣,一個(gè)復(fù)幀長度小于子幀,為此就需要多個(gè)復(fù)幀構(gòu)成一個(gè)子幀。解決這個(gè)問題的方式是在有些復(fù)幀中插入子幀同步碼。圖1是幀結(jié)構(gòu)示意圖,其上半部分有子幀同步碼,下半部分沒有子幀同步碼。
1.2 復(fù)接實(shí)現(xiàn)技術(shù)分析
由于數(shù)字部分?jǐn)?shù)據(jù)在復(fù)幀的位置固定,一個(gè)復(fù)幀的數(shù)據(jù)中每個(gè)字節(jié)都是一個(gè)位置,所以可以用一個(gè)寄存器來表示,將數(shù)字通道數(shù)據(jù)、幀計(jì)數(shù)、復(fù)幀同步碼插到預(yù)定的位置。由于傳輸數(shù)據(jù)在變化,如:數(shù)字通道的刷新率是60 ms(即60 ms出現(xiàn)一幀),有時(shí)沒有數(shù)據(jù)(也就是說沒有采樣數(shù)據(jù)),這時(shí)可以用填充位來填充位置從而確保數(shù)字通道位置固定。但是,模擬部分如果沒有采集到波形,則可以視為采集到直流的波形。在PCM遙測(cè)體制中,PCM遙測(cè)編碼器采用硬件實(shí)現(xiàn)。遙測(cè)系統(tǒng)中,由于不同測(cè)量目的所需要的遙測(cè)參數(shù)的數(shù)量有所不同,為了保證遙測(cè)系統(tǒng)的相對(duì)通用性,往往都是以最多測(cè)量參數(shù)為基準(zhǔn)進(jìn)行設(shè)計(jì),且留有冗余的通道。本例中無論8路數(shù)字信號(hào)還是16路模擬信號(hào)都是最大支持通道??紤]到數(shù)字分接的難易程度,本系統(tǒng)還提供與原數(shù)據(jù)高度匹配的隨路時(shí)鐘。
數(shù)據(jù)復(fù)接系統(tǒng)面臨著數(shù)據(jù)滑動(dòng)或溢出的問題, 解決這個(gè)問題需要在復(fù)接前對(duì)各路不同類型的數(shù)據(jù)進(jìn)行碼速率調(diào)整,同時(shí)保證定時(shí)和時(shí)鐘同步精度。因緩沖區(qū)的容量不可能很大, 解決數(shù)字信號(hào)滑動(dòng)問題的關(guān)鍵是不能在FIFO寫滿時(shí)讀出, 讀出速率不能小于寫入數(shù)據(jù)速率??筛鶕?jù)需要適時(shí)加入填充位, 以調(diào)整寫入、 讀出速率, 防止信息的丟失或溢出。在數(shù)字部分中,緩沖器之間可以有一個(gè)握手協(xié)議,即當(dāng)組幀部分讀取一個(gè)數(shù)據(jù)時(shí)計(jì)數(shù)器減1,而當(dāng)一幀數(shù)據(jù)來到時(shí)可以屏蔽組幀部分讀取,再根據(jù)計(jì)數(shù)器計(jì)算地址完成一幀數(shù)據(jù)賦值,以免數(shù)據(jù)丟失。在傳輸協(xié)議中, 可以加入特定的數(shù)據(jù)位來指示數(shù)據(jù)傳輸?shù)臓顟B(tài)信息,比如對(duì)幀的數(shù)量進(jìn)行計(jì)數(shù)。
2 基于FPGA的數(shù)據(jù)復(fù)接系統(tǒng)設(shè)計(jì)方案
2.1 系統(tǒng)實(shí)現(xiàn)方案
圖2為完整的基于幀的同步數(shù)字復(fù)接通信系統(tǒng)原理框架, 圖中線框內(nèi)分別是數(shù)字復(fù)接系統(tǒng)。由圖可知, 遙測(cè)數(shù)據(jù)編碼由模擬開關(guān)、 信號(hào)調(diào)理模塊、電平轉(zhuǎn)換、數(shù)據(jù)復(fù)接器(FPGA組幀單元)構(gòu)成。外部M個(gè)通道的低頻數(shù)據(jù)經(jīng)過模擬開關(guān)后提取出一路信號(hào), 再經(jīng)過A/D轉(zhuǎn)換芯片將其轉(zhuǎn)換成數(shù)字信號(hào)。外部N-M數(shù)字信號(hào)由電平轉(zhuǎn)換單元將傳輸電平轉(zhuǎn)換為TTL電平,再經(jīng)過一個(gè)FIFO緩存器和數(shù)據(jù)復(fù)接器對(duì)數(shù)據(jù)緩沖區(qū)中的M個(gè)支路的原始數(shù)據(jù)進(jìn)行復(fù)接后送入編碼信道進(jìn)行傳輸。
復(fù)接系統(tǒng)主要由FPGA Cyclone 3C25、模擬開關(guān)ADG506A、 模/數(shù)轉(zhuǎn)換器ADC(AD7899)以及電平轉(zhuǎn)換器等幾部分組成,采用HDL、C語言開發(fā)設(shè)計(jì)。整個(gè)系統(tǒng)集成在印制板上,能夠滿足升空平臺(tái)對(duì)設(shè)備體積、重量和功耗的要求。
FPGA主要向模擬門提供選通信號(hào)編號(hào),將數(shù)據(jù)組幀,并且提供隨路時(shí)鐘。模擬門主要是對(duì)模擬信號(hào)的選通和模擬信號(hào)的放大[6]。電平轉(zhuǎn)換模塊是將數(shù)字信號(hào)的其他形式電平轉(zhuǎn)化成TTL電平。采用FPGA設(shè)計(jì), 系統(tǒng)具備開放性,可以通過加載軟件,在不改變硬件的條件下很方便地增加新的功能模塊。采用模塊化設(shè)計(jì)使開發(fā)過程簡化, 便于系統(tǒng)的調(diào)試,提高研究的效率,系統(tǒng)的升級(jí)只需要對(duì)軟件進(jìn)行更新。
2.2 系統(tǒng)硬件實(shí)現(xiàn)方案
在數(shù)字通信系統(tǒng)中,一般采用時(shí)分復(fù)用方式提高信道的傳輸速率。所謂時(shí)分多路復(fù)用(即時(shí)分制)是利用各路信號(hào)在信道上占有不同的時(shí)間間隔的特征來分開各路信號(hào)[4]。而狀態(tài)機(jī)的狀態(tài)可以代表不同的時(shí)間間隔,狀態(tài)機(jī)的順序操作是以不同時(shí)間間隔進(jìn)行轉(zhuǎn)換的。綜合以上分析,利用狀態(tài)機(jī)來實(shí)現(xiàn)組幀如圖3所示。
首先系統(tǒng)要提供一個(gè)819.2 kHz的時(shí)鐘、FPGA提供50 MHz的時(shí)鐘。所以這需要一個(gè)50 MHz/0.819 2 MHz=61的分頻器來提供時(shí)鐘。這個(gè)時(shí)鐘不僅是狀態(tài)機(jī)的工作時(shí)鐘也是組幀單元提供的隨路時(shí)鐘。在隨路時(shí)鐘還要有一個(gè)每2 048 bit有一個(gè)高電平脈沖作為狀態(tài)機(jī)的啟動(dòng)信號(hào)(start),同時(shí)也是一幀的開始。此外,還要有位計(jì)數(shù)器Fram_CNT(表示一幀的每一位)清零,其余時(shí)刻做加1操作。當(dāng)分頻器來一個(gè)高電平脈沖、狀態(tài)機(jī)由idle狀態(tài)進(jìn)入RX1狀態(tài)時(shí),雙方通過一個(gè)握手協(xié)議將1 B數(shù)據(jù)放在8 bit緩沖器中,8 bit緩沖器再賦值給一個(gè)8 bit FIFO單元。FIFO單元再經(jīng)過一個(gè)并/串轉(zhuǎn)換輸出串行的碼流。延時(shí)8個(gè)時(shí)鐘周期以后進(jìn)入RX2狀態(tài);進(jìn)入RX2狀態(tài)以后重復(fù)狀態(tài)RX1的操作;當(dāng)在RX8狀態(tài)時(shí),則判斷RX_CNT是否為88,是則進(jìn)入MN1,否則進(jìn)入RX1。
當(dāng)進(jìn)入狀態(tài)MN、MN_CNT=0時(shí),要在序列中加入子幀同步碼,然后將采集的數(shù)據(jù)放在24 bit緩存器中,24 bit緩沖器再賦值給一個(gè)24 bit FIFO單元。FIFO單元再經(jīng)過一個(gè)并/串轉(zhuǎn)換輸出串行的碼流后,MN_CNT加1,計(jì)算地址(A0A2A3A4)=(MN_CNT-1)%16,然后發(fā)送地址(A0A2A3A4),選通模擬開關(guān),在此狀態(tài)延時(shí)4個(gè)周期,等待模/數(shù)轉(zhuǎn)換器轉(zhuǎn)換完進(jìn)行數(shù)據(jù)采集。再將采集的數(shù)據(jù)放在16 bit緩存器中,16 bit緩沖器再賦值給一個(gè)16 bit FIFO單元。FIFO單元再經(jīng)過一個(gè)并/串轉(zhuǎn)換輸出串行的碼流,并同時(shí)計(jì)數(shù)MN_CNT加1。當(dāng)MN_CNT為256時(shí),對(duì)MN_CNT清零后,發(fā)送地址(A0A2A3A4),重復(fù)以上的操作。同時(shí)在另一模塊中,將16 bit寄存器地址發(fā)送到16 bit移位寄存器,在計(jì)時(shí)器為固定值時(shí),最高位直接賦值給data,然后16 bit移位寄存器再做并/串轉(zhuǎn)換將采集數(shù)據(jù)由data輸出。
當(dāng)Fram_CNT=260×8,進(jìn)入復(fù)幀計(jì)數(shù)器狀態(tài)并在這個(gè)狀態(tài)插上復(fù)幀計(jì)數(shù)時(shí),通過一個(gè)累加器將數(shù)據(jù)放在16 bit緩存器中,16 bit緩沖器再賦值給一個(gè)16 bit FIFO單元。FIFO單元再經(jīng)過一個(gè)并/串轉(zhuǎn)換后輸出串行的碼流。
當(dāng)Fram_CNT=262×8,采集的數(shù)據(jù)放在32 bit緩存器中,32 bit緩沖器再賦值給一個(gè)32 bit FIFO單元。FIFO單元再經(jīng)過一個(gè)并/串轉(zhuǎn)換后輸出串行的碼流,插上復(fù)幀同步碼。
到此,一個(gè)復(fù)幀已經(jīng)組建完成。
3 仿真實(shí)現(xiàn)及結(jié)果分析
根據(jù)以上分析,基于FPGA的數(shù)據(jù)鏈數(shù)據(jù)復(fù)接模塊程序在Quartus環(huán)境下進(jìn)行仿真,能夠?qū)?shù)字8路、模擬16路復(fù)接成一串行碼流進(jìn)行仿真。start表示啟動(dòng)信號(hào);data_Rx1、data_Rx2、data_Rx3、data_Rx4、data_Rx5、data_Rx6、data_Rx7、data_Rx8表示8路遙測(cè)等類型數(shù)據(jù)數(shù)字信號(hào)。本次仿真依次輸入1~8;data_MN表示遙測(cè)等類型數(shù)據(jù)模擬信號(hào);本次仿真依次輸入9~24;Addr表示模擬信號(hào)選通開關(guān)仿真依次輸入0~15;data表示組幀形成的串行碼流;clock表示隨路時(shí)鐘。
圖4中由于篇幅所限沒有完全表示出一幀數(shù)據(jù),start一個(gè)高電平開始一幀數(shù)據(jù)先復(fù)接8路數(shù)字通道,然后需要模擬部分子幀幀同步碼(MN_CNT=0)逐個(gè)通道發(fā)送模擬信號(hào)選通開關(guān),再將返回的數(shù)據(jù)進(jìn)行復(fù)接。此外,還要對(duì)幀總數(shù)計(jì)數(shù),以便計(jì)算傳輸和解碼是否發(fā)生丟幀。最后是復(fù)幀同步碼,以實(shí)現(xiàn)碼、字同步。圖4(c)、圖4(d)是程序下載到開發(fā)板用signal tap ii觀測(cè)到的波形。圖中,framout分別是檢測(cè)到復(fù)幀同步碼、子幀同步碼輸出一個(gè)高電平。經(jīng)過程序仿真后, 不同遙測(cè)數(shù)據(jù)成功組幀并能夠按照選定速率進(jìn)行傳輸。
本文對(duì)基于FPGA的混合遙測(cè)數(shù)據(jù)復(fù)接技術(shù)進(jìn)行了研究,并結(jié)合典型實(shí)例進(jìn)行了設(shè)計(jì)的仿真驗(yàn)證。結(jié)果驗(yàn)證了該項(xiàng)技術(shù)能夠有效地融合和傳輸各種類型的遙測(cè)數(shù)據(jù)。整個(gè)系統(tǒng)具有模塊化設(shè)計(jì)、開放性、靈活性、體積重量小、功耗低等突出優(yōu)點(diǎn),同時(shí)節(jié)省了信道資源,提高了信息傳輸效率。
參考文獻(xiàn)
[1] 孫義明,楊麗萍.信息化戰(zhàn)爭中的戰(zhàn)術(shù)數(shù)據(jù)鏈[M].北京:郵電大學(xué)出版社,2005:1-5.
[2] 張力軍.通信原理[M].北京:高等教育出版社,2008:1-5.
[3] 韓松,張曉林,占巍,等.基于空中指控節(jié)點(diǎn)的信息分發(fā)模型及時(shí)延分析[J].系統(tǒng)工程與電子技術(shù),2009,31(11):2677-2681.
[4] 宋學(xué)瑞,蔡子裕,段青青.基于FPGA的數(shù)字復(fù)接系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測(cè)量與控制,2008,38(6):1174-1176.
[5] 鄧嵐,郭勇,賴武剛.基于FPGA的數(shù)字復(fù)接器的設(shè)計(jì)[J]. 微計(jì)算機(jī)信息,2007,23(11):209-210.
[6] 滕克難,董云龍,盛安冬.多傳感器異步融合技術(shù)研究[J]. 系統(tǒng)工程與電子技術(shù),2010,32(2):221-225.