当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]串行Flash存储器的编程解决方案

串行Flash存储器具有体积小、功耗低、管脚少、掉电不丢失数据等诸多优点,在IC卡和便携式智能检测仪表中广泛的应用。本文将介 绍一种通过51系列单片机的串行口与AT45d041芯片通讯的方法,此方法不仅编程简单,且运行速度高,是一种值得推荐的编程方法。
1 AT45D041的工作原理

AT45D041是具有4 325 376位的大容量存储器,他们被分成2 048页(对应地址为PAl0一PA0),每页264B(对应地址BA8~BA0)。这些存储器被称之为主存储器,此外AT45D041还有2个264 B的缓冲区Bufferl和Buffer2,当主存储器的某页正在被使用时,这2个缓冲区允许接收数据。当片选CS有效时,数据的传输在时钟信号SCK的同步下,通过SI(输入)和SO (输出) 进行。其原理框图如图1所示。


表1为包含AT45D041芯片IC卡管理定义。


AT45D041的最大工作频率可达10MHz,工作电压为5 V±10%,工作最大电流读为25 mA,写为50 mA,数据保持可达100年,工作温度为0~70℃,根据要求可超过指定工作温度,通讯协议为SPI串行接口方式0和方式3。

2 AT45D041与AT89C55的接口

由于AT45D041只有一个管脚进行命令、数据的输入和数据的输出,其命令和数据都是串行输入的,工作时序图如图2所示。

从图2可以看出,输入数据时,SCK的上升沿前后一段时间分别为建立时间tsu (>10 ns)和保持时间tH (>25 ns),输入接口应在SCK上升前tsu时段内将数据准备好,并在其后的tH时段内保持该数据。输出数据时,SO仅在SCK下降沿rv (<80 ns)时间后有信号输出,并在下一个时钟下降沿到来时消失(tHo=0),接口电路应在有效输出时间内读取数据。


51系列的单片机都具有至少一个全双工串行接口,他支持4种工作方式,这里采用方式0,作为移位寄存器输入输出。其工作时序图如图3所示。


串行口以振荡频率的1/12波特率接收和发送数据,RXD为串行数据输入输出端,TXD为同步移位信号输出端。

本系统采用AT89C55单片机芯片实现与AT45B041的接口,负责传感器信号的采集、存储与读取及显示,其硬件接口电路图如图4所示。

[!--empirenews.page--]
图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单片机速度要求很高,这就要求花在存储方面的时间尽量少。因系统不需要与外界通信,单片机的串口闲置,这样,可以考虑利用单片机的串口,来提高存储速度。由于AT45D041只支持SPI通讯的模式0和3,而AT89C55单片机支持移位寄存器输入/输出工作方式。这样可以把AT45D041当作移位寄存器来操作。但51系列单片机的串口都是先输出低位,后输出高位。这与AT45D041的定义正好相反。为此在通过UART输出数据之前必须将其进行转换。当然,通过查表可以解决这一难点。

3 单片机编程

下面以一个检测IC卡状态的C语言程序来说明对这种存储器的编程方法。(关于AT45D041存储器的操作时序及命令,参阅AT45D041的器件说明书。)

//定义查表矩阵 unsigned char code concode[256]={ 0x00,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的有效性函数bit testcard(void){ unsigned char tmp; cs45=0; SCON=0; SBUF=concode[0x57]; //读状态寄存器命令为0x57 while(!TI); SCON=0x10; while(!RI); tmp=concode[SBUF]; //tmp内为状态寄存器值 cs45=1 if((tmp&0x38)==0x18) return (0); //是AT45d041卡,返回0 return(1); //不是AT45d041卡,返回1 }

AT45D041芯片的状态寄存器结构如下:


位7为0表示忙;为1表示闲,可以接收下一条指令。 位6为0表示主存储区数据与缓存区比较匹配,否则为不匹配。 位5、位4、位3对于AT45D041为"011”(二进制)。

4 总体性能评价

在此系统中,单片机需采样8路12位信号,并把他们保存在数据IC卡中。只需带回IC卡,通过IC卡读写器把数据读入计算机,便可以进行数据的离线处理、分析。可以看出,仅采用几个廉价芯片,便组成一个性能可观的数据采集系统。

从以上程序可以看出,数据传送的速率基本上与单片机的机器周期相同。而通过以前的I/O端口模拟SPI端口的操作中,数据传送的速率最大不到机器周期的1/3。另外,在串口传送数据的过程中,CPU还可以同时进行其他的指令。总体性能要比采用I/O端口模拟SPI端口的操作快上4倍以上。

在以上的快速数据采集系统中,花在存储方面的时间相对很少,这样,一方面数据采集的速率可以提高;另一方面单片机有充足的时间计算、分析数据,处理LCD显示,键盘中断等。减少存储所花的时间,对整体性能的提高有着显著的意义。

当然,采用以上方式操作SPI口,需要对所操作的芯片的操作时序比较了解,如果操作失误,可能产生线路冲突(单片机和SPI口同时输出)。这样虽然对器件没有多大的损害,因为芯片端口都有保护电路。当然最好是采用带有SPI端口操作的单片机,这里是对某些情况下不得已采用的方法,也有一定的实用价值。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在这篇文章中,小编将对工业机器人的相关内容和情况加以介绍以帮助大家增进对工业机器人的了解程度,和小编一起来阅读以下内容吧。

关键字: 工业机器人 机器人 编程

世界上最大的两家资产管理公司贝莱德(BlackRock)和先锋(Vanguard)等金融机构已在英国一项问询中表示,它们将继续投资化石燃料,并且不认同气候变化计划要求停止新的煤炭、石油和天然气投资的观点。贝莱德是试图采取...

关键字: CK 天然气 AN AC

现在网上有很多播放量巨高的免费编程项目教程,很多学编程的同学可能都看过,就导致大家可能写在简历上的内容都差不多。

关键字: 项目 编程 简历

(全球TMT2022年10月17日讯)日前,德勤中国旗下德勤管理咨询中国数据科学卓越中心所出品的"机器学习推荐算法"论文被第十三届IEEE 知识图谱国际会议(简称"ICKG")收录。ICKG是知识图谱研究领域的国际权威...

关键字: 机器学习 IC CK MULTI

上海2022年10月17日 /美通社/ -- 日前,德勤中国迎来喜讯:旗下德勤管理咨询中国数据科学卓越中心所出品的"机器学习推荐算法"论文被第十三届IEEE 知识图谱国际会议(以下简称"IC...

关键字: 机器学习 IC CK FM

上海2022年10月11日 /美通社/ -- 全球领先金融科技公司Airwallex空中云汇今日宣布完成1亿美元E2轮融资。现有投资方Square Peg、Salesforce Ventures、红杉中国、Lone Pi...

关键字: AIR CK AC API

北京2022年9月29日 /美通社/ -- 近日,猿编程创始人李翊接受了《中国信息技术教育》杂志专访。《中国信息技术教育》杂志由教育部主管、中央电化教育馆等单位主办,刊登专访文章《人工智能教育普惠重在与校园实际结合 --...

关键字: 人工智能 创始人 编程 智能教育

为增进大家对PLC的认识,本文将对PLC编程的技巧予以介绍。

关键字: PLC 指数 编程

据天眼查APP信息,9月27日,江苏和府餐饮管理有限公司(和府捞面运营主体)新增一条商标注册信息,该商标为“HF PICK ME咖啡便利店”。此前,该公司就曾申请注册过多个“和府一杯咖啡”和“和府一杯拉面”商标。(知消)...

关键字: APP PIC CK

默沙东(MSD)和国药集团联合宣布,双方签署合作框架协议,默沙东将其和Ridgeback公司合作研发的抗新冠病毒口服药物莫诺拉韦的经销权和独家进口权授予国药集团,同时双方将评估技术转让的可行性,以便该药物在中国境内生产、...

关键字: SD GE CK AC

嵌入式教程

6897 篇文章

关注

发布文章

编辑精选

技术子站

关闭