<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > Nios系統基礎上的UItra DMA數據傳輸模式

Nios系統基礎上的UItra DMA數據傳輸模式

作者: 時(shí)間:2006-10-17 來(lái)源:網(wǎng)絡(luò ) 收藏

摘 要:為實(shí)現高速、大容量的數據存儲,提出一種基于硬盤(pán)Ultra 傳輸的高性?xún)r(jià)比解決方案。詳細介紹嵌入式的整體構架和各個(gè)子模塊的功能;提出一種在不改變傳輸頻率條件下,通過(guò)使用寄存囂組對不同時(shí)鐘沿數據進(jìn)行鎖存,以數據帶寬的擴展為代價(jià),完成IDE總線(xiàn)上的雙邊數據沿鎖存與內部的單邊數據沿鎖存之間的傳輸轉換;給出具體的讀/寫(xiě)操作的工作流程和相關(guān)軟件實(shí)現。
關(guān)鍵詞:Ultra 硬盤(pán)


引 言
隨著(zhù)消費類(lèi)電子,如MP3、3G手機、視頻終端以及寬帶無(wú)線(xiàn)網(wǎng)絡(luò )的普及,對大容量存儲設備的需求越來(lái)越強烈。傳統的SRAM、SDRAM以及DDR SDRAM等存儲設備的價(jià)格與容量比,遠遠比硬盤(pán)高;光存儲設備雖然更加廉價(jià),但是在便攜性上卻遠遜于硬盤(pán)解決方案?,F在硬盤(pán)廠(chǎng)商提供了各種適用于不同用途的廉價(jià)海量存儲設備,如1 in(英寸)的微硬盤(pán)可以應用于各種小巧的便攜設備中,2.5in硬盤(pán)可以應用于筆記本和移動(dòng)存儲中,3.5in硬盤(pán)可以應用于個(gè)人PC和工業(yè)自動(dòng)化中等等。


目前,硬盤(pán)支持的最為廣泛的IDE接口協(xié)議中,規定了PIO、以及Ultra DMA三種,其傳輸速率PIO多字DMAUltra DMA,如表1所列。隨著(zhù)各種多媒體應用的廣泛普及,各種設備不但要求擁有海量存儲能力,在完成各種實(shí)時(shí)業(yè)務(wù)時(shí)對數據的傳輸速率也提出了嚴格的要求。


現階段的設計研究主要集中于單邊沿鎖存數據的PIO和DMA傳輸模式。大多數設計主要用PIO模式完成控制命令的寫(xiě)入和讀取操作,采用DMA模式進(jìn)行直接內存讀取操作,提高的速率。如果在相同系統中使用Ultra DMA數據傳輸模式,則可以在不提高系統時(shí)鐘頻率的上,將系統數據傳輸速率提高l倍,極大地改善了系統性能,而不需要付出更多的硬件資源。因而硬盤(pán)的Ultra DMA數據傳輸方式在工業(yè)自動(dòng)化、Internet網(wǎng)絡(luò )、消費類(lèi)電子和各種嵌入式系統中的需求會(huì )不斷增加,有著(zhù)很好的商業(yè)前景。


1 系統介紹
該設計是在A(yíng)ltera公司推出的Nios嵌入式系統的平臺上,設計可以通過(guò)Ultra DMA數據傳輸方式進(jìn)行高速硬盤(pán)讀寫(xiě)的接口模塊,并開(kāi)發(fā)出相應的IP核。

1.1 Nios系統結構

Nios嵌入式處理器系統通常由N1os處理器、Avalon交換結構總線(xiàn)和各種外圍設備(存儲、接口及功能模塊)的IP核三部分構成。Altera的SOPC Builder系統開(kāi)發(fā)工具可以自動(dòng)生成這些組件以及連接它們的總線(xiàn)。

Nios處理器是32位結構可配置并包含五級流水線(xiàn)的通用RISC微處理器,采用改進(jìn)的哈佛存儲器結構;處理器帶有分離的數據和程序存儲器總線(xiàn)控制,具備高速緩存、中斷處理功能。與傳統處理器相比,Nios指令系統可通過(guò)自定義指令和標準處理器選項,利用硬件來(lái)明顯提高系統性能。

Avalon交換結構總線(xiàn)是Altera開(kāi)發(fā)的用于Nios嵌入式處理器的參數化接口總線(xiàn),由l組預定義的信號組成,用這些信號可以連接1個(gè)或多個(gè)IP模塊。Altera的S0PC Builder系統開(kāi)發(fā)工具自動(dòng)地產(chǎn)生Avalon交換結構總線(xiàn)邏輯,其實(shí)現只需要極少的FPGA資源,提供完全同步的操作。


Nios嵌入式處理器系統中的各種存儲模塊、接口模塊和功能模塊等都在A(yíng)ltera的標準外圍設備庫中以IP核的方式提供使用,或是由用戶(hù)自行設計添加到庫中,以IP模塊的方式在系統中復用。

實(shí)現硬盤(pán)高速訪(fǎng)問(wèn)功能模塊的設計,實(shí)際上是在設計一個(gè)完整的IP模塊,再在A(yíng)ltera提供的SOPC Builder開(kāi)發(fā)環(huán)境的設備庫中集成該IP核,以達到設計的目的。

1.2采用Nlos軟核處理器構建系統的原因

①與其他的實(shí)現方式相比有著(zhù)更好的性能價(jià)格比。最常見(jiàn)的硬盤(pán)讀取控制和數據傳輸方式是通過(guò)單片機或是DSP來(lái)實(shí)現的,使用單片機或DSP中的PIO接口可以很方便地完成單邊沿鎖存數據的硬盤(pán)PIO和DMA數據傳輸方式,但在實(shí)現雙邊沿鎖存數據的Ultra DMA傳輸方式時(shí),必須在單片機和DSP芯片外添加額外的FPGA芯片,完成Ultra DMA雙邊沿鎖存數據到單邊沿鎖存數據的轉換,增加了系統設計的成本和復雜性。而采用Nios軟核處理器完成與硬盤(pán)的Ultra DMA傳輸方式時(shí),不需要添加任何額外的芯片,僅使用FPGA內的其他資源就可以方便地實(shí)現雙邊沿到單邊沿的轉換工作。

②與傳統的單片機或DSP實(shí)現方式相比,Nios嵌入式系統的設計與實(shí)現更加簡(jiǎn)單。從性能上來(lái)說(shuō),Nios軟核處理器與ARM、Intel等的CPU處于同一級別,都能夠滿(mǎn)足設計的需要,即使是復雜邏輯系統的設計也可以在一片Cyclone或是StratiX芯片上實(shí)現全部功能。而且通過(guò)使用Altera公司提供的SOPC Builder開(kāi)發(fā)工具,在IP復用的上可以快速開(kāi)發(fā)出完整的系統解決方案。

③與傳統的單片機或DSP實(shí)現方式相比,Nios嵌入式系統的可擴展性更好。單片機或DSP內的資源是硬件廠(chǎng)商固化在芯片內的,用戶(hù)不可能自行添加或刪減,在設計時(shí)的靈活性受到器件本身的限制;而Nios軟核處理器的所有資源都可以任意地添加或刪減,只需最終通過(guò)電纜下載到FPGA芯片內就可定制出整個(gè)系統的功能。因而在基于Nios的系統設計中,通過(guò)對設計文件的修改就可以很方便地進(jìn)行系統功能的擴展。

2 系統的硬件實(shí)現

硬件部分由Nios嵌入式系統、Nios與硬盤(pán)的接口模塊和其他外圍接口電路三部分組成,如圖1所示。其中設計的核心部分是Nios系統與硬盤(pán)接口模塊的IP核設計,主要完成數據傳輸模式的轉換,以及對硬盤(pán)的控制與操作兩部分任務(wù)。Nios嵌入式處理器系統的任務(wù)是進(jìn)行整體控制與協(xié)調,并對數據進(jìn)行處理和暫存;外圍接口電路主要用來(lái)擴充系統的功能,擴大系統的適用范圍。


Nios嵌入式處理器系統由Nios嵌入式處理器、DMA控制器、數據存儲區SDRAM、程序存儲區F1ash和Avalon總線(xiàn)構成。其中DMA控制器用于實(shí)現兩個(gè)存儲器之間,或者存儲器和外設之間,或者是兩個(gè)外設之間的直接數據傳輸。DMA模塊用于連接支持流模式傳輸的外設,并允許定長(cháng)或變長(cháng)的數據傳輸,而不需要CPU的干涉。在Ultra DMA數據傳輸的過(guò)程中,可以一次性傳輸最多256個(gè)扇區的數據,所以在系統中使用DMA控制器可以方便地在硬盤(pán)與系統中各種支持流傳輸模式的設備之間建立直通連接,提高系統的數據傳輸效率。

外圍接口電路主要用于系統功能的擴充,如Internet接口可以使系統方便地接人到網(wǎng)絡(luò )中提供諸如音樂(lè )或視頻下載、信息共享等服務(wù);串口用于與計算機或其他設備的互連;VGA接口用于視頻信號的輸出,在系統外部顯示圖像等等。

硬盤(pán)接口部分主要由接口控制邏輯、Avalon總線(xiàn)接口、FIFO和硬盤(pán)IDE接口4部分組成。其中接口控制邏輯部分用于對Nios處理器的指令進(jìn)行譯碼并執行相應的操作,控制Ultra DMA傳輸時(shí)的握手和控制信號的產(chǎn)生,協(xié)調數據傳輸過(guò)程中IDE接口的硬盤(pán)數據速率同Avalon總線(xiàn)接口速率的匹配。

FIFO用于數據的緩沖,解決Avalon總線(xiàn)和IDE接口之間的數據速率不匹配問(wèn)題。在設計中需要對硬盤(pán)UltraDMA的六種數據傳輸模式同時(shí)提供支持,而其傳輸速率卻完全不同,必須添加緩沖區用于數據的暫存。

Avalon總線(xiàn)接口用于與Nios處理器系統相連,傳輸Nios處理器的指令給控制邏輯部分,以及與系統中的其他部分在DMA控制器的協(xié)調下完成數據的傳輸。

硬盤(pán)IDE接口部分除輸出控制信號并對硬盤(pán)返回的信號做出響應外,還要完成單邊沿數據鎖存模式與雙邊沿數據鎖存模式相互轉換的任務(wù),如圖2、圖3所示。

由于Nios系統內部數據傳輸時(shí),都使用時(shí)鐘上升沿來(lái)鎖存數據;而IDE總線(xiàn)上傳輸的Ultra DMA數據,在Clock信號的上升沿和下降沿都有數據需要鎖存。因而硬盤(pán)接口部分兩側的數據,在傳輸時(shí)工作模式各不相同,需要進(jìn)行必要的緩沖和模式轉換。

數據鎖存模式轉換模塊,用于在IDE總線(xiàn)上雙邊沿鎖存數據和系統內部單邊沿鎖存數據之間進(jìn)行鎖存模式的轉換,這是系統設計的核心問(wèn)題之一。具體來(lái)說(shuō),就是在讀取硬盤(pán)數據時(shí)需要將IDE總線(xiàn)上傳輸的雙邊沿鎖存數據轉換為系統內部使用的單邊沿鎖存數據;在寫(xiě)硬盤(pán)操作時(shí)完成相反的任務(wù)。在設計時(shí)采用兩組寄存器對不同時(shí)鐘沿的信號進(jìn)行鎖存,在時(shí)鐘頻率不變的上,通過(guò)數據帶寬的擴展,完成雙邊沿到單邊沿的轉換功能;在單邊沿數據到雙邊沿數據的轉換過(guò)程中,采用相反的構架。


3 系統工作流程
系統在完成基于Ultra DMA的數據傳輸模式的硬盤(pán)訪(fǎng)問(wèn)功能時(shí),需要實(shí)現對硬盤(pán)數據通過(guò)Ultra I)MA模式進(jìn)行的讀操作和寫(xiě)操作。其具體的工作流程各不相同,主要區別在于:

①Nios系統內部的協(xié)調過(guò)程。作為系統處理核心的Nios處理器,必須向硬盤(pán)接口邏輯和DMA控制器中發(fā)送指令,使其按照設計要求執行相應的操作。向硬盤(pán)接口邏輯部分發(fā)送讀寫(xiě)硬盤(pán)的指令時(shí),需要首先命令讀操作時(shí)使用FIFO對硬盤(pán)數據進(jìn)行緩沖,在寫(xiě)操作時(shí)將FIFO中的緩沖數據發(fā)送到硬盤(pán)中完成寫(xiě)入操作;向DMA控制器部分發(fā)送指令,協(xié)調接口緩沖區FIFo和系統內存SDRAM中數據的交互過(guò)程,以完成對硬盤(pán)的讀寫(xiě)操作。

②對硬盤(pán)的讀寫(xiě)訪(fǎng)問(wèn)操作。在對硬盤(pán)進(jìn)行讀寫(xiě)操作時(shí),必須向硬盤(pán)的接口寄存器中發(fā)送DMA讀指令或寫(xiě)指令,其指令碼和操作順序也不盡相同,如圖4、圖5所示。

 


4 系統的軟件實(shí)現
在Nios SDK Shell環(huán)境下,使用帶Monitor的bootloader程序,可以在程序Debug的同時(shí)監控內部存儲器的變化,便于硬件設計的檢查和程序的調試。軟件的編寫(xiě)主要采用C語(yǔ)言,部分嵌入了匯編語(yǔ)言。整個(gè)系統軟件設計中的重點(diǎn)是以下兩部分。

(1)Nios系統內DMA控制器的編程

在DMA傳輸過(guò)程中需要完成的操作有:①配置DMA控制器;②軟件啟動(dòng)DMA外設,開(kāi)始DMA傳輸;③DMA控制器的主設備讀端口從目標地址讀取數據,主設備寫(xiě)端口向目標地址寫(xiě)入數據;④DMA傳輸結束。

這一過(guò)程中,需要向DMA控制器的寄存器中寫(xiě)入控制指令來(lái)開(kāi)啟一次數據傳輸過(guò)程。要求初始化的寄存器有:status、readaddress、wi rte£Jddress、length和contiol。之后調用系統提供的DMA子程序開(kāi)啟一次DMA操作,使用的DMA子程序有:nr_dma_opy_1_tO_rarlge(在原地址和目標地址之間,傳輸length長(cháng)度的數據,原地址固定,而目標地址在每次傳輸后增加),用于完成數據讀取操作時(shí),從FIFO緩沖區中向SDRAM里傳輸數據;nr_dma_copy_range_to_l(在原地址和目標地址之間,傳輸lengt長(cháng)度的數據,目標地址固定,而原地址在每次傳輸后增加),用于完成數據寫(xiě)操作時(shí),從SDRAM里向FIFO中緩沖數據。

(2)硬盤(pán)的DMA讀寫(xiě)命令

在對硬盤(pán)進(jìn)行讀寫(xiě)操作時(shí)須向硬盤(pán)的寄存器內寫(xiě)入DMA讀指令(或寫(xiě)指令)和相應參數后才可對硬盤(pán)中的數據進(jìn)行訪(fǎng)問(wèn)。在A(yíng)TAPI 協(xié)議中規定了READ DMA指令和WRITE DMA指令的命令格式,需要向SectorCbunt、SectorNulmber、CyclindeLow、CyblindelrHigh、Device/Head、Command寄存器中寫(xiě)入參數和命令代碼。其中讀指令的代碼是C8h、寫(xiě)指令的代碼是CAh。在寫(xiě)入命令后就可以對硬盤(pán)中的數據進(jìn)行讀寫(xiě)操作。


結 語(yǔ)
本系統使用Nios嵌入式系統在單芯片內實(shí)現了數據處理、存儲訪(fǎng)問(wèn)、數據模式轉換等多個(gè)功能。采用Altera公司提供的Quartus II 和 SOPC Builder開(kāi)發(fā)工具可以在完成接口功能設計后,快速進(jìn)行系統的集成設計和系統仿真,最終可以在A(yíng)ltera提供的Cyclone系列芯片上實(shí)現整個(gè)系統設計。對Nios處理器重新編程可以在不改變系統硬件框架的基礎上,方便地增加系統的功能和處理效率,對系統的升級和再開(kāi)發(fā)有很大的便利。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>