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