日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]dsPIC33F系列DSC的 SD存儲卡接口設計

引 言
    SD存儲卡(Secure Digital Memory Card)由SD聯(lián)盟(松下、東芝及美國SanDisk公司)于1999年8月共同開發(fā)研制,是一種基于半導體快閃存儲器的新一代存儲設備,被廣泛地使用在便攜式裝置上,例如數(shù)碼相機、PDA和多媒體播放器等。大小猶如一張郵票的SD存儲卡,重量只有2g,卻擁有高存儲容量、快速數(shù)據傳輸率、極大的移動靈活性以及很好的安全性。
    SD卡支持SD和SPI兩種傳輸模式,主機系統(tǒng)可以選擇其中任意一種模式。SD模式允許4線的高速數(shù)據傳輸。SPI模式使用通用的SPI接口。這種模式相對于SD模式的不足之處是喪失了速度,但是卻有著接口簡單易于實現(xiàn)的優(yōu)點。SD卡的SPI模式使得SD卡可以和市場上大部分微控制器進行通信。
    Microchip公司的dsPIC33F系列通用DSC(數(shù)字信號控制器),是在16位MCU架構基礎之上添加了DSP引擎,從而具有數(shù)字信號處理功能的微控制器產品。該系列DSC集成了DCI(數(shù)據轉換器)接口,尤其適用于語音和音頻的應用。
    本文首先簡要介紹SD卡的相關規(guī)范,之后利用dsPIC33FJ64GP706通用DSC設計了SD卡接口電路,最后通過SPI模式實現(xiàn)了對SD卡的基本操作。本設計可以使SD存儲卡成為類似嵌入式系統(tǒng)產品的數(shù)據存儲器。


1 SD卡相關規(guī)范簡介
    SD聯(lián)盟在2000年聯(lián)合發(fā)布了SD卡規(guī)范1.O版本,包括3個部分:物理層規(guī)范,文件系統(tǒng)規(guī)范以及安全規(guī)范。SD卡規(guī)范V1.0采用FAT的文件系統(tǒng),因此最大存儲容量可以達到2 GB。2006年,SD卡規(guī)范V2.0發(fā)布。新規(guī)范根據容量定義了兩種卡,即標準容量SD卡和大容量SD卡。前者和1.O版本保持兼容,后者由于采用了FAT32文件系統(tǒng),存儲容量突破了2 GB的限制。新規(guī)范定義的最大容量為32 GB。但是由于成本的原因,標準容量SD卡仍然是市場的主流產品。在以微控制器為核心的嵌入式系統(tǒng)中,主要使用SD卡的SPI。模式進行通信,這使得標準容量的SD卡更為合適。本設計適用于2GB以下任意容量的SD卡。
1.1 概 述
    SD存儲卡在2.7~3.6 V電壓下正常工作,工作頻率為0~25MHz。圖1是普通SD卡的外形和引腳排列。在SPI模式時,第8和第9腳不使用。表1列出了各引腳在SPI模式時的定義和功能描述。

    圖中的WP是一個機械滑片,通過滑動到不同的位置來對SD卡進行寫保護。
    SD卡內部有6個和接口相關的寄存器:OCR、CID、CSD、RCA、DSR和SCR。它們只能通過各自對應的指令來訪問。OCR、CID、CSD和SCR攜帶SD卡的規(guī)范信息,RCA和DSR作為配置寄存器裝載了SD卡的配置參數(shù)。
1.2 SPI協(xié)議
   
系統(tǒng)上電之后,如果主機在將CS線聲明為低電平的同時發(fā)送復位指令(CMDO),則SPI模式啟用。SD卡在SPI模式下按字節(jié)進行通信,每一個指令和數(shù)據塊都由數(shù)個字節(jié)組成并與CS信號對齊(也就是長度為8個時鐘周期的整數(shù)倍)。
    主機和SD卡之間是通過指令與響應來實現(xiàn)交互的。
    圖2給出了SPI模式下基本的指令與響應的時序。

    圖中一個方格代表一個字節(jié),H為邏輯全“1”,L為邏輯全“O”,X代表未知,Z為高阻態(tài)。NCS、NEC和NCR都是包含N個8時鐘周期,具體N的取值范圍在SD卡規(guī)范中給出了詳細的說明。
    SD卡所有的指令,長度都是6字節(jié)。表2列出了指令格式。

    在有效接收到主機發(fā)來的指令之后,SD卡將會把對應的響應數(shù)據段放在總線上,主機根據響應的內容判斷SD卡的狀態(tài)。所有的響應都是MSB優(yōu)先傳輸。SD卡有4種類型的響應格式,分別為R1、R1b、R2、R3。
    除了SEND_STATUS和READ_OCR指令外,其他指令的響應都是格式R1。格式R1的長度為1字節(jié),并且最高位總是0。其余每位均是錯誤指示,在指令接收過程中發(fā)生了什么樣的錯誤,對應的錯誤位就會是“1”。R1b和R1具有相同的格式,它將伴隨一個附加的busy信號。busy信號的長度可以是任意個字節(jié)。全零表示卡處在“忙”的狀態(tài)。格式R2的長度為2字節(jié),它是指令SEND_STATUS的響應。它的高字節(jié)和R1相同,低字節(jié)同樣作為狀態(tài)指示。當接收到了READ_OCR指令時,SD卡將會產生格式R3的響應,該響應的長度為5字節(jié)。最高字節(jié)和R1相同,其余的4字節(jié)將包含SD卡的OCR寄存器信息。
    在SD卡規(guī)范中詳細描述了每條指令的格式內容及作用,并給出了各條指令所對應的響應。對于每種響應的信息也有詳細的說明,具體信息參閱參考文獻。

2 SD卡接口電路設計
    16位的dsPIC33F系列DSC具有高達40 MIPS的指令周期,繼承了Microchip公司之前8位和16位MCU產品的優(yōu)點,并保持著對以往低成本開發(fā)系統(tǒng)的兼容性。dsPIC33FJ64GP706是其中一款64引腳的通用產品,擁有高達64 KB的Flash程序存儲器和16 KB的數(shù)據存儲器。該芯片集成了2個通用SPI接口,本設計使用SPI2模塊來建立和SD存儲卡的通信。
    圖3所示為dsPIC33FJ64GP706與SD卡座的接口電路。為了防止在無卡接入或卡驅動器呈高阻態(tài)時總線懸空,在每根信號線上要接一個上拉電阻,根據SD卡規(guī)范(見參考文獻,第6章),電阻的阻值可以取10~90kΩ??ㄗ腃D引腳是SD卡檢測信號引腳,當有卡插入時,該引腳對地短路。WP是寫保護信號引腳,在卡插入且沒有寫保護時,該引腳對地短路;如果SD卡寫保護或沒有卡插入,該引腳通過上拉電阻接到電源正極。

3 SD卡接口的實現(xiàn)
3.1 選擇SD卡的SPI模式并初始化SD卡

    在上電之后,主機開始發(fā)送時鐘信號,此時的時鐘頻率不能超過400 kHz。主機要連續(xù)發(fā)送至少74個時鐘周期的“1”才能使SD卡準備好通信,然后選擇SPI模式。SD卡進入SPI模式之后,就可以接收來自主機的操作指令了。這時候主機發(fā)送SEND_OP_COND指令,激活卡的初始化過程。在得到正確的響應之后,主機再發(fā)送SEND_CSD指令讀取CSD寄存器的內容。正確響應之后,將SPI總線時鐘頻率提高到10 MHz,初始化過程結束。
3.2 指令和響應交互過程的軟件實現(xiàn)


    typSD_CMD是自定義的結構類型,包含指令索引、CRC和響應格式。最后一個字節(jié)數(shù)據用來說明該指令有無后續(xù)數(shù)據塊,例如READ_SINGLE_BLOCK(單數(shù)據塊讀指令),它需要SD卡發(fā)送一個數(shù)據塊的數(shù)據,因此其后的數(shù)據為“1”。對于指令索引,是把開始位和傳輸位與6位索引值包含在一起的數(shù)據。例如G0_IDLE_STATE的索引值是二進制“000000”,加上開始位“O”和傳輸位“1”,成為“01000000”,即“Ox40”,READ_SINGLE_BLOCK的索引值是“010001”,加上開始位和傳輸位,成為“01010001”即"0x51”。
    定義發(fā)送指令函數(shù)為SendSDCmd(),返回值為從總線上讀取的響應數(shù)據。(具體函數(shù)略——編者注)函數(shù)的第一個參數(shù)是指令列表數(shù)組中相應指令元素的序號,函數(shù)會根據它的值在指令表中查到對應的信息,第二個參數(shù)是指令的附加內容。函數(shù)中CMD_PACKET是按指令格式(見表2)定義的聯(lián)合類型,程序通過查表的方式將指令的內容裝載到該類型定義的變量中,并通過函數(shù)Write_sd()發(fā)送出去。write_sd()的作用是把一個字節(jié)的數(shù)據放到SPI2模塊的burfer里,完成一個字節(jié)的發(fā)送。函數(shù)ReadSd()用來讀取SPI2接收的一個字節(jié)數(shù)據。如果接收的數(shù)據是0xff,則不是響應數(shù)據;如果接收到的響應不為全零,則說明有錯誤發(fā)生。
    以上程序按照圖2所示時序執(zhí)行,來實現(xiàn)一次指令和響應數(shù)據的交互。當某條指令有后續(xù)數(shù)據時,按照規(guī)范中的時序發(fā)送或者讀取數(shù)據。
3.3 讀寫操作的實現(xiàn)
    READ_SINGLE_BLOCK是單數(shù)據塊讀指令,在接收到有效的讀指令后SD卡將會送出一個響應。緊接著是一個帶16位CRC校驗后綴的數(shù)據塊,數(shù)據塊的長度要在之前由SET_BLOCKEN(CMDl6)指令定義,一般為512字節(jié),正好一個扇區(qū)的大小。數(shù)據塊的開始是1字節(jié)的開始令牌,值為“0xFE”,結束是2字節(jié)的CRC。該操作的通信過程如圖4所示。

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

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

4 結果驗證
    將容量為1 GB的SD卡插入SD讀卡器,再將讀卡器插入PC機的USB接口中,此時系統(tǒng)出現(xiàn)“可移動磁盤(H:)”根目錄。打開winhex軟件,點擊“工具”下拉菜單中的“打開磁盤”,選擇“物理磁盤”中的“RMl:Ceneric STORAGE DEVICE(O.9G,USB)”,單擊“確定”按鈕,得到該SD卡第一個物理扇區(qū)的數(shù)據。該SD卡在偏移量從446開始的16個字節(jié)有數(shù)據“00 03 3D 00 06 OD ED DB F9 00 00 OO 07 5F 1E 00”,該扇區(qū)結束的兩個字節(jié)為“55AA”,其余部分數(shù)據均為“00”。
    將SD卡取出,插入本設計電路的SD卡座中,用示波器連接D0、CLK和DI線,接通電源,測量SPI總線上的波形。
    本設計利用dsPIC33FJ64GP706的SPI接口實現(xiàn)了對SD存儲卡的操作,可以把SD卡和dsPIC33F系列DSC兩方面的優(yōu)點集中到一個嵌入式系統(tǒng)中,有較高的利用價值。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

摘 要 :視頻監(jiān)控系統(tǒng)是計算機應用中的重要領域之一。數(shù)字化攝像頭網絡化之后,監(jiān)控系統(tǒng)正在不斷引入新的功能,為使現(xiàn)有監(jiān)控系統(tǒng)能更好地應對復雜環(huán)境,滿足不同監(jiān)控要求,就需要追加新功能,在系統(tǒng)架構與設計上進行調整。因此,如何將...

關鍵字: 智能監(jiān)控 系統(tǒng)架構 模塊化設計 接口設計 數(shù)據傳輸 深度相機

適用于嚴苛應用的穩(wěn)健可靠的3D NAND SD存儲卡

關鍵字: SD存儲卡 閃存芯片

Xilinx FPGA 提供可簡化接口設計的 I/O 模塊和邏輯資源。盡管如此,這些 I/O 模塊以及額外的邏輯仍需設計人員在源 RTL 代碼中配置、驗證、執(zhí)行,并正確連接到系統(tǒng)的其余部分

關鍵字: FPGA Xilinx 存儲器 接口設計 電源技術解析

引 言 PCI 總線(Peripheral Component Interconnect)是Intel公司推出的一種高性能32/64位局部總線,最大數(shù)據傳輸速率為132~264MB/s,是目前使用較為廣泛的一種總...

關鍵字: pci總線 接口設計 數(shù)據采集 電源技術解析 雷達視頻

實際上,每個產品設計必須經歷數(shù)字提取和真實模擬世界。設計前期的一些考慮將焦點放在接口設計上。 20世紀后半葉的技術創(chuàng)新達到空前的速度。不像以前,這個時期的許多進

關鍵字: 接口設計 電源技術解析 建立橋路

隨著工業(yè)技術進步,對數(shù)字控制伺服系統(tǒng)中執(zhí)行效率和集成化程度的要求越來越高。比如用單處理器控制多個伺服系統(tǒng)時,對多通道A/D轉換的效率要求較高。以往較多地使用多路模

關鍵字: ad7890 DSP 接口設計 電源技術解析 轉換器

  引 言  Flash存儲器又稱閃速存儲器,是20世紀80年代末逐漸發(fā)展起來的一種新型半導體不揮發(fā)存儲器。它兼有RAM和ROM的特點,既可以在線擦除、改寫,又能夠在掉電后保持數(shù)據不丟失?! OR Flash是Flas...

關鍵字: 8位單片機 Flash nor 接口設計

1. 引言 AD7237A是美國AD公司推出的一種LC2MOS型雙路12位數(shù)模轉換器。它具有高速、低功耗、寬工作電壓等特點,在工業(yè)上得到了廣泛應用。本文簡要地介紹了AD7237A的基本

關鍵字: d/a轉換器 擴展卡 接口設計 電源技術解析 ad7237a ad公司

DS2450是DALLAS公司生產的單總線四通道逐次逼近式A/D轉換器芯片,它的輸入電壓范圍、轉換精度位數(shù)和報警門限電壓均可編程;每個通道均可用各自的存儲器來存儲電壓范圍設置

關鍵字: a/d轉換器 單總線 單片機 接口設計 電源技術解析 ds2450

嵌入式教程

6897 篇文章

關注

發(fā)布文章

編輯精選

技術子站

關閉