趙志遠
(中國電子科技集團公司第五十四研究所,河北石家莊050081)
ATM它采用固定長度的信元(Cell)的概念,綜合了傳輸、復用和交換技術,向用戶提供高速帶寬,使用戶可以在同一網絡上傳送綜合業務。ATM層連續輸出53 bytes的信元(包含5個bytes的信元頭及48 bytes的凈荷),由于ATM信元中缺乏差錯控制和流量控制等功能,不能很好地滿足多數應用的要求。為了彌補這一不足,ITU在I.363中,在ATM層之上定義了一個端到端的層,這一層稱為ATM適配層(ATM Adaptation Layer,AAL)。AAL層又進一步劃分為若干子層,其中,AAL2子層主要是面對可變比特率(VBR)業務,這類業務通常采用特定的壓縮編碼,并且要求嚴格的實時服務。
由于帶寬資源緊張,很多設備(諸如數字話機、數字傳真機或者衛星等)在接入網絡前往往會對語音類業務進行壓縮編碼,在滿足一定語音質量的前提下大幅度降低信息速率。
傳統的ATM信元報文較長,如果直接采用ATM信元傳輸語音(或傳真,下同)的話,由于每個信元只能承載一路語音數據,因此會在信元封裝時產生較大的語音時延。封裝時延計算公式為:Td=L/B,其中Td為時延(ms);L為封裝長度(bit);B為碼率(kbps)。表1列舉了幾種常見編碼格式的接口方式、碼率和時延。可見,在采用ATM信元傳輸時,碼率較高的PCM編碼仍可保持較小的時延,不會影響到用戶的通話感受,而G.729、AMR等低碼率業務的時延則非常大,如果再累加上編碼時延、交換時延和解碼時延,會使通話變得非常難懂。可見,直接采用ATM信元承載語音類業務是不合適的。

表1 常見語音編碼的碼率和時延
AAL2適配可以通過調整微信元長度來控制時延及系統容量。常見的AAL2適配方式分為定長AAL2適配和變長AAL2適配:變長AAL2的優點是可以通過控制封裝長度精確調整時延,但這種適配方式由于復雜度較高,在封裝、傳輸、交換和重組等過程中的處理量較大,容易導致設備成本上升。而定長AAL2適配方式是將微信元長度封裝成同等大小,處理起來非常容易,而且也能有效降低時延,因此應用較為廣泛。
在平衡時延與微信元尺寸之后,提出了一種定長的AAL2適配信元格式,如圖 1所示。在一個ATM信元中,保留前5個bytes信元頭,剩余的48 bytes凈荷被等分成4個AAL2微信元,每個微信元為12個bytes,其中前2個bytes為微信元頭(微信元頭包含1個byte的通道標識符CID及1個byte其他控制字段),其他10個bytes為凈荷。這種封裝格式可以在同一個ATM信元中容納多達4路語音數據,與采用大信元傳輸相比,時延減少了80%。

圖1 ATM、AAL2信元格式
常見的語音類業務接口方式可分為TDM(Time Division Multiplexed)及主機接口HPI(Host Processor Interface)。TDM接口常用于波形編碼器,如PCM、ADPCM、CVSD等,這種接口通常采用幀同步、時鐘和收發數據等信號進行設備互連和信息交互;HPI接口常用于參數編碼器,如G.729、AMR等,這種編碼器通常需要通過CPU完成與其他設備之間的信息交互。
傳統的AAL2適配方式是采用高性能通信處理器完成的,借助處理器提供的TDM接口及CPU接口完成TDM流格式以及HPI包格式數據的處理,通過配置CPU接口的時序等參數,使之適應不同種類的外設。這種方式靈活性高,適應性強,但由于實時業務的處理優先級較高,對處理器的資源占用很高,多路業務并發時處理能力跟不上。在某些核心板卡中,過高的業務處理負擔會嚴重影響CPU對協議、信令的響應速度,很容易導致系統不穩定甚至死鎖;其次,由于要求CPU具備TDM、HPI和UTOPIA等多種接口,使CPU的選型受到一定限制,通常要選用成本較高的通信處理器,致使系統成本上升;為了保證處理性能而選擇更高主頻的處理器,也會導致系統功耗進一步攀升。
2.3.1 模塊構成
為了實現線速的處理性能,減輕CPU負荷,同時降低系統成本和功耗,采用HDL語言在FPGA平臺上實現AAL2適配不失為一種高效的方式。這種設計方式可以使模塊很方便地在不同FPGA芯片間移植,由于通信板卡通常會配備FPGA芯片,這種方式不會增加板卡的復雜度。
AAL2模塊主要由業務接口、數據緩沖區、適配/解適配控制、UTOPIA接口和調試緩沖區等幾部分組成,模塊的原理框圖如圖2所示。

圖2 AAL2模塊原理
2.3.2 詳細設計
詳細設計方法如下:
①AAL2模塊的業務接口有2個:16 bit數據寬度的HPI接口和8.192MHz時鐘速率的TDM接口。HPI接口由16位地址、16位數據及相應的控制信號構成,處理器通過HPI接口完成AAL2模塊和編碼器之間數據交換;TDM接口是一個自定義接口,幀格式如圖3所示,幀速率為8 kHz,每幀包含64個時隙,每個時隙包含16個bit。TDM接口包含6條信號線:收發時鐘、收發數據和收發幀頭。幀頭標識每一幀的起始位置,幀頭后的第一個數據為第0時隙的第0 bit,數據的變化發生在時鐘的上升沿。通過配置每個時隙中的有效比特數(1~16),這種幀格式可以承載編碼速率為8~128 kbps的語音數據(以8 kbps遞增);

圖3 TDM接口幀格式
②AAL2模塊包含幾組數據緩沖區:業務接口側有TDM數據收發緩沖區和HPI數據收發緩沖區;UTOPIA接口側有信元收發緩沖區。TDM數據接收緩沖區為每個話路提供2個微信元(160 bit)的緩沖容量,適配模塊采用“乒乓”方式進行數據提取,可以將封裝時延降到最低,硬件資源消耗也較小。TDM數據發送緩沖區同時承擔著數據緩沖和吸收時延抖動及數據突發等作用,通常會設置每路8~32個微信元的容量,具體數值要根據系統的時延和抖動情況決定。HPI數據緩沖區是一個共享緩沖區,在收發2個方向各設置了32個小信元的容量,可以兼顧處理器的負荷和信元的突發。UTOPIA接口的收發信元緩沖區均設置為8個ATM信元的容量,分別占用1個M4K的RAM塊(以ALTERA公司的FPGA為例);
③AAL2模塊中的適配/解適配控制是整個模塊的核心部分,它完成原始數據和ATM信元之間的雙向轉換。適配控制部分按照固定的節拍掃描TDM接口和HPI接口的全部話路,根據控制寄存器中的配置參數,將數據接收緩沖區中的數據封裝為微信元,轉存到UTOPIA接口的ATM信元緩沖區。適配控制對于TDM接口采用“乒乓”方式進行數據采集,對于HPI接口采用BD(Buffer Descriptor)方式進行數據采集。適配控制部分具備定時控制能力,可以對ATM信元的最大等待時間進行設置,如果在規定的時間內沒有足夠的微信元完成ATM信元的封裝,則在信元的尾部填充1~3個“空微信元”(指CID=0xFF的微信元),并立刻轉發到ATM網絡中。解適配控制的處理流程與適配控制相反,HPI接口的數據處理也采用BD方式,由于TDM接口數據緩沖區承擔著吸收抖動和突發的作用,TDM接口的數據處理采用環形緩沖區配合讀寫指針實現:TDM接口側的讀指針按照接口速率從雙端口RAM中讀取數據,當某一話路被使能后,解適配控制將這一路的寫指針調整到距讀指針半個緩沖區的位置。正常情況下讀寫指針間距保持在半個緩沖左右,當系統未達到同步或者產生數據突發時,二者間距會發生變化,未使指針發生碰撞(即指針相等)的失步和突發不會引起誤碼或滑碼,一旦發生指針碰撞,解適配控制模塊會重新調整寫指針,指針的調整會同時產生誤碼或滑碼;
④UTOPIA接口完成AAL2模塊與ATM交換芯片之間的數據交互,ATM論壇規定了2種接口格式:UTOPIA LEVEL1和UTOPIA LEVEL2。LEVEL2接口目前應用較廣,它有8位接口和16位接口2種格式,為使模塊具有更強的適應性,模塊的UTOPIA接口設計為可通過CPU配置參數來確定接口的位寬;
⑤設計中還提供了監視緩沖區及多組計數器,可用來查看大小信元的收發數量以及其他異常情況,查看當前的信元內容。這些措施主要用于系統調試和故障定位。
在ATM交換設備中,存在著大量的語音、傳真和電臺等業務,其接口方式基本可劃分為TDM接口和HPI接口。典型應用方式如圖4所示。

圖4 典型應用方式
HPI接口接入AAL2模塊的方式比較簡單:將編碼器的HPI接口和AAL2模塊的HPI接口同時掛接到處理器上,為每個模塊分配獨立的片選、中斷等控制信號,數據交互則由處理器完成。
TDM類型的接口之間區別較大,主要體現在時鐘速率、話路數和單路碼率的差異上。為了便于多種不同TDM接口的接入,在AAL2模塊與編碼器之間需放置一個多速率復分接模塊,各種不同/相同速率編碼器的TDM碼流經過多速率復分接模塊形成一條高速率的TDM碼流連接到AAL2模塊。
2.5.1 適配時延
適配時延即完成一個微信元封裝和將微信元從UTOPIA接口轉發出去所使用的總時間。
由于微信元長度固定,因此TDM接口的微信元封裝時間僅與話路的碼率相關,以64 kbps速率的PCM編碼為例,封裝時延Td=(10*8)/64=1.25 ms。當系統中只存在1個話路時,整個ATM信元全部用來承載這個話路的數據,此時的轉發時延最大,相當于封裝時延4倍。話路數越多,單位時間內生成的微信元越多,轉發延時也就越低。
HPI接口的微信元封裝是在處理器中完成的,因此,封裝時延與處理器性能以及封裝算法密切相關。由于微信元數據量極小,這一時延通常不會對系統時延產生大的影響。
在系統中話路較少且話路的碼率較低時,為了避免產生大的適配時延,應該使能適配定時控制,并且將定時寄存器設置為恰當的值。
2.5.2 解適配時延
解適配時延指的是將從UTOPIA接口收到的ATM信元轉發到TDM或HPI接口緩沖區并轉發出去所使用的時間。在25 MHz時鐘工作時,解適配控制部分可在4 μ s內將1個ATM信元轉發到接口緩沖區,這個時間可以忽略不計。
TDM接口解適配時延取決于讀寫指針的間距及話路的碼率。通常,這一間距為單路緩沖區的一半,在最差情況下(寫指針緊跟讀指針時),二者間距為(n-1)個微信元,n為單路緩沖區的總微信元數量。
和適配時延一樣,HPI接口的數據轉發也是在處理器中完成的,這一時延也不會對系統時延產生大的影響。
2.5.3 承載話路數量
根據微信元的結構,CID字段占用了1 byte,因此AAL2模塊可支持256個話路,由于0和255兩個CID為保留值,實際可同時承載的最大話路數量為254路。
從TDM接口的幀格式可知,TDM接口最大可以承載64個話路(每個時隙為一個話路);由于HPI接口為公用緩沖區接入方式,在處理器轉發性能足夠的情況下,只要HPI接口話路數和TDM接口話路數的總和不超過254個即可。
這種定長的AAL2信元格式和基于FPGA的AAL2模塊已經在多項工程中得到應用,在處理大容量、多種編碼的語音類業務時表現出了良好的處理性能和較低的時延。HDL語言的設計方式提供了良好的可移植性,使AAL2模塊可以應用在多種FPGA平臺上。靈活的接口配置方式和豐富的控制手段也為應用提供了極大的便利。對于以分組交換為基礎的傳送網絡硬件設計,文中提到設計方法也具有一定的借鑒作用。
[1]陳錫生.ATM交換技術[M].北京:人民郵電出版社,2000.
[2]ITU-T Recommendation Q.2630.1 AAL Type2 Signalling Protocol(Capability Set 1),1999[S].
[3]The ATM FORU M Technical Committee:UtopiaLevel2,Version 1.0,June 1995[S].
[4]宋榮軍.AAL2交換結構的研究[J].無線電通信技術,2001,27(6):8-10.