摘要:本文介紹了TD-SCDMA網絡測試儀中基于PowerPC8280的AAL2適配與DMA傳輸的實現方案,重點說明了如何實現AAL2適配,以及如何利用PCI的DMA傳輸完成上層應用與底層硬件的數據交互。實際使用表明,本文提出的數據采集卡已經成功地對ATM協議的AAL2適配和DMA傳輸進行了正確處理,具有很大的實用價值。
關鍵詞:MPC8280;AAL2;UTOPIA;TD-SCDMA;DMA
引言
在B-ISDN ATM參考模型中,ATM適配層AAL介于ATM層和應用程序之間,主要負責ATM層與高層之間的信元轉發過程。從應用程序收到特定的服務數據單元后,AAL適配層將數據變成標準的協議數據單元,然后送到ATM層,經過ATM層分割演變成一個一個的ATM信元;從ATM層收到原始的ATM信元后,AAL適配層根據ATM協議按照一定的規則把這些信元適配成一個標準的協議數據單:元,然后送給應用程序,變成上層能夠辨識的格式。上述操作稱之為ATM的分段與重組,它是AAL的主要任務。不同的AAL支持不同的流量或服務類型。對于ATM傳輸,AAL2提供同步模式、面向連接、可變比特速率傳輸,AAL5提供異步模式、面向連接、可變比特速率傳輸。在TD-SCDMA網絡中,ATM適配層AAL5用于傳輸所有控制協議和Iu接口的PS域用戶數據,除此之外的其他接口用戶數據的傳輸都使用AAL2。由于AAL5的處理相對于AAL2來說要簡單得多,目前大部分的網絡處理器都只是支持AAL5的適配。MPC8280芯片不僅支持AAL5,還能實現AAL2的適配,本文詳細介紹了MPC8280對AAL2的處理機制,以及PCI DMA驅動軟件的實現。

硬件結構介紹
硬件電路主要包括MPC8280通信微處理器、接口電路、存儲器電路和時鐘/復位/調試電路幾部分。硬件結構框圖如圖1所示。MPC8280的ATM控制器完成AAL和ATM層的功能。ATM控制器通過UTOPIA2和物理傳輸設備接口,可使用8/16bit數據寬度提供155Mbit/s的傳輸速率。收發ATM信元所需的數據緩存和相關數據結構放在外部SDRAM中,SDRAM使用LocalBus總線以提高CP(通信處理器)對數據的訪問速度,減小CPU的額外開銷。MPC8280的波特率生成器BRG5為FCC和APC(自動步長控制單元)提供收發和驅動時鐘。FLASH主要完成BootLoad和BSP(板級開發包)、底層驅動程序的存儲,完成底層系統的加載。MPC8280通過DMA通道實現與PCI橋的通信,完成底層與上層應用的數據傳遞。上層應用通過PCI橋的驅動接口函數API得到數據幀后,通過DMA通道發送消息隊列傳給ATM底層驅動軟件,驅動軟件將數據幀進行AAL和ATM層協議處理后以ATM信元的格式通過UTOPIA2接口送給物理層設備,完成TD-SCDMA網絡測試儀的仿真功能。反之,驅動將從物理層設備送來的ATM信元重組之后通過接收消息隊列通過DMA通道,利用接口函數傳給上層應用,進行消息的解碼和合成,完成TD-SCDMA網絡測試儀的監測功能。

ATM控制器
ATM控制器通過使用Utopia2口實現ATM和AAL適配層協議,工作在主、從模式。它以155Mbit/s的全雙工速率支持AAL5、AAL2、AAL1和AAL0的分段(segmentation)與重組(SAR)功能,以及CP-CS子層協議。對每個虛擬信道VC,控制器的ATM步速控制器單元APC生成信元的發送速率,用以滿足CBR、VBR、ABR以及非特定速率的發送需求。為了調節VBR,APC單元采用漏斗機制。APC單元也采用8個優先級別來實時控制ATM信道的發送。ATM控制器執行ATM論壇(UNI-4.0)ABR流控技術,為了實現反饋速率的適配,它可以生成前向和后向資源管理信元RM和ATM論壇規定的浮點運算。ABR的流控由硬件和芯片固件來調整引入RM信元帶來的潛在延遲,不需要軟件干預。

DMA控制器
PCI橋的DMA控制器用于傳輸603e核或者主機的數據塊。數據的搬移發生在PCI或者60x總線上。PCI橋的DMA模塊有4個高速的DMA通道,傳輸帶寬每秒210M字節。這4個信道共同分享144個字節的DMA專用緩沖空間,用于數據的集中和發送。603e核和PCI主控器都可以初始化DMA的傳輸。DMA控制器可以工作在鏈表或者直接訪問模式。在直接模式,DMA控制器并不是直接從內存中去讀鏈表描述器,而是使用DMA寄存器中的當前參數去開始DMA傳輸。當在字節統計寄存器中定義的所有字節都傳輸完成,或者傳輸錯誤發生時,DMA傳輸結束。在鏈表模式,DMA控制器在DMA傳輸之前首先從內存中裝載鏈表描述器。對每個傳輸段,按照裝載的描述器的信息DMA控制器開始傳輸。一旦當前段傳輸完,DMA控制器就從內存中讀下一個描述器的信息,然后開始下一個DMA傳輸。如果當前描述器是鏈表中的最后一個,或者有錯誤發送,那么此進程就結束。

AAL2的適配
AAL2適用于傳輸低速率語音流量。AAL 2又被分為通用部分子層(CPS,Common Part Sublayer)和服務特定會聚子層(SSCS,Service Specific ConvergenceSublayer)。圖3詳細地介紹了AAL2的數據單元的分段與重組情況。在ATM層一個ATM信元的凈荷可以裝載一個或者多個CPS包,多個CPS包在CPS子層就組成了CPS-PDU,多個CPS-PDU在SSSAR子層就組成了SSSAR-PDU,多個SSSAR-PDU最后就組成了一個SSSAR-SDU。在圖2中的STF域表示在一個ATM信元中第一個CPS包的起始偏移位置,這是一個非常重要的域。
AAL2的適配模塊由初始化模塊、數據接收模塊、數據發送模塊組成。下面分別給以介紹:

結語
本文設計的系統以MPC8280為核心,通過PCI采用DMA通道,完成底層硬件與上層軟件的數據交互,經過軟硬件調試,在實際應用中運行穩定。