新聞中心

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

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

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

摘要:隨著FPGA的低成本化和整合資源的不斷增強(qiáng),F(xiàn)PGA在整個(gè)嵌入式市場(chǎng)中的份額在不斷增加。FPGA的以其高度的靈活性和完全可定制性在現(xiàn)今電子產(chǎn)品及工業(yè)控制中扮演著重要的角色。此外,以卡為代表的大容量存儲(chǔ)卡成為消費(fèi)電子類產(chǎn)品最重要的存儲(chǔ)媒體。 來(lái)讀寫(xiě) 卡的在諸多電子系統(tǒng)中的使用也愈來(lái)愈多。本文給出了 設(shè)計(jì)方案,并介紹了Nios II的驅(qū)動(dòng)架構(gòu),給出SD存儲(chǔ)卡在Nios II軟核上的驅(qū)動(dòng)程序設(shè)計(jì)。

本文引用地址:http://2s4d.com/article/148032.htm

0 引言

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

1系統(tǒng)硬件結(jié)構(gòu)設(shè)計(jì)

1.1 SD卡

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

1.2 SD卡的特征

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

 SD 卡的形狀和接口

圖1 SD 卡的形狀和接口

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

當(dāng)工作在SD模式下時(shí),主機(jī)使用SD總線訪問(wèn)SD卡,使用多點(diǎn)總線拓樸結(jié)構(gòu)。這種結(jié)構(gòu)包括一個(gè)主機(jī)和多個(gè)從機(jī)(這里是指SD卡)。所有的SD卡共用一個(gè)時(shí)鐘信號(hào)CLK、電源和地,命令線和數(shù)據(jù)線則是屬于每一SD卡所專用的。前面說(shuō)到現(xiàn)在的微處理器都集成有硬件SPI接口,用于板內(nèi)的芯片之間的操作非常方便。當(dāng)設(shè)定工作在SPI模式下時(shí),主機(jī)使用自身所帶的SPI總線來(lái)訪問(wèn)SD卡。微處理器在第一個(gè)發(fā)給SD卡的復(fù)位命令中配置通信模式為SPI方式,當(dāng)然在操作SD卡的通信期間,通信模式是不能更改為SD模式的。

1.3 SD卡內(nèi)部構(gòu)造

圖2是SD卡的內(nèi)部結(jié)構(gòu)圖,主機(jī)通過(guò)SD卡的接口控制器來(lái)控制SD內(nèi)部的存儲(chǔ)單元中的數(shù)據(jù)。這樣設(shè)計(jì)的目的一方面是把SD卡內(nèi)部的存儲(chǔ)器和外部的操作隔離開(kāi)來(lái),利于保護(hù)內(nèi)部的數(shù)據(jù)。另一方面也有利于內(nèi)部存儲(chǔ)器采用更新的工藝,而不影響外部的訪問(wèn)接口。

在使用微處理器來(lái)讀寫(xiě)SD卡內(nèi)的數(shù)據(jù)時(shí),要嚴(yán)格遵循通信協(xié)議。首先SD卡的數(shù)據(jù)傳輸?shù)幕締挝皇亲止?jié)。但是在SD卡的內(nèi)部是以塊為單位來(lái)組織數(shù)據(jù)的。對(duì)SD的數(shù)據(jù)讀取操作本質(zhì)上是以塊為單位的。一個(gè)塊的長(zhǎng)度一般是2的冪,比如256字節(jié)或者512字節(jié)。在具體的一次數(shù)據(jù)傳輸中塊的長(zhǎng)度(以字節(jié)為單位)可以在傳輸數(shù)據(jù)之前的命令控制字中設(shè)置。至于SD卡所允許的塊的最大長(zhǎng)度可以讀取SD卡的寄存器CSD來(lái)確定。在SD卡內(nèi)部有控制寄存器和狀態(tài)寄存器,其中的4個(gè)寄存器中存放著配置信息,比如RCA寄存器中存放本次通信過(guò)程中由主機(jī)分配的地址。

1.4訪問(wèn)SD卡的硬件電路

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

SD 卡接口電路圖

圖2 SD 卡接口電路圖

1.5 NiosII的構(gòu)建過(guò)程

首先要考慮到的是使用什么樣的Nios II,Nios II分為幾個(gè)等級(jí),有標(biāo)準(zhǔn)內(nèi)核和高速內(nèi)核。由于本系統(tǒng)對(duì)速度的要求并不高,設(shè)計(jì)時(shí)采用了標(biāo)準(zhǔn)的Nios II內(nèi)核。在速度和所占用的資源方面具有比較好的折中。采用Altera公司的SOPC Builder工具來(lái)進(jìn)行構(gòu)建,生成一個(gè)Nios II的標(biāo)準(zhǔn)內(nèi)核。

接著要對(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.


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

評(píng)論


相關(guān)推薦

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

關(guān)閉