小议单片机高速数据系统的设计

时间:2022-09-11 12:38:03

小议单片机高速数据系统的设计

摘要: 对高频信号的采集与处理系统,通常的做法有两种:一是选用速度快,内存大的计算机,并配备高速的A/D采样板;二是以单片机为核心,配备高速A/D芯片与大容量电子盘,采集结束后再进行数据处理。前者虽然硬软件开发简单,但造成仪器成本的增加,体积大,对运行环境要求严格,而且当距信号源距离较远或测量多路信号时,信号传输比较困难,有些情况甚至无法实现。后者持续采集时间受存储器容量的限制,在许多场合可能无法满足要求,而存储器容量的增加,其价格也会成倍增长。本系统结合了两者的优点,基于单片机的高速数据采集与海量数据存储系统。

关键词: 单片机

在单片机高速数据采集存储系统中,高速数据采集、海量数据存储以及它们之间的数据传输是关键技术。

用于PC系统的硬盘,以其容量大、接口智能化程度高、控制方便越来越受到人们的重视。充分发挥硬盘的优势,利用单片机控制普遍应用的IDE接口硬盘,可极大地提高系统的性能价格比,因此本系统采用硬盘进行海量数据存储。选择高速A/D芯片完成高速数据采集不难,关键是A/D模块与硬盘之间的数据传输。本系统采用高速双口RAM作为两者之间的接口进行数据缓存,很好地解决了这一问题。

一、系统结构及工作原理

高速 采集与存储系统结构如图1

主要包括单片机、高速A/D转换模块、高速双口RAM、IDE硬盘、可编程逻辑控制等。其工作原理:高频信号经噪声抑制、自动增益控制、信号放大等调理,送入高速A/D转换模块变成数字信号,在可编程逻辑控制器(产生写地址及控制信号)的控制下,从左边写如一片高速双口RAM中,同样在可编程逻辑控制器(产生读地址及控制信号)的控制下,从双口RAM的右边读出数据,存人由单片机控制的IDE接口硬盘中。在上述过程中,由于写速度比读速度快得多,不会出现读写地址重叠的情况,因此,向双口RAM读写数据可以同时进行。在整个系统中,单片机起核心作用,既要控制数据的采集,同时要控制IDE硬盘的数据存储。为了协调数据采集与存储之间的速度不一致的矛盾,双口RAM起了非常重要的作用,同时也使系统的电路得到简化。

二、系统硬件设计

下面以最高采样频率达到500KHZ,转换分辨率为14Bit,每帧数据量为141KB,存储数据量最少10G的系统为例,介绍系统硬件设计。系统硬件电路分为数据采集与数据存储两个部分。

1、数据采集电路设计

基于双口RAM的数据采集与传输系统如图2

其中,A/D转换器采用14位A/D转换器LTC1419,其最高转换频率为800KHZ,能满足系统要求。双口RAM采用IDT7024,其左端口作为数据采集输入口,16位数据线直接与A/D转换器的14位输出数据线相连,写地址及控制信号有CPLD器件EPM7064产生;其右端口与IDE硬盘连接。

工作时,单片机首先通过P1.1脚向EPM7064组成的实时采集控制电路发出“开始采样”信号,启动一次实时采集过程。这时A/D转换器便在EPM7064提供的采样脉冲信号的驱动下进行A/D转换,每个采样脉冲信号的下降沿启动转换,转换后的数据通过BUSY的上升沿锁存在A/D转换器的数据输出端。为了将转换后的数据可靠、实时地写入到双口RAM中,根据IDT7024的时序要求,EPM7064送到CER引脚的写信号最少应滞后BUSY信号上升沿4ns,为此将BUSY信号经两次反相(约延时14ns)再送至IDT7024的CER引脚,作为写信号。双口RAM写入端地址由EPM7064内的地址计数器给出,地址计数器的初值为零,采集开始后,对应每个采样脉冲的上升沿,地址计数器加1,从而保证产生的写地址A/D转换的过程同步。上述过程将重复1024次,此时双口RAM已经存储了一数据,EPM7064停止地址的增加,至此完成了一次采集与存储的过程。当写入双口RAM的数据达到一定数目时(例如10个),EPM7064向单片机P1.3 脚发出“取数据信号”,启动IDE硬盘从双口RAM的首地址开始读取数据,当硬盘将双口RAM中数据全部取走后,然后再进行新一轮数据采集。

2、数据存储部分设计

IDE接口的硬盘驱动器提供了两种数据传输模式:PIO模式和DMA模式。由于PIO模式控制相对容易,提供了一种编程控制输入/输出的快速传输方法。该模式采用高速的数据块I/O,以扇区为单位,用中断请求方式进行批量数据交换。在扇区读写操作时,一次按16位长度通过内部的高速PIO数据寄存器传输。通常情况下,数据传输以扇区为单位,每传输一扇区数据产生一个中断。本系统针对20G或以上IDE笔记本小硬盘设计。IDE接口是一种任务寄存器结构的接口,所有输入输出操作均通过对相应寄存器的读写完成。硬盘在读写 16 位数据时,PC 机中使用 INSW 指令或 OUTSW 指令实现 16 位数据读/写操作,由 I/O 端口直接到内存。而在本系统中采用 MCS-51 系列单片机控制硬盘,使数据传输在硬盘端口寄存器与缓冲存储器之间进行,不经过单片机,单片机只是对硬盘进行初始化,并发相应的写命令。这样,在单片机的控制下,数据从双口RAM的左边入,右边出,实现了高速数据无丢失存储。IDE硬盘驱动器中的寄存器及地址分配见表1。表2为状态寄存器,它反映了硬盘驱动器执行命令后的状态

在向硬盘驱动器发出命令前,必须先检测硬盘驱动器是否忙碌(D7=1)。如果在规定时间内硬盘驱动器一直忙碌,则置超时错;否则表示硬盘驱动器空闲,可接受命令。

对硬盘写数据时,首先单片机把必要的参数写入对应的地址寄存器,等待DRDY有效;然后将操作码写入命令寄存器,同时驱器设置状态寄存器的DRQ位,表示准备好接收数据,双口RAM通过数据寄存器将数据写入扇区缓冲区;当扇区缓冲区填满后,驱动器清除DRQ位,并置位BSY,驱动器将扇区缓冲区中数据写入磁盘;当写盘结束,清除BSY位,发中断请求信号DNTRQ;CPU接收到中断信号后,读驱动器状态寄存器,同时将中断信号INTRQ撤除。

实验证明,本采集存储方案可行,系统运行稳定,实现了高速数据正确、无丢失存储,并应用到实际系统中。

上一篇:关于模拟电视向数字电视转换的探讨 下一篇:论XML文档数据库数据之间的转换原理及转换对象