<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è) > EDA/PCB > 設計應用 > 基于SoPC和NIOS Ⅱ的SD卡文件系統的設計與實(shí)現

基于SoPC和NIOS Ⅱ的SD卡文件系統的設計與實(shí)現

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

SD卡中的數據是以塊為單位進(jìn)行存儲的,如果在硬件層面對其進(jìn)行操作,則不僅要非常了解SD卡的數據存儲結構,還要對FAT系統有深刻的理解,然后用復雜的時(shí)序狀態(tài)機對其扇區進(jìn)行初始化和讀取控制,對硬件直接進(jìn)行操作可以節省FPGA資源。為了更有效地組織和管理SD卡中的數據,必須采用文件的格式進(jìn)行組織數據,這就要求在SD卡中內嵌文件系統[1]。而隨著(zhù)FPGA的高速發(fā)展,以AlteraⅡ和Xilinx的MicroBlaze為代表的軟核處理器以其高可定制性、與ARM相比相同價(jià)格下的高性能得到廣泛的應用。

本文引用地址:http://dyxdggzs.com/article/189683.htm

本文正是利用其豐富的外設和接口定制構建SD卡的FAT文件系統。

1 接口和控制器的設計

1.1 接口的配置

SD卡有SD模式和SPI模式2種,SPI是一種高速、同步、全雙工的通信總線(xiàn),只占用4根信號線(xiàn),節約芯片的管腳,有利于PCB的布局。前者速度較快,后者比較方便我們采用后者SPI與FPGA進(jìn)行通信,它由4個(gè)信號組成,分別是CS(片選信號)、MOSI(主機到SD卡)、MISO(SD卡到主機)、SCLK(主機和SD卡的同步時(shí)鐘),以主從方式工作,本文中SPI為主機,SD卡是從機,處于單主單從模式。在由Ⅱ軟核處理器控制的Avalon總線(xiàn)[2-3]下可以方便地與SD卡進(jìn)行對接。Avalon總線(xiàn)是一種將片上處理器和外設連接成片上可編程()的一種簡(jiǎn)單總線(xiàn)結構,它規定了主從設備之間的結構方式及其通信方式,通過(guò)使用 Builder可以很方便地將自定義外設和其他組件組合起來(lái),生成按照組件例化的系統模塊,并自動(dòng)生成內部總線(xiàn)邏輯,自動(dòng)完成外設和存儲器的地址映射、中斷控制和總線(xiàn)控制。圖1所示為設備之間的連接示意圖,Ⅱ處理器和外設SD卡控制器的通過(guò)Avalon總線(xiàn)結構進(jìn)行數據交換和溝通,SD卡控制器控制著(zhù)外部SD卡存儲介質(zhì)。

1.2 控制器的設計

SD卡控制器[4]是FPGA和SD卡之間進(jìn)行通信的翻譯官,主要實(shí)現3大功能:(1)復位和初始化SD卡??刂破靼凑誗D卡總線(xiàn)協(xié)議產(chǎn)生控制時(shí)序對其進(jìn)行復位和初始化。

(2)讀寫(xiě)SD卡??刂破魍ㄟ^(guò)CMD線(xiàn)發(fā)送讀或者寫(xiě)的命令以及SD卡扇區地址,確認收到正確的響應后,通過(guò)DAT線(xiàn)進(jìn)行讀和寫(xiě)操作(分別涉及串并轉換和并串轉換),一次傳輸一個(gè)扇區的數據(512B),傳輸完畢后將就緒信號置為有效。

(3)設置SD卡。通過(guò)CMD線(xiàn)發(fā)送命令和參數,不發(fā)送或接受數據。

圖1設備連接示意圖

圖1設備連接示意圖

1.3 中的硬件搭建

SoPC(SystemonaProgrammableChip),即可編程片上系統,用可編程邏輯把整個(gè)系統放到一塊硅片上,是一種特殊的嵌入式系統,可以編程的片上系統(SOC)[5]。

借助于A(yíng)lteraSoPC方便的組件定制、硬件組裝和它的靈活的設計方式,不用一個(gè)個(gè)親自用硬件語(yǔ)言去實(shí)現各個(gè)組件,只需要在SoPC里定制,最后結果如圖2所示,因為SD卡的工作頻率最高為25MHz,與FPGA自身的時(shí)鐘頻率不一定一樣,所以要加上clock_crossing用于協(xié)調2個(gè)不同的時(shí)鐘域。onchip_memory是片內存儲器,用于儲存程序運行的代碼或者堆棧之類(lèi)的變量。timer和sysid用來(lái)協(xié)調這些組件良好運作,例如SoPCBuilder會(huì )使用SystemID為每個(gè)系統提供識別符號,NIOSⅡEDS可以用此防止使用者燒錄與硬件信息不符合的sof文件。Timer是內部時(shí)鐘定時(shí)。如果丟失這兩個(gè)組件,會(huì )導致最后的軟件運行出現錯誤。

圖2SoPC組件定制

圖2SoPC組件定制

其中sd_wp_n是SD卡寫(xiě)保護信號線(xiàn),由于默認激活SD卡所以片選信號沒(méi)加。altpll是鎖相環(huán),用來(lái)調節穩定所需的時(shí)鐘信號,DE2系列的開(kāi)發(fā)板上都有1到2個(gè)鎖相環(huán)。jtag_uart用來(lái)調試、打印數據到控制臺,驗證讀取寫(xiě)入的數據是否相同。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: SoPC NIOS SD卡文件系統

評論


相關(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>