基于DSP的多路数据采集系统设计
2008-07-22
作者:马 俊, 陈学煌
摘 要:设计了一种以DSP(数字信号处理器" title="数字信号处理器">数字信号处理器)为核心处理模块的数据采集" title="数据采集">数据采集系统,用于采集和处理两路传感器获得的信号。系统采用高速A/D" title="A/D">A/D转换器和DSP芯片,并结合相关算法软件,实现了实时的信号处理功能,结果可以经D/A" title="D/A">D/A转换后输出或以其他方式输出。实测表明,该系统工作稳定,只需根据采集信号种类的不同及输出要求的不同设计相关的算法软件,即可在工业生产过程或仪器仪表中使用该系统。
关键词: DSP(数字信号处理器) 数据采集 A/D D/A
数据采集是获取信息的重要手段,在科学研究、生产过程等领域中发挥着越来越重要的作用。应用数据采集,将提高人们对各种瞬态现象进行研究的能力,在生产过程中应用数据采集,能迅速地对各种过程参数进行采集,为计算机控制提供必需的信息,从而实现生产过程的自动控制。本文介绍一种以DSP(数字信号处理器)为核心处理模块的多路数据采集系统" title="数据采集系统">数据采集系统,它可以用于多种需要实时信号处理的场合。
1 数据采集基本原理
数据采集就是将模拟信号转换成数字信号,送入计算机进行相应的计算和处理,可以方便地显示数据或结果,以便实现对某些物理量的监视,或将数据用于生产过程中的控制。在进行数据采集时,对一个连续的模拟信号x(t),通过一个周期性开闭(周期为TS,开关闭合时间为τ)的采样开关K 之后,在开关输出端输出一串在时间上离散的脉冲信号xs(nTs)的过程称采样过程,如图1所示。
这一串在时间上离散的脉冲信号xs(nTs)只有满足下列条件:
① 频谱X(f)为有限频谱,即当| f |≥fc,X(f)=0
②
则连续信号唯一确定,xs(nTs)才能无失真地恢复为原来信号x(t)。
2 数据采集系统硬件总体设计方案
该多路数据采集系统是为一种速度测量仪表所设计[1~3],由两路8位高速A/D转换器、DSP芯片以及D/A转换器等部分组成。传感器的两路信号(根据采集对象的不同可设计不同的传感器)分别送入两个高速A/D转换器进行模数转换,将转换的结果送入DSP中。依据系统所实现功能设计的相关算法,考虑到数据采集和处理的实时性,采用TI公司具有高速数据运算和处理能力的DSP(TMS320C5402)进行数据运算和处理,最终将结果以数字方式输出或经D/A转换后输出,也显示输出。图2为该系统的结构框图,该构架也可以用于其他类似的应用中。
系统所用的TMS320C5402芯片在设计上采用了哈佛体系结构、流水线技术和独立的硬件乘法器,具有运算和处理速度快、片内外设接口简单、体积小、成本低等特点。由于DSPC5402数据线为16位,接口中将一路A/D的8位数据线接DSP数据线高8位,另一路和D/A转换器共享低8位(需进行电压转换),相应的地址线与DSP地址线相连,这样两路A/D转换器可进行同步采集,用DSP的XF引脚通过软件控制实现数据的有序转换。
3 数据采集系统硬件接口设计
3.1 A/D接口电路设计
数据采集系统首要的任务是将传感器采集到的信号经过调理后进行A/D转换。为了实现高速、实时的数据采集和转换,设计中A/D转换模块[4~5]采用了TI公司生产的8位、并行A/D转换器件TLC5510A,它的最高采样率是20MHz,能实现高速数据采集,适应于便携式设备,采用单一4V电源供电,工作时最大功耗为150mW。经传感器检测到的信号通过TLC5510A的19引脚输入到A/D转换器中,用DSP内部的定时器来控制A/D转换器采样率,在每次产生定时器中断时对A/D转换器进行读取,有利于通过设置定时器初始值来改变采样率。图3为A/D转换接口电路图,其中OE为片选端,低电平有效,时钟由DSP内部时钟提供,从A/D芯片的CLK端输入,转换后的8位数字量经电压(A/D和DSP工作电压不同)转换后直接送入DSP进行数据处理和运算。
3.2 A/D转换时序
在进行A/D转换时,每次输入时钟信号的下降沿启动A/D转换器,一次A/D转换需要2.5个时钟周期,即第一时钟的下降沿启动A/D转换后,要等到第三时钟信号的上升沿出现时,第一个A/D转换数据才会准备好。转换时序图[5]如图4所示。
3.3 D/A接口电路设计
由DSP运算和处理的数据经D/A转换后输出,数据采集系统设计中采用了8位D/A转换器TLC7524C[6],该转换器能方便地与大多数通用微处理器接口,具有输入锁存以及与随机存储器写周期相类似的装载周期和低功耗特点。图5为D/A接口电路图。当CS和WR二者均为低时,模拟输出与DB0~DB7数据总线输入端的数据相对应,当CS信号或WR信号变为高电平时,DB0~DB7输入端的数据被锁存,直到CS和WR再次变为低电平为止。锁存的数字量经D/A转换成模拟量,由运算放大器进行放大后输出。
4 数据采集系统的调试及结果
为了调试该系统,可以在A/D转换器输入端输入一个确定信号,观察其采集和输出的情况,为此设计了A/D、D/A转换程序,将A/D转换后的数据存入DSP数据存储器某一单元中,并进行D/A转换,将结果输出到示波器上显示。图6为A/D、D/A转换的主程序以及中断子程序框图。
测试中所用仪器为:RIGOL系列信号发生器DG2000和示波器DS1000。
程序[7~8]主要由初始化、设置地址、转换程序和延时程序等部分组成,下面是程序的主要部分。
.mmregs
.def _c_int00
.include c54.inc
.ref c54init
.def Get_ADValue
AD_ADDR .SET0x0008
DA_ADDR .SET0x0002
.data
.bss buffer,1
.sect 'progsys'
.align 0x10
_c_int00:
STM #0x0f80,SP
CALL c54init ;设置相应的采样率
LD #buffer,DP
STM #buffer,AR1
LOOP:NOP
NOP
B LOOP
Get_ADValue:
PORTR AD_ADDR, *AR1 ;A/D转换
CALL DELAY
PORTW *AR1,DA_ADDR ;D/A转换
CALL DELAY
aaa: RETE
.END
.mmregs
.include c54.inc
.def c54init
.sect 'progsys'
c54init:
STM #0x7208,SWWSR
STM #0,ST0
STM #0x2B00,ST1
STM #0x2FE4,PMST
STM #0xFFFF,IFR
STM #0x0008,IMR
STM #0,CLKMD
clkcon: LDM CLKMD,A
AND #0x01,A
BC CLKCON,ANEQ
STM #0x43FF,CLKMD
STM #0x0010,TCR1 ;Timer1 stop
STM #0x0010,TCR ;TRB=0, TSS=1
Timer stop
STM #0x0C245,PRD ;设置采样率
STM #0x0020,TCR
RSBX INTM
NOP
RET
END
将信号发生器DG2000的输出经一个保护电阻接到A/D转换器输入端,D/A转换后的OUT端则接到双踪示波器DS1000 Y轴进行监视。
波形输入界面如图7所示。
输入一个正弦波,将上述程序在CCS环境下编译、连接生成公共目标代码文件,在线下载到DSP中运行,在示波器窗口上即可显示如图8所示波形,上面的是输入的正弦波,下面的波形是在低采样率下经A/D和D/A转换后输出的阶梯状正弦波,这说明A/D转换和D/A转换部分都是成功的。由于噪声干扰会使信号有一些畸变,在实际应用中可通过滤波等方法消除。
由于本采集系统具有高速转换器和DSP硬件基础,只需根据采集信号种类的不同及输出要求的不同设计相关的算法软件并对所获得信号进行处理即可,在各种工业生产过程和仪器仪表中可以应用该系统。
参考文献
[1] 陈学煌.噪声信号与速度测量.物理,2002,(10):667-669.
[2] 马明建.数据采集与处理技术. 西安:西安交通大学出版社,2005.
[3] 陈学煌.一种新型非接触式速度测量装置.传感器技术,2004,(23)1.
[4] TLC5510 Data Manual. Texas Instrument.1999,2-20.
[5] 雷宏江.DSP系统的A/D接口设计.仪表技术,2005,(5).
[6] TLC7524C Data Manual. Texas Instrument.1999,2-12.
[7] TMS320VC5402 Data Sheet. Texas Instruments.2000,5-50.
[8] 张雄伟,曹铁勇.DSP芯片的原理与开发应用.北京:电子工业出版社,2000.