《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于Nios II 軟核處理器的SD卡接口設計- 軟核處理器,SD卡接口,讀寫操作
基于Nios II 軟核處理器的SD卡接口設計- 軟核處理器,SD卡接口,讀寫操作
來源:中電網
摘要: 引言Altera公司開發的Nios II是基于可編程片上系統SOPC(System on a Programmable Chip)技術的32 位嵌入式處理器軟核。Altera 公司開發的Nios II軟核,可以直接放在FPGA中,它體現了把實現產品的全部單元電路集成到一個
Abstract:
Key words :

 0 引言

Altera公司開發的Nios II是基于可編程片上系統SOPC(System on a Programmable Chip)技術的32 位嵌入式處理器軟核。Altera 公司開發的Nios II軟核,可以直接放在FPGA中,它體現了把實現產品的全部單元電路集成到一個芯片之內的片上系統SOPC的思想。作為一種具有競爭力的技術,在國外已經有大量的產品使用了這種技術,在國內使用Nios II處理器進行嵌入式系統設計的開發者也越來越多,但是離大規模應用還有距離,應該得到更加廣泛的關注。本文在實際的項目中需要使用Nios II來開發存儲系統,對于利用Nios II來進行嵌入式系統開發,還有許多工作需要去深入研究本文在進行存儲系統項目開發的過程中,完成了基于FPGA的系統硬件軟件設計。為了到達系統的設計目標,就需要對Nios II的SOPC技術進行深入的研究。還需要進行uClinux操作系統的移植,基于操作系統的SD卡數據讀寫,必然就要涉及到怎樣編寫驅動程序。本文先簡單介紹操作SD卡的基本的硬件電路,接著給出了SD卡讀寫操作和驅動程序設計的基本過程。最后給出了全文的結論,本文給出的方法具有一定的普遍性,和實用性。

1系統硬件結構設計

1.1 SD卡

SD卡(Secure Digitgal Memory Card)即“安全數碼存儲卡”是由日本松下公司、東芝公司、美國SANDISK 等公司在MMC卡的基礎上共同開發研究而推出的,是一種容量大、高性能、安全性好、訪問接口簡單的存儲卡,得到了廣泛的使用。使用的范圍包括:MP3、數碼攝像機和照相機產品、智能手機等消費類電子設備。當前很多微處理器在內部都集成了與SD卡通信的接口電路。

1.2 SD卡的特征

SD 卡的外形和接口觸點如圖1 所示。外形尺寸分為兩種,分別為:24 mm * 32 mm * 2.1 mm 或24 mm * 32mm *1.4mm.

基于Nios II <a class=軟核處理器的SD卡接口設計" src="http://files.chinaaet.com/images/2013/06/08/12290336283566.jpg" style="width: 469px; height: 140px; " />

圖1 SD 卡的形狀和接口

微處理器和SD卡之間的接口電路,要符合一定的約定,這個在SD卡的讀寫操作中,被稱為通信協議。為了適應不同的通信協議,可以設置SD 卡使其工作在不同的通信模式之下。SD卡的通信模式分為兩種,一種是所謂的SD模式,另一種是SPI模式?,F在SPI通信模式得到越來越多的使用。在處理器和SD卡的通信過程中,和SD卡通信的處理器(稱為主機),選擇一種通信方式,但在通信的整個過程中不能改變通信模式。SD卡分析復位命令,以確定下面的通信采用什么模式,在接下來的時間內,通信雙方要使用相同的通信模式。

當工作在SD模式下時,主機使用SD總線訪問SD卡,使用多點總線拓樸結構。這種結構包括一個主機和多個從機(這里是指SD卡)。所有的SD卡共用一個時鐘信號CLK、電源和地,命令線和數據線則是屬于每一SD卡所專用的。前面說到現在的微處理器都集成有硬件SPI接口,用于板內的芯片之間的操作非常方便。當設定工作在SPI模式下時,主機使用自身所帶的SPI總線來訪問SD卡。微處理器在第一個發給SD卡的復位命令中配置通信模式為SPI方式,當然在操作SD卡的通信期間,通信模式是不能更改為SD模式的。

1.3 SD卡內部構造

圖2是SD卡的內部結構圖,主機通過SD卡的接口控制器來控制SD內部的存儲單元中的數據。這樣設計的目的一方面是把SD卡內部的存儲器和外部的操作隔離開來,利于保護內部的數據。另一方面也有利于內部存儲器采用更新的工藝,而不影響外部的訪問接口。

在使用微處理器來讀寫SD卡內的數據時,要嚴格遵循通信協議。首先SD卡的數據傳輸的基本單位是字節。但是在SD卡的內部是以塊為單位來組織數據的。對SD的數據讀取操作本質上是以塊為單位的。一個塊的長度一般是2的冪,比如256字節或者512字節。在具體的一次數據傳輸中塊的長度(以字節為單位)可以在傳輸數據之前的命令控制字中設置。至于SD卡所允許的塊的最大長度可以讀取SD卡的寄存器CSD來確定。在SD卡內部有控制寄存器和狀態寄存器,其中的4個寄存器中存放著配置信息,比如RCA寄存器中存放本次通信過程中由主機分配的地址。

1.4訪問SD卡的硬件電路

SD卡采用SPI總線方式與處理器連接,其電路原理如圖2所示。

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

圖2 SD 卡接口電路圖

1.5 NiosII的構建過程

首先要考慮到的是使用什么樣的Nios II,Nios II分為幾個等級,有標準內核和高速內核。由于本系統對速度的要求并不高,設計時采用了標準的Nios II內核。在速度和所占用的資源方面具有比較好的折中。采用Altera公司的SOPC Builder工具來進行構建,生成一個Nios II的標準內核。

接著要對選中的Nios標準內核進行配置,這里要考慮的問題是如何如何分配片內存儲器和片外存儲器的使用。片內存儲器的資源是很寶貴的,所以要先確定系統運行所需要的片內ROM或RAM,在滿足性能的條件下,盡可能使用較少的片內存儲器。

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

 

接著是添加PIO端口,定義輸入輸出端口,主要的目的是用于Nios II讀取數字量。Nios II所采用的時鐘和FPGA 的時鐘密切相關,一般是通過鎖相環PLL 把外部輸入的時鐘進行倍頻之后再送給Nios II來作為主頻使用,同時外部設備也使用時鐘信號。外部時鐘信號為25MHz,而經過倍頻后為50MHz.

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

(1) 分配存儲器和外部設備的基地址和中斷請求優先級;

(2) 設定NiosII處理器的啟動地址,本設計把片內存儲器設定為Nios II的啟動地址。

(3) 在生成NiosⅡ系統時,可以選擇生成Verilog語言還是VHDL 語言,本設計采用VHDL語言進行設計;

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

(5) 編譯整個NiosⅡ系統,在Altera 提供的開發環境Quartus II 中進行編譯。頂層設計文件可以使VHDL 也可以是原理圖的形式。

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

2系統軟件設計

Altera公司為了用戶方便使用Nios II來快速研制產品,提供了功能強大、易于使用的Nios II集成開發環境,與一般的嵌入式系統開發設計比較類似。在生成NiosII的過程中已經自動生成了需要使用的頭文件(一般是C語言的頭文件),同時一般外圍設備的驅動程序也可以生成。對于嵌入式操作系統,可以使用用戶自己裁剪的ucLinux內核也可以使用Altera提供的操作系統內核。本設計使用Altera公司提供的Nios II 9.0版本的開發環境。

    2.1 SD卡初始化

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

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

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

(3) 調整SPI時鐘頻率;

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

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

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

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

2.2 SD卡讀寫操作

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

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

3 SD卡驅動設計

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

基于HAL的系統層次結構

圖3 基于HAL的系統層次結構

結束語

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

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          久久人91精品久久久久久不卡| 亚洲国产成人久久综合| 亚洲精品在线免费观看视频| 欧美日韩国产高清| 亚洲美女色禁图| 国产精品99一区二区| 久久久人人人| 麻豆精品在线观看| 亚洲国产综合91精品麻豆| 99精品久久免费看蜜臀剧情介绍| 一区二区三区高清不卡| 亚洲男人的天堂在线观看| 久久综合精品国产一区二区三区| 欧美激情一二区| 久久久亚洲欧洲日产国码αv| 欧美片网站免费| 亚洲视频精选在线| 欧美精品一区视频| 红桃视频国产精品| 狠狠爱www人成狠狠爱综合网| 在线播放日韩欧美| 亚洲图片自拍偷拍| 国产精品视频99| 99视频精品全部免费在线| 国产精品一区视频网站| 一区二区三区亚洲| 91久久精品国产91性色| 激情综合网激情| 国产精品欧美精品| 久久久久久久激情视频| 亚洲激精日韩激精欧美精品| 欧美日韩亚洲91| 在线看成人片| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲国产成人av好男人在线观看| 国产精品夜夜夜一区二区三区尤| 黄色成人片子| 欧美精品www在线观看| 亚洲国内在线| 亚洲在线国产日韩欧美| 中文日韩在线| 亚洲私人影院在线观看| 亚洲精品黄色| 久久精品久久99精品久久| 久久亚洲影音av资源网| 亚洲欧美日本另类| 欧美日韩国产免费观看| 日韩亚洲视频| 99在线精品视频在线观看| 久久久91精品国产一区二区三区| 一区二区免费在线视频| 欧美承认网站| 国产午夜亚洲精品不卡| 国语自产精品视频在线看| 亚洲一区二区三区精品动漫| 欧美精品在线观看一区二区| 国产精品久久久久婷婷| 亚洲欧洲日夜超级视频| 亚洲欧洲一区二区在线观看| 9色精品在线| 亚洲国产一区二区三区a毛片| 欧美成人日韩| 欧美电影电视剧在线观看| 一本色道久久综合狠狠躁篇的优点| 亚欧美中日韩视频| 亚洲激情一区| 国产精品一区二区男女羞羞无遮挡| 免费视频久久| 一区二区三区日韩精品视频| 久久久久99精品国产片| 欧美亚洲综合久久| 欧美精品在线视频| 欧美一区二区三区免费观看视频| 国产精品私拍pans大尺度在线| 欧美一级大片在线观看| 韩国av一区| 18成人免费观看视频| 在线观看福利一区| 一区二区亚洲欧洲国产日韩| 亚洲精品国产拍免费91在线| 亚洲欧美日韩一区在线| 国产精品久久久久77777| 免费观看日韩av| 狠狠综合久久av一区二区老牛| 久久久久综合网| 欧美日韩四区| 久久久亚洲高清| 久久国产精品久久国产精品| 国产精品高精视频免费| 久久久久国产精品厨房| 亚洲国产欧洲综合997久久| 免费在线成人av| 好看的亚洲午夜视频在线| 又紧又大又爽精品一区二区| 亚洲国产一成人久久精品| 欧美极品一区二区三区| 国产欧美日本在线| 日韩亚洲精品视频| 欧美国产日韩一二三区| 欧美视频一区二| 国产亚洲欧美另类一区二区三区| 国产精品伊人日日| 亚洲三级电影全部在线观看高清| 亚洲精品少妇网址| 久久久久久网址| 麻豆精品网站| 伊人精品视频| 伊人婷婷久久| 欧美亚洲动漫精品| 国产精品久久久久99| 香蕉乱码成人久久天堂爱免费| 久久精视频免费在线久久完整在线看| 久久国产精品电影| 亚洲国产美国国产综合一区二区| 国产精品久久久久久亚洲调教| 亚洲国产天堂久久国产91| 欧美中在线观看| 国产精品一区视频| 亚洲视频成人| 久久久久免费视频| 久久成人国产精品| 99精品国产在热久久婷婷| 亚洲人永久免费| 欧美日韩国产综合久久| 亚洲午夜视频在线| 欧美一区91| 日韩午夜高潮| 欧美国产一区二区三区激情无套| 亚洲午夜av| 农村妇女精品| 99视频精品| 亚洲精品一区在线观看| 一区二区三区免费在线观看| 国产亚洲欧美另类中文| 免费看亚洲片| 欧美一区2区视频在线观看| 欧美亚洲一区二区在线观看| 久久久精品网| 欧美电影在线观看完整版| 亚洲欧美一区二区精品久久久| 亚洲欧美国内爽妇网| 一本色道久久综合亚洲精品不| 久热精品视频在线观看一区| 91久久精品一区二区别| 一区二区黄色| 国产一区二区你懂的| 影音先锋中文字幕一区| 国产精品人人做人人爽| 欧美与黑人午夜性猛交久久久| 欧美不卡激情三级在线观看| 国产一区二区三区四区五区美女| 久久人人97超碰国产公开结果| 国产精品久久久久久久7电影| 女女同性女同一区二区三区91| 噜噜噜91成人网| 日韩一本二本av| 宅男66日本亚洲欧美视频| 国产九色精品成人porny| 欧美精品一区二区三区高清aⅴ| 国产精品激情偷乱一区二区∴| 久久久久久亚洲精品不卡4k岛国| 亚洲精选91| 久久久久久久久久久一区| 欧美一区二区三区婷婷月色| 欧美成在线观看| 在线日本欧美| aa亚洲婷婷| 国产综合精品| 久久av在线| 久久久久久91香蕉国产| 国产一区二区在线观看免费| 国产精品久久福利| 免费在线看一区| 国内精品嫩模av私拍在线观看| 亚洲综合精品四区| 亚洲欧美日韩另类精品一区二区三区| 小辣椒精品导航| 99国产精品久久久久久久| 亚洲一区国产一区| 欧美日韩在线观看一区二区三区| 久久久噜噜噜久久中文字幕色伊伊| 国产精品99久久久久久久女警| 美女黄毛**国产精品啪啪| 一区二区三区四区五区精品| 国产精品毛片va一区二区三区| 影音先锋久久精品| 这里只有精品丝袜| 亚洲丰满少妇videoshd| 亚洲人体1000| 久久福利资源站| 亚洲欧美日韩一区在线观看| 国产日韩亚洲欧美| 久久黄色小说| 宅男噜噜噜66一区二区| 韩国成人福利片在线播放| 欧美精品粉嫩高潮一区二区| 欧美视频在线观看视频极品| 国产精品女人毛片| 国产日韩精品在线| 免费不卡亚洲欧美| 快射av在线播放一区| 国产午夜亚洲精品羞羞网站| 欧美日本在线一区| 国产真实精品久久二三区| 欧美经典一区二区三区| 亚洲国产精品一区二区第一页| 99精品视频一区二区三区| 国产亚洲视频在线观看| 99精品欧美一区二区三区综合在线| 亚洲综合精品自拍| 久久国产精品99国产精| 亚洲欧美日韩精品久久久久| 国产精品一区二区久久国产| 国产精品一香蕉国产线看观看| 亚洲视频网在线直播| 久久免费少妇高潮久久精品99| 欧美在线999| 欧美日韩精品三区| 激情欧美一区| 日韩午夜av电影| 国产精品日韩专区| 亚洲视频成人| 国产精品美女www爽爽爽视频| 欧美一区二区三区在线免费观看| 免费一级欧美片在线观看| 国内精品久久久久久| 亚洲第一中文字幕在线观看| 欧美三级精品| 男人的天堂亚洲| 久久福利毛片| 国产永久精品大片wwwapp| 国产精品高清在线观看| 国内成人精品视频| 国产午夜精品理论片a级探花| 国产精品久久久久久五月尺| 亚洲国产日韩欧美在线99| 在线一区二区三区做爰视频网站| 国内精品久久久久影院色| 香蕉久久一区二区不卡无毒影院| 久久色在线观看| 久久亚洲不卡| 欧美国产大片| 影院欧美亚洲| 欧美手机在线视频| 欧美精品二区三区四区免费看视频| 国产精品av一区二区| 午夜精品久久久久久久99热浪潮| 国产精品自在线| 亚洲在线观看免费视频| 亚洲色图制服丝袜| 国产精品一区二区久久| 亚洲一区二区三区四区在线观看| 麻豆精品精品国产自在97香蕉| 欧美黄色一级视频| 999在线观看精品免费不卡网站| 亚洲风情在线资源站| 91久久国产精品91久久性色| 在线亚洲激情| 亚洲福利视频三区| 999亚洲国产精| 国产一区二区日韩精品欧美精品| 国产精品久久久久免费a∨| 欧美尤物一区| 欧美专区福利在线| 久久精品欧美日韩精品| 午夜在线观看欧美| 99亚洲视频| 欧美顶级艳妇交换群宴| 国产无一区二区| 欧美性猛交99久久久久99按摩| 亚洲高清视频的网址| 国产午夜精品一区二区三区视频| 国产精品专区一| 欧美无乱码久久久免费午夜一区| 在线欧美日韩国产| 久久综合伊人77777蜜臀| 毛片基地黄久久久久久天堂| 亚洲日本视频| 久久午夜色播影院免费高清| 欧美成人在线免费观看| 毛片一区二区| 欧美极品aⅴ影院| 国精品一区二区三区| 国产精品久久久久久一区二区三区| 欧美日韩一区视频| 欧美一级淫片aaaaaaa视频| 欧美成人国产va精品日本一级| 国产欧美日韩视频在线观看| 国产色视频一区| 久久久久高清| 欧美国产一区二区在线观看| 亚洲午夜精品久久| 亚洲国产乱码最新视频| 日韩网站在线观看| 亚洲国产日韩一级| 久久久综合免费视频| 国产精品永久免费在线| 欧美午夜免费影院| 亚洲欧美日韩精品在线| 欧美日韩美女一区二区| 亚洲一区二区伦理| 国产精品一区二区三区观看| 久久亚洲二区| 在线观看欧美视频| 国产欧美一区二区三区久久人妖| 欧美视频亚洲视频| 国产精品久久精品日日| 久久久久久穴| 久久久亚洲国产美女国产盗摄| 在线免费精品视频| 国产精品一区二区久激情瑜伽| 亚洲一区在线播放| 亚洲精品一区中文| 亚洲一区二区在线看| 国产无一区二区| 国产精品一区二区三区四区五区| 欧美日本不卡视频| 猛男gaygay欧美视频| 国产乱码精品一区二区三区av| 亚洲午夜在线观看视频在线| 免费一级欧美在线大片| 国产一区二区主播在线| 欧美电影免费观看高清完整版| 欧美亚洲一级| 欧美淫片网站| 亚洲激情视频在线| 亚洲美女区一区| 尤物99国产成人精品视频|