基于DSP的时钟系统设计通信082周嘉京Word文档格式.docx
《基于DSP的时钟系统设计通信082周嘉京Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于DSP的时钟系统设计通信082周嘉京Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
指导教师(签字):
年月日
分院院长(签字):
目录
摘要………………………………………………………………………………………………………I
绪论1
第一章方案论证与比较3
1.1数字时钟方案3
1.2数码管显示方案3
第二章硬件设计4
2.1总体设计4
2.2模块设计4
2.2.1位选芯片74HC1384
2.2.2驱动芯片74HC2735
2.2.3数码管显示6
2.2.4控制部分6
2.3系统总原理图9
第三章软件设计10
3.1程序流程图10
3.2程序清单10
3.3程序调试步骤14
致谢17
参考文献18
摘要
DSP芯片既具有高速数字信号处理功能又具有实时性强、功耗低、集成度高等嵌入式微计算机的特点,所以随着科技的发展,DSP技术在机电控制领域的应用愈加广泛。
LED数码管显示清晰美观、功耗低,现在已成为电子产品中应用最广泛的显示方式。
本次课程设计就是通过对DSP芯片和数码管的分析研究,利用DSPC55x构建一个时间显示系统,采用数码管显示时间,用按键调整时间。
该时钟系统包括计时、时钟输出、按键输入三个设计部分。
并给出了各部分汇编程序。
关键字:
DSP芯片;
数码管;
按键;
汇编程序
ABSTRACT
英文摘要
KEYWORDS:
Dspchipwithhighspeeddigitalsignalprocessingfunctionandstrongrealtime,lowpowerconsumption,highintegrationembeddedmicrocomputer'
scharacter,sowiththedevelopmentofscienceandtechnology,DSPtechnologyinmechanicalandelectricalcontrolfieldisappliedmoreandmorewidely.LEDdigitaltubedisplayclearappearance,lowpowerconsumption,hasnowbecomethemostwidelyusedelectronicproductsdisplay.ThecurriculumdesignisbasedontheDSPchipanddigitaltubeanalysis,usingDSPC55xtobuildatimedisplaysystem,theuseofdigitaltubedisplaytime,adjustthetimebutton.Theclocksystemincludestiming,clockoutput,akeyinputpartthreedesign.Andthepartofthecompilationprocess.
Keyword:
DSPchip;
digitaltube;
buttons;
assembler
绪论
近年来数字化已成为现代信息技术的重要标志,数字相机、数字电视、是自收音机、数字电话、数字学习机、数字游戏机已经逐渐进入人们日常生活和工作中。
在我国数字电话已拥有数亿用户,MP3成为上亿青年学生的宠儿,数字电视已开始进入千家万户,这些产品均采用DSP对信号进行处理。
随着DSP技术的迅速发展,其不仅使信号处理能力更加完善,而且使系统开发更加方便、程序编辑调试更加灵活,功耗也进一步降低,成本不断下降。
尤其是将各种通用外设集成到芯片上,从而大大提高了数字信号处理能力。
DSP芯片不仅在通信、计算机领域得到广发应用,而且也逐渐渗透到人们的日常消费领域中。
这就迫切要求理工科大学生熟悉和掌握DSP芯片功能及其在实际中的应用方法,除通过实验教学培养DSP的基本实验方法、分析问题和故障检查方法以及双踪示波器等常用仪器使用方法等基本电路的基本实验技能外,还必须培养大学生工程设计和组织实验能力。
本次课程设计的目的在于培养学生对基本DSP芯片功能的应用和掌握,使学生在试验原理的指导下,初步具备基本程序的分析和设计能力,并掌握其应用方法:
自行拟定实验步骤检查和排除故障、分析和处理实验结果及撰写报告的能力。
综合实验的实际目的是培养学生初步掌握小型DSP系统的设计能力,提高实验技能的实践。
数字电子钟是一种计时装置,它具有时、分、秒计时功能和显示时间功能;
能够通过按键调整时间。
本次设计我查阅了大量的文献资料,学习到了很过关于DSP定时器和中断的知识,并且更加巩固和掌握了课堂上所学的课本知识,是自己对DSP技术有了更进一步的认识和了解。
DSP系统及CCS软件简介
CCS(CodeComposerStudio)代码调试器是一种合成开发环境。
它是一种针对标准TMS320调试器接口的交互式方法。
CCS目前有CCS1.1,CCS1.2和CCS2.0等三个不同时期的版本,又有CC2000(针对C2XX),CCS5000(针对C54XX)和CCS6000(针对C6X)三个不同的型号。
我们所使用的是CCS50002.0的版本。
CCS5000具有以下特性:
TI编译器的完全集成的环境:
CCS5000目标管理系统,内建编辑器,所有的调试和分析能力集成在一个Windows环境中。
对C和DSP汇编文件的目标管理:
目标编辑器保持对所有文件及相关内容的跟踪。
它只对最近一次编译中改变过的文件重新编译,以节省编译时间。
高集成的编辑器调整C和DSP汇编代码:
CCS5000的内建编辑器支持C和汇编文件的动态语法加亮显示。
使用户能很容易地阅读代码和当场发现语法错误。
编辑和调试时的后台编辑:
用户在使用编译器和汇编器时没有必要退出系统到DOS环境中,因为CCS5000会自动将这些工具装载在它的环境中。
在其窗口中,错误会加亮显示只要双击错误就可以直接到达出错处。
在含有浮点并行调试管理器(PDM)的原有的MS窗口下支持多处理器CCS5000在Windows95和Windows-me中支持多处理。
PDM允许将命令传播给所有的或所选择的处理器。
在任何算法点观察信号的图形窗口探针:
图形显示窗口使用户能够观察时域或频域内的信号。
对于频域图,FFT在主机内执行,这样就可以观察所感兴趣的部分而无须改变它的DSP代码。
图显示也可以同探针连接,当前显示窗口被更新时,探针被指定,这样当代码执行到达该点时,就可以迅速地观察到信号。
文件探针在算法处通过文件提取或加入信号或数据:
CCS5000允许用户从PC机读或写信号流。
而不是实时的读信号,这就可以用已知的例子来仿真算法。
图形分析:
CCS5000的图形分析能力在其环境中是集成的。
在后台(系统命令)执行用户的DOS程序:
用户可以执行CCS5000中的DOS程序,并将其输出以流水方式送到CCS5000的输出窗口。
且允许用户将应用程序集成到CCS5000。
技术状态观察窗口:
CCS5000的可视窗口允许用户进入C表达式及相关变量。
结构、数组、指针都能很简单地递归扩展和减少,以便进入复杂结构。
代数分解窗口:
允许用户选择查看写成代数表达式的C格式,提高可读性。
目标DSP上的帮助:
DSP结构和寄存器上的在线帮助可以使用户不必查看技术手册。
用户扩展:
扩展语言(GEL)使得用户可以将自己的菜单项加到CCS5000的菜单栏中。
第一章方案论证与比较
1.1数字时钟方案
数字时钟是本设计的最主要的部分。
根据需要,可利用两种方案实现。
方案一:
本方案采用Dallas公司的专用时钟芯片DS12887A。
该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。
为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。
当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。
而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。
方案二:
本方案完全用软件实现数字时钟。
原理为:
在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。
利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;
若秒值达到60,则将其清零,并将相应的分字节值加1;
若分值达到60,则清零分字节,并将时字节值加1;
若时值达到24,则将十字节清零。
该方案具有硬件电路简单的特点。
而且,由于是软件实现,当DSP芯片不上电,程序不执行时,时钟将不工作。
基于硬件电路的考虑,本设计采用方案二完成数字时钟的功能。
1.2数码管显示方案
静态显示。
所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。
该方式每一位都需要一个8位输出口控制。
静态显示时较小的电流能获得较高的亮度,且字符不闪烁。
但当所显示的位数较多时,静态显示所需的I/O口太多,造成了资源的浪费。
动态显示。
所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。
利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。
显示器的亮度既与导通电流有关,也于点亮时间与间隔时间的比例有关。
调整参数可以实现较高稳定度的显示。
动态显示节省了I/O口,降低了能耗。
从节省I/O口和降低能耗出发,本设计采用方案二。
第二章硬件设计
2.1总体设计
利用TMS320LF2407芯片制作简易电子时钟,由六个LED数码管、五个按键、数码管驱动74HC273及数码管位选74HC138,如下图2.1所示:
图2.1系统框图
2.2模块设计
2.2.1位选芯片74HC138
74HC138是一款高速CMOS器件,74HC138引脚兼容低功耗肖特基TTL(LSTTL)系列。
74HC138可充当一个8输出多路分配器,未使用的使能输入端必须保持绑定在各自合适的高有效或低有效状态。
74HC138与74HC238逻辑功能一致,只不过74HC138为反相输出。
74HC138译码器可接受3位二进制加权地址输入(A,B和C),并当使能时,提供8个互斥的低有效输出(Y0至Y7)。
74HC138特有3个使能输入端:
两个低有效(-S2和-S3)和一个高有效(S1)。
除非S2和S3置低且S1置高,否则74HC138将保持所有输出为高。
利用这种复合使能特性,仅需1片74HC138芯片即可轻松实现6个数码管的选择导通。
如图2.2所示:
图2.274HC138译码器
2.2.2驱动芯片74HC273
74HC273是一款高速CMOS器件,74HC273引脚兼容低功耗肖特基TTL(LSTTL)系列。
74HC273具有八路边沿触发,D型触发器,带独立的D输入和Q输出。
74HC273的公共时钟(CLK)和主复位(-CLR)端可同时读取和复位(清零)所有触发器。
每个D输入的状态将在时钟脉冲上升沿之前的一段就绪时间内被传输到触发器对应的输出(Qn)上。
一旦CLR输入电平为低,则所有输出将被强制置为低,而不依赖于时钟或者数据输入。
74HC273适用于要求原码输出或者所有存储元件共用时钟和主复位的应用,如下图2.3所示:
图2.374HC273
2.2.3数码管显示
下图为共阴极数码管的引脚图,每位的段码线(a,b,c,d,e,f,g,dp)分别与1个8位的锁存器输出相连,由DSP控制器控制组合0-9十个数据,如令其显示1则b,c引脚(即2,3引脚)送高电平,此时数码管显示1。
由于各位的段码线并联,8位I/O口输出段码对各个显示位来说都是相同的,如下图2.4所示:
图2.4LED数码管
2.2.4控制部分
TMS320LF2407A是TI公司推出的一款定点DSP控制器,它采用了高性能静态CMOS技术,使得供电电压降为3.3V,减小了控制器的功耗;
40MIPS的执行速度使得指令周期缩短到25ns(40MHz),从而提高了控制器的实时控制能力;
集成了32K字的闪存(可加密)、2.5K的RAM、500ns转换时间的A/D转换器,片上事件管理器提供了可以满足各种电机的PWM接口和I/O功能,此外还提供了适用于工业控制领域的一些特殊功能,如看门狗电路、SPI、SCI和CAN控制器等,从而使它可广泛应用于工业控制领域。
图2.5DSP2407最小系统图
如上图2.5所示,DSP2407最小系统包括6部分:
DSP2407(TMS320LF2407A)、电源、晶体振荡器接口电路、JTAG接口电路、XF引脚LED指示灯和I/O口LED指示灯。
本最小系统选择了TI公司的TPS767D301作为DC/DC转换芯片。
它是一个双路低压降的电压调节器,输入为+5V电压,可输出一路+3.3V固定电压及一路1.5~5V可调电压,每路电流最大输出为1A。
电源电路原理图如下图所示。
+3.3V输出电压供LF2407A使用,另一路可输出+1.8V,本最小系统暂不用,如下图2.6所示:
图2.6DSP2407最小系统电源电路原理图
PLL滤波电路。
在DSP内部,有一个锁相环时钟模块PLL(Phase-Lockloops),它是被作为一个片内未设看待的,接在片内外设总线上,为DSP提供所需的各种时钟信号。
DSP2407的锁相环时钟电路需要片外滤波器电路的配合,PLL局部电路图如下图2.7所示。
DSP2407A最小系统时钟硬件设计有两种工作方法。
一种是利用锁相环时钟模块PLL中提供的内部振荡电路,在DSP芯片的引脚XTAL1/CLKIN与XTAL2之间连接一晶振,启动内部振荡器。
另一种方法是不使用片内的振荡电路,完全由外部有源晶体振荡器产生时钟信号,直接接入XTAL1/CLKIN引脚,此时,XTAL2脚悬空。
这种方法称为晶振方式。
但着一方式仍是用片内的PLL倍频电路来对这一来自片外的时钟进行倍频,以产生所需的时钟。
图2.7锁相环电路PLL片外滤波电路
JTAG标准接口。
JTAG(JointTestActionGroup)是1985年指定的检测PCB和IC芯片的一个标准。
仿真器一般提供DSP的JATG时钟信号,只参与数据的传输,即将目标代码通过JATG接口从PC机下载到目标系统的存储器中。
仿真器JTAG的仿真头如下图2.8及JTAG仿真信号表2.1所示:
图2.8仿真器JTAG的仿真头
表2.1JTAG仿真信号
JTAG信号
信号说明
仿真器输入/输出状态
DSP输入/输出状态
EMU0
仿真引脚0
输入
输入/输出
EMU1
仿真引脚1
PD(Vcc)
目标板存在检测信号。
该引脚用于指示仿真器是否与目标板接上,以及目标板是否已经上电。
DSP的PD引脚必须与目标板的电源Vcc相连。
输出
TCK
测试时钟。
由仿真器提供的10.368MHz的时钟信号。
TCK_RET
测试时钟返回。
对仿真器而言,是输入信号
TDI
测试数据输入(针对DSP)
TDO
测试数据输出(针对DSP)
TMS
测试方式选择
-TRST
测试复位
2.3系统总原理图
图2.9总体硬件电路图
第三章软件设计
3.1程序流程图
图3.1电子时钟程序流程图
3.2程序清单
程序编写如下:
#include"
F2407REGS_c.h"
unsignedintsec,min,hour,i;
unsignedchartable[]={0xFF3F,0xFF06,0xFF5B,0xFF4F,0xFF66,0xFF6D,0xFF7D,
0xFF07,0xFF7F,0xFF6F};
//程序初始化
unsignedchartablewe[]={0xFF00,0xFF01,0xFF02,0xFF03,0xFF04,0xFF05,0xFF06};
voiddelay(unsignedintj);
voidmain()//主程序
{
DSP2407_Initialing();
Ioport_Initialing();
asm("
CLRCINTM"
);
EVAIMRA=EVAIMRA|0x0080;
//仅允许定时器1的周期中断
EVAIMRA=EVAIMRA&
0x0080;
//清除定时器1的周期中断
T1CON=0x170C;
//timer1为连续增计数模式,预分频值为128,使用内部时钟
T1PER=0xF424;
//timer1的周期寄存器值设为200ms
T1CNT=0x00;
//timer1的计数器清0
sec=0;
min=0;
hour=0;
i=0;
While
(1)
{
PCDATDIR=0x00FF;
if(i==5)//i等于5为1秒
{
i=0;
sec++;
//秒加1
PBDATDIR=tablewe[0];
//选通秒的个位
PFDATDIR=0xFF01;
//选通74HC273
PADATDIR=tabale[sec%10];
//秒个位显示
PFDATDIE=0xFF00;
//关断74HC273
PBDATDIR=table[1];
//选通秒的十位
PFDATDIR=0xFF01;
PADATDIR=table[sec/10];
//秒十位显示
PFDATDIR=0xFF00;
}
if(sec==60)
min++;
//分钟的显示
PBDATDIR=table[2];
PADATRDIR=table[min%10];
PFADATDIR=0xFF00;
PBDATDIR=tablewe[3];
PFDATDIR=0xff01;
PADATDIR=table[min/10];
PFDATAIR=0xFF00;
if(min==60)
min=0;
hour++;
//小时的显示
PBDATDIR=tablewe[4];
PADATDIR=table[hour%10];
PFDATDIR=0xFF00;
PBDATDIR=tablewe[5];
PADATDIR=table[hour/10];
if(hour==24)
hour=0;
if(PCDATDIR=0x00FE)//按键T1,时、分、秒复位为0
{
delay(100);
//调用延时程序
PCDATDIR=0x00FE;
sec=0;
if(PCDATDIR=0x00FD)//按键T2,时钟停止计时
PCDATDIR=0x00FD;
if(PCDATDIR=0x00FB)//按键T3,时钟开始计时
delay(100);
PCDATDIR=0x00FB;
}
if(PCDATDIR=0x00F7)//按键Tm,调分
PCDATDIR=0x00F7;
min++;
if(PCDATDIR=0x00EF)//按键Th,调时
PCDATDIR=0x00EF;
hour++;
}
voidinterruptINT2()//定时器中断程序
swith(PIVR)//有外设中断向量寄存器PIVR判断
case0x0027:
i++;
EVAIFRA=EVAIFRA&
break;
default;
}
voiddelay(unsignedintj)//延时程序
unsignedk,m;
for(m=0;
m<
j;
j++)
for(k=0;
k<
50;
k++)
3.3程序调试步骤
1.实验准备
(1)连接设备:
关闭计算机和实验箱电源;
关闭实验箱上的三个开关。
(2)开启设备:
打开计算机电源;
打开实验箱电源开关,打开ICETEK-LF2407-A板上电源开关。
如使用USB型仿真器用附带的USB电缆连接计算机和仿真器相应接口,注意仿真器上两个指示灯均亮。
设置CodeComposerStudio为Emulator方式。
2.启动CodeComposerStudio:
启动CodeComposerStudio3.3。
(1)点击菜单项Debug\Connect确认CCS软件和仿真器连接在一起。
(2)创建新工程。
选择Project->
New。
(3)在ProjectName框里输入工程名:
LED。
点击Finish,CCS创建一个叫做LED.prj的工程文件。
(4)选择Project->
AddfilestoProject,把文件加到工程里。
你也可以在左边的工程视图窗口里右击工程,选择AddfilestoProject。
(5)从你所创建的文件夹里添加main.c,DoLoop.c,和lnk.c(映射内存的连接命令文件)。
3.编译工程:
单击“Project”菜单,“Rebuildall”项,编译工程中的文件,生成Timer.out
文件。
4.下载程序:
单击“File”菜单,“Lo