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

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

3天內不再提示

基于FPGA技術實現SD模式設備接口的設計方案

牽手一起夢 ? 來源:網絡整理 ? 作者:佚名 ? 2020-01-16 10:00 ? 次閱讀

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

1、引言

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

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

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

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

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

基于FPGA技術實現SD模式設備接口的設計方案

圖1 SD卡SD模式的總線拓撲結構

3、整體設計架構

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

基于FPGA技術實現SD模式設備接口的設計方案

圖2 設計方案

4、 結構設計

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

4.1 命令收發(fā)模塊

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

基于FPGA技術實現SD模式設備接口的設計方案

圖3 模塊結構

基于FPGA技術實現SD模式設備接口的設計方案

圖4 命令接收與響應模塊

4.2 數據收發(fā)模塊

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

基于FPGA技術實現SD模式設備接口的設計方案

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

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

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

基于FPGA技術實現SD模式設備接口的設計方案

圖6 狀態(tài)轉移

4.4 校驗模塊

CRC7負責校驗命令收發(fā)模塊中的命令和響應;CRC16負責校驗數據收發(fā)模塊中的數據。

5、 驗證與測試

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

圖7 測試平臺

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

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

6、結束語

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

基于FPGA技術實現SD模式設備接口的設計方案

圖8 通信過程

基于FPGA技術實現SD模式設備接口的設計方案

圖9 電腦識別

責任編輯:gt

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

    關注

    1629

    文章

    21748

    瀏覽量

    603909
  • 控制器
    +關注

    關注

    112

    文章

    16383

    瀏覽量

    178334
  • 讀卡器
    +關注

    關注

    2

    文章

    417

    瀏覽量

    39381
收藏 人收藏

    評論

    相關推薦

    基于FPGA的I2C SLAVE模式總線的設計方案

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

    基于FPGA技術的IDE硬盤接口的設計

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

    WIFI無線技術各種熱門設計方案~

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

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

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

    基于FPGA的數據采集控制器IP核的設計方案實現方法研究

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

    求一款在PCI總線上利用FPGA技術設計PCI總線接口設計方案

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

    基于FPGA 的IDE硬盤接口卡的實現

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

    基于FPGA的IDE硬盤接口卡的實現

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

    采用FPGA技術的智能導盲犬設計方案

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

    多種EDA工具的FPGA設計方案

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

    基于FPGA技術的RS232接口時序電路設計方案

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

    AT89C52單片機與SD實現通訊的設計方案

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

    如何使用FPGA實現SD卡控制器的設計

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

    SD nand 與 SD卡的SPI模式驅動

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

    怎么通過FPGA采取SD模式實現Micro SD卡的驅動

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