<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 淺談dsPIC33F系列DSC的SD存儲卡接口設計

淺談dsPIC33F系列DSC的SD存儲卡接口設計

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

引 言

本文引用地址:http://dyxdggzs.com/article/149885.htm

卡是Secure Digital Card卡的簡(jiǎn)稱(chēng),直譯成漢語(yǔ)就是“安全數字卡”,是由日本松下公司、東芝公司和美國SANDISK公司共同開(kāi)發(fā)研制的全新的產(chǎn)品。是一個(gè)完全開(kāi)放的標準(系統),多用于MP3、數碼攝像機、數碼相機、電子圖書(shū)、AV器材等等,尤其是被廣泛應用在超薄數碼相機上。卡在外形上同MultiMedia Card卡保持一致,大小尺寸比MMC卡略厚,容量也大很多。并且兼容MMC卡規范。不由讓人們懷疑SD卡是MMC升級版。另外,SD卡為9引腳,目的是通過(guò)把傳輸方式由串行變成并行,以提高傳輸速度。它的讀寫(xiě)速度比MMC卡要快一些,同時(shí),安全性也更高。SD卡最大的特點(diǎn)就是通過(guò)加密功能,可以保證數據資料的安全保密。它還具備版權保護技術(shù),所采用的版權保護技術(shù)是DVD中使用的CPRM技術(shù)(可刻錄介質(zhì)內容保護)。

SD卡身材小巧,一般消費者在購買(mǎi)之前不會(huì )有太多了解,因此從外觀(guān)上辨別有些困難,下面為大家介紹一下市場(chǎng)上常見(jiàn)的SanDisk牌SD卡真假的辨別方法: 首先是看本身, sandisk正品儲存卡都在正面貼有激光變彩標簽,不同角度都會(huì )產(chǎn)生激光色彩變化。其次是國內代理的行貨正品卡,均采用了與上面相類(lèi)似的塑料封裝的包裝形式,但是右下的“5年保證”的字樣和日文均改為了圖形表明的5年質(zhì)保。另外,還可以從SD卡底部是否有缺口來(lái)進(jìn)行最簡(jiǎn)單識別,由于正品 SanDisk 牌 SD 卡背面產(chǎn)地上方的編號是惟一的,并可通過(guò) 800 電話(huà)查詢(xún)真偽,但據說(shuō)這一查詢(xún)系統目前尚未做好。

Microchip公司的DSPIC33F通用(數字信號控制器),是在16位MCU架構基礎之上添加了DSP引擎,從而具有數字信號處理功能的微控制器產(chǎn)品。該集成了DCI(數據轉換器),尤其適用于語(yǔ)音和音頻的應用。

本文首先簡(jiǎn)要介紹SD卡的相關(guān)規范,之后利用J64GP706通用了SD卡電路,最后通過(guò)SPI模式實(shí)現了對SD卡的基本操作。

1 SD卡相關(guān)規范簡(jiǎn)介

SD聯(lián)盟在2000年聯(lián)合發(fā)布了SD卡規范1.O版本,包括3個(gè)部分:物理層規范,文件系統規范以及安全規范。SD卡規范V1.0采用FAT的文件系統,因此最大存儲容量可以達到2 GB。2006年,SD卡規范V2.0發(fā)布。新規范根據容量定義了兩種卡,即標準容量SD卡和大容量SD卡。前者和1.O版本保持兼容,后者由于采用了FAT32文件系統,存儲容量突破了2 GB的限制。新規范定義的最大容量為32 GB。但是由于成本的原因,標準容量SD卡仍然是市場(chǎng)的主流產(chǎn)品。在以微控制器為核心的嵌入式系統中,主要使用SD卡的SPI。微控制器是將微型計算機的主要部分集成在一個(gè)芯片上的單芯片微型計算機。微控制器誕生于20世紀70年代中期,經(jīng)過(guò)20多年的發(fā)展,其成本越來(lái)越低,而性能越來(lái)越強大,這使其應用已經(jīng)無(wú)處不在,遍及各個(gè)領(lǐng)域。例如電機控制、條碼閱讀器/掃描器、消費類(lèi)電子、游戲設備、電話(huà)、HVAC、樓宇安全與門(mén)禁控制、工業(yè)控制與自動(dòng)化和白色家電(洗衣機、微波爐)等。

1.1 概 述

SD存儲卡在2.7~3.6 V電壓下正常工作,工作頻率為0~25MHz。圖1是普通SD卡的外形和引腳排列。在SPI模式時(shí),第8和第9腳不使用。表1列出了各引腳在SPI模式時(shí)的定義和功能描述。

dsPIC33F系列DSC的 SD存儲卡接口設計

圖中的WP是一個(gè)機械滑片,通過(guò)滑動(dòng)到不同的位置來(lái)對SD卡進(jìn)行寫(xiě)保護。

SD卡內部有6個(gè)和接口相關(guān)的寄存器:OCR、CID、CSD、RCA、DSR和SCR。它們只能通過(guò)各自對應的指令來(lái)訪(fǎng)問(wèn)。

1.2 SPI協(xié)議

系統上電之后,如果主機在將CS線(xiàn)聲明為低電平的同時(shí)發(fā)送復位指令(CMDO),則SPI模式啟用。SD卡在SPI模式下按字節進(jìn)行通信,每一個(gè)指令和數據塊都由數個(gè)字節組成并與CS信號對齊(也就是長(cháng)度為8個(gè)時(shí)鐘周期的整數倍)。

主機和SD卡之間是通過(guò)指令與響應來(lái)實(shí)現交互的。

圖2給出了SPI模式下基本的指令與響應的時(shí)序。

dsPIC33F系列DSC的 SD存儲卡接口設計

dsPIC33F系列DSC的 SD存儲卡接口設計

圖中一個(gè)方格代表一個(gè)字節,H為邏輯全“1”,L為邏輯全“O”,X代表未知,Z為高阻態(tài)。NCS、NEC和NCR都是包含N個(gè)8時(shí)鐘周期,具體N的取值范圍在SD卡規范中給出了詳細的說(shuō)明。

  SD卡所有的指令,長(cháng)度都是6字節。表2列出了指令格式。

dsPIC33F系列DSC的 SD存儲卡接口設計

在有效接收到主機發(fā)來(lái)的指令之后,SD卡將會(huì )把對應的響應數據段放在總線(xiàn)上,主機根據響應的內容判斷SD卡的狀態(tài)。所有的響應都是MSB優(yōu)先傳輸。SD卡有4種類(lèi)型的響應格式,分別為R1、R1b、R2、R3。

除了SEND_STATUS和READ_OCR指令外,其他指令的響應都是格式R1。格式R1的長(cháng)度為1字節,并且最高位總是0。其余每位均是錯誤指示,在指令接收過(guò)程中發(fā)生了什么樣的錯誤,對應的錯誤位就會(huì )是“1”。R1b和R1具有相同的格式,它將伴隨一個(gè)附加的busy信號。busy信號的長(cháng)度可以是任意個(gè)字節。全零表示卡處在“忙”的狀態(tài)。格式R2的長(cháng)度為2字節,它是指令SEND_STATUS的響應。它的高字節和R1相同,低字節同樣作為狀態(tài)指示。

在SD卡規范中詳細描述了每條指令的格式內容及作用,并給出了各條指令所對應的響應。對于每種響應的信息也有詳細的說(shuō)明,具體信息參閱參考文獻。

2 SD卡接口電路

16位的DSC具有高達40 MIPS的指令周期,繼承了Microchip公司之前8位和16位MCU產(chǎn)品的優(yōu)點(diǎn),并保持著(zhù)對以往低成本開(kāi)發(fā)系統的兼容性。J64GP706是其中一款64引腳的通用產(chǎn)品,擁有高達64 KB的Flash程序存儲器和16 KB的數據存儲器。

圖3所示為dsPIC33FJ64GP706與SD卡座的接口電路。為了防止在無(wú)卡接入或卡驅動(dòng)器呈高阻態(tài)時(shí)總線(xiàn)懸空,在每根信號線(xiàn)上要接一個(gè)上拉電阻,根據SD卡規范(見(jiàn)參考文獻,第6章),電阻的阻值可以取10~90kΩ??ㄗ腃D引腳是SD卡檢測信號引腳,當有卡插入時(shí),該引腳對地短路。WP是寫(xiě)保護信號引腳,在卡插入且沒(méi)有寫(xiě)保護時(shí),該引腳對地短路;如果SD卡寫(xiě)保護或沒(méi)有卡插入,該引腳通過(guò)上拉電阻接到電源正極。

dsPIC33F系列DSC的 SD存儲卡接口設計

3 SD卡接口的實(shí)現

3.1 選擇SD卡的SPI模式并初始化SD卡

在上電之后,主機開(kāi)始發(fā)送時(shí)鐘信號,此時(shí)的時(shí)鐘頻率不能超過(guò)400 kHz。主機要連續發(fā)送至少74個(gè)時(shí)鐘周期的“1”才能使SD卡準備好通信,然后選擇SPI模式。SD卡進(jìn)入SPI模式之后,就可以接收來(lái)自主機的操作指令了。這時(shí)候主機發(fā)送SEND_OP_COND指令,激活卡的初始化過(guò)程。在得到正確的響應之后,主機再發(fā)送SEND_CSD指令讀取CSD寄存器的內容。

3.2 指令和響應交互過(guò)程的軟件實(shí)現

dsPIC33F系列DSC的 SD存儲卡接口設計

dsPIC33F系列DSC的 SD存儲卡接口設計

typSD_CMD是自定義的結構類(lèi)型,包含指令索引、CRC和響應格式。最后一個(gè)字節數據用來(lái)說(shuō)明該指令有無(wú)后續數據塊,例如READ_SINGLE_BLOCK(單數據塊讀指令),它需要SD卡發(fā)送一個(gè)數據塊的數據,因此其后的數據為“1”。對于指令索引,是把開(kāi)始位和傳輸位與6位索引值包含在一起的數據。例如G0_IDLE_STATE的索引值是二進(jìn)制“000000”,加上開(kāi)始位“O”和傳輸位“1”,成為“01000000”,即“Ox40”,READ_SINGLE_BLOCK的索引值是“010001”,加上開(kāi)始位和傳輸位,成為“01010001”即0x51”。

定義發(fā)送指令函數為SendSDCmd(),返回值為從總線(xiàn)上讀取的響應數據。(具體函數略——編者注)函數的第一個(gè)參數是指令列表數組中相應指令元素的序號,函數會(huì )根據它的值在指令表中查到對應的信息,第二個(gè)參數是指令的附加內容。函數中CMD_PACKET是按指令格式(見(jiàn)表2)定義的聯(lián)合類(lèi)型,程序通過(guò)查表的方式將指令的內容裝載到該類(lèi)型定義的變量中,并通過(guò)函數Write_sd()發(fā)送出去。write_sd()的作用是把一個(gè)字節的數據放到SPI2模塊的burfer里,完成一個(gè)字節的發(fā)送。函數ReadSd()用來(lái)讀取SPI2接收的一個(gè)字節數據。

以上程序按照圖2所示時(shí)序執行,來(lái)實(shí)現一次指令和響應數據的交互。當某條指令有后續數據時(shí),按照規范中的時(shí)序發(fā)送或者讀取數據。

3.3 讀寫(xiě)操作的實(shí)現

READ_SINGLE_BLOCK是單數據塊讀指令,在接收到有效的讀指令后SD卡將會(huì )送出一個(gè)響應。緊接著(zhù)是一個(gè)帶16位CRC校驗后綴的數據塊,數據塊的長(cháng)度要在之前由SET_BLOCKEN(CMDl6)指令定義,一般為512字節,正好一個(gè)扇區的大小。該操作的通信過(guò)程如圖4所示。

dsPIC33F系列DSC的 SD存儲卡接口設計

WRITE_SINGLE_BLOCK是單數據寫(xiě)操作指令,在接收到主機傳來(lái)的數據后,SD卡會(huì )發(fā)送一個(gè)值為0x5的數據響應,之后進(jìn)入busy狀態(tài)。該操作的通信過(guò)程如圖5所示。

dsPIC33F系列DSC的 SD存儲卡接口設計

按照以上通信過(guò)程編寫(xiě)程序,單數據塊讀和寫(xiě)的程序流程如圖6所示。

dsPIC33F系列DSC的 SD存儲卡接口設計

4 結果驗證

將容量為1 GB的SD卡插入SD讀卡器,再將讀卡器插入PC機的USB接口中,此時(shí)系統出現“可移動(dòng)磁盤(pán)(H:)”根目錄。打開(kāi)winhex軟件,點(diǎn)擊“工具”下拉菜單中的“打開(kāi)磁盤(pán)”,選擇“物理磁盤(pán)”中的“RMl:Ceneric STORAGE DEVICE(O.9G,USB)”,單擊“確定”按鈕,得到該SD卡第一個(gè)物理扇區的數據。該SD卡在偏移量從446開(kāi)始的16個(gè)字節有數據“00 03 3D 00 06 OD ED DB F9 00 00 OO 07 5F 1E 00”,該扇區結束的兩個(gè)字節為“55AA”,其余部分數據均為“00”。

將SD卡取出,插入本電路的SD卡座中,用示波器連接D0、CLK和DI線(xiàn),接通電源,測量SPI總線(xiàn)上的波形。

本設計利用dsPIC33FJ64GP706的SPI接口實(shí)現了對SD存儲卡的操作,可以把SD卡和dsPIC33F系列DSC兩方面的優(yōu)點(diǎn)集中到一個(gè)嵌入式系統中,有較高的利用價(jià)值。

上拉電阻相關(guān)文章:上拉電阻原理


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>