文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2012)10-0012-03
遙測系統(tǒng)一般由輸入設(shè)備、傳輸設(shè)備和終端設(shè)備組成,。按其使用信道的方式,,可分為時(shí)分制遙測系統(tǒng)、頻分制遙測系統(tǒng)和碼分制遙測系統(tǒng)[1],。脈沖編碼調(diào)制(PCM)在遙測系統(tǒng)中占主導(dǎo)地位,。在進(jìn)行多路傳輸?shù)腜CM遙測系統(tǒng)中,待測參數(shù)可以是模擬信號或者是數(shù)字信號,,也可以是數(shù)字和模擬混合信號,。這些信號包括速變信號、緩變信號,、負(fù)脈沖信號和階躍信號,。對于模擬信號,需要將其轉(zhuǎn)換成數(shù)字信號,再經(jīng)過PCM多路復(fù)用器,,按一定的格式由程序控制器完成格式控制,,使PCM遙測信息呈現(xiàn)出具有一定周期的數(shù)據(jù)結(jié)構(gòu)形成串行的PCM碼元序列。PCM遙測信息完成組幀后,,通過調(diào)制發(fā)射出去,。
1 遙測數(shù)據(jù)編碼的原理分析
在數(shù)字通信系統(tǒng)中,一般采用時(shí)分復(fù)用方式提高信道的傳輸速率,。所謂時(shí)分多路復(fù)用(即時(shí)分制)即利用各路信號在信道上占有不同的時(shí)間間隔的特征來分開各路信號[2],,其特點(diǎn)是:各路信號在頻譜上是相互重疊的,但在傳輸時(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ù)字信號和16路模擬信號,按字復(fù)接有利于數(shù)字電話交換,,降低設(shè)計(jì)難度,,但同時(shí)要求有較大的存儲容量。為了既不丟失信號的信息又能合理利用信道,,對于不同速率的參數(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è)問題:模擬信號有16路,每一路表示一個(gè)單獨(dú)信息,。對于模擬信號一個(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遙測體制中,,PCM遙測編碼器采用硬件實(shí)現(xiàn)。遙測系統(tǒng)中,,由于不同測量目的所需要的遙測參數(shù)的數(shù)量有所不同,,為了保證遙測系統(tǒng)的相對通用性,往往都是以最多測量參數(shù)為基準(zhǔn)進(jìn)行設(shè)計(jì),,且留有冗余的通道,。本例中無論8路數(shù)字信號還是16路模擬信號都是最大支持通道??紤]到數(shù)字分接的難易程度,,本系統(tǒng)還提供與原數(shù)據(jù)高度匹配的隨路時(shí)鐘。
數(shù)據(jù)復(fù)接系統(tǒng)面臨著數(shù)據(jù)滑動(dòng)或溢出的問題,, 解決這個(gè)問題需要在復(fù)接前對各路不同類型的數(shù)據(jù)進(jìn)行碼速率調(diào)整,,同時(shí)保證定時(shí)和時(shí)鐘同步精度。因緩沖區(qū)的容量不可能很大,, 解決數(shù)字信號滑動(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)信息,,比如對幀的數(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),。由圖可知,, 遙測數(shù)據(jù)編碼由模擬開關(guān)、 信號調(diào)理模塊,、電平轉(zhuǎn)換,、數(shù)據(jù)復(fù)接器(FPGA組幀單元)構(gòu)成,。外部M個(gè)通道的低頻數(shù)據(jù)經(jīng)過模擬開關(guān)后提取出一路信號, 再經(jīng)過A/D轉(zhuǎn)換芯片將其轉(zhuǎn)換成數(shù)字信號,。外部N-M數(shù)字信號由電平轉(zhuǎn)換單元將傳輸電平轉(zhuǎn)換為TTL電平,,再經(jīng)過一個(gè)FIFO緩存器和數(shù)據(jù)復(fù)接器對數(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)集成在印制板上,能夠滿足升空平臺對設(shè)備體積,、重量和功耗的要求,。
FPGA主要向模擬門提供選通信號編號,將數(shù)據(jù)組幀,,并且提供隨路時(shí)鐘,。模擬門主要是對模擬信號的選通和模擬信號的放大[6]。電平轉(zhuǎn)換模塊是將數(shù)字信號的其他形式電平轉(zhuǎn)化成TTL電平,。采用FPGA設(shè)計(jì),, 系統(tǒng)具備開放性,可以通過加載軟件,,在不改變硬件的條件下很方便地增加新的功能模塊,。采用模塊化設(shè)計(jì)使開發(fā)過程簡化, 便于系統(tǒng)的調(diào)試,,提高研究的效率,,系統(tǒng)的升級只需要對軟件進(jìn)行更新。
2.2 系統(tǒng)硬件實(shí)現(xiàn)方案
在數(shù)字通信系統(tǒng)中,,一般采用時(shí)分復(fù)用方式提高信道的傳輸速率。所謂時(shí)分多路復(fù)用(即時(shí)分制)是利用各路信號在信道上占有不同的時(shí)間間隔的特征來分開各路信號[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)信號(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í),,對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)信號,;data_Rx1、data_Rx2,、data_Rx3,、data_Rx4、data_Rx5,、data_Rx6,、data_Rx7、data_Rx8表示8路遙測等類型數(shù)據(jù)數(shù)字信號,。本次仿真依次輸入1~8,;data_MN表示遙測等類型數(shù)據(jù)模擬信號;本次仿真依次輸入9~24,;Addr表示模擬信號選通開關(guān)仿真依次輸入0~15,;data表示組幀形成的串行碼流;clock表示隨路時(shí)鐘,。
圖4中由于篇幅所限沒有完全表示出一幀數(shù)據(jù),,start一個(gè)高電平開始一幀數(shù)據(jù)先復(fù)接8路數(shù)字通道,然后需要模擬部分子幀幀同步碼(MN_CNT=0)逐個(gè)通道發(fā)送模擬信號選通開關(guān),,再將返回的數(shù)據(jù)進(jìn)行復(fù)接。此外,,還要對幀總數(shù)計(jì)數(shù),,以便計(jì)算傳輸和解碼是否發(fā)生丟幀。最后是復(fù)幀同步碼,,以實(shí)現(xiàn)碼,、字同步,。圖4(c)、圖4(d)是程序下載到開發(fā)板用signal tap ii觀測到的波形,。圖中,,framout分別是檢測到復(fù)幀同步碼、子幀同步碼輸出一個(gè)高電平,。經(jīng)過程序仿真后,, 不同遙測數(shù)據(jù)成功組幀并能夠按照選定速率進(jìn)行傳輸。
本文對基于FPGA的混合遙測數(shù)據(jù)復(fù)接技術(shù)進(jìn)行了研究,,并結(jié)合典型實(shí)例進(jìn)行了設(shè)計(jì)的仿真驗(yàn)證,。結(jié)果驗(yàn)證了該項(xiàng)技術(shù)能夠有效地融合和傳輸各種類型的遙測數(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ī)測量與控制,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.