DSP 课程设计总结
(2015-2016 学年第 1 学期)
题
目 : 数据采集处理和控制系统设计
专业班级 :
学生姓名 :
学
号 :
指导教师 :
设计成绩 :
2016 年 1 月
目 录
一 设计目的
二 系统分析
2.1 设计要求
2.2 主要任务
三 硬件设计
3.1 硬件总体结构
3.2 DSP 模块设计
3.3 电源模块设计
3.4 时钟模块设计
3.5 存储器模块设计
四 软件设计
4.1 软件总体流程
4.2 核心模块及实现代码
五 课程设计总结
六 参考文献
一 设计目的
本次设计是结合硬件、软件得到一个基于 TMS320VC5416 芯片,
能完成数据采集、频谱分析、滤波、LCD 显示的 DSP 系统。以此加
强对 DSP 功能的认识,复习 Altium Designer 软件的使用方法。并在
此基础上利用 CCS 软件编程实现 A/D 采集,FFT 变换处理,低通滤
波,显示滤波成分等功能的完整的小型数字处理系统。
二 系统分析
2.1 设计要求
(1)DSP 硬件设计要求
设计一个功能完备,能够独立运行的精简 DSP 硬件系统。绘制出
系统的功能框图、使用 AD(Altium Designer)绘制出系统的原理图
和 PCB 版图。
(2)DSP 软件设计要求
利用实验箱的模拟信号产生单元产生不同频率的信号,或者产生两个
频率的信号的叠加;在 DSP 中采集信号,并且对信号进行频谱分析,
滤波等;通过键盘或者串口命令选择算法的功能,将计算的信号频率
或者滤波后信号的频率在 LCD 上显示。
2.2 主要任务
(1)DSP 硬件设计
先设计 DSP 硬件系统的基本结构,再根据基本结构绘制系统的原
理图,然后根据设计的原理图,绘制系统的 PCB 板图。
(2)数据采集处理和控制系统设计
对外部输入的模拟信号采集到 DSP 内存;用 CCS 软件显示采集
的数据波形;使用 FFT 算法计算信号的频率进行频谱分析;对信号
进行 IIR 滤波或 FIR 滤波,并且计算滤波前后信号的频率;LCD 显示
高频,低频和滤波器的截止频率。
三 硬件设计
3.1 硬件总体结构
电源
复位电路
RS
JTAG
1
READY
DSP
_
R/W
A0-A19
D0-D15
FLASH
WR
OE
X2/CLKIN
晶振
本次实验使用 TMS320VC5416 芯片作为主芯片。外围电路包括:电源、复位电路、时
钟发生器(外接晶振或外接晶体)、外部存储器 FLASH、仿真接口电路 JTAG、外部中断(不
用:上拉)、I/O(不用:输出悬空,输入上拉)与主机通信的并行接口 HPI。
(1)原理图
(2)PCB 板图
3.2 DSP 模块设计
核心芯片图
上图为 TMS320VC5416 芯片的设计,该芯片不用的输入引脚要拉高,输出引脚
悬空。①本设计用到了该芯片的数据信号线,初始化、中断和复位线,部分存储
器控制信号线,部分振荡器/定时信号线,串口信号线,电源引脚线和 JTAG 测
试引脚线;②主 CPU 每个电源管脚旁边都有一个 0.1uF 的去耦电容,去耦电容
可以提供较稳定的电源,同时也可以降低元件耦合到电源端的噪声,间接可以减
少其他元件受此元件噪声的影响;③CLKMOD1、CLKMOD2、CLKMOD3 分别
接 1、1、0,表示锁相环一倍频。
3.3 电源模块设计
73HD316 为 DC-DC 转换芯片,将+5V 电压转换成 Vcore 和+3.3V 电压,电源和地之间
要接滤波电容。Vcore 为内核电压,+3.3V 为外设电压,这样可以减小功耗。
3.4 时钟模块设计
10MHZ 晶振的输出接到 TM320VC5416 芯片的 X2/CLKIN 管脚,芯片的 X1 悬空,即
使用外部晶振。
3.5 存储器模块设计
存储器的数据线和地址线分别接 CPU 的数据线和地址线。DSP 控制信号 R/W_L 接 FLASH
的 WE_L 和 OE 表示 DSP 向 FLASH 写和从 FLASH 读有效。当 DSP 从 FLASH 读时,DSP
输出高电平,但 FLASH 的 OE 为低有效,应接一个非门。
四 软件设计
4.1 软件总体流程
A/D 采样
对采样信号进行 FFT 运算,并求两频率值
设计 FIR 低通滤波器
调用卷积算法对信号进行处理
LCD 显示频率值
返回第二步
4.2 核心模块及实现代码
(1)主要程序
//------------------头文件--------------------------------------
#include "DspRegDefine.h"
#include "stdio.h"
#include "math.h"
//VC5402 寄存器定义
//输入输出接口定义
//数学计算定义
****************** 宏定义 ***************
//---------------------------------------------------------------
/*
************************************************************
*/
#define UCHAR
#define UINT16
#define UINT32
unsigned char
unsigned int
unsigned long