九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

SD卡引腳及spi模式基本操作過程

  • 資源ID:10027954       資源大?。?span id="24d9guoke414" class="font-tahoma">345KB        全文頁數(shù):13頁
  • 資源格式: DOC        下載積分:15積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要15積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請(qǐng)知曉。

SD卡引腳及spi模式基本操作過程

SD 卡引腳及 spi 模式基本操作過程 摘自網(wǎng)絡(luò) 對(duì)于 SD 卡的硬件結(jié)構(gòu) 在官方的文檔上有很詳細(xì)的介紹 如 SD 卡內(nèi)的存儲(chǔ)器結(jié)構(gòu) 存儲(chǔ)單元組織方式等內(nèi)容 要實(shí)現(xiàn)對(duì)它的讀寫 最核心的是它的時(shí)序 筆者在經(jīng)過了實(shí)際 的測(cè)試后 使用 51 單片機(jī)成功實(shí)現(xiàn)了對(duì) SD 卡的扇區(qū)讀寫 并對(duì)其讀寫速度進(jìn)行了評(píng)估 下面先來講解 SD 卡的讀寫時(shí)序 SD 卡的引腳定義 SD 卡引腳功能詳述 SD 模式 SPI 模式引腳 編號(hào) 名稱 類型 描述 名稱 類型 描述 1 CD DAT3 IO 或 PP 卡檢測(cè) 數(shù)據(jù)線 3 CS I 片選 2 CMD PP 命令 回應(yīng) DI I 數(shù)據(jù)輸入 3 VSS1 S 電源地 VSS S 電源地 4 VDD S 電源 VDD S 電源 5 CLK I 時(shí)鐘 SCLK I 時(shí)鐘 6 VSS2 S 電源地 VSS2 S 電源地 7 DAT0 IO 或 PP 數(shù)據(jù)線 0 DO O 或 PP 數(shù)據(jù)輸出 8 DAT1 IO 或 PP 數(shù)據(jù)線 1 RSV 9 DAT2 IO 或 PP 數(shù)據(jù)線 2 RSV 注 S 電源供給 I 輸入 O 采用推拉驅(qū)動(dòng)的輸出 PP 采用推拉驅(qū)動(dòng)的輸入輸出 SD 卡 SPI 模式下與單片機(jī)的連接圖 SD 卡支持兩種總線方式 SD 方式與 SPI 方式 其中 SD 方式采用 6 線制 使用 CLK CMD DAT0 DAT3 進(jìn)行數(shù)據(jù)通信 而 SPI 方式采用 4 線制 使用 CS CLK DataIn DataOut 進(jìn)行數(shù)據(jù)通信 SD 方式時(shí)的數(shù)據(jù)傳輸速度與 SPI 方式要快 采用單片機(jī)對(duì) SD 卡進(jìn)行讀寫時(shí)一般都采用 SPI 模式 采用不同的初始化方式可以使 SD 卡工作于 SD 方式或 SPI 方式 這里只對(duì)其 SPI 方式進(jìn)行介紹 SPI 方式驅(qū)動(dòng) SD 卡的方法 SD 卡的 SPI 通信接口使其可以通過 SPI 通道進(jìn)行數(shù)據(jù)讀寫 從應(yīng)用的角度來看 采 用 SPI 接口的好處在于 很多單片機(jī)內(nèi)部自帶 SPI 控制器 不光給開發(fā)上帶來方便 同時(shí) 也見降低了開發(fā)成本 然而 它也有不好的地方 如失去了 SD 卡的性能優(yōu)勢(shì) 要解決這 一問題 就要用 SD 方式 因?yàn)樗峁└蟮目偩€數(shù)據(jù)帶寬 SPI 接口的選用是在上電初 始時(shí)向其寫入第一個(gè)命令時(shí)進(jìn)行的 以下介紹 SD 卡的驅(qū)動(dòng)方法 只實(shí)現(xiàn)簡單的扇區(qū)讀寫 1 命令與數(shù)據(jù)傳輸 1 命令傳輸 SD 卡自身有完備的命令系統(tǒng) 以實(shí)現(xiàn)各項(xiàng)操作 命令格式如下 命令的傳輸過程采用發(fā)送應(yīng)答機(jī)制 過程如下 每一個(gè)命令都有自己命令應(yīng)答格式 在 SPI 模式中定義了三種應(yīng)答格式 如下表所示 字節(jié) 位 含義 7 開始位 始終為 0 6 參數(shù)錯(cuò)誤 5 地址錯(cuò)誤 4 擦除序列錯(cuò)誤 3 CRC 錯(cuò)誤 2 非法命令 1 擦除復(fù)位 1 0 閑置狀態(tài) 字節(jié) 位 含義 7 開始位 始終為 0 6 參數(shù)錯(cuò)誤 5 地址錯(cuò)誤 4 擦除序列錯(cuò)誤 3 CRC 錯(cuò)誤 2 非法命令 1 擦除復(fù)位 1 0 閑置狀態(tài) 7 溢出 CSD 覆蓋 6 擦除參數(shù) 5 寫保護(hù)非法 4 卡 ECC 失敗 3 卡控制器錯(cuò)誤 2 未知錯(cuò)誤 1 寫保護(hù)擦除跳過 鎖 解鎖失敗 2 0 鎖卡 字節(jié) 位 含義 7 開始位 始終為 0 6 參數(shù)錯(cuò)誤 5 地址錯(cuò)誤 4 擦除序列錯(cuò)誤 3 CRC 錯(cuò)誤 1 2 非法命令 1 擦除復(fù)位 0 閑置狀態(tài) 2 5 全部 操作條件寄存器 高位在前 寫命令的例程 C 程序 向 SD 卡中寫入命令 并返回回應(yīng)的第二個(gè)字節(jié) unsigned char Write Command SD unsigned char CMD unsigned char tmp unsigned char retry 0 unsigned char i 禁止 SD 卡片選 SPI CS 1 發(fā)送 8 個(gè)時(shí)鐘信號(hào) Write Byte SD 0 xFF 使能 SD 卡片選 SPI CS 0 向 SD 卡發(fā)送 6 字節(jié)命令 for i 0 i 0 x06 i Write Byte SD CMD 獲得 16 位的回應(yīng) Read Byte SD read the first byte ignore it do 讀取后 8 位 tmp Read Byte SD retry while tmp 0 xff return tmp 初始化 SD 卡的初始化是非常重要的 只有進(jìn)行了正確的初始化 才能進(jìn)行后面的各項(xiàng)操作 在初始化過程中 SPI 的時(shí)鐘不能太快 否則會(huì)造初始化失敗 在初始化成功后 應(yīng)盡量 提高 SPI 的速率 在剛開始要先發(fā)送至少 74 個(gè)時(shí)鐘信號(hào) 這是必須的 在很多讀者的實(shí) 驗(yàn)中 很多是因?yàn)槭韬隽诉@一點(diǎn) 而使初始化不成功 隨后就是寫入兩個(gè)命令 CMD0 與 CMD1 使 SD 卡進(jìn)入 SPI 模式 初始化時(shí)序圖 初始化例程 C 程序 初始化 SD 卡到 SPI 模式 unsigned char SD Init unsigned char retry temp unsigned char i unsigned char CMD 0 x40 0 x00 0 x00 0 x00 0 x00 0 x95 SD Port Init 初始化驅(qū)動(dòng)端口 Init Flag 1 將初始化標(biāo)志置 1 for i 0 isector count sectorBuffer dat 6 vinf sector count sector count sectorBuffer dat 7 vinf sector count sector count sectorBuffer dat 8 獲取 multiplier vinf sector multiply sectorBuffer dat 9 vinf sector multiply sector multiply sectorBuffer dat 10 獲取 SD 卡的容量 vinf size MB vinf sector count 9 vinf sector multiply get the name of the card Read CID SD sectorBuffer dat vinf name 0 sectorBuffer dat 3 vinf name 1 sectorBuffer dat 4 vinf name 2 sectorBuffer dat 5 vinf name 3 sectorBuffer dat 6 vinf name 4 sectorBuffer dat 7 vinf name 5 0 x00 end flag 以上程序?qū)⑿畔⒀b載到一個(gè)結(jié)構(gòu)體中 這個(gè)結(jié)構(gòu)體的定義如下 typedef struct SD VOLUME INFO SD SD Card info unsigned int size MB unsigned char sector multiply unsigned int sector count unsigned char name 6 VOLUME INFO TYPE 扇區(qū)讀 扇區(qū)讀是對(duì) SD 卡驅(qū)動(dòng)的目的之一 SD 卡的每一個(gè)扇區(qū)中有 512 個(gè)字節(jié) 一次扇區(qū) 讀操作將把某一個(gè)扇區(qū)內(nèi)的 512 個(gè)字節(jié)全部讀出 過程很簡單 先寫入命令 在得到相應(yīng) 的回應(yīng)后 開始數(shù)據(jù)讀取 扇區(qū)讀的時(shí)序 扇區(qū)讀的程序例程 C 程序 unsigned char SD Read Sector unsigned long sector unsigned char buffer unsigned char retry 命令 16 unsigned char CMD 0 x51 0 x00 0 x00 0 x00 0 x00 0 xFF unsigned char temp 地址變換 由邏輯塊地址轉(zhuǎn)為字節(jié)地址 sector sector 24 CMD 2 sector CMD 3 sector 將命令 16 寫入 SD 卡 retry 0 do 為了保證寫入命令 一共寫 100 次 temp Write Command MMC CMD retry if retry 100 return READ BLOCK ERROR block write Error while temp 0 Read Start Byte form MMC SD Card FEh Start Byte Now data is ready you can read it out while Read Byte MMC 0 xfe readPos 0 SD get data 512 buffer 512 字節(jié)被讀出到 buffer 中 return 0 其中 SD get data 函數(shù)如下 獲取數(shù)據(jù)到 buffer 中 void SD get data unsigned int Bytes unsigned char buffer unsigned int j for j 0 j Bytes j buffer Read Byte SD 扇區(qū)寫 扇區(qū)寫是 SD 卡驅(qū)動(dòng)的另一目的 每次扇區(qū)寫操作將向 SD 卡的某個(gè)扇區(qū)中寫入 512 個(gè)字節(jié) 過程與扇區(qū)讀相似 只是數(shù)據(jù)的方向相反與寫入命令不同而已 扇區(qū)寫的時(shí)序 扇區(qū)寫的程序例程 C 程序 寫 512 個(gè)字節(jié)到 SD 卡的某一個(gè)扇區(qū)中去 返回 0 說明寫入成功 unsigned char SD write sector unsigned long addr unsigned char Buffer unsigned char tmp retry unsigned int i 命令 24 unsigned char CMD 0 x58 0 x00 0 x00 0 x00 0 x00 0 xFF addr addr 24 CMD 2 addr CMD 3 addr 寫命令 24 到 SD 卡中去 retry 0 do 為了可靠寫入 寫 100 次 tmp Write Command SD CMD retry if retry 100 return tmp send commamd Error while tmp 0 在寫之前先產(chǎn)生 100 個(gè)時(shí)鐘信號(hào) for i 0 i 100 i Read Byte SD 寫入開始字節(jié) Write Byte MMC 0 xFE 現(xiàn)在可以寫入 512 個(gè)字節(jié) for i 0 i 512 i Write Byte MMC Buffer CRC Byte Write Byte MMC 0 xFF Dummy CRC Write Byte MMC 0 xFF CRC Code tmp Read Byte MMC read response if tmp return WRITE BLOCK ERROR Error 等到 SD 卡不忙為止 因?yàn)閿?shù)據(jù)被接受后 SD 卡在向儲(chǔ)存陣列中編程數(shù)據(jù) while Read Byte MMC 0 xff 禁止 SD 卡 SPI CS 1 return 0 寫入成功 此上內(nèi)容在筆者的實(shí)驗(yàn)中都已調(diào)試通過 單片機(jī)采用 STC89LE 單片機(jī) SD 卡的初 始化電壓為 2 0V 3 6V 操作電壓為 3 1V 3 5V 因此不能用 5V 單片機(jī) 或進(jìn)行分壓處 理 工作于 22 1184M 的時(shí)鐘下 由于所采用的單片機(jī)中沒硬件 SPI 采用軟件模擬 SPI 因此讀寫速率都較慢 如果要半 SD 卡應(yīng)用于音頻 視頻等要求高速場(chǎng)合 則需要選 用有硬件 SPI 的控制器 或使用 SD 模式 當(dāng)然這就需要各位讀者對(duì) SD 模式加以研究 有了 SPI 模式的基礎(chǔ) SD 模式應(yīng)該不是什么難事

注意事項(xiàng)

本文(SD卡引腳及spi模式基本操作過程)為本站會(huì)員(gbs****77)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!