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

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

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

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

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

結(jié)語
本文設(shè)計(jì)的系統(tǒng)以MPC8280為核心,通過PCI采用DMA通道,完成底層硬件與上層軟件的數(shù)據(jù)交互,經(jīng)過軟硬件調(diào)試,在實(shí)際應(yīng)用中運(yùn)行穩(wěn)定。