国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于S3C2410的SD/MMC卡驅(qū)動(dòng)的實(shí)現(xiàn)

發(fā)布時(shí)間:2010-5-4 16:23    發(fā)布者:我芯依舊
關(guān)鍵詞: MMC , S3C2410
引言

MMC、SD卡和SDHC卡都是基于Flash技術(shù)的新一代存儲(chǔ)器,具有體積小、容量大、數(shù)據(jù)傳輸快、移動(dòng)靈活等優(yōu)點(diǎn),是許多便攜式電子儀器理想的外部存儲(chǔ)介質(zhì).在數(shù)碼相機(jī)、MP3、手機(jī)與大容量存儲(chǔ)設(shè)備中被廣泛使用。MMC卡是基于NAND快閃記憶技術(shù)開發(fā)的存儲(chǔ)卡:SD卡是在MMC卡的基礎(chǔ)上開發(fā)研制的一款具有大容量、高性能、安全性好等特點(diǎn)的多功能存儲(chǔ)卡.存儲(chǔ)容量最高可達(dá)4G:SDHC是高容量SD存儲(chǔ)卡.SD2.0系統(tǒng)規(guī)范中規(guī)定SDHC卡的容量范圍為大于2GB小于等于32GB.速度最高可達(dá)25MB/秒。近年來.雖然MMC卡技術(shù)已逐漸被SD卡所代替.但SD卡接口向下兼容MMC卡.因此MMC卡仍在很多應(yīng)用場合使用。SD/MMC卡有SD和SPI兩種通信模式。前者可獲得比后者更高的通信速率。目前的SD/MMC接口多采用SPI通信模式。為了能獲得更快的卡訪問速度.并且在同一個(gè)接口中支持對(duì)MMC、SD和SDHC三類卡的訪問,筆者基于S3C2410控制器設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)采用SD通信模式的通用的SD/MMC卡驅(qū)動(dòng)。下面具體描述該驅(qū)動(dòng)的實(shí)現(xiàn)過程。

1 S3C2410片內(nèi)SD接口

S3C2410是三星公司的16/32位RISC控制器,它內(nèi)部具有豐富的系統(tǒng)外圍設(shè)備控制器.包括一個(gè)SD接口(SDI)。該SDI兼容SD1.0、MMC2.1l、SDIO1.0規(guī)范:支持l位/4位數(shù)據(jù)總線模式以及塊,流讀寫模式切換:SD時(shí)鐘最高達(dá)25MHz,MMC時(shí)鐘最高達(dá)10MHz。SDI內(nèi)部寄存器眾多.主要分為三大類:通用控制類寄存器,如:控制寄存器、波特率預(yù)分頻因子寄存器等:命令控制類寄存器,如:命令參數(shù)寄存器、命令控制寄存器、命令狀態(tài)寄存器、4個(gè)命令響應(yīng)寄存器;數(shù)據(jù)傳輸類寄存器,如:數(shù)據(jù)控制寄存器、數(shù)據(jù)狀態(tài)寄存器、FIFO狀態(tài)寄存器、數(shù)據(jù)寄存器。主機(jī)通過這些寄存器完成卡命令的發(fā)送、接收卡回送的響應(yīng)以及與卡進(jìn)行數(shù)據(jù)交換。

2 S3C2410 與 SD/MMC卡的SD模式接口電路

2.1 SD總線通信模式下卡引腳定義

雖然SD/MMC卡有兩種通信模式.但在具體通信過程中主機(jī)只能選擇其中一種通信模式。不同模式下各引腳的功能不完全相同。表1為SD模式下的卡引腳定義。

表1 SD模式下卡的引腳定義


MMC卡除了接口中沒有第8和第9腳外,其余與SD卡接口相同。

2.2 SD通信模式下的SD/MMC卡接口電路

S3C2410與SD/MMC卡座的接口電路如圖1所示。接口電路原理圖說明如下:


圖1 SD/MMC卡SD模式接口電路原理圖

CD/DAT3(第1腳)通過10KΩ電阻上拉到3.3V,使SD/MMC卡上電后自動(dòng)進(jìn)入SD模式。本接口中該引腳用于卡上電后的模式選擇。

CLK(第5腳)為時(shí)鐘輸入信號(hào),SDCMD(第2腳)為命令響應(yīng)線,DATO-DAT;涕7,8,9引腳加上CD/DAT3組成4位數(shù)據(jù)線。

CD(第10腳)為卡插入檢測信號(hào)。由于CD/DAT3引腳用于模式選擇,故在卡座中增加該引腳作為卡檢測信號(hào)。由于該引腳被上拉,當(dāng)卡未插入卡座內(nèi)時(shí),從INT0/GPF0引腳讀到的是高電平;當(dāng)卡完全插入到卡座內(nèi)時(shí),卡座內(nèi)部觸點(diǎn)接地,則從INT0/GPF0讀到的是低電平。通常通過檢測該引腳的電平值來判斷卡的動(dòng)態(tài)拔插動(dòng)作。

WP(第12腳)為卡座中增加的卡寫保護(hù)檢測信號(hào).檢測原理與CD腳相同。應(yīng)當(dāng)注意,SD/MMC卡并不檢測該引腳,因此.卡寫保護(hù)控制必須由主機(jī)實(shí)現(xiàn)。在設(shè)計(jì)SDfMMC卡座接12時(shí)。WP不是必需的。

為保證輸入的穩(wěn)定性.除VCC、VSS1和VSS2、GND外的引腳均通過10Kfl上拉到3.3V。

3 S3C2410與SD/MMC的通信實(shí)現(xiàn)

在SD/MMC卡與主機(jī)的通信過程中.卡一直是從設(shè)備.由主機(jī)發(fā)送命令來控制它。當(dāng)S3C2410(下稱主機(jī))以查詢方式獲取卡已插入卡座.或者當(dāng)卡插人卡座后通過CD引腳發(fā)送中斷給主機(jī)后.主機(jī)首先應(yīng)完成卡的初始化.之后才能對(duì)卡上的數(shù)據(jù)進(jìn)行讀寫。

3.1 卡的初始化和識(shí)別

SD/MMC卡在上電后進(jìn)入空閑狀態(tài)(Idle State)。此時(shí).主機(jī)需要按照一定的處理流程完成卡的初始化。該過程主要的工作就是卡的識(shí)別(Card Identification),包括識(shí)別卡的類型、讀取卡上的信息、為卡分配地址等。卡的初始化處理流程見圖2。


圖2 卡初始化處理流程

在卡識(shí)別過程中.首先發(fā)送CMD8命令判斷卡是否支持V2.00及以上協(xié)議。關(guān)鍵語句如下(語句中的SD_HC_SEND_IF_COND為CMD8命令描述的簡寫,其余同):

SdmmcSendCmd(SD_HC_SEND_IF_COND,0x1aa);
if((rSDIRSPO & Ox1aa) == 0x1aa ) {/* V2.00及以上協(xié)議卡 */
......
}

此處CMD8命令參數(shù)中bit[7]一[0]為0/1交替的0blOl01010即0xaa.是推薦使用的檢測模式;bit[1l]-[8]則用于檢測卡能否在主機(jī)提供的電壓下運(yùn)行,Ob0001表示2.7-3.6V電壓.其他取值目前不可用.若卡支持v2.00及以上協(xié)議.且能夠在指定的電壓下運(yùn)行.則返回0xlaa。

V2.00及以上協(xié)議的卡有兩種類型:標(biāo)準(zhǔn)SD卡和SDHC卡。由于本驅(qū)動(dòng)支持SDHC卡,在發(fā)送ACMD41命令時(shí),將其參數(shù)中的HCS域(第30位)置為1。判斷語句如下:

SdmmcSendCmd(MMC_APP_CMD,SDmmcCardRca);
SdmmcSendCmd(SD_APP_OP_COND,Ox40ff8000);
if(rSD1RSPO==0xcOff8000){
SdmmcCardType=HC_SD_CARD; /* SDHC CARD */
......;
}
else if(rSDIRSP0 == Ox80ff8000){
SdmmcCardType = SD_CARD;/*S D CARD */
}

由于ACMD41命令為擴(kuò)展命令.故需要在該命令前面發(fā)送MMC_APP_CMD(CMD55)命伽知卡后面緊跟的命令為擴(kuò)展命令。

若卡不響應(yīng)CMD8.則有可能是MMC卡或V2.00以下的SD卡。由于SD卡支持ACMD命令.而MMC卡不支持該命令。故當(dāng)卡能正確響應(yīng)時(shí).則可判斷為SD卡。判斷語句如下:

SdmmcSendCmd(MMC_APP_CMD,SdmmcCardRca);
SdmmcSendCmd(SD_APP_OP_COND,OxOOff8000);
if(rSDIRSP0 == 0x80ff8000){
SdmmcCardType = SD_CARD; /* SD卡 */
⋯⋯⋯:
}

在識(shí)別完卡的類型后.便可發(fā)送CMD2獲取卡標(biāo)識(shí)等后續(xù)共同的初始化過程.

3.2 卡的讀操作

在初始化和識(shí)別完成后并被選中后,SD/MMC卡進(jìn)入傳輸模式.此時(shí)主機(jī)可使用讀命令來讀取卡上數(shù)據(jù)。每次讀操作通常以塊(一般為512字節(jié))為單位。MMC卡還可以按字節(jié)流的方式讀取。若一次讀取的數(shù)據(jù)在一塊以內(nèi),可使用單塊讀命令:若超過一塊.則應(yīng)使用多塊讀命令.此時(shí)還應(yīng)在接收完預(yù)期數(shù)據(jù)后給卡發(fā)送停止傳輸命令(CMDl2)通知卡停止傳送數(shù)據(jù)。

讀命令的4字節(jié)參數(shù)為欲讀取數(shù)據(jù)的地址。MMC卡和SD卡的最大容量為4G,地址以字節(jié)為單位,通常與512對(duì)齊。SDHC卡的容量為2G-32G,字節(jié)地址不能尋址全部空間.此時(shí)以塊為單位。命令的參數(shù)為欲讀數(shù)據(jù)的起始?jí)K號(hào)。

3.3 卡的寫操作

寫卡操作也有單塊寫命令和多塊寫命令.操作流程與讀操作類似。SD/MMC卡接收完主機(jī)傳送過來的數(shù)據(jù)之后進(jìn)入編程狀態(tài)。卡內(nèi)部為寫操作提供了一個(gè)緩存.該緩存使得卡在編程的同時(shí)可以接收下一塊數(shù)據(jù)。當(dāng)該緩存滿時(shí).卡從DAT0線輸出低電平,表示正處于寫的忙狀態(tài).否則從DAT0輸出高阻態(tài)。因此.在往卡發(fā)送數(shù)據(jù)前應(yīng)檢查卡是否處于忙狀態(tài)。另外,為了提高某些卡的寫速度.建議在多讀寫命令之前發(fā)送預(yù)擦除命令.預(yù)擦除的塊數(shù)在該命令的參數(shù)中給出。

4 結(jié)束語

本文的創(chuàng)新點(diǎn)是以SD通信模式實(shí)現(xiàn)了一個(gè)通用的、能同時(shí)支持MMC卡、SD卡和SDHC卡的SD/MMC卡驅(qū)動(dòng)。目前它已被集成到基于FAT文件格式的嵌人式文件系統(tǒng)中.并被成功應(yīng)用到MP3產(chǎn)品中。

項(xiàng)目經(jīng)濟(jì)效益為300萬元左右。


作者:湯龍梅,張國安      來源:《微計(jì)算機(jī)信息》(嵌入式與SOC)2009年第6-2期
本文地址:http://m.qingdxww.cn/thread-10990-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • 無線充電基礎(chǔ)知識(shí)及應(yīng)用培訓(xùn)教程
  • Chiptorials ——如何將CryptoAuthLib庫用于Microchip安全身份驗(yàn)證IC
  • FPGA設(shè)計(jì)流程培訓(xùn)教程
  • Chiptorials——如何使用ATECC608 TrustFLEX實(shí)現(xiàn)公鑰輪換
  • 貿(mào)澤電子(Mouser)專區(qū)
關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美不卡在线观看 | 欧美一区二区三区精品国产 | 一级毛片免费全部播放 | 精品欧美一区视频在线观看 | 自拍偷拍网站 | 欧美性乱视频 | 欧美成a高清在线观看www | 国产牛牛 | 激情综合亚洲 | 亚洲精品亚洲人成在线麻豆 | 久久精品视频网站 | 美女久久久久久久久久久 | 羞羞视频免费观看入口 | 综合色播| 欧美在线视屏 | 国产精品黄页在线播放免费 | 91精品视频网站 | 香蕉视频网站在线播放 | 日本中文不卡 | 欧美精品免费在线观看 | 一区二区三区四区在线不卡高清 | 国产精品久久久久蜜芽 | 五月激情五月婷婷 | 亚洲宅男天堂 | 国产愉拍精品视频手机 | 羞羞视频在线看 | 在线色视频网站 | 日韩视频精品在线 | 一级毛片aaa片免费观看 | 亚洲欧美一区二区三区在饯 | 免费观看三级毛片 | 成人精品视频在线观看 | 91无毒不卡 | 国产激情自拍视频 | 亚洲一区第一页 | 国产无限资源在线观看 | 狠狠色综合网站久久久久久久 | 最近更新2019中文字幕6 | 日韩精品一区二区三区视频 | 最近免费观看高清韩国日本大全 | 四虎免费影院在线播放 |