<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 II 軟核處理器的SD卡接口設計(二)

基于Nios II 軟核處理器的SD卡接口設計(二)

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

接上文

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

(一)

2.1 卡初始化

在對 卡進(jìn)行讀/寫(xiě)之前,必須知道卡的類(lèi)型、卡的容量、卡的大小等信息。具體來(lái)說(shuō),初始化函數主要完成以下工作:

(1) 微(這里指 )復位SD卡,激活SD卡內部控制電路進(jìn)行初始化處理,使SD卡進(jìn)入SPI 模式;

(2) 發(fā)送命令查詢(xún)SD卡是否支持3.3V供電;

(3) 調整SPI時(shí)鐘頻率;

(4) 根據編譯選項使能或者禁止通信過(guò)程中的CRC校驗;

(5) 設置用于讀/寫(xiě)操作的塊數據長(cháng)度;

(6) 最后是初始化全局變量sds.

SD卡初始化函數INTSU SD_Initialize(viod)就是用于完成以上任務(wù)的,它讀取SD卡內部CSD寄存器,然后對全局變量sds進(jìn)行賦值。

2.2 SD卡讀寫(xiě)操作

對SD卡的讀寫(xiě)操作需要知道SD 卡的一些基本的屬性:插入卡座中SD卡的型號;SD卡中全部塊的數量;SD卡的最大數據塊的長(cháng)度;一次可擦除的塊數量;卡的讀取、寫(xiě)入、擦除操作的超時(shí)時(shí)間。

SD卡讀/寫(xiě)軟件包中定義了一個(gè)全局變量sds,軟件包的很多地方使用了這個(gè)全局變量。SD卡的寫(xiě)操作包括寫(xiě)單塊和寫(xiě)多塊兩種方式。SD卡的初始化函數SD_Initialixe()已經(jīng)調用SD_SetBlockLen()函數設定了讀/寫(xiě)數據的長(cháng)度為SD_BLOCKSIZE 字節,所以卡初始化以后,讀寫(xiě)都必須以塊為單位。

3 SD卡驅動(dòng)

軟件架構是建立在HAL(Hardware Abstraction Layer)基礎之上的。HAL為Nios II的軟件開(kāi)發(fā)者提供了操作底層硬件的編程。設備驅動(dòng)驅動(dòng)程序的編制一般要使用HAL提供的API函數以及C標準庫等。HAL提供的功能以及它與底層設備驅動(dòng)程序之間的關(guān)系如圖3所示,這種模塊化的架構可以加速應用程序的開(kāi)發(fā)。使用這種分層的體系架構,HAL層把應用程序和底層硬件驅動(dòng)程序之間隔離開(kāi)來(lái),使得應用程序的開(kāi)發(fā)不依賴(lài)于底層HAL和硬件的變化,增加了應用程序的可移植性。設計驅動(dòng)程序最重要的是理解具體SD卡的讀寫(xiě)操作的過(guò)程,之后是如何和嵌入式操作系統連接起來(lái)。在編制好SD卡的驅動(dòng)程序后,在應用程序中操作SD卡就簡(jiǎn)單了。所以編制SD卡的驅動(dòng)在本設計中是重要的一部分。

基于HAL的系統層次結構

圖3 HAL的系統層次結構

結束語(yǔ)

本文Nios II實(shí)現了對于SD卡的控制,不僅包括硬件設計還包括系統軟件設計。傳統的系統設計是基于硬核的架構,系統的硬件設計受到了限制。SOPC的設計思想使得片上系統的設計更加靈活,硬件設計的限制因素基本不存在了。在一個(gè)FPGA的芯片上幾乎可以實(shí)現一個(gè)整個(gè)系統,對于系統的小型化的作用是顯著(zhù)的。本文對基于NiosⅡ的嵌入式系統的設計進(jìn)行了深入的研究,并在此基礎上,設計完成了以Altera公司的Cyclone III系列中的EP3C16 FPGA為核心芯片的SOPC開(kāi)發(fā)平臺。另外本文在此平臺之上,移植了嵌入式操作系統,并在此環(huán)境下實(shí)現了SD卡的設計,因此包括了整個(gè)的硬件和軟件設計。在系統設計的過(guò)程中,分析了Nios II 的Avalon總線(xiàn)的系統架構、SD 卡的通信協(xié)議。



關(guān)鍵詞: SD 接口 設計 處理器 軟核 Nios II 基于

評論


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