VoIP語音網(wǎng)關(guān)中TDM控制模塊的設(shè)計
2008/11/03
TDM控制模塊是VoIP網(wǎng)關(guān)系統(tǒng)設(shè)計中的重要部分,是連接來自PSTN(Public Switched TelephoneNetwork)串行的TDM數(shù)據(jù)格式和并行的Wishbone數(shù)據(jù)格式的橋梁,實現(xiàn)兩邊數(shù)據(jù)跨時鐘域無丟失的轉(zhuǎn)換。為滿足高速數(shù)據(jù)轉(zhuǎn)換的要求,采用了Wishbone總線,將多個IP核集成為VoIP網(wǎng)關(guān)系統(tǒng)。圖1 TDM控制模塊的作用
圖2 時分復(fù)用的時隙
本設(shè)計的串行語音數(shù)據(jù)針對E1專線標(biāo)準(zhǔn),E1主要應(yīng)用于歐洲,中國也采用該標(biāo)準(zhǔn)。E1標(biāo)準(zhǔn)的數(shù)據(jù)率為2.048Mb/s,每一個時間幀包括30個B子信道,一個D子信道和一個同步子信道,共32個子信道。以語音模擬信道為例,信道帶寬限制為3.4kHz,根據(jù)奈圭斯特定律,子信道采樣速率至少是信號最高頻率的兩倍,通常選擇采樣速率為8kHz。因此,整個TDM信道的比特速率可以達(dá)到:
8kb/s×8×32=2048kb/s=2.048 Mb/s,即E1標(biāo)準(zhǔn)規(guī)定的TDM數(shù)據(jù)率!
圖3 TDM接口控制模塊的基本結(jié)構(gòu)
串行數(shù)據(jù)接口主要負(fù)責(zé)串行數(shù)據(jù)與8位寬并行數(shù)據(jù)的轉(zhuǎn)換,因為存放數(shù)據(jù)的FIFO是以8bit為一地址空間的。轉(zhuǎn)換由設(shè)計的狀態(tài)機來控制:接收
(receive)操作、發(fā)送(transmit)操作和等待,接收就是將串行數(shù)據(jù)轉(zhuǎn)換成8bit位寬數(shù)據(jù)的過程,發(fā)送與之相反。由于語音數(shù)據(jù)要求雙工機制,由時鐘高低電平來作為發(fā)送和接收狀態(tài)的切換信號,即當(dāng)時鐘為低時由發(fā)送狀態(tài)轉(zhuǎn)為接收狀態(tài),當(dāng)時鐘為高時,由接收狀態(tài)切換為發(fā)送狀態(tài),這樣可以看作接收與發(fā)送是同時進(jìn)行的!
發(fā)送、接收緩存器不僅包括用于暫時存儲數(shù)據(jù)的FIFO,而且還設(shè)計有狀態(tài)機來控制接收、發(fā)送數(shù)據(jù)流。由于跨時鐘域,由雙口RAM組成的FIFO可能會帶來地址比較沖突的問題,本設(shè)計采用乒乓機制來完成FIFO,當(dāng)一個緩存器進(jìn)行讀操作時,另一個緩存器則進(jìn)行寫操作,兩者的切換由硬件來完成。以下以接收緩存器為例(數(shù)據(jù)方向從TDM串行數(shù)據(jù)到Wishbone總線并行數(shù)據(jù))來描述本設(shè)計。緩存器的大小設(shè)計為包含四幀TDM數(shù)據(jù),因此每個FIFO的大小為
8bit×32×4=1024bit,如圖4。選用乒乓FIFO以及FIFO大小設(shè)計的原因如下。
圖4 乒乓FIFO
串行數(shù)據(jù)的時鐘相對于Wishbone總線的時鐘要慢,當(dāng)兩時鐘域上的數(shù)據(jù)相互轉(zhuǎn)換時,Wishbone總線可以在很短時間內(nèi)讀寫FIFO,而串行總線需要相對較長的時間讀寫相同數(shù)據(jù)量。盡管如此,在Wishbone總線時鐘頻率相對較慢時,Wishbone總線很可能在下一批串行數(shù)據(jù)寫進(jìn)FIFO前不能完全讀空FIFO。以接收緩存器為例,如果不考慮處理器(BC320)中斷響應(yīng)時間和從RAM讀數(shù)據(jù)的時間(待處理的數(shù)據(jù)都要先暫存在Wishbone
總線上掛的RAM中),從Wishbone總線讀空一個FIFO中的四幀數(shù)據(jù)需要時間為:
1/25M x 32 x 4 = 5.12 x 10-6 s= 5.12us
25M是本設(shè)計在FPGA開發(fā)板進(jìn)行測試時所采用的時鐘頻率,即測試系統(tǒng)時Wishbone總線上的時鐘頻率!
而在另一邊串行數(shù)據(jù),當(dāng)四幀寫滿FIFO后,第五幀的第一個字節(jié)數(shù)據(jù)開始寫入FIFO的準(zhǔn)備時間為:
1/24M x 8 = 4 x 10-6?s = 4us
FIFO中的四幀數(shù)據(jù)被讀空時間大于第五幀的第一個字節(jié)寫入FIFO的準(zhǔn)備時間,F(xiàn)IFO的寫滿與讀空都是有硬件產(chǎn)生信號標(biāo)識,此時FIFO讀空信號標(biāo)識未產(chǎn)生,不能對同一FIFO進(jìn)行寫操作,導(dǎo)致待寫數(shù)據(jù)丟失。因此選用兩個FIFO采用乒乓機制來切換讀寫操作,如圖4所示!
在解復(fù)用時,數(shù)據(jù)的地址恢復(fù)很重要,一個TDM數(shù)據(jù)幀含有32個時隙,每一時隙中的數(shù)據(jù)均來自不同的信道源,本模塊要將復(fù)用在一路的TDM數(shù)據(jù)恢復(fù)出32
路。TDM數(shù)據(jù)的每個時隙含8個bit,而Wishbone總線的數(shù)據(jù)位寬是32位,因此需要四幀的TDM數(shù)據(jù)才能拼接成一路完整32位寬數(shù)據(jù)。相鄰時隙數(shù)據(jù)由于來自不同信道源,暫存在FIFO中的地址不能相鄰,前一時隙中數(shù)據(jù)和后一時隙中數(shù)據(jù)在地址空間上相差4(如圖4),這樣從初始地址開始,每相鄰四個地址對應(yīng)的數(shù)據(jù)拼接成一路完整的信號,在Wish
bone總線讀取FIFO中數(shù)據(jù)時的地址是按順序的!
本文著重討論了接收緩存器的設(shè)計,發(fā)送緩存器與之類似,這里就不再贅述。
Wishbone接口連接TDM控制模塊與Wishbone總線,它的主要功能是設(shè)計正確的狀態(tài)機產(chǎn)生有效控制信號來同步數(shù)據(jù)交換!
驗證與結(jié)論
用Verilog語言描述完成TDM控制模塊的設(shè)計,并以VoIP語音網(wǎng)關(guān)系統(tǒng)為驗證平臺,利用Candence公司的NC-verilog仿真器進(jìn)行代碼仿真。仿真波形表明,處理器(BC320)對FIFO寫滿產(chǎn)生信號標(biāo)識的反應(yīng)時間大約為60個Wishbone總線時鐘周期,這一時間加上
Wishbone總線讀空第一個FIFO所用時間后,串行語音數(shù)據(jù)仍在寫進(jìn)另一個FIFO,Wishbone總線有足夠的空閑等待這個FIFO寫滿標(biāo)示信號的產(chǎn)生,不會有任何數(shù)據(jù)丟失!
VoIP語音網(wǎng)關(guān)系統(tǒng)在型號為Virtex-II Pro FF1152的FPGA開發(fā)板上進(jìn)行了硬件驗證,TDM控制模塊外接型號為Le88221的SLIC(用戶線接口電路)芯片作為語音信源,利用
Chipscope在線掃描TDM控制模塊內(nèi)部、Wishbone總線和處理器(BC320)寄存器的信號變化,并用示波器對SLIC芯片信號進(jìn)行捕捉。從觀察的信號來看,所設(shè)計的TDM控制模塊能夠與系統(tǒng)的其他IP模塊,尤其是處理器(BC320)和以太網(wǎng)模塊正確有效地協(xié)同工作,模塊的功能達(dá)到設(shè)計要求。
全球IP通信聯(lián)盟
VoIP:難以抵擋的灰色誘惑 2008-11-03 |
VoIP雙模網(wǎng)關(guān)的研究與系統(tǒng)設(shè)計 2008-11-03 |
VoIP解決方案中的處理器選擇 2008-11-03 |
多方阻礙未能影響統(tǒng)一通信平穩(wěn)發(fā)展 2008-11-03 |
VoWi-Fi的設(shè)計挑戰(zhàn)剖析 2008-10-29 |