SD卡功能描述(翻译)_第1页
SD卡功能描述(翻译)_第2页
SD卡功能描述(翻译)_第3页
SD卡功能描述(翻译)_第4页
SD卡功能描述(翻译)_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、4 SD卡功能描述4.1 概述主机与卡之间的所有通讯都由主机控制。主机发送两类命令:广播命令和定址命令(点对点)。l 广播命令:广播命令适用于所有卡,部分命令需要响应回复。l 定址命令(点对点)定址命令发给已确定地址的卡,引发卡响应回复。表格4-1显示卡片辨识模式命令流程总览,表格4-3针对数据传输模式。表格4-19和表格4-28罗列了所有命令。表4-29罗列了当前状态、命令接收和随后模式之间的依赖关系。在接下去的章节中,会首先描述各类卡片操作模式。然后,定义始终信号控制条件。SD卡所有关于命令、响应、状态转换、错误条件和定时都会在随后的章节中描述。SD卡系统(主机和卡片)定义两种操作模式:l

2、 卡片辨识模式主机复位后或者在总线上搜索新卡时,会进入卡片辨识模式。卡片复位后也进入这个模式,直到收到SEND_SCR命令(CMD3)。l 数据传输模式当卡片的RCA首次确定后立即进入数据传输模式。主机要识别完总线上所有卡片后进入数据传输模式。下面的表格展示了操作模式和卡片状态之间的关系。SD卡状态表中的每个状态都与一种操作模式相关。卡片状态操作模式非活动状态非活动空闲状态卡片辨识模式就绪状态辨识状态待命状态数据传输模式数据发送状态数据接收状态编程状态断开状态表 4-1 卡片状态和操作模式总览4.2 卡片辨识模式在卡片辨识期间,主机复位所有在卡片辨识模式中的SD卡,确认操作电压范围,辨识卡片以

3、及要求确定相对卡片地址(RCA)。这个操作通过SD卡CMD口线各自独立完成。卡片辨识模式中所有的数据传输只能使用CMD口线通道(CMD)。在卡片辨识过程中,SD卡使用辨识时钟速率fOD(见6.7章)作为SD卡时钟频率。4.2.1 卡片复位命令GO_IDLE_STATE(CMD0)是一个软复位命令,要求卡片立即忽略当前模式进入空闲模式。卡片在非活动模式时该命令无效。主机上电后,所有卡片进入空闲模式,包括之前在非活动模式下的卡片。在上电或CMD0命令后,所有卡片CMD口线进入输入模式,等待下个命令的起始位。卡片初始化时使用默认相对地址(RCA=0x0000),以及默认驱动寄存器设置(最低速度,最大

4、驱动电流能力)。4.2.2 工作条件确认在主机和卡片通讯之初,主机无从获知卡片支持电压,卡片也不知道是否支持当前工作电压。主机只能使用一个既定电压发送一个复位命令(CMD0),假设卡片支持该电压。为了确认电压,2.00版物理层文件定义了一个新的命令(CMD8)。SEND_IF_COND(CMD8)用来确认SD卡接口工作条件。卡片通过分析CMD8命令参数来检查工作条件的正确性,主机通过分析CMD8命令返回参数来确认正确性(见4.3.13章节)。参数VHS域说明支持的工作电压。卡片采用VHS中规定的电压作为当前工作电压。VHS中只有1位能被设置为1。主机同时使用CRC和检查标记来确认通信是否正确。

5、如果卡片能在此工作电压下工作,在命令回复中对该电压做出回应,在命令参数中设置检查标记。如果卡片不支持该工作电压,卡片不做任何回复仍处于空闲状态。规范中强制规定,在大容量SD卡初始化命令ACMD41首次发送之前,必须先发送CMD8命令(见图表4-1)。当SD卡收到CMD8命令,认为主机支持物理层2.00版本,据此使能新功能。SD_SEND_OP_CMD(ACMD41)用来为主机提供一种辨识机制,或者拒绝那些不支持设计电压范围VDD的SD卡。主机把要求电压作为该命令的操作数发送以完成该命令(见5.1章节)。如果SD卡不能在指定电压范围完成数据传输,那么它们将使自身和总线操作隔离开进入非活动状态。寄

6、存器OCR中的级别会做进一步相应说明(见5.1章节)。注意ACMD41是应用程序命令,因此要先发送APP_CMD(CMD55)。CMD55命令使用的RCA为卡片默认地址RCA=0x0000。主机发送CMD0复位卡片以后,主机在ACMD41命令之前要先发送CMD8来二次初始化SD卡。通过ACMD41命令参数将OCR设置为0,在排除卡片至非活动模式(查询模式)之前,主机能查询每张SD卡,以及决定通用电压范围。如果主机可能会选择一个通用电压范围,或者如果有一个无用卡应用程序通知需求,那么这个查询最好被使用。卡片不会开始初始化如果ACMD41用作查询命令发送。然后主机会选择一个工作电压,以该工作电压为

7、参数重新发送ACMD41命令,设置不兼容卡进入非活动状态。在初始化步骤中,主机不允许改变工作电压,关于上电时序会在6.4章节中描述。4.2.3 卡片初始化和辨识过程卡片激活后主机开始卡片初始化和辨识过程(见图表4-2)。初始化过程从SD_SEND_OP_COND(ACMD41)开始,设置工作条件和OCR中的HCS位。HCS(Host Capacity Suppo)位置1代表主机支持大容量SD卡。HCS置0代表主机不支持大容量SD卡。收到CMD8命令扩展了ACMD41命令;HCS在参数中,CCS(Card Capacity Status)在回复中。不响应CMD8的卡片会忽略HCS位。如果卡片不响

8、应CMD8主机应该设置HCS为0。标准容量SD卡忽略HCS位。如果HCS位设为0,大容量SD卡不会进入就绪状态(保持busy位为0)。卡片使用OCR中的Busy位来向主机通知ACMD41命令初始化完成。Busy为0代表卡片还在初始化中,设置为1代表初始化完成。主机重复发送ACMD41直到busy位位1。卡片只在首次ACMD41命令时检查工作条件和OCR中的HCS位。当重复发送ACMD41命令时,主机不应该发送其它命令,除了CMD0。如果卡片响应了CMD8,那么ACMD41命令回复中包含了CCS域信息。当卡片进入就绪状态时(busy 位位1)CCS才是有效的。CCS=1表示卡片为大容量SD卡。C

9、CS=0 表示卡片为标准SD卡。主机对系统中所有新卡执行同样的初始化时序。不兼容卡被派遣进入非活动状态。主机向每张卡发送ALL_SEND_CID(CMD2)命令,来获取该卡唯一的卡片辨识号码(CID)。未辨识卡片(就绪状态)发送自身的CID数据作为响应(通过CMD口线)。当卡片发送完CID值后进入辨识状态。之后,主机发送CMD3(SEND_RELATIVE_ADDR)要求卡片使用一个新的相对卡片地址(RCA),RCA比CID要短,用来在将来的数据传输模式中卡片寻址。一旦卡片收到RCA,将改变状态至待命状态。此时,如果主机想要设置两外一个RCA值,可以向卡片再次发送CMD3要求设置新RCA值。最

10、后最新的RCA值作为卡片的RCA值。主机重复初始化进城,换言之,向每张卡重复CMD2和CMD3命令。4.3 数据传输模式知道卡片辨识模式结束,主机应该保持fOD频率,因为部分卡片在辨识模式时有操作频率限制。数据传输模式时,主机可以使用fPP频率范围(见6.7章节)来操作卡片。主机发送SEND_CSD(CMD9)命令来获取卡片详细数据(CSD寄存器),比如块长度,卡容量,等等。广播命令SET_DSR(CMD4)配置已辨识的卡片驱动平台。该命令根据应用总线布局和总线上卡数量以及数据集传输频率来配置DSR寄存器。此时工作频率也从fOD切换至fDD。SET_DSR命令对于主机和卡片是可选的。CMD7用

11、来选择一种卡片然后将其转为传输状态。在一个时刻只能有一张卡处于传输状态。如果前面有一张处于传输状态的卡与主机连接被释放了,该卡将重新回到待命状态。当CMD7使用保留地址0x0000发送时,所有卡都回到待命状态(注意,主机需保留RCA=0地址,供卸卡时用,参看表4-19,CMD7)。这个应该在新卡辨识之前使用,不带重新设置已注册的卡片。已经配置过RCA的卡片在这个状态下不响应辨识命令(ACMD41,CMD2,见4.2.3章节)。重点注意:如果卡片收到CMD7命令,但RCA地址不匹配时,卡片将被卸载。如果一张卡片被选中同时使用公用CMD口线,那另一张卡片就会自动被卸载。在SD卡系统中,初始化完成后

12、,共用CMD口线是非常有必要的,在那种情况下,卡片会被自动卸载,或者分卡使用CMD口线,主机必须单独卸载卡片。在数据传输模式下,主机和选中的卡片之间的所有数据通讯都是点对点的(使用定址命令)。所有定址命令通过CMD口线获得回复信息。各种数据传输模式之间的关系总结如下:l 使用停止命令(CMD12)可以再任何时间终端所有数据读取命令。数据传输将会中断,卡片回到传输状态。读取命令有:块读取(CMD17),多块读取(CMD18),发送写保护(CMD30),发送SCR(ACMD51)以及读模式下常规命令(CMD56)。l 使用停止命令(CMD12)可以再任何时间终端所有数据写入命令。写命令将先于卸卡命

13、令CMD7停止。写命令有:块写(CMD24和CMD25),编程CSD(CMD27),锁定/解锁命令(CMD42)和写模式常规命令(CMD56)。l 每当数据粗函数完成,卡片立即退出数据写状态进入编程状态(传输成功)或者传输状态(传输失败)。l 如果块写操作停止,且块长度和CRC校验都正确,数据才会被编程写入。l 卡片提供块写缓存。这个意味着卡片在执行编程写入时,下个块的数据可以提前发送。如果缓存全满,且卡片一直保持编程状态(见SD卡图表4-3),DAT0口线一直保持低电平(BUSY)。l 写CSD,写保护和擦除是没有缓存的。这表示卡片在执行这些命令时,不能接受其他数据传输命令。DAT0将一直保

14、持低电平,卡片一直处于编程状态。实际上,当卡片忙时,且CMD和DAT0口线各自卡片独立,主机可以断开忙DAT0,转而去操作其他卡片。l 卡片在编程写入时,参数设置命令不允许执行。参数设置命令有:设置块程度(CMD16),擦除块头(CMD32)以及擦除块尾(CMD33)。l 卡片在编程写入时,读取命令不允许执行。l 将另一张卡从待命状态转为传输状态(使用CMD7)不会停止擦除和编程操作。卡片会转至断开状态,释放DAT口线。l 使用CMD7,可以讲处于断开状态的卡片重新选择。这时,卡片转至编程状态,重新激活判忙指示器。l 复位卡片(使用CMD0或者CMD15)会终端任何挂起或活动的编程操作。这回破

15、坏卡片上的数据内容。主机有责任杜绝该现象发生。l CMD34-37,CMD50和CMD57保留,用作SD命令系统扩展。这些命令对卡片状态转变会在每个命令系统规范总说明。4.3.1 宽总线选中/消选宽总线(4位总线)操作模式使用ACMD6命令选中与消选。上电后或者使用GO_IDLE(CMD0)命令后默认带宽为1位带宽。为了改变总线带宽,会存在以下两种情况:a) 存储卡处于“传输”状态b) 存储卡未锁定存储卡被锁定后认为ACMD6为非法命令。4.3.2 2 GByte 存储卡要达到2G存储容量,Block Length(READ_BL_LEN=WRITE_BL_LEN)最大设置为1024bytes

16、。Block Length ,由CMD16设置,最大到512字节保持连贯性xxxxxx4.3.3读数据没有数据传输时,DAT线被上拉电阻拉高。传输数据包由开始位(1位或者4位0)和连续的数据流组成。数据流包含额外的数据(如果使用Off-card ECC的话就包含一个错误纠正位)。数据流的最后部分是停止位(1位或者4位1)。数据传输与时钟信号同步。传输的数据块数据有1位或者4位的CRC校验(参考章节3.6)。在从SD卡读数据的过程中,断电会导致该操作的中断。除了主控制器引发的写操作和擦除操作之外,在其他任何条件包括在突然断电和拔出SD卡的情况下, SD卡确保数据不损坏。如果BLOCK_LEN_E

17、RROR或者ADDRESS_ERROR发生,读数据命令将会被拒绝,且没有数据传输操作执行。l 块读操作块读操作是以块为中心的数据传输。数据传输的基本单元是块,块的最大长度通常是512字节。起始地址和结束地址整个都包含在512字节之内的更小的数据块也可以传输。CMD16命令设置块的长度最高可达512字节,不必考虑READ_BL_LEN的值。为了保证数据包的健壮和完整性,会在每个数据块的最后添加CRC。CMD17(READ_SINGLE_BLOCK)开启一个读操作,在数据传输完成之后,卡片回到传输状态。CMD18(READ_MULTIPLE_BLOCK)命令读取几个连续的数据块。数据会持续传输直到

18、遇上停止传输命令(CMD12)。由于停止命令是串行传输,所以在执行时会有延时。在收到停止命令的最后一位数据后,数据传输操作终结。表格4-2定义了局部块可访问的卡片的行为。如果命令中的第一个块就没有地址对齐的话(即在响应中报告了ADDRESS_ERROR),就不会发生数据传输,卡片仍然保持传输状态。表4-2*1:现行的块长度可通过CMD16来设置或改变。如果该值小于等于512字节,在设置过程中不会出错(跟是否允许非对齐和局部访问没有关系)。*2:块数据长度超过512字节时,卡片会输出512字节的数据,随后数据就不可用,且有可能引发CRC错误。卡片对下一个命令返回ADDRESS_ERROR。主控器

19、须使用CMD12命令来恢复。4.3.4写数据写数据的传输格式同读数据的格式类似。写数据也是以块为中心的操作,每一个块后都要加CRC校验。卡片对每一包收到的数据在执行写操作之前要执行1位或者4位的CRC校验(参考章节4.5)。通过这种办法,可以防止写入错误的数据。如果发生了BLOCK_LEN_ERROR或者ADDRESS_ERROR错误,写操作命令被拒绝,且没有数据传输被执行。l 块写操作在写数据块(CMD24-CMD27,CMD42,CMD56(W))过程中,一块或者多块的数据被主控制器传输到SD卡,数据的末尾加上1位或者4位的CRC。支持块写操作的卡片须在CMD16命令下设置块的长度为512

20、字节,不必去管WRITE_BLK_LEN是被设置为1K还是2K。表格4-3定义了局部块访问禁能时的卡片行为表4-3 写命令的数据块长度*1:现行的数据块长度通过CMD16命令来改变。如果设置该值小于512字节(与是否允许非对齐和局部访问无关),不会出错。会在写操作执行的时候测试该值。*2:如果数据块长度是除了该值之外的其他值,卡片会在对写操作的响应中表明BLOCK_LEN_ERROR错误。*3:如果开始地址是除了该值之外的其他值,卡片会在对写操作的响应中表明ADDRESS_ERROR。如果允许写局部块,那么更小的块,甚至到1个字节的块都可以被正确访问。如果CRC失败,卡片应该在DAT线上表示出

21、错(参看下文)。传输的数据会被丢弃且,不会被写入到SD卡中,而且之后的传输数据(在写连续多块操作中)会被忽略。使用一次写多块数据命令,比使用连续写一块数据命令,写多次的速度更快。如果局部数据块的累积长度不是数据块对齐,而且数据块非对齐不允许(CSD寄存器中WRITE_BLK_MISALIGN没有设置)的话,卡片会侦测到块非对齐错误,且要在第一个非对齐的数据块开始前中断编程。卡片要在状态寄存器中设置ADDRESS_ERROR,忽略之后的数据传输,置自己于收数据状态,等待停止传输命令的到来。注意:写数据操作的第一数据块地址非对齐(即在对写数据的命令响应中报告了ADDRESS_ERROR),卡片仍然

22、处于传输状态,且没有数据被编程。如果主控制器试图去写处于写保护区域的数据块,该操作会被中断。这种情况下,卡片会设置WP_VIOLATION。对CSD寄存器编程不要求预先设置数据块长度。传输的数据也同样有CRC检查。如果有部分CSD寄存器的内容存储在ROM中,那么这个不可变部分应该与收到数据的响应部分相匹配。如果匹配失败,那么卡片会报告一个错误,且不会改变任何寄存器的内容。有些卡片的写一个数据块操作可能需要很长的时间,且这个时间不可预知。在接收到一块数据且完成CRC校验之后,卡片会开始写数据。在这个过程中,由于当前的写操作的缓存是满的,所以不能从一个新的写数据命令中来接收数据的,保持DAT0线为

23、低电平。主控器可以发送一个SEND_STATUS(CMD13)命令来轮询卡片的状态,卡片要以自身的状态去响应。状态位READY_FOR_DATA表示卡片可以接收新数据或者写操作仍在进行中。主控器可以通过发送CMD7(选择另一张不同的卡)命令来反选卡片,这样会导致卡片处于未连接状态,在不中断写操作的前提下释放DAT口线。如果在写操作还未完成的情况下重新连接该卡片,卡片会把DAT口线拉低表明自身处于非激活状态,此时写操作缓冲不可用。实际上,主控器可以使用交叉进程同时对多张卡片进行写操作。在其他卡处于忙时,对不忙的卡进行单独访问,这样可以完成交叉访问进程。使用恰当的CMD命令和对DAT0-3口线的适

24、当控制(使处于忙状态的卡片进入到未连接状态)可以保证该进程完成。l 在写多块数据之前预擦除设定在写多块数据之前对这些数据块预先进行擦除操作(使用ACMD23)比直接写多块数据的速度快。主控器使用该命令来定义一个写操作之前要擦除多少数据块。如果在写操作命令没有执行完之前,主控器使用停止传输命令,那么卡片上的数据就不可预知了,既可能是已经被擦除了,也可能是未擦除之前的老数据。如果主控器实际要写的数据块超过了在ACMD23中定义的预先擦除的数据块,卡片会一片接着一片的擦除数据。在写多块数据操作完成之后,该值会被复位成默认值1。建议在使用CMD25命令之前使用ACMD23,对有些卡片的写多块数据操作会

25、更快。注意:如果要使用与擦除功能的话,主控器在写命令之前要使用ACMD23命令。如果不使用该功能的话,那么当执行其他操作的时候,预先擦除的块这个域会被自动清除。l 发送已经写的块数目使用流水线机制来进行数据缓存管理的系统,如果在写多块(Multiple Blocks write)的过程中出现一个错误的话,在某些情况下不能确定哪一个块是已经正确写入数据的最后一块。卡片把已经正确写入的块数作为对ACMD22命令的响应。4.3.5擦除为了提高数据吞吐量,要求能同时擦除许多块。对这些块的确认通过使用ERASE_WR_BLK_START(CMD32)和ERASE_WR_BLK_END(CMD33)命令已

26、经能实现。主控制器要奉行如下的命令顺序:ERASE_WR_BLK_START, ERASE_WR_BLK_END,ERASE(CMD38)。如果SD卡片接收到没有按照正确顺序发送的擦除命令(CMD38)或者地址设定命令(CMD32,CMD33),SD卡应该要在状态寄存器中设置ERASE_SEQ_ERROR错误并且复位整个命令的顺序。如果SD卡接收到一个没有按照正确顺序发送的擦除命令(SEND_STATUS除外),则在状态寄存器中将ERASE_RESET位置位,复位擦除顺序,并且执行最后的一个命令。如果擦除的范围包括有写保护的扇区,写保护的扇区应保持原封不动,只有非保护的扇区才能被擦除。状态寄存

27、器中的WP_ERASE_SKIP位置位。地址设定命令中的地址域是以字节为单位的块地址。卡片会忽略所有的小于WRITE_BL_LEN的长度的LSB。同之前描述的块写操作类似,卡片在擦除操作过程中会把DAT0保持在低电平。也同之前描述过的块写操作一样,实际的擦除过程可能时间会比较长,主控制器可以发布CMD7命令来反选卡片或者断开与卡片的连接。卡片上的数据在擦除后是0还是1都是有可能的,由卡片的制造厂家决定。SCR寄存器中的DATA_STAT_AFTER_ERASE(位55)定义了擦除后是0还是1。4.3.6写保护管理SD卡片支持三种写保护方法:机械上的写保护开关(由主控器负责)卡片内部的写保护(由

28、卡片负责)密码保护卡片l 机械写保护开关使用者可滑动卡片边上的机械滑片来决定是否启用写保护。如果滑片滑到使窗口处于打开的位置,那么卡片处于写保护状态。如果窗户是关闭的,那么卡片处于无写保护状态。一个恰当的,匹配的开关位置向主控器表明卡片是否处于写保护态。对卡片的保护由主控器负责。对卡片的内部电路而言,滑片的位置是不可知的。l 卡片内部写保护(可选配置)简化版的规范此节的内容为空白。4.3.7卡片上锁/解锁操作4.3.7.1概述密码保护功能允许主控器使用密码锁定一个卡片,之后解锁也要使用该密码。密码和密码的长度分别保存在一个128位的PWD寄存器和一个8位的PWE_LEN寄存器中。这些寄存器都是

29、非易失性的,所以一个power周期(包括断电以及上电)不会擦除掉它们。被锁定的卡片对基本命令类型(类型0)、ACMD41、CMD16,和锁卡片命令类型的命令有响应且执行。所以,允许主控器对锁定的卡片进行复位,初始化,选择,查询状态等操作,不能进行访问数据操作。如果密码被预先设定(PWD_LEN的值不是0),那么卡片在上电后自动锁定。同写CSD寄存器命令类似,卡片的上锁/解锁命令只在卡片处于传输状态时可用。这意味着上锁/解锁命令不包含一个地址类型的参数,且应该在使用该命令前选择卡片。卡片上锁/解锁命令的数据结构和总线协议同普通的写一块数据命令相同。传输的命令数据中包括该命令需要的所有信息(密码设

30、置模式,PWD密码本身,卡片上锁还是解锁等)。表格4-4描述了命令的数据结构。注意:根据SD物理层规范2.00版本,主控器在使用CMD42时应设置保留位(Bit7-4)为0。l ERASE:1表示强制擦除操作。在第一个字节中,bit3会设置为1(其他所有的位都为0)。该命令的其他数据位被卡片忽略。l LOCK/UNLOCK:1表示锁定卡片。0表示解锁卡片(注意,该位可以和SET_PWD位一起设定,不能和CLR_PWD位一起设定)。l CLR_PWD:1表示清楚密码。l SET_PWD:1表示设定新的密码l PWDS_LEN:定义之后要传输的密码的长度(字节)。如果是改变密码的情况,该域包括旧密

31、码和新密码的总长度。密码的长度可以高达16字节。如果是改变密码的情况,旧密码和新密码的总长度可以高达32字节。l Password data:如果是设定一个新密码,该域包含新密码。如果是改变密码,该域包含旧密码和新密码,新密码在旧密码后传输。表4-4 锁卡命令数据结构主控器在发送锁定/解锁命令之前要先定义卡片的数据块长度。数据块的长度应不小于锁定命令的数据结构的长度。在以下的扩展中,锁定命令不要求强制使用CMD16命令来改变数据块的长度。以下的内容定义了各种锁定/解锁命令的顺序:l 设定密码n 如果之前没有选中卡片,那么选择一张卡(CMD7)。n 定义命令数据块长度(CMD16)。该长度由8位

32、的锁定/解锁模式、8位的密码长度以及新密码的字节数所给定。为了防止替换密码的情况,该数据块长度应考虑到旧密码和新密码会一起发送。n 在数据总线上使用恰当的数据块长度包发送锁定/解锁命令时,数据块包含16位CRC校验。数据块中的内容表明密码模式(SET_PWD),密码长度(PWDS_LEN)以及密码本身。为了防止替换密码的情况,密码长度(PWDS_LEN)包含了旧密码和新密码的总长度,而密码的数据区则包含了旧密码(最近使用的)数据和新密码数据。注意卡片计算新密码的长度是内部完成的,PWDS_LEN的值域减去旧密码的长度。n 如果发送的旧密码不正确(长度和内容不对),那么在状态寄存器中会置位LOC

33、K_UNLOCK_FAILED,且旧密码不会被改变。如果发送的旧密码是正确的,那么新密码以及新密码的长度会被分别保存到PWD和PWD_LEN域。注意到密码长度域(PWD_LEN)表示最近是否有新密码设置。该域为0表示没有密码设置,在上电后该域不为0时,卡片会锁定自身。在最近的上电进程中(current power session)设置LOCK/UCLOCK位,或者发送一个额外的命令来锁定卡片都是可行的。l 重新设置密码n 如果没有选中卡片,那么选中一张进行之后的操作。n 定义命令数据块长度,该长度由8位的锁定/解锁命令模式,8位的密码长度,以及旧密码的长度所给定。n 使用恰当的数据块长度往数据

34、总线上发送锁定/解锁命令,包含16位的CRC校验。数据块中的内容表明要清除密码(CLR_PWD),密码长度PWDS_LEN以及密码本身。如果密码以及密码长度与命令中发送的密码以及长度匹配,那么PWD寄存器中的内容将清除,PWD_LEN的值被置0。如果密码不正确,那么在状态寄存器中设置LOCK_UNLOCL_FAILED错误标志位。l 锁定卡片n 选中一张卡片,如果没有选中的话。n 定义命令数据块长度,该长度由8位的锁定/解锁命令模式,8位的密码长度,以及旧密码的长度所给定。n 使用恰当的数据块长度往数据总线上发送锁定/解锁命令,包含16位的CRC校验。数据块中的内容表明要锁定卡片(LOCK),密码长度PWDS_LEN以及密码本身。如果发送的密码与寄存器中的密码相同,那么卡片就被锁定,状态寄存器中的卡片锁定标志被置位。如果密码不正确,那么状态寄存器中的LOCL_UNLOCK_FAILED错误被置位。可能会出现在同一时刻执行设置密码和锁定卡片的操作。在这种情况下,主控器要执行设置密码命令所要求的所有步骤包括置位LOCK位。如果密码事先被设定(PWD_LEN域的值非0),那么在上电或者复位后卡片会被自动锁定。试图去锁定一张已经锁定的卡,或者去锁定一张没有密码的卡均会失败且置位状态寄存器中的LOCK

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论