DSP2812

更新时间:2023-09-27 10:03:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Guangxi University of Science and Technology

课程设计说明书

实验课程: DSP原理与应用 实验内容: 基于TMS320X2812的 Led显示控制系统设计

院 (系): 计算机学院 专 业: 通信工程 班 级: 101班 学生姓名: 刘金龙 学 号: 201000402024 指导教师: 袁浩浩

2013年 7 月 3 日

广西科技大学课程设计说明书 DSP技术及其应用

目录

1. 序言 ………………………………………… 2 2.设计任务 …………………………………………2

3.实验目的 …………………………………………2

4.设计内容………………………………………… 3

5.实验原理………………………………………… 2

6.总体设计………………………………………… 7

7.实验总结…………………………………………16

8.参考资料…………………………………………17

1

广西科技大学课程设计说明书 DSP技术及其应用

序言

DSP芯片的特点

DSP芯片,也称数字信号处理器, 是一种具有特殊结构的微处理器。DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的DSP指令,可以用来快速的实现各种数字信号处理算法。

根据数字信号处理的要求,DSP芯片一般具有如下的一些主要特点: ⑴在一个指令周期内可完成一次乘法和一次加法。 ⑵程序和数据空间分开,可以同时访问指令和数据。

⑶片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问。 ⑷具有低开销或无开销循环及跳转的硬件支持。 ⑸快速的中断处理和硬件I/O支持。

⑹具有在单周期内操作的多个硬件地址产生器。 ⑺可以并行执行多个操作。

⑻支持流水线操作,使取指、译码和执行等操作可以重叠执行。 ⑼与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。

1.设计任务:

1.1基于TMS320X2812的 Led显示控制系统设计 要求:

(1)绘制系统框图(VISIO);

(2)包括复位电路设计、JTAG接口设计、时钟电路设计、电源设计等,并且用Protel软件绘制原理图;

(3) 编写程序,实现流水灯; (4) 系统理论分析和设计陈述;

(5) 设计过程、源代码和注释、设计说明书。

2.实验目的:

⑴ 学习并了解DSP开发版的基本原理;

⑵ 学习并了解TMS320X2812芯片的基本结构和原理; ⑶ 熟悉流水灯的软件实现原理和硬件设计;

⑷ 熟悉Emulator方式下的程序调试规程,并最终能够熟练掌握在DSP软硬件环境下的

2

广西科技大学课程设计说明书 DSP技术及其应用

程序开发流程;能够对现有器件进行简单地编程,实现各种简单地显示控制。

3.设计内容:

(1)使用Altium Designer软件绘制原理图。 (2)使用VISIO软件绘制系统框图和软件流程图。 (3)使用CCStudio v3.3软件设计程序实现流水灯。

4.实验原理:

4.1 DSP(2812)性能概述

(1)F2812 DSP芯片采用高性能静态CMOS技术 1 主频高达150MHz,每个时钟周期为6.67ns。

2采用低电压供电,当主频为135MHz时,内核电压为1.8V,主频150MHz时内核电压为1.9V,I/O引脚电压为3.3V。 (2)支持JTAG在线仿真接口 (3)32位高性能处理器

1 支持16bX16b和32bX32b的乘法加法运算。 2 支持16bX16b双乘法运算。 3 采用哈佛总线结构模式。

4 快速的中断响应和中断处理能力。 5 统一的存储设计模式。 6 兼容C/C++语言以及汇编语言。 (4) 片内存储空间

1片内FLASH空间大小为128KX16b,分为4个8KX16b和6个16KX16b存储段。

2 OTP ROM空间大小1KX16b。

3 L0、L1两块4KX16b单地址寻址随机存储器(SARAM)。 4 H0:一块8KX16b随机存储器(SARAM)。 5 M0、M1:两块1KX16bSARAM。 (5) Boot ROM空间

空间大小为4KX16b,内含软件启动模式以及标准数学函数库。 (6) 外部接口

3

广西科技大学课程设计说明书 DSP技术及其应用

1 高达1MX16b的总存储空间。 2 可编程的等待时间。 3 可编程的等待读写时序。 4 3个独立的片选信号。 (7) 时钟和系统控制 1 支持动态锁相环倍频。 2 片内振荡器。

3 内含看门狗定时模块。 (8)3个外部中断

(9)外设中断模块(PIE)可以支持45个外设中断 (10)3 个32位CPU定时器 (11)128位安全密钥

1 可以包含Flash ROM OTP以及L0 L1SARAM。 2 防止系统硬件、软件被修改。 (12)用于控制电机的外设

1两路事件管理(EVA、EVB)。 (13)串行通信端口

1 串行外设接口SPI。

2 两路串行通信接口SCI,标准URAT口。 3 增强型CAN模块(eCAN)。 4 多通道缓冲串行接口(MSBSP)。 (14)12位ADC转换模块

1 2X8路输入通道。 2 两个采样保持器。 3 单一或级联转换模式。 4 最高转换速度80ns/12.5Msps。 (15)56个通用GPIO口 (16)先进的仿真模式

1 具有实时仿真及设置断点的功能。

4

广西科技大学课程设计说明书 DSP技术及其应用

5.3软件设计

这里用软件延时的方法来调整发光二极管的延时时间间隔。当发光二极管被点亮之后,通过改变端口的电平输出,达到点亮不同的LED显示管的目的。

实验要求实现LED显示管的循环显示:先第1个LED亮,然后是第2个LED亮,第3个LED显示管亮。第4个灯亮。如此循环显示。

在给寄存器GPBCLEAR的值与temp的值相或,其相应位被写1,实现相应的端口输出低电平,LED灯亮,通过寄存器GPBSET的值再与temp值相或,则相应的端口输出高电平,LED等灭,通过tenp的值左移便可以完成0000 0001?… …?10000000的改变,每改变一次就可以实现相应的LED灯的亮灭。当数据的最高位等于1的时候,temp重新赋初值,即给程序重新赋值为0000 0001,进行下一轮的循环。

如此即可以实现实验要求的功能。

1.程序流程图

10

广西科技大学课程设计说明书 DSP技术及其应用

开始初始化设计将temp的值与寄存器GPBCLEAR值相或,则相应引脚输出低电平,LED灯亮延时temp值与寄存器GPBSET的值相或,相应引脚输出高电平,LED灯灭temp左移一位判断temp值是否为0X0100NLED灯显示结束

2.程序部分源代码 2.1系统初始化函数

#include \#include \

#pragma CODE_SECTION(InitFlash, \

/*------------------------------------------*/

/*形式参数:void */ /*返回值:void

*/

/*函数描述:初始化系统 */ /*------------------------------------------*/ void InitSysCtrl(void) {

DisableDog();//禁止看门狗

InitPll(0x02);//设置系统时钟=XCLKIN*2/2 InitPeripheralClocks();

//设置外设时钟

11

广西科技大学课程设计说明书 DSP技术及其应用

DINT; IER = 0x0000; IFR = 0x0000; InitPieCtrl();

// 关闭总中断 // 关闭外设中断 // 清中断标志

//初始化PIE控制寄存器

//使能PIE向量表

InitPieVectTable();

}

/*------------------------------------------*/

/*形式参数:void /*返回值:void

/*函数描述:禁止看门狗 /*------------------------------------------*/ void DisableDog(void) {

EALLOW;

SysCtrlRegs.WDCR= 0x0068; EDIS; }

/*------------------------------------------*/

/*形式参数:void /*返回值:void

/*函数描述:喂看门狗 /*------------------------------------------*/ void KickDog(void) {

EALLOW;

SysCtrlRegs.WDKEY = 0x0055; SysCtrlRegs.WDKEY = 0x00AA; EDIS; }

/*------------------------------------------*/

/*形式参数:void /*返回值:void

/*函数描述:设置锁相环倍频系数 /*------------------------------------------*/

*/ */

*/ */ */

*/ */ */

*/ 12

广西科技大学课程设计说明书 DSP技术及其应用

void InitPll(Uint16 val) {

volatile Uint16 iVol;

if (SysCtrlRegs.PLLCR.bit.DIV != val) {

EALLOW;

SysCtrlRegs.PLLCR.bit.DIV = val; EDIS;

for(iVol= 0; iVol<4096; iVol++); } }

/*------------------------------------------*/

/*形式参数:void */ /*返回值:void

*/

/*函数描述:初始化外设时钟 */ /*------------------------------------------*/ void InitPeripheralClocks(void) {

EALLOW;

SysCtrlRegs.HISPCP.all = 0x0001;//设置高速时钟 2分频 SysCtrlRegs.LOSPCP.all = 0x0002;//设置低速时钟 4分频

//使能外围模块时钟

SysCtrlRegs.PCLKCR.bit.EVAENCLK=1; SysCtrlRegs.PCLKCR.bit.EVBENCLK=1; SysCtrlRegs.PCLKCR.bit.SCIAENCLK=1; SysCtrlRegs.PCLKCR.bit.SCIBENCLK=1; SysCtrlRegs.PCLKCR.bit.MCBSPENCLK=1; SysCtrlRegs.PCLKCR.bit.SPIENCLK=1; SysCtrlRegs.PCLKCR.bit.ECANENCLK=1;

13

广西科技大学课程设计说明书 DSP技术及其应用

SysCtrlRegs.PCLKCR.bit.ADCENCLK=1; EDIS; }

/*------------------------------------------*/

/*形式参数:void */ /*返回值:void

*/ */

/*函数描述:初始化Flash void InitFlash(void) {

EALLOW;

FlashRegs.FPWR.bit.PWR = 3;

//设置Flash为正常工作状态

FlashRegs.FBANKWAIT.bit.RANDWAIT = 5;//设置随机存取等待时间 FlashRegs.FBANKWAIT.bit.PAGEWAIT = 5;//设置页面存取等待时间 FlashRegs.FSTDBYWAIT.bit.STDBYWAIT = 0x01FF; 换时间

FlashRegs.FACTIVEWAIT.bit.ACTIVEWAIT = 0x01FF; 换时间

FlashRegs.FOPT.bit.ENPIPE = 1; EDIS;

asm(\软件延时,等待流水线刷新 }

/*------------------------------------------*/

/*形式参数:void */ /*返回值:状态值

*/

/*函数描述:unlocks the CSM */ /*------------------------------------------*/ #define STATUS_FAIL 0 #define STATUS_SUCCESS 1

Uint16 CsmUnlock() {

volatile Uint16 temp;

14

/*------------------------------------------*/

//设置从睡眠到等待的转//设置从等待到激活的转

//使能流水线模式

广西科技大学课程设计说明书 DSP技术及其应用

// 写入密钥,应将0xFFFF替换成密钥值 EALLOW;

CsmRegs.KEY0 = 0xFFFF; CsmRegs.KEY1 = 0xFFFF; CsmRegs.KEY2 = 0xFFFF; CsmRegs.KEY3 = 0xFFFF; CsmRegs.KEY4 = 0xFFFF; CsmRegs.KEY5 = 0xFFFF; CsmRegs.KEY6 = 0xFFFF; CsmRegs.KEY7 = 0xFFFF; EDIS;

/// 执行空读

temp = CsmPwl.PSWD0; temp = CsmPwl.PSWD1; temp = CsmPwl.PSWD2; temp = CsmPwl.PSWD3; temp = CsmPwl.PSWD4; temp = CsmPwl.PSWD5; temp = CsmPwl.PSWD6; temp = CsmPwl.PSWD7;

if (CsmRegs.CSMSCR.bit.SECURE == 0) return STATUS_SUCCESS; else

return STATUS_FAIL;

}

2.2程序主函数

#include \#include \

/****************端口宏定义*****************/

/****************常量宏定义*****************/

15

广西科技大学课程设计说明书 DSP技术及其应用

/***************全局变量定义****************/

/****************函数声明*******************/ void Init_LED(void);

/*------------------------------------------*/

/*形式参数:void */ /*返回值:void

*/ /*函数描述:主函数

*/

/*------------------------------------------*/

void main(void) { unsigned int i,j,temp;

InitSysCtrl(); // 系统初始化子程序,在DSP28_sysctrl.c中 Init_LED(); temp=0x0001; while(1) {

GpioDataRegs.GPBCLEAR.all |=temp; for(i=0;i<10;i++)

for(jzs=0;j<60000;j++); GpioDataRegs.GPBSET.all |=temp; temp<<=1; if(temp==0x0100) temp=0x0001;

}

}

/*------------------------------------------*/

/*形式参数:void */ /*返回值:void

*/

/*函数描述:初始化LED端口为输出 */ /*------------------------------------------*/ void Init_LED(void) {

16

广西科技大学课程设计说明书 DSP技术及其应用

}

EALLOW;

GpioMuxRegs.GPBDIR.all |=0x00FF; EDIS;

7.实验总结

通过调试以上程序运行无误,完成了流水灯要求,使用dsp芯片设计流水灯;使用数码管显示;利用程序延时,接口转换实现流水灯。

通过本次课程设计实现了用DSP芯片设计流水灯 , 学习到了很多关于DSP 的基础知识。并且更加深刻的巩固了课堂上所学的课本知识,DSP技术有了更进一步的认识和了解。掌握了DSP的基本实验方法,提高了工程设计和组织实验能力。具备了初步基本程序的分析和设计能力,并掌握其应用方法,自行拟定实验步骤检查和排除故障、分析和处理实验结果及撰写报告的能力。提高实验技能。

8.参考文献

刘和平《DSP原理及电机控制应用》北京航空航天大学出版社2006年 顾卫钢《手把手教你学DSP》北京航空航天大学出版社2011年 戴明帧 周建江《TMS320C2407X DSP结构、原理及应用》(第二版) 北京航空航天大学出版社 2007

17

本文来源:https://www.bwwdw.com/article/ed4d.html

Top