基于MPC8280 多通道控制器驅動的研究與實現(xiàn)
一個MCC 可以支持最多128 路獨立的時分串行通道。MPC8280 具有兩個MCC,每個MCC連接到一個SI。MCC 的數(shù)據流可以通過SI 的四個時分復用接口TDM 中的任何一個進行數(shù)據傳輸。
一個MCC 中的128 個通道以32 個為一組連接到某一個TDM 接口上。MCC1 的通道(0-127)只能連接到SI1 上,MCC2 的通道(128-255)只能連接到SI2 上。MCC 的每一個通道都可獨立配置為不同于其它通道的工作模式。通過配置SI 和SIRAM 可以將TDM 數(shù)據中的時隙路由到特定的MCC 通道。
每個MCC 都具有以下特性:最多達128 路獨立的HDLC 或者透明傳輸通道,或者64 路SS7 通道;獨立的發(fā)送和接收路由;每一通道都可支持HDLC、透明傳輸或者SS7 協(xié)議。
2 MCC 操作概述
MPC8280 的內核G2_LE 和外部的通信是由CPM 來完成。CP 根據相應的接口控制寄存器配置來執(zhí)行數(shù)據發(fā)送或接收操作,操作完成后再向G2_LE 內核的中斷寄存器寫入中斷值。
G2_LE 內核根據中斷值調用相應的中斷處理函數(shù),由此完成數(shù)據交互過程。
每一個MCC 能通過相應的SI 連接到TDM 接口上。一旦SI 的某個TDM 被配置為包含有MCC 通道的時隙并且TDM 開始工作,CP 就將MCC 通道發(fā)送緩沖區(qū)內的數(shù)據復制到發(fā)送FIFO內,然后SI 在時鐘驅動下將MCC 通道的發(fā)送FIFO 內數(shù)據發(fā)送到TDM 接口上,或者將數(shù)據從TDM 接口上接收下來并存入到MCC 通道的接收FIFO 內,然后CP 再將接收FIFO 內的數(shù)據復制到MCC 通道的接收緩存區(qū)內。
CP 通過一系列與MCC 相關的數(shù)據結構來實現(xiàn)對MCC 通道FIFO 的管理。MCC Globalparameters 管理著MCC 模塊的各個通道,以及操作這些通道所用到的門限參數(shù)和基址指針的配置。每個通道還有一組channel-specific parameters 和channel-extra parameters,包含了該通道的協(xié)議狀態(tài)信息和指向該通道的接收及發(fā)送緩存描述符的指針。
Channel-specific parameters 會因該通道所工作的協(xié)議不同而作不同的解釋。如果TDM的配置含有MCC 超通道(super-channel)時隙的話還要用到超通道表(Super-channelTable)。
● global Parameters MCC1 的global parameters 適用于通道0—127,MCC2 的global parameters 適用于通道128—255,分別位于相對于DPRAM 基址偏移0x8700 和0x8800 處。
●Channel-specific Parameters 這些參數(shù)僅局限于相應的MCC 通道,位于相對于DPRAM 基址偏移64×CH_NUM 處。
● Channel Extra Parameters 包含相應通道緩存描述符的基址和指針。位于相于對DPRAM 基址偏移XTRABASE+8×CH_NUM 處。其中XTRABASE 是MCC Global Parameters 之一。
● Super-channel Table 僅當在SIRAM 中配置了超通道時使用。位于相對于DPRAM基址偏移SCTPBASE 處。其中SCTPBASE 是MCC Global Parameters 之一。由于我們的應用場合未使用到超通道,所以未對該參數(shù)進行配置。
● BD Tables 位于外部存儲器。接收通道的緩存描述符表位于相對于DPRAM 基址偏移MCCBASE+8×RBASE 處。發(fā)送通道的緩存描述符表位于相對于DPRAM 基址偏移MCCBASE+8×TBASE 處。MCCBASE 是Global Parameters 之一,RBASE/TBASE 是Channel Extra Parameters之一。
● Interrupt Queues 位于外部存儲器。共有一個發(fā)送中斷表和一至四個接收中斷表。TINTBASE 指向發(fā)送中斷表,RINTBASE指向接收中斷表。TINTBASE 和RINTBASE均為Global Parameters。
3 MCC 驅動的設計與實現(xiàn)
該驅動運行在嵌入式操作系統(tǒng)VxWorks5.5 之上,開發(fā)環(huán)境為Tornado 2.2.1 for PPC。
評論