CN1622072A - 一种适用于sd卡的dma传输方法 - Google Patents

一种适用于sd卡的dma传输方法 Download PDF

Info

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
Application number
CN 200410102975
Other languages
English (en)
Other versions
CN1317655C (zh
Inventor
刘健
杨柱
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Vimicro Corp
Original Assignee
Vimicro Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Vimicro Corp filed Critical Vimicro Corp
Priority to CNB2004101029751A priority Critical patent/CN1317655C/zh
Publication of CN1622072A publication Critical patent/CN1622072A/zh
Application granted granted Critical
Publication of CN1317655C publication Critical patent/CN1317655C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明涉及一种用于SD卡的DMA的传输方法,其中CPU能够与SD卡之间进行数据通信,需要传输的数据被存储在SD卡中,CPU通过命令队列控制SD卡的数据传输。如果存在多个客户需要对SD进行访问,需要为该多个客户设置优先级,通过对优先级的控制实现多个客户的访问安排。本发明使得控制CPU只需进行简单的初始化配置,由SD卡接口模块自动完成与SD卡之间的数据传输,极大地节省了CPU的资源,提高了系统的性能。

Description

一种适用于SD卡的DMA传输方法
技术领域
本发明涉及一种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请求。
CNB2004101029751A 2004-12-31 2004-12-31 一种适用于sd卡的dma传输方法 Expired - Fee Related CN1317655C (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (3)

* Cited by examiner, † Cited by third party
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