CN1622072A - 一种适用于sd卡的dma传输方法 - Google Patents
一种适用于sd卡的dma传输方法 Download PDFInfo
- Publication number
- CN1622072A CN1622072A CN 200410102975 CN200410102975A CN1622072A CN 1622072 A CN1622072 A CN 1622072A CN 200410102975 CN200410102975 CN 200410102975 CN 200410102975 A CN200410102975 A CN 200410102975A CN 1622072 A CN1622072 A CN 1622072A
- Authority
- CN
- China
- Prior art keywords
- card
- transmission
- transmission method
- data
- priority
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 66
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000004891 communication Methods 0.000 claims abstract description 31
- 238000012546 transfer Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 6
- 230000015572 biosynthetic process Effects 0.000 claims description 4
- 238000013500 data storage Methods 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000001684 chronic effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种用于SD卡的DMA的传输方法,其中CPU能够与SD卡之间进行数据通信,需要传输的数据被存储在SD卡中,CPU通过命令队列控制SD卡的数据传输。如果存在多个客户需要对SD进行访问,需要为该多个客户设置优先级,通过对优先级的控制实现多个客户的访问安排。本发明使得控制CPU只需进行简单的初始化配置,由SD卡接口模块自动完成与SD卡之间的数据传输,极大地节省了CPU的资源,提高了系统的性能。
Description
技术领域
本发明涉及一种DMA的传输方法,尤其涉及一种适用于SD卡的DMA传输方法。
背景技术
随着科技发展的日新月异,消费电子设备中对非易失性存储卡的需求越来越大。非易失性存储卡包括CF卡,SD卡(安全数字SecureDigital)卡,MMC卡,记忆棒(Memory Stick)等,由于SD卡具有体积小、容量大、速度快、成本相对便宜的特点,因此被广泛地应用于手机、数码相机、个人数字助理等消费电子设备中。另外,由于SD卡在物理尺寸、管脚分布及通信协议上都基本与MMC卡兼容,使得MMC卡的控制接口同样可以实现对SD卡的控制,从而极大地扩展了SD卡的使用范围。为了保证不同厂家设计生产的SD卡之间的兼容性,国际上专门成立了SD卡标准组织,负责为SD卡制造和应用制定统一的标准,标准包括SD卡的通信协议、管脚分布、电气特性等。设备应用商只要根据SD卡的标准设计应用程序,就可以保证对市场上各种品牌的SD卡的兼容性。
但是也正因为如此,为了满足不同厂家的需要,使得SD卡的物理层通信协议比一般的存储器(如SD卡RAM)的通信协议要复杂得多。而目前市场上的一些SD卡接口模块,其与SD卡之间的数据通信主要是由主控中央处理器(CPU)控制完成的,接口只是实现具体的物理协议,在具体应用时将大量占用CPU的资源,这对于一个CPU资源相对来说比较紧张(例如手机系统)的系统来说是不可接受的。因此,针对SD卡的特点设计一套DMA传输方法,使得SD卡接口模块可以自动完成与SD卡之间的数据传输,无需CPU的干预是非常有意义的。
发明内容
本发明提出了一种适用于SD卡的DMA传输方法,通过优先级控制的多个命令队列来完成多客户与SD卡通信的复杂情况。
本发明的核心就是一种用于SD卡的DMA的传输方法,其中CPU能够与SD卡之间进行数据通信,需要传输的数据被存储在SD卡中,CPU通过命令队列控制SD卡的数据传输。
本发明还存在如下的一些改进:
所述命令队列由一个或者多个命令组成。
由CPU决定命令的数量。
当CPU与SD卡进行数据传输时,首先读取SD卡的文件系统信息,了解所需数据存储的位置和大小,然后根据所需数据在SD卡中存储的位置和数据量来配置命令队列。
每个连续存储的数据部分的传输由一个命令来完成。
每个命令包括数据传输方向(direction)、传输数据块的个数(block_cnt)和传输数据在SD卡中存储的起始地址(start_address)。
命令中的数据传输方法对应于对SD卡进行读或者写操作。
命令中的传输数据块的个数对应于所需传输块的个数。
多个客户需要与SD卡进行数据通信时,为每一个客户都建立了一个命令队列。
为每个需要与SD卡进行数据通信的客户都设立了优先级。
当不同客户的DMA请求同时产生时,优先级较高的客户将优先得到响应。
优先级较低的客户正在进行数据通信时有优先级较高的DMA请求发生,不予响应优先级较高的DMA请求,直至当前DMA命令完成为止。
优先级较低的客户正在进行数据通信时有优先级较高的DMA请求发生,不予响应优先级较高的DMA请求,直至当前块的传输结束为止。
优先级较低的客户正在进行数据通信时有优先级较高的DMA请求发生,立即结束当前DMA命令,响应优先级较高的DMA请求。
通过本发明,主控CPU只需配置命令队列及相应命令队列的优先级,该传输方法就可以自动完成所需的数据传输,极大地节省了CPU的资源,提高了系统的性能。
附图描述
通过附图的内容以及实施方式的具体描述能够更加清楚地了解本
发明的内容。
图1示出了SD卡命令与应答信号的流程;
图2示出了SD卡读写数据的流程;
图3示出了SD卡命令的语法结构;
图4示出了SD卡应答信号的语法结构;
图5示出了SD卡数据块的语法结构;
图6示出了SD卡初始化阶段的状态转移图;
图7示出了SD卡数据传输阶段的状态转移图;
图8示出了本发明的每个命令的结构;
图9示出了本发明的命令队列结构。
具体实施方式
SD卡的标准包括SD卡物理层的标准、音频方面的标准、文件系统标准及SD卡加密标准等。其中,物理层的标准是最基本的标准,所有的SD卡都必须支持其物理层标准。SD卡物理层标准定义了SD卡物理层的通信协议,它规定SD卡的管脚定义如下:
CLK:SD卡的工作时钟;
CMD:SD卡的命令及应答,双向信号;
DAT0-DAT 3:SD卡的数据总线,双向信号;
VDD,VSS1 VSS2:SD卡的电源和地。
SD卡的工作过程可分为初始化阶段和数据传输阶段。在初始化阶段,SD卡控制器通过CMD管脚将初始化命令传送给SD卡,如果SD卡处于正常的工作状态,它将产生相应的应答信号通过CMD管脚传送给SD卡控制器。经过一系列的初始化命令后,如果SD卡的应答准确无误的话,则进入数据传输阶段。在这个阶段,数据将以块的形式通过数据总线传输,数据总线的宽度可以是1位,也可以是4位,块的大小可以配置,每次可以传输一个块,也可以传输多个块。附图1到5显示了SD卡的物理层通信协议的结构。附图6和7显示了SD卡物理层通信协议中规定的SD卡状态,图6代表SD卡初始化阶段的状态转移图,图7代表SD卡数据传输阶段的状态转移图。
由附图1到7可以看到,SD卡在初始化阶段主要进行SD卡的识别与初始化工作,在这一过程中的命令与应答信号比较多,情况比较复杂,而且由于SD卡目前也处于迅速发展阶段,在初始化阶段的一些控制可能还会增加一些功能,因此如果由SD卡接口模块来完成这一阶段的工作,正如市场上的一些其他的SD卡接口模块所设计的一样,则会造成硬件过于复杂,而且还很难适应未来的需要。另外由于SD卡的命令与应答信号的语法格式是相对固定的,因此本发明可以将初始化阶段的工作由主控系统来控制,SD卡接口模块只完成相应的硬件操作(具体过程将在后面描述)。这样带来的优点是灵活性较强,缺点是执行的效率较低,时间很长,但考虑到SD卡的初始化大都只是在SD卡插入时执行一次,这时系统最需要的是稳定而不是速度,因此执行速度慢所带来的开销可以忽略不计;而在数据传输阶段,由于本发明的SD卡接口模块只定位于数据读写工作,此时SD卡已经初始化完毕,因此命令与应答信号相对比较固定,而这时执行的效率是系统所最需要的,也是评价SD卡接口性能的最重要的参数,因此这一阶段的工作完全由SD卡接口独立完成,主要工作在DMA方式,主控CPU不参与,只有在传输结束或传输中出现无法解决的错误时才产生中断给主控CPU,以保证系统的性能。本发明所提出的DMA传输方法主要是基于这个阶段的工作特点提出的。
DMA的意思是直接内存访问(Direct Memory Access),是指无需CPU干预,由需要访问内存的模块对内存进行自动数据存取,其目的在于节省CPU资源。在本发明中,是指对SD卡进行直接数据存取。根据前面对SD卡通信协议的介绍,可以看到,SD卡的数据传输是以块为单位的,每次可以传输一个块,也可以传输多个块,块的长度是可以字节为单位来进行配置的,所有SD卡都支持块长度为512字节的配置,但每次传输多个块的数据对应SD卡的物理地址必须是连续的。当传输多个块的数据结束时,需要一个中止数据传输的命令来代表此次数据传输的结束。在通常的系统中,可能会有多个客户需要同时与SD卡进行数据通信,这样就需要对这些通信请求按照一定的优先级进行仲裁。另外,由于每个客户所传输的数据在SD卡中不一定是连续存储的,也就是说,无法通过一个多块传输的命令来完成,这也需要一定的机制来保证快速、准确地完成数据传输。
基于上述情况,本发明提出了一种有利的DMA传输方法来解决多客户与SD卡进行数据通信的问题。要完成一次多块数据的传输,本发明所需要的信息包括:数据通信的方向,用于确定对SD卡的读或写操作;所需访问数据在SD卡中存储的起始地址;所传输块的个数。上述信息组合在一起,可以形成一条DMA命令,如果所需数据是连续存储的,则只需一条DMA命令就可以完成一次DMA操作,但如果所需数据不是连续存储的,那么可以通过多条DMA命令来完成这次DMA操作,将所需传输数据按照存储的连续性划分成不同的部分,每个DMA命令完成一个部分的数据传输。这样就引入了命令队列的概念,对于某一个需要与SD卡进行数据交换的客户而言,可以为它设置一个命令队列来存储所需要进行DMA传输的信息,主控CPU只要对命令队列进行配置,数据传输将被自动完成。命令队列中所包含命令的个数可以根据具体应用情况而定,每个命令的结构如图8所示,包括数据传输方向(direction)、传输数据块的个数(block_cnt)和传输数据在SD卡中存储的起始地址(start_address),整个命令队列如图9所示。
一个系统中可能不止一个客户需要与SD卡进行数据通信,本发明的DMA传输方法为每一个客户都建立了一个命令队列,每个命令队列的长度都随具体应用不同而不同。当某一时刻,有多于一个客户需要与SD卡进行数据通信时,就必须引入优先级仲裁的机制。根据系统的应用,本发明为每个需要与SD卡进行数据通信的客户都设立了优先级,当不同客户的DMA请求同时产生时,优先级较高的客户将优先得到响应。如果优先级较低的客户正在进行数据通信时有优先级较高的DMA请求发生,此时为了提高系统的灵活性,本发明设置了三种处理方法,一种是不予响应直至当前DMA命令完成为止,第二种是不予响应直至当前块的传输结束为止,第三种是立即结束当前DMA命令,响应优先级较高的DMA请求。不同的处理方法也是根据不同的应用可以灵活设置的。经过这样灵活的优先级处理,基本可以处理多客户通信的复杂情况。
综上所述,本发明提出了一种DMA传输方法,使得控制CPU只需进行简单的初始化配置,由SD卡接口模块自动完成与SD卡之间的数据传输,极大地节省了CPU的资源,提高了系统的性能。
Claims (14)
1.一种用于SD卡的DMA的传输方法,其中CPU能够与SD卡之间进行数据通信,需要传输的数据被存储在SD卡中,其特征在于,CPU通过命令队列控制SD卡的数据传输。
2.如权利要求1所述的传输方法,其特征在于,所述命令队列由一个或者多个命令组成。
3.如权利要求2所述的传输方法,其特征在于,由CPU决定命令的数量。
4.如权利要求3所述的传输方法,其特征在于,当CPU与SD卡进行数据传输时,首先读取SD卡的文件系统信息,了解所需数据存储的位置和大小,然后根据所需数据在SD卡中存储的位置和数据量来配置命令队列。
5.如权利要求2到4之一的传输方法,其特征在于,每个连续存储的数据部分的传输由一个命令来完成。
6.如权利要求2到4之一的传输方法,其特征在于,每个命令包括数据传输方向(direction)、传输数据块的个数(block_cnt)和传输数据在SD卡中存储的起始地址(start_address)。
7.如权利要求6所述的传输方法,其特征在于,命令中的数据传输方向对应于对SD卡进行读或者写操作。
8.如权利要求6所述的传输方法,其特征在于,命令中的传输数据块的个数对应于所需传输块的个数。
9.如权利要求1所述的传输方法,其特征在于,多个客户需要与SD卡进行数据通信时,为每一个客户都建立了一个命令队列。
10.如权利要求9所述的传输方法,其特征在于,为每个需要与SD卡进行数据通信的客户都设立了优先级。
11.如权利要求10所述的传输方法,其特征在于,当不同客户的DMA请求同时产生时,优先级较高的客户将优先得到响应。
12.如权利要求10所述的传输方法,其特征在于,优先级较低的客户正在进行数据通信时有优先级较高的DMA请求发生,不予响应优先级较高的DMA请求,直至当前DMA命令完成为止。
13.如权利要求10所述的传输方法,其特征在于,优先级较低的客户正在进行数据通信时有优先级较高的DMA请求发生,不予响应优先级较高的DMA请求,直至当前块的传输结束为止。
14.如权利要求10所述的传输方法,其特征在于,优先级较低的客户正在进行数据通信时有优先级较高的DMA请求发生,立即结束当前DMA命令,响应优先级较高的DMA请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004101029751A CN1317655C (zh) | 2004-12-31 | 2004-12-31 | 一种适用于sd卡的dma传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004101029751A CN1317655C (zh) | 2004-12-31 | 2004-12-31 | 一种适用于sd卡的dma传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1622072A true CN1622072A (zh) | 2005-06-01 |
CN1317655C CN1317655C (zh) | 2007-05-23 |
Family
ID=34766853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004101029751A Expired - Fee Related CN1317655C (zh) | 2004-12-31 | 2004-12-31 | 一种适用于sd卡的dma传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1317655C (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853230A (zh) * | 2010-05-25 | 2010-10-06 | 无锡中星微电子有限公司 | 一种引脚数据传输方法 |
CN108111525A (zh) * | 2017-12-29 | 2018-06-01 | 成都三零嘉微电子有限公司 | 一种使用扩展的sd卡通信协议实现数据加解密业务的方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69735614T2 (de) * | 1996-10-18 | 2006-09-07 | Matsushita Electric Industrial Co., Ltd., Kadoma | Datenübertragungsgerät und Datenübertragungssystem zur Arbitrierung von mehreren E/A Ports in DMA |
CN1378148A (zh) * | 2001-03-30 | 2002-11-06 | 深圳市中兴集成电路设计有限责任公司 | 一种直接存储器访问控制器及其控制方法 |
US8037229B2 (en) * | 2002-11-21 | 2011-10-11 | Sandisk Technologies Inc. | Combination non-volatile memory and input-output card with direct memory access |
-
2004
- 2004-12-31 CN CNB2004101029751A patent/CN1317655C/zh not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853230A (zh) * | 2010-05-25 | 2010-10-06 | 无锡中星微电子有限公司 | 一种引脚数据传输方法 |
CN101853230B (zh) * | 2010-05-25 | 2013-03-13 | 无锡中星微电子有限公司 | 一种引脚数据传输方法 |
CN108111525A (zh) * | 2017-12-29 | 2018-06-01 | 成都三零嘉微电子有限公司 | 一种使用扩展的sd卡通信协议实现数据加解密业务的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1317655C (zh) | 2007-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100893428B1 (ko) | 인터페이스 장치 | |
EP2248023B1 (en) | Extended utilization area for a memory device | |
CN1732449A (zh) | 进行直接存储器存取的组合非易失性存储器及输入输出卡 | |
CN111722809A (zh) | 用于命令排队的设备和方法 | |
JP2007518160A (ja) | モジュール間の直接メモリアクセスを用いるマルチモジュール回路カード | |
JP2005267628A (ja) | Nandフラッシュメモリを使用するメモリカード及びそれの動作方法 | |
CN1685328A (zh) | 在总线协议内使用存储卡协议的方法和系统 | |
CN102609741B (zh) | 一种移动设备及其内、外部存储卡间数据交换的方法 | |
US11010094B2 (en) | Task management method and host for electronic storage device | |
US8416657B2 (en) | Method and system for managing data from host to optical disc | |
CN1885922A (zh) | 一种进行电视机软件升级的方法及其装置 | |
CN1338682A (zh) | 电子装置、使用此电子装置的设备和读出数据的方法参照相关的申请文件 | |
CN1317655C (zh) | 一种适用于sd卡的dma传输方法 | |
CN1241096C (zh) | 支持存储卡热插拔和即插即用的ide硬盘接口装置 | |
CN1340860A (zh) | 电子设备和使用该电子设备的外部装置 | |
CN212084122U (zh) | 一种NVMe控制器 | |
CN1622073A (zh) | 对sd卡接口进行控制的装置和方法 | |
CN1435796A (zh) | 兼容多种移动存储卡的存储驱动装置 | |
CN1851733A (zh) | 基于flash存储介质的sim卡 | |
CN1210661C (zh) | 在一个串行接口和一个处理器之间传输数据的接口电路和方法 | |
CN1242324C (zh) | 手机大容量移动存储的方法 | |
US20210109674A1 (en) | Memory command queue management | |
US20060265527A1 (en) | Method and apparatus for increasing efficiency in use of data bus | |
CN2496063Y (zh) | 非易失性固态存储器驱动器 | |
TWI742565B (zh) | 記憶體裝置、電子裝置以及與其相關的讀取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070523 Termination date: 20111231 |