中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于Nios II 軟核處理器的SD卡接口設(shè)計(二)

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

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

        接上文

        本文引用地址:http://www.antipu.com.cn/article/148031.htm

        (一)

        2.1 卡初始化

        在對 卡進行讀/寫之前,必須知道卡的類型、卡的容量、卡的大小等信息。具體來說,初始化函數(shù)主要完成以下工作:

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

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

        (3) 調(diào)整SPI時鐘頻率;

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

        (5) 設(shè)置用于讀/寫操作的塊數(shù)據(jù)長度;

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

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

        2.2 SD卡讀寫操作

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

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

        3 SD卡驅(qū)動

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

        基于HAL的系統(tǒng)層次結(jié)構(gòu)

        圖3 HAL的系統(tǒng)層次結(jié)構(gòu)

        結(jié)束語

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



        評論


        相關(guān)推薦

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

        關(guān)閉