• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于MPC8280的MCC驅(qū)動(dòng)設(shè)計(jì)

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

      楊小冬,王俊芳

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

      0 引言

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

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

      1 設(shè)計(jì)方案

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

      1.1 MPC8280硬件結(jié)構(gòu)

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

      圖1 MPC8280結(jié)構(gòu)

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

      1.2 MCC工作原理

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

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

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

      2 需要解決的問題

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

      2.1 MCC的初始化設(shè)計(jì)

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

      2.2 MCC的收發(fā)處理設(shè)計(jì)

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

      3 關(guān)鍵技術(shù)

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

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

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

      圖2 MCC初始化流程

      MCC初始化需要注意以下幾點(diǎn):

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

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

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

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

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

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

      3.2.1 MCC的接收處理

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

      圖3 MCC接收處理流程

      3.2.2 MCC的發(fā)送處理

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

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

      3.2.3 中斷及任務(wù)配置

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

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

      4 性能測試結(jié)果分析

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

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

      5 結(jié)束語

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

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

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

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

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

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

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

      猜你喜歡
      處理程序驅(qū)動(dòng)程序隊(duì)列
      高速公路工程變更與計(jì)量支付處理程序的優(yōu)化方法
      隊(duì)列里的小秘密
      基于多隊(duì)列切換的SDN擁塞控制*
      軟件(2020年3期)2020-04-20 00:58:44
      在隊(duì)列里
      豐田加速駛?cè)胱詣?dòng)駕駛隊(duì)列
      基于C++的數(shù)控加工通用后處理程序的開發(fā)應(yīng)用研究
      企業(yè)危機(jī)公關(guān)管理問題分析
      地鐵直流系統(tǒng)中框架保護(hù)原理及處理程序
      驅(qū)動(dòng)程序更新與推薦
      驅(qū)動(dòng)程序更新與推薦
      贵溪市| 临西县| 南投县| 太原市| 寿宁县| 四平市| 中超| 兰州市| 临夏市| 孟村| 吉隆县| 资中县| 吉林市| 垦利县| 兴城市| 拉萨市| 东乡| 乐安县| 信宜市| 南靖县| 伊春市| 天水市| 通江县| 克什克腾旗| 临猗县| 马公市| 阿合奇县| 逊克县| 海林市| 秦安县| 阜平县| 张家港市| 临城县| 公主岭市| 鄯善县| 丰顺县| 大姚县| 唐山市| 杂多县| 历史| 彰化县|