999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MPMC的高性能DMA控制器的設(shè)計*

2017-06-01 12:19:24楊潔明趙寶峰
電子器件 2017年3期
關(guān)鍵詞:嵌入式信號設(shè)計

劉 佳,楊潔明,趙寶峰

(1.山西職業(yè)技術(shù)學(xué)院電子信息工程系,太原 030006;2.太原理工大學(xué)機械工程學(xué)院,太原 030024;3.太原理工大學(xué)礦業(yè)工程學(xué)院,太原 030024)

基于MPMC的高性能DMA控制器的設(shè)計*

劉 佳1,2,楊潔明2,趙寶峰3*

(1.山西職業(yè)技術(shù)學(xué)院電子信息工程系,太原 030006;2.太原理工大學(xué)機械工程學(xué)院,太原 030024;3.太原理工大學(xué)礦業(yè)工程學(xué)院,太原 030024)

依據(jù)ATA6協(xié)議,在FPGA上設(shè)計對IDE硬盤的控制模塊,同時使用Xilinx的多端口內(nèi)存控制器MPMC IP核,實現(xiàn)能夠訪問外部DDR2_SDRAM的NPI接口控制器。在此基礎(chǔ)上,利用嵌入式FPGA開發(fā)環(huán)境,設(shè)計頂層控制IP核,完成硬盤控制器與NPI接口的有效銜接。在MicroBlaze的控制下,數(shù)據(jù)在硬盤與DDR2_SDRAM之間直接高速傳輸,實現(xiàn)了高性能DMA控制器的功能,從而提高了主機CPU利用率。設(shè)計在Xilinx的XUPV5_LX110T開發(fā)平臺得到了驗證。

ATA硬盤;FPGA;MPMC;NPI接口

嵌入式系統(tǒng)蓬勃發(fā)展,而基于FPGA的可配置嵌入式系統(tǒng)開發(fā)技術(shù)[1]不僅滿足了嵌入式系統(tǒng)要求,而且降低了設(shè)計難度、縮短了開發(fā)周期[2]。但由于嵌入式FPGA片內(nèi)資源有限,使得片內(nèi)系統(tǒng)與外設(shè)的大量數(shù)據(jù)交換成為限制系統(tǒng)性能的因素。為解決這一問題,本文在ATA6協(xié)議的基礎(chǔ)上,借助FPGA開發(fā)板的通用IO端口[3],利用Xilinx公司提供的多端口內(nèi)存控制器MPMC(Multi-Port Memory Controller)IP核[4],設(shè)計了一款高性能的DMA IDE硬盤控制器,在此基礎(chǔ)上,在Xilinx嵌入式開發(fā)平臺XPS下設(shè)計頂層控制IP核模塊,使Microblaze處理器能夠通過PLB總線將讀寫命令發(fā)送給頂層控制模塊,有效調(diào)度底層接口,實現(xiàn)IDE硬盤數(shù)據(jù)與DDR2_SDRAM進行DMA操作[5],從而提高系統(tǒng)處理數(shù)據(jù)的速度,增強系統(tǒng)性能。

1 系統(tǒng)介紹

本文中FPGA開發(fā)板選用采用Xilinx的XUPV5_LX110T[6],包含兩片Xilinx XCF32P Platform Flash PROMs(32 Mbyte each)和可配置64位的256 Mbyte DDR2 SODIMM外部存儲器、IO端口等設(shè)備。

設(shè)計主要包括3個模塊:頂層控制IP核接口模塊、NPI接口控制模塊、IDE硬盤控制器模塊。總體框架如圖1所示。

圖1 系統(tǒng)結(jié)構(gòu)

圖1中,NPI接口控制模塊實現(xiàn)與外部DDR2_SDRAM的數(shù)據(jù)傳輸,ATA硬盤控制器模塊實現(xiàn)對IDE硬盤的操作,頂層控制模塊接收來自PLB總線的命令,同時實現(xiàn)對ATA硬盤控制器和NPI接口控制器的有效銜接。

在XPS環(huán)境下,搭建基于32位的MicroBlaze處理器的嵌入式FPGA系統(tǒng),并添加MPMC IP核及DDR2_SDRAM、串口等外部設(shè)備,PLB總線等設(shè)備由系統(tǒng)自動生成。系統(tǒng)搭建時需要配置MPMC,將PORT0配置成PLB總線接口,將PORT1配置成NPI接口,并讀寫模式設(shè)置成SRL,內(nèi)存選擇板上型號為mt4htf3264-53e的256M DDR2_SDRAM。

2 DMA控制器功能模塊的設(shè)計

2.1 ATA硬盤控制器模塊

硬盤控制器主要是在分析ATA-6協(xié)議[7]基礎(chǔ)上,實現(xiàn)對指令接收及解析、硬盤訪問時序控制、系統(tǒng)監(jiān)控及差錯處理、傳輸數(shù)據(jù)以及CRC校驗等操作。

ATA硬盤控制器控制的接口寄存器及信號包括:

(1)命令塊寄存器,主機通過該寄存器讀取設(shè)備的狀態(tài)或向設(shè)備傳輸命令,其主要包括:柱面號高(Cylinder High)8位寄存器、柱面號低(Cylinder Low)8位寄存器、設(shè)備/磁頭(Device/Head)寄存器、扇區(qū)數(shù)(Sector Count)寄存器、扇區(qū)號(Sector Number)寄存器、命令(Command)寄存器、狀態(tài)(Status)寄存器、特征(Features)寄存器、錯誤(Error)寄存器、數(shù)據(jù)(Data)寄存器。

(2)控制塊寄存器,該寄存器主要用來替換狀態(tài)或控制設(shè)備,其主要包括:設(shè)備控制(Device Control)寄存器、備用狀態(tài)(Alternate Status)寄存器、驅(qū)動器地址(Drive Address)寄存器。

(3)ATA控制器接口信號包括:選擇控制寄存器或是設(shè)備寄存器CS(1:0);寄存器或數(shù)據(jù)端口選擇信號DA(2:0);雙向8 bit或16 bit數(shù)據(jù)端口DD(15:0);寄存器讀、主機準備好數(shù)據(jù)傳輸、主機向設(shè)備傳輸UDMA數(shù)據(jù)控制信號DIOR_/HDMARDY_/HSTROBE;寄存器寫、終止UDMA數(shù)據(jù)傳輸控制信號DIOW_/STOP;主機響應(yīng)設(shè)備DMARQ請求信號DMACK_;設(shè)備準備好與主機傳輸數(shù)據(jù)DMARQ;設(shè)備數(shù)據(jù)傳輸控制、設(shè)備聲明準備好接收數(shù)據(jù)以及設(shè)備控制UDMA數(shù)據(jù)到主機信號IORDY/DDMARY_/DSTROBE;主機對設(shè)備進行硬件復(fù)位信號RESET。圖2為硬盤控制器模塊。

命令解析模塊監(jiān)控并接收上層發(fā)送的命令代碼,然后將指令所需的基本參數(shù)鎖存并對硬盤進行相應(yīng)操作,本設(shè)計采用100 MHz的系統(tǒng)時鐘。ATA硬盤控制器的主要控制模塊為硬盤訪問控制模塊,其主要包括數(shù)據(jù)傳輸控制和硬盤寄存器讀寫控制兩部分。

圖2 硬盤控制器模塊

CRC校驗?zāi)K用來判斷傳輸數(shù)據(jù)的可靠性,在本設(shè)計中利用16位的CRC校驗算法來實現(xiàn),差錯監(jiān)控模塊實現(xiàn)指令執(zhí)行錯誤等異常情況的處理。片內(nèi)BRAM實現(xiàn)數(shù)據(jù)讀寫雙向緩存,并與NPI接口相連,實現(xiàn)與NPI控制器的數(shù)據(jù)傳輸。

2.2 NPI接口控制器模塊

NPI控制模塊采用64-bit數(shù)據(jù)端口[8],通過端口實現(xiàn)與MPMC和ATA控制器的BRAM連接,從而實現(xiàn)與外部DDR2_SDRAM的數(shù)據(jù)批量交換。接口模塊如圖3所示。NPI控制模塊一次請求傳輸64-word的數(shù)據(jù),即傳輸數(shù)據(jù)256 byte,32-bit的地址請求寬度,滿足64-word對齊,可訪問4GB的內(nèi)存空間,時鐘采用200 MHz的MPMC的基準時鐘。

圖3 NPI接口控制器模塊

NPI接口的主要信號端口包括:讀寫請求的內(nèi)存起始地址PIM_Addr(31:0);讀寫操作請求信號PIM_AddrReq;讀寫標志信號PIM_RNW;單周期傳輸數(shù)據(jù)量標志PIM_Size(2:0);MPMC初始化完成標志信號PIM_InitDone;請求應(yīng)答信號PIM_AddrAck;待寫入內(nèi)存的64位數(shù)據(jù)信號PIM_WrFIFO_DATA(63:0);寫數(shù)據(jù)有效字節(jié)標志PIM_WrFIFO_BE(7:0);寫數(shù)據(jù)使能信號PIM_WrFIFO_Push;寫MPMC緩沖區(qū)數(shù)據(jù)小于一個數(shù)據(jù)寬度標志信號PIM_WrFIFO_EMPTY;讀數(shù)據(jù)使能標志信號PIM_RdFIFO_POP;讀數(shù)據(jù)PIM_RdFIFO_DATA(63:0);讀內(nèi)存請求起始地址PIM_RdFIFO_Addr(31:0);讀MPMC緩存區(qū)少于一個數(shù)據(jù)寬度標志信號PIM_RdFIFO_EMPTY;讀數(shù)據(jù)輸出延時時間參數(shù)PIM_RdFIFO_Latency(1:0)等。

2.3 頂層控制IP核模塊

頂層控制IP核模塊[9]一方面實現(xiàn)了PLB從設(shè)備的總線接口[10],使處理器能夠通過寄存器方式訪問用戶IP核,另一方面實現(xiàn)對ATA硬盤控制器以及對NPI接口控制器的有效調(diào)度[11],完成處理器的指令請求。內(nèi)部結(jié)構(gòu)如圖4所示。

圖4 頂層控制IP核模塊

PLB總線接口模塊[12]參照PLB總線標準接收來自處理器的相關(guān)請求,并反饋底層模塊的當前狀態(tài)給主要,主要是以寄存器方式訪問自定義IP核,采用32-bit數(shù)據(jù)寬度,時鐘頻率為系統(tǒng)總線時鐘100 MHz,在接收到處理器指令后,將參數(shù)和命令交給任務(wù)控制模塊,由任務(wù)控制模塊觸發(fā)底層時序控制模塊實現(xiàn)本次數(shù)據(jù)交換任務(wù)。通過以上分析,讀寫硬盤一個扇區(qū)的數(shù)據(jù)需要的時間為兩個NPI傳送周期,處理器讀寫n個扇區(qū)的數(shù)據(jù)需要2n個NPI傳送周期。

圖5 讀硬盤扇區(qū)波形圖

下面列出處理器測試的C語言代碼,通過PLB總線將指令及參數(shù)發(fā)送給自定義IP核,完成DDR與硬盤之間的數(shù)據(jù)傳輸。

u32*addra=(Xuint32*)XPAR_ATA_IP_0_BASEADDR;

u8*addrb=(Xuint8*)XPAR_DDR2_SDRAM_MPMC_BASEADDR;

int status;

xil_printf("read status:%x ",addr[0]);//打印系統(tǒng)狀態(tài)

addra[6]=0x55;//軟件復(fù)位系統(tǒng)(自定義指令)

addra[6]=0xAA;//硬件復(fù)位系統(tǒng)(自定義指令)

addra[0]=0x0;//傳送數(shù)據(jù)讀入到內(nèi)存地址參數(shù)

addra[1]=0x1;//傳送扇區(qū)數(shù)參數(shù)

addra[2]=0x0;//傳送硬盤設(shè)備號

addra[3]=0x0;//傳送LBA0參數(shù)

addra[4]=0x0;//傳送LBA1參數(shù)

addra[5]=0x0;//傳送LBA2參數(shù)

addra[6]=0xca;//傳送讀命令

while(addr[0]!=0){asm("nop");}//等待讀命令完成

for(j=0;j<2;j++){

for(i=0;i<256;i++){

addrb[j*256+i]=i;}

}//寫一個扇區(qū)數(shù)據(jù)到DDR2_SDRAM

addra[0]=0x0;傳送需要寫入硬盤數(shù)據(jù)的內(nèi)存地址參數(shù)

addra[1]=0x1;

addra[2]=0x0;

addra[3]=0x10;

addra[4]=0x0;

addra[5]=0x0;

addra[6]=0xca;//傳送寫命令

3 功能測試與驗證

設(shè)計采用Xilinx的XUPV5_LX110T 開發(fā)板進行驗證,分為模塊驗證與系統(tǒng)驗證。ATA硬盤控制器在ISE10.1下進行驗證,NPI接口及后續(xù)的系統(tǒng)驗證在嵌入式開發(fā)環(huán)境EDK10.1下進行。在ISE10.1下用ChipScope Pro抓到的讀硬盤扇區(qū)數(shù)據(jù)的信號波形圖如圖5所示。

從邏輯0扇區(qū)的數(shù)據(jù)標志AA55及信號變化可以看出,ATA控制器讀扇區(qū)正常,通過其他的反復(fù)讀寫測試,硬盤控制器模塊能夠正確讀寫硬盤扇區(qū)。

在EDK10.1下,測試NPI接口,寫入32個64-bit數(shù)據(jù),然后讀出,如圖6所示。

系統(tǒng)測試采用C語言程序?qū)?shù)據(jù)寫入內(nèi)存某地址,然后向PLB總線發(fā)送寫硬盤指令和參數(shù)將數(shù)據(jù)寫入硬盤,再通過向PLB總線發(fā)送讀硬盤指令及參數(shù),將寫入的數(shù)據(jù)讀到內(nèi)存的其他地址,通過串口顯示內(nèi)存中的數(shù)據(jù),進行對比數(shù)據(jù)一致,誤碼率較低。數(shù)據(jù)最高讀寫速度為66 Mbyte/s,同時控制器能與多種型號硬盤連接進行數(shù)據(jù)傳輸,性能穩(wěn)定。

圖6 寫MPMC時序波形圖

圖7 讀MPMC時序波形圖

4 總結(jié)

通過驗證,基于MPMC的DMA硬盤控制器總體能夠在MicroBlaze處理器的控制下完成硬盤數(shù)據(jù)直接與DDR2_SDRAM的數(shù)據(jù)交換,大大提高了系統(tǒng)處理數(shù)據(jù)的能力,有效節(jié)省了CPU資源,有很好的實用前景。

[1] 趙峰,馬迪銘,孫煒. FPGA上的嵌入式系統(tǒng)設(shè)計實例[M]. 西安:電子科技大學(xué),2008:43-58.

[2] 方傳杰,朱健,房志東. 高速實時數(shù)據(jù)采集智能控制器的設(shè)計與實現(xiàn)[J]. 電子技術(shù),2014(5):28-30.

[3] 陳方. 專用USB接口仿真與測試[D]. 北京:北京交通大學(xué),2015.

[4] 張威. FPGA中個人云存儲系統(tǒng)的設(shè)計與研究[D]. 太原:太原理工大學(xué),2014.

[5] 劉喬壽,張毅. SPCE061A與IDE硬盤之間的數(shù)據(jù)接口[J]. 信息技術(shù),2015(12):51-53.

[6] 儲昭賢,施慧彬. 基于FPGA的16位堆棧處理器的設(shè)計[J]. 微電子學(xué)與計算機,2012(2):23-26.

[7] 黃夢玲,翟正軍,索曉杰. ATA總線控制器接口在固態(tài)硬盤中的應(yīng)用[J]. 計算機測量與控制,2013(7):1976-1977.

[8] 范曉星,席鵬飛,孟琪. 基于EDK的高速數(shù)據(jù)收發(fā)嵌入式用戶IP核設(shè)計[J]. 電子科技,2015(2):165-168.

[9] 彭維. 基于PLB總線的用戶IP核接口技術(shù)研究[D]. 合肥:合肥工業(yè)大學(xué),2011.

[10] 張興堂. 基于FPGA的智能網(wǎng)絡(luò)接口設(shè)計[J]. 計算機測量與控制,2014(6):1884-1886.

[11] 彭宇,仲雪潔,王少軍. 基于FPGA線性方程組的存儲優(yōu)化設(shè)計[J]. 計算機工程,2013(4):287-290.

[12] 徐向前,劉新杰,羅歡. 基于FPGA的混沌序列發(fā)生器的設(shè)計[J]. 電子世界,2014(1):153-155.

Design of High-Performance DMA Controller Based on MPMC*

LIUJia1,2,YANGJieming2,ZHAOBaofeng3*

(1.Electronic Information Engineering Department,Shanxi Polytechnic College,Taiyuan 030006,China;2.College of Mechanical Engineering,Taiyuan University of Technology,Taiyuan 030024,China;3.College of Mining Engineering,Taiyuan University of Technology,Taiyuan 030024,China)

According to ATA6 protocol,the control module to IDE hard disk is achieved on FPGA,and using the MPMC IP core of Xilinx,the NPI interface controller is designed that can access the external DDR2_SDRAM. Utilizing embedded FPGA development environment and designing top control IP cores,the effective connection between hard disk controller and NPI interface is completed. Then direct fast data transmission between hard disk and DDR2_SDRAM is implemented under MicroBlaze control. Implementing the high-performance DMA Controller,increasing the host’s CPU utilization,the design is verified on Xilinx XUPV5_LX110T development platform.

ATA hard disk;FPGA;MPMC;NPI interface

項目來源:國家自然科學(xué)基金青年科學(xué)基金項目(61303207);教育部2012年高等學(xué)校博士學(xué)科點專項科研基金聯(lián)合課題項目(20121402120020);山西省科學(xué)技術(shù)發(fā)展項目工業(yè)部分(20120321024-01)

2016-07-25 修改日期:2016-11-29

TP319

A

1005-9490(2017)03-0626-05

C:7200

10.3969/j.issn.1005-9490.2017.03.022

猜你喜歡
嵌入式信號設(shè)計
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
瞞天過海——仿生設(shè)計萌到家
基于FPGA的多功能信號發(fā)生器的設(shè)計
電子制作(2018年11期)2018-08-04 03:25:42
搭建基于Qt的嵌入式開發(fā)平臺
設(shè)計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
基于LabVIEW的力加載信號采集與PID控制
Altera加入嵌入式視覺聯(lián)盟
主站蜘蛛池模板: 久久a毛片| 国产超薄肉色丝袜网站| 欧美一级夜夜爽| 欧美亚洲欧美| 天天色综合4| 亚洲天堂网站在线| 久久精品视频一| 免费国产一级 片内射老| 国产区免费精品视频| 国产午夜福利在线小视频| 3344在线观看无码| 71pao成人国产永久免费视频| 成人免费黄色小视频| 亚瑟天堂久久一区二区影院| 欧美成人免费午夜全| 永久在线播放| 一级福利视频| 99久久无色码中文字幕| 免费一级α片在线观看| 草草线在成年免费视频2| 天天激情综合| 国产成人啪视频一区二区三区| 欧美激情成人网| 高清久久精品亚洲日韩Av| 91小视频在线观看| 99精品在线视频观看| 福利在线不卡| 黄色在线不卡| 国产精品一区在线观看你懂的| 日本在线视频免费| 日韩123欧美字幕| 综合久久五月天| 在线亚洲精品自拍| 伊人AV天堂| 91在线日韩在线播放| 在线无码av一区二区三区| 欧美一区二区啪啪| 欧美区国产区| 亚洲精品天堂在线观看| 麻豆国产精品一二三在线观看 | 国产在线精彩视频二区| 亚洲丝袜中文字幕| 亚洲国产91人成在线| 国产成人无码AV在线播放动漫| 久久久噜噜噜久久中文字幕色伊伊 | 欧美精品成人一区二区在线观看| 视频二区亚洲精品| 国产屁屁影院| 欧美一区二区三区香蕉视| yy6080理论大片一级久久| 成人福利一区二区视频在线| 精品福利视频导航| 在线永久免费观看的毛片| 激情视频综合网| 自拍偷拍欧美日韩| www.99在线观看| 在线观看免费人成视频色快速| 麻豆AV网站免费进入| 成人福利视频网| 激情無極限的亚洲一区免费| 国产99视频免费精品是看6| 99久久亚洲精品影院| 伊人91在线| 午夜精品久久久久久久无码软件| 好久久免费视频高清| 欧美一级片在线| 亚洲国产一成久久精品国产成人综合| 夜夜操国产| 亚洲欧美日韩色图| 亚洲一级毛片| 手机精品视频在线观看免费| 精品国产美女福到在线不卡f| 最新国产麻豆aⅴ精品无| 亚洲a免费| 欧美国产日产一区二区| 天天躁狠狠躁| 久久99精品国产麻豆宅宅| 热re99久久精品国99热| 国产区在线观看视频| 91久久国产综合精品女同我| 亚洲无限乱码一二三四区| 91外围女在线观看|