張?jiān)谱?/p>
(桂林電子科技大學(xué) 研究生學(xué)院,廣西 桂林 541004)
SDR基于通用硬件平臺,通過軟件提供多服務(wù)、多標(biāo)準(zhǔn)、多模式、可重構(gòu)的無線電通信。核心思想是最大限度地用易于重構(gòu)的數(shù)字電路代替模擬電路來構(gòu)建通信系統(tǒng)以適應(yīng)其智能化的發(fā)展趨勢[1]。SDR有多種具體應(yīng)用,從功能上可以細(xì)分為單用戶型、多用戶型等類型。多用戶型SDR是指一套SDR系統(tǒng)可以實(shí)現(xiàn)對多個(gè)用戶的數(shù)據(jù)進(jìn)行合成后再用一個(gè)信道進(jìn)行傳輸,可以有效提高傳輸容量、效率、信道利用率。其首要問題是解決各用戶數(shù)據(jù)碼流的綜合與分解。
對于高速數(shù)據(jù)碼流的綜合與分解已經(jīng)有了相當(dāng)成熟的數(shù)字復(fù)、分接技術(shù)與理論,但對零次群數(shù)據(jù)碼流的研究較少。在SDR內(nèi)部有大量的低速信息需要傳輸[2],多支路信息在同一信道進(jìn)行有效傳輸就必須對數(shù)據(jù)進(jìn)行打包(綜合)處理。要實(shí)現(xiàn)傳輸設(shè)備和數(shù)據(jù)終端間的速率和容量的匹配,解決現(xiàn)有部分傳輸設(shè)備和終端設(shè)備之間不兼容的問題,就要做到設(shè)備的輸入端支持多種速率的數(shù)據(jù)輸入?;谶@種發(fā)展需求,本文設(shè)計(jì)實(shí)現(xiàn)了可進(jìn)行數(shù)據(jù)綜合的新型自適應(yīng)系統(tǒng),具有很高的經(jīng)濟(jì)價(jià)值,對SDR關(guān)鍵技術(shù)的研究有重要的推動作用。
數(shù)據(jù)綜合系統(tǒng)在SDR中的功能是完成數(shù)據(jù)的綜合與分解,以達(dá)到將多路低速數(shù)據(jù)無損合成、實(shí)現(xiàn)高效率傳送的目的。在發(fā)送端,主要是對多個(gè)用戶的低速數(shù)據(jù)進(jìn)行合成后,形成一路高速碼流發(fā)送出去;在接收端,對經(jīng)過解調(diào)后的數(shù)字信號進(jìn)行分解,分別送達(dá)相應(yīng)用戶終端,完成多用戶通信。
本設(shè)計(jì)基于FPGA,采用新型算法設(shè)計(jì)實(shí)現(xiàn)了自適應(yīng)數(shù)據(jù)綜合系統(tǒng),自動識別支路數(shù)據(jù)速率,動態(tài)分配傳輸信道,操作靈活,性能穩(wěn)定,便于修改電路結(jié)構(gòu),節(jié)約系統(tǒng)資源、具有較高的實(shí)用性和可靠性。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
系統(tǒng)主要由FPGA、外部標(biāo)準(zhǔn)接口、微控制器以及人機(jī)交互設(shè)備等部分組成。通過JTAG,AS,PS等下載模式可以對系統(tǒng)進(jìn)行配置或軟件更新。
FPGA對輸入的支路數(shù)據(jù)進(jìn)行自適應(yīng)處理,并送入綜合模塊和管理模塊;綜合后的數(shù)據(jù)進(jìn)行組幀、接口選擇和數(shù)據(jù)處理后發(fā)射出去;系統(tǒng)提供了DUC、RS-232、3G、以太網(wǎng)等多種標(biāo)準(zhǔn)的接口。
對接收到的數(shù)據(jù)下變頻處理后送入幀同步模塊,在管理模塊的控制下分解成各支路數(shù)據(jù)進(jìn)行輸出;管理模塊是系統(tǒng)的控制中心,協(xié)調(diào)FPGA內(nèi)部各模塊的工作、把FPGA內(nèi)部狀態(tài)信息送入微控制器處理后進(jìn)行顯示,同時(shí)接收外部輸入設(shè)備的控制。
支路數(shù)據(jù)的時(shí)鐘提取是數(shù)據(jù)綜合系統(tǒng)自適應(yīng)性實(shí)現(xiàn)的前提,只有提取到精確時(shí)鐘才能對待傳輸數(shù)據(jù)進(jìn)行碼速調(diào)整和自適應(yīng)綜合。鎖相環(huán)時(shí)鐘提取技術(shù)已經(jīng)相當(dāng)成熟,并在工程實(shí)踐中得到了廣泛應(yīng)用。但它基于閉環(huán)結(jié)構(gòu)按步進(jìn)行相位調(diào)節(jié),同步時(shí)間與調(diào)整精度相互制約,無法滿足數(shù)據(jù)綜合系統(tǒng)對速率變化較大的支路數(shù)據(jù)自適應(yīng)的需求。本文基于開環(huán)結(jié)構(gòu),充分利用支路數(shù)據(jù)碼元跳變邊沿所攜帶的時(shí)鐘信息,采用最窄脈沖檢測、實(shí)時(shí)鑒相和動態(tài)分頻技術(shù)進(jìn)行時(shí)鐘提取,滿足了設(shè)計(jì)需求。
基于FPGA進(jìn)行時(shí)鐘提取,最簡單的辦法就是利用FPGA的片上鎖相環(huán)。但這種鎖相環(huán)要求的輸入時(shí)鐘范圍是10~100 MHz,無法滿足低速率支路數(shù)據(jù)的時(shí)鐘提取。自主設(shè)計(jì)的鎖相時(shí)鐘提取電路結(jié)構(gòu)如圖2所示。首先,將輸入的歸零碼元進(jìn)行過零提取,整形為不歸零碼,再與本地分頻后的時(shí)鐘進(jìn)行鑒相,輸出超前或滯后脈沖,脈沖寬度的大小由兩者的相位相差決定[3]。本地晶體振蕩器產(chǎn)生高頻率時(shí)鐘,經(jīng)分解成2路相位差為180°的窄脈沖信號,分別與滯后或超前脈沖作用,實(shí)現(xiàn)對脈沖的增添或減少控制,最后經(jīng)分頻,再與輸入的碼元進(jìn)行相位比較,不斷重復(fù)相位比較,脈沖增減控制,最終實(shí)現(xiàn)本地時(shí)鐘與碼元發(fā)送時(shí)鐘的同頻同相,提取出支路數(shù)據(jù)時(shí)鐘。
提高本地高頻時(shí)鐘的頻率可以有效提高調(diào)節(jié)精度,但減小了調(diào)節(jié)步進(jìn)值;失步后,需要重新按步反饋調(diào)整,同步速度慢。接收碼元出現(xiàn)連“0”或連“1”的情況下,鎖定時(shí)間會很長。但反饋結(jié)構(gòu)具有失鎖后的自我調(diào)節(jié)性,碼元相位出現(xiàn)抖動時(shí),仍然可以輸出穩(wěn)定的時(shí)鐘。
基于開環(huán)結(jié)構(gòu),充分利用碼元跳變沿?cái)y帶的時(shí)鐘相位信息,用計(jì)數(shù)器值來計(jì)量最窄碼元寬度,實(shí)時(shí)鑒相和選擇替換相結(jié)合進(jìn)行設(shè)計(jì),既實(shí)現(xiàn)了時(shí)鐘的精確快速提取,又保留了鎖相環(huán)的自我調(diào)節(jié)性[4]。具體實(shí)現(xiàn)如圖3所示。
數(shù)字濾波器將輸入碼元中的毛刺濾除掉,狀態(tài)轉(zhuǎn)移保證了在碼元出現(xiàn)連“0”或連“1”時(shí)仍然有固定的邊沿短脈沖輸出,去抖動模塊對前向抖動和后向抖動分別處理,消除了抖動累積。本設(shè)計(jì)與傳統(tǒng)設(shè)計(jì)方法相比,可以快速精確地提取到支路數(shù)據(jù)時(shí)鐘,并進(jìn)行實(shí)時(shí)輸出;同時(shí),這種電路結(jié)構(gòu)更節(jié)省系統(tǒng)資源。
2.2.1 鑒相器的實(shí)現(xiàn)
充分利用支路數(shù)據(jù)碼元的跳變沿特性,先將碼元輸入到2個(gè)相連的移位寄存器;在高頻時(shí)鐘的驅(qū)動下,2個(gè)寄存器輸出值相位相差1個(gè)高頻時(shí)鐘周期的大小,2個(gè)值經(jīng)過邏輯運(yùn)算,便可鑒別出碼元的上升沿和下降沿。核心部分的實(shí)現(xiàn)代碼如下:
當(dāng)輸入的數(shù)據(jù)碼流有上升沿或下降沿時(shí),邊沿檢測電路便輸出寬度為1個(gè)高速時(shí)鐘周期的脈沖。
2.2.2 最窄脈沖檢測
碼元寬度等于支路數(shù)據(jù)的整數(shù)倍時(shí)鐘周期,檢測出最窄碼元并以其跳變沿作為閘門信號去控制高頻時(shí)鐘驅(qū)動的計(jì)數(shù)器,用此計(jì)數(shù)值對本地高頻時(shí)鐘進(jìn)行分頻,便可提取出支路數(shù)據(jù)的時(shí)鐘。
由于高速時(shí)鐘的頻率與數(shù)據(jù)碼流時(shí)鐘頻率的n倍有一些差異,因此,該電路要根據(jù)數(shù)據(jù)碼流的邊沿來控制n分頻器的置位,不斷調(diào)整分頻器輸出的相位,使得n分頻器輸出的時(shí)鐘頻率的平均值正好是數(shù)據(jù)碼流時(shí)鐘的頻率。調(diào)整n分頻器置位值,可以改變提取時(shí)鐘與數(shù)據(jù)碼流間的相位關(guān)系。這樣提取的時(shí)鐘可以很好地跟蹤數(shù)據(jù)碼流的抖動,改善系統(tǒng)的抖動容限性能,由此引起的提取時(shí)鐘的抖動對綜合系統(tǒng)的性能無影響。
最窄脈沖檢測是一個(gè)實(shí)時(shí)動態(tài)進(jìn)行的過程,計(jì)數(shù)器值的大小代表了碼元寬度。先將2個(gè)跳變沿之間計(jì)數(shù)器值保存到寄存器cnt_reg2中,后續(xù)計(jì)數(shù)器值cnt_reg1與cnt_reg2進(jìn)行比較,cnt_reg2中保存較小計(jì)數(shù)值,并開始下一輪的計(jì)數(shù)。核心部分的實(shí)現(xiàn)代碼如下:
需要特別注意的是:寄存器cnt_reg2的初始化值不能為0或者太小,要根據(jù)設(shè)計(jì)需求進(jìn)行設(shè)置以保證其值大于最窄碼元寬度的計(jì)數(shù)值。
2.2.3 動態(tài)分頻
將cnt_reg2中的數(shù)值送入分頻器,作為對本地高頻時(shí)鐘的分頻系數(shù)。每當(dāng)本地時(shí)鐘上升沿來到時(shí),count計(jì)數(shù)加1,當(dāng)計(jì)數(shù)值達(dá)到cnt_reg2保存的值的一半時(shí),輸出電平反轉(zhuǎn)。在這里對cnt_reg2值進(jìn)行奇數(shù)、偶數(shù)單獨(dú)處理,保證了提取時(shí)鐘的精度和輸出占空比為50%的時(shí)鐘。核心部分的實(shí)現(xiàn)代碼如下:
由于cnt_reg2中的數(shù)值是動態(tài)更新的,所以分頻器也要根據(jù)cnt_reg2中的數(shù)值變化動態(tài)進(jìn)行分頻。
FPGA內(nèi)部電路的傳輸特性,會使提取的時(shí)鐘稍微延遲于輸入碼元。在這里設(shè)置一級觸發(fā)器,用提取的時(shí)鐘對輸入碼元進(jìn)行觸發(fā),實(shí)現(xiàn)輸出時(shí)鐘與輸出碼元的精確同步。
2.2.4 動態(tài)碼速調(diào)整
碼速調(diào)整是把參與綜合的各異源支路碼流調(diào)整成同步碼流。本設(shè)計(jì)的支路數(shù)據(jù)速率未知,因此碼速調(diào)整也是一個(gè)動態(tài)調(diào)整的過程。圖4為正碼速調(diào)整的原理框圖。
由于需要用到數(shù)據(jù)緩沖器,為了保證緩沖區(qū)換頁正確,一般用綜合器時(shí)鐘去讀入各支路信息,當(dāng)支路速率與合路速率相差過大時(shí),集中寫入緩沖區(qū)時(shí)會出現(xiàn)重復(fù)寫入現(xiàn)象,即1 bit碼元可能會被寫入2次以上,導(dǎo)致綜合錯(cuò)誤。在這里,將碼元進(jìn)行“1”位保護(hù)后可避免重復(fù)讀入,即將碼元的“1”位按讀入時(shí)鐘寬度縮短。
碼速恢復(fù)是把接收到的解調(diào)后的合路信號分解成參與綜合的各異源支路碼流,并輸出到終端用戶。碼速恢復(fù)中主要用到了多數(shù)判決法和有限狀態(tài)自動機(jī)模型。有限狀態(tài)自動機(jī)原理如圖5所示。
該算法不僅利用了前面若干幀的碼速恢復(fù)狀態(tài)和先驗(yàn)的概率統(tǒng)計(jì)分布[5],而且考慮了低次群路的同步碼誤碼情況這個(gè)后驗(yàn)信息,可以大大增強(qiáng)碼速恢復(fù)判斷的正確性。
2.2.5 信道自動分配
經(jīng)多年探索,我國已經(jīng)統(tǒng)一采用以2 048 kbit/s為基群的數(shù)字速率系列,針對此速率系列,向下兼容的數(shù)字終端設(shè)備速率一般為以64 kbit/s為基礎(chǔ)的倍數(shù)關(guān)系數(shù)字傳輸速率。
根據(jù)工程經(jīng)驗(yàn),將綜合器的支路數(shù)定為最大8路,速率定為具有代表性的64/128/256/512/1 024 kbit/s,而群路信息則設(shè)置為不小于各支路信息速率的總和,可為128/256/512/1 024/2 048 kbit/s,在群路速率大于等于各支路信息速率總和的情況下,動態(tài)分配信道,支路數(shù)在1~8之間動態(tài)變化。
2.2.6 系統(tǒng)測試結(jié)果與分析
在Quartus II 9.0中編輯程序,編譯通過后,設(shè)置參數(shù),進(jìn)行仿真,關(guān)鍵部分仿真波形如圖6a所示。可見,輸出碼元與輸出時(shí)鐘達(dá)到完全同步,邊沿?zé)o相位延遲,且時(shí)鐘動態(tài)跟蹤碼元相位。把綜合與分解集成在一起的系統(tǒng)程序下載到FPGA中進(jìn)行自環(huán)測試,用信號源作為支路數(shù)據(jù)輸入,在輸出端用示波器觀測可以得到如圖6b所示波形,改變輸入信號頻率,輸出信號隨之變化,驗(yàn)證了系統(tǒng)自適應(yīng)的正確性。系統(tǒng)檢測到輸入碼元的最窄脈沖,即可提取到精確時(shí)鐘,十分迅速。
綜合考慮系統(tǒng)對速度、資源、功耗的要求,以及后續(xù)的功能擴(kuò)展,本設(shè)計(jì)采用Altera公司的FPGA Cyclone III芯片EP3C40Q240C8。硬件電路主要包括FPGA供電模塊、各種標(biāo)準(zhǔn)接口以及下載模塊的設(shè)計(jì)。
本設(shè)計(jì)采用的FPGA正常工作時(shí)需要3種電源,其中內(nèi)核為1.2 V,I/O接口為3.3 V,F(xiàn)PGA內(nèi)部鎖相環(huán)為2.5 V。為滿足設(shè)計(jì)需求,本設(shè)計(jì)采用2種電路供電,采用LT1959芯片將5 V電源轉(zhuǎn)換成1.2 V電源輸出,為芯片內(nèi)核供電。采用AS1117將5 V電源轉(zhuǎn)換成3.3 V和2.5 V,為電源供電。LT1959的調(diào)試電路圖如圖7所示。
經(jīng)測試在輸出端可以得到1.2 V的電壓,其峰峰值為30 mV,Cyclone III芯片正常工作允許的電壓波動最小值為50 mV,滿足要求。
圖8所示為AS117的通用調(diào)試電路,在實(shí)際調(diào)試中,采用5 V-2.5 V的AS1117,5 V-3.3 V的AS1117芯片各1片。在實(shí)際調(diào)試中,分別得到2.501 V和3.298 V的輸出電壓,在芯片允許的電壓范圍內(nèi),可以滿足系統(tǒng)需求。
本設(shè)計(jì)能實(shí)現(xiàn)JTAG,AS,PS這3種下載模式[6],其設(shè)計(jì)電路圖如圖9所示。
設(shè)計(jì)PCB時(shí),為了便于系統(tǒng)測試,3種下載模式單獨(dú)設(shè)計(jì),并用跳線進(jìn)行選擇設(shè)置。
軟件采用Verilog語言,基于數(shù)字復(fù)、分接[7]的經(jīng)典理論和自主設(shè)計(jì)的新型算法進(jìn)行設(shè)計(jì),核心部分框圖如圖10所示。
軟件主要包括自適應(yīng)調(diào)整、數(shù)據(jù)恢復(fù)、誤碼測試、前向糾錯(cuò)以及同步綜合與分解等部分。同步綜合與分解是數(shù)據(jù)綜合系統(tǒng)的核心;自適應(yīng)調(diào)整和數(shù)據(jù)恢復(fù)是系統(tǒng)設(shè)計(jì)的創(chuàng)新點(diǎn)所在;前向糾錯(cuò)主要用來提高數(shù)據(jù)復(fù)接系統(tǒng)的穩(wěn)定性和可靠性,是對復(fù)接過程中產(chǎn)生的錯(cuò)誤的及時(shí)修改與完善;誤碼測試[8]是將當(dāng)前系統(tǒng)誤碼情況處理并送到人機(jī)界面進(jìn)行顯示,表征系統(tǒng)當(dāng)前的可靠程度;同步時(shí)鐘提取是實(shí)現(xiàn)正確分接的重要前提;各個(gè)系統(tǒng)模塊協(xié)調(diào)工作共同完成自適應(yīng)數(shù)據(jù)綜合的功能。
基于FPGA,采用自適應(yīng)新型算法設(shè)計(jì)實(shí)現(xiàn)了SDR中的數(shù)據(jù)綜合系統(tǒng)。主要功能及特點(diǎn)如下:
1)實(shí)現(xiàn)了非標(biāo)準(zhǔn)支路碼流的自適應(yīng)綜合,碼速自動識別、支路通道動態(tài)分配。
2)設(shè)計(jì)實(shí)現(xiàn)的新型時(shí)鐘提取方案,具有快速同步、自我調(diào)節(jié)和節(jié)省資源等特點(diǎn)。
3)開機(jī)后系統(tǒng)進(jìn)行自我檢測、同步自動恢復(fù)并且實(shí)時(shí)檢測誤碼,穩(wěn)定性好。
4)具有完善的人機(jī)界面、多種功能可選,接口標(biāo)準(zhǔn),通用性強(qiáng)。
5)與現(xiàn)有的SDR技術(shù)產(chǎn)品接口兼容,可直接應(yīng)用。6)系統(tǒng)功能可隨時(shí)通過軟件更新。
以上功能均已通過硬件實(shí)現(xiàn),驗(yàn)證了系統(tǒng)設(shè)計(jì)的可行性和可靠性。
測試儀器包括函數(shù)信號發(fā)生器、頻譜儀、數(shù)字電壓表、示波器等。測試結(jié)果如下:
1)復(fù)接總路信號速率≤2.048 MHz;
2)合路接口類型:10MbaseT,IEEE802.11b,DDS模塊接口,3G標(biāo)準(zhǔn)接口;
3)輸入支路碼流速率:50 bit/s~2 000 kbit/s;
4)支路通道數(shù):1~8路(根據(jù)支路速率動態(tài)分配)。
以上測試結(jié)果達(dá)到了系統(tǒng)設(shè)計(jì)的指標(biāo)需求。
針對多用戶型SDR提出的新型快速的時(shí)鐘提取方案,快速準(zhǔn)確地實(shí)現(xiàn)了支路數(shù)據(jù)時(shí)鐘提取,滿足了數(shù)據(jù)綜合系統(tǒng)自適應(yīng)性的預(yù)期設(shè)計(jì)要求。系統(tǒng)具備開放性、靈活性和軟件可移植性,廣泛應(yīng)用于辦公室、家庭等各種中、低速數(shù)據(jù)傳輸和交換設(shè)備中,有良好的應(yīng)用前景,具有較大的商業(yè)應(yīng)用價(jià)值。
另外,本文提出的時(shí)鐘提取方法在SDH系統(tǒng)以及ATM系統(tǒng)中都有著廣泛的應(yīng)用前景。
[1]楊小牛,樓才義,徐建良.軟件無線電原理及應(yīng)用[M].北京:電子工業(yè)出版社,2001.
[2]向新.軟件無線電原理與技術(shù)[M].西安:西安電子科技大學(xué)出版社,2008.
[3]段吉海,黃智偉.基于CPLD/FPGA的數(shù)字通信系統(tǒng)建模與設(shè)計(jì)[M].北京:電子工業(yè)出版社,2004.
[4]ZHANG Ruiyuan,GEORGE S L R.Fast acquisition clock and data recovery circuit with low jitter[J].IEEE Journal of Solid-State Circuits,2006,41(5):1016-1024.
[5]孔凡青.時(shí)分復(fù)用設(shè)備動態(tài)幀結(jié)構(gòu)技術(shù)[J].無線電通信技術(shù),2005,31(4):12-14.
[6]Altera Corporation.Altera configuration handbook[EB/OL].[2010-09-28].http://www.altera.com/literature/lit-config.jsp.
[7]陳建,楊秀芝.TS流復(fù)用器的時(shí)分復(fù)用設(shè)計(jì)[J].電視技術(shù),2009,33(10):13-14.
[8]孫玉.數(shù)字復(fù)接技術(shù)[M].北京:人民郵電出版社,1991.