大容量串行flash的快速编程

大容量串行flash的快速编程

ID:10096209

大小:635.50 KB

页数:72页

时间:2018-05-25

大容量串行flash的快速编程_第1页
大容量串行flash的快速编程_第2页
大容量串行flash的快速编程_第3页
大容量串行flash的快速编程_第4页
大容量串行flash的快速编程_第5页
资源描述:

《大容量串行flash的快速编程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、大容量串行Flash的快速编程夏礼智,应立军(中南大学铁道校区湖南长沙410075)来源:中电网,WWW。CHINAECNET。COM串行Flash存储器具有体积小、功耗低、管脚少、掉电不丢失数据等诸多优点,在IC卡和便携式智能检测仪表中广泛的应用。而在这类芯片中ATMEL公司生产的AT45D041存储容量较大(4Mb),因而在某些要求大容量存储数据的场合具有重要的应用价值,主要用于存放一些保密性要求不高、数据量极大的数据,如声音、图像或采集数据等。他们大都是SPI接口,对他们的通讯,通常采用带SPI通讯协议的微处理器。但有些单片机没有SPI接口,如51系列的单片机,通常

2、采用I/O端口模拟SPI接口,此方法对速度要求不高的场合还可以使用,但程序编制比较复杂。本文将介绍一种通过51系列单片机的串行口与AT45D041芯片通讯的方法,此方法不仅编程简单,且运行速度高,是一种值得推荐的编程方法。1AT45D041的工作原理AT45D041是具有4325376位的大容量存储器,他们被分成2048页(对应地址为PAl0一PA0),每页264B(对应地址BA8~BA0)。这些存储器被称之为主存储器,此外AT45D041还有2个264B的缓冲区Bufferl和Buffer2,当主存储器的某页正在被使用时,这2个缓冲区允许接收数据。当片选CS有效时,数据

3、的传输在时钟信号SCK的同步下,通过SI(输入)和SO(输出)进行。其原理框图如图1所示。表1为包含AT45D041芯片IC卡管理定义。AT45D041的最大工作频率可达10MHz,工作电压为5V±10%,工作最大电流读为25mA,写为50mA,数据保持可达100年,工作温度为0~70℃,根据要求可超过指定工作温度,通讯协议为SPI串行接口方式0和方式3。2AT45D041与AT89C55的接口由于AT45D041只有一个管脚进行命令、数据的输入和数据的输出,其命令和数据都是串行输入的,工作时序图如图2所示。从图2可以看出,输入数据时,SCK的上升沿前后一段时间分别为建立

4、时间tsu(>10ns)和保持时间tH(>25ns),输入接口应在SCK上升前tsu时段内将数据准备好,并在其后的tH时段内保持该数据。输出数据时,SO仅在SCK下降沿rv(<80ns)时间后有信号输出,并在下一个时钟下降沿到来时消失(tHo=0),接口电路应在有效输出时间内读取数据。51系列的单片机都具有至少一个全双工串行接口,他支持4种工作方式,这里采用方式0,作为移位寄存器输入输出。其工作时序图如图3所示。串行口以振荡频率的1/12波特率接收和发送数据,RXD为串行数据输入输出端,TXD为同步移位信号输出端。本系统采用AT89C55单片机芯片实现与AT45B041的

5、接口,负责传感器信号的采集、存储与读取及显示,其硬件接口电路图如图4所示。图4中P1.0接IC卡的CS信号,P1.1接R/B信号,P1.2接RST信号,IC卡的SCK接单片机的TxD,SI和SO接在一起与单片机的RxD相连。P0口接AD(模数转换)芯片和LCD(液晶显示屏),P2口接键盘。工作原理是,AD采样数据一方面通过单片机直接存入IC卡,另一方面通过计算显示在液晶屏上。系统的采样速度要求达到1kHz,这对于12MHz主频的AT89C55单片机速度要求很高,这就要求花在存储方面的时间尽量少。因系统不需要与外界通信,单片机的串口闲置,这样,可以考虑利用单片机的串口,来提

6、高存储速度。由于AT45D041只支持SPI通讯的模式0和3,而AT89C55单片机支持移位寄存器输入/输出工作方式。这样可以把AT45D041当作移位寄存器来操作。但51系列单片机的串口都是先输出低位,后输出高位。这与AT45D041的定义正好相反。为此在通过UART输出数据之前必须将其进行转换。当然,通过查表可以解决这一难点。3单片机编程下面以一个检测IC卡状态的C语言程序来说明对这种存储器的编程方法。(关于AT45D041存储器的操作时序及命令,参阅AT45D041的器件说明书。)//定义查表矩阵unsignedcharcodeconcode[256]={0x00,

7、0x80,0x40,0xc0,0x20,0xa0,0x60,0xe0,0x10,0x90,0x50,0xd0,0x30,0xb0,0x70,0xf0,......0x0f,0x8f,0x4f,0xcf,0x2f,0xaf,0x6f,0xef,0xlf,0x9f,0x5f,0xdf,0x3f,Oxbf,0x7f,Oxff};//检查IC的有效性函数bittestcard(void){unsignedchartmp;cs45=0;SCON=0;SBUF=concode[0x57];//读状态寄存器命令为0x57while(!TI)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。