1 引言
在B-ISDN(寬帶綜合業務數字網)ATM參考模型中,AAL(ATM適配層)介于ATM層和應用程序之間,主要負責ATM層與高層間的信元轉發過程。不同的AAL支持不同的流量或服務類型。對于ATM傳輸,AAL2提供同步模式、面向連接、可變比特速率傳輸,而AAL5提供異步模式、面向連接、可變比特速率傳輸。由于AAL5的處理比AAL2簡單得多,目前大部分的網絡處理器都只支持AAL5的適配,不適合TD網絡測試儀的應用。隨著網絡的普及化和復雜化,網絡的合理架設和正常運行變得異常重要,而保障網絡的正常運行必須要從兩個方面著手。其一,網絡施工質量直接影響網絡的后續使用,所以施工質量不容忽視,必須嚴格要求,認證檢查,防患于未然。其二,網絡故障的排查至關重要,直接影響網絡的運行效率,必須追求高效率、短時間。因此網絡檢測輔助設備在網絡施工和網絡維護工作中變得越來越重要。
2 ATM控制器
ATM控制器通過Utopia2端口實現ATM和AAL適配層協議,可工作在主、從模式下。它能以155 Mb/s的全雙工速率支持AAL5、AAL2、AAL1和AAL0的分段(segmentation)與重組(SAR)功能以及CP-CS子層協議。對每個虛擬信道VC,ATM控制器的步速控制器單元APC生成信元的發送速率,以滿足CBR、VBR、ABR以及非特定速率的發送需求。APC單元采用漏斗機制調節VBR。APC單元也采用8個優先級實時控制ATM信道的發送。
3 DMA控制器
PCI橋的DMA控制器用于傳輸603e核或主機的數據塊。數據的搬移發生在PCI或者60×總線上。PCI橋的DMA模塊有4個高速的DMA通道,傳輸帶寬210 Mb/s。603e核和PCI主控器都可以初始化DMA的傳輸。DMA控制器可工作在鏈表模式或直接訪問模式。對每個傳輸段,按照裝載的描述器的信息DMA控制器開始傳輸。一旦當前段傳輸完,DMA控制器就從內存中讀取下一個描述器的信息,然后開始下一個DMA傳輸。如果當前描述器是鏈表中的最后一個,或者有錯誤發送,此進程結束。
DMA(Direct Memory Access,直接內存存?。?是所有現代電腦的重要特色,他允許不同速度的硬件裝置來溝通,而不需要依于 CPU 的大量 中斷 負載。否則,CPU 需要從 把每一片段的資料復制到 暫存器,然后把他們再次寫回到新的地方。在這個時間中,CPU 對于其他的工作來說就無法使用。 DMA 傳輸將數據從一個地址空間復制到另外一個地址空間。當 CPU 初始化這個傳輸動作,傳輸動作本身是由 DMA 控制器 來實行和完成。典型的例子就是移動一個外部內存的區塊到芯片內部更快的內存區。像是這樣的操作并沒有讓處理器工作拖延,反而可以被重新排程去處理其他的工作。DMA 傳輸對于高效能 嵌入式系統 算法和網絡是很重要的。DMA控制器框圖如圖1所示。
4 AAL2的適配
AAL2適用于傳輸低速率語音流量。AAL2分為通用部分子層(CPS)和服務特定會聚子層(SSCS)。AAL2的數據單元的分段與重組情況如圖2所示。
ATM層一個ATM信元的凈荷可以裝載一個或多個CPS包,多個CPS包在CPS子層組成CPS-PDU,多個CPS-PDU在SSSAR子層組成SSSAR-PDU,多個SSSAR-PDU最后組成一個SSSAR-SDU。圖2中的STF域表示在一個ATM信元中第一個CPS包的起始偏移位置,是一個非常重要的域。
4.1初始化模塊
初始化模塊負責將FCC1配置成ATM模式以實現ATM控制器功能,主要完成對ATM參數表、APC控制器、中斷隊列、壓縮地址映射表、以及時鐘和Utopia2的接口配置。
4.2數據發送模塊
上層應用通過API接口,API(Application Programming Interface,應用程序編程接口)是一些預先定義的函數,目的是提供應用程序與開發人員基于某軟件或硬件的以訪問一組例程的能力,而又無需訪問源碼,或理解內部工作機制的細節。API除了有應用“應用程序接口”的意思外,還特指 API的說明文檔,也稱為幫助文檔。
另外,也是美國石油協會、空氣污染指數、醫藥、空中位置指示器的英文簡稱。使用DMA通道將發送消息隊列中的數據幀發送給發送模塊,發送模塊從消息隊列中取得數據幀和其對應的通道號,將通道號寫入ATM參數表,完成TCT表、CID表、TxQD和TxBD表的初始化;將數據幀寫入發送緩存DataBuffer中,并設置該緩存所對應的TxBD(發送緩存描述符)的R(Ready)標志位。數據發送流程如圖3所示。
4.3數據接收模塊
ATM控制器收到信元后,根據從信頭中提取的VPI和VCI值在壓縮地址映射表中查找其所對應的通道號Ch_Num,如果沒有找到相匹配的通道,則將該信元丟棄。如果找到相匹配的通道,則找到接收初始配置形成的接收鏈表RCT;然后根據信元凈荷里的CID值找到接收初始配置形成的CID表、RxQD表;最后互相映射,一起找到接收初始配置形成的RxBD表,把該通道真正的消息體存儲在所對應的接收緩存中。根據接收信元是處理到的CPS子層,還是SSSAR子層,ATM控制器完成信元的重組SAR。
數據接收模塊根據觸發的接收中斷隊列條目的原因值,找到所對應的通道號,然后從該通道所對應的接收緩存中取出收到的數據幀,最后打上時間標簽等自定義頭,通過DMA通道把接收消息隊列送給API接口。
5 DMA通道驅動設計
開發中由于和底層程序交互,當底層寫滿一塊區域(共3塊)后,通過DoorBell中斷通知驅動程序。首先創建一個內核事件對象,在SerialRead中設置開始DMA時,啟動底層程序寫數據,在OnD-maReady函數中,等待事件信號,當底層數據準備好,發生DoorBell中斷時,由于硬件中斷的優先級高,所以,程序進入Isr_Irq中斷服務例程,在該函數中,判斷是DoorBell中斷后,置事件為有信號狀態,然后返回TRUE。下面給出了部分的中斷服務例程代碼:
6結束語
本系統是以MPC8280為核心,通過PCI采用DMA通道完成底層硬件與上層軟件之間的數據交互,經過軟硬件調試,在實際應用中運行穩定。
-
處理器
+關注
關注
68文章
19167瀏覽量
229153 -
控制器
+關注
關注
112文章
16206瀏覽量
177423 -
協議
+關注
關注
2文章
598瀏覽量
39181
發布評論請先 登錄
相關推薦
評論