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

基于MPMC的高性能DMA控制器的設計*

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

劉 佳,楊潔明,趙寶峰

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

基于MPMC的高性能DMA控制器的設計*

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

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

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

ATA硬盤;FPGA;MPMC;NPI接口

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

1 系統介紹

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

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

圖1 系統結構

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

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

2 DMA控制器功能模塊的設計

2.1 ATA硬盤控制器模塊

硬盤控制器主要是在分析ATA-6協議[7]基礎上,實現對指令接收及解析、硬盤訪問時序控制、系統監控及差錯處理、傳輸數據以及CRC校驗等操作。

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

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

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

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

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

圖2 硬盤控制器模塊

CRC校驗模塊用來判斷傳輸數據的可靠性,在本設計中利用16位的CRC校驗算法來實現,差錯監控模塊實現指令執行錯誤等異常情況的處理。片內BRAM實現數據讀寫雙向緩存,并與NPI接口相連,實現與NPI控制器的數據傳輸。

2.2 NPI接口控制器模塊

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

圖3 NPI接口控制器模塊

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

2.3 頂層控制IP核模塊

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

圖4 頂層控制IP核模塊

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

圖5 讀硬盤扇區波形圖

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

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]);//打印系統狀態

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

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

addra[0]=0x0;//傳送數據讀入到內存地址參數

addra[1]=0x1;//傳送扇區數參數

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

addra[3]=0x0;//傳送LBA0參數

addra[4]=0x0;//傳送LBA1參數

addra[5]=0x0;//傳送LBA2參數

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;}

}//寫一個扇區數據到DDR2_SDRAM

addra[0]=0x0;傳送需要寫入硬盤數據的內存地址參數

addra[1]=0x1;

addra[2]=0x0;

addra[3]=0x10;

addra[4]=0x0;

addra[5]=0x0;

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

3 功能測試與驗證

設計采用Xilinx的XUPV5_LX110T 開發板進行驗證,分為模塊驗證與系統驗證。ATA硬盤控制器在ISE10.1下進行驗證,NPI接口及后續的系統驗證在嵌入式開發環境EDK10.1下進行。在ISE10.1下用ChipScope Pro抓到的讀硬盤扇區數據的信號波形圖如圖5所示。

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

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

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

圖6 寫MPMC時序波形圖

圖7 讀MPMC時序波形圖

4 總結

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

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

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

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

[4] 張威. FPGA中個人云存儲系統的設計與研究[D]. 太原:太原理工大學,2014.

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

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

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

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

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

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

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

[12] 徐向前,劉新杰,羅歡. 基于FPGA的混沌序列發生器的設計[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

項目來源:國家自然科學基金青年科學基金項目(61303207);教育部2012年高等學校博士學科點專項科研基金聯合課題項目(20121402120020);山西省科學技術發展項目工業部分(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

猜你喜歡
嵌入式信號設計
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
基于FPGA的多功能信號發生器的設計
電子制作(2018年11期)2018-08-04 03:25:42
搭建基于Qt的嵌入式開發平臺
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
基于LabVIEW的力加載信號采集與PID控制
Altera加入嵌入式視覺聯盟
主站蜘蛛池模板: 亚洲AV无码久久精品色欲| www欧美在线观看| 国产精品久久久久无码网站| 国产精品手机视频一区二区| 国产精品入口麻豆| 精品无码一区二区在线观看| 午夜毛片免费观看视频 | 国产精彩视频在线观看| 国产精品三区四区| 久久综合色播五月男人的天堂| 久久黄色一级视频| 久久人人爽人人爽人人片aV东京热| 国产精品网址你懂的| 亚洲IV视频免费在线光看| 毛片网站在线播放| 日韩在线中文| 国产最爽的乱婬视频国语对白| 一本综合久久| 国产精品一区在线麻豆| 一级毛片无毒不卡直接观看| 国产成人无码久久久久毛片| 久久精品国产一区二区小说| 亚洲国产天堂久久综合226114| 91福利片| 成年午夜精品久久精品| 草逼视频国产| 亚洲国产欧美中日韩成人综合视频| 亚洲综合第一页| 亚洲av无码片一区二区三区| 国产精品性| 91成人精品视频| 凹凸国产分类在线观看| 伊人激情综合| 国产在线97| 欧美在线中文字幕| 国产无码性爱一区二区三区| 日本不卡在线视频| 免费视频在线2021入口| 精品第一国产综合精品Aⅴ| 亚洲成人黄色在线| 国产天天射| 中文字幕在线欧美| 黄色一级视频欧美| 伊人天堂网| 亚洲二三区| 99精品视频播放| 自拍欧美亚洲| 国产第一色| 亚洲中文字幕23页在线| 国产精品视频a| 国产亚洲精品自在线| 国产午夜不卡| 国产精品人莉莉成在线播放| 四虎综合网| 国产视频自拍一区| 国产日韩精品一区在线不卡 | 国产高清在线观看91精品| 国产一区成人| 国产成人精品日本亚洲77美色| 久久国产免费观看| 亚洲无码精品在线播放| 欧美www在线观看| 91成人在线免费观看| 国产成人亚洲无码淙合青草| 第一区免费在线观看| 国产综合色在线视频播放线视| 看你懂的巨臀中文字幕一区二区 | 亚洲福利网址| 中文字幕无码制服中字| 香蕉eeww99国产在线观看| 国产在线小视频| 亚洲成人黄色在线| 免费在线a视频| 91小视频在线观看免费版高清| 凹凸精品免费精品视频| 幺女国产一级毛片| 久久久久夜色精品波多野结衣| 亚洲女同一区二区| 亚洲AⅤ波多系列中文字幕| 免费观看亚洲人成网站| 免费福利视频网站| 国产午夜一级毛片|