利用GPIO扩展LED灯动态显示.docx
《利用GPIO扩展LED灯动态显示.docx》由会员分享,可在线阅读,更多相关《利用GPIO扩展LED灯动态显示.docx(12页珍藏版)》请在冰豆网上搜索。
![利用GPIO扩展LED灯动态显示.docx](https://file1.bdocx.com/fileroot1/2023-2/6/ff76ce06-aeec-4c36-af02-9c8d618cd536/ff76ce06-aeec-4c36-af02-9c8d618cd5361.gif)
利用GPIO扩展LED灯动态显示
DSP课程设计
学院:
专业:
成员:
指导老师:
时间:
2015.3.9~2015.3.12
利用GPIO扩展LED灯动态显示
概述
数字信号处理(DigitalSignalProcessing,简称DSP)是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。
DSP微处理器不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,它的强大数据处理能力和高运行速度,是最值得称道的两大特色。
德州仪器、Freescale等半导体厂商在这一领域拥有很强的实力。
DSP芯片具有采用哈佛结构、多总线结构、流水线技术、配有专用的硬件乘法-累加器、具有特殊的DSP指令、快速的指令周期、硬件配置强、支持多处理器结构、省电管理和低功耗等特点。
DSP有很多优点,如:
对元件值的容限不敏感,受温度、环境等外部因素影响小;容易实现集成;VLSI可以分时复用,共享处理器;方便调整处理器的系数实现自适应滤波;可实现模拟处理不能实现的功能:
线性相位、多抽样率处理、级联、易于存储等;可用于频率非常低的信号等。
当然,DSP像其他任何器件一样,也具有一定的缺点,如:
需要模数转换;受采样频率的限制,处理频率范围有限;数字系统由耗电的有源器件构成,没有无源设备可靠等。
不过其缺点相对于优点是微不足道的。
目前,DSP技术已经应用于信号处理、语音处理、图形/图像、军事、仪器仪表、自动控制、医疗及家用电器等各领域。
由TI公司提供专业的开发工具CCS,自带DSP/BIOS操作系统,能够直接编写适合DSP开发工程及文件,满足DSP程序设计要求。
此次设计中,通过对TMS320CF2812的控制以及对其引脚GPIO功能的设计,在实验板上实现4位LED显示流水灯。
首先对TMS320C2000系列DSP的I/O口作为通用I/O的原理进行了解,并熟悉通用I/O的编程方法,了解LED动态显示的基本原理和实现方法,最终通过CCS集成开发环境编程完成设计。
1.DSP的特点
(1)在一个指令周期内可完成一次乘法和一次加法;
(2)程序和数据空间分开,可以同时访问指令和数据;
(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;
(4)具有低开销或无开销循环及跳转的硬件支持;
(5)快速的中断处理和硬件I/O支持;
(6)具有在单周期内操作的多个硬件地址产生器;
(7)可以并行执行多个操作;
(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。
当然,与通用微处理器相比,DSP微处理器(芯片)的其他通用功能相对较弱些。
a.DSP优点:
(1)对元件值的容限不敏感,受温度、环境等外部参与影响小;
(2)容易实现集成;VLSI可以分时复用,共享处理器;
(3)方便调整处理器的系数实现自适应滤波;
(4)可实现模拟处理不能实现的功能:
线性相位、多抽样率处理、级联、易于存储等;
(5)可用于频率非常低的信号。
b.DSP缺点:
(1)需要模数转换;
(2)受采样频率的限制,处理频率范围有限;
(3)数字系统由耗电的有源器件构成,没有无源设备可靠。
2.DSP的应用
(1)语音处理:
语音编码、语音合成、语音识别、语音增强、语音邮件、语音储存等。
(2)图像/图形:
二维和三维图形处理、图像压缩与传输、图像识别、动画、机器人视觉、多媒体、电子地图、图像增强等。
军事、保密通信、雷达处理、声呐处理、导航、全球定位、跳频电台、搜索和反搜索等。
(3)仪器仪表:
频谱分析、函数发生、数据采集、地震处理等。
(4)自动控制:
控制、深空作业、自动驾驶、机器人控制、磁盘控制等。
(5)医疗:
助听、超声设备、诊断工具、病人监护、心电图等。
(6)家用电器:
数字音响、数字电视、可视电话、音乐合成、音调控制、玩具与游戏等。
(7)生物医学信号处理举例:
CT:
计算机X射线断层摄影装置。
(其中发明头颅CT英国EMI公司的豪斯
菲尔德获诺贝尔奖。
)
CAT:
计算机X射线空间重建装置。
出现全身扫描,心脏活动立体图形,脑
肿瘤异物,人体躯干图像重建。
一、设计任务和设备
1.1设计技术指标要求
利用DSP的CPU硬件资源
使用GPIO引脚
外接直流5V的LED灯
1.2设计内容
设计说明书
电路原理图
各设计模块单元原理
实验结果动态显示说明
1.3设计所需设备
PC机
TDS2812EVMA板
CCStudio3.1软件
电源
TDS510USB仿真器
WindowsXP台式电脑一台
USB电缆
AltiumDesigner软件包一套
1.4设计说明
TDS510USB仿真器:
适用于工作电压在1.0到5.0伏之间的TM320系列数字信号处理器。
仿真器为USB2.0接口设备,支持即插即用及热插拔,支持WINDOWS98/2000/XP。
TDS2812EVMA:
基于TI公司的32位定点TM320F2812DSP针对自动控制而开发的应用模块,其目的是能为上述领域开发者提供一个快捷,成熟的,高性能的硬件,软件解决方案。
二、硬件设计
设计中使用F2812的GPIO口与LED灯连接。
LED灯在DSP系统中常用作信号灯使用,提示系统当前的某些状态。
LED灯的控制需在阳极与阴极提供一个1.7V的正向电压,并使流经LED的电流为5~10mA,即可以较理想的点亮LED灯。
通过程序控制,设置GPIOA引脚为输出方式。
使GPIOA引脚输出为低电时,电源与GPIOA引脚间有电压差,从而点亮LED灯;使GPIO引脚输出为高电平时,电源与GPIO引脚间电压差为0,则LED灯不亮。
系统硬件设计总框图如图所示:
图2.1硬件设计总体框图
2.1F2812模块介绍
TMS320F28x系列DSP是32位的定点数字信号处理器,是目前国际市场上最先进、功能最强大的定点DSP芯片。
它继承了数字信号处理的诸多优点,例如可调整的哈佛总线结构和循环寻址方式。
同时TMS320F28x系列DSP使用精简指令集(RISC),从而使CPU能够周期地执行寄存器到寄存器的操作。
TMS320F28x系列DSP既具有数字信号处理能力,又具有强大的事件管理能力和嵌入式控制功能,特别适用于有大批量数字处理的测控场合。
图2.2F2812最小系统原理图
2.2TDS2812EVMV板介绍
TDS2812EVMV板包含内容
模板包含了一些易受EDS损坏的敏感元件,人体上积累电荷的放电都可能带来器件的损坏。
因此在接触硬件前请使用防静电的措施先释放掉人体的静电。
本模板包含了如下内容
●硬件模板一块
●测试软件程序
TDS2812EVMV板包含的内容,如下图:
图2.3TDS2812EVMV板原理图
2.3F2812GPIO
TMS320F2812DSP有多达56个通用数字量输入输出端口(GPIO),其中绝大部分是通用I/O和专用功能复用引脚。
数字量I/O端口模块采用一种灵活配置的方法控制服用引脚功能,GPIOMUX寄存器用来选择F2812的引脚操作模式,可以通过该寄存器独立设置每个引脚的功能。
如果选择数字量I/O模式,可以通过GPxDIR寄存器配置数字量I/O的方向,并通过GPxQUAL进一步消除数字量I/O引脚的噪声信号。
此外,处理器提供GPxSET和GPxCLEAR寄存器对数字量进行置位和清零,还可以通过GPxDAT寄存器独立读/写I/O信号。
2.4用DSP的GPIO口扩展LED灯的动态显示硬件设计
LED灯的控制需在阳极与阴极提供一个1.7V的正向电压,并使流经LED的电流为5~10mA,即可以较理想的点亮LED灯。
设计的硬件电路图如下:
图2.4设计的硬件电路图
三、软件设计
3.1软件系统分析
软件的设计主要是通过利用C语言的编程来实现LED灯动态显示的控制,程序的设计包括初始化DSP时钟、系统初始化、选通发光二极管、按顺序点亮发光二极管,其中编制延时子程序,在各LED灯的点亮中间加入适当的延时。
3.2程序流程图
通过程序控制,设置GPIOA引脚为输出方式。
使GPIOA引脚输出为低电平时,电源与GPIOA引脚间有电压差,从而点亮LED灯;使GPIO引脚输出为高电平时,电源与GPIO引脚间电压差为0,则LED灯不亮。
通过软件延时来调整发光二极管的延时间隔。
图3.1程序流程图
四、心得体会
通过这次课程设计,我对课本上的知识有了更加深入的了解,通过实践操作使我加深了对理论知识的理解。
在此次课程设计中,我收获了喜悦也遭受过挫折。
尤其是在硬件设计上,由于一心想有仿真结果,所以开始的时候有些浮躁,尤其是电路不按预期目标运行时感觉稍稍受挫,但我继续努力,一次次做下去,但当经过各种努力后,还是无法使其运行于可控范围内,受挫感的确很强,不过当稍有进展,或者运行结果正确的情况下,心中也是非常高兴的。
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
此次课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在这些日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
这次课程设计终于顺利完成了,在设计中遇到了很多问,但被我们一一解决。
看着自己这些天的辛苦有了回报,感觉很踏实。
以后会更加努力!
参考文献
[1]王忠勇陈恩庆著.《DSP原理与应用技术》.电子工业出版社.2011年
[2]TS-2812A实验箱实验指导书
程序清单
#include"DSP281x_Device.h"//DSP281xHeaderfileIncludeFile
#include"DSP281x_Examples.h"//DSP281xExamplesIncludeFile
#include"f2812a.h"
//定义指示灯寄存器地址和寄存器类型
#defineLBDS(*((unsignedint*)0xc0000))
//子程序接口
voidDelay(unsignedintnDelay);//延时子程序
main()
{
unsignedintuLED[4]={1,2,4,8};//控制字,逐位置1:
0001B0010B0100B1000B
//逐位点亮,
//unsignedintuLED[4]={0xc,9,3,6};//控制字,逐位置1:
1100B1001B0011B0110B
//两个LED顺序点亮
//unsignedintuLED[4]={7,0xe,0xd,0xb};//控制字,逐位置1:
0111B1110B1101B1011B
//三个LED顺序点亮
inti;
InitSysCtrl();//初始化DSP运行时钟
while
(1)
{
for(i=0;i<4;i++)
{
LBDS=uLED[i];//正向顺序送控制字
Delay(256);//延时
}
for(i=3;i>=0;i--)
{
LBDS=uLED[i];//反向顺序送控制字
Delay(256);//延时
}
}
}
voidDelay(unsignedintnDelay)
{
intii,jj,kk=0;
for(ii=0;ii{
for(jj=0;jj<512;jj++)
{
kk++;
}
}
}