1 存储器的原理
本系统所使用的存储介质SST25VF03-2B,其容量为4M×8 b,共8个管脚,分别为片选使能(CS)、串行时钟(CLK)、串行数据输入(SI)、串行数据输出(SO)、写保护(WP)、允许器件停止工作(HOLD)、电源(VCC)、地(GND)。该芯片有2种数据写入的模式;字节编程模式(Byte-Program)和字编程模式(AAI-Word-Program),在AAI模式下只需在第一次发送ADH命令时发送首地址,在存储下一组数据时只需发送ADH命令,不必发送地址,地址回以2个字节的增量自动增加,当闪存存满数据,即地址增加到最大值后,会自动跳出AAI模式,停止编程。
闪存的读数时序,计算机只需发送片选闪存、发送时钟、03H命令、读数的首地址,数据就会从闪存读到SO口上,然后再读入计算机,存入硬盘,读数的长度由计算机控制,在读完4M×8 b数据后,置位CE,则停止读数,否则继续返回首地址重新读数。
闪存的擦除分为2种模式:一种是块擦除,另一种为片擦除,由于本系统是每次在闪存存满数据后才开始读数、擦除的,所以采用片擦除模式。
2 总体的设计
电路把外界输入的模拟信号经过模拟调理电路转换成适合A/D转换器的输入信号。A/D转换器将输入的模拟信号转换成离散的数字信号。CPLD控制触发模式,A/D和闪存,使A/D转化的数据存入闪存,闪存存满后,CPLD控制电路是电路处于低功耗的状态,然后通过计算机读取闪存的数据和擦除闪存。具体的框图如图1所示。
2.1 硬件设计
图2为本系统的数字触发逻辑图,在A/D的busy的上升沿,即数据转化完成的时候检测数据是否大于设定的触发值,当转化的数据连续4次大于设定值时,触发标志TRD变为高电平。
图3为CPLD控制闪存并存储数据的逻辑图,其中CE、SCK、SI分别用来控制串行闪存的CE、CLK、SI,电路上电后依次往闪存中发送写使能,写状态寄存器,写使能,配置SO管脚,配置闪存为AAI模式命令,然后等待触发,触发后(即TRD为高电平时),AD转化的数据开时存储在闪存中。
图4为地址计数器,用来记录闪存的存储地址,即是闪存中存储数据的大小,在convst的下降沿,计数器加1,当计数器的值等于闪存容量的时候表示闪存已经存储满了,然后把tc0置为1,控制电源管理下电,是电路处于低功耗的状态。
图5为CPLD控制的总体逻辑图,时钟频率为24 MHz,在本系统中为了能够更好地提高采样频率,采用了2片闪存进行循环采集,CE30、CE31分别控制2片闪存,可以看出上电后,2片闪存同时发送命令,配置闪存为AAI模式,然后A/D转化的数值连续4次大于设定值时,以后转化的数据就通过SI存储在闪存中,由于没有把TRD作为输出,所以在逻辑图中没有看到TRD变为高电平。
2.2 读数软件设计
图6、图7为闪存的读数流程和擦除流程。为了在重新上电后能够读数和擦除,在插上读数口后使能CPLD与闪存连接的管脚为高阻状态,这样计算机给闪存发闪存命令的时候就不会受CPLD的影响。
3 结束语
本文介绍了一种基于AD、CPLD、串行闪存来实现的小体积的数据采集系统。与其他数据采集系统相比,该系统体积小,存储器便于控制,易于升级存储器的容量,能够满足一般的信号采集。不足是系统的采样频率不够高,只能达到250 kHz/S,不适于高频信号的采集。