双路信号采集存储分析系统.docx
- 文档编号:23305644
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:76
- 大小:122.77KB
双路信号采集存储分析系统.docx
《双路信号采集存储分析系统.docx》由会员分享,可在线阅读,更多相关《双路信号采集存储分析系统.docx(76页珍藏版)》请在冰豆网上搜索。
双路信号采集存储分析系统
双路信号采集存储分析系统
关键词:
自动衰减前级可变参考电压液晶显示并行处理文件存储
摘要:
阐述了一种基于16位单片机与8位单片机技术的高性能双路信号采集存储分析系统的设计思路和结构特点。
多路数据采集分析系统主要涉及数据采集、波形分析、数据压缩存储、人机界面、液晶显示及缓存技术。
其中数据的采集和压缩存储最为重要。
设计的目的是以最简单的硬件发挥它最大的效能,使采集和存储速率达到最大。
但是在一定范围内采集速率和存储速率是有一定矛盾的,由于此两种操作均消耗整体系统资源,所以在并行处理的时候势必会造成此消彼长的问题。
此时就需要一种超线程并行处理模式,同时处理数据采集存储显示人机交换等操作。
以下为几种方案:
一、采用OS2R2TX-TINV等可用于单片机的嵌入式操作系统利用任务切换形式完成多程序并行操作与响应。
这种方案的优点是编程相对简单、任务明确、易于扩展。
它的缺点是当利用于51单片机等低端8位单片机时,占用系统资源过大。
往往需要外扩SRAM和ROM等手段扩充硬件资源,增加系统硬件的复杂程度。
在任务为较简单的操作时往往得不偿失,实时性也很难保证。
若采用高端的单片机势必会增加成本,所以未选择此种方案。
二、协调和利用单片机内部多个时钟中断源。
时分制的并行处理多个任务与响应,这种方案的优点是在任务较简单时,占用系统资源极少,系统利用率高且无须外扩硬件,可靠性好,容易把握实时性。
它的缺点是当任务较大时会造成时钟中断过长,多中断互相嵌套冗杂等情况,造成程序混乱,尤其是在各任务所需处理中断时间不一的时候,最容易发生。
同时由于单个单片机数据处理能力有限,不可能处理过于复杂的任务,所以我们未采用此种方案。
三、用多个单片机各司其职协调合作,分别完成不同的任务。
虽然一定程度上增加了硬件的复杂程度,但有利于模块化设计,并且与采用高端单片机相比更可行,低廉。
所以我们选用此种方案。
在多单片机合作协调时,最大的难点是数据和命令在各单片机间传输的总线的结构设计问题。
有以下几种方案:
1、采用单总线分支机构,以相同的数据命令传输协议,用呼号形式统一传输数据和命令。
其优点是:
可在任意分支单片机间双向数据连接,且硬件相对简单,可广播式发送数据与命令,且不用区分主从机。
其缺点是:
传输数据时只能有一个单片机发送信号,其他单片机只能接收,容易形成各单片机间抢占总线等问题。
需要相应的总线仲裁机构来完成总线资源分配,硬件将相对复杂。
我们的系统需要大数据流单向传输和小命令流双向传输,所以不能用此结构。
2、树状主从式总线机构,这种总线的最大优点是有利于数据从主机到从机之间的传输,易于寻址。
适合于多路信号采集的汇总和主机对从机的操作。
其缺点是:
数据传输路径固定,在中继单片机运行时占用不必要的系统资源,不利于各分机之间的数据交流。
3、多总线、控制线传输机构,由于本作品设计的独特性,结合51单片机硬件特点,采用两条总线。
一条是命令总线,一条是数据总线。
由于在本系统内部数据的流向是单向的,且数据量很大,连接在凌阳数据采集板、数据存储器和液晶波形显示缓冲板之间。
为10位并口数据总线且共用一条时钟线,没有传输协议,以增大传输速率。
最终定下方案:
整体方框图如下:
辅助CPU连接着前级衰减控制器,参考、偏置电压生成器,5*8键盘等模块。
由于数据传输较为简单,分别采用若干控制线对其控制。
辅助CPU、主CPU和存储器、显示缓冲区之间通信采用串口数据总线,以不同的命令头、命令尾来识别起始和目标单片机来完成互相间控制通讯。
以下将详细介绍各个组成部分:
一输入部分
前向通道的作用是对被测信号进行调理、量化。
并将量化结果存入存储器,以被显示之用。
它是整个设计的核心。
1.信号条理电路的设计
A/D对输入的模拟信号的幅值有一定的要求范围。
为0~3.3V,而对于待测信号来说其幅值各不相同,有时大大超出了A/D所如许的最大输入范围,造成饱和失真,甚至烧毁硬件。
有时信号较小,使A/D转换结果产生很大相对误差,甚至不响应。
这些因素都使得无法对信号进行准确的测量。
信号条理电路的作用就是将不同幅度的输入信号都归整到适合A/D采集的输入信号范围,具体来说,就是对大的输入信号进行衰减,对小信号则要放大。
方案一:
采用可编程增益放大器。
如PGA103,对输入信号进行调理。
通过对可编程器件的控制,使其放大倍数可以为*1、*10两种不同值,来满足对大小不同信号的放大要求。
但这种方法无法满足精确幅度的控制,将信号放大的同时,也将干扰信号放大,而且可编程增益放大器的价格较高。
方案二:
我们摒弃了传统的理念。
在信号较小时,通过实时的精确的改变A/D的参考电压,改变采样范围,以保证测量精度。
通常生成参考电压的方法是由一个D/A输出电压。
对D/A的控制较为占单片机口线资源,并且通常D/A输出为电流,所以后级还要加放大器做电流—电压转换,这样使系统较为复杂,不利于系统调试,其最为欠缺的是数据的易失性,断电后此数据无法保存。
经过仔细分析,我们采用一片数字电位器来完成此功能。
我们采用256抽头的DCP(数字电位器),此数字电位器与系统采用SPI串行通讯方式,其控制总线少,体积结构小,对其控制较为灵活、方便,其最大的优点是数据的非易失性,当系统突然掉电时,数字电位器内部的存储单元会将当前值进行存储,待系统上电时,其存储数据即可恢复,实现数据的保存。
对于待测信号来说其幅值各不相同,我们在信号输入端加了前级衰减,从而将大信号进行相应的衰减,以满足不同幅度的输入信号都归整到适合A/D的输入信号范围。
具体方法实现同样是采用数字电位器做精密衰减控制。
其控制方法简洁,方便,并且精度较高。
经综合考虑,在本设计中采用方案二实现信号的前端调理。
2.采样方式的选择
再现代数字采集、存储系统中,通常有两种采样方式:
实时采样和等效采样。
、
方案一:
实时采样
实时采样是在信号存在期间对其采样。
根据奈奎斯特采样定理,采样频率必须高于被测信号中最高频率分量的2倍,对于周期正弦信号,一个周期应该有两个采样点,考虑到实际因素的影响,为了不失真的恢复原被信号,通常对被测信号的一个周期至少应该有5个采样点,原被测信号不失真的恢复也受到A/D的采样深度的限制。
实时采样方法简单,易于实现,当被测信号频率不是很高时,实时采样方法较为理想。
如图1—1所示
0
图1—1实时采样
方案二:
等效采样
由于采样器工作的速率的限制,实际上在被测信号的频率较高时很难实现实时采样。
并且采样速率愈高,要求A/D的转换速率愈高,其价格愈高。
所以在价格上很难接受。
但对于周期信号可以采用等效采样方法。
其中又分为顺序和随机等效采样方法。
所谓顺序采样是对每一个信号周期仅采样一点,经过若干个信号周期后,就可以将被测信号的各个部分采样一遍,这种采样方法可以使采样点借助于“步进延迟”方法均匀的分布于被测信号波行的不同位置。
所谓步进延时,是每一次采样比上一次采样点的位置延时Δt时间。
如图1—2。
Δt
0
t
等效采样虽然对很高频率的信号进行采样,但“步进延迟”的方法很难在短时间内实现,本设计要求信号频率最大为10KHz,按对信号的每个周期的采样点为5个算故要求的最高采样速率不是很高。
所以,在本设计中我们采用实时采样方法。
3。
电平移位电路
由于被测信号是双极性的,即被转换的模拟信号为正或负极性,而A/D的输入信号通常为单极性信号。
为了对双极性信号的测量,以及适应A/D的要求,在进行A/D转换之前必须将双极性信号转换为单极性信号,所以我们设计了电平移位电路,在本设计中可将被测信号移位为单极性信号。
电平转换电路,如图1—3。
至D/A
0~3.3v
参考电压
图1—3电平移位电路
用电阻分压生成一个电压为参考电压二分之一的偏置信号,然后通过OP-07组成的射随器隔离放大,然后跟输入信号混合,完成电平移位。
4.双路信号输入
为了对双路信号(A.B)同时进行显示,必须同时对A.B双路信号进行采集、存储、显示。
通常,对双路信号进行调理、采集、存储有两种方法,即断续采样方法和交替采样方法。
断续采样方法是在各采样点对A.B信号进行采样,即每次采样都需要切换一次被测信号;而交替采样方法是当对某一被测信号采样满一屏数据后,切换对另一路被测信号进行采样。
本设计中被测信号的频率不是很高,甚至为直流信号,故本设计采用断续采样方法。
从电路上来说,有以下几种方案实现双路采集、显示。
方案一:
用模拟开关实现断续采样方法,将A.B双路信号接入模拟开关,由控制器切换输入信号,分时将被测信号值A/D。
如图1—4。
图1—4模拟开关
方案二:
将双路被测信号A.B各自接入相应的A/D,同时开始模数转换,将转换得数据分别存入各自的RAM中,如图1—5,此方法软件简单,硬件较为复杂,而且需要两片A/D,成本相对较高。
A/DA
A通道
B
A
A/DB
B通道
RAMA
RAMB
图1—5双A/D
方案三:
借助两对MOS管实现端绪测量方法,用两个根控制线控制MOS管的关断和导通,用选通的方法将被测信号接至A/D,进行采集。
如图1—6,MOS管的导通电阻极小,不会对被测信号有影响。
B
A/D
MOS1
A
MOS2
控制端
图1—6MOS管
考虑到模拟开关的导通电阻较大,有损耗,并且存在着门延迟;而若采用双D/A在成本上又大大提高。
所以,综合考虑各种因素,我们采用两对MOS管的方案来实现双路采集,其导通损耗较小,导通延时短,易于实现。
5滤波电路的设计
被测信号的频谱分量较多,其中必然夹杂着许多高次谐波的干扰,这样对测量精度有严重的影响.所以,我们在被测信号的输入端加了一级低通滤波器,它可以是有用的频率信号通过,而抑制(或大为衰减)无用的频率信号,这样许多高频干扰信号被滤除,提高了测量的精度。
实现低通滤波器有下面几种方案。
方案一:
采用切比雪夫滤波器
切比雪夫滤波器的显著特点是,其逼近误差峰值在一定规定的范围的频段尚为最小,而且是等纹波的即误差值在极大和极小值之间摆动。
方案二:
二阶BUTTERWORTH(巴特沃兹)低通滤波器
二阶巴特沃兹滤波器,如MAXIM公司的MAX291,其优点是通带内特性曲线平坦,但是其从导通到截至频率的坡度较为缓慢,且价格较高。
方案三:
RC积分滤波器
RC积分滤波器使用方便,体积小,却完全满足本设计要求。
其频率特性为:
F(jΩ)=1/(1+jΩτ),其中τ=RC为时间常数。
如图1—7。
C
图1—7RC滤波
二数据采集部分
数据采集是以一块凌阳SPCE061A为核心。
它是μ’nSP系列产品SPCE500A之后凌阳科技推出的又一个16位结构的微控制器。
与SPCE500A不同的是,在存储器资源方面考虑到用户的较少资源的需求以及便于程序调试等功能,SPCE061A内仅内嵌32K字的闪存(FLASH)。
较高的处理速度使μ’nSP能够非常容易地、快速地处理复杂的数字信号。
因此,与SPCE500A相比,以μ’nSP为核心的SPCE061A微控制器是适用于数字语音识别应用领域产品的一种经济的选择。
主要性能为:
16位μ’nSP微处理器;
工作电压:
VDD为2.6~3.6V(CPU),VDDH为VDD~5.5V(I/O);
CPU时钟:
0.32MHz~49.152MHz;
内置2KWords的SRAM;
内置32KWords的FLASH;
可编程音频处理;
系统处于备用状态下(时钟处于停止状态),耗电小于2μA@3.6V;
2个16位可编程定时器/计数器(可自动预置初始计数值);
2个10位DAC(数-模转换)输出通道;
32位通用可编程输入/输出端口;
14个中断源可来自定时器A/B,时基,2个外部时钟源输入,键唤醒;
具备触键唤醒的功能;
使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据;
锁相环PLL振荡器提供系统时钟信号;
32768Hz实时时钟;
7通道10位电压模-数转换器(ADC)和一个单通道的声音专用模-数转换器;
声音模-数转换器输入通道内置麦克风放大器和自动增益控制(AGC)电路;
具备串行设备接口;
具有低电压复位(LVR)功能和低电压监测(LVD)功能;
内置在线仿真电路ICE(In-CircuitEmulator)接口;
具有保密能力;
具有WatchDog功能。
在此系统中,利用它来完成数据的采集,初步分析和高频滤波。
由于它的CPU与八路A/D模块成为一体,所以在数据采集过程当中必将耗费CPU的资源,CPU系统占用率也直接影响着A/D模块的采样速率,为提高采样速率的高速性和完整性,CPU不能有过多得任务且不能使用外部中断等随机资源,所以它仅用于将外部信号采集后初步分析,从IOB中输出有十位精度的数据流。
通道切换靠前级来完成。
ADC采用自动方式工作,硬件ADC的最高速率限定为(Fosc/32/12)Hz,如果速率超过此值,当从P_ADC(读)(S7014H)单元读取数据时会发声错误。
ADC在各种系统时钟下的频率响应为:
FOSC(MHz)
20.48
24.576
32.768
40.96
49.152
ADC响应率(KHz)
640
768
1024
1280
1536
最大采样率(Samplerate_max)为Samplerate_max=ADC响应率/16=1536KHz/16=96KHz。
此数据流通过数据总线在无传输协议、无其他数据干扰、单向引入存储器和图像缓冲器。
三数据存储部分
存储部分的功能是完成程序与数据的存储(单片机的程序存储器与数据存储器是截然分开的)。
由于各个模块的单片机都集成有8K以上的程序存储器,而各单片机所集成的内部数据存储器只有256字节,这样的容量对于采集后的数据的存储是显然不够的。
所以在内部程序存储器够用的情况下,只需要扩展外部数据存储器。
有以下几种方案:
方案一:
用FLASH存储器扩展外部数据存储器
FLASH存储器是一种电擦除与再编程的快速存储器,又称为闪速存储器。
存储容量能达到兆位以上,在商业和工业上具有广阔的前景,但目前市面上的FLASH由于没有统一协议,各个厂家所生产的FLASH相互间差异很大。
编程的指令系统各不相同,互不兼容,使用起来非常不便。
FLASH存储器的内部分为许多相等的段,每段对应于一个页面,每一页的存储地址与存储容量是固定的,所以FLASH是以分区为单位进行再编程的,读写时必须保证连续地把某一分区读写完,如果某一分区中的一个数据需要改变,那么这一分区中的所有数据必须重新装入。
一旦某一分区中的字节被装入,这些字节将同时在内部编程时间内进行编程,在此时间内若有数据装入,则会产生不确定的数据。
方案二:
用随机存储器扩展外部数据存储器
在单片机里数据的存储用的较多的是随机存储器(RandomAccessMemory)简称为RAM,按其工作方式,RAM又分为静态(SRAM)和动态(DRAM)两种。
SRAM只要电源加上,所存储的信息就能可靠保存。
而DRAM使用的是动态存储单元,需要不断进行刷新以便周期性地再生,才能保存信息。
DRAM的集成密度大,集成同样的位容量,DRAM所占芯片面积只是SRAM的四分之一。
此外DRAM的功耗低,价格便宜。
但动态存储器要增加刷新电路,因此对于采集后的数据存储很不方便。
鉴于本系统的存储部分主要用于对信号采集后的数据的存储,考虑到所要求的存储速度和容量问题可采用AT89C52外扩两片62256SRAM(共64K字节)来完成数据存储的功能。
硬件连接如图所示:
P0口分别与两片62256相连作为数据总线,同时P0口通过锁存器373与两片62256的低8位地址A0~A7相连,两片62256的高7位地址A8~A14与P2口的低7位相连。
P2口的最高位作为两片62256的片选信号线,当它为高电平时选的是1#62256,而当它是低时选的时2#62256。
如图2—1所示。
图3—1存储器结构
AT89C52内部有8K的ROM,作为存储模块的CPU可以在其上运行文件系统。
该文件系统实行对采集后的数据进行按文件名存储。
在存储器容量限度内,能达到随时存储随时读取的功能。
同时如果采集的数据超过存储器容量,可以基于此文件系统和存储模块下进行再次的扩展。
对于扩展此存储模块有很好的兼容性。
本文在扩展部分重点讨论了基于单片机的海量存储-----单片机对硬盘的读写。
存储模块受主CPU控制,实时响应从主CPU发过来的命令。
主CPU通过命令与存储模块的CPU进行通信,并通过数据总线接收数据。
存储模块的CPU接收主CPU发过来的指令,把信号采集CPU所采集的数据分配存储空间,按文件名存储。
方案三:
用硬盘海量存储扩展外部数据存储器
在PC上,硬盘通过IDE40芯的扁平非屏蔽电缆与主板连接,数据和命令在其上异步传输。
与硬盘通信是通过IO寄存器来完成的,硬盘的寄存器分为命令寄存器组和控制寄存器组。
访问硬盘上的寄存器是由CS0FX,CS3FX,A2,A1,A0来译码完成的。
IDE硬盘驱动器中的寄存器及地址分配
地址
寄存器名及功能
具体地址
CS1FXCS3FXDA2DA1DA0
读操作
写操作
01000
数据寄存器
0x8000
01001
错误寄存器特性寄存器
0x8001
01010
扇区数寄存器
0x8002
01011
扇区号寄存器
0x8003
01100
柱面号寄存器:
低字节
0x8004
01101
柱面号寄存器:
高字节
0x8005
01110
驱动器/磁头寄存器
0x8006
01111
状态寄存器命令寄存器
0x8007
IDE接口的硬盘驱动器提供了两种数据传输模式:
PIO模式和DMA模式。
PIO模式:
由于PIO模式控制相对容易,提供了一种编程控制输入/输出的快速传输方法。
该模式采用高速的数据块I/O,以扇区为单位,用中断请求方式与CPU进行批量数据交换。
在扇区读写操作时,一次按16位长度通过内部的高速PIO数据寄存器传输。
通常情况下,数据传输以扇区为单位,每传输一扇区数据产生一个中断。
错误信息寄存器为只读,寄存器位如置1代表不同的错误信息。
属性寄存器为只写,对该寄存器的操作可使硬盘工作在不同的模式。
由于单片机为8位的数据总线,而硬盘默认为16位IO,需要对属性寄存器写0x01,使其工作在8位总线模式。
扇区数目寄存器的值表示需对硬盘读写的扇区数目,对硬盘的操作都是以扇区位单位,每个扇区包含512个字节,即每次对硬盘的数据读写都是512个字节的倍数。
本文中对硬盘的操作是以LBA模式进行,即硬盘上的存储扇区映射成连续的逻辑块地址。
要使能LBA模式,需要对模式寄存器的第6位置1。
6)LBA地址8-15位寄存器,在CS3FX,A2为高电平,CS0FX,A1,A0为低电平时选通,其地址为0x8004。
LBA地址共28位表示。
7)LBA地址16-23位寄存器,在CS3FX,A2,A0为高电平,CS0FX,A1为低电平时选通,其地址为0x8005。
8)模式寄存器,在CS3FX,A2,A1为高电平,CS0FX,A0为低电平时选通,参照原理图1,其地址为0x8006。
其低4位为LBA地址的24-27位,第4位为主从硬盘选择位,若连接J1,则硬盘设为主设备,相应的第4位应为0;若断开J1,则硬盘为从设备,相应的第4位应置1。
9)状态寄存器,在CS3FX,A2,A1,A0为高电平,CS0FX为低电平时选通,其地址为0x8007。
该寄存器为只读。
其中第7位若为1,表示硬盘处于忙状态,第3位若为1,表示数据准备好,等待传输。
详细的检验程序请参照所附的程序。
10)命令寄存器,在CS3FX,A2,A1,A0为高电平,CS0FX为低电平时选通,其地址为0x8007。
该寄存器为只写。
注意硬盘的命令有带参数和不带参数两种,在具有参数的命令操作时,需要首先写入所有的参数到各个寄存器,最后写命令寄存器。
硬件连接
单片机的P0口与硬盘的低8位连接,A0A1A2经74LS373锁存后,连接到硬盘的A0A1A2脚,因其工作在8位模式,硬盘的高8位数据线悬空。
J1用来选择主从硬盘,在连接J1时,该硬盘位主硬盘,否则为从硬盘。
8031应检测P1.0上的电平,相应地设置模式寄存器的第4位。
P1.1用于硬复位硬盘,在低电平时有效。
因8031不支持DMA模式,硬盘工作于PIO模式,所以DMA请求与应答信号悬空。
所附软件工作于查询模式,中断请求信号悬空。
在硬盘读写操作时,DASP脚为低电平,相应的LED指示灯亮。
DMA模式:
硬盘和FLASH一样也是分区连续存取方式读写数据,有512字节的缓冲区,外部通过缓冲区读写硬盘的数据。
由于单片机的内部数据存储器为256字节,显然不能通过单片机直接对硬盘的缓冲区对写操作。
单片机通常不具有DMA功能,也没有现成的控制芯片可以利用,而且由于总线和系统组成方面的差异无法将PC中的DMA电路移植到单片机系统中。
但可以用两片单片机搭一个DMA模块解决这个问题。
DMA硬件连接如图2—2。
74HC623
图3—2DMA模式
模块由两片AT89C51,两片2K的SRAM6116,两片地址锁存373,以及8片总线切换器74HC623组成。
74HC623为三态门总线切换器,通过其方向控制线GAB和/GBA
来控制总线的走向。
两片SRAM6116接地选通,在写状态时1#AT89C51接收其他CPU发过来的数据流写到1#6116,当写完256字节时,1#AT89C51转向2#6116向其写数据,同时,2#AT89C51从1#6116读数据,并写到硬盘缓冲区。
当1#AT89C51对2#6116写完256字节时,又回到1#6116对其进行写数据,而2#AT89C51此时也已经把1#6116中的数据读出并写到了硬盘中,接着2#AT89C51转到2#6116读其数据并写到硬盘缓冲区。
当读完2#6116中的数据就完成一个写周期,即把512字节的缓冲区写满,而且这个过程必须时一个连续的过程,因为硬盘时分区存取的。
而对于读的过程也就是相反的过程。
四显示部分
波形的显示系统主要由一块240*128分辨率的液晶屏,液晶屏驱动器,图像缓冲器组成,采用液晶屏的优点是,图像清晰、直观、易于保存、携带方便,不详示波管那样需要高压驱动,大大减小体积、能耗、重量。
它的缺点是刷新速度慢,高速、大幅度跳变显示时波形图像有断续现象。
为此据需要一块单片机对高速数据流缓存,并且使离散图像点分析成连续的波形图像。
由于单片机内存较少,无法缓存整屏图像,所以使用了特殊的算法(详见附录源代码)。
在不外扩系统资源的情况下,以51单片机完成图像缓存处理。
液晶显示驱动器采用T6963芯片,T6963C的液晶显示模块实现了T6963C与行列驱动器及显示缓冲区RAM的接口,同时也已用硬件设置了液晶屏的结构(单双屏)数据传输方式显示窗口长度宽度等等。
整体方块如图:
图4—1显示框图
T6963C的特点
(1)T6963C是点阵式液晶图形显示控制器它能直接与80
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信号 采集 存储 分析 系统