您的位置 首页 传感器

根据FPGA的丈量数据存储交流技能

以AT45DB041B为例,将FPGA和大容量串行flash存储芯片的优点有效地结合起来,实现了FPGA对串行存储芯片的高效读写操作,完成了对大量测量数据的存储处理和与上位机的交换,并在某电力局项目工

现场可编程门阵列(FPGA)选用依据芯片的规划办法,具有安稳牢靠、抗干扰能力强、能够重复编程、易于修正等特色,极大地增强了规划的灵活性,提高了规划的完结速度;大容量串行flash存储芯片价格低,管脚少,结构简略,运用SPI对数据进行拜访,方便了硬件规划,增强了体系牢靠性,减少了转化噪声,缩小了封装尺度,也节省了许多的FPGA的I/O口。两者的有用结合能够使得许多数据的存储交流愈加高效安稳牢靠。

1 规划布景

在笔者的多通道工频场强环境监测仪项目中,需要在无人监控的情况下,长时刻守时收集高压架空线和变电站周围的电磁场强度及温湿度数据,并及时进行存储处理,随时供上位机经过UART拜访剖析。这必定涉及到许多丈量数据的存储交流。本规划选用ALTRERA公司的Cyclone系列芯片EP1C3T144C8作为主控芯片,完结对数据的收集和交流,选用ATMEL公司的串行flash—AT45DB041B,用以对丈量数据的存储。本文以实践项目为例,论述运用FPGA和大容量串行flash存储芯片的长处,有用处理许多丈量数据存储交流问题的办法。

2 芯片介绍

2.1 EP1C3T144C8

EP1C3T144C8选用了依据全层铜SRAM工艺,支撑多种I/O规范,2 910个LEs,1个内部PLL,13个M4K RAM块,59 904个RAM位,104个可供运用的I/O。

2.2 AT45DB041B

2.2.1 基本原理

该存储器主要由主存储器和两个264B的缓存构成,主存储器容量约为4Mbit,分为2 048页,每页也为264B。
AT45DB041B具有多种封装办法,图1是SOIC-8封装下的管脚图。其各管脚的界说与功用如下:

1脚:SI,串行数据输入端;
2脚:SCK,串行时钟信号。数据在SCK上升沿输入,下降沿输出;
3脚:复位信号,低电平有用。因为芯片内部有上电复位电路,不必时此管脚可直接接高电平;
4脚:片选信号,低电平有用;
5脚:写保护信号,低电平有用。若此脚为低,则主存储区前256页不能被擦写编程,假如不必此功用,可直接接高电平;
6脚:VCC,电源输入端;
7脚:GND,电源地;
8脚:SO,串行数据输出端。

2.2.2 器材操作

AT45DB041B的操作指令分为读指令、编程和擦写指令以及附加指令,其详细的指令和读写操作办法许多文章和材料已有介绍,限于篇幅,本文只将要用到的指令作扼要的介绍。

(1)读主存储区

不经过缓冲区读主存储区任一页,缓冲区内容不会改动。指令格局后续的SCK信号将使数据顺次从SO端输出。假如读到了指定页的最终字节,将主动跳回到页首开始方位,循环读取。整个过程中,/CS有必要坚持为低电平,/CS从低到高的跳变将间断读操作,并三态SO引脚。

(2)连续读主存储区

不经过缓冲区直接读恣意存储单元的内容,缓冲区内容也不会改动。指令格局后续的SCK时钟信号将使数据顺次从SO端输出。假如读到了整个主存储区的最终字节,将主动跳回主存储区开始方位,循环读取,页与页之间及主存储区首尾之间没有延时。整个过程中,/CS有必要坚持为低电平,/CS从低到高的跳变将间断读操作,并三态SO引脚。

(3)写缓冲区

数据能够经过SI端被写入恣意一个缓冲区。当写到缓冲区完毕后仍有数据写入时,数据将从缓冲区开始字节顺次写入。只需/CS坚持为低,在SCK时钟信号合作下,数据将一向循环写入,/CS从低到高的跳变将间断写操作。

(4)缓冲区写入主存储页(带擦除)

事前写入缓冲区的数据可经过编程写到主存储页中。当指令写完后,/CS由0变为1时,芯片首要擦除待写入页,然后再将指定缓冲区内的数据写入主存储页。页擦除和写入操作由内置时钟操控,最长时刻为tEP。

2.2.3 时序

AT45DB041B的指令、地址、附加位和数据都是经过SI、SO引脚以位的办法输入和输出的,因而要选用FPGA发生读写时序时除正确理解其操作过程外,另一个要害点在于正确理解位的发送和接纳时序,也便是数据怎么按位移入或移出AT45DB041B。作业于SPI的inactive clock polarity high形式的时序如图2所示。

3 实践运用

3.1 硬件接线

硬件电路如图3所示。EP1C3T144C8的I/O和AT45DB041B的SI、SO、SCK、/RST、/CS引脚相连,/WP接高电平,完结对串行flash的读写操作;再由TXD、RXD经过MAX232和9芯串口与上位机完结UART通讯,完结数据的交流作业。

3.2 软件规划

一般的串行flash存储芯片供给了许多操作指令,能够依据不同的规划意图挑选不同的操作指令组合,完结对串行flash存储芯片的不同操作,满意不同的规划要求。

在本规划中,要守时地收集高压架空线和变电站周围的电磁场强度及温湿度数据,每次12个字节,并进行及时的存储处理,随时供上位机经过UART读取。

在Quartus II顶用VHDL编写FPGA与AT45DB041B的接口程序,其程序框图如图4所示。

写操作运用了写缓冲区和缓冲区写入主存储页(带擦除)两个指令。写信号届时将规则写入的数据写入缓冲区后,立行将缓冲区写入主存储页;写完之后,再将当时的方位信息(主存储区页地址和页熟行地址)经过缓冲区写到主存储区的最终一页,供每次程序启动时读取来康复存储器的状况,之后就进入idle状况。

读操作运用了读主存储区和连续读主存储区指令。读存储区是为了康复每次写入的方位信息,以便在程序复位后持续接着写入数据或读取数据;读信号到即发送连续读主存储区指令,每读完一个字节便经过串口发送到上位机,接到串口发送完当时字节信号后,再持续读下一字节。当读完写操作时记载的主存储区当时页或上位机给出发送犯错信号时,完毕读操作。

程序的完结选用了VHDL中的状况机(state machine),它是描绘一系列状况转化的时序电路,它能够很好地完结本规划中各状况的条件的判别和转化。在程序规划过程中要特别注意几个问题:

(1)程序刚启动时的延时:这是为了使芯片作业在inactive clock polarity high形式,保证芯片的正常运转;

(2)读过程中的延时:因为对flash拜访的时钟(AT45DB041B可达20MHz)和用于UART发送的波特率(本规划中为9 600b/s)速度不匹配,而假如不作延时处理,直接给一个周期的UART发送使能,发送模块就可能在本身时钟的边缘捕捉不到发送使能信号,为了保证正常发送,有必要对发送使能信号进行延时;

(3)写过程中的延时:因为擦除主存储区并将缓冲区写入所需的最长时刻为tEP,为了保证每次都将数据成功写入,有必要延时一段时刻tEP再转入其他状况。

VHDL完结的依据RS232规范的UART简略安稳牢靠,有许多文献材料可供参考,这儿不再赘述。

本文选用FPGA结合VHDL编程来模仿SPI接口时序的办法完结了对大容量串行存储器的拜访,在UART的合作下完结了对许多丈量数据的存储交流作业,并在笔者规划的外表中成功地运用,运转安稳牢靠高效。这儿尽管是以ATMEL公司的AT45DB041B为例,但运用相同的办法,对一系列其他类型的串行存储芯片如Megawin公司的flash存储器MM36SBO10等,也能够进行相似的操作,对今后处理此类问题具有必定的参考价值。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/chuanganqi/196273.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部