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卡使用协议书》甲方:(以下简称“甲方”)乙方:(以下简称“乙方”)鉴于甲方为SD卡的生产商(或销售商),乙方为SD卡的用户,为确保双方在使用SD卡过程中的权益,经双方友好协商,特制定本协议书。

一、协议范围1.1 本协议适用于甲方生产的所有SD卡产品。

1.2 本协议内容包括但不限于SD卡的质量保证、使用规范、售后服务等事项。

二、SD卡质量保证2.1 甲方保证所提供的SD卡产品符合国家相关标准,质量可靠。

2.2 甲方承诺在正常使用条件下,SD卡产品自购买之日起一年内出现非人为损坏的质量问题,甲方将提供免费维修或更换服务。

2.3 甲方对SD卡的质保期限为:自购买之日起一年。

三、SD卡使用规范3.1 乙方应按照SD卡产品说明书及甲方提供的操作指南正确使用SD卡。

3.2 乙方不得在非授权情况下对SD卡进行拆解、修理或更改。

3.3 乙方不得将SD卡用于违法、违规用途。

3.4 乙方应妥善保管SD卡,避免因潮湿、高温、碰撞等原因导致的损坏。

四、售后服务4.1 乙方在使用SD卡过程中如遇到问题,可向甲方咨询,甲方将提供技术支持。

4.2 乙方在质保期内如需维修或更换SD卡,应将SD卡寄回甲方指定地址,甲方在收到SD卡后进行维修或更换。

4.3 甲方对维修或更换的SD卡继续承担质保责任。

五、违约责任5.1 双方应严格遵守本协议的约定,如一方违反协议,应承担相应的法律责任。

5.2 甲方如违反本协议的约定,乙方有权要求甲方承担违约责任。

六、争议解决6.1 双方在履行本协议过程中发生的争议,应首先通过友好协商解决。

6.2 如协商无果,任何一方均有权向甲方所在地的人民法院提起诉讼。

七、其他7.1 本协议自双方签字(或盖章)之日起生效。

7.2 本协议一式两份,双方各执一份,具有同等法律效力。

甲方:乙方:(盖章)(盖章)代表:代表:日期:日期:。

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

SD2.0协议标准完整版[1-6章中文翻译]介绍
SD 2.0 协议标准完整版
【翻译:沙贝@中科创达 2014.安全、容量、性能、和环境需求的新型音视频电子存储卡。 Sd 卡包含一个内容保护机制,符合 SDMI 标准,并且有更快的速度和更高的容量。 Sd 卡的安全系统采用双向认证和“新密码算法”来防止卡的内容被非法使用。也可以 对用户自己的数据进行非安全访问。 SD 卡也支持基于常用标准的第二安全系统, 比如 ISO-7816, 这样就可以用于将 SD 卡连 接到共用网络和其他系统,来支持移动电子商务和数字签名的应用。 除了 SD 卡外,还有 SDIO 卡。SDIO 卡规范在一个单独的规范中定义,命名为“SDIO 卡 规范” ( 可以从 SD 协会得到) 。SDIO 规范定义了一个 SD 卡可能包含不同的 IO 单元同 SD host 之间的接口。SDIO 卡可以包含存储功能,以及 IO 功能。SDIO 卡的存储部分应该完全兼容 SD 卡规范。SDIO 卡基于并兼容 SD 卡。这种兼容包括机械、电气、电源、信号和软件。Sdio 卡的意图是为移动电子设备在低功耗情况下提供高速数据读写。一个主要目标是一个 IO 卡 插到非 SDIO 主机中,不会引起物理损坏或者设备和软件的中断。 这种情况下 IO 卡应该被简 单的忽略掉。一旦插入一个 SDIO 主控,卡的检测将以常规的方法描述,即带有 SDIO 规范扩 展的 SD 卡规范 SD 卡通信是基于 9-pin 接口(时钟,命令,数据 x4,电源 x3),设计在最大 50M 频率以 及低电下工作。通信协议是本规范的一部分。SD 规范分为几个文件: SD 规范安全规格 SD specifications Security Spec 音频规范(Audio) 文件系统规范 Sd 规范物理层规范 Mc-EX 接口规范 SDIO 卡规范 其他应用文档

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协议中文版

一概述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)and 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卡有六个寄存器OCR, CID, CSD, RCA, DSR and SCR. 其中前四个保存卡的特定信息, 后两个用来对卡进行配置.1.OCR寄存器:保存有卡支持的工作电压, 支持的话相应的位置1,否则为0.2.CID:保存有卡的身份信息.3.CSD保存有如何访问卡的信息.TAAC定义了数据访问的异步时间部分. NSAC为数据访问最坏需要的异步时间.TRAN_SPEED定义了单条DAT线上的最快速度:CCC:SD卡支持的命令集READ_BL_LEN:最大读块长度. WRITE_BL_LEN等于READ_BL_LENDSR_IMP: DSR寄存器是否允许配置, 1为允许,0为不允许.FILE_FORMAT: SD卡上的文件格式.4.RCA保存有卡的地址信息.5.DSR用于配置卡, 默认值为0x4046.SCR寄存器也保存有卡的特定信息.SD_BUS_WIDTHS指明卡支持的传输类型.第二部分 S3C2410 SD卡控制器一 SDI操作1.CPU寄存器设置过程.1)正确设置SDICON寄存器.2)正确设置SDIPRE寄存器.3)等待74个时钟信号初始卡.2.CMD命令发送过程.1)向SDICARG寄存器中写入发送的参数.2)确定命令类型并且通过设置SDICCON[8]来启动命令.3)确定命令是否发送完成. 没应答的话看SDICSTA[11], 有应答的话看SDICSTA[9].4)清除SDICSTA中的相应位.3.数据传输过程.1)向SDITIMER中写入超时值.2)向SDIBSIZE中写入块大小的值.3)设置块模式,总线宽度等, 通过SDIDCON启动传输.4)通过SDIFSTA检查TxFIFO是否可用, 再通过SDIDAT写入发送数据.5)通过SDIFSTA检查RxFIFO是否可用, 再通过SDIDAT读入接收数据.6)通过检查SDIDSTA[4]确定传输过程已完成.7)清除SDIDSTA中的相应位.4. SDIO有两种工作模式,中断和读等待模式.二. SDI寄存器.1.SDICON:SDI控制寄存器字节序类型:Type A: D[7:0] D[15:8] D[23:16] D[31:24]Type B: D[31:24] D[23:16] D[15:8] D[7:0]2.SDIPRE:波特率预分频寄存器.4. SDICCON:SDI命令控制寄存器.5. SDICSTA:SDI命令状态寄存器.6.SDIRSP0-SDIRSP3:命令响应寄存器8. SDIBSIZE:SDI块大小寄存器.9. SDIDCON:SDI数据控制寄存器10. SDIDCNT:SDI数据维持寄存器.12. SDIFSTA:SDI FIFO状态寄存器13. SDIDAT:SDI数据寄存器。

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

数据包的封装与命令协议相关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状态。

当RCA=0000h时,card将无条件地转换到Stand-by状态.9 SEND_CSD 接到本指令后,将传送CSD数据.None R110 SEND_CID 接到本指令后,将传送CID数据.None R111 READ_DAT_UNTIL_STOP 接到本指令后,将从设定的地址传送P2ROM数据,直到接到指令CMD12为止.12 STOP_TRANSMISSION 本指令强行终止CMD11和CMD18的处理None R113 SEND_STATUS 接到本指令后,将传送状态寄存器的信息.None R2 15 GO_INACTIVE_STATE 接到本指令后,将转换到休止(inactive)状态.16 SET_BLOCKLEN 本指令用来设定Block长度.对象是以后的指令CMD17和CMD18. 31:00]blocklengthR117 READ_SINGLE_BLOCK 接到本指令后,将从自变量设定的地址传送1个block 长度的数据.(block长度由指令CMD16设定). [31:00]dataaddressR118 READ_MULTIPLE_BLOCK接到本指令后,将从自变量设定的地址连续传送block长度的数据,直到接到指令CMD12为止.(block长度由指令CMD16设定). [31:00]dataaddressR123 SET_BLOCK _COUNT 本指令是给紧跟的指令CMD18设定要传送的block 数量.[31:16]set to 0 [15:00]number of blockR124 WRITE_BLOCK 接到本指令后,将写1个block 长度的数据到自变量设定的地址.(block 长度由指令CMD16设定).[31:0] data addressR125 WRITE_MULTIPLE_ BLOCK 接到本指令后,将连续写block 长度的数据到自变量设定的地址,直到接到指令CMD12为止.(block 长度由指令CMD16设定).[31:0] data addressR158 READ_OCR 接到本指令后,Card 将传送OCR 数据.None R359 CRC_ON_OFF 本指令是用来设定CRC 选项为ON 或OFF.在SPI 模式下,CRC 的初始值设定为OFF.[CRC 选项[bit=1]表示CRC ON;[CRC 选项[bit=0]表示CRC OFF.[31:01] stuff bits [00:00] CRC optionR13 命令回应repond 1) R1模式 对象指令CMD0 : GO_IDLE_STATE CMD1 : SEND_OP_COND CMD9 : SEND_CSD CMD10:SEND_CIDCMD12:STOP_TRANSMISSION CMD16:SET_BLOCKLENCMD17:READ_SINGLE_BLOCKCMD18:READ_MULTIPLE_BLOCK CMD23:SET_BLOCK_COUNT CMD59:CRC_ON_OFF7 6 5 4 3 2 1 0 0 0 02) R2模式 对象指令CMD13:SEND_STATUS 15 14 13 1211 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 03) R3模式 对象指令CMD58:READ_OCR39 38 37 3635 34 33320 0 0OCR4. sd 卡的配置信息4.1卡识别寄存器——CID (card identification register )CID-slice 名称 栏目 Bit 宽度 值 OKI 原创[127:120] Manufacture ID MID 80x41 OKI ID, 由MMCA 指定[119:104] OEM/Application ID OID 16 0x0000 OK 设备名[103:56] Product name PNM 48 P2016 产品名 [55:48] Product revision PRV 8 0x10 产品修订版(version 1.0)[47:16] Product serial number PSN 32 0x00000001 产品编号Default=1, user 设定可[15:8] Manufacturing data MDT 8 收到Code 文件的月份 OKI 收到客户Code档案的日期,或是写入程序的日期[7:1] 7-bit CRC checksum CRC7 7 CRC检验和 [0:0] - - 1 1 固定是”1”4.2卡特性寄存器——CSD(card specific data register )CSD-slice 名称 栏目Bit宽度值 Type 备注 Bin. Hex.[127:126] CSD Structure CSD_STRUCTURE 2 10 0x2 R Version 3.1 [125:122] spec version SEPC_VERS 4 0011 0x3 R Version 3.1 [121:120]Reserved2 X X R 不必理会 [119:112] datatime1 read access TAAC 8 00001000 0x08 R 1ns [111:104] datatime2 read accessNSAC8000000010x01R100cycles[103:96] max rate data transfer TRAN_SPEED 8 00101010 0x2A R 20Mb/s [95:84] card command class CCC 12 000000000111 0x007 R 支持Class0,1,2[83:80] max read data blocklength READ_BL_LEN 410010x9R512 字节79 partial blocks for readallowedREAD_BL_PARTIAL 1 1 0x1 R78 Reserved 1 X X R 不必理会77 read block misalignment READ_BLK_MISALIGN 1 0 0x0 R 禁止跨越Block 76 DSR implemented DSR_IMP 1 0 0x0 R DSR: 不支持[75:74] Reserved 2 X X R 不必理会[73:62] device size C_CIZE 12 111111111110 0xFFE R[61:59] min. read current VDD_R_CURR_MIN 3 000 0x0 R 0.5mA [58:56] max. read current VDD_R_CURR_MAX 3 100 0x4 R 35mA [55:50] Reserved 6 X X R 不必理会[49:47] device size multiplier C_SIZE_MULT 3 001 0x1 R[46:31] Reserved 16 X X R 不必理会[30:29] manufacture default ECC DEFAULT_ECC 2 00 0x0 R ECC: 不支持[28:26] Reserved 3 X X R 不必理会[25:22] Max. write data blocklengthWRITE_BL_LEN 4 1001 0x9 R[21:16] Reserved 6 X X R 不必理会15 file format group FILE_FORMAT_GRP 1 0 0x0 R14 Copy flag (OTP) COPY 1 0 0x0 R Default=0 User设定可13 permanentprotectionwritePERM_WRITE_ PROTECT 1 1 0x1 R12 temporaryprotectionwriteTMP_WRITE_ PROTECT 1 1 0x1 R[11:10] file format FILE_FORMAT 2 00 0x0 R Default=0 User设定可[9:8] ECC code ECC 2 00 0x0 R ECC: 不支持[7:1] CRC CRC 7 CRC CRC R0 Reserved 1 1 0x1 R。

相关文档
最新文档