當(dāng)前位置:首頁 > 電源 > 數(shù)字電源
[導(dǎo)讀]本文介紹了集中式插入法幀同步系統(tǒng)的原理,分析了幀同步系統(tǒng)的工作流程。采用模塊化的設(shè)計(jì)思想,利用VHDL設(shè)計(jì)了同步參數(shù)可靈活配置的幀同步系統(tǒng),闡述了關(guān)鍵部件的設(shè)計(jì)方法,提出了一種基于FPGA的幀同步系統(tǒng)設(shè)計(jì)方案。

在Xilinx的FPGA器件XC3S200-4FT200上對方案中設(shè)計(jì)的幀同步系統(tǒng)進(jìn)行了實(shí)現(xiàn),利用Modelsim 6.0軟件進(jìn)行了仿真測試。仿真結(jié)果表明,本方案設(shè)計(jì)的同步系統(tǒng)工作穩(wěn)定,滿足性能要求。

0 引言

在數(shù)字通信系統(tǒng)中,發(fā)送端一般以一定數(shù)目的碼元組成一個(gè)個(gè)“字”或“句”,即組成一個(gè)個(gè)數(shù)據(jù)幀進(jìn)行傳輸,因此幀是數(shù)據(jù)傳輸?shù)幕締挝弧2煌耐ㄐ畔到y(tǒng)具有不同的幀結(jié)構(gòu)。幀一般分為幀同步碼和數(shù)據(jù)兩部分,幀同步碼用于標(biāo)志幀的起始位置;數(shù)據(jù)則是需要傳輸?shù)挠行Тa元。幀同步碼組的插入方法主要有兩種:集中式插入法和間隔式插入法。集中式插入法就是在每幀的開頭集中插入幀同步碼組的方法;間隔式插入法則是將幀同步碼組分散插入到數(shù)據(jù)流中,即每隔一定數(shù)量的信息碼元插入一個(gè)幀同步碼元。本文主要提出一種集中式插入法幀同步的FPGA的設(shè)計(jì)方案。

一般來講,幀同步在位同步之后才能進(jìn)行。雖然信號的頻率很容易由位同步信號經(jīng)過分頻得到,但是幀的起始和末尾時(shí)刻則無法由位同步信號分頻確定。幀同步的主要任務(wù)就是要獲取每個(gè)數(shù)據(jù)幀的起始及結(jié)束位置。隨著可編程邏輯器件的發(fā)展,采用FPGA實(shí)現(xiàn)幀同步等數(shù)字系統(tǒng)具有速度快、使用方便、可編程配置各種參數(shù)等一系列優(yōu)點(diǎn),因而得到了越來越廣泛的應(yīng)用。

1 集中式插入法幀同步的原理及流程

1.1 集中式插入法幀總體結(jié)構(gòu)

集中式插入法是指在每幀數(shù)據(jù)的開始位置集中插入幀同步碼序列的方法。在這種同步傳輸方式中,被傳輸?shù)臄?shù)據(jù)比特被編成幀,每幀包括多個(gè)數(shù)據(jù),幀的首部加一個(gè)幀同步碼組(也稱為幀的標(biāo)志字),記作U,其長度為M(單位:b),幀內(nèi)的數(shù)據(jù)比特?cái)?shù)為D.接收端對接收的比特流進(jìn)行搜索,一旦檢測到標(biāo)志字U,就知道了一幀數(shù)據(jù)的開始,并據(jù)此對幀內(nèi)的數(shù)據(jù)進(jìn)行分組處理,以此建立起同步傳輸機(jī)制。集中式插入法的數(shù)據(jù)幀格式如圖1所示。

 

 

顯然,幀同步碼組必須滿足一定的條件:首先,同步碼組要求盡量與所要傳輸?shù)臄?shù)據(jù)不同,以免將數(shù)據(jù)誤認(rèn)為是同步碼組;其次要求幀同步碼組具有尖銳單峰的自相關(guān)特性,以便于接收端進(jìn)行正確檢測;第三個(gè)要求是長度不能太長,以免占用過多的信道資源。目前常用的幀同步碼組主要有廣義巴克(Barker)碼序列,一些系統(tǒng)也使用具有偽隨機(jī)特性的m序列作為同步碼組。

1.2 幀同步的幾種狀態(tài)

根據(jù)幀同步搜索的原理,在幀同步搜索過程中顯然存在假鎖的可能性(也稱虛警概率),因?yàn)閿?shù)據(jù)比特所構(gòu)成的碼序列,或部分的標(biāo)志字與部分的數(shù)據(jù)比特所構(gòu)成的長度為M 的碼序列也有可能滿足檢測條件,而被誤認(rèn)為U.因此,為了提高幀同步系統(tǒng)的性能(減小假鎖的概率,鎖定后盡量增加同步的穩(wěn)定性),工程上通常通過增加同步流程的復(fù)雜性來實(shí)現(xiàn)改善性能的目的。一般來講,將幀同步的過程分為三個(gè)狀態(tài):搜索態(tài)、校核態(tài)和同步態(tài),其狀態(tài)轉(zhuǎn)移圖如圖2所示。

 

 

搜索態(tài):在數(shù)據(jù)接收的起始時(shí)刻,或幀校核時(shí)出現(xiàn)未同步幀,或同步態(tài)時(shí)發(fā)現(xiàn)有多個(gè)連續(xù)幀未同步時(shí)轉(zhuǎn)入搜索態(tài)。搜索態(tài)下,程序在數(shù)據(jù)流中持續(xù)搜索幀同步碼,當(dāng)從接收到的比特流中找到幀同步碼時(shí),表明已搜索到了一個(gè)同步幀頭,此時(shí)輸出一個(gè)脈沖信號,系統(tǒng)可進(jìn)入校核態(tài)。

校核態(tài):若連續(xù)經(jīng)過N 幀同步碼確認(rèn)搜索態(tài)中找到的幀頭正確,則系統(tǒng)可立即轉(zhuǎn)入同步狀態(tài);否則說明存在假同步,需要返回搜索態(tài)重新對幀同步碼進(jìn)行搜索。由首次搜索到幀同步頭到進(jìn)入同步態(tài)的N 幀時(shí)間叫做后方保護(hù)時(shí)間。

同步態(tài):幀同步系統(tǒng)處于同步狀態(tài)時(shí),若沒有出現(xiàn)連續(xù)M 幀數(shù)據(jù)未同步,則保持在同步狀態(tài)??紤]到接收的數(shù)據(jù)流中可能受外界干擾而存在誤碼,在同步狀態(tài)中只有連續(xù)M 幀丟失同步碼才進(jìn)入失步狀態(tài),并返回搜索態(tài),這個(gè)M 幀的時(shí)間叫做前方保護(hù)時(shí)間。

2 幀同步系統(tǒng)的VHDL設(shè)計(jì)與仿真

2.1 總體結(jié)構(gòu)設(shè)計(jì)

根據(jù)實(shí)例需求,幀同步碼組長度(LenCode)、幀同步碼組(FrameCode)、容錯(cuò)位數(shù)(ErrorNum)、幀長(Len-Frame)、校核態(tài)校核幀數(shù)(CheckNum)以及同步態(tài)校核幀數(shù)(SyncNum)均以常量的形式設(shè)置,便于VHDL程序中修改同步參數(shù)。系統(tǒng)數(shù)據(jù)速率及時(shí)鐘頻率為50 MHz.

根據(jù)圖2所示的結(jié)構(gòu),很容易想到采用狀態(tài)機(jī)的設(shè)計(jì)方法來實(shí)現(xiàn)同步系統(tǒng)。不論是采用狀態(tài)機(jī)方式,或原理圖方式進(jìn)行VHDL程序設(shè)計(jì),最終均可以轉(zhuǎn)換成VHDL代碼的形式。顯然,直接采用編寫VHDL代碼的形式,更利于程序的修改及升級維護(hù)。因此,本文完全采用代碼編寫方式來進(jìn)行程序設(shè)計(jì)。

圖2是一個(gè)典型的狀態(tài)轉(zhuǎn)移圖,可以將轉(zhuǎn)移條件看作狀態(tài)之間的信號接口。整個(gè)幀同步系統(tǒng)可以劃分為搜索狀態(tài)模塊(Search)、校核狀態(tài)模塊(Check)及同步狀態(tài)模塊(Sync)。除了上電后啟動(dòng)搜索狀態(tài)之外,當(dāng)校核未通過(CheckNum 幀內(nèi)有一個(gè)校核幀未同步)或同步態(tài)失鎖(連續(xù)SyncNum 幀未同步)時(shí)也需啟動(dòng)搜索狀態(tài),因此搜索狀態(tài)的啟動(dòng)信號有復(fù)位信號(rst)、校核態(tài)重搜索信號(Research_check)和同步態(tài)重搜索信號(Research_sync);校核態(tài)的啟動(dòng)信號僅來自于搜索態(tài)(search_over),即只有當(dāng)搜索到幀同步碼后才能轉(zhuǎn)入校核態(tài),如果校核通過則送出校核完成信號(check_over),校核未通過則送出重新搜索信號(Research_check);同步態(tài)的啟動(dòng)信號僅來自于校核態(tài)(check_over),只有校核通過后才能進(jìn)入同步狀態(tài)。進(jìn)入同步態(tài)后,持續(xù)對同步碼組進(jìn)行檢測,當(dāng)檢測到重新失鎖后送出Research_sync,重新啟動(dòng)搜索狀態(tài)。圖3為幀同步系統(tǒng)頂層VHDL程序文件采用Synplify Pro綜合后的RTL原理圖。

2.2 搜索模塊的VHDL設(shè)計(jì)與仿真

搜索模塊的對外接口如圖3所示。其中,CLK_BitSync及Data_in分別為位同步時(shí)鐘信號和輸入數(shù)據(jù);Data_out為經(jīng)2個(gè)時(shí)鐘周期延時(shí)后的比特流數(shù)據(jù)。對輸入數(shù)據(jù)的延時(shí)處理,是為了補(bǔ)償產(chǎn)生search_over 時(shí)的處理時(shí)延,以便于脈沖信號search_over 與最后一位幀同步碼對齊。

搜索輸入比特流中的幀同步碼組,首先需要將輸入數(shù)據(jù)送入移位寄存器(Regdin)中,而后將Regdin中的數(shù)據(jù)與幀同步碼組相比即可。程序中將多路啟動(dòng)信號(rst、Research_check、Research_sync)取或后,作為異步復(fù)位信號,用于啟動(dòng)一次搜索過程。搜索過程中,采用for循環(huán)對寄存器Regdin 與同步碼組進(jìn)行比較,通過逐位比較,每發(fā)現(xiàn)1 b不相同,則計(jì)數(shù)加1,計(jì)算出兩者之間的漢明距離。計(jì)算完漢明距離后,判斷是否大于容錯(cuò)門限ErrorNum,如大于容錯(cuò)門限則繼續(xù)搜索,否則輸出同步脈沖search_over,并停止搜索。[!--empirenews.page--]

 

 

圖4為搜索模塊的Modelsim仿真波形。其中,幀同步碼長度LenCode=7, 幀同步碼FrameCode=“1011000”,容錯(cuò)門限ErrorNum=1.可以看出,復(fù)位后首先搜索到一次幀同步碼組;當(dāng)Research_check為高電平,啟動(dòng)另一次搜索過程,比特流中搜索到“1001000(ErrorNum=1)”時(shí),此時(shí)容錯(cuò)位數(shù)設(shè)置為1,因此輸出同脈沖search_over,并停止搜索過程,即使后續(xù)比特流中出現(xiàn)了“1011001(ErrorNum=1)”,仍然不輸出同步脈沖。

 

 

2.3 校核模塊的VHDL設(shè)計(jì)與仿真

為便于程序編寫,校核模塊主要由Check_Ce 進(jìn)程和Checking 進(jìn)程組成。Check_Ce 進(jìn)程用于檢測search_over信號,檢測到信號出現(xiàn)高電平后,產(chǎn)生長度為CheckNum 幀數(shù)據(jù)的高電平允許信號CheckCe,并通過計(jì)數(shù)器Number 來標(biāo)識每幀中數(shù)據(jù)及同步碼組的位置。產(chǎn)生了CheckCe及Number信號后,Checking進(jìn)程只需在CheckCe信號為高電平的范圍內(nèi)對同步碼組進(jìn)行校核即可。校核完成后,需要使check_over(連續(xù)CheckNum幀均同步)或research_check(CheckNum幀內(nèi)有一幀未同步)信號產(chǎn)生一個(gè)高電平脈沖。幀校核的方法與搜索同步碼組的方法類似,即通過漢明距離來判斷是否同步。將校核態(tài)分成Check_Ce進(jìn)程和Checking進(jìn)程來分別進(jìn)行實(shí)現(xiàn),則每個(gè)進(jìn)程的功能劃分更為簡單,編程實(shí)現(xiàn)時(shí)也相對容易得多。

圖5 是校核模塊的Modelsim 仿真波形。其中,幀長度LenFrame=16,校核幀數(shù)CheckNum=2,容錯(cuò)門限ErrorNum=0,其余參數(shù)與搜索模塊相同。從波形上很容易看出,當(dāng)search_over第一次出現(xiàn)高電平時(shí),其后連續(xù)兩組同步碼均為“1011000(ErrorNum=0)”;當(dāng)search_over第二次出現(xiàn)高電平時(shí),其后第一組同步碼為“1001000(ErrorNum=1)”,第二組同步碼為“1011000(ErrorNum=0)”.因此第一次幀校核順利通過,校核完成后check_over輸出一個(gè)高電平脈沖,research_check保持為低電平;第二次校核未通過,校核完成后research_check輸出一個(gè)高電平脈沖,check_over保持為低電平。

 

 

2.4 同步模塊的VHDL設(shè)計(jì)與仿真

為了簡化設(shè)計(jì),將同步狀態(tài)分為三個(gè)進(jìn)程來完成,即計(jì)數(shù)器進(jìn)程(Counter)、幀校驗(yàn)進(jìn)程(FrameChecking)和同步校驗(yàn)進(jìn)程(SyncChecking)。Counter 進(jìn)程用于產(chǎn)生幀內(nèi)數(shù)據(jù)位置的計(jì)數(shù),當(dāng)檢測到check_over 信號為高電平時(shí),重新開始以幀周期(LenFrame)循環(huán)計(jì)數(shù);FrameChecking 進(jìn)程用于產(chǎn)生幀起始位置的同步脈沖,且高電平脈沖與同步碼的最后1 b對齊,該進(jìn)程首先需要對同步碼組進(jìn)行校核,如校核通過,則在同步碼位置處產(chǎn)生一個(gè)高電平脈沖FramePosition,如果校驗(yàn)未通過,則在同步碼位置不產(chǎn)生高電平脈沖;SyncChecking進(jìn)程通過判斷FramePosition 來確定系統(tǒng)是否處于同步狀態(tài),即只需判斷FramePosition是否連續(xù)在同步碼組的位置出現(xiàn)低電平,如連續(xù)出現(xiàn)SyncNum 次低電平,則判斷為失鎖,否則繼續(xù)維持同步狀態(tài)。

圖6 是同步模塊的Modelsim 仿真波形。其中同步態(tài)校核幀數(shù)SyncNum=2,其他參數(shù)與校核態(tài)相同。從圖中可以看出,當(dāng)檢測到check_over為高電平時(shí),計(jì)數(shù)器Number開始以周期為幀長LenFrame=16循環(huán)計(jì)數(shù)。當(dāng)check_over 出現(xiàn)高電平時(shí),其后連續(xù)4 組同步碼為“1011000(ErrorNum=0)”,“1001000(ErrorNum=1)”,“1001000(ErrorNum=1)”,“1001000(ErrorNum=1)”.由于此時(shí)設(shè)置的容錯(cuò)門限ErrorNum=0,因此第一幀同步碼校核通過,輸出了同步脈沖FramePosition,此后出現(xiàn)連續(xù)3 個(gè)校核未通過的數(shù)據(jù)幀。同步狀態(tài)信號State_Sync 高電平狀態(tài)持續(xù)維持了2 幀數(shù)據(jù)的長度,而后停止同步狀態(tài),輸出失步信號research_sync,用于啟動(dòng)搜索過程。

 

 

3 幀同步系統(tǒng)的FPGA實(shí)現(xiàn)及仿真

本實(shí)例的目標(biāo)器件為XC3S200-4FT200,FPGA實(shí)現(xiàn)后,查找表資源(LUTs)占用了484 個(gè)(12%),全局時(shí)鐘資源(GCLKs)占用了1個(gè)(12%)。最高系統(tǒng)時(shí)鐘頻率(Maximum frequency)可達(dá)54.81 MHz.圖7 是幀同步系統(tǒng)的Modelsim 仿真波形。其中,各模塊的容錯(cuò)門限ErrorNum均為0,其他同步參數(shù)不變。

 

 

圖7 實(shí)際上對幀同步系統(tǒng)的搜索、校核、校核未通過、失步、重新搜索、重新同步等過程進(jìn)行了完整的仿真測試。

4 結(jié)語

本方案是基于模塊化設(shè)計(jì)思想,采用VHDL語言對幀同步系統(tǒng)進(jìn)行設(shè)計(jì)實(shí)現(xiàn),有利于程序的移置及維護(hù)。方案設(shè)計(jì)的關(guān)鍵在于理解各模塊之間的信號接口關(guān)系及時(shí)序關(guān)系。在模塊設(shè)計(jì)時(shí),通過進(jìn)一步合理劃分模塊內(nèi)部的結(jié)構(gòu),可以更好地理清程序思路并提高設(shè)計(jì)方案的效率。最后利用Modelsim 6.0軟件進(jìn)行了仿真測試。仿真結(jié)果表明,該方案中設(shè)計(jì)的同步系統(tǒng)工作穩(wěn)定,滿足性能要求。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉