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