0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于FPGA技術(shù)實現(xiàn)SD模式設(shè)備接口的設(shè)計方案

牽手一起夢 ? 來源:網(wǎng)絡(luò)整理 ? 作者:佚名 ? 2020-01-16 10:00 ? 次閱讀

SD存儲卡接口定義了兩種通信模式,SD模式和SPI模式。分析了SD傳輸協(xié)議后,給出了一種SD模式設(shè)備接口的設(shè)計方案。該設(shè)計能夠自動解析主機發(fā)送的命令并響應(yīng),與Flash控制器相連后可以對Flash進行讀寫操作。為了解決數(shù)據(jù)存取的時序問題,使用了數(shù)據(jù)緩存技術(shù)。FPGA驗證表明,該接口能夠被電腦識別為SD卡,達到了設(shè)計目標。

1、引言

SD卡(Secure Digital Card)是“安全數(shù)碼存儲卡”的簡稱,于1999年8月由美國SanDisk公司、日本東芝松下公司共同開發(fā)研制成功。隨著數(shù)碼產(chǎn)品的廣泛使用,目前SD卡已經(jīng)成為消費數(shù)碼產(chǎn)品設(shè)備中最廣泛的一種存儲卡。在手機中,大量的安全增值業(yè)務(wù)設(shè)計就是通過SD接口實現(xiàn)的。SD物理層規(guī)范定義了兩種可選擇的通信協(xié)議:SD模式和SPI模式。

本文在研究了SD物理層規(guī)范的基礎(chǔ)上,實現(xiàn)SD設(shè)備接口SD模式的前端設(shè)計,并進行了FPGA原型驗證。

2、SD存儲卡接口SD模式介紹的書寫規(guī)則

SD卡與控制器之間通過以下9線連接:時鐘CLK、命令CMD、數(shù)據(jù)D0~D3、電源VDD和兩根地線VSS。其總線拓撲結(jié)構(gòu)如圖1所示。命令和響應(yīng)在CMD線上傳輸,數(shù)據(jù)在D0(標準總線模式)或D0~D3(寬總線模式)線上傳輸。

SD卡的所有命令都是6字節(jié)長度。一個命令總是以起始位(0)開始,后跟傳輸方向位(1),接下是6位命令索引,然后是32位命令參數(shù),CRC7校驗位,結(jié)束位(1)。SD的響應(yīng)分為R1、R1b、R2、R3、R6、R7六種,其中R1、R1b、R3、R6、R7為6字節(jié)長度。R2為17字節(jié)長度,用于讀取SD卡的CID/CSD寄存器內(nèi)容。一個響應(yīng)總是以起始位(0)開始,后跟一個傳輸方向位(0)。除了R3響應(yīng)類型,所有的響應(yīng)都有CRC保護。以一個結(jié)束位(1)結(jié)束。SD數(shù)據(jù)傳輸以塊為單位,每個塊總是由數(shù)據(jù)起始位(0)、數(shù)據(jù)位、CRC16校驗位和數(shù)據(jù)結(jié)束位(1)組成。

基于FPGA技術(shù)實現(xiàn)SD模式設(shè)備接口的設(shè)計方案

圖1 SD卡SD模式的總線拓撲結(jié)構(gòu)

3、整體設(shè)計架構(gòu)

本設(shè)計的一端為SD存儲卡標準接口,與讀卡器連接。為了使接口有通用性,另一端與Flash控制器連接,從而達到與不同型號Flash連接的目的。本設(shè)計是連接讀卡器和Flash控制器的一個中間模塊。能夠?qū)ψx卡器發(fā)送的命令進行解析并響應(yīng),通過Flash控制器對Flash進行讀寫操作。整體設(shè)計方案如圖2所示。

基于FPGA技術(shù)實現(xiàn)SD模式設(shè)備接口的設(shè)計方案

圖2 設(shè)計方案

4、 結(jié)構(gòu)設(shè)計

根據(jù)SD接口功能,將其進行詳細的劃分,由以下幾個部分組成:命令收發(fā)模塊,數(shù)據(jù)收發(fā)模塊,狀態(tài)控制模塊和校驗?zāi)K。SD模塊結(jié)構(gòu)如圖3所示。

4.1 命令收發(fā)模塊

該模塊的結(jié)構(gòu)如圖4所示。命令接收與響應(yīng)發(fā)送都是在命令線CMD上傳輸?shù)?,所以?a target="_blank">端口為一個三態(tài)門,由輸出使能信號En控制是否輸出。命令接收時,首先檢測命令起始位,檢測到起始位后計數(shù)器開始工作。當接收完一個完整命令,發(fā)出接收完成信號End,分別得到移位寄存器中對應(yīng)的命令索引,命令參數(shù),命令校驗。命令接收過程中,同時將數(shù)據(jù)傳給CRC7校驗?zāi)K,用于生成校驗數(shù)據(jù)。響應(yīng)發(fā)送時,模塊根據(jù)狀態(tài)控制模塊給出的響應(yīng)類型產(chǎn)生對應(yīng)的響應(yīng)內(nèi)容,當接收到發(fā)送使能信號Start后,給出發(fā)送使能信號En,并將響應(yīng)的內(nèi)容通過移位寄存器發(fā)送出去。響應(yīng)內(nèi)容發(fā)送完成后給出響應(yīng)完成信號Rsp_over。

基于FPGA技術(shù)實現(xiàn)SD模式設(shè)備接口的設(shè)計方案

圖3 模塊結(jié)構(gòu)

基于FPGA技術(shù)實現(xiàn)SD模式設(shè)備接口的設(shè)計方案

圖4 命令接收與響應(yīng)模塊

4.2 數(shù)據(jù)收發(fā)模塊

該模塊的結(jié)構(gòu)如圖5所示。數(shù)據(jù)線也是雙向的。Width信號指明當前數(shù)據(jù)傳輸模式為標準總線模式或?qū)捒偩€模式。Size信號指示每個數(shù)據(jù)塊包含的字節(jié)數(shù)。該模塊包含兩個數(shù)據(jù)緩沖,接收緩沖RxFIFO和發(fā)送緩沖TrFIFO,數(shù)據(jù)緩沖位寬16比特,深度為256,這是因為數(shù)據(jù)塊最大為512字節(jié)。數(shù)據(jù)接收狀態(tài)時,首先檢測數(shù)據(jù)起始位,檢測到起始位后計數(shù)器開始工作。接收Size個字節(jié)的數(shù)據(jù)后,接收CRC16校驗位,最后完成數(shù)據(jù)塊接收,發(fā)出接收完成信號End。數(shù)據(jù)接收過程中,每接收16位數(shù)據(jù)給出寫入信號Wr,將數(shù)據(jù)寫入RxFIFO。如果RxFIFO滿,給出Busy信號,主機進入數(shù)據(jù)發(fā)送等待。數(shù)據(jù)發(fā)送狀態(tài)時,接收控制器收到Start信號后,開始發(fā)出Rd信號讀取TrFIFO數(shù)據(jù),并將數(shù)據(jù)傳給移位寄存器,使能數(shù)據(jù)輸出控制信號Out_en,移位寄存器根據(jù)數(shù)據(jù)傳輸模式將數(shù)據(jù)輸出。

基于FPGA技術(shù)實現(xiàn)SD模式設(shè)備接口的設(shè)計方案

圖5 數(shù)據(jù)收發(fā)模塊

4.3 狀態(tài)控制模塊

根據(jù)接收模塊傳送的命令編號產(chǎn)生與之對應(yīng)的命令響應(yīng)類型,進一步解析接收模塊傳送的命令參數(shù)。工作過程共有9個狀態(tài),狀態(tài)間的轉(zhuǎn)移關(guān)系如圖6所示。接收到CMD0命令后都會從其它狀態(tài)進入到空閑狀態(tài)。

基于FPGA技術(shù)實現(xiàn)SD模式設(shè)備接口的設(shè)計方案

圖6 狀態(tài)轉(zhuǎn)移

4.4 校驗?zāi)K

CRC7負責(zé)校驗命令收發(fā)模塊中的命令和響應(yīng);CRC16負責(zé)校驗數(shù)據(jù)收發(fā)模塊中的數(shù)據(jù)。

5、 驗證與測試

開發(fā)測試平臺使用的是Altera的CycloneII系列FPGA開發(fā)板。開發(fā)板上有一個SD接口。測試平臺的實物如圖7所示。開發(fā)板可以通過一個PCB板SD接口與電腦SD接口連接,利用電腦對設(shè)計進行驗證。

圖7 測試平臺

硬件調(diào)試過程中,采用內(nèi)嵌式邏輯分析儀(SignalTapII)來采集相應(yīng)的數(shù)據(jù)波形。圖8是采集到的識別SD卡命令與響應(yīng)波形圖。從圖中可以看出,該設(shè)計可以正確響應(yīng)主機命令,完成識別過程。

圖9中虛線所圈是將設(shè)計下載到FPGA開發(fā)板,與電腦相連接后被識別為SD存儲卡標記,可以看出該設(shè)計可以被電腦正確識別。

6、結(jié)束語

本文實現(xiàn)了一種SD存儲卡接口SD模式IP核的設(shè)計與實現(xiàn)。該設(shè)計能夠?qū)χ鳈C命令進行自動解析和回復(fù),與Flash控制器連接后可以直接對Flash進行讀寫操作。對該設(shè)計進行FPGA功能驗證,能夠被電腦識別為SD接口,從而說明的設(shè)計的正確性和實用性。利用SYNOPSYS公司的EDA工具對該模塊進行綜合,并進行時序和面積的優(yōu)化,在SMIC0。18μm工藝下最大工作頻率為100MHz,整個設(shè)計綜合后為0.6萬門。

基于FPGA技術(shù)實現(xiàn)SD模式設(shè)備接口的設(shè)計方案

圖8 通信過程

基于FPGA技術(shù)實現(xiàn)SD模式設(shè)備接口的設(shè)計方案

圖9 電腦識別

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1620

    文章

    21510

    瀏覽量

    598902
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    15885

    瀏覽量

    175357
  • 讀卡器
    +關(guān)注

    關(guān)注

    2

    文章

    407

    瀏覽量

    39210
收藏 人收藏

    評論

    相關(guān)推薦

    基于FPGA的I2C SLAVE模式總線的設(shè)計方案

    本文以標準的I2C 總線協(xié)議為基礎(chǔ),提出了一種基于FPGA的I2C SLAVE 模式總線的設(shè)計方案。方案主要介紹了SLAVE 模式的特點。給
    發(fā)表于 02-26 11:39 ?1.3w次閱讀

    基于FPGA技術(shù)的IDE硬盤接口的設(shè)計

    本文介紹了一種基于 FPGA 技術(shù)的IDE 硬盤接口的設(shè)計。該卡提供兩個符合ATA-6 規(guī)范的接口,采用FPGA
    發(fā)表于 01-12 14:38

    WIFI無線技術(shù)各種熱門設(shè)計方案~

    基于WiFi的無線測控系統(tǒng)設(shè)計與實現(xiàn)一種基于WIFI的室內(nèi)定位系統(tǒng)設(shè)計與實現(xiàn)簡述基于WIFI停車場方案闡述藍牙與WIFI網(wǎng)絡(luò)互聯(lián)設(shè)計方案詳述銀行營業(yè)點WIFI認證管理
    發(fā)表于 12-13 15:26

    基于ARM和FPGA的環(huán)形緩沖區(qū)接口設(shè)計方案

    摘要:目前,基于ARM和FPGA架構(gòu)的嵌入式系統(tǒng)在通信設(shè)備中得到廣泛的應(yīng)用。文章提出了一種基于ARM和FPGA的環(huán)形緩沖區(qū)接口設(shè)計方案,從而
    發(fā)表于 05-30 05:00

    基于FPGA的數(shù)據(jù)采集控制器IP核的設(shè)計方案實現(xiàn)方法研究

    此提供了新的解決方案。IP核(IP Core)是具有特定電路功能的硬件描述語言程序,可較方便地進行修改和定制,以提高設(shè)計效率[3]。本文研究了基于FPGA的數(shù)據(jù)采集控制器IP 核的設(shè)計方案
    發(fā)表于 07-09 07:23

    求一款在PCI總線上利用FPGA技術(shù)設(shè)計PCI總線接口設(shè)計方案

    PCI總線特點及開發(fā)現(xiàn)狀PCI接口配置空間的實現(xiàn)求一款在PCI總線上利用FPGA技術(shù)設(shè)計PCI總線接口
    發(fā)表于 04-15 06:17

    基于FPGA 的IDE硬盤接口卡的實現(xiàn)

    本文介紹了一種基于FPGA 技術(shù)的IDE 硬盤接口的設(shè)計。該卡提供兩個符合ATA- 6 規(guī)范的接口,采用FPGA
    發(fā)表于 07-22 15:58 ?0次下載

    基于FPGA的IDE硬盤接口卡的實現(xiàn)

    本文介紹了一種基于FPGA技術(shù)的IDE硬盤接口的設(shè)計。該卡提供兩個符合ATA-6規(guī)范的接口,采用FPGA
    發(fā)表于 08-09 15:11 ?22次下載

    采用FPGA技術(shù)的智能導(dǎo)盲犬設(shè)計方案

    采用FPGA技術(shù)的智能導(dǎo)盲犬設(shè)計方案 眾所周知眼晴是“心靈之窗”,而對于突然失去或從未擁有過“心靈之窗”的盲人來說,生活上的困難與心理上
    發(fā)表于 03-22 09:40 ?1051次閱讀
    采用<b class='flag-5'>FPGA</b><b class='flag-5'>技術(shù)</b>的智能導(dǎo)盲犬<b class='flag-5'>設(shè)計方案</b>

    多種EDA工具的FPGA設(shè)計方案

    多種EDA工具的FPGA設(shè)計方案 概述:介紹了利用多種EDA工具進行FPGA設(shè)計的實現(xiàn)原理及方法,其中包括設(shè)計輸入、綜合、功能仿真、實現(xiàn)、
    發(fā)表于 05-25 17:56 ?712次閱讀
    多種EDA工具的<b class='flag-5'>FPGA</b><b class='flag-5'>設(shè)計方案</b>

    基于FPGA技術(shù)的RS232接口時序電路設(shè)計方案

    基于FPGA技術(shù)的RS232接口時序電路設(shè)計方案
    發(fā)表于 01-26 11:36 ?29次下載

    AT89C52單片機與SD實現(xiàn)通訊的設(shè)計方案

    。然而,AT89C52單片機沒有集成SD卡控制器接口,若選用SD模式通訊就無形中增加了產(chǎn)品的硬件成本。在SD卡數(shù)據(jù)讀寫時間要求不是很嚴格的情
    發(fā)表于 05-17 15:37 ?2999次閱讀
    AT89C52單片機與<b class='flag-5'>SD</b>卡<b class='flag-5'>實現(xiàn)</b>通訊的<b class='flag-5'>設(shè)計方案</b>

    如何使用FPGA實現(xiàn)SD卡控制器的設(shè)計

    FPGA為平臺,設(shè)計了采用SPI接口SD卡控制器。整體設(shè)計用Verilog HDL硬件描述語言實現(xiàn),同時采用數(shù)據(jù)緩存(First In First Out,F(xiàn)IFO)
    發(fā)表于 12-22 17:07 ?2次下載
    如何使用<b class='flag-5'>FPGA</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>SD</b>卡控制器的設(shè)計

    SD nand 與 SD卡的SPI模式驅(qū)動

    文章目錄SDnand與SD卡的SPI模式驅(qū)動1.概述2.SPI接口模式SD接口
    的頭像 發(fā)表于 05-10 17:45 ?1154次閱讀
    <b class='flag-5'>SD</b> nand 與 <b class='flag-5'>SD</b>卡的SPI<b class='flag-5'>模式</b>驅(qū)動

    怎么通過FPGA采取SD模式實現(xiàn)Micro SD卡的驅(qū)動

    在這篇文章,進入正題,說一說怎么通過FPGA采取SD模式實現(xiàn)Micro SD 卡的驅(qū)動,也就是怎么去讀寫 Micro
    的頭像 發(fā)表于 09-19 11:48 ?1722次閱讀
    怎么通過<b class='flag-5'>FPGA</b>采取<b class='flag-5'>SD</b><b class='flag-5'>模式</b><b class='flag-5'>實現(xiàn)</b>Micro <b class='flag-5'>SD</b>卡的驅(qū)動