趙勇李鑫吳慧
(1中國電子科技集團公司第五十四研究所河北石家莊050081)
(2石家莊職業(yè)技術學院電氣與電子工程系河北石家莊050081)
(3石家莊信息工程職業(yè)學院河北石家莊050035)
MPC8280是Freescale公司推出的應用于通信系統(tǒng)的嵌入式通信處理器,具有非常靈活的一體化單元系統(tǒng)和外圍通信控制器。MPC8280每個MCC可支持HDLC和透明傳輸或者SS7等多種協(xié)議功能。本文就是在多通道控制器MCC工作在7號信令協(xié)議模式時,利用MPC8280處理器的MCC的中斷,并操作MCC相應的寄存器,來實現(xiàn)No.7信令的信號單元SU的接收和發(fā)送功能。
MPC8280是一款高性能通信微處理器,內(nèi)部集成了高性能精簡指令集微處理器和許多外圍通信組件,廣泛應用于高端電信和網(wǎng)絡產(chǎn)品的設計開發(fā)[1]。MPC8280的體系結(jié)構(gòu)[2]如圖1所示,主要包括3個功能模塊:嵌入式PowerPC架構(gòu)的內(nèi)核G2_LE、系統(tǒng)接口單元(SIU)模塊和通信處理模塊(CPM)。
圖1 MP C8280體系結(jié)構(gòu)框圖
G2_LE內(nèi)核提供了獨立的16 KB指令緩存和16 KB數(shù)據(jù)緩存,以及數(shù)據(jù)和指令存儲管理單元MMU,用于執(zhí)行高層代碼,完成外設的控制管理。SIU主要完成系統(tǒng)啟動和初始化、CPU復位、中斷處理、時鐘配置、控制操作及外部系統(tǒng)總線管理等功能。CPM主要完成底層的任務和DMA控制,包括一個32位的精簡指令集處理器,2個多通道控制器MCC,3個快速通信控制器FCC,4個串行通信控制器SCC,2個串行管理控制器SMC,一個串行外圍設備接口SPI,一個I2C總線控制器等[3]。時隙分配器TSA完成路由選擇和時分復用,將MCC、FCC、SCC和SMC等連接到物理層的TDM引腳上,將數(shù)據(jù)復用到8個TDM接口。
MPC8280具有2個多通道控制器MCC1和MCC2,每個MCC可以支持128路獨立的時分復用通道。每個MCC僅與一個串行接口SI相對應,并通過相應的SI模塊連接到TDM接口。MCC的數(shù)據(jù)流可以通過SI的4個時分復用接口TDM中的任何一個進行數(shù)據(jù)傳輸,MCC1的通道(0-127)只允許連接到 SI1,MCC2的通道(128-255)只允許連接到 SI2[4],MCC的每一個通道的工作模式均可獨立設置,收發(fā)關系也可以獨立映射。通過對SI和SIRAM的合理配置可以建立TDM數(shù)據(jù)中的時隙和特定的MCC通道的映射關系(如TDMA1的第2個時隙到MCC1的第3個通道,TDMB2的第1個時隙到MCC2的第5個通道等)。
MPC8280的內(nèi)核G2_LE和外部的通信是由CPM來完成。CPM根據(jù)相應的接口控制寄存器配置來執(zhí)行數(shù)據(jù)發(fā)送或接收操作,操作完成后再向G2_LE內(nèi)核的中斷寄存器寫入中斷值。G2_LE內(nèi)核根據(jù)中斷值調(diào)用相應的中斷處理函數(shù),由此完成數(shù)據(jù)交互過程。
當SI的某個TDM被配置成包含MCC通道的時隙且TDM被使能,CPM就將MCC通道發(fā)送緩沖區(qū)內(nèi)的數(shù)據(jù)復制到各指定通信控制單元發(fā)送FIFO內(nèi),然后SI在時鐘驅(qū)動下將各指定通信控制單元的FIFO內(nèi)數(shù)據(jù)發(fā)送到TDM口,或?qū)?shù)據(jù)從TDM接口上接收下來并存入到MCC通道的接收FIFO內(nèi),然后CPM再將接收FIFO內(nèi)的數(shù)據(jù)復制到MCC通道的接收緩存區(qū)內(nèi)。
CPM通過一系列與MCC相關的數(shù)據(jù)結(jié)構(gòu)來實現(xiàn)對MCC通道FIFO的管理,其中全局參數(shù)(Global MCC Parameters)對MCC模塊的全面狀態(tài)進行管理,配置通道所用到的接收門限參數(shù)和寄存器基址。通道專用參數(shù)(Channel-Specific Parameters)用于設置MCC通道工作在HDLC、透明傳輸或者SS7協(xié)議模式時的具體參數(shù)配置,對MCC通道的FIFO進行管理。通道附加參數(shù) (Channel Extra Parameters)主要用于設置單個通道發(fā)送緩存描述符(TxBD)表、接收緩存描述符(RxBD)表的基地址和指針,用于緩存描述符BD表的索引。
MCC多通道控制器驅(qū)動主要完成MPC8280 MCC多通道控制器的初始化,并為上層軟件訪問、調(diào)用提供與底層硬件無關的應用程序接口。具體內(nèi)容包括MCC控制數(shù)據(jù)結(jié)構(gòu)所需內(nèi)存空間的分配及初始化、MCC操作所需的相關控制寄存器的初始化、MCC中斷處理及MCC數(shù)據(jù)接收和發(fā)送的實現(xiàn)等關鍵技術。
MCC的初始化流程如圖2所示。
圖2 MCC的初始化流程
①分配并初始化MCC所需的數(shù)據(jù)緩沖區(qū)、緩沖區(qū)描述符BD及MCC中斷表所需的存儲空間;
②調(diào)用函數(shù)tMCCIntTable()初始化MCC循環(huán)中斷表;
③初始化緩沖區(qū)描述符BD和數(shù)據(jù)緩沖區(qū)。前一半BD用作發(fā)送BD,后一半BD用作接收BD;
④初始化SI寄存器和SIRAM,將TDM的16時隙通過SI送到MCC通道上;
⑤初始化MCC通道的全局參數(shù),全局參數(shù)位于雙端口隨機存儲器DPRAM中,MCC1的偏移地址為0x8700,MCC2的偏移地址為0x8800[5];
⑥初始化MCC的通道附加參數(shù),指明了各通道所用的收/發(fā)BD相對于BD基址的BD偏移數(shù);
⑦初始化MCC的通道為7號信令通道,該信令通道參數(shù)基址為DPRAM的起始地址[6],一個SS7信令通道參數(shù)要占用2個HDLC通道參數(shù)的存儲空間,即128個字節(jié);
⑧為MCC配置并行I/O口,對所需的接口設置時鐘和同步;
⑨配置系統(tǒng)接口單元SIU,設置MCC所需的相關中斷并將MCC中斷和中斷處理函數(shù)相關聯(lián);
⑩使能TDM。
⑴MCC的數(shù)據(jù)接收
MCC的數(shù)據(jù)接收是通過一個消息隊列和中斷處理函數(shù)相配合來完成的。MCC的數(shù)據(jù)接收處理過程如下:
①當MCC的某個通道接收到數(shù)據(jù)后會將相應寄存器的接收中斷比特位置位;
②中斷處理程序?qū)⑹盏降闹袛嘈畔⑦M行封裝后發(fā)送到消息隊列;
③數(shù)據(jù)接收任務從消息隊列接收數(shù)據(jù),然后根據(jù)MCC通道號調(diào)用相應的由用戶安裝的數(shù)據(jù)接收回調(diào)函數(shù),最后由回調(diào)函數(shù)完成數(shù)據(jù)的處理。
⑵MCC的數(shù)據(jù)發(fā)送
數(shù)據(jù)的發(fā)送過程由通信協(xié)處理器完成。MCC數(shù)據(jù)發(fā)送過程如下:
①數(shù)據(jù)發(fā)送函數(shù)將要發(fā)送的數(shù)據(jù)從內(nèi)存寫入TxBD中緩存指針所指向的緩沖區(qū),并將寄存器TxBD的相關狀態(tài)位置位;
②設置相應的控制寄存器,由通信協(xié)處理器完成數(shù)據(jù)從緩沖區(qū)到TDM接口的發(fā)送;
③數(shù)據(jù)發(fā)送完成后通信協(xié)處理器設置MCC事件中斷寄存器MCCE相應的RINT比特位;
圖3 MCC中斷處理流程圖
④由中斷處理程序通知數(shù)據(jù)發(fā)送函數(shù)數(shù)據(jù)發(fā)送已完成。
MCC中斷處理模塊工作在No.7信令工作方式下,處理來自MPC8260 MCC的中斷,并將接收到的信號單元SU以消息形式上報給No.7信令MTP2軟件,MCC中斷處理單元軟件流程如圖3所示。
MCC中斷產(chǎn)生后,首先根據(jù)MCC的事件寄存器判斷是否收到數(shù)據(jù),如果收到數(shù)據(jù),從MCCPkt_T中保存的BD號開始,讀取數(shù)據(jù)并發(fā)送給No.7信令MTP2軟件,直到?jīng)]有數(shù)據(jù)可讀為止;如果出現(xiàn)異常,進行異常處理并再次開啟中斷以保證MCC的正常接收。
設備通過E1接口與固定網(wǎng)STM交換機互連,工作在No.7信令方式下,通過呼叫模擬器Abacus5000對設備進行10,000次話音呼叫測試,呼損率小于萬分之四,滿足話音呼叫能力測試要求。通過測試,驗證了No.7信令工作方式下,利用MCC中斷接收和發(fā)送的信號單元的可行性,大量的呼叫測試,驗證了MCC驅(qū)動程序的可靠性和穩(wěn)定性。
MPC8280是一種功耗低、通信處理能力強的處理器,利用MPC8280內(nèi)部的多通道控制器MCC的大容量通信能力,可以比較容易地設計出信令通道、數(shù)據(jù)通道、協(xié)議轉(zhuǎn)換器等應用。本文介紹了MPC8280內(nèi)部的多通道控制器MCC的通信原理及驅(qū)動程序設計方法,對MCC在其他工作方式下的設計應用有一定借鑒作用。
[1]MP C8280 Power Q U I CC?II F a m il y Re f erence Manual[R].F reescale Inc,2005.
[2]Power Q U I CC II?F a m il y Hardware S p eci f ications[R].F reescale Inc,2006.
[3]楊小冬,王俊芳.基于MP C8280的MCC驅(qū)動設計[J].無線電工程,2012,42(9):61-64.
[4]閆宇博,張磊,彭來獻.基于MP C8280多通道控制器驅(qū)動的研究與實現(xiàn)[J].微計算機信息,2010,76(23):177-179.
[5]李朋銅.嵌入式設計及通信設備開發(fā)詳解—基于MP C82XX處理器[M].北京:機械工業(yè)出版社,2009.
[6]趙宇浩.基于MP C8280的網(wǎng)絡通信平臺的實現(xiàn)[J].電子技術,2010,26(6):58-59.