在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

    
    
    <address id="vxupu"><td id="vxupu"></td></address>

      <pre id="vxupu"><small id="vxupu"></small></pre>
      <dfn id="vxupu"></dfn>
      <div id="vxupu"><small id="vxupu"></small></div>
    1. 新聞中心

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

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

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

      接著要對(duì)選中的Nios標(biāo)準(zhǔn)內(nèi)核進(jìn)行配置,這里要考慮的問(wèn)題是如何如何分配片內(nèi)存儲(chǔ)器和片外存儲(chǔ)器的使用。片內(nèi)存儲(chǔ)器的資源是很寶貴的,所以要先確定系統(tǒng)運(yùn)行所需要的片內(nèi)ROM或RAM,在滿足性能的條件下,盡可能使用較少的片內(nèi)存儲(chǔ)器。

      對(duì)于一個(gè)實(shí)際的系統(tǒng),光有片內(nèi)存儲(chǔ)器一般是不夠的,尤其是考慮到要進(jìn)行嵌入式操作系統(tǒng)的移植,所以還要增加片外存儲(chǔ)器。Niso II通過(guò)Avalon總線和片外存儲(chǔ)器以及外部設(shè)備連接。外部存儲(chǔ)器件的類型包括SRAM、SDRAM、DDR2、Flash等,外部設(shè)備包括UART串行口等。本設(shè)計(jì)采用SDRAM.

      接著是添加PIO端口,定義輸入輸出端口,主要的目的是用于Nios II讀取數(shù)字量。Nios II所采用的時(shí)鐘和FPGA 的時(shí)鐘密切相關(guān),一般是通過(guò)鎖相環(huán)PLL 把外部輸入的時(shí)鐘進(jìn)行倍頻之后再送給Nios II來(lái)作為主頻使用,同時(shí)外部設(shè)備也使用時(shí)鐘信號(hào)。外部時(shí)鐘信號(hào)為25MHz,而經(jīng)過(guò)倍頻后為50MHz.

      至此,主要的配置過(guò)程就結(jié)束了。但是還是需要配置如下部分:

      (1) 分配存儲(chǔ)器和外部設(shè)備的基地址和中斷請(qǐng)求優(yōu)先級(jí);

      (2) 設(shè)定處理器的啟動(dòng)地址,本設(shè)計(jì)把片內(nèi)存儲(chǔ)器設(shè)定為Nios II的啟動(dòng)地址。

      (3) 在生成NiosⅡ系統(tǒng)時(shí),可以選擇生成Verilog語(yǔ)言還是VHDL 語(yǔ)言,本設(shè)計(jì)采用VHDL語(yǔ)言進(jìn)行設(shè)計(jì);

      (4) 最后生成的qsf文件,相當(dāng)于整個(gè)工程的文件,但是關(guān)于配置管腳使用的部分,需要用戶去生成。生成的方法可以在圖形界面下配置,也可以通過(guò)寫tcl文件的方法。寫tcl文件的方法一般來(lái)講,對(duì)于大型工程,還是比較方便的。

      (5) 編譯整個(gè)NiosⅡ系統(tǒng),在Altera 提供的開(kāi)發(fā)環(huán)境Quartus II 中進(jìn)行編譯。頂層設(shè)計(jì)文件可以使VHDL 也可以是原理圖的形式。

      (6) 采用JATG口進(jìn)行下載,把生成的的SOF文件下載到FPGA里。

      2系統(tǒng)軟件設(shè)計(jì)

      Altera公司為了用戶方便使用Nios II來(lái)快速研制產(chǎn)品,提供了功能強(qiáng)大、易于使用的Nios II集成開(kāi)發(fā)環(huán)境,與一般的嵌入式系統(tǒng)開(kāi)發(fā)設(shè)計(jì)比較類似。在生成的過(guò)程中已經(jīng)自動(dòng)生成了需要使用的頭文件(一般是C語(yǔ)言的頭文件),同時(shí)一般外圍設(shè)備的驅(qū)動(dòng)程序也可以生成。對(duì)于嵌入式操作系統(tǒng),可以使用用戶自己裁剪的ucLinux內(nèi)核也可以使用Altera提供的操作系統(tǒng)內(nèi)核。本設(shè)計(jì)使用Altera公司提供的Nios II 9.0版本的開(kāi)發(fā)環(huán)境。

      2.1 初始化

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

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

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

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

      (4) 根據(jù)編譯選項(xiàng)使能或者禁止通信過(guò)程中的CRC校驗(yàn);

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

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

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

      2.2 SD卡讀寫操作

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

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

      3 SD卡驅(qū)動(dòng)設(shè)計(jì)

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

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

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

      結(jié)束語(yǔ)

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


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

      關(guān)鍵詞: NiosII 軟核處理器 SD卡

      評(píng)論


      相關(guān)推薦

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

      關(guān)閉