新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于Avalon總線的SD卡讀寫控制器的設(shè)計

基于Avalon總線的SD卡讀寫控制器的設(shè)計

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

5 系統(tǒng)硬件設(shè)計
為了驗證,在DE2開發(fā)平臺上搭建了最基本的硬件系統(tǒng),主要包括:NiosⅡ處理器,PLL鎖相環(huán),片上RAM,JTAG UART和自定義的。NiosⅡ作為系統(tǒng)主,PLL用來產(chǎn)生SD卡讀/寫所需的時鐘信號,片上RAM用來存儲代碼和數(shù)據(jù),JTAG UART主要用來調(diào)試,打印數(shù)據(jù)到控制臺驗證寫入的數(shù)據(jù)和讀出的數(shù)據(jù)是否相同。
硬件系統(tǒng)的建立主要利用Altera公司QuartusⅡ開發(fā)工具以及其集成的SoPC Builder完成的,關(guān)鍵在于如何用SoPC Builder將控制器添加到元件列表中。在SoPC Builder提供的圖形化的界面下,添加控制器Verilog源程序后,設(shè)置控制器中各信號在-MM中的信號類型等,圖2即為添加好的SD卡讀寫控制器。

本文引用地址:http://butianyuan.cn/article/191242.htm


圖2中,各引腳的描述如下:
base_clock:控制器輸入時鐘,該設(shè)計采用PLL產(chǎn)生的25MHz時鐘信號;
clk_to_SD:SD卡時鐘信號輸入;
cmd_SD:SD卡命令,響應(yīng)輸入/輸出信號;
data_SD:SD卡數(shù)據(jù)信號。
根據(jù)SD控制器的寄存器映射,在Nios IDE中編寫C程序控制SD卡控制器進(jìn)行讀/寫操作,下面代碼為寫SD卡的一段程序,讀SD卡的的過程與其類似。

讀/寫完一個扇區(qū)后,控制器會產(chǎn)生一個中斷,此時即可進(jìn)行下一次讀/寫操作。由于SD卡讀/寫有比較復(fù)雜的時序要求,命令、響應(yīng)眾多,在設(shè)計的初期,采用Modelsim做了各方面的功能仿真,功能仿真完成后采用QuartusⅡ自帶的SignalTapⅡ邏輯分析儀來測試
分析內(nèi)部邏輯的工作狀態(tài),SignalTapⅡ使用簡單方便,更重要的是可以實時觀測內(nèi)部信號變化,而且可以設(shè)置觸發(fā)條件,大大提高了開發(fā)的效率。圖3是用SignalTapⅡ邏輯分析儀捕捉到的波形。


圖3中,status_reg為狀態(tài)寄存器,00000900表明卡已處于就緒狀態(tài),control_reg為控制寄存器,00000001H表明已經(jīng)開始了一次對扇區(qū)0的寫傳輸,mread的上升沿即開始了Master端口的讀傳輸,這里的讀指的是將內(nèi)存中buf數(shù)組中的數(shù)據(jù)讀入控制器,再由控制器寫入SD卡中,waitrequest為等待信號,高電平時無法進(jìn)行數(shù)據(jù)傳輸,waitrequest無效后可以很明顯地看到000000DFH由Master端口讀入控制器,再由讀寫控制邏輯寫入SD卡。

6 結(jié)語
該設(shè)計采用SoPC技術(shù)實現(xiàn)了SD卡讀寫控制器,通過NiosⅡ處理器控制實現(xiàn)了SD卡讀/寫。由于該控制器根據(jù)接口規(guī)范進(jìn)行開發(fā),可以很方便以IP核的形式集成到其他SoPC系統(tǒng)中,簡單實現(xiàn)SD卡的讀/寫,大大降低了開發(fā)成本和難度。本文所設(shè)計的SD卡讀寫控制器還有一大優(yōu)點就是具有Master端口,可以自主完成數(shù)據(jù)的讀/寫,無需CPU的干預(yù),另外采用了中斷,降低了響應(yīng)延時,提高了讀/寫速率。該設(shè)計滿足了大部分?jǐn)?shù)據(jù)存儲需求,適用于工業(yè)監(jiān)測控制,一般消費類電子產(chǎn)品等。


上一頁 1 2 3 下一頁

關(guān)鍵詞: Avalon 總線 SD卡讀寫 控制器

評論


相關(guān)推薦

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

關(guān)閉