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