亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于MPC8280的MCC驅(qū)動設計

        2012-01-14 06:12:12楊小冬王俊芳
        無線電工程 2012年9期
        關鍵詞:處理程序驅(qū)動程序隊列

        楊小冬,王俊芳

        (中國電子科技集團公司第五十四研究所,河北石家莊050081)

        0 引言

        MPC8280具有強大的接口能力和多協(xié)議支持功能,非常適用于高端網(wǎng)絡和通訊設備[1]。HDLC協(xié)議是重要的數(shù)據(jù)鏈路層協(xié)議,通過一次群(E1)中繼傳輸HDLC數(shù)據(jù)包是數(shù)據(jù)傳輸?shù)闹匾绞健?/p>

        MPC8280應用中對外提供5個E1接口,信令和業(yè)務使用HDLC協(xié)議封裝后通過E1中繼傳輸。支持 8個時分復用(Time Division Multiplexing,TDM)接口,并且MCC支持HDLC協(xié)議,通過管腳規(guī)劃可以利用2個MCC的5個TDM實現(xiàn)設計功能,既節(jié)約了開發(fā)成本又縮短了開發(fā)周期。

        1 設計方案

        高性能處理器MPC8280內(nèi)含指令單元和指令執(zhí)行單元,是程序的執(zhí)行單元;完成對TDM數(shù)據(jù)流的HDLC格式封裝,以及對其他模塊的初始化和配置等。

        1.1 MPC8280硬件結構

        MPC8280結構框圖如圖1所示。MPC8280采用MPC603e內(nèi)核和通信處理器模塊(Communication Processor Module,CPM)的雙內(nèi)核結構,CPM減少了MPC603e內(nèi)核對底層通信任務的干預,從而提高了MPC603e內(nèi)核的工作效率[2]。

        圖1 MPC8280結構

        MPC8280內(nèi)部結構包含3個主要功能模塊:具有內(nèi)存控制單元和緩存的64位內(nèi)核MPC603e、系統(tǒng)接口單元(System Interface Unit,SIU)和 CPM。MPC603e具有16 KB的指令緩存和16 KB的數(shù)據(jù)緩存,執(zhí)行高層代碼,完成對外設的控制管理。SIU完成系統(tǒng)復位、中斷管理、時鐘配置、總線接口和內(nèi)存控制。CPM處理底層的通信任務,包括1個32位的精簡指令集處理器、2個MCC、3個快速通信控制器(Fast Communications Controller,F(xiàn)CC)、4 個串行通信控制器(Serial Communications Controller,SCC)、2個串行管理控制器(Serial Management Controller,SMC)、1個串行外設接口(Serial Peripheral Interface,SPI)和 1個集成電路互連(Inter-Integrated Circuit,I2C)總線控制器等。時隙分配器(Time Slot Assigner,TSA)完成路由選擇和時分復用,將MCC、FCC、SCC和SMC等連接到物理層的TDM管腳,將數(shù)據(jù)復用到8個TDM接口。

        1.2 MCC工作原理

        MPC8280具有 2個 MCC,分別為 MCC1和MCC2,每個MCC支持128條獨立的時分串行通道,每個通道都可以獨立配置為不同于其他通道的工作模式。每個MCC連接到相應的串行接口(Serial Interface,SI),分別為 SI1和 SI2,MCC1的通道(0~127)只能連接到SI1上,MCC2的通道(128~255)只能連接到SI2上[3]。通過配置SI和串行接口隨機存儲器(Serial Interface RAM,SIRAM)可以將TDM數(shù)據(jù)中的時隙路由到特定的MCC通道。

        CPM通過一系列與MCC相關的數(shù)據(jù)結構實現(xiàn)對數(shù)據(jù)的處理。全局參數(shù)對MCC通道狀態(tài)進行全局管理,設定通道的接收門限和寄存器的基地址;通道參數(shù)用于設置單個通道發(fā)送數(shù)據(jù)、接收數(shù)據(jù)的相關寄存器及方式,對MCC通道的先進先出存儲器(First In First Out,F(xiàn)IFO)進行管理;外部參數(shù)設置單個通道發(fā)送緩存描述符(Transmit Buffer Descriptor,TxBD)表、接收緩存描述符(ReceiveBuffer Descriptor,RxBD)表的基地址和指針,用于緩存描述符(Buffer Descriptor,BD)表的索引。BD由狀態(tài)控制字、數(shù)據(jù)長度和數(shù)據(jù)緩存指針3個部分組成,MCC根據(jù)BD提供的信息對緩存區(qū)進行訪問和操作。

        當SI的某個TDM被配置為包含有MCC通道的時隙并且TDM被使能,CPM就將MCC通道的發(fā)送緩存區(qū)內(nèi)的數(shù)據(jù)復制到發(fā)送FIFO內(nèi),然后SI在時鐘驅(qū)動下將MCC通道的發(fā)送FIFO內(nèi)的數(shù)據(jù)發(fā)送到TDM接口;或者將數(shù)據(jù)從TDM接口接收下來并存入到MCC通道的接收FIFO內(nèi),然后CPM再將接收FIFO內(nèi)的數(shù)據(jù)復制到MCC通道的接收緩存區(qū)內(nèi)。

        2 需要解決的問題

        由于需要使用2個MCC的5個TDM,對相關參數(shù)和資源的分配需要合理規(guī)劃。傳統(tǒng)的收發(fā)設計采用輪詢方式,雖然設計簡單,易于控制,但缺點是既增加了系統(tǒng)開銷,浪費了中央處理器(Central Processing Unit,CPU)資源,又不能及時響應事件。該設計需要解決的問題包括MCC的初始化設計和MCC收發(fā)處理設計等問題。

        2.1 MCC的初始化設計

        MCC的初始化涉及到配置位于MPC8280內(nèi)部的雙端口隨機存儲器(Dual-Port RAM,DPRAM)中的全局參數(shù)(Global MCC parameters)、通道參數(shù)(Channel-specific parameters)、外部參數(shù)(Channel extra parameters)和SIRAM等參數(shù);位于外部隨機存儲器中的BD表參數(shù)、中斷表等參數(shù);還需要配置TDM的管腳、MCC中斷的相關寄存器等參數(shù)。為了使2個MCC的5個TDM之間不相互影響,MCC的初始化需要對各個TDM進行相關參數(shù)和內(nèi)部外部資源的分配,比如時鐘、外部端口、數(shù)據(jù)緩存、參數(shù)緩存和中斷隊列等都需要對應正確。

        2.2 MCC的收發(fā)處理設計

        為了減少對系統(tǒng)資源的開銷并且能夠及時響應事件,MCC的收發(fā)處理需要解決在保證最大業(yè)務量的情況下提高CPU效率的問題。收發(fā)處理需要使用中斷和任務,中斷的優(yōu)先級較高可以保證對線路數(shù)據(jù)的及時響應,在中斷中只進行占用CPU資源較少的操作;任務分為MCC收發(fā)處理任務和收發(fā)數(shù)據(jù)處理任務,不同響應時間要求的任務需要配置為不同的優(yōu)先級。

        3 關鍵技術

        MCC驅(qū)動程序的實現(xiàn)涉及MCC的初始化實現(xiàn)和MCC的收發(fā)處理實現(xiàn)等關鍵技術。

        3.1 MCC的初始化實現(xiàn)

        MCC的初始化流程如圖2所示。

        圖2 MCC初始化流程

        MCC初始化需要注意以下幾點:

        ①SIRAM的個數(shù)設置必須是偶數(shù),并且要在最后一個SIRAM設置last entry位。

        ②設置TxBD表、RxBD表需要注意的是:初始化時應將TxBD的狀態(tài)位ready置“0”,數(shù)據(jù)長度為非零,RxBD的狀態(tài)位empty置“1”,BD表的最后一個BD的狀態(tài)位 wrap置“1”[4]。此外,由于數(shù)據(jù)是網(wǎng)際(Internet Protocol,IP)數(shù)據(jù)包,所以BD的個數(shù)不能分配太少,該設計的BD個數(shù)可以保證緩存2個IP長包。為了高效地利用有限的緩存資源,該設計采用動態(tài)分配內(nèi)存的方式獲得緩存資源。

        ③初始化MCC全局參數(shù),需要注意最大接收幀長度要合適,每個MCC對應各自的中斷隊列而且中斷隊列的大小要合適。

        ④初始化MCC的通道參數(shù),需要注意使能需要處理的各種中斷,設置MCC通道的工作模式、循環(huán)冗余校驗方式等。

        3.2 MCC的收發(fā)處理實現(xiàn)

        MCC的收發(fā)處理是通過中斷處理程序、消息隊列和任務共同配合完成的,具有處理及時和減輕CPU負擔的優(yōu)點。中斷處理程序的設計需要簡潔,盡可能減少操作;消息隊列的長度需要設置合理;任務優(yōu)先級的設置需要整體考慮,需要及時響應的任務設置為較高優(yōu)先級[5]。

        3.2.1 MCC的接收處理

        MCC的接收處理是當MCC的某個通道接收到數(shù)據(jù)后會設置MCC事件寄存器的接收中斷比特位。中斷處理程序?qū)CC的中斷信息進行封裝后發(fā)送到消息隊列。任務從消息隊列接收消息,當中斷表項有效并且接收到完整的HDLC幀,對MCC的某個通道的所有有效的RxBD進行處理,將數(shù)據(jù)的地址和數(shù)據(jù)長度通過消息隊列發(fā)送給HDLC控制器并設置RxBD的接收狀態(tài)。當所有有效的中斷表項都處理完成后,接收處理結束。MCC接收處理流程圖如圖3所示。

        圖3 MCC接收處理流程

        3.2.2 MCC的發(fā)送處理

        MCC的發(fā)送處理是當HDLC控制器需要發(fā)送數(shù)據(jù)時,將數(shù)據(jù)的地址和數(shù)據(jù)長度寫入TxBD并設置發(fā)送狀態(tài),數(shù)據(jù)發(fā)送完成后會設置MCC事件寄存器的發(fā)送中斷比特位。中斷處理程序?qū)CC的中斷信息進行封裝后發(fā)送到消息隊列。任務從消息隊列接收消息,當中斷表項有效并且發(fā)送完成1個Buffer的數(shù)據(jù),那么對MCC的某個通道的所有有效的TxBD進行處理,釋放內(nèi)存并設置TxBD的發(fā)送地址。當所有有效的中斷表項都處理完成后,發(fā)送處理結束。MCC發(fā)送處理流程圖如圖4所示。

        圖4 MCC發(fā)送處理流程

        3.2.3 中斷及任務配置

        中斷處理程序的設計盡可能減少占用CPU的操作,并且不能執(zhí)行可能導致阻塞的操作,否則可能無法及時處理其他中斷,影響其他模塊通信甚至引起CPU重啟。設計中的中斷處理程序只進行中斷信息讀取與發(fā)送消息處理等占用CPU很少的操作。

        任務優(yōu)先級的設置需要滿足的要求如下:占用CPU資源較少的任務可以設置較高的優(yōu)先級;需要響應時間較短的任務設置為較高的優(yōu)先級;高優(yōu)先級的任務可以用來響應事件,對于事件的處理可以由低優(yōu)先級的任務完成;不要設置過多的優(yōu)先級,系統(tǒng)任務為0~50,驅(qū)動程序為51~99,用戶的應用程序優(yōu)先級不要太高,為100~250,以10級為間隔劃分,為了系統(tǒng)的可擴充性,以20級為間隔劃分[6]。設計中幾乎不占用CPU資源同時又具有較高實時性要求的MCC收發(fā)處理任務設置為較高的優(yōu)先級;占用CPU資源較多的數(shù)據(jù)內(nèi)容處理任務設置為較低的優(yōu)先級。

        4 性能測試結果分析

        2臺設備通過1路E1接口互連,以計算機ping包為測試手段,對于32字節(jié)的短包和1 500 byte的長包分別進行1 800 s測試,丟包率為0。當通過5路E1接口互連,每一路都進行ping包操作,對于32 byte的短包和1 500 byte的長包分別進行1 800 s測試,丟包率<1‰。使用AX4000測試儀的以太網(wǎng)接口進行性能測試。2臺設備通過1路E1接口互連,單路 E1設置雙向 2 Mb的數(shù)據(jù)流量,對于64 byte的短包和1 500 byte的長包進行1 800 s測試,收發(fā)均正常而且丟包率為0。當通過5路E1接口互連,每一路E1設置雙向1.95 Mb的數(shù)據(jù)流量,對于64 byte的短包和1 500 byte的長包進行1 800 s測試,收發(fā)均正常而且丟包率為0。由于數(shù)據(jù)通過CPU的以太網(wǎng)接口傳送,所以證明在滿足5路E1同時處理數(shù)據(jù)時,CPU有能力處理其他模塊的業(yè)務。

        通過測試,驗證了利用2個MCC的5個TDM實現(xiàn)5路E1中繼傳輸?shù)目尚行?采用中斷處理程序、消息隊列、任務共同配合完成的MCC收發(fā)處理,能夠及時響應多路E1的處理請求,并且使CPU有能力處理其他業(yè)務請求;長時間的數(shù)據(jù)收發(fā)測試,驗證了MCC驅(qū)動程序的穩(wěn)定性和可靠性。

        5 結束語

        通過性能測試說明,利用高性能處理器MPC8280通過TDM和MCC之間的連接,并且采用中斷、消息和任務相結合的高效調(diào)度處理方式實現(xiàn)5路E1中繼傳輸是可行的,既節(jié)約了開發(fā)成本又縮短了開發(fā)周期。長時間的數(shù)據(jù)收發(fā)測試,驗證了MCC驅(qū)動程序的性能、穩(wěn)定性和可靠性。

        [1]趙宇浩.基于MPC8280的網(wǎng)絡通信平臺的實現(xiàn)[J].電子技術,2010,26(6):58-59.

        [2]王永強.基于MPC8280的嵌入式設備的通信接口驅(qū)動實現(xiàn)[D].西安:西安電子科技大學,2008:10-13.

        [3]閆宇博,張 磊,彭來獻.基于MPC8280多通道控制器驅(qū)動的研究與實現(xiàn)[J].微計算機信息,2010,76(23):177-179.

        [4]王 煉,劉喜古,徐子平,等.基于MPC8270的MCC接口HDLC驅(qū)動程序開發(fā)[J].軍事通信技術,2009,30(2):48-52.

        [5]何福永.基于VxWorks驅(qū)動程序設計方法的研究與實現(xiàn)[D].長沙:國防科學技術大學,2008:6-9.

        [6]張 楊,于銀濤.VxWorks內(nèi)核、設備驅(qū)動與BSP開發(fā)詳解[M].北京:人民郵電出版社,2009:101-105.

        猜你喜歡
        處理程序驅(qū)動程序隊列
        高速公路工程變更與計量支付處理程序的優(yōu)化方法
        隊列里的小秘密
        基于多隊列切換的SDN擁塞控制*
        軟件(2020年3期)2020-04-20 00:58:44
        在隊列里
        豐田加速駛?cè)胱詣玉{駛隊列
        基于C++的數(shù)控加工通用后處理程序的開發(fā)應用研究
        企業(yè)危機公關管理問題分析
        地鐵直流系統(tǒng)中框架保護原理及處理程序
        驅(qū)動程序更新與推薦
        驅(qū)動程序更新與推薦
        婷婷丁香91| 国产精品成人久久a级片| 99久久99久久久精品久久| 人妻丰满熟妇av一区二区| 成人久久精品人妻一区二区三区| 久久不见久久见免费视频6 | 国产乱淫h侵犯在线观看| 国产精品免费看久久久无码| 国产人妻精品一区二区三区不卡 | 熟女少妇av免费观看| 久久老熟女一区二区三区福利| 亚洲午夜久久久久久久久电影网| 久久无码av三级| 精品一区二区三区在线视频观看| 不卡av一区二区在线| 国产高清在线观看av片| 人妻 日韩精品 中文字幕| 日韩欧美在线观看成人| 最新日本久久中文字幕| 极品粉嫩嫩模大尺度无码视频| 欧洲人妻丰满av无码久久不卡 | 男人的天堂无码动漫av| 97无码人妻Va一区二区三区| 高清av一区二区三区在线| 中文字幕女优av在线| 性欧美videofree高清精品| 久久精品无码一区二区三区蜜费 | 亚洲午夜无码AV不卡| 久久精品国产亚洲av日韩精品 | 我的美艳丝袜美腿情缘| 一本加勒比hezyo无码专区| 成 人 网 站 免 费 av| 黄片在线观看大全免费视频| 九九久久精品国产免费av| 亚洲妇女无套内射精| 青春草国产视频| 日韩日本国产一区二区| 国产乡下妇女做爰| 美丽人妻被按摩中出中文字幕 | 欧美午夜a级精美理论片| 中文字幕久区久久中文字幕|