sd卡协议分析

合集下载

sd卡协议

sd卡协议

sd卡协议SD(Secure Digital)是一种插入式闪存存储卡,广泛应用于数码相机、手机等电子设备中,用于存储和传输数据。

SD卡协议定义了SD卡的物理接口、命令、数据传输等方面的规范,保证了SD卡与设备之间的正常通信和数据交互。

本文将对SD卡协议进行详细介绍。

首先,SD卡使用SPI(Serial Peripheral Interface)或者SD卡总线进行数据传输。

SPI总线包括时钟线、数据线和控制线,通过与主机设备进行交互来传输数据。

SD卡总线则是一种用于SD卡的专用接口,可以支持更高的数据传输率和更复杂的命令操作。

SD卡协议定义了一系列的命令来控制SD卡的读写操作。

例如,通过发送CMD0命令可以将SD卡设置为待机模式;通过CMD8命令可以获取SD卡的供电电压信息;通过CMD17命令可以读取指定扇区的数据等等。

这些命令通过SPI或SD卡总线发送给SD卡,并通过响应返回相应的状态或数据。

在数据传输方面,SD卡协议定义了多种数据格式和传输方式。

其中包括SDSC(Standard Capacity)和SDHC(High Capacity)两种存储容量类型。

SDSC最大支持2GB的存储容量,采用FAT16文件系统;而SDHC则支持最大32GB的存储容量,采用FAT32文件系统。

同时,SD卡还支持多种传输速率,从低速到高速不等。

除了基本的命令和数据传输,SD卡协议还定义了许多额外的特性和功能。

例如,SD卡可以通过密码进行保护,只有正确的密码才能访问数据;SD卡还支持写保护功能,可以防止数据被误写或删除;SD卡还可以通过CID(Card Identification)或CSD(Card Specific Data)等信息来识别和管理不同的SD卡等。

总之,SD卡协议是一套用于控制SD卡读写操作的规范,包括物理接口、命令、数据传输等方面的定义。

它保证了SD卡与设备之间的正常通信和数据交互,使得SD卡能够在各种电子设备中广泛应用。

sd卡协议书

sd卡协议书

sd卡协议书SD卡协议书写1000字一、协议目的本协议的目的是为了规范SD卡的使用和管理,确保SD卡的稳定性、安全性和可靠性,提高SD卡的使用效率和数据传输速度,促进SD卡的广泛应用和开发。

二、协议范围本协议适用于所有使用以及管理SD卡的相关机构和个人,包括SD卡生产商、SD卡供应商、SD卡使用者等。

三、基本原则1. 合法合规:所有使用和管理SD卡的行为必须遵守国家相关法律法规和政策规定,不得违反道义和伦理原则;2. 公正公平:SD卡的分配和管理必须公正和公平,不得存在任何不当行为和偏袒现象;3. 安全可靠:SD卡的使用和管理必须确保数据安全和可靠性,不得有任何破坏数据和泄露数据的行为;4. 高效便捷:SD卡的使用和管理应该遵循高效和便捷原则,提高数据传输速度和操作效率;5. 技术先进:SD卡的使用和管理应该采用先进的技术手段,推动SD卡的研发和创新。

四、协议内容1. SD卡标准:所有SD卡的制造和生产必须符合国际标准,包括物理尺寸、电气特性、通信协议等方面;2. SD卡分配:SD卡的分配必须按照需求和使用规模进行合理分配,不得浪费资源和滥用权限;3. SD卡管理:SD卡的管理包括存储空间管理、文件管理和权限管理等方面,需要建立相应的管理机制和流程;4. SD卡使用:SD卡的使用必须符合标准和规范,不得进行非法操作和损害SD卡本身的行为;5. SD卡维护:SD卡的维护包括SD卡的清洁、数据备份、灾备措施和修复等方面,需要建立相应的维护计划和措施;6. SD卡安全:SD卡的安全是重要的,所有SD卡的使用和管理必须加强数据加密、访问控制和防病毒等安全措施;7. SD卡更新:当新的SD卡标准和技术出现时,需要及时更新SD卡的标准和方案,推动SD卡的技术迭代和智能化发展。

五、协议执行1. SD卡制造商、供应商和用户必须严格执行本协议,确保SD卡的使用和管理质量;2. 相关机构和部门应该加强协议的宣传和培训,提高SD卡的使用和管理水平;3. 对于违反本协议的行为,应该进行严肃处理和追责,保护SD卡的合法权益。

(完整版)SD卡协议-中文

(完整版)SD卡协议-中文

(完整版)SD卡协议-中文一概述1. SD总线模式下CLK:时钟信号CMD:双向命令和响应信号DAT0-3:双向数据信号VDD,VSS:电源和地信号SD模式下允许有一个主机, 多个从机(即多个卡), 主机可以给从机分别地址. 主机发命令有些命令是发送给指定的从机,有些命令可以以广播形式发送.SD模式下可以选择总线宽度, 即选用几根DAT信号线, 可以在主机初始化后设置.2. SD总线协议SD模式下的命令和数据流都有一个开始位和结束位.>命令: 是在CMD上传输的用于启动一个操作的比特流. 由主机发往从机, 可以是点对点也可以是广播的.>响应: 是在CMD上传输的用于之前命令回答的比特流. 由从机发往主机.>数据: 是在DAT上传输的比特流, 双向传输.无响应模式无数据模式多块读操作模式多块写操作模式命令格式响应格式数据格式SD卡上电后会自动初始化,通过给卡发送CMD0也可以复位卡.二.SD卡命令描述.1.广播命令:给所有卡都发送, 某些命令需要响应.2.点对点命令给指定地址的卡发送, 需要响应.SD卡系统有两种工作模式:1.卡识别模式.主机上电复位后即处于此模式,它会在总线上等待卡. 卡复位后也处于此模式, 直到SEND_RCA(CMD3)命令到来.2.数据传输模式.卡收到SEND_RCA(CMD3)命令后即进入此模式. 主机识别到卡后也进入此模式.卡状态和工作模式对照表1.卡识别模式.此模式下主机复位总线所有的卡, 验证工作电压, 询问卡的地址. 这个模式下所有数据的传输都是只通过CMD线来完成.1)卡的复位.当卡上电或收到GO_IDLE_STATE (CMD0)命令后, 卡即进入Idle State状态. 此时卡将其RCA设为0, 相关寄存器设为传输稳定的最优模式.2)工作电压验证每个卡的最高和最低工作电压存储在OCR. 只有当电压比配时, CID和CSD的数据才能正常传输给主机.SD_SEND_OP_COND (ACMD41)命令用来判断卡的工作电压是否符合, 如果不符合的话, 卡应该放弃总线操作, 进入Inactive State状态. 在发送SD_SEND_OP_COND (ACMD41)命令前记得要首先发送APP_CMD (CMD55).卡的状态变换图.ACMD41命令响应中的BUSY位也用于卡表示其还没准备好, 主机此时应重发ACMD41命令,直到卡准备好.主机在这个阶段的ACMD41中不允许改变工作电压, 如果确实想改变的话, 应该先发送CMD0, 然后再发送改变后的ACMD41.GO_INACTIVE_STATE (CMD15)命令用于使指定地址的卡进入Inactive State模式.3)卡识别过程.ALL_SEND_CID (CMD2)命令用于获取卡的CID信息, 如果卡处于Ready State, 它就会在CMD线上传送它的CID信息, 然后进入Identification State模式. 紧接着发送CMD3 (SEND_RELATIVE_ADDR)命令, 用于设置卡新的地址. 卡收到新的地址后进入Stand-by State 模式.2.数据传输模式.数据传输模式下卡的状态转变图进入数据传输模式后, 主机先不停的发送SEND_CSD (CMD9)命令获取卡的CSD信息. SET_DSR (CMD4)用于设置卡的DSR寄存器, 包括数据总线宽度, 总线上卡的数目, 总线频率, 当设置成功后, 卡的工作频率也随之改变. 此步操作是可选的.CMD7命令用于使指定地址的卡进入传输模式, 任何指定时刻只能有一个卡处于传输模式.传输模式下所有的数据传输都是点对点的, 并且所有有地址的命令都需要有响应..所有读命令都可以由CMD12命令停止,之后卡进入Transfer State. 读命令包括单块读(CMD17), 多块读(CMD18), 发送写保护(CMD30), 发送scr(ACMD51)和读模式一般命令(CMD56)..所有写命令都可以由CMD12命令停止. 写命令包括单块读(CMD24), 多块读(CMD25), 写CID(CMD26), 写CSD(CMD27),锁和解锁命令(CMD42)和写模式一般命令(CMD56)..当写命令传输完成后, 卡进入Programming State(传输成功)或Transfer State(传输失败).如果一个卡写操作被停止,但其前面数据的CRC和块长度正确, 数据还是会被写入..卡要提供写缓冲, 如果写缓冲已满并且卡处于Programming State, DAT0保持低BUSY. .写CID,CSD, 写保护, 擦除命令没有缓冲, 当这些命令没完时, 不应发送其他的数据传输命令..参数设置命令在卡被编程时是不允许发送的, 这些命令包括设置块长度(CMD16), 擦除块起始(CMD32)和擦除块结束(CMD33)..当卡正编程时读命令是禁止的..用CMD7使另一个卡进入Transfer State不会终止当前卡的编程和擦除, 当前卡会进入Disconnect State并且释放DAT线.. Disconnect State模式的卡可通过CMD7重新被选中,此时卡进入Programming State 并且使能busy信号.. CMD0或CMD15会终止卡的编程操作, 造成数据混乱, 此操作应禁止.1)总线宽度选择命令ACMD6命令用于选择总线宽度, 此命令只有在Transfer State有效. 应在CMD7命令后使用.2)块读命令块是数据传输的最小单位, 在CSD (READ_BL_LEN)中定义, SD卡为固定的512B.每个块传输的后面都跟着一个CRC校验. CMD17(READ_SINGLE_BLOCK)用于传输单个块,传输完之后,卡进入Transfer State. CMD18 (READ_MULTIPLE_BLOCK)用于多个块的传输,直到收到一个CMD12命令.3)块写命令与块读命令类似, 每个块传输的后面都跟着一个CRC校验.卡写数据时会进行CRC校验.多块写比重复的单块写更能提高效率.如果CSD中的WRITE_BLK_MISALIGN没设置, 并且发送的数据不是块对齐的, 卡会设置状态寄存器中的ADDRESS_ERROR位,并且进入Receive-data-State状态等待停止命令.此时写操作也会停止, 并且卡会设置其的WP_VIOLATION位.如果写缓冲满的话, 卡会停止接受WRITE_BLOCK命令. 此时主机应发送SEND_STATUS (CMD13)命令, 卡返回数据的READY_FOR_DATA位标志卡是否准备好接受新的数据.在多块写操作中通过事先发送ACMD23命令可提高写速度. ACMD23用于定义接下来要写数据的块的数目. 每次多块写操作后, 这个值又被设为默认的1.ACMD22会使卡返回写成功的块数目.4)擦除命令擦除命令的顺序是: ERASE_WR_BLK_START(CMD32),ERASE_WR_BLK_END(CMD33)an d ERASE (CMD38).如果(CMD38或(CMD32, 33)接收到出错信息, 卡会设置状态寄存器中的ERASE_SEQ_ERROR 位并且重新等待新的命令时序.如果接收到时序错误命令, 卡会设置其ERASE_RESET位并且重新等待新的命令时序.5)写保护管理三种机制:-.写保护物理开关-.卡内部写保护通过设置CSD中的WP_GRP_ENABLE位和WP_GRP_SIZE位, SET_WRITE_PROT和CLR_WRITE_PROT命令用来设置和清除保护机制.-. 密码保护.三. 时钟控制如果主机要发送1K的数据, 但是主机缓冲区只有512B, 那么主机可以在发送完前512B 后, 可以先停止时钟, 然后把后512B填充入缓冲区, 再启动时钟, 这样卡并不会检测要两次发送之间的间隔, 认为其是一次完整的数据发送过程.四 CRC校验1.CRC7CRC7用于所有的命令, 除R3以外的响应, 以及CID和CSD寄存器.2.CRC16CRC16用于数据块的校验五. 错误类型.1. CRC错误和命令非法错误命令的CRC校验出错, 卡设置其状态寄存器的COM_CRC_ERROR 位.非法命令错误, 卡设置其状态寄存器的ILLEGAL_COMMAND位.非法命令包括:不支持的命令,未定义的命令以及当前状态不支持的命令.2. 读,写和擦除超时.卡应该在指定的时间内完成一个命令或返回移动的错误信息. 如果在指定的超时时间内主机收不到响应, 应认为卡停止工作, 应重新复位卡.六命令1. 命令类型:- bc不需要响应的广播命令.- bcr需要响应的广播命令. 每个卡都会独立的接收命令和发送响应.- ac点对点命令, DAT线上没数据- adtc点对点命令, DAT线上有数据所有命令均遵守上图中的格式, 总共48位. 首先是1个起始位0,接着是1个方向位(主机发送位1), 6个命令位( 0-63 ), 32位参数(有些命令需要), CRC7位校验, 1个停止位.2.卡命令根据不同的类型分成了不同的Class, 见下表,其中Class0,2,4,5,8是每个卡都必须支持的命令, 不同的卡所支持的命令保存在CSD中.3.命令详细描述1)基本命令Class02)读命令Class23)写命令Class43)擦除命令Class54)应用特定命令Class8下表中的所有命令使用前都应先跟一个APP_CMD(CMD55)命令七. 卡状态转换表八. 应答.所有的应答都是通过CMD发送,不同的应答长度可能不同.总共有四种类型的应答.1. R1: 长度位48位.注意每个块传输完成后有一个BUSY位.2.R1b:与R1类似, 只是将BUSY位加入响应中.3.R2(CID CSD寄存器) : 长度为136位, CID为CMD2和CMD10的应答, CSD为CMD9的应答.4.R3(OCR寄存器):长度位48位. 作为ACMD41的应答.5.R6(RCA地址应答):长度为48位九. 卡的状态SD卡支持两种状态:-卡状态:与MMC卡兼容.-SD卡状态:扩充到了512位.1.卡状态:R1应答包含一个32位的卡状态.见下表.其中Type中的含义为:E:错误位. S:状态位. R:根据命令在响应中设置.X:根据在命令执行期间设置, 必须再次读此位才能获得命令执行后的情况.Clear Condition:A: 与卡的当前状态有关B: 总是与命令有关,无效的命令会清除此位.C: 通过读此位来清除下表指明了哪些命令可能使哪些位产生变化2.SD卡状态:这些位通过DAT线传输, 并伴有CRC16校验. 其是作为ACMD13的应答.十. 卡存储器形式.-块:块是基本读写命令的单位,它可以是固定的或可变的. 关于块的大小以及其是否可变性存储在CSD中.-扇区:扇区是擦除命令的单位, 它是固定的值,保存在CSD中.十一. 时序图时序图中字母含义:1.命令和应答1)卡识别和卡工作电压确认模式:CMD2,ACMD412)地址分配模式:CMD33)数据传输模式:4)命令结束->下一个命令:5)两个命令直接1)单块读:CMD172)多块读:读过程时序.停止命令时序3.数据写1)单块写:注意Busy信号.2)多块写:多块写命令时序停止命令时序卡主动停止时的时序。

sd协议3.0

sd协议3.0

竭诚为您提供优质文档/双击可除sd协议3.0篇一:sdio协议简介sdio卡sdio卡是在sd内存卡接口的基础上发展起来的接口,sdio接口兼容以前的sd内存卡,并且可以连接sdio接口的设备,目前根据sdio协议的spec,sdio接口支持的设备总类有蓝牙,网卡,电视卡等。

sdio协议是由sd卡的协议演化升级而来的,很多地方保留了sd卡的读写协议,同时sdio协议又在sd卡协议之上添加了cmd52和cmd53命令。

由于这个,sdio和sd卡规范间的一个重要区别是增加了低速标准,低速卡的目标应用是以最小的硬件开始来支持低速i/o能力。

低速卡支持类似调制解调器,条形码扫描仪和gps接收器等应用。

高速卡支持网卡,电视卡还有“组合”卡等,组合卡指的是存储器+sdio。

sdio和sd卡的spec间的又一个重要区别是增加了低速标准。

sdio卡只需要spi和1位sd传输模式。

低速卡的目标应用是以最小的硬件开支来支持低速i/o能力,低速卡支持类似modem,条形扫描仪和gps接收器等应用。

对组合卡来说,全速和4bit操作对卡内存储器和sdio部分都是强制要求的。

在非组合卡的sdio设备里,其最高速度要只有达到25m,而组合卡的最高速度同sd卡的最高速度一样,要高于25m。

sdio总线sdio总线和usb总线类似,sdio总线也有两端,其中一端是主机(host)端,另一端是设备端(deVice),采用host-deVice这样的设计是为了简化deVice的设计,所有的通信都是由host端发出命令开始的。

在deVice端只要能解溪host的命令,就可以同host进行通信了。

sdio的host可以连接多个deVice,如下图所示:这个是同sd的总线一样的,其中有如下的几种信号1.clk信号:host给deVice的时钟信号.2.cmd信号:双向的信号,用于传送命令和反应。

3.dat0-dat3信号:四条用于传送的数据线。

sd卡总线协议

sd卡总线协议

编号:_______________本资料为word版本,可以直接编辑和打印,感谢您的下载sd卡总线协议甲方:___________________乙方:___________________日期:___________________sd卡总线协议篇一:sd卡接口的完整规范sd卡接口规范的完整翻译特性:◎容虽:32mb/64mb/128mb/256mb/512mb/1gbyte ◎兼容规范版本1.01 ◎卡上错误校正◎支持cpRm◎两个可选的通信协议:sd模式和spi模式◎可变时钟频率0— 25mh应通信电压范围:2.0-3.6V 工作电压范围:2.0-3.6V◎低电压消耗:自动断电及自动睡醒,智能电源管理◎ 无需额外编程电压◎卡片带电插拔保护◎正向兼容mmc^◎高速串行接口带随即存取----- 支持双通道闪存交叉存取----- 快写技术:一个低成本的方案,能够超高速闪存访问和高可靠数据存储---- 最大读写速率:10mbyte/s◎最大10个堆叠的卡(20mhz,Vcc=2.7-3.6V) ◎数据寿命:10万次编程/擦除◎ ce和Fcc认证◎ pip封装技术◎尺寸:24mm® x 32mn#x 1.44mm厚说明:本sd卡高度集成闪存,具备串行和随机存取能力。

可以通过专用优化速度的串行接口访问,数据传输可靠。

接口允许几个卡垛叠,通过他们的外部连接。

接口完全符合最新的消费者标准,叫做sd卡系统标准,由sd卡系统规范定义。

sd卡系统是一个新的大容虽存储系统,基于半导体技术的变革。

它的出现,提供了一个便宜的、结实的卡片式的存储媒介,为了消费多媒体应用。

sd 卡可以设计出便宜的播放器和驱动器而没有可移动的部分。

一个低耗电和广供电电压的可以满足移动电话、电池应用比如音乐播放器、个人管理器、掌上电脑、电子书、电子白科全书、电子词典等等。

使用非常有效的数据压缩比如mpeg, sd卡可以提供足够的容虽来应付多媒体数据。

sd 协议

sd 协议

sd 协议SD协议(Secure Digital Protocol)是一种用于在存储设备和电子设备之间进行数据传输和通信的标准协议。

SD协议的发展标志着存储技术的进步和电子设备的智能化。

SD协议的最初版本是在1999年发布的,后来陆续推出了多个版本,包括SDHC协议、SDXC协议和SDUC协议等。

这些协议的不断更新和完善,使SD卡的存储容量不断扩大,同时保证数据传输的速度和稳定性。

SD协议的实现主要依靠两个要素:硬件接口和软件协议。

硬件接口是指SD卡和设备之间的物理连接,包括引脚和接口规范等。

软件协议则是指存储设备和设备间进行数据传输和通信时所需要遵循的规则和约定。

在SD协议中,数据的传输是通过指令和应答来完成的。

首先,设备发送指令给SD卡,指令可能包括读取数据、写入数据、擦除数据等操作。

SD卡接收到指令后,进行相应的处理并返回应答给设备。

设备接收到应答后,根据应答的结果进行下一步的操作。

为了保证数据的安全性和完整性,SD协议还支持数据加密和校验功能。

设备在写入数据时,可以选择进行数据加密,以防止数据泄露。

在读取数据时,设备可以对数据进行完整性校验,以确保数据的准确传输。

SD协议的应用非常广泛,几乎所有的数码设备和移动设备都支持SD卡扩展存储。

例如,相机、手机、平板电脑等设备都可以使用SD卡来进行数据存储和传输。

同时,SD卡也被广泛应用于一些特殊领域,如工业控制、车载设备等。

SD协议的优势在于其高速、高容量和可靠性。

通过不断的技术革新和发展,SD协议的存储容量从最初的几十兆字节,发展到现在的几十TB。

同时,SD协议的传输速度也从最初的几MB/s,提高到现在的几百MB/s。

这些优势使得SD卡成为了存储设备中的主流产品。

总之,SD协议是一种用于存储设备和电子设备之间进行数据传输和通信的标准协议。

通过不断的技术发展和创新,SD卡的容量和传输速度不断提升,为用户提供更高效、更可靠的数据存储和传输解决方案。

SD卡工作原理分析

SD卡工作原理分析

sd卡工作原理分析一 CPU相关,ssio的连接和设置 (2)1 硬件初始化,ssio的相关配置 (2)1) 端口功能选择寄存器——GPCTL (2)2) 端口模式寄存器——GPPMA,GPPMB,GPPMC,GPPMD,GPPME (2)3) 同步SIO控制寄存器——SSIOCON (3)4) 同步SIO状态寄存器——SSIOST (3)5) 同步SSIO测试控制寄存器——SSIOTSCON (4)6) 同步SIO收发缓冲寄存器——SSIOBUF (5)7) 同步SIO中断申请寄存器——SSIOINT (5)8) 同步SIO中断使能寄存器——SSIOINTEN (5)2 CPLD片选 (6)3 第三步,ssio收发字符相关 (6)二数据包的封装与命令协议相关 (6)1 sd卡指令数据包 (6)2 sd卡命令索引表 (7)3 命令回应repond (10)1) R1模式 (10)2) R2模式 (11)3) R3模式 (11)三命令的控制与实现 (12)1程序中调用的sd卡命令 (12)1) 命令响应函数——UCS_DRSD_niCommandRespond (12)2) sd卡驱动程序初始化——UCS_DRSD_giSdIdentify (13)3) 读sd卡操作函数 (15)4) 写sd卡操作函数 (15)四 sd卡的配置信息和相关结构体 (16)1卡识别寄存器——CID(card identification register ) (16)2卡特性寄存器——CSD(card specific data register) (17)一 CPU相关,ssio的连接和设置1 硬件初始化,ssio的相关配置1)端口功能选择寄存器——GPCTL地址:0xB7000000功能描述:这个寄存器配置各组GPIO的管教原始功能或者第二功能;CPU可以对这个寄存器进行读/写访问;复位后的默认值是0x0000。

sd express原理

sd express原理

sd express原理
SD Express是一种新一代存储卡接口标准,它结合了PCI Express(PCIe)和NVMe协议,具有高速数据传输和低延迟
的特点。

SD Express的原理如下:
1. PCIe接口:SD Express使用PCIe 3.0或更高版本的接口标准,支持多通道和多线程传输。

PCIe接口提供了高带宽和高
速度的数据传输能力。

2. NVMe协议:SD Express使用NVMe(Non-Volatile Memory Express)协议,它是为固态硬盘设计的一种高性能、低延迟
的存储接口协议。

NVMe协议能够更有效地管理和访问存储设备,提供更好的性能和响应时间。

3. UHS-II总线:SD Express的物理层采用了UHS-II总线,它
是SD卡的一种高速传输标准,能够支持更快的数据传输速度。

UHS-II总线支持多个数据通道和更高的电压,提供了更好的
性能表现。

4. 兼容性:SD Express保持与传统SD卡的兼容性,可以支持SDHC、SDXC等标准。

这意味着SD Express可以插入现有的SD卡读卡器中,并与现有的设备兼容。

总的来说,SD Express通过结合PCIe和NVMe协议,利用高
速的数据传输接口和低延迟的存储协议,提供了更快、更高性
能的存储解决方案。

它可以在相机、移动设备和电脑等各种设备中使用,提供更高的存储容量和更快的数据传输速度。

SD2.0协议标准完整版[1-6章中文翻译]

SD2.0协议标准完整版[1-6章中文翻译]

3.5.1 SD 总线
图 3-2 SD 卡总线拓扑 SD 总线包含下面的信号: CLK: 时钟信号 CMD: 双向命令/响应信号 DAT0-DAT3: 双向数据信号 Vdd,Vss1,Vss2: 电源和地信号 SD 卡总线有一个主(应用),多个从(卡),同步的星型拓扑结构(图 3-2)。时钟,电源和 地信号是所有卡都有的。命令(CMD)和数据(DAT0-3)信号是根据每张卡的,提供连续地点对 点连接到所有卡。 在初始化时, 处理命令会单独发送到每个卡, 允许应用程序检测卡以及分配逻辑地址给 物理卡槽。数据总是单独发送(接收)到(从)每张卡。但是,为了简化卡的堆栈操作,在初始 化过程结束后,所有的命令都是同时发送到所有卡。地址信息包含在命令包中。 SD 总线允许数据线的动态配置。上电后,SD 卡默认只使用 DAT0 来传输数据。初始化之 后, 主机可以改变总线宽度(使用的数据线数目)。 这个功能允许硬件成本和系统性能之间的 简单交换。
注意:当 DAT1-DAT3 没有使用的时候,相关的主机 DAT 先应该被设置为输入模式。SDIO 卡 DAT1 和 DAT2 用于信令。
3.5.2 SPI 总线
SD 卡的 SPI 兼容通信模式是用来同 SPI 信道通信,主要是用在市场是哪个的各种微处 理器。模式选择是在上电后的第一次 reset 命令期间,并且只要不断电就不能改变。SPI 标 准只是定义了物理连接,没有完成数据传输协议。SD 卡的 SPI 实现使用了 SD 模式相同的命 令。从应用的角度来说,SPI 模式的优点是使用现成主机的能力,从而减小设计压力。相对 于使能宽总线选项的 SD 卡来说,缺点是性能的损失。SD 卡 SPI 接口同市场上现有的 SPI 主 机兼容。同其他 SPI 设备一样,SD 卡的 SPI 信道有以下 4 个信号: CS: 主机到卡的片选(chip select)信号 CLK: 主机到卡的时钟信号 DataIn: 主机到卡的数据信号 DataOut: 卡到主机的数据信号 另一个 SPI 的通用特点是字节传输,这也是卡的实现。所有的数据都是字节(8 bit)的 整数倍,并且直接总是对齐 CS 信号。

sd卡协议(中文)

sd卡协议(中文)

数据包的封装与命令协议相关1 sd 卡指令数据包sd 卡的指令被封装成48位的数据包,每次传送这48位的数据包。

数据包的内容包括起始位、结束位、传输位、命令索引、传输参数和7位CRC 校验码。

其具体格式分布如下图 Bit 位置 47 46 [45:40] [39:08] [07:01] 00 Bit 宽度 1 1 6 32 7 1 值 “0” “1” x x x “1”说明Start bit Transmission bit CommandindexArgument CRC7 End bit其中的命令索引位是[45:40],里面可以封装各种命令,具体的命令表将在下面给出。

不同的命令会对应不同的回应(respond),回应有三种(R1,R2,R3)格式,在命令表中的选项会给出。

2 sd 卡命令索引表 CMD 简略语 指令说明 SPI 模式自变量 回应0 GO_IDLE_STATE 这是使card 初始化到Idle 状态的指令.CS 信号设在Low 的状态时,接到本指令后,card 将转换到SPI 模式.None R11 SEND_OP_COND 接到本指令后,card 将做R3回应(含有OCR 数据).根据OCR 值,可以得知card 能工作电压范围.OCR 数据最高值位的1bit 是用来确认card 内部处理是否结束(Ready/Busy 轮询).None R12 ALL_SEND_CID 接到本指令后, 处于Ready 状态的card 将传送CID 数据.在MMC 模式下,数据被送到CMD 信号,在CID数据的每1bit传送后,CMD信号状态将与该card内部状态相比较,如果不一致,將中止数据传送,card返回到Ready状态.如果相一致,该card 将认为已被选中,然后转换到Identification 状态.3 SET_RELATIVE_ADDR 本指令会为已转换到Identification状态的card分配一个相对card地址(RCA).当RCA分配后,card将转换到Stand-by 状态,对以后的CMD2和CMD3不回应.4 NOP 这是用来设定DSR(DriveState寄存器)的指令,但是本car不支持DSR.7 SELECT/DESELECT_CARD本指令是用来选择一张card,让它在Stand-by状态和Transfer状态之间转换的指令.如果给card设定已分配到的RCA地址,card将从Stand-by状态转换到Transfer状态,并将回应以后的读取指令及其他指令.如果给card设定RCA以外的地址,card将转换到Stand-by状态。

tf卡通信协议

tf卡通信协议

竭诚为您提供优质文档/双击可除tf卡通信协议篇一:sd卡和tF卡简介sd卡和tF卡简介tF卡全名:transFlash,原名microsdcard。

由摩托罗拉与sandisk共同研发,在20xx年推出。

是一种超小型卡(11*15*1mm),约为sd卡的1/4,可以算目前最小的储存卡了。

tF卡可经sd卡转换器后,当sd卡使用。

利用适配器可以在使用sd作为存储介质的设备上使用。

transFlash主要是为照相手机拍摄大幅图像以及能够下载较大的视频片段而开发研制的。

transFlash卡可以用来储存个人数据,例如数字照片、mp3、游戏及用于手机的应用和个人数据等,还内设置版权保护管理系统,让下载的音乐、影像及游戏受保护;未来推出的新型transFlash还备有加密功能,保护个人数据、财政纪录及健康医疗文件。

体积小巧的transFlash让制造商无须顾虑电话体积即可采用此设计,而另一项弹性运用是可以让供货商在交货前随时按客户不同需求做替换,这个优点是嵌入式闪存所没有的。

tF卡引脚定义:tF卡(sd模式):1-data2,2-data3,3-cmd,4-vdd,5-clk,6-vss,7-data0,8-d ata1tF卡(spi模式):1-rsv,2-cs,3-di,4-vdd,5-sclk,6-vss,7-do,8-rsv sd卡(securedigitalmemorycard)安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(外语缩写pda)和多媒体播放器等。

sd卡是一种基于半导体闪存工艺的存储卡,1999年由日本松下主导概念,参与者东芝和美国sandisk公司进行实质研发而完成。

2000年这几家公司发起成立了sd协会(securedigitalassociation简称sda),阵容强大,吸引了大量厂商参加。

其中包括ibm,microsoft,motorola,nec、samsung等。

SD卡与SDIO卡的区别

SD卡与SDIO卡的区别

(1) Wifi卡的常用接口有:–CF 接口–USB接口–SDIO接口–SPI接口–PCMCIA接口很多时候,同一个wifi卡同时支持多种接口,譬如marvell的8686的wifi卡,既支持spi接口,也支持sdio接口.(2) SD卡与SDIO卡的异同1.SD卡使用的是SD卡协议,而SDIO卡使用的是SDIO协议;协议不一样,初始化/读写方式都不一样2.ARK1600控制器既支持SD卡也支持SDIO卡,在驱动上完全可以做到同一个卡槽既支持SD卡也支持SDIO卡,甚至combo卡,因此在驱动上有个判断过程,判断插进来的是SD卡还是SDIO卡3.两者的引脚定义不一样,尽管引脚个数都一样(3)•SDIO协议–相对于SD协议,SDIO协议特有的命令有:cmd5,cmd52,cmd53–cmd5命令相当于SD卡协议中的acmd41,用于匹配SDIO卡的电压–对于SDIO卡中的单个寄存器的读写一般都使用cmd52命令,而对于多字节数据的读写则用cmd53命令。

–cmd53分字节和块传输模式对于字节传输模式相当于SD协议的单块读写(cmd17,cmd24)对于块传输模式相当于SD协议的块读写(cmd18,cmd25)(4)•Cmd53–对于字节传输模式,它可以是1~512之间的任意长度的传输,而不是固定长度–对于块传输模式,首先它的块长度可以人为设定,但不能超过规定的最大块长度–相对于SD卡中的块传输模式,在最后一个块传输末尾,是不需要发送块停止命令的(cmd12)--每个SDIO卡都由1~7个function (optional)和一个memory function(mandatory)组成•什么是function ?–所谓function,就是一个I/O设备,它实质就是一些寄存器的集合(5) SDIO卡里function的组织分布•CIA就是function0,也就是memory function,它每个SDIO卡所必须具有的,它里面包含了如下一些重要信息:–SDIO协议的版本号,BUS MOD,块大小等。

EMMC协议分析

EMMC协议分析

EMMC协议分析EMMC(Embedded MultiMediaCard)协议是一种用于嵌入式存储设备的通信协议。

它定义了主机设备(如智能手机、平板电脑等)与嵌入式存储设备(如闪存卡、eMMC芯片等)之间的数据传输方式和通信规范。

本文将对EMMC协议进行分析,包括协议结构、命令定义以及数据传输流程等方面。

首先,我们来看EMMC协议的结构。

EMMC协议基于SD卡协议进行了扩展,因此其结构与SD卡协议相似。

EMMC协议由CID、CSD、OCR、SCR、CID、CSD、EXT_FIN、TAG和DATA等多个部分构成。

其中,CID是用于唯一识别eMMC卡的数据,CSD是用于设置eMMC卡操作模式的数据,OCR是用于操作条件检测的数据,SCR是用于获取eMMC卡工作参数的数据,CID和CSD是用于eMMC卡序列号和容量信息的数据,EXT_FIN是用于表示数据结束的标志,TAG是用于标记数据块的顺序,DATA是实际存储的数据。

接下来,我们来看EMMC协议的命令定义。

EMMC协议定义了多个命令,用于执行不同的操作。

常见的命令包括读取命令、写入命令、清除命令、擦除命令等。

这些命令通过CMD、ARG和CRC三个字段进行传输。

CMD字段指定命令编号,ARG字段用于传输命令参数,CRC字段用于校验传输数据的准确性。

最后,我们来看EMMC协议的数据传输流程。

数据传输流程包括命令传输和数据传输两个阶段。

在命令传输阶段,主机向eMMC卡发送命令,包括读取命令、写入命令等。

eMMC卡接收到命令后进行处理,并返回处理结果给主机。

在数据传输阶段,主机根据返回结果进行读取或写入数据。

数据传输过程中,CRC校验和标记等机制保证了数据的准确性和完整性。

总结起来,EMMC协议是一种用于嵌入式存储设备的通信协议。

它定义了主机设备与嵌入式存储设备之间的数据传输方式和通信规范。

EMMC 协议结构包括CID、CSD、OCR、SCR、CID、CSD、EXT_FIN、TAG和DATA等多个部分。

sd协议基本概念

sd协议基本概念

sd协议基本概念SD协议(Secure Digital Protocol)是一种用于存储卡(如SD 卡、SDHC卡、SDXC卡等)的通信协议,它定义了存储卡与主机设备(如相机、手机、电脑等)之间的接口和通信规则。

SD协议的基本概念包括:1. 物理层:SD协议定义了存储卡的物理接口,包括卡片上的引脚排列和电气特性。

SD卡通常使用SPI(Serial Peripheral Interface)或SDIO(Secure Digital Input/Output)接口进行通信。

2. 数据传输层:SD协议规定了数据如何在存储卡和主机设备之间传输。

它使用命令响应式数据传输机制,即主机设备发送命令到存储卡,存储卡响应命令并返回数据。

3. 应用层:SD协议定义了一系列的命令集,这些命令用于管理存储卡上的数据,包括文件的读取、写入、删除等操作。

此外,SD 协议还支持多种文件系统格式,如FAT12、FAT16、FAT32和exFAT。

4. 安全性:SD协议提供了数据加密和访问控制的功能,以保护存储在卡片上的数据不被未授权访问。

这些功能通常通过密码保护和加密算法实现。

5. 速度等级:随着技术的发展,SD协议也不断更新,支持更高的数据传输速度。

例如,UHS(Ultra High Speed)SD卡支持更高的读写速度,适用于需要高速数据传输的应用场景。

6. 兼容性:SD协议设计为向后兼容,这意味着新版本的SD卡可以被旧版本的主机设备使用,尽管可能无法发挥新版本的全部性能。

7. 电气特性:SD协议定义了存储卡的电气特性,包括工作电压、电流消耗、数据传输速率等。

SD协议的这些基本概念共同构成了存储卡的标准,使得不同厂商和不同型号的存储卡能够与各种主机设备兼容,并确保数据的安全和高效传输。

sdio协议

sdio协议

sdio协议SDIO协议。

SDIO(Secure Digital Input Output)是一种用于SD卡的扩展接口标准,它允许SD卡在不仅可以存储数据的同时,还可以进行输入输出操作。

SDIO协议在嵌入式系统和移动设备中得到广泛应用,为设备提供了更多的功能和灵活性。

SDIO协议的设计初衷是为了使SD卡能够支持更多的功能,比如无线通信、音频、视频、GPS等。

通过SDIO接口,SD卡可以像一个外部设备一样与主控制器进行通信,这为设备的功能扩展提供了便利。

SDIO协议在硬件接口上与SD卡的物理接口兼容,但在软件接口上有所不同。

SDIO协议定义了一套命令和数据传输的规范,使得SD卡可以通过SDIO接口进行数据的输入输出操作。

这些命令包括初始化、读写数据、中断处理等,通过这些命令,主控制器可以与SDIO设备进行通信,并实现各种功能。

在SDIO协议中,数据的传输是通过SDIO总线进行的。

SDIO总线包括一个时钟信号线和一个数据信号线,通过这两根信号线,SDIO设备可以与主控制器进行同步通信。

在数据传输过程中,主控制器通过时钟信号线控制数据的传输速度,而数据信号线则用于传输实际的数据。

SDIO协议还定义了一套中断处理机制,通过中断,SDIO设备可以向主控制器发出各种事件通知,比如数据传输完成、错误发生等。

这样,主控制器就可以及时处理这些事件,保证数据传输的可靠性和稳定性。

总的来说,SDIO协议为SD卡的功能扩展提供了良好的支持,使得SD卡不仅可以作为存储介质使用,还可以作为外部设备与主控制器进行通信。

在嵌入式系统和移动设备中,SDIO协议为设备的功能扩展提供了便利,为用户带来了更好的使用体验。

综上所述,SDIO协议是一种用于SD卡的扩展接口标准,它为SD卡的功能扩展提供了良好的支持,使得SD卡可以在嵌入式系统和移动设备中发挥更大的作用。

随着移动设备和嵌入式系统的不断发展,SDIO协议必将发挥越来越重要的作用,为设备的功能扩展和性能提升提供更多可能性。

SD协议

SD协议

一、SD规范介绍二、物理层规范三、SD Memory Card四、SDIO Card五、驱动编写一、SD2.0规范介绍1、版本SD spec1.0 低速度、低容量25M 2GSD spec1.1 高速度、低容量50M 2GSD spec2.0 高速度、高容量50M 32G2、SD规范包括(1) 物理层规范(2) 文件系统规范(3) SD卡安全规范(4) SD卡音频应用规范+其他相关应用规范(5) SD MC扩展规范移动设备(6) SDIO卡规范现在针对SD Memory 和SDIO两种类型的设备,所以下面内容只涉及子协议(1)、(6)。

3、符合SD2.0规范的设备SD卡MiniSD、MicroSD 1.0/1.1SDIO卡wifi 、GPSSDHC 2.0 最少支持class2SDXCCombo Card传输速度类型分为class0 旧的卡,class2 大于2MB/Sclass4 大于4MB/Sclass6 大于6MB/S二、物理层规范引脚SD模式SPI模式名称类型描述名称类型描述1 CD/DAT3 I/O/PP Card Direct/数据线[Bit3] CS I 片选(negtrue)2 CMD PP 命令/响应DI I 数据输入3 VSS S 电源地VSS S 电源地4 VDD S 电源正VDD S 电源正5 CLK I 时钟SCLK I 时钟6 VSS2 S 电源地VSS2 S 电源地7 DAT0 I/I/PP 数据线[Bit0] DO O/PP 数据输出8 DAT1 I/O/PP 数据线[Bit1] RSV9 DAT2 I/O/PP 数据线[Bit2] RSV2、总线传输模式SPI 串行传输、低速度SD 最多支持四线传输兼容MMC3 SD总线3.1 总线分为host device(1) comand 命令host to device 都是48位A、广播命令B、点对点命令(2) response 响应device to host根据内容不同分为R1、R3、R4、R7(48位)和R2(136位)初始化阶段,host给SD卡分配地址数据传输是有单块传输命令和多块传输命令,然后通过发送一个终止命令停止传输单块还是多块传输,通过host去配置命令先传msb 在lsb3.2 格式(1) 命令格式(2) 响应格式(3) 数据格式有两种(1) usual data bus 字节为单位发送(2) wide data bus 以块单位发送usual data :先发送高位,在发送低位一字节一字节发送wide data bus :整个数据块发送三、SD Memory Card1、初始化,发送命令读写卡中的寄存器发送命令完成读写、擦除等操作名称带宽描述CID 128 卡的ID号。

SD3.0四个协议解读

SD3.0四个协议解读

SD3.0四个协议解读前⾯的⽂章提到过SD卡主要分为两个操作模式,⼀是初始化和识别操作模式。

还有⼀种就是这篇⽂章须要分析的传输数据模式啦。

传输数据模式:传输数据模式主要有六种状态,各⾃是Stand-by状态、Transfer状态、Sending-data状态、Receive-data状态、Programming状态、Disconnect状态。

这六种状态通过不同的Command就能够切换到某种状态,换句话说,这六种状态贯穿了整个传输数据模式。

要理解传输数据模式的流程,⽼衲觉得除了理解这六种状态,还须要对Commands有⼀定的了解。

越熟悉越好。

当然。

这并⾮叫你去背Commands。

好了。

我们来看看传输数据模式的流程框图:⽼衲我第⼀次看到这图的时候,简直看晕了,有⽊有!。

太恶⼼了吧,谁定义的协议。

敢不敢再复杂⼀点?没办法,做IT的就是苦逼,仅仅能慢慢⼀点点啃,在理解流程之前。

我们必须讲协议⾥的英⽂翻译⼀遍,然后结合流程图理解究竟是怎么⼀回事,最后结合代码来看,这才⼲真正明确传输数据的过程是怎么⼀回事,以下是对英⽂协议⾥传输数据模式的翻译:传输数据模式(翻译):在SD卡识别模式结束之前,控制器使⽤的时钟频率均为Fod。

在传输数据模式,控制器可能会使⽤Fpp频率。

控制器发送⼀条SSEND_CSD(CMD9)命令来获取SD卡CSD寄存器(Card Specific Data)⾥⾯的描写叙述值,譬如,块长度。

卡容量信息等。

⼴播命令SET_DSR(CMD4)配置全部识别卡的驱动段。

相应于应⽤总线LayOut(长度)。

卡的数量和传输数据频率,这个命令设置DSR寄存器。

时钟频率在那个点上也应该从Fod切换Fpp。

SET_DSR命令对Host和卡都是可选的。

CMD7 ⽤来选择⼀个卡并将它置于传输状态(Transfer state)。

在不论什么时间仅仅能有⼀个卡处于传输状态。

假设已有⼀个卡处于传输状态,它和主机的连接将释放,并返回到 Stand-by状态。

SD卡协议学习点滴(完整版本)

SD卡协议学习点滴(完整版本)

SD卡协议学习点滴(一)首先SD卡有所谓操作模式(operation mode)的概念,每种操作模式又具体对应一种或多种状态,主机通过发送命令可以使SD卡在不同的状态间转换,SD卡则接受命令,并根据自己现在所处状态做出不同的响应。

系统上电时刻或者搜寻SD卡时,SD卡控制器应该处于SD卡识别模式;SD卡在刚接入系统时刻也处于这种模式,并且处于此模式下的Idle状态。

SD卡识别模式:在这种模式下,控制器会检验SD卡的工作电压范围,识别SD卡类型,并要求它们发送各自的相对地址(Relative Card Address);这些操作在SD卡各自的CMD线上进行。

所有的操作均使用默认的 SD卡识别时钟频率(identification clock rate)SD卡复位:发送GO_IDLE_STATE(CMD0)到SD卡后,除处于非活动状态(Inactive state)之外的SD卡都会进入空闲状态(Idle state);在Idle状态,SD卡的CMD线处于输入模式,默认相对地址为0x0000,默认驱动寄存器设定为最低速度,最大驱动电流能力。

:工作条件检测在控制器和SD卡进行任何通信之前,控制器不清楚SD卡支持的工作电压范围,故而控制器首先使用默认的电压发送一条reset指令(CMD0),紧跟着的CMD8指令,用于取得SD卡支持工作电压范围数据。

SD卡通过检测CMD8的参数部分来检查控制器使用的工作电压,控制器通过分析回传的CMD8参数部分来校验SD卡是否可以在所给电压下工作。

如果SD卡可以在指定电压下工作,则它回送CMD8的命令响应字,其中包含check voltage, check pattern。

如果SD卡不支持所给电压,则SD卡不会给出任何响应信息,并继续处于Idle状态。

在PLV2.0(physical layer version2.0)下,在首次执行ACMD41之前,必须执行CMD8指令,用以初始化SDHC卡,SDHC卡根据是否接收到CMD8指令来鉴别控制器是否支持PLV2.0协议。

sd协议基本概念 -回复

sd协议基本概念 -回复

sd协议基本概念-回复什么是SD协议?SD协议(Secure Digital Protocol)是一种用于存储设备的通信协议,主要用于SD卡和相关设备之间的数据传输和控制。

SD协议定义了存储设备的物理接口和传输协议,以确保数据的安全和可靠性。

SD协议具有广泛的应用范围,包括数字相机、手机、平板电脑等便携式设备。

SD协议基本结构SD协议由多个层次构成,每个层次负责不同的功能。

下面将逐步介绍SD协议的基本结构。

1. 物理层(Physical Layer)物理层是SD协议的最底层,负责定义SD卡的物理接口和信号传输方式。

SD卡通常采用9针接口,其中7针用于数据传输,另外的两针用于电源和地线。

物理层规定了每个针脚的具体功能和信号的电压范围。

2. 数据链路层(Data Link Layer)数据链路层负责将物理层发送的bit流进行错误检测和纠正,并将数据分割成固定大小的数据块。

数据链路层还负责管理数据传输的流程控制和读写操作的顺序。

3. 逻辑层(Logical Layer)逻辑层是SD协议的核心,它定义了对存储设备的文件系统和数据访问方法。

逻辑层将存储设备划分为多个逻辑单元,每个逻辑单元称为一个“逻辑块”。

逻辑层负责管理逻辑块的分配、索引和访问权限等。

4. 文件系统层(File System Layer)文件系统层负责管理存储设备上的文件和目录。

它定义了文件的存储格式、目录的组织结构和文件的访问权限等。

文件系统层通常采用FAT(文件分配表)或exFAT(扩展文件分配表)格式。

SD协议的操作流程SD协议的操作流程包括初始化、读写数据和关闭等多个步骤。

下面将逐个步骤详细介绍。

1. 初始化(Initialization)在使用SD卡之前,需要对SD卡进行初始化。

初始化包括发送命令和参数,建立与SD卡的连接,并进行资源的分配和配置。

初始化的目的是为了确保存储设备能够正常工作。

2. 读取数据(Read Data)读取数据是SD协议中的常见操作。

SD卡规范协议学习

SD卡规范协议学习

SD卡规范协议学习首先,本博文遵照SD卡协议3.01版本,最旧协议版本为1.10,但是协议是向下兼容的。

关于SD卡做一个简单介绍如下:SD卡按照内存容量大小分3类:SDSC(标准容量SD内存卡):最大支持为2GByte。

SDHC(大容量SD内存卡):SD卡容量介于2Gyte~32GByte。

SDXC(扩展容量SD卡内存卡):SD卡容量介于32GByte~2TByte。

再来介绍一下关于SD卡的传输速度分为5个等级:Class 0 :未定义它的传输速度!!Class 2 :定义它的传输速度大于等于2MB/secClass 4 :定义它的传输速度大于等于4MB/secClass 6 :定义它的传输速度大于等于6MB/secClass 10 :定义它的传输速度大于等于10MB/sec协议中还规定了SDHC和SDXC这两类卡的传输速度应当大于等于2MB/sec。

有SD卡的可以看看自己SD卡上边有这些标号:这些标号代表此SD卡的传输速度!!再介绍下SD卡控制器是如何识别SD卡大小的,SD卡内部有一些关于SD卡自身信息的寄存器,关于SD卡大小的就是CSD Register,此寄存器共128位,最高两位(即:127:126两位)的值分为2个版本,如下:注释:0代表此卡容量为标准容量。

1代表此卡容量为大容量或扩展容量。

2、3保留下面介绍CSD寄存器中与容量有关的位,它的大小与这三个参数有关C_SIZE, C_SIZE_MULT and READ_BL_LEN,下图是寄存器中的位置:下图是关于READ_BL_LEN寄存器位的说明:注释:4个二进制位来表示最大读取数据的长度,1001b表示读取数据最大长度为29 Byte = 512Byte,1010b表示读取数据最大长度为210 Byte= 1024Byte,1011b表示读取数据最大长度为211 Byte=2048Byte,注意:SD内存卡的WRITE_BL_LEN一直等于READ_BL_LEN的大小!!下图是关于C_SIZE_MULT 寄存器为的说明:注释:3个二进制位来表示计算设备总大小的一个乘数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

sdMmc目录第一章 SD卡系统概念 3§1.1 SD卡概述 3§1.2 SD卡的系统特征 3§1.3 SD卡的系统概念 4§1.4 SD卡的总线传输 6§1.5 SD卡的引脚 10§1.6 SD卡主要寄存器介绍 12§1.7 SD卡子系统结构 14第二章 SD卡初始化及状态转换 16§2.1SD卡状态及初始化过程 16§2.2SD卡数据传输过程 181.SD卡基础1.SD卡概述SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制,同时三个公司联合成立了SD协会,并制定SD卡相关的协议标准。

SD卡协议主要包括物理层协议、SD卡控制器设计手册、SDIO卡手册三部分。

其中SDIO指的是安全数字输入输出卡(Secure Digital Input and Output Card),是在SD标准上定义了一种外设接口,通过SD的I/O接脚来连接外围设备,并且通过SD上的 I/O数据接位与这些外围设备进行数据传输。

相关的一些设备为:GPS、相机、Wi-Fi、调频广播、条形码读卡器、蓝牙等。

SDIO本质上是一种接口,通过该接口可以连接一些其他功能的设备而非仅仅是存储设备。

1.2 SD卡的系统特征(SD物理层协议v2.0)∙针对移动和固定应用;∙存储容量:标准容量SD存储卡:最高2G高容量SD存储卡:2G以上(在该规范版本中,最高32G)∙电压范围:高电压SD存储卡—操作电压范围:2.7~3.6V双电压SD存储卡—操作电压范围:低电压范围(T.B.D)和2.7~3.6V∙分为只读卡和读/写卡;∙默认模式:时钟频率可在0~25MHz间变化,高达12.5MB/s 的接口速度(使用4条并行数据线) ;∙高速模式:时钟频率可在0~50MHz间变化,高达25MB/s 的接口速度(使用4条并行数据线) ;∙支持高速,电子商务和将来功能的转换功能命令;∙存储域错误纠正;∙读操作期间移去卡,内容不损坏;∙内容保护机制—符合SDMI标准的最高安全性;∙卡的密码保护(CMD42 - LOCK_UNLOCK);∙机械开关的写保护特性;∙内嵌的写保护特性(永久或暂时) ;∙卡检测(插入/移去) ;∙应用特定命令;∙舒适的擦除机制∙通信通道协议属性;∙SD存储卡外形尺寸:标准尺寸SD存储卡(32*24*2.1mm) 。

3.SD卡的系统概念读写属性:按照读写属性定义,有两种类型的SD存储卡:∙读/写(R/W)卡(Flash, OTP(一次可编程), MTP(多次可编程))。

这些卡通常买来时是空白的,用于大量数据的存储,以及记录用户的音频、视频和图像。

∙只读存储器(ROM)。

这些卡生产有固定的数据内容。

通常作为软件、音频、视频等的发行媒介。

操作电压范围:按照操作电压定义,有两种类型的SD存储卡:∙高电压SD存储卡:工作在2.7~3.6V的电压范围内∙双电压SD存储卡:能够工作在低电压范围(T.B.D)和2.7~3.6V的电压范围内卡容量:按照容量定义,有两种类型的SD存储卡:∙标准容量SD(SD)存储卡:支持容量高达2GB(231 B)。

所有物理层规范都定义了标准容量SD存储卡。

∙高容量SD(SDHC)存储卡:支持容量在2GB以上,该规范版本中将容量限制在32GB。

高容量SD存储卡是在V2.00中新定义的。

高容量SD存储卡有两种类型:∙Type A(单态卡)只有高容量存储区。

∙Type B(双态卡)有高容量存储区和标准容量存储区。

在Type B卡中,任何时候,只能有一种存储区能被使用。

有一机械开关选择想要的存储区。

Type B的细节将在以后的规范中定义。

主机可以不必区分高容量SD卡的类型。

只有符合SD存储卡物理层规范V2.00或更高并且符合SD文件系统规范V2.00的主机才能访问高容量SD存储卡。

对于SD控制器而言,做到了向低容量的兼容。

如图所示:控制器对SD卡支持情况示意图1.4 SD卡的总线传输:SD总线上的通信以一根CMD线和四根Data线为基础。

通信的内容包括:命令(主机->SD卡)、反馈(SD卡->主机)、Data。

SD总线通信示意图命令:命令式操作开始的标志,命令可以发送给总线上所有的SD 卡(广播模式)或者某个特定的SD卡(寻址模式)。

命令在CMD 线上传输。

反馈:反馈是SD卡在接收到主机命令后,做出的回应信息,也在CMD线传输。

数据:四根数据总线是双向总线。

数据传输数据线上进行,是以块为单位,一次可以传输单个或者多个数据块。

传输过程中实际使用的数据线是可配置的,默认只用DAT0。

无响应和无数据操作卡寻址是使用一个会话地址来实现的,这个地址是在初始化阶段分配给卡的。

命令、响应和数据块结构见SD存储卡功能描述。

SD总线上的基本操作是命令/响应操作(见上图)。

这种总线操作类型直接在命令或响应结构中发送它们的信息。

数据块读操作数据传输以块为单位,分为单块传输和多块传输。

数据块后跟着CRC校验位。

多块传输可以更好地实现更快的写操作。

当在命令线上发送停止传输命令时候一次多块传输结束。

数据传输可使用单数据线或多数据线,由SD主机控制器来进行配置。

数据块写操作数据块写操作使用一个简单的写操作忙信号。

在写操作期间,无论传输数据的数据线条数,该信号只持续在数据线DAT0上。

多数据块写操作可以更好地实现更快的写操作。

其中命令格式如下图所示:命令标记和格式命令响应的格式:命令响应的格式数据传输格式:SD卡有两种数据传输格式(1)常规数据(Usual data ,8位宽):常规数据先发送最低有效字节(LSB),最后发送最高有效字节(MSB)。

但是,在单个字节中,先发送最高有效位(msb),最后发送最低有效位(lsb)。

(2)宽位数据(Wide width data ,SD寄存器):宽幅数据从最高有效位开始移位。

常规数据格式宽位数据格式1.5 SD卡的引脚SD卡引脚以及引脚定义如下图所示。

SD卡结构及引脚SD卡引脚定义SD卡支持两种总线模式:SD总线、SPI总线,具体定义如图2所示,其中较为常用的嵌入式系统SD总线系统电路连接如图3所示.SD总线电路连接1.6 SD卡基本寄存器介绍SD卡接口定义了6个寄存器OCR,CID,CSD,RCA,DSR和SCR,可通过特定的命令来获得这些寄存器的信息。

OCR:定义了SD卡支持的工作电压范围。

Physical Layer Simplified Specification Version 2.0中规定SD卡支持的工作电压范围在2.7~3.6v之间。

该32位寄存器的最高位bit31是忙标志位。

如果卡暂未完成上电流程,该位为0。

CID:存储了一些制造商、产品名、生成日期等“身份”信息。

该寄存器宽度为128位。

CID寄存器定义CSD:该寄存器存储了一些对卡操作的命令集类型、读写时序、读写电流、块大小等信息。

规定了和SD卡进行信息互交所要遵循的一些规则,或者说是访问卡所需要的配置信息。

CSD寄存器定义RCA:该16位可写寄存器存储了经过卡识别过程后的卡地址信息,用于对总线是某个SD卡的寻址。

DSR:定义了了一些扩展操作,以提高总线性能,这里不做具体讨论,(具体参考Physical Layer Simplified Specification Version 2.00)。

SCR:另外一个SD卡的配置寄存器(另一个为CSD),配置SD卡上的一些特点信息数据。

1.7 SD卡子系统结构嵌入式系统包括若干模块,其中的SD卡子系统是其实现移动存储的重要模块,从系统硬件角度看SD卡子系统可分为SOC 端部分、SD卡端部分和两部分之间的接口部分。

如图所示。

SD卡子系统结构整个SD卡子系统可以看做:从硬件角度来看,SOC上的ARM、MIPS等IP核通过设置SD控制器的寄存器给控制器发送读写请求、中断、时钟设置等信息,SD控制器通过SD总线(或者SPI总线)和SD卡中的控制单元进行控制信息和数据信息的互交;SD卡中的控制单元根据读写请求从SD中的NAND存储模块读取(或者写入)数据,再通过总线接口发送给SOC段的控制器。

S3C2440(ARM920T)的控制器结构如图所示:S3C2440控制器结构SD卡初始化及状态转换2.1 SD卡状态及初始化过程SD卡工作的所有情况下有以下状态和所处的操作模式。

状态是站在SD卡方面而言的,而操作模式可以看作是SD卡控制器(host)所处的模式。

SDSD卡上电过程图中“Power up time”是的是电压从0v上升到最小的Vdd需要的时间;“Supply ramp up time”是达到总线操作需要的时间,一般从Power up time结束要经过74个clock,SD卡才开始识别host发来的命令。

上电后,host发送CMD0(作用是软件重启),所有的SD卡处于idle状态,主机和SD卡然后通过CMD41来协商工作电压。

主机然后发送命令ALL_SEND_CID(CMD2)到每个卡以获取每个卡的唯一标识CID号。

未识别的卡通过CMD线发送CID号作为响应。

当卡发送CID号后,进入识别状态(IdentificationState)。

此后,主机发送CMD3(SEND_RELATIVE_ADDR)要求卡发布一个新的相对卡地址RCA,地址比CID短,在以后的数据传输模式中用来寻址卡。

一旦获得RCA后,卡状态变成就绪状态(Stand-by state)。

此时,如果主机要求卡换成其他的RCA号,可以通过发送另一个SEND_RELATIVE_ADDR命令给卡,要求发布一个新的RCA,最后发布的RCA是实际使用的RCA。

主机对系统中的每个卡重复识别过程。

SD卡识别模式流程图2.2 SD卡数据传输过程数据传输模式:主机首先发送CMD9获得寄存器的内容,如块大小、卡存储容量、最大时钟速率等。

SD卡数据传输模式流程图通过命令CMD7将某一地址的SD卡它置于传输状态(Transfer state)。

如果已有一个卡处于传输状态,它和主机的连接将释放,并返回到Stand-by状态。

当CMD7以保留相对地址“0x0000”发送时,所有卡将返回到Stand-by状态。

这可以用来识别新的卡而不重置其他已注册的卡。

在这种状态下已有一个RCA地址的卡不响应识别命令(ACMD41,CMD2,CMD3)。

不同传输模式的关系如下:∙所有读数据命令可以在任何时候通过停止命令(stop command,CMD12)中止。

数据传输将中止,卡回到传输状态(Transfer State)。

读命令有:块读命令(CMD17),多块读命令(CMD18),发送读保护(CMD30),发送scr(ACMD51),以及读模式的通用命令(CMD56)。

相关文档
最新文档