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卡总线协议

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数据寄存器。

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卡SPI读写中文资料

SD卡SPI读写中文资料

7S P I模式本文是小弟自己翻译的(处女作哦~~~~~),难免有不妥之处,望交流指教!联系方式 QQ:286225453 Email:ioro55555@7.1介绍SPI模式SPI模式由二次传递协议组成,这个协议由Flash(基于SD卡)提供。

本模式是SD卡协议的子协议,目的是用SPI信道通讯。

SPI模式在SD卡上电后第一个复位指令(CMD0)执行后被选择,并且在接通电源时不能改变。

SPI标准定义7.2 SPI总线SD卡信道由指令和数据位(起始位和结束位)组成,SPI信道由字节定向。

每一个指令或数据块由8位的字节和CS标志构成。

类似SD卡协议, SPI通讯由指令、响应和数据组成。

全部的主机与SD卡之间的通信由主机控制。

主机执行每一跟CS标志为低的总线。

SPI模式与SD模式的响应特性有以下三方面不同∶1、被选择的卡始终对指令作出反应。

2、一个附加的(8BIT)响应产生。

3、在SD卡遇到数据检索问题时,它会作出错误反应,而不是像在SD模式中一样执行一次空操作。

除命令响应之外,每一个数据块在写操作期间会作出专门的信息响应标志反应发送给SD卡。

数据块可以大到一个扇区小到一个字节。

读/写操作由CSD(指令信号译码器)寄存器操作。

7.2.1模式选择SD卡在上电后自动SD模式。

如果CS标志在接受复位指令(CMD0)期间为低,它将进入SPI模式并且处于空闲状态。

如果SD卡识别到需要保持SD模式,它不会对指令作出任何反应并且保持在SD模式中。

如果需要SPI模式,SD卡将转到SPI模式并且进行SPI模式R1响应。

回到SD模式的必须重新上电。

在SPI 模式下,SD卡遵守部分协议系统。

支持SPI模式的SD卡指令始终有效。

7.2.2总线传送保护SPI模式每一个SD卡在总线上的数据传输由CRC(循环冗余码校验)保护。

在SPI模式, SD卡提供一种非保护模式(起动系统,建立可靠的数据联系来排除硬件或固件需要执行的CRC(循环冗余码校验)生成并且核验操作)。

sd卡、emmc卡、sdhc、sdio接口、nand等简略说明

sd卡、emmc卡、sdhc、sdio接口、nand等简略说明

简要总结2017-5-17xdk1.Sim卡和sd/sdio/sdhc什么的不一样,只有复位、电源、时钟、一根数据线。

看手机版设计,vcc电压是lte模组出来供电,且会1.8V 3.3V切换。

VPP悬空处理即可,不需要编程。

2.Nand接口和sdio/sdhc什么的也不是一种口。

Nand属于localbus总线,一般和nor共用(虽然和sdhc口一样有8位双向信号线)。

Nand主要就是we/oe/ce/ale/cle/8位命令地址数据线。

3.Sd(Secure Digital Card)卡最大支持2GB容量(据说由MMC演变未来),4bit数据线。

还有clk/cmd信号,cmd用来区分命令还是数据。

文件系统fat12/16.4.sdhc("Secure Digital High Capacity高容量sd存储卡),支持2GB~32GB容量范围;和sd相比,8bit数据位。

Sdhc可以向下兼容sd卡(sd2.0以后的版本,老的不兼容)。

文件系统fat32。

5.sdxc(SD eXtended Capacity),容量更大目前可达64GB,理论上2TB,传输速度更快(300MB/s),exFAT文件系统.支持UHS104(新的超高速sd接口规格)6.sdio就是支持sd卡的接口,同时还外延了,支持其他支持sdio接口的设备,如蓝牙、网卡、电视卡等(见下文网络copy,具体工作模式没看透,支持spi、data1作为中断?暂时不影响我画图)。

7.sdhc接口,可以接sdhc卡,emmc卡。

8.eMMC(Embedded Multi Media Card)是由MMC协会(MultiMediaCard Association,2008年已并入JEDEC)提出的内置存储标准,主要针对手机和平板等移动设备设立。

在最新的eMMC5.1标准中存取带宽已经提升到600MB/s9.UFS(Universal Flash Storage)的出现比eMMC要晚一些。

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状态。

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

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卡的SPI模式(中文)

SD卡的SPI模式(中文)

SD卡的SPI模式(中文)
在SPI模式下,正好与SD模式相反,CMD1和ACMD41都没有打操作数和不会返回OCR寄存器的内容。而是,主机利用CMD58(仅用于SPI)去读 OCR寄存器。此外,主机有责任避免访问那此不在允许电压范围内的卡。 CMD58的应用不仅限于初始化期间,且可以用于任何时候。 7.2.8 错误条件 不像SD存储卡协议那样,在SPI模式下卡总会对一个命令作出响应。此响应显示了命令的接受和拒绝。如果一个命令不被支持,它被拒绝。如果CRC 校验失败,如果它含有非法的操作数,或者它在擦除序列期间不按照序列。 7.2.9 内存阵列
7.2.5 擦除和写保护 在SPI模式下擦除和写保护管理程序与SD模式下的相同。当卡正在擦除或者正在改变预定扇区清单的写保护位时,它将会进入忙状态且使DataOut线 为低电平。图46举例说明了一个有和没有忙信号的无数据的总线事务。
Figure46:无数据的操作
7.2.6 读CID/CSD寄存器 跟SD存储卡协议不同(在那里寄存器的内容是作为一个命令响应发送),在SPI模式下,CSD和CID的内容的读取是一个简单的块读事务。在16字节 的带16位CRC后缀的数据块之后,卡用一个标准的响应令牌来响应。 CSD命令的数据超时时间不能被设置入卡的TAAC,因为这个值是放在卡的CSD寄存器中。所以标准的响应超时值(NCR)被用于CSD寄存器的读响 应时间。
Figure42:读操作-数据错误
在多块读操作中,每一个被传输的块有它的16-CRC位。停止传输命令将实际地停止数据传输操作。(与SD模式相同)
Figure43:多块读操作
7.2.4 写数据 在SPI模式下,SD存储卡支持单块和多块写命令。在接收到有效的写命令(CMD24、CMD25)之后,卡将以一个响应令牌响应,然后等待主机发来 数据块。CRC后缀、块长度和起始地址都与读操作相同。(例外:控制片块读读操作的CSD参数WRITE_BL_PARTIAL)

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个二进制位来表示计算设备总大小的一个乘数。

sd卡协议(中文版)

sd卡协议(中文版)

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

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

其具体格式分布如下图
其中的命令索引位是[45:40],里面可以封装各种命令,具体的命令表将在下面给出。

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

3 命令回应repond
1)R1模式
对象指令
CMD0 :GO_IDLE_STATE CMD1 :SEND_OP_COND CMD9 :SEND_CSD
CMD10:SEND_CID
CMD12:STOP_TRANSMISSION CMD16:SET_BLOCKLEN
CMD17:READ_SINGLE_BLOCK
CMD18:READ_MULTIPLE_BLOCK CMD23:SET_BLOCK_COUNT CMD59:CRC_ON_OFF
2)R2模式
对象指令
CMD13:SEND_STATUS
3)R3模式
对象指令
CMD58:READ_OCR
4. sd卡的配置信息
4.1卡识别寄存器——CID(card identification register )
4.2卡特性寄存器——CSD(card specific data register)。

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

一概述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数据寄存器。

相关文档
最新文档