基于单片机和DSP的信号采集系统设计

时间:2022-09-02 12:50:12

基于单片机和DSP的信号采集系统设计

摘 要:目前环境监测仪器迫切需求高速、准确、实时、连续采集分析性、网络化远程控制系统。介绍一种通过单片机与数字信号处理器(dsp)的同步串行通讯实现单片机控制DSP完成信号采集、存储及回放;给出硬件电路,同时介绍软件流程图,部分子程序及软硬件调试过程出现的问题以及解决方法,构建了目前环境监测仪器需求的基础性研究平台。

关键词:DSP;环境监测仪器;同步串行通讯;软硬件调试

中图分类号:TP368.1 文献标识码:B

文章编号:1004-373X(2008)06-030-03

Design of DSP and Single Chip-based Signal Acquisition System

A Rigongbayaner,JIN Xing,SHI Xuefeng

(School of Mechanical and Electronic Engineering,China University of Geosciences,Wuhan,430074,China)

Abstract:This paper gives a introduction on implementation of signal sampling,storage and playback of signal through serial communication between single chip and DSP.The hardware circuit scheme and simple software process are included.It meets the requirement of high speed signal sampling and processing control system.

Keywords:DSP;environment monitoring equipment;synchronous serial communication;software hardware debug

对于控制量不复杂但数据处理分析量非常大的系统(如环境监测分析仪器、高压设备仪表),单独采用1片DSP加上存储器,模/数转换单元和外设接口方案要达到高速实时控制不可行。因为单靠1个DSP完成数据的采集、模/数转换、分析计算、数/模转换,实时过程控制以及显示等任务势必会大大延迟系统对控制对象的控制周期,从而影响整个系统的性能。所以添加一个CPU 负责采集,模/数转换,过程控制以及人机接口等任务,而DSP 专注于系统控制算法的实现,充分利用他的高速数据处理分析能力。

1 系统方案

TMS320VC5410内部具有16×16 b的ROM 和32×16 b的RAM。芯片内部RAM和ROM可根据PMST寄存器中的OVLY,DROM位灵活设置。数据区00H~5FH为存储器映射寄存器,60H~7FH为双寻址RAM(DARAM),80H~1FFFH为DARAM,2000H~7FFFH为单寻址RAM(SARAM)。当DAROM=1时,内部的C000H~7FFFH同时被映射为数据区。AD50C内部集成16位的D/A和A/D转换器,采样速率最高可达22.05 kb/s,其采样速率fs=MCLK/(128×N)或MCLK/(512×N),N由DSP设置AD50C寄存器4,当N=1时满足环境监测分析仪器数据采集速度,采集的数据存储在3000H~7FFFH数据单元满足一次采集处理的数据量。同时在DAC 之前一个插值滤波器以保证输出信号平滑和ADC 之后一个抽取滤波器以提高输入信号的信噪比。

并行通信具有传输线多,不适于远距离传输,而串行通信具有低成本,适用于远距离通信的特性。本系统采用单片机P1口与DSP建立同步串行通信,具体通过P1.0,P1.1,P1.2 与DSP 的数据接收口、数据接收时钟、数据接收帧同步脉冲口相连,实现双控制器通过同步串行通信协同完成信号采集处理等任务。

2 系统硬件连接电路

DSP5000 有3个多通道缓冲串口(MCBSP),缓冲串口0(MCBSP0)与AD/DA芯片(TLC320AD50C)相连完成信号的采集、发送处理后的信号。缓冲串口1(MCBSP1)与单片机P1 口相连完成单片机控制DSP 的作用。具体BDR1,BCLKR1,BFSR1 通过一个电压转换芯片CU245A与外部数据、时钟、帧同步脉冲相连。具体将单片机的P1.0 口与数据信号(BDR1) 相连,P1.1 口与时钟信号口(BCLKR1)相连,P1.2 口与帧同步信号(BFSR1)相连。在这个最小系统中引入FLASH 芯片的目的是让DSP 最小系统完全脱离仿真器单独运行。FLASH 芯片的CE 片选信号与DSP5000 的DS 引脚相连。FLASH的数据线A0~A16 与DSP5000 的A0~A16 相连接,FLASH 数据总线D0~D7与DSP的数据总线D0~D7 连接。如图1所示。

3 系统软件设计

软件部分分成2大模块:单片机程序模块、DSP 程序模块。单片机的程序流程图,如图2所示。程序开始主要初始化和打开中断,第二步等待是否有外部中断,若外部按键按下则图3的时序发送数据,并显示。具体单片机P1.0发送8 位数据,P1.1发送时钟信号,P1.2发送帧同步脉冲。倘如没有按键中断则单片机一直处于等待中断的状态。

单片机发送控制信号程序段:

SENT:

CLR P1.1

ACALL DEL;延时子程序

SETB P1.1

CLR P1.2;帧同步脉冲下降延发数据

MOV A,#0FFH; 发送FF

ACALL LEFT;移位发送数据子程序

ACALL DEL;延时子程序

RET; 返回

LEFT:

MOV R7 ,#08H;移位发送8 位二进制数

LOOP:RLC A; 发送数据左移一位

ACALL DEL

CLR P1.1;在时钟下降延发送数据

MOV P1.0 C; P1.0发送数据

SETB P1.1

DJNZ R7 , LOOP; 判断是否发送完FF

RET

5000系列DSP有3个状态和控制寄存器,他们分别为状态寄存器ST0,状态寄存器ST1和处理器方式PMST。ST0和ST1包括了各种条件和方式的状态,PMST包括了存储器配置状态和控制信息。C5410 内部具有16×16 b的ROM和32×16 b的RAM。芯片内部RAM和ROM可根据PMST寄存器中的OVLY,DROM位灵活设置。数据区,00H~5FH为存储器映射寄存器,60H~7FH为双寻址RAM(DARAM),80H~1FFFH为DARAM,2000H~7FFFH为单寻址RAM(SARAM)。当DAROM=1时,内部的C000H~7FFFH同时被映射为数据区。当OVLY=1时,内部的80H~1FFFH 和2000H~7FFFH同时被映射为程序区。FF80H 开始存储固有的中断矢量,当芯片工作在为计算机模式时,起始地址为C000H的16 k×16 b ROM也被映射到程序区。5000系列DSP支持软件和硬件中断。软件中断可由1条指令产生中断请求(如INTR,NMI,TRAP,RESET等)。硬件中断可外部信号请求,这有2种情况:外部硬件中断被外部中断引脚上的信号触发;内部硬件中断被片内的信号触发。涉及中断的寄存器中有标志寄存器和中断屏蔽寄存器。DSP 的串口有多种类型,有标准串口(SSP)、缓冲串口(BSP)、多通道缓冲串口(MCBSP)、时分串口、主机接口(HPI)。McBSP 在结构上可以分为一个数据通道和一个控制通道。对于多通道缓冲串口的操作,涉及15个需要初始化的寄存器,他们分别是SPCR1,SPCR2,RCR1,RCR2,XCR1,XCR2,SRGR1,SRGR2,MCR1,MCR2,RCERA1,RCERB1,XCERA,XCERB,PCR1。缓冲串口0与AD50C 连接,实现信号的采集和回放。缓冲串口1控制DSP 开始采集数据,停止和回放采集。为了单片机更好地控制DSP,单片机发送数据时严格按照DSP接收时序发送。DSP程序流程图如图4所示。

采集按键判断程序:

command

CMPM DRR11,#007FH;判断MCBSP1 的数据接收寄存器

的内容是否7FH

;在单片机程序判断是否5 键按下

BC _AIC_INIT,TC ;是调转到_AIC_INIT 程序

B command;不是则等待

_AIC_INIT 程序部分:

_AIC_INIT

STM #0,IMR;屏蔽所有中断

orm #IMASK,IMR;只打开外部中断MCBSP1

stm #0ffffh,IFR;清中断标志

PROGREG 0000001100000001b;向AD50C 寄存器3 FS与

FSD 之间延迟1 个

PROGREG 0000010000010000b;寄存器4 抽样率N=1

rsbx INTM;允许可屏蔽中断

_js;等待外部信号中断

nop

b _js

信号采集程序:

cpu_to_codec_ch1

ld AR5,A

NOP

NOP

bc receive ,agt;是否AR5 的值为0,是否采集了256 个点

ldm DRR10,A

NOP

NOP

STL A,DXR10

Receive;存储子程序

sub #1,A

stl A,AR5;采集信号存储在AR5 指定地址开始存放

ldm DRR10,A

stl A,DXR10

stl A,*AR2+

ST #1,p0_serialint

停止采集程序:

CMPM 41H,70H;判断是否B 键按下,DSP 接收到的数据是否为70H

NOP

BC TINGZHI,TC;如果是70H 则调转到停止子程序

ST #1,p0_serialint;否则采集标志1 表示还没有采集完。

RETE

TINGZHI

ST #0,p0_serialint; 表明已经采集了256 个点,采集标志等于1

RETE

回放程序:

anjian

ssbx INTM;屏蔽中断

cmpm 41h ,00h;判断DRR11 的内容是否00H,单片机按键F

bc huifang ,tc;是则跳转到huifang 子程序

nop

b anjian;否则等待按键

huifang 子程序:

huifang

stm #SPEECH_IN,AR2;256 个点的起始标志

st #100H,AR5; 采集256 个点

huifang1

ld *AR2+,A

STL A,DXR10;把采集信号暂存在寄存器A 中

WAITTRX1; 等待发送数据给AD50C

ld AR5,A

nop

nop

sub #1 ,A

stl A ,AR5

bc huifang1 ,AGT;是否全部发送完

nop

nop

b huifang; 循环发送256 个采集的点

4 结 语

本文介绍一种通过单片机与数字信号处理器(DSP)的同步串行通讯实现单片机控制DSP完成信号采集、存储及回放。系统中同步串行通讯主要传输单片机控制DSP的控制信号,他并不影响DSP的数据处理速度。综合考虑,这个系统不仅硬件连线简单而且其稳定性和可靠性比较好,适用于环境监测仪器开发平台。

参考文献

[1]王安民.TMS320C54XXDSP实用技术\[M\].北京:清华大学出版社,2002.

[2]汪进进,苏建微,徐科军,等.DSP 与单片机之间串行通讯的实现\[J\].电子技术,2002(2):15-18.

[3]宋军,顾永建.基于CCS 和DSK5402 板的音频采集和会放程序设计\[J\].电子产品世界,2002(3):68-71.

[4]杨力波.用DSP 软件编程实现的引导装载系统\[EB/OL\].61IC 中国电子在线DSP专栏,2004.

作者简介 阿日贡巴彦尔 男,1982年出生,中国地质大学(武汉)机械电子工程学院硕士研究生。

上一篇:一种基于单片机的半导体激光器电源控制系统的... 下一篇:基于RS 485总线的自动化检测系统的研制