<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于SoPC和NIOS II的SD卡文件系統(tǒng)的設(shè)計

          基于SoPC和NIOS II的SD卡文件系統(tǒng)的設(shè)計

          作者: 時間:2013-04-22 來源:網(wǎng)絡(luò) 收藏

          摘要:傳統(tǒng)嵌入式設(shè)備對SD卡的讀取一般基于硬件層面,這么做省資源但是換來的是時序麻煩,移植困難,讀取文件不靈活。針時資源較為豐富的嵌入式方案,利用技術(shù)和靈活的Ⅱ軟核,提出了一種在SD卡上建立了FAT32文件系統(tǒng)的方法,實現(xiàn)了對文件的基本操作如新建、讀取、刪除等,并在SD卡根目錄里放置測試文檔。對Ⅱ的代碼實現(xiàn)進行測試,結(jié)果表明Ⅱ順利地讀出了文檔里的內(nèi)容,以及根目錄其他文件夾。測試實驗在Terasic的DE2系列開發(fā)板上通過驗證。該方案方便了開發(fā)者對不同嵌入式設(shè)備進行移植,使其更加專注于頂層操作。
          關(guān)鍵詞:FPGA;;NIOSⅡ;SD卡;FAT

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

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

          本文引用地址:http://www.ex-cimer.com/article/189630.htm

          c.JPG


          1.2 控制器的設(shè)計
          SD卡控制器是FPGA和SD卡之間進行通信的翻譯官,主要實現(xiàn)3大功能:
          (1)復(fù)位和初始化SD卡??刂破靼凑誗D卡總線協(xié)議產(chǎn)生控制時序?qū)ζ溥M行復(fù)位和初始化。
          (2)讀寫SD卡。控制器通過CMD線發(fā)送讀或者寫的命令以及SD卡扇區(qū)地址,確認收到正確的響應(yīng)后,通過DAT線進行讀和寫操作(分別涉及串并轉(zhuǎn)換和并串轉(zhuǎn)換),一次傳輸一個扇區(qū)的數(shù)據(jù)(512 B),傳輸完畢后將就緒信號置為有效。
          (3)設(shè)置SD卡。通過CMD線發(fā)送命令和參數(shù),不發(fā)送或接受數(shù)據(jù)。
          1.3 SoPC中的硬件搭建
          SoPC(System on a Programmable Chip),即可編程片上系統(tǒng),用可編程邏輯把整個系統(tǒng)放到一塊硅片上,是一種特殊的嵌入式系統(tǒng),可以編程的片上系統(tǒng)(SOC)。
          借助于Altera SoPC方便的組件定制、硬件組裝和它的靈活的設(shè)計方式,不用一個個親自用硬件語言去實現(xiàn)各個組件,只需要在SoPC里定制,最后結(jié)果如圖2所示,因為SD卡的工作頻率最高為25 MHz,與FPGA自身的時鐘頻率不一定一樣,所以要加上clock_crossing用于協(xié)調(diào)2個不同的時鐘域。onchip_memory是片內(nèi)存儲器,用于儲存程序運行的代碼或者堆棧之類的變量。timer和sysid用來協(xié)調(diào)這些組件良好運作,例如SoPC Builder會使用System ID為每個系統(tǒng)提供識別符號,NIOSⅡEDS可以用此防止使用者燒錄與硬件信息不符合的sof文件。Timer是內(nèi)部時鐘定時。如果丟失這兩個組件,會導(dǎo)致最后的軟件運行出現(xiàn)錯誤。其中sd_wp_n是SD卡寫保護信號線,由于默認激活SD卡所以片選信號沒加。altpll是鎖相環(huán),用來調(diào)節(jié)穩(wěn)定所需的時鐘信號,DE2系列的開發(fā)板上都有1到2個鎖相環(huán)。jtag_uart用來調(diào)試、打印數(shù)據(jù)到控制臺,驗證讀取寫入的數(shù)據(jù)是否相同。

          a.JPG



          上一頁 1 2 3 下一頁

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

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();