kaiyun官方注册
您所在的位置: 首页> 其他> 业界动态> 基于AT45DB041B存储器的手持数据接收系统设计

基于AT45DB041B存储器的手持数据接收系统设计

2009-10-12
作者:张光宇1,吴敏波1,刘剑豪2

摘 要:针对海表气象参数的存储,设计了基于AT89LV52和AT45DB041B的手持数据接收存储器系统。详细阐述了系统硬件组成和软件设计,给出了单片机与AT45DB041B的SPI接口电路、程序流程图及部分程序代码。该系统具有存储容量大、数据保存非易失性等特点。
关键词:AT45DB041B;存储器;手持接收系统;单片机

由于海表温度、空气湿度、气压等是影响蒸发波导的重要因素,近年来,通过蒸发波导来增大雷达的探测距离从而形成超视距探测,已经逐步成为世界各国海军密切关注的研究方向。由于蒸发波导出现在海洋大气近地层内,受海气交接面处微气象条件影响与制约,因此,对海面气象特征参数的数据采集和存储,以便分析蒸发波导模型,从而利用蒸发波导模型来预报波导高度等特征量以及绘制修正折射指数剖面显得十分重要。鉴于舰船长期在海面工作,针对目前手持接收设备自身存储容量过小,无法满足大量数据采集的实际情况,本文设计了一种基于ATMEL公司生产的大容量Flash存储器AT45DB041B的手持数据接收系统,通过无线数传的方式将前端采集的各种气象数据进行接收存储和显示。该系统结构简单,抗干扰能力强,适合于复杂海洋环境下数据的接收和存储,具有很好的推广应用价值。
1 系统设计
  手持数据接收存储系统结构如图1所示,主要由AT89LV52单片机、AT45DB041B存储器、GPS模块、OLED显示模块以及键盘电路等组成。

  根据系统结构及功能需求,手持数据接收存储系统各模块之间的关系与功能定义如下:
  (1)主控单元采用AT89LV52单片机,工作电压为2.7~6.0 V,与标准MCS-51指令系统及8052产品引脚兼容。因为其运算效率高、功耗低、接口符合设计要求。
  (2)数据存储模块具有4 MB的串口Flash DATA,是本设计的关键点。主要用于接收和保存采集到的气象数据,最后通过CH375芯片转存到U盘。其体积小、容量大、耗电省、接口简单,特别是在移动式智能化仪表中,可保存大量测量数据,有着广泛的应用领域。
(3)键盘模块采用44矩阵式键盘,采用逐行扫描的方法。主要用于命令的下达和状态的设定,通过键盘输入可以切换OLED屏的显示模式,设置无线数传的工作方式,选择所要采集信号的类型等。同时具体在每个按键上设置一键多能的功能,使手持设备可以有选择地接收和存储数据。
(4)显示部分采用128×64行点阵OLED,单色、字符、图形形式模块。主要用来显示数据传输的工作状态、系统时间以及键盘输入的数据等,以方便工作人员进行相应的操作。其厚度薄、重量轻、功耗低、具有良好的抗震性,适合于海上作业。
  (5)GPS模块采用Holoux公司生产的基于Sirf3的高性能模块,主要用来对海上作业船只进行经纬度定位和提供系统时间校正。
  (6)数据采集模块由前端气象采集传感器和无线数传单元组成,通过多点-点方式实现与手持设备之间的通信。
  (7)由于数据接收器为手持设备,且要满足长时间海上作业的要求,所以选用2节5号电池供电,以最大限度地延长操作时间。
2 硬件电路
2.1 AT45DB041B
  AT45DB041B是ATMEL公司生产的AT45DB系列Flash存储器中的一种,共有8个引脚,其引脚功能如表1所示,芯片内部结构原理框图如图2所示。该存储器主要由主存储器(Flash memory array)和2个264 B的缓存(buffer1和buffer2)构成,其中主存储器容量为4 MB,共分为2 048页,每页容量为264 B,每8页构成1个块,共256块,主存储区支持页擦除和块擦除操作;缓存读写方便迅速,但掉电数据会丢失,可以用作主存与外部进行数据交换时的缓冲区域;当通过一个缓存器对主存储区进行编程时,另一个缓存器仍能进行数据接收或者发送,实现虚拟的连续数据的存储。AT45DB041B通过SPI口进行数据的读写,使得硬件结构简单,系统可靠性增强。

2.2 AT45DB041B与单片机接口电路
对于内部有SPI接口的单片机,直接使用其SPI接口与AT45DB041B相连接即可;而内部没有SPI接口的单片机如MCS-51系列,可以利用通常的I/O口,用软件接口模拟实现SPI接口与AT45DB041B相连接。以下简要介绍以89LV52单片机实现的AT45DB041B的接口,其硬件电路如图3所示。这里使用89LV52的P2.3、P2.2、P2.1、P2.0分别作为AT45DB041B的SO、SI、SCK、/CS。一般情况下,可以将AT45DB041B的/WP接高电平。如对保存数据的保护要求非常高,可以另外使用单片机的1根I/O线驱动AAT45DB041B的WP 引脚,这样只有在将/WP拉为低的情况下才能对AT45DB041B进行写入,更进一步提高了对数据的保护。


3 系统软件设计
3.1 系统主程序
  系统软件采用C51语言编写,由主程序模块、无线数传控制模块、数据存取模块、GPS通信模块、显示模块、键盘处理模块等组成。各模块均按结构化程序设计思想进行设计,使得软件易于调试、维护和移植,具有较强的通用性。
  单片机是整个系统的核心,负责协调控制各个模块的工作。在系统启动以后,单片机的主要工作有:系统初始化、GPS定位、通过无线数传模块控制前端气象数据采集传感器传回数据、将数据写入Flash芯片、控制OLED显示等。另外,由于本系统功能较多,为节省硬件开销,在4×4键盘扫描的基础上采用一键多能的键盘管理。
3.2 AT45DB041B读写子程序
  在本手持数据接收存储器装置中,AT45DB041B用于保存监测的历史气象数据和相关的状态参数,该数据包括温度、经纬度以及相关的时间(年、月、日、时、分)等信息,每保存1次数据需占用36 B,数据从主存储器的第0页开始依次往高位地址保存。同时该系统还具有历史数据的回放和转存功能,在测量现场可在OLED上查看所接收的不同时间段的历史数据,也可以通过CH375芯片转存到U盘,这2个过程都需要从AT45DB041B中读取数据。
  下面主要对AT45DB041B的数据读写作简要介绍,AT45DB041的具体数据读写操作如图4所示。


  AT45DB041B的操作方式有21种,其具体的指令和读写操作已有不少介绍,本文只重点介绍在编写程序中感觉比较难理解和容易出错的地方,这也是编写正确接口程序的关键点。
  AT45DB041B的操作指令可以分为三大类:从主存和缓存读数据、往主存和缓存写数据、主存和缓存之间的数据传输和比较。根据笔者在实际中的应用体会,以下几点需要注意:
  (1)单片机在通过SI、SO引脚与AT45DB041B通信期间必须保持/CS为低电平,但涉及到芯片内部的操作(如主存与缓存之间的数据传输和比较、页的擦除和块擦除等),则是在芯片内部自带的时序电路控制下完成的,不需要单片机控制。另外,由于这些操作需要相对较长的时间,在程序中有必要加入延时程序。
  (2)单片机可直接从AT45DB041B主存页的某个单元读数据,但不能直接往某个单元写数据,此时若要向主存写数据有2种方法:①先将数据写入缓存,然后采用自带擦除方式将缓存中的数据写入主存;②直接通过缓存将数据写入主存,该操作实际是将第1种方法的2步合并成1步(即往主存写数据必须借助于缓存来完成)。
  (3)由于目前许多单片机并没有集成SPI总线接口,但并非两者之间就不能通信,可以采用单片机的I/O口结合软件的方法来模拟SPI时序,实现两者之间的通信。本文正是基于上述思路和方法成功地实现了该存储器与89LV52单片机(该单片机内部不带SPI接口)之间的通信。
3.3 SPI总线模拟
本文只对比较难以理解的软件模拟SPI时序进行简要介绍,并给出相关的C51程序代码。其他相关操作模式的函数,限于篇幅,本文不再赘述。
(1)从SPI上读1个字节
uchar Flash_RByte(void)
{
uchar temp=0;
uchar i;
for(i=0;i<8;i++)
{
Flash_CLK=0;
_nop_();
Flash_CLK=1;
temp=temp<<1;
if(Flash_SO==1)
{temp=temp+1;}
}
return(temp);
(2)向SPI上写1个字节
uchar Flash_WByte(uchar temp)
{
uchar i;
for(i=0;i<8;i++)
{
if(temp< { Flash_SI=1;}
else
{ Flash_SI=0;}
   Flash_CLK=0;
_nop_();
Flash_CLK=1;
}
}
在利用软件编程模拟SPI总线的过程中,应重点注意AT45DB041B的时序问题。在此基础上,可以根据使用中的具体需要,建立自己的读写子函数库,以方便实际开发应用。
本文利用单片机普通I/O口模拟SPI接口实现了AT45DB041B和AT89LV52之间的通信,并在所设计的装置中得到了成功地应用,且运行稳定可靠。AT45DB041B串行Flash存储芯片在实际应用中效果好,编程比较简单,与其他一些Flash存储芯片相比,AT45DB041B突出特点是电路简单、价格低、存储容量大、占用系统资源少。构建基于单片机的数据存储系统应用框架,为进一步的数据处理、超视距雷达探测距离的研究提供了可行方案,能够符合部队雷达装备发展的实际需要。
参考文献
[1] 张毅坤,程善久,裘雪红.单片微型计算机原理与应用[M].西安:西安电子科技大学出版社,2001.
[2] 杨金岩,郑应强,张振仁.8051单片机数据传输接口扩展技术与应用实例[M].北京:人民邮电出版社,2005.
[3] 郭铁宝.由海面蒸发波导预报平流海雾的方法[J].海洋预报,2004,21(4):40-45.
[4] Atmel Corporation. AT89LV52 data sheet. 2005.
[5] Atmel Corporaiton. Serial data Flash product databook.2002.
[6] 张培仁.MCS-51单片机原理与应用[M].北京:清华大学出版社,2003.

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306116;邮箱:aet@chinaaet.com。
Baidu
map