AT45DB161D_中文资料_第1页
AT45DB161D_中文资料_第2页
AT45DB161D_中文资料_第3页
AT45DB161D_中文资料_第4页
AT45DB161D_中文资料_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、SPI 接口的 FLASH ROM AT45DB161D 的驱动方法(1)芯片介绍AT45DB161D 是串行接口的闪存芯片,可工作在 2.5V2.7V,可广泛应用于数据语音、图像、程序代码数据存储中。AT45DB161D 支持 RapidS 串行接口,适用于高速场合。RapidS串行接口是与 SPI 相兼容的,速度可达到 66MHz。它包含有 17,301,504 个位,被组织为 4096 个页,每个页 512 或 528 个字节。除了主存储器,AT45DB161D 还包括两个 SRAM 数据缓冲区,每个缓冲区 512/528 个字节。在主存储器正在编程时,缓冲区是允许接收数据的,并且支持数

2、据流式写入。与并行 FLASH 储存器不同,它采用 RapidS 串行接口,从而大大减少了可用引脚数量,同时也提高了系统可靠性,降低了开关噪声,缩小了封装体积。可以应用于商业、工业等需要高密度、低引脚数、低电压与低功耗的应用场合。AT45DB161D 允许简单的在系统重新编程,而无需输入高编程电压。芯片可以采用 2.5V3.6V 或 2.7V3.6V 单电源供电,进行编程与读取操作。它可以通过#CS 来进行使能,并通过三线接口(SI、SO、SCK)进行数据通信。(2)引脚配置与封装1.芯片封装图2.引脚功能详述符号名称与功能有效电平类型#CS片选:#CS 用以选中芯片。当#CS 被LOW输入设

3、置为无效状态时,芯片则不被选中,并且处于闲置状态(不是深度睡眠状态),输出引脚 SO 处于高阻态。当芯片未被选中时,从输入引脚 SI输入的数据将不被接受。#CS 引脚上的下降沿将会启动一个操作,而上跳沿则会结束一个操作。在一个内部操作如芯片内部的编程或擦除周期内,芯片不会进入闲置状态,直到操作完毕。SCK串行时钟:此引脚用来向芯片提供时-输入钟信号,有来控制数据流的出入。SI引脚上的命令、地址与输入数据在时钟 SCK 的上升沿被写入,而 SO 引脚上的输出数据则在时钟的下降沿变化。SI串行输入:SI 引脚用来向芯片以移-输入位方式写入数据。SI 引脚上的所有数据输入包括命令与地址。SI 上的数

4、据在时钟的上升沿写入芯片。SO串行输出:SO 引脚用来从芯片以移-输出位方式输出数据。SI 上的数据在时钟的下降沿变化。#WP写保护:当#WP 被设置为有效时芯片LOW输入的扇区将被保护起来,以防止编程与擦除对数据的破坏。但是扇区保护使能与扇区死锁命令仍然可以被芯片识别。#WP 引脚在内部被拉高,可以悬空。但是仍然建议在外部接到 VCC。#RESET复位:#RESET 引脚上的低电平会终LOW输入止正在处理的操作并复位内部状态机到闲置状态。#RESET 引脚上的低电平会使芯片一直处于复位状态。当#RESET 上转为高电平后,才能进行正常的操作。芯片内部设置上电复位电路。当此引脚不用时,外部接到

5、高电平。RDY/#BUSY就绪/忙碌状态指示:此引脚是漏极-输出开路的输出引脚。当芯片处于忙状态时(内部操作过程中)此引脚为低电平,此引脚在正常状态下为高电平(外部接上拉电阻)。当正在进行编程/擦除操作,比较操作与页-缓冲区传送时,被拉低。忙状态指示 FLASH 储存阵列与某一个缓冲区不能被操作,而对另一个缓冲区的读与写操作仍然可以进行。VCC芯片电源供给-电源GND地:此引脚应与系统地接在一起。-地(3)AT45DB161D 的功能框图:(4)存储器阵列:AT45DB161D 的储存器阵列被分为 3 个级别的粒度,分别为扇区、块与页。下面的“存储器结构图”对各个级别进行了分析,详细说明了每个

6、扇区与块的页数。所有的编程操作都是针对于页的。擦除操作可以作用于芯片、扇区、块或页。扇区结构:(扇区 0A)8 页4096/4224字节 (扇区 0B)248 页 126,976/130,944 字节(扇区 1 )256 页 131,072/135,168 字节(扇区 2 )256 页 131,072/135,168 字节(扇区 14)256 页 131,072/135,168 字节(扇区 15)256 页 131,072/135,168 字节 块结构:块 0扇区 0块 1块 2块 30扇区 1块 31块 32块 33块 62扇区 2块 63块 64块 65块 510块 511页结构:页 0页

7、 1块 0页 6页 7页 8页 9块 1页 14页 15页 16页 17页 18页 4093页 4094页 4095(5)芯片操作:芯片的操作是通过单片机的指令来完成的。指令列表与指令操作码在后面的“指令表”中有详细的说明。一个有效的指令由#CS 的下降沿来指示它的开始,随后是一个有意义的 8 位操作码与缓存区或主存储器的地址。当#CS 为低时,由时钟 SCK 引脚来控制由 SI 引脚写入的操作码与缓存区或主存储器的地址。所有的指令、地址与数据在传输时都是高位在前的。528 字节模式下,缓冲区中数据的地址由 BFA9BFA0 来表示。主存储器中数据的地址由 PA11PA0 与 BA9BA0 来

8、表示,PA11PA0 用来表示 12 位页地址,BA9BA0 表示 10 位的页内字节地址。在 512 字节模式下,缓冲区中数据地址由 BFA8BFA0 来表示(A8A0 表示 08 共 9 位地址数据,512 个字节)。主存储器中数据的地址由 A20A0 来表示(020 共 21 位地址数据),其中 A20A9 是 12 位的页地址(4096 页),A8A0 为 9 位的页内字节地址(512 个字节)。(6)读命令使用相应的操作码,数据可以从主存储器或某一个 SRAM 缓冲区中读出。1. 连续读(命令码:E8H):可以达到 66MHz在提供了主存储器阵列的开始地址后,在时钟信号的作用下连续读

9、命令可以从芯片中以数据流方式进行数据读取,而无需额外的地址信息或控制信号。芯片内部的地址计数器会在每一个时钟周期后自动自增,因而可以在不用写入新的地址的情况下继续读取下一个字节。要进行一次对页(528 字节)的连续读操作,操作码 E8H 必须要写入芯片中,随后是 3 个字节的地址(22 位的页与字节地址序列)与 4 个无关字节。开始的 12 位(PA11PA0)来用表示将要读取的数据在主存储器中的页地址。后 10 位(BA9BA0)用来表示字节在页中的地址。而要进行一次对页(512 字节)的连续读时,操作码 E8H 同样也要先写入到芯片中,随后是三个字节的地址与 4 个无关字节。21 位序列中

10、前 12 位(A20A9)表示要读的数据在主存储器的页地址,后 9 位(A8A0)是页内的字节地址。那些无关字节在读操作初始化时是必需的。在无关字节后,SCK 引脚上的时钟信号使数据从 SO 引脚输出。在操作写入地址字节、无关字节与数据读取的过程中,#CS 引脚上要保持低电平。连续读到达一个页的结尾时,芯片会从下个页的开头继续读取,页间的跨越是没有延时的。当主存储器的最后一个位被读出后,芯片会自动返回到第一页的开头继续读取。与页间跨越相同的,从存储器阵列结尾转到开头也是无延时的。2. 连续读(命令码:0BH 高速模式):可以达到 66MHz此命令可以在最高频率以下的任意时钟频率下通过串行接口对

11、主存储器进行高速读取。要进行一次连续读(页容量为 528 字节),#CS 必须处于有效状态,然后操作码 0BH 必须写入到芯片中,随后是 3 字节地址与一个字节。22 位地址序列中的前 12 位(PA11PA0)表示将要读取的数据在主存储器中的页地址,后 10 位(BA9BA0)表示页内的字节地址。要进行一次连续读(页容量为 512 字节),同样地,操作码 OBH 也要先写入芯片中,随后是 3 字节地址(A20A0)与一个字节。在此字节后数据将在 SCK 引脚上的时钟信号作用下从 SO 引脚输出。同 1 中的内容。3. 连续读(命令码:03H 低速模式):可以达到 33MHz大部分与高速模式下

12、的连续读是相同的。不同的在于 3 字节地址写入后无需再写入一个字节。4. 主存储器页读(操作码:D2H)主存储器页读允许直接从 4096 个页中某一个页中读取数据,而不影响缓冲区中的数据。其它的内容与 1 相同。5. 缓存区读(操作码:缓冲区 1 D4H 或 D1H 缓冲区 2 D6H 或 D3H)主存储阵列中的数据可以放在 SRAM 数据缓存区内,使用缓存区读命令允许直接从缓冲区中读取数据。操作码的选用要根据时钟频率而定。D4H、D6H 与 D1H、D3H可以分别使用在频率低于 66MHz 与 33MHz 的情况下。要进行一次缓冲区读(528 字节),操作码必须先写入芯片,随后是 3 字节地

13、址(14 个无关位与 10 位缓冲区地址)。要进行一次缓冲区读(512 字节),操作同样也要先写入芯片,随后是 3 字节地址(15个无关位与 9 位缓冲区地址)。在地址字节后,一个无关字节必须要写入芯片以初始化读操作。在操作码、地址字节、无关字节写入的过程中,#CS 引脚必须保持低电平。当到达缓冲区的结尾时,芯片会自动返回到缓冲区的开始。#CS 的上跳沿将终止读操作。(7)编程与擦除命令1. 缓冲区写(操作码:缓冲区 1 84H 缓冲区 2 87H)数据可以通过 SI 引脚写入缓冲区 1 或 2 中。要将数据写入缓冲区(528 字节),操作码必须先写入芯片,随后是 3 字节地址(14 位无关位

14、与 10 位缓冲区地址BFA9BFA0)。这 10 位地址表示要写入的数据的第一个字节的缓冲区地址。要将数据写入缓冲区(512 字节),操作码同样也要先写入芯片,随后是 3 字节地址(15个无关位与 9 位缓冲区地址 BFA8BFA0)。这 9 位缓冲区地址表示要写入的每个字节的地址。在最后一个地址位写入后,就可以开始向其写入数据了。如果到达了缓冲区的结尾,则芯片会自动返回到缓冲区的开头。数据会继续写入到缓冲区中,直到#CS 引脚上产生上跳沿为止。2. 缓冲向主存储器页编程(带预擦除 操作码:缓冲区 1 83H 缓冲区 2 86H)被写入到缓冲中的数据可以被编程到主存储器中。先写入操作码,对于

15、页容量为 528 字节的情况,随后是 3 字节地址(2 个无关位,12 位页地址 PA11PA0 与10 个无关位)。而对于容量为 512 字节的情况,操作码写入后,随后是 3 字节地址(3 个无关位,12 位的地址位 A20A9 与 9 个无关位)。当#CS 引脚的上跳沿时,芯片会先擦除主存储器中所选中的页(擦除后都为逻辑 1),然后将缓冲区中的数据编程到页中。擦除与编程操作都是内部进行的,并会在一定时间内完成。在这期间,状态寄存器与 RDY/#BUSY 都会指示芯片处于忙状态。3. 缓冲区向主存储器页编程(无预擦除 操作码:缓冲区 1 88H 缓冲区 2 89H)主存储器中已经被擦除的页可

16、以通过此操作由缓冲区向其编程。与有预擦除的操作不同就在于它是无预擦除的。4. 页擦除(操作码:81H)页擦除操作可以独立对主存储阵列中某一个页进行擦除,随后可以对该页进行缓冲区向主存储器页编程(无预擦除)操作。对于页容量为 528 字节的情况,先要写入操作码,随后是 3 字节地址(2 个无关位,12 位页地址 PA11P10 与 10 个无关位)。对于页容量 512 字节的情况,也要先写入操作码,随后是 3 字节地址(3个无关位,12 位页地址 A20A9 与 9 个无关位)。当#CS 引脚上产生上跳沿时,芯片会擦除所选中的页(擦除后都为逻辑 1)。擦除操作是内部进行的,并会在一定时间内完成。

17、在这期间,状态寄存器与 RDY/#BUSY 都会指示芯片处于忙状态。5. 块擦除(操作码:50H)块擦除操作可以使块内的 8 个页一次全部擦除。这个命令可以用在有大量数据需要写入的时候,可以避免多次调用写擦除命令。在页容量为 528 字节时,操作码先要写入芯片,随后是 3 字节地址(2 个无关位,9 位页地址 PA11PA3 ,13 个无关位)。要进行一次块擦除操作(页容量 512 字节),也要先写入操作码,随后是 3 字节地址(3 个无关位,9 位页地址 A20A12 与 12 个无关位)。当#CS 上产生上跳沿时,芯片将擦除选中的块。擦除操作是内部进行的,并会在一定时间内完成。在这期间,状

18、态寄存器与 RDY/#BUSY 都会指示芯片处于忙状态。块擦除地址如下表所示:PA11/PA10/PA9/PA8/PA7/PA6/PA5/PA4/PA3/PA2/PA1/PA0/BLOCKA20A19A18A17A16A15A14A13A12A11A10A9000000000XXX0000000001XXX1000000010XXX2000000011XXX311111100XXX50811111101XXX50911111110XXX51011111111XXX5116. 扇区擦除(操作码:7CH)扇区擦除命令可以独立对主存储器中的某一个扇区进行擦除。一共有 16 个扇区,每次扇区擦除操作只

19、能对一个扇区进行擦除。页容量为 528 字节时,要对扇区0A 或扇区 0B 进行擦除,需要先写入操作码,随后是 3 字节地址(2 个无关位,9位页地址 PA11PA3 与 13 个无关位)。要擦除扇区 115,也要先写入操作码,随后是 3 字节地址(2 个无关位,4 位页地址 PA11PA8 与 18 个无关位)。页容量为 512 字节时,要对扇区 0A 或扇区 0B 进行擦除,先写入操作码,随后是 3 字节地址(3 个无关位,9 位页地址 A20A12 与 12 个无关位)。要擦除扇区 115,也要先写入操作码,随后是 4 字节地址(3 个无关位,4 位页地址 A20A17 与 17 个无关

20、位)。擦除操作是内部进行的,并会在一定时间内完成。在这期间,状态寄存器与 RDY/#BUSY 都会指示芯片处于忙状态。7. 片擦除(操作码:C7H、94H、80H 与 9AH)主存储器可以使用片擦除命令一次全部擦除。要进行一次片擦除操作,先要写入操作码,无须写入地址,交且操作过程中任何写入的数据都是无效的。操作码写入后,#CS 引脚上的上跳沿可以开始擦除过程。在操作过程中,状态寄存器指示芯片处于忙状态。那些被保护或死锁的扇区不受此命令的影响,其数据不会发生改变。只有那些没有保护或死锁的扇区会被擦除。芯片在进行擦除操作的过程中#WP 引脚可以设为有效,但是在内部擦除周期完成前保护不会生效。8.

21、通过缓冲区对主存储器页编程(操作码:缓冲区 1 82H 缓冲区 2 85H)这个命令是缓冲区写与缓冲区向主存储器页编程(带预擦除)两条命令的综合。数据先从输入引脚 SI 写入缓冲区 1 或 2,再从缓冲区向指定的页编程。在页容量为 528 字节时,要进行一次此操作,先要写入操作码,再将数据写入到缓冲区中,然后向芯片写入 3 字节地址(2 个无关位,12 位页地址 PA11PA0 与 10 位缓冲区地址 BFA9BFA0)。在页容量为 512 字节时,要进行此操作,也要先将操作码写入,再将数据写入到缓冲区中,随后是 3 字节地址(3 个无关位,12 位页地址 A20A9 与 9 位缓冲区地址 B

22、FA8BFA0)。所有的地址字节都被写入后,就可以通过输入引脚向芯片写入数据了。当#CS 引脚上出现上跳沿时,芯片先会擦除主存储器所选中的页,然后将存在缓冲区中的数据编程到页中去。编程操作是在芯片内部进行的,并会在一定时间内完成。在这期间,状态寄存器与 RDY/#BUSY 都会指示芯片处于忙状态。(8)扇区保护AT45DB161D 提供硬件与软件两种方法对扇区进行保护,以使其避免数据的破坏。软件的方法是通过软件命令来实现扇区保护的使能与禁止的。而硬件的方法则是通过使用#WP 引脚来实现的。通过“扇区保护寄存器”对哪一个扇区保护或不保护进行选择。要知道某一个扇区是否有保护,可以查询状态寄存器。1

23、. 扇区保护的软件方法1)扇区保护使能命令(操作码:3DH-2AH-7FH-A9H)指定的扇区通过使扇区保护使能命令可使其在编程与擦除操作中得以保护。要采用方法使能扇区保护,#CS 引脚必须处于有效状态,从输入引脚 SI 写入 4 字节命令序列。写入后,#CS 引脚转为无效状态,此时扇区保护就被使能了。命令字节 1字节2字节3字节4扇区保护使能命令3DH2AH7FHA9H扇区保护使能命令的时序图:2)扇区保护禁止命令(操作码:3DH-2AH-7FH-9AH)用软件方法来禁止扇区保护时,除了写入的操作码序列不同,其它与扇区保护使能命令是相同的。命令字节 1字节2字节3字节4扇区保护禁止命令3DH

24、2AH7FH9AH扇区保护禁止命令的时序图:3)软件控制保护的各个方面软件控制保护在#WP 没有或不能被单片机控制的情况下是很有用的。在这种情况下,#WP 可以悬空(#WP 引脚在内部拉高),扇区保护可以由以上两种命令来控制。(9)保护的硬件控制#WP 引脚设为有效状态后,在扇区保护寄存器中设置为保护的扇区及扇区保护寄存器自身在编程与擦除操作中可以得到保护。扇区保护寄存器与设置为保护的任何一个扇区,都不能被编程或擦除。要改变扇区保护寄存器的值只能将#WP 设为无效。如果#WP 被接到地,扇区保护寄存器的内容不能被改变。如果#WP 被设为无效或接到 VCC,则其内容可以被改变。#WP 会使保护的

25、软件控制方法无效。例如:如果扇区原先并没有被扇区保护使能命令保护,那么简单的把#WP 设为有效状态就可以使能扇区保护。当#WP 引脚设为有效状态而扇区保护使能命令没有执行,扇区保护不会被使能。如果在#WP 引脚设为有效状态前扇区保护使能命令被执行了,那么只简单地将#WP 设为无效并不能禁止扇区保护。在这种情况下,扇区保护禁止命令需要在#WP 引脚无效时执行来使扇区保护禁止。在#WP 引脚为有效时,扇区保护禁止命令会被忽略。1. 扇区保护寄存器非易挥发的(掉电不丢失)扇区保护寄存器指示哪些扇区被保护或未被保护。扇区保护寄存器包括 16 个字节,从第 0 到第 15 字节的不同值确定了扇区 0 到

26、 15 是否被保护。扇区保护寄存器是可以由用户修改的,但在生新程序前必须先擦除。扇区保护寄存器:扇区号0(0A,0B)1 to 15保护见下表FFH未保护00H扇区 0(0A,0B)0A0B07 页8255 页位位数据值位 7,6位 5,43,21,0扇区 0A,0B 未保护0000xxxx0xH0A 保护(第 07 页)1100xxxxCxH0B 保护(第 8255 页)0011xxxx3xH扇区 0A(第 07 页),0B(第 8255 页)1111xxxxFxH注:从 ATMEL 出厂后 015 字节默认值为 00H。1)擦除扇区保护寄存器命令(操作码:3DH-2AH-7FH-CFH)为

27、了修改扇区保护寄存器的值,必须先使用擦除扇区保护寄存器命令将其擦除。要擦除扇区保护寄存器,#CS 必须设置为有效,然后将 4 字节的操作码序列写入芯片。在操作码写入后,需要将#CS 设置为无效,以初始化一个擦除操作。扇区保护寄存器的擦除需要一定的时间,此期间状态寄存器会指示芯片处于忙状态。如果在进行擦除的过程中掉电,则扇区保护寄存器的擦除得不到保证。命令字节1字节2字节3字节4擦除扇区保护寄存器命令3DH2AH7FHCFH擦除扇区保护寄存器命令的时序图:2)扇区保护寄存器编程命令(操作码:3DH-2AH-7FH-FCH)在扇区保护寄存器被擦除后,就可以使用扇区保护寄存器编程命令对其进行重新编程

28、。要对扇区保护寄存器进行编程,必须先将#CS 设为有效,从 SI 引脚写入 4字节操作码序列。写入后,再将要写入扇区保护寄存器的内容写入。扇区保护寄存器中包括有 16 个字节,所以要写入 16 个字节。每个字节对应对寄存器中的每个单元。16 个字节被写入后,#CS 引脚需要设为无效以初始化一个编程周期。编程过程需要一定的时间,在此期间状态寄存器指示芯片处于忙状态。如果在进行编程的过程中掉电,则扇区保护寄存器中的内容的修改得不到保证。如果在#CS 引脚无效以前没有写入适当数量的字节,则没有字节与其相对应的寄存器单元所对应扇区保护状态的改变不能保证。如果扇区保护寄存器中的字节不是 00H 或 FF

29、H,则相应单元所对应的扇区保护状态的改变不能保证。扇区保护寄存器编程命令利用内部 SRAM 数据缓冲区 1 来实现编程操作。缓冲区 1 的数据在命令执行完毕后会恢复回到原来的数据。命令 字节 1 字节 2 字节 3 字节 4扇区保护寄存器编程命令 3DH 2AH 7FH 9AH扇区保护寄存器编程命令的时序图:3)扇区保护寄存器读取命令(操作码:32H)要读取扇区保护寄存器,首先要将#CS 引脚设为有效,从 SI 引脚写入操作码与三个字节。写入后,芯片便可以从 SO 引脚输出数据。第一个字节是扇区 0 的内容,第二个字节是扇区 1 的内容,最后一个字节是扇区 15 的内容。在最后一个字节输出后,

30、再输出的数据就为未定义数据。最后必须要将#CS 设为无效状态以终止扇区保护寄存器读取操作,并使输出转为高阻态。命令字节1字节2字节3字节4扇区保护寄存器读取命令32HXXHXXHXXH扇区保护寄存器的时序图:4)扇区保护寄存器的各个方面扇区保护寄存器约可以擦/写 10000 次。使用者会很关心芯片在其应用系统中的使用寿命。如果应用系统中需要多于 10000 次对扇区保护寄存器的修改,因为它需要临时性地对某一个扇区不加以保护,那么应用系统就要限制自身的使用。要合理地设计应用系统,以使其对扇区保护寄存器的个性不超过 10000 次。(10)安全措施1)扇区死锁命令(3DH-2AH-7FH-30H)

31、这一命令应用于商业上。芯片可以通过扇区死锁命令对某一个扇区进行死锁,从而使扇区变为只读的。这在应用中是很有用的,用来存储代码或安全信息。当一个扇区被死锁后,它就不能再被擦除或编程,也不能解锁。要执行扇区死锁命令,#CS 引脚要设为有效状态,写入 4 字节操作码序列,一定按正确的顺序写入。写入后,再写入 3 字节地址。在地址写入后,再将#CS引脚设为无效状态以初始化一个内部死锁操作。在进行死锁操作的过程中,状态寄存器指示芯片处于忙状态。如果操作过程中掉电,则死锁操作得不到保证。在这种情况下,使用者应读取扇区死锁寄存器以确定相应的扇区是否已经死锁。命令字节1字节2字节3字节4扇区死锁命令3DH2A

32、H7FH30H扇区死锁命令的时序图:1. 扇区死锁寄存器扇区死锁寄存器中包含 16 个字节,如下表所示:扇区号0(0A,0B)1 to 15保护见下表FFH未保护00H扇区 0(0A,0B)0A0B07 页8255 页位位数据值位 7,6位 5,43,21,0扇区 0A,0B 未保护0000000000H0A 保护(第 07 页)11000000C0H0B 保护(第 8255 页)0011000030H扇区 0A(第 07 页),0B(第 8255 页)11110000F0H2. 扇区死锁寄存器读取命令(操作码:35H)扇区死锁寄存器中的数据可以读取以确定扇区是否被死锁。要读取扇区死锁寄存器,#CS 引脚必须设为有效,通过 SI 引脚写入操作码与 3 个字节。写入后,扇区死锁寄存器中的数据将从 SO 引脚输出。每一个字节是扇区 0 (0A,0B)的内容,第二个字节是扇区 1 的内

温馨提示

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

评论

0/150

提交评论