数据读取注:数据线表示数据总线(1位或4位)。单块读取主机选择一张卡进行CMD7的数据读取操作,并设置CMD16面向块的数据传输的有效块长度。读操作的基本总线时序如下图所示。...卡的数据传输开始于从读命令结束位开始的访问延时Nac之后。在最后一个数据位之后,CRC校验位的后缀允许主机检查传输错误。多块读取在多块读取模式下,卡按照主机的初始读取命令发送连续的数据块流。...数据写入单块写入主机选择一张卡进行CMD7的数据写操作。主机设置CMD16面向块的数据传输的有效块长度。写操作的基本总线时序如下图所示。...带卡忙信号和不带卡忙信号的数据块时序如下图所示。停止传输命令的工作原理与读取模式类似。下方图1-4描述了不同卡状态下stop命令的执行时间。...前面的所有示例都处理了主机在非活动数据传输期间停止数据传输的场景。下面两个图描述了接收数据块之间的停止传输的场景。在第一个示例中,卡忙于对最后一个块进行编程,而在第二个示例中,卡是空闲的。
但是,CMD16设置的块长度最多为512字节,以保持与512字节最大块长度卡(小于等于2GByte卡)的一致性。数据读取当没有数据传输时,通过上拉使数据总线电平高。...数据流以endl位结束(1位或4位HIGH).数据传输与时钟信号同步。面向块的数据传输的有效载荷由1位或4位CRC校验和保护。关闭电源可能会中断SD存储卡的读取操作。...SDl存储卡确保在主机发出的除写或擦除操作外的所有情况下,即使在突然关闭或删除的情况下,数据也不会被破坏。...数据写入数据传输格式与数据读取格式类似。对于面向块的写数据传输,CRC校验位被添加到每个数据块中。在写操作之前,卡对每个接收到的数据块执行1位或4位CRC奇偶校验。...CSD寄存器的编程不需要先前的块长度设置。传输的数据也受CRC保护。如果CSD寄存器的一部分存储在ROM中,那么这个不可改变的部分应与接收缓冲区的相应部分相匹配。
主机发出SEND_CSD (CMD9)以获取卡片特定数据(CSD寄存器),例如块长度,卡片存储容量等。广播命令SET_DSR (CMD4)配置所有标识卡的驱动阶段。...因此,在SDl存储卡系统中,主机将负责使用公共CMD行(在初始化完成后)-在这种情况下,卡取消选择将自动完成,或者如果CMD行是分开的,那么主机应该意识到取消选择卡牌的必要性。...数据传输模式下的所有数据通信都是主机和所选卡之间的点对点通信(使用寻址命令)。所有寻址的命令都在CMD行上得到响应。...各种数据传输模式之间的关系总结如下:所有的数据读取命令都可以在任何时候通过stop命令(CMD12)终止。数据传输将终止,卡将返回到传输状态。...一旦数据传输完成,卡将退出数据写入状态,并移动到编程状态(传输成功)或传输状态(传输失败)。如果停止块写操作,并且最后一块的块长度和CRC有效,则将对数据进行编程。该卡可以为块写入提供缓冲。
SD NAND存储功能描述(9)切换功能开关功能状态开关功能状态是返回的数据块,其中包含功能和当前消耗信息。块长度预定义为512位,不需要使用SET_BLK_LEN命令。状态数据结构如下表所示。...响应的状态位包含功能组的信息。最大电流消耗仅用于通过该命令添加的新功能。...模式1操作可能会影响函数的行为。模式0操作应该用于检查函数的忙状态,因为它不会影响其行为,特别是对于下面定义的功能组2。数据结构版本号数据结构版本表示Switch功能状态的有效位字段。...Switch命令功能表功能开关的可能组合如下面3个表所示。“参数”为交换机命令参数中指定的4位码(23-0位)。“Busyl“状态”表示函数忙,如下所示。...“状态码”表示状态数据结构中的4位码,位为399 ~ 376。以上内容由杭州瀚海微科技整理
ccc中包含强制命令的类总是被设置为1。具有特定功能的卡可能需要支持一些可选命令。例如,Combo Card应该支持CMD5。等级0、2、4、5和8是强制性的,所有SD存储卡都应支持。...除CMD40外,SDHC和SDXC是强制性的。其他类是可选的。支持的卡命令类(CCC)被编码为每个卡的卡特定数据(CSD)寄存器中的参数,为主机提供如何访问卡的信息。...注(1):与写和擦除相关的命令仅对可写类型的Cardsl是强制性的注(2):该命令在1.10版本中定义注(3):该命令是2.00版本中新定义的注(4):该命令在1.01和1.10版本中是可选的,从2.00...命令详细说明下表详细描述了所有SD存储卡总线命令。响应R1-R3。下一章描述了寄存器CID、CSD和DSR。该卡将忽略参数中的填充位和保留位。...1) 传输的数据不能跨越物理块边界,除非在CSD中设置了READ_BLK_MISALIGN2) 2) SDSC卡(CCS=0)使用字节单位地址,SDHC和SDXC卡(CCS-1)使用块单位地址(512字节单位
DSR register (Optional)后面的内容会详细描述了16位驱动级寄存器。它可以选择性地用于改善扩展操作条件下的总线性能(取决于总线长度、传输速率或卡数等参数)。...SCR提供有关SD存储卡的特殊功能的信息,这些功能被配置到给定的卡中。可控硅寄存器的大小为64位。此寄存器应由SD存储卡制造商在工厂设置。下表描述了SCR寄存器的内容。...SD_SPEC描述卡支持的物理层规范版本。SD_SPEC3版本1.XX的SD_SPEC3为0。说明:主机识别物理层规范版本也应识别包括未来版本。下一个版本将在SD_SPEC字段中定义。...DATA_STAT_AFTER_ERASE定义擦除后的数据状态,是0还是1(状态取决于卡的供应商)SD_SECURITY该字段表示每个容量卡对应的CPRM安全规范版本。每个容量卡对保护区的定义不同。...对于ROM(只读)和OTP(一次性可编程)类型的SD存储卡,安全功能是可选的。SD_BUS_WIDTHS描述此卡支持的所有DAT总线宽度。
CSD Register (CSD Version 1.0) 以下部分描述CSD字段和相关数据类型。...读访问时间应该解释为数据块或流的第一个数据位的典型延迟。TRAN_SPEED下表定义了每条数据线的最大数据传输速率——TRAN_SPEED:NSAC定义与时钟相关的数据访问时间因素的最坏情况。...TRAN_SPEED下表定义了每条数据线的最大数据传输速率——TRAN_SPEED:注意,对于当前的SD存储卡,该字段应始终为0_0110_010b (032h),等于25MHz - SD存储卡的强制最高工作频率...注意,在SD存储卡WRITE_BL_LEN总是等于READ_BL_LENREAD_BL_PARTIAL(在SD存储卡中总是=1)在SD存储卡中总是允许部分块读取。这意味着更小的块也可以使用。...WRITE_BLK_MISALIGN定义要由一个命令写入的数据块是否可以分布在多个物理上存储设备的块。内存块的大小在WRITE_BL_LEN中定义。
卡状态转换表下方表格根据接收到的命令定义了卡的状态转换。表中的状态名是命令执行后的下一个状态。“-”表示该命令被视为非法命令。此外,命令是否可执行取决于命令类(ccc)。...-Card执行内部初始化过程-当参数中的HCS设置为0时,为SDHC或SDXC卡。以上第8类给出了SD存储卡特定应用程序命令的状态转换。以上内容由杭州瀚海微科技整理
如果卡没有移动使用的RUs,则Pm应视为无穷大。设为FFh表示无穷大。最小值的定义如下方表格所示。在默认速度模式下,Pm定义为等级2至6。...卡可以设置表4-43中指定的小于或等于最大AU大小的任意AU大小。卡应该设置尽可能小的AU大小。应用:主机应该根据4MB的总繁忙时间和卡支持的类来确定主机缓冲区大小。...主机应该确定在一次操作中要擦除的au的数量,以便主机可以指示擦除操作的进度。l当该字段设置为0时,表示不支持擦除超时时间计算。...ERASE_TIMEOUT的范围可以定义为最多63秒,卡制造商可以根据实现选择ERASE_SIZE和ERASE_TIMEOUT的任何组合。...UHS速度等级这个4位字段表示UHS模式的速度等级。保留值用于将来大于最高定义值的速度等级。主机应将保留值(未定义)视为定义的最高等级。
读访问时间定义为CSD参数TAAC和NSAC给出的两个时间之和。在单读操作的情况下,这些卡参数定义了read命令的结束位和数据块的开始位之间的典型延迟。...在多读操作的情况下,它们还定义了数据块的结束位和下一个数据块的开始位之间的典型延迟High Capacity SD Memory Card和Extended Capacity SD Memory Card...对于高容量SD存储卡,所有写操作的最大繁忙长度定义为250ms。...寻址(点对点)命令(ac)在DAT上没有数据传输地址(点对点)数据传输命令(adtc)数据在DAT上传输所有命令和响应都通过SD存储卡的CMD行发送。...所有命令及其参数可以参考 SD NAND存储功能描述(14)命令以上内容由杭州瀚海微科技整理
响应传输总是从与响应码字对应的位串的最左位开始。代码长度取决于响应类型。响应总是以起始位(总是0)开始,后面是指示传输方向的位(card = 0)。在下表中以“x”表示的值表示变量项。...除了R3类型(见下文)之外的所有响应都受CRC保护。每个命令码字以结束位(总是1)结束。对于SD存储卡有五种类型的响应。SDIO卡支持额外的R4和R5响应类型。...卡的状态用32位编码。请注意,如果涉及到卡的数据传输,那么在传输每个数据块后,数据线上可能出现忙音信号。数据块传输后,主机检查是否忙。R1bR1b与R1相同,在数据线上传输一个可选的忙音信号。...卡可能在接收到这些命令后变得繁忙,这是基于它在接收命令之前的状态。主机应检查响应是否繁忙。有关详细描述和时序图。R2(CID、CSD寄存器)码长为136位。...CID寄存器的内容作为对CMD2和CMD10命令的响应发送。惩教署寄存器的内容作为对CMD9的响应发送。只有比特[127…1]CID和CSD的1]被转移,这些寄存器的保留位[0]被响应的结束位所取代。
SD存储卡的两种状态信息SD存储卡支持以下两种状态字段:—“Card Status”:已执行命令的错误和状态信息,在响应中显示- 'SD Status':扩展状态字段512位,支持SD存储卡的特殊功能和未来的特定应用功能...卡状态响应格式R1包含一个名为card status的32位字段。该字段旨在将卡的状态信息(可以存储在本地状态寄存器中)传输到主机。如果没有另行指定,则状态项总是与先前发出的命令相关。...(1)对CMD3的响应是R6,其中仅包含卡状态中的23、22、19和12:9位(2)此命令在1.10版本中定义SD状态SD状态包含与SD存储卡专有特性相关的状态位,并且可能用于未来特定应用程序的使用。...SD Status的大小为一个512l位的数据块。该寄存器的内容与16位CRC一起通过DAT总线传输到主机。...作为对ACMD13 (CMD55后接CMD13)的响应,SD Status通过DAT总线发送给主机。ACMD13只能发送到“传输状态”的卡(卡被选中)。SD Status结构描述如下。
1)传输的数据不得跨越物理块边界,除非在CSD中设置了WRITE BLK MISALIGN。...1) 32个写保护位(代表从指定地址开始的32个写保护组)后跟16个cRC位,通过数据线以有效载荷格式传输。保护位的最后一位(最低有效位)对应于第一个寻址组。...如果最后一个组的地址在有效范围之外,则将对应的写保护位置为0。2)数据地址在标准容量SD存储卡中以字节为单位。...如果Class 8是允许的(SD存储卡必须),则支持所有应用程序特定的命令(如上方表格class8所示)。以后所有的保留命令的码字长度都应该是48位,以及它们的响应(如果有的话)。...下表描述了SD支持/保留的所有特定于应用程序的命令. 以下所有acmd前都必须加APP_CMD命令(CMD55)。
SharedPreferences作为android的存储方式有以下特点: 1.只能存放key-value模式的键值。 2.本质就是就是以xml文件在应用程序所在包中存放数据。...SharedPreferences 通过操作android的SharedPreferences类来完成xml文件的生成,增,删,改 的动作都由android系统内部模块完成和解析的。...用户不需要去 xml文件的生成和解析 4.由于 SharedPreferences 只能存放key-value 简单的数据结构,通过用来做软件配置参数,用来配置用户对软件的自定义或设置参数。...如果要存在复杂的数据,可以使用文件,如果还需要方便的增删改查 的话,就只能用Sqlite数据库来完成 下面是该使用的代码: 所用的字符串 <?...可以理解为一个存键值对的数组。或者链表。用户只需要创建一实体,然后想里面添加数据和取出数据,即可 结果如下:
1 如何描述数据 "机器都能够从数据中学习和趋优了,我们也要如此,坚持学习和进步。" 面对一个数据集,你会描述它吗? 描述数据集,目的是为了理解数据。...你对数据理解的越充分和全面,你就越能够更好地处理数据和应用数据。 描述你自己的数据集,可以从这些方面入手。...二 数据观察 1 从大量数据中可以先选择一部分数据来观察,以对数据有个直观认识 三 数据摘要分析 1 采用描述性统计分析的方法,变量类型的统计特征进行计算和了解 四 变量重要性分析 1 选择一种算法...,评价数据集中变量的重要性 五 可视化分析 1 采用可视化分析,理解变量的分布和变量之间的关系 我们以描述Iris数据集为例 一 参考代码: # -*- coding: utf-8 -*- """...描述你的数据 @author: Luqing Wang """ import matplotlib.pyplot as plt import seaborn as sns import pandas
1、数组概念 数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致。 软件的基本功能是处理数据,而在处理数据时,必须先进行数据持有,将数据持有之后,再对数据进行处理。...我们将程序中可以临时存储数据的部分叫做容器。 Java当中具有持有数据功能的容器中,数组是最基本的,也是运算速度最快的。...2.1、格式一 2.1.1、数组定义格式 数组存储的数据类型 [] 数组名字 = new 数组存储的数据类型[长度]; 2.1.2、格式说明 **数组存储的数据类型:**创建的数组容器可以存储什么数据类型...数组存储的数据类型: 创建的数组容器可以存储什么数据类型。 **长度:**数组的长度,表示数组容器中可以存储多少个元素。 2.1.3、注意 数组有定长特性,长度一旦指定,不可更改。...2.1.4、案例 需求:定义可以存储3个整数的数组容器 int arr[]= new int[3]; 2.2、格式二 2.2.1、数组定义格式 数据类型[] 数组名 = new 数据类型[]{元素1,元素
数据的存储 一、整形在内存中的的存储: 1.原码,反码,补码: 2.大小端介绍: 二、计算方法(整形截断与整形提升) 1....符号位区分: 2.例题: 总结: ---- 一、整形在内存中的的存储: 一个变量的创建是要在内存中开辟空间的,空间的大小是根据不同的类型而决定的。 那数据在所开辟的内存当中是如何存储的呢?...对于整形来说: 数据存放内存中其实存放的是补码。 为什么呢? 在计算机系统中,数值一律用补码来表示和存储。...我们看看在内存中的存储:(以上述数据a,b为例) 我们可以看到对于a和b分别存储的是补码。但是我们发现顺序有点不对劲。 这又是为什么?...2.大小端介绍: 什么是大端小端: 大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址 中; 小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位
这是我今年一月份在 team 内部的一次分享。介绍了主流的数据存储方案,包括:内存,文件,数据库和消息队列,以及数据序列化/反序列化的方法。很多时候,工具就在那里,我们只是不知道它们的存在而已。...比如说在client端,有很多 embedded database 可以使用,并不需要局限于 sqlite;而当我们存储数据于缓存服务器中,json 未必是最好的序列化方式,有些场合可以考虑 protobuf...在内存中处理数据时,除了一般程序语言自带的 map / list / set 之外,还有很多性能卓绝的数据结构可以考虑,比如 bloomfilter,各种 tree 等。...对于每一个请求,你都要走一遍可能涉及到读数据库或者读缓存的 blacklist 操作,这样不经济。...,直接放过,如果命中了,这有可能是一个要被拒绝的请求,这时候才需要访问数据库(或者缓存)详细查询。
✨✨大家好,我是青衫,这一期的主要内容是关于剖析数据在内存中的存储。...✨✨ ✨✨知识点✨✨ 数据类型 原码、反码、补码 大小端存储 浮点数的存储...正数的原码、反码、补码是相同的,而负数的则不同。 例:-1存储在整形中的原码、反码、补码 对于整形来说:数据存放内存中其实存放的是补码。...整形的存储顺序 大小端存储: 大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中; 小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地址中...例如:一个数据 0x 11 22 33 44 那么,我们如何判断我们的电脑是大端还是小端存储呢?
SD存储卡支持块擦除,但擦除块需要更多的时间,这是AU(部分擦除AU)的一部分。在这种情况下,主机应该在以AU为基础计算的超时结果中添加250毫秒。...每个AU的余量会累积,并且为大量AU计算超时的结果将包含较大的余量。这样的计算是没有意义的,因为差额的范围可能以分钟为单位。因此,应一次擦除少量au。这使主机能够以更少的错误计算更小的超时。...然而,CMD12是定时依赖的,很难控制定时以精确定时发出CMD12。由于UHS104卡时钟和数据之间的延迟变化较大,CMD23可以代替CMD12,用于主机停止多个读写操作。...如果设置了非法块计数,读写时会出现超出范围错误(例如,在用户区边界处停止传输数据)。如果在CMD18和CMD25操作中检测到任何错误,主机需要发出CMD12。...如果一个CMD25被终止,并且传输的数据量小于前一个CMD23所指示的数据量,则CMD23所指定的未写入区域可能包含未定义数据。如果传输的数据量大于前面CMD23所指示的数据量,则不写入额外的数据。
领取专属 10元无门槛券
手把手带您无忧上云