幀同步系統(tǒng)的FPGA設(shè)計與實現(xiàn)
1 引言
數(shù)字通信時,一般以一定數(shù)目的碼元組成一個個“字”或“句”,即組成一個個“幀”進行傳輸,因此幀同步信號的頻率很容易由位同步信號經(jīng)分頻得出,但每個幀的開頭和末尾時刻卻無法由分頻器的輸出決定。為此,幀同步的任務(wù)就是要給出這個“開頭”和“末尾”的時刻。通常提取幀同步信號有兩種方法:一類是在信息流中插入一些特殊的碼組作為每幀的頭尾標(biāo)記。另一類則不需要加入碼組,而是利用數(shù)據(jù)碼組本身之間彼此不同的特性實現(xiàn)同步。這里采取第一種方法——連貫式插人法實現(xiàn)幀同步。所謂連貫式插入法就是在每幀開頭插入幀同步碼。所用的幀同步碼為巴克碼,巴克碼是一種具有特殊規(guī)律的非周期序列,其局部自相關(guān)函數(shù)具有尖銳的單峰特性,這些特性正是連貫式插入幀同步碼組的主要要求之一。因此,這里提出幀同步系統(tǒng)的FPGA 設(shè)計與實現(xiàn)。
2 幀同步系統(tǒng)的工作原理
實現(xiàn)幀同步的關(guān)鍵是把同步碼從一幀幀數(shù)據(jù)流中提取出來。本設(shè)計的一幀信碼由39位碼元組成。其中的巴克碼為1110010七位碼,數(shù)據(jù)碼由32位碼元組成。只有當(dāng)接收端收到一幀信號時,才會輸出同步信號。幀同步系統(tǒng)的設(shè)計框圖如圖1所示。
幀同步系統(tǒng)工作狀態(tài)分捕捉態(tài)和維持態(tài)。同步未建立時系統(tǒng)處于捕捉狀態(tài),狀態(tài)觸發(fā)器Q端為低電平,一旦識別器輸出脈沖,由于Q端為高電平,經(jīng)或門使與門1輸出”1”,同時經(jīng)或門使與門3輸出也為”1”,對分頻計數(shù)器模塊清零。與門1一路輸出至觸發(fā)器的S端,Q端變?yōu)楦唠娖剑c門4打開,幀同步輸出脈沖。系統(tǒng)由捕捉態(tài)轉(zhuǎn)為維持態(tài),幀同步建立。
當(dāng)幀同步建立后,系統(tǒng)處于維持態(tài)。假如此時分頻器輸出幀同步脈沖,而識別器卻沒有輸出,這可能是系統(tǒng)真的失去同步,也可能是偶然干擾引起的,因此在電路中加入一個保護電路。該保護電路也是一個分頻計數(shù)器,只有在連續(xù)若干次接收不到幀同步信號時,系統(tǒng)才會認(rèn)為同步狀態(tài)丟失,由于丟失同步的概率很小,因此這里系統(tǒng)設(shè)置分頻計數(shù)器值為5,也就是說連續(xù)5幀接收不到幀同步信號,系統(tǒng)才認(rèn)為丟失同步狀態(tài)。當(dāng)然分頻值可設(shè)置其他值,但該值越大,同步維持態(tài)下漏識別概率也越大。與門1的一路輸出置5分頻器的使能端,使之開始計數(shù),當(dāng)計數(shù)滿時會輸出一個脈沖使?fàn)顟B(tài)觸發(fā)器置零,從而無幀同步信號輸出,同步電路又進入捕捉態(tài)。
3 幀同步電路功能模塊的建模與實現(xiàn)
3.1 巴克碼識別模塊
該模塊的功能主要是把幀同步碼巴克碼從數(shù)據(jù)流中識別出來。識別器模塊如圖2所示。
圖2中第1部分模塊ZCB主要完成串并轉(zhuǎn)換和移位功能,由7個D觸發(fā)器和3個非門實現(xiàn)。第2部分模塊AND7作用:只有當(dāng)巴克碼1110010準(zhǔn)確輸人時,識別器的輸出才會為”1”。因為輸出的巴克碼識別信號將直接影響后續(xù)同步保護電路,因此準(zhǔn)確地輸出巴克碼,才能避免產(chǎn)生假同步現(xiàn)象。AND7可簡潔準(zhǔn)確識別巴克碼。圖3為巴克碼識別模塊仿真圖,其中,bakeshibie為識別器的輸出;fenpin39為39分頻計數(shù)器的輸出端;zin為輸入的數(shù)據(jù);zclk為時鐘信號。
3.2 分頻計數(shù)器模塊
本設(shè)計采用2個帶清零的分頻計數(shù)器,分別為39分頻計數(shù)器和5分頻計數(shù)器。其中,39分頻計數(shù)器可滿足7位巴克碼+4字節(jié)數(shù)據(jù)的要求。當(dāng)39分頻器輸出一個脈沖時,識別器也應(yīng)輸出一個脈沖,只要其相位對應(yīng)輸出,就能提取出幀同步信號。
39分頻計數(shù)器的仿真圖如圖4所示,其中clk為時鐘信號端;clr為時鐘清零端;output為輸出端。
3.3 同步保護模塊
系統(tǒng)進入維持態(tài)時就需要同步保護電路保護幀同步信號。這部分電路由時鐘控制模塊、基本RS觸發(fā)器模塊和5分頻計數(shù)器組成,其中,時鐘控制模塊和基本RS觸發(fā)器模塊的主要功能是狀態(tài)轉(zhuǎn)換和控制輸出幀同步脈沖。對于RS觸發(fā)器值得注意的是:如果R=0和 S=0后同時發(fā)生由0至1的變化,則輸出端Q和Q都要由1向0轉(zhuǎn)換,Q和Q端輸出就會為任意態(tài),這就是冒險競爭現(xiàn)象。當(dāng)產(chǎn)生冒險競爭后,由于觸發(fā)器的輸出為任意態(tài),就會導(dǎo)致整個系統(tǒng)的輸出為任意態(tài)。解決方法是在系統(tǒng)中加入時鐘控制模塊控制觸發(fā)器的復(fù)位端,確保不出現(xiàn)任意狀態(tài),使系統(tǒng)工作狀態(tài)穩(wěn)定。5分頻器在識別器模塊無輸出時,這可能是系統(tǒng)真正失步也可能是偶爾干擾所致,只有連續(xù)5次這種情況系統(tǒng)才會真正認(rèn)為失步。保護模塊仿真圖如圖5所示,其中, zhengout為幀同步輸出信號;clk為時鐘信號;data為輸入的信碼;q為RS觸發(fā)器的Q端;fenpin39為39分頻計數(shù)器的輸出端。
4 幀同步系統(tǒng)頂層文件設(shè)計
所謂頂層文件設(shè)計就是把所涉及到的各個模塊放在一起,形成一個便于閱讀的圖形方式,在編譯各個模塊時,如果設(shè)計沒有錯誤。系統(tǒng)就會創(chuàng)建一個代表該模塊的符號文件,可以被高層設(shè)計所調(diào)用。本設(shè)計中各模塊通過VHDL語言進行設(shè)計,在 QuartusⅡ開發(fā)軟件下編譯通過。采用Altera公司Cvclone系列的EP1C12Q240C8器件,并且?guī)诫娐穬H用到該器件不到1%的邏輯單元。頂層設(shè)計圖形如圖6所示。圖6中,ZCB和AND7(七輸入與門)為巴克碼識別器;CLKCONTR為時鐘控制器;FENPIN5為5分頻器計數(shù)器;FENPIN39為39分頻器計數(shù)器;RS_CLK為RS觸發(fā)器。
實驗結(jié)果分析:在Quartus II環(huán)境下,時鐘clk的周期為200μs,當(dāng)時鐘周期設(shè)定的值很小時,比如納秒級別,系統(tǒng)則極易出現(xiàn)冒險競爭現(xiàn)象,因此要將時鐘周期的值設(shè)定的大一些。 data為輸入的數(shù)據(jù)流,為了便于仿真,只在數(shù)據(jù)流中加入3組巴克碼。bakeshibie為巴克碼識別器的輸出,當(dāng)巴克碼出現(xiàn)后,觸發(fā)器的Q端變?yōu)楦唠娖?,系統(tǒng)進入維持態(tài),此時5分頻計數(shù)器開始計數(shù),若在未計滿5次時再次出現(xiàn)巴克碼,則5分頻計數(shù)器重新開始計數(shù),若計滿5次仍未出現(xiàn)巴克碼,則系統(tǒng)徹底丟失同步狀態(tài),Q端變?yōu)榈碗娖剑到y(tǒng)進入捕捉態(tài)??傮w設(shè)計時序仿真圖如圖7所示。由于此幀同步系統(tǒng)要應(yīng)用在DPSK解調(diào)中,所以幀同步系統(tǒng)仿真的時鐘頻率要與DPSK解調(diào)的時鐘頻率一致。仿真時要注意碼元的傳輸方向即巴克碼是高位先發(fā)送還是低位先發(fā)送,這將影響到仿真質(zhì)量。
5 結(jié)論
詳細(xì)闡述各模塊功能,實現(xiàn)方法及仿真圖形,系統(tǒng)對幀同步碼(巴克碼)作出嚴(yán)格限制,即系統(tǒng)只有在嚴(yán)格收到幀同步碼后才會有幀同步信號輸出,提高系統(tǒng)的可靠性。保護電路設(shè)計有效降低漏同步和假同步的概率,時鐘控制的RS觸發(fā)器保證了同步系統(tǒng)狀態(tài)的正確轉(zhuǎn)換。同步系統(tǒng)各項技術(shù)指標(biāo)均符合要求,工作正確可靠,有較高使用價值。