導(dǎo)言
DS34T10x和DS34S10x系列TDM-over-Packet (TDMoP)芯片采用抖動緩沖器來補償包網(wǎng)絡(luò)中存在的報文時延差異,這些緩沖器在每個綁定或者每個鏈接的基礎(chǔ)上都可以獨立配置。另外,它們可以動態(tài)調(diào)整,即可以實時地適應(yīng)包網(wǎng)絡(luò)特性參數(shù)的改變。本應(yīng)用筆記討論了抖動緩沖器的控制器以及如何設(shè)定這些參數(shù)來降低PDV對TDM時鐘恢復(fù)造成的影響。DS34T10x包括DS34T101、DS34T102、DS34T104和DS34T108;DS34S10x包括DS34S101、DS34S102、DS34S104和DS34S108。
TDM網(wǎng)絡(luò)中的同步
TDM網(wǎng)絡(luò)中的所有設(shè)備都使用同一個時鐘源,接收端TDM設(shè)備從輸入數(shù)據(jù)中提取出時鐘并利用它來發(fā)送數(shù)據(jù)(環(huán)回同步),如圖1所示。圖1. TDM網(wǎng)絡(luò)中的環(huán)回同步
由于網(wǎng)絡(luò)的擁塞、時鐘漂移或者路由改變而導(dǎo)致的報文到達時間的差異稱為抖動,因此,當(dāng)采用IP/MPLS網(wǎng)絡(luò)和兩個TDMoP設(shè)備來取代TDM物理連接(如圖2所示),接收端的TDMoP設(shè)備(從設(shè)備)接收到的TDMoP報文會有不同的到達時間差異。
在處理完報文后,設(shè)備會以TDM網(wǎng)絡(luò)的恒定速率將TDM數(shù)據(jù)送到TDM側(cè),降低抖動帶來的影響。為了實現(xiàn)這個恒定的數(shù)據(jù)率,時鐘恢復(fù)模式下的設(shè)備要重建源端的TDM時鐘,以此實現(xiàn)接收端的TDM設(shè)備工作在環(huán)回同步模式下。
圖2. TDM-over-Packet網(wǎng)絡(luò)的定時
抖動緩沖器
DS34T10x/DS34S10x利用抖動緩沖器來減小PDV對通信質(zhì)量的影響。抖動緩沖器是一段共享的存儲區(qū),TDM報文就在這段平均分配的存儲區(qū)被接收、存儲并送到電路仿真引擎。抖動緩沖器位于TDM連接的發(fā)送和接收末端,它有意識的延時到達的報文,以此讓終端用戶感受到一個很小或者沒有語音失真的清晰連接。有兩種類型的抖動緩沖器:靜態(tài)和動態(tài)。靜態(tài)抖動緩沖器基于硬件,由廠商配置;動態(tài)抖動緩沖器基于軟件,可以由網(wǎng)絡(luò)管理員根據(jù)網(wǎng)絡(luò)的延時和PDV的狀況而相應(yīng)配置。
DS34T10x/DS34S10x在SDRAM中設(shè)置有動態(tài)抖動緩沖器。這些抖動緩沖器有兩個主要的作用:
- 補償報文時延差異
- 在TDMoP從設(shè)備上重建遠端TDM時鐘
對于TDMoP協(xié)議(CESoPSN、SAToP和TDMoIP),綁定可以由來自一個E1或者T1的任意多個64kbps時隙組成。綁定是單向的碼流,通常配合以相反方向的綁定可以形成全雙工的通信。在兩個TDMoP邊界設(shè)備間可以傳輸多個綁定。
DS34T10x/DS34S10x具有很大的抖動緩沖器(最高達64個綁定),為了補償由IP/MPLS/以太網(wǎng)絡(luò)帶來的時延差異,緩沖器可以在每個綁定的基礎(chǔ)上獨立調(diào)整。每一個綁定都可以被凈荷類型機制或者CPU指定到任意TDM端口。所有的綁定都具有以下可獨立配置的特性:
- 發(fā)送和接收隊列
- 接收抖動緩沖器深度
- 可選的連接級冗余(同時適用于SAToP和CESoPSN)
SAToP和CESoPSN抖動緩沖器的精度是不同的,對于SAToP,精度以字節(jié)為單位,所以變量的增量對于E1來講可以是4μs,對于T1可以是5μs;對于CESoP,精度以幀為單位,所以變量的增量對于E1和T1都可以是125μs。因為整個報文都必須先進行存儲才可以確定它是否可用,抖動緩沖器的最小精度就是報文大小的函數(shù)。如果是小的報文(1字節(jié)),那么最小值就是1字節(jié),如果是大的CES報文(1500幀),那么無論PDV的大小,最小值都是187.5ms。
DS34T10x/DS34S10x抖動緩沖器的配置
正確配置抖動緩沖器的參數(shù)可以避免發(fā)生欠載和溢出。當(dāng)抖動緩沖器是空的時(輸入速率低于輸出速率)就會發(fā)生欠載。當(dāng)欠載發(fā)生時,芯片會向TDM接口發(fā)送調(diào)整數(shù)據(jù)而不是實際的數(shù)據(jù)。當(dāng)抖動緩沖器變滿而沒有空間再接收新的數(shù)據(jù)時(輸入速率超過輸出速率)就會發(fā)生溢出。欠載和溢出都需要IC硬件根據(jù)綁定的類型進行特殊的處理。DS34T10x/DS34S10x在外部SDRAM中會給數(shù)據(jù)和信令分配不同的區(qū)域。
- 在8端口低速率模式下,數(shù)據(jù)區(qū)和信令區(qū)被分為8個相同的部分,每個E1/T1/Nx64接口占用一區(qū)。
- 在E1/T1結(jié)構(gòu)化模式下,每個數(shù)據(jù)區(qū)包含有E1的32個時隙或者T1的24個時隙的數(shù)據(jù);一個E1/T1的單一時隙可以最多分配到4kB的空間,對于8個接口一共有256個時隙和1024kB的空間;
- 每一個信令區(qū)被分成多幀部分,每一個多幀部分包含有最多32個時隙的信令半字節(jié)。對于8個接口一共有64kB的空間。
- 在串行或者E1/T1非結(jié)構(gòu)化模式下,沒有針對每個時隙的分配。抖動緩沖器被分為8個相同的部分,一個接口占用一個區(qū)域。對于HDLC綁定每個區(qū)域是512kB,其它則是128kB。
- 對于高速率模式(E3/T3、 STS-1),抖動緩沖器作為一個大的緩沖區(qū)域沒有分區(qū),大小為512kB。
- E1:最高達256ms
- T1非成幀:最高達340ms
- T1成幀:最高達256ms
- T1成幀帶CAS:最高達192ms
? × 每個接口的緩沖器大小x (8 / 速率)(公式1)
式中:
? | = 緩沖器的一半 |
每個接口的緩沖器大小 | = 對于單一高速接口為512kB,對于低速接口為128kB |
8 | = 每字節(jié)中的比特數(shù) |
速率 | = 傳輸速率(例如:2.048Mbps) |
對于帶CAS的成幀T1,將公式1的結(jié)果乘以0.75。
抖動緩沖器的深度由綁定配置表中的Rx_max_buff_size 參數(shù)定義。當(dāng)抖動緩沖器的數(shù)值水平達到了Rx_max_buff_size值,處理器會指示發(fā)生溢出。
Rx_pdvt參數(shù)(同樣在綁定配置表中)定義了抖動緩沖器中用來補償網(wǎng)絡(luò)時延差異而存儲的數(shù)據(jù)量。圖3所示為抖動緩沖器參數(shù)。Rx_pdvt參數(shù)具有兩個含義:
- Rx_pdvt定義了IC對以太網(wǎng)絡(luò)時延差異的抗擾度
- 來自網(wǎng)絡(luò)的數(shù)據(jù)在被送到TDM側(cè)前要經(jīng)過Rx_pdvt的延時
圖3. 抖動緩沖器的參數(shù)
抖動緩沖器控制器(JBC)采用64位乘32位的綁定時隙表來確定每一個工作綁定被指定的時隙。這個表的索引就是綁定號。軟件必須配置每一個工作綁定的入口。對于非結(jié)構(gòu)化的綁定,所有的綁定入口(32位)都要被設(shè)定,設(shè)定某位就代表著相應(yīng)地時隙被指定到這個綁定。
JBC統(tǒng)計表被存儲在一個128個入口的表中,每一個TDM端口具有32個專用的入口,一個時隙一個入口。抖動緩沖器狀態(tài)表中存儲每一個處于工作狀態(tài)下的綁定的抖動緩沖器的狀態(tài),一個稱為Jitter_buffer_index (位于TSA表中)可配置的參數(shù)定義了這個表的入口,抖動緩沖器的統(tǒng)計數(shù)據(jù)就通過該表寫入和讀取。
軟件根據(jù)Jitter_buffer_index來讀寫抖動緩沖器狀態(tài)表,狀態(tài)表包含有目前的抖動緩沖器的狀態(tài),比如抖動緩沖器的數(shù)值水平和狀態(tài)(比如良好、欠載或者溢出),它還包含有兩個變量,用來報告抖動緩沖器的最大和最小數(shù)值水平。這些變量為用戶提供了網(wǎng)絡(luò)性能的信息。比如,利用這些數(shù)據(jù),用戶可以計算出距離抖動緩沖器頂部(Rx_max_buff_size)和底部的余量。如果還有空余空間,那么用戶可以減小Rx_pdvt值來降低由于抖動緩沖器而給輸入數(shù)據(jù)帶來的延時。
用戶應(yīng)該按照下面的步驟來定義Jitter_buffer_index的值:
- 對于AAL1/HDLC/RAW結(jié)構(gòu)化綁定,Jitter_buffer_index就是接口號(2 Msbits)和綁定中最小時隙號的并置。比如,如果綁定在第三個接口上包含有時隙2、4和7,那么Jitter_buffer_index就是10_00010[bin],即42[hex]。
- 對于非結(jié)構(gòu)化綁定,jitter_buffer_index是接口號(2 Msbits)和5個零。
- 對于AAL2綁定,每一個時隙數(shù)據(jù)存儲在自己的抖動緩沖器中,因此,Jitter_buffer_index是接口號(2 Msbits)和時隙號的并置。比如,如果綁定在第一個接口上包含有時隙2、4和17,每個時隙有各自的抖動緩沖器,則Jitter_buffer_index分別是 2[hex]、4[hex]和11[hex]。
如果在RAW綁定中有報文亂序,比如序列號為N的報文晚于序列號為N+1的報文,RAW凈荷類型機制會對其進行重新排序。如果抖動緩沖器的相應(yīng)位置還沒有被發(fā)送到TDM側(cè),那么報文數(shù)據(jù)就會被插入相應(yīng)的位置。
總結(jié)
抖動緩沖器對接收報文進行緩存來減低抖動差異。如果報文到達的太晚,那么它們會被丟棄。有些時候抖動緩沖器被錯誤配置后就會太小或者太大。如果一個抖動緩沖器太小,那么很多的報文就會被丟棄,這會導(dǎo)致呼叫質(zhì)量的降級。如果一個抖動緩沖器太大,那么附加的延時會導(dǎo)致通話困難。因此正確配置抖動緩沖器的參數(shù)可以避免上述的欠載和溢出情況的發(fā)生。關(guān)于TDMoP產(chǎn)品或其它Maxim電信產(chǎn)品的進一步信息,請通過電子郵件 telecom.support@maxim-ic.com (Englih only)或電話01-972-371-6555與電信產(chǎn)品應(yīng)用支持部聯(lián)系。
評論
查看更多