基于TMS320VC33-150的声探测系统设计

发布者:RainbowJoy最新更新时间:2006-12-07 来源: 电子设计应用关键字:CPLD  单片机  DSP 手机看文章 扫描二维码
随时随地手机看文章
引言

被动声源探测定位技术是一种利用声学传声器阵列和电子装置接收运动目标的辐射噪声,以确定目标所处位置的技术。

本文正是基于声探测技术原理和成熟的微电子技术, 采用TI公司的32位浮点DSP芯片TMS320VC33-150来实现声源目标的探测定位算法,并辅之以ADC、CPLD、单片机等器件来实现声源信号的采集、系统逻辑控制以及通信功能。对于数字电路的逻辑控制功能,本文选用了Altera公司的CPLD芯片EPM7128AETC100-10来实现。该芯片功耗低、资源丰富、内部延时固定,有助于时序逻辑电路的设计。本系统主要分为两部分:声探测系统数字电路的硬件实现和DSP软件设计。系统现已完成调试,运行稳定,探测效果较好。
  
系统功能

声探测系统通过传声器阵列获得声源目标的辐射噪声信息,通过前端模拟信号处理后,在数字电路中由DSP进行高速的声探测定位算法处理,并把获得的声源方位、速度等信息,发送给计算机终端进行交汇显示。

声探测系统的硬件设计

在声探测系统中,数字电路是最为关键的部分。本文以DSP、CPLD和单片机为核心器件,完成了声探测系统的数字电路的硬件设计。其数字电路框图如图1所示。

      
             图1 声探测系统的数字电路框图

经过前端处理的模拟信号由AD7865完成采样转换后,给DSP一个中断,DSP在CPLD的配合下,读取各个通道的数据并存储在片外SRAM数据区,同时DSP对数据进行数字滤波、频谱分析,从而完成对声源目标的定位功能。

由双口RAM实现DSP和C8051F020目标信息的交换,最终通过MAX3485完成和终端的RS-422通信。另外,DSP根据处理后的结果实现对前端模拟电路的增益控制。

ADC设计

被动声探测系统中对声音的相位一致性要求很高,因此,在设计中采用了具有同时采样保持功能的14位并行输出ADC AD7865。本设计中,经放大滤波处理后的6路声源目标信号通过两片AD7865实现A/D转换。本文利用DSP定时器的输出信号作为ADC的启动采样信号,采样转换完成后,通过ADC的BUSY信号给DSP一个中断,然后DSP进入中断处理程序,读取A/D数据,而读写信号和ADC片选信号由CPLD对DSP的读写信号和地址信号进行逻辑组合来完成。

DSP及周边电路设计

DSP的主要功能有根据采集到的数字信号的幅度来完成对前端模拟信号的自动增益控制,增益控制的级别有16、64、256、1024、4096、16384、65536共7档;对采集到的数据进行数字滤波、快速FFT变换以及正交变换等运算,进而完成对目标的定位、识别等运算;通过双口RAM完成和单片机的通信,以及ADC的定时启动。

DSP周边电路包括程序引导区Flash、程序运行区SRAM、数据交换区双口RAM及增益控制。Flash采用容量为1M*8b的AMD29LV040B构成代码存储空间;SRAM则采用容量为512K*8b的SRAM存储器CY7C1049-CV33,在电路中使用4片进行位扩展,从而构成512K*32位的程序运行空间;双口RAM为2K*8位的IDT71V321;而增益控制则采用8位 CMOS锁存器来实现。

TMS320VC33-150有四个外部中断,都可以作为BootLoader的中断,因此BootLoader首选高优先级的中断,否则有可能在脱机上电加载程序时无法加载成功。因为在上电复位后,DSP执行驻留程序,根据中断级别去寻找BootLoader存储区域,如果没有把高于BootLoader中断的中断置无效,那么DSP将会根据高优先级寻找BootLoader存储区域,因而导致程序加载不成功。

此外,在设计过程中,对于一些重要的信号如#RDY、#HOLD、EDGEMODE、MCBL/#MP、#SHZ等,要根据具体设计,参照数据手册相应给予上拉或下拉处理。本设计在调试过程中因为对#HOLD信号未做处理,导致不能在线下载程序,最后通过拉高才解决。

表1 中断号和程序装载地址对应表

图2 DSP软件程序设计流程图

逻辑控制

本设计中采用了Altera公司的EPM7128AETC100-10来实现整个电路系统的时序管理及逻辑控制功能,主要包括ADC控制功能模块、存储器读写时序控制模块、通信接口时序控制模块和增益控制。并根据DSP外部存储器地址空间译码产生片选信号以及读写时序。本设计中利用QuartusⅡ来完成逻辑控制仿真。

单片机电路

C8051F020单片机是完全集成的混合信号系统级MCU,除了具有标准8051单片机的数字外设部件外,片内还集成了数据采集与控制系统中常用的模拟部件和其它数字外设及功能部件。

本设计中利用C8051F020的串口实现了和计算机终端的RS-422异步串行通信,波特率为19.2Kbps;利用双口RAM完成了DSP和单片机的声源目标数据的实时交换。

在设计单片机电路时,为保证上电复位电路的可靠性,可以使用基本的RC电路和专门的监控集成电路如MAX708T等,同时应该充分利用MODEN VDD监视器功能。

辅助电路

辅助电路包括晶振、看门狗、电压基准电路以及DC/DC电源模块。DSP时钟采用了15MHz晶振,经DSP内部5倍频后达到TMS320VC33-150的最快运行速度,同时采用20MHz晶振作为单片机的时钟源;本设计中通过采用MAX706看门狗芯片实现了对DSP的掉电监控和程序跑飞的复位功能;电压基准电路则利用了TPS767D318来为整个系统提供+3.3V和+1.8V电源;DC/DC电源模块完成外接+12V~+5V的高效转换。

DSP软件设计

DSP软件流程

整个软件基于中断方式。DSP软件设计包括了ADC的转换启动、数据采集、中断服务程序、声源信号的数字滤波、快速FFT和正交变换,以及通过频谱分析获得高分辨率空间声强分布的MUSIC算法。该声探测系统的DSP软件流程如图2所示。??

DSP软件工作流程为:系统上电复位后,加载外部Flash的程序文件到外部SRAM程序区,DSP初始化各个部分后运行。程序始终查询ADC的中断信号,在获得ADC的中断后进入中断服务程序,采集后的数据存储在外部SRAM数据区,然后调用探测定位程序获取声音目标的方位等参数,并写入外部双口RAM中,供单片机读取后送到计算机终端进行融合交会。

DSP程序BootLoader

TMS320VC33-150有两种工作方式,工作方式的选择由MCBL/MP引脚决定。在本设计中,通过把MCBL/MP引脚上拉为高电平,使DSP工作在微计算机/引导装入模式或外部存储器装载方式。在Reset 信号从低电平转为高电平后, TMS320VC32-150首先检查外部中断输入线电平, 决定由什么地方开始引导程序, 中断号和对应的开始引导地址间的关系如表1所示。本设计中使用了BOOT2方式,即在DSP复位信号由低变高后,DSP从外部存储地址400000H开始加载程序。

需要注意的是,使用外部存储器装载方式时,加载程序必须含有外部存储器的数据总线宽度(8位、16位或32位)、程序代码的长度、程序执行的入口地址以及存储器的等待状态数。

在把已调试成功的程序装入Flash过程中,本文采用的方法是:通过编写一个*.cmd转换文件,然后用HEX30.EXE把*.out文件转化为*.hex文件。 并把生成的*.hex文件烧写入Flash中即可。当然,也可采用在线烧写的方法。

结语

基于TMS320VC33-150的声探测系统数字电路设计充分利用了TMS320VC33-150强大的浮点运算能力,很好的完成了声源目标探测定位的算法处理。同时还充分利用了CPLD的逻辑控制功能和MCU丰富的外设资源,并设计出了DSP算法和中断服务程序流程。该系统已经调试完成,并进行了充分的外场试验。结果表明,系统工作稳定,各项指标基本达到了要求。

关键字:CPLD  单片机  DSP 引用地址:基于TMS320VC33-150的声探测系统设计

上一篇:基于DSP和以太网的数据采集处理系统
下一篇:CD4051和AD595制作的温度采集仪

推荐阅读最新更新时间:2024-03-30 22:04

基于AVR单片机实现超声波测距的程序编写
#include #defineucharunsignedchar #defineuintunsignedint ucharint_flag; uintqian,bai,shi,ge; uinti; floatdistance; //AlphanumericLCDModulefuncTIons #asm .equ__lcd_port=0x18;PORTB #endasm #include //ExternalInterrupt0servicerouTIne interrupt voidext_int0_isr(void) {#asm( sei ) if(int_flag) { distance=i*17.3; } elsei
[单片机]
基于AVR<font color='red'>单片机</font>实现超声波测距的程序编写
用超低功耗MSP430单片机设计数据采集系统
1 MSP430单片机简介 MSP430 是TI公司近几年推出的16位系列单片机,其最早是面向于驱动LED显示的应用设计,由于极好的应用效果和很大的市场潜力,TI很快将其发展为通用单片机。现已有X1XX、X3XX、X4XX几个系列,并且还在不断的发展。MSP430作为一种新型的单片机,采用了TI公司最新的低功耗技术,使其在众多的单片机中独树一帜。MSP430工作在1.8~3.6V电压下,有正常工作模式(AM)和4种低功耗工作模式(LPM1、LPM2、LPM3、 LPM4),在电源电压为3V时,各种模式的工作电流分别为 AM:340uA、LPM1:70uA、LPM2:17uA、LPM3:2uA、LPM4:0.1uA。单片机可以方
[单片机]
用超低功耗MSP430<font color='red'>单片机</font>设计数据采集系统
51单片机自动浇花系统
单片机源程序如下: #include reg51.h #define uchar unsigned char #define uint unsigned int sbit ad_cs=P1^3; //ADC0832的控制位 sbit ad_clk=P1^0; sbit ad_dat=P1^1; sbit lcd_rs=P2^7; //LCD1602的控制位 sbit lcd_e=P2^6; sbit key1=P1^4; //独立按键 sbit key2=P3^2; sbit key3=P3^3; sbit relay=P1^6; //继电器 bit flag=1;
[单片机]
51<font color='red'>单片机</font>自动浇花系统
单片机定时中断的精确定时编程方法种种
  MCS-51单片机的中断响应延迟时间,取决于其它中断服务程序是否在进行,或取决于正在执行的是什么样的指令。单中断系统中的中断响应时间为3~8个机器周期 。无论是哪一种原因引起的误差,在精确定时的应用场合,必须考虑它们的影响,以确保精确的定时控制。根据定时中断的不同应用情况,应选择不同的精确定时编程方法。   文中以定时器T1工作在定时方式1为例,晶振频率为12MHz 。 1 方法1   在定时器溢出中断得到响应时,停止定时器计数,读出计数值(反映了中断响应的延迟时间),根据此计数值算出到下一次中断时,需多长时间,由此来重装载和启动定时器。例如定时周期为1ms,则通常定时器重装载值为-1000(0FC18H)。下面的程序在计算每
[单片机]
STM32单片机的BOOT0和BOOT1运用原理
STM32三种发动形式对应的存储介质均是芯片内置的,它们是: 1)用户闪存 = 芯片内置的Flash。 2)SRAM = 芯片内置的RAM区,就是内存啦。 3)体系存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是普通说的ISP顺序。这个区域的内容在芯片出厂后没有人可以修正或擦除,即它是一个ROM区。 在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状况决议了芯片复位后从哪个区域开端执 行顺序,见下表: BOOT1=x BOOT0=0 从用户闪存发动,这是正常的任务形式。 BOOT1=0 BOOT0=1 从体系存储器发动,这种形式发动的顺序功用由厂家
[单片机]
51系列单片机之I2C协议
/*---------------------------------------------------- 名称:IIC协议 PCF8591AD/DA转换 编写:付新 日期:2012/5/9 平台:Keil 4, Ly-51S学习板 引脚定义如下: 与51连接: 内容:函数是采用软件延时的方法产生SCL脉冲,固对高晶振频率要作 一定的修改....(本例是1us机器周期,即晶振频率要小于12MHZ) -----------------------------------------------------*/ #include reg52.h #include intrins.h #include
[单片机]
单片机软件仿真与调试的方法
  点击运行软件Keil uVision2.其调试操作步骤大体可以分为5步:   1.创建工程   在项目开发中,并不是仅有一个用户源程序就够了,还要为这个项目选择CPU型号、设置编译和调试参数。有一些项目还会有多个文件组成。因此将这些参数设置和所需要的所有文件统称为一个工程,存放于专门的工程文件夹下。这里先建立一个工程文件夹如F:exam.   ①创建新工程。鼠标左键单击主菜单Project一 New Project.弹出。Create New Project"对话框,用鼠标选择你要保存工程的文件夹(如FAexam),输入新工程名(如"exam")。单击"保存"按键。   ②在随后弹出的CPU型号设置对话框中选择 单片
[单片机]
<font color='red'>单片机</font>软件仿真与调试的方法
80C51单片机的定时器/计数器介绍
定时器/计数器介绍 定时/计数器T0和T1分别是由两个8位的专用寄存器组成,即定时/计数器T0由TH0和TL0组成,T1由TH1和TL1组成。此外,其内部还有2个8位的特殊功能寄存器TMOD和TCON,TMOD负责控制和确定T0和T1的功能和工作模式,TCON用来控制T0和T1启动或停止计数,同时包含定时/计数器的状态。 TF1:定时器1溢出标志。定时/计数器溢出时由硬件置位。中断处理时由硬件清除。或用软件清除。 TF0:定时器0溢出标志。定时/计数器溢出时由硬件置位。中断处理时由硬件清除,或用软件清除。 在现在很多新MCU中,不只有两个 定时/计数器,例如STC15系列就有四个定时/计数器,但是在使用上操作上是大同小异的。
[单片机]
80C51<font color='red'>单片机</font>的定时器/计数器介绍
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved