DSP课程设计杨路Word格式.docx
- 文档编号:8658128
- 上传时间:2023-05-12
- 格式:DOCX
- 页数:20
- 大小:166.24KB
DSP课程设计杨路Word格式.docx
《DSP课程设计杨路Word格式.docx》由会员分享,可在线阅读,更多相关《DSP课程设计杨路Word格式.docx(20页珍藏版)》请在冰点文库上搜索。
课程设计五、基于DSP系统计时器系统的嵌入式设计
共5个课题选择,学生任选一个课题为自己的课程设计题目,独立完成;
具体内容按方向分别进行,不能有雷同;
任务包括原理介绍、系统仿真、波形分析等;
要求按学校统一的课程设计规范撰写一份设计说明书。
三、课程设计时间
课程设计总时间2周(10个工作日)
四、课程设计说明书撰写规范
1、在完成任务书中所要求的课程设计作品和成果外,要撰写课程设计说明书1份(不少于20000字)。
课程设计说明书须每人一份,独立完成。
2、设计说明书应包括封面、任务书、目录、摘要、正文、参考文献(资料)等内容,以及附图或附件等材料。
正文包括硬件设计的原理框图和原理图、软件设计的程序流程图和具体程序以及实现算法,系统设计应该解决的关键问题、结束语或总结等。
3、题目字体用小三,黑体,正文字体用五号字,宋体,小标题用四号及小四,宋体,并用A4纸打印。
目录
1、摘要………………………………………………………………………………Ⅰ
2、概述………………………………………………………………………………Ⅵ
3、DSP系统简介………………………………………………………………………1
4、设计原理与分析……………………………………………………………………2
5、硬件设计……………………………………………………………………………3
5.1、总体设计……………………………………………………………………3
5,2、模块设计……………………………………………………………………4
5.3、系统总原理图………………………………………………………………11
6、软件设计…………………………………………………………………………12
6.1、TMS320F206的结构特点…………………………………………………12
6.2、定点DSP的定时器…………………………………………………………13
6.3、定点DSP准确计算时间……………………………………………………14
6.4、计时器计时程序……………………………………………………………15
6.5、计时器输出程序……………………………………………………………19
6.6、按键输入程序………………………………………………………………20
7、设计心得…………………………………………………………………………22
8、参考文献…………………………………………………………………………23
1、摘要
随着科学技术的飞速发展,人们要求高可靠性的通信传输系统,数字调制在通信系统中起着非常重要的作用。
通过两周的时间,完成了这次的通信系统课程设计。
利用SystemView软件模块化和交互式的界面、强有力的动态系统分析工具完成了复杂的系统建模、设计和测试。
主要研究了2ASK及2PSK和2DPSK信号的性质。
简单的介绍了它们调制解调的原理、对它们进行SystemView建模、参数设置及频谱分析得出结论。
通过这次设计,不仅提高了同学们的学习气氛,同时也提高了教学质量。
培养了同学们的自学能力。
关键字:
2ASK、2PSK、2DPSK、调制、解调、SystemView、模拟仿真
1,abstract
Withtherapiddevelopmentofscienceandtechnology,peopledemandhighreliabilityofcommunicationsystem,digitalmodulationincommunicationsystemplaysaveryimportantrole.
Bytwoweeks,tocompletethecoursedesignforcommunicationsystem.TheuseofSystemViewsoftwaremodularityandinteractiveinterface,strongdynamicsystemanalysistoolsofcomplexsystemmodeling,designandtesting.Mainlystudies2ASKand2PSKand2DPSKsignalproperties.Simpleintroductiontotheirmodulationanddemodulationprinciple,forthemtobeSystemViewmodeling,parametersettingandspectrumanalysisconclusion.Throughthisdesign,notonlyimprovethestudentslearningatmosphere,andalsoimprovethequalityofteaching.Cultivatingstudentsself-learningability.
Keywords:
2ASK,2PSK,2DPSK,modulation,demodulation,SystemView,simulation
2、概述
嵌入式实时操作系统C/OS-II简介
1.学习μC/OSII,除了需要C语言之外还需要什么基础知识?
目前,大多数操作系统都用C语言编写,所以在一定程度上掌握C语言是学习μC/OSII的必要基础。
但要注意,因为操作系统毕竟是底层软件,所以还需要读者具有一定的汇编语言及一些数据结构的基础知识。
当然,读者具有一定操作系统理论基础就更好。
另外,从第1版读者的来信中看到,虽然有很多人具有一定的C语言基础,乃至一定的程序设计能力,但由于他们所设计的程序都比较小,尚未构成一个工程,所以都比较欠缺有关工程文件管理的相关知识(这可能是大多数在校学生的一个普遍问题)。
为了方便读者的学习,第2版特别增加了一章(第2章)内容来介绍工程文件管理中经常要使用的工具make.exe和makefile文件的相关知识。
2.能否介绍一些学习嵌入式操作系统的方法?
其实,学习嵌入式操作系统与学习其他操作系统没有什么区别,因为它们都是具有相同功能的系统软件,只不过根据应用特点,嵌入式系统在要求和设计上有一些特点。
例如,嵌入式系统比较讲究效率,要有较强的可裁剪性;
对于实时系统来说,嵌入式系统还有一些与通用操作系统不同的算法,等等。
但从学习方法的角度来看,学习嵌入式操作系统并没有什么特别之处,大概也就是以下几点:
由于操作系统是一种管理软件,它与人们在生活中使用各种表格、证件(也是一种表格)对事物进行管理的方式没有什么不同,也要用到大量类似的管理用表。
操作系统中,这些管理用表就是一些数据结构(例如链表、队列、位图、结构、数组等),所以,学习操作系统的关键就是首先了解它的数据结构。
一旦了解了它们,那么对于系统也就有了总体的把握。
对于μC/OSII这种规模比较小且源码开放的系统来说,按照自己的想法对它进行修改,然后通过实验来学习是一种极其有效的方法。
特别是在有了μC/OSII基础后,在学习某些大型操作系统(如Linux)的过程中,按照这些大型系统的做法对μC/OSII做一些扩展,会使得学习效果更好。
3.μC/OSII、Linux、WindowsCE、VxWorks等都是嵌入式操作系统,难道都要学吗?
如果要学,那么应该学习哪一个?
这是读者问得最多、也最难回答的一个问题。
作者认为,如果读者的学习目的是要真正了解操作系统的内核及其工作原理,那么就学习源码开放的μC/OSII和Linux;
如果只是应用,那么就是工程项目要求用哪个操系统就学习哪个操作系统。
但作为学生,或者是想真正成为一个嵌入式系统设计者,那么必须学习μC/OSII和Linux。
4.据说现在人们都学习和使用Linux,那么学习μC/OSII有意义吗?
现在确实有很多嵌入式系统在使用Linux,之所以如此,其主要原因就在于它是源码开放的系统,加之它确实是一个很优秀的操作系统,所以真正研究嵌入式系统的人必须学习Linux。
但Linux相当庞大,对于没有一定基础的人来说,直接学习Linux会遇到很大的困难。
所以,先通过μC/OSII的学习来奠定一定的基础,再去学习Linux就会有事半功倍的效果。
5.μC/OSII版本变化很快,对于学习者来说,是否需要学习它的最新版本?
2、DSP系统简介
μc/osii是著名的、源码公开的实时内核,是专为嵌入式应用设计的,可用于各类8位、16位和32位单片机或dsp。
从μc/os算起,该内核已有10余年应用史,在诸多领域得到了广泛应用。
uC/OS是一种免费公开源代码、结构小巧、具有可剥夺实时内核的实时操作系统。
uC/OS—II的前身是uC/OS,最早出自于1990年美国嵌入式系统专家JEAN,J.Labrosse在《嵌入式系统编程》杂志的5月和6月刊上登的文章连载,并把uC/OS的源码发布在该杂志的BBS上。
uC/OS和uC/OS—II是专门为计算机的嵌入式应用设计的,绝大部分代码是用C语言编写的,CPU硬件相关部分是用汇编语言编写的,总量约束力00行的汇编语言部分被压缩到最低限度,为的是便于移植到任何一种其它的CPU上。
用户只要有标准的ANSI的C交叉编译器,有汇编器,连接器等软件工具,就可以将uC/OS—II嵌入到开发的产品中。
uC/OS—II具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至2KB。
uC/OS—II已经移植到了几乎所有知名的CPU上。
严格地说uC/OS—II只是一个实时操作系统内核,它仅仅包含了任务调度,任务管理,时间管理,内存管理和任务问的通信和同步基本功能。
没有提供输入出管理,文件系统,网络等额外的服务,但由于uC/OS—II良好的可扩展性和源码开放,这些非必须的功能完全可以由用户自己根据需要分别实现。
uC/OS—II目标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量,邮箱,消息队列,内存管理,中断管理等。
3、设计原理与分析
2.1、实验原理:
为了实现LED显示器的数字显示,可以采用静态显示法和动态显示法。
由于静态显示法需要数据锁存器等硬件,接口要复杂些,又考虑到时钟显示只有6位,且系统没有其他复杂的处理任务,所以决定采用动态扫描法实现LED的显示。
单片机采用易购的AT89S52系列,这种单片机具有足够的空余硬件资源,可以实现其他的扩充功能。
如果考虑使用电池供电,则可采用LV系列单片机。
时钟计时器电路系统的总体设计框图如下所示
stc89S52
P0
单片机
控制器
P2
6位LED显示器
4*4键盘
列驱动
蜂鸣器
4、硬件设计
1.1总体设计
利用TMS320LF2407芯片制作简易电子时钟,由六个LED数码管、五个按键、数码管驱动74HC273及数码管位选74HC138,如下图2.1所示:
图1.1系统框图
1.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所示:
图1.274HC138译码器
1.2.2驱动芯片74HC273
74HC273是一款高速CMOS器件,74HC273引脚兼容低功耗肖特基TTL(LSTTL)系列。
74HC273具有八路边沿触发,D型触发器,带独立的D输入和Q输出。
74HC273的公共时钟(CLK)和主复位(-CLR)端可同时读取和复位(清零)所有触发器。
每个D输入的状态将在时钟脉冲上升沿之前的一段就绪时间内被传输到触发器对应的输出(Qn)上。
一旦CLR输入电平为低,则所有输出将被强制置为低,而不依赖于时钟或者数据输入。
74HC273适用于要求原码输出或者所有存储元件共用时钟和主复位的应用,如下图2.3所示:
图1.374HC273
1.2.3数码管显示
下图为共阴极数码管的引脚图,每位的段码线(a,b,c,d,e,f,g,dp)分别与1个8位的锁存器输出相连,由DSP控制器控制组合0-9十个数据,如令其显示1则b,c引脚(即2,3引脚)送高电平,此时数码管显示1。
由于各位的段码线并联,8位I/O口输出段码对各个显示位来说都是相同的,如下图1.4所示:
图1.4LED数码管
1.2.4控制部分
TMS320LF2407A是TI公司推出的一款定点DSP控制器,它采用了高性能静态CMOS技术,使得供电电压降为3.3V,减小了控制器的功耗;
40MIPS的执行速度使得指令周期缩短到25ns(40MHz),从而提高了控制器的实时控制能力;
集成了32K字的闪存(可加密)、2.5K的RAM、500ns转换时间的A/D转换器,片上事件管理器提供了可以满足各种电机的PWM接口和I/O功能,此外还提供了适用于工业控制领域的一些特殊功能,如看门狗电路、SPI、SCI和CAN控制器等,从而使它可广泛应用于工业控制领域。
图1.5DSP2407最小系统图
如上图1.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所示:
图1.6DSP2407最小系统电源电路原理图
PLL滤波电路。
在DSP内部,有一个锁相环时钟模块PLL(Phase-Lockloops),它是被作为一个片内未设看待的,接在片内外设总线上,为DSP提供所需的各种时钟信号。
DSP2407的锁相环时钟电路需要片外滤波器电路的配合,PLL局部电路图如下图2.7所示。
DSP2407A最小系统时钟硬件设计有两种工作方法。
一种是利用锁相环时钟模块PLL中提供的内部振荡电路,在DSP芯片的引脚XTAL1/CLKIN与XTAL2之间连接一晶振,启动内部振荡器。
另一种方法是不使用片内的振荡电路,完全由外部有源晶体振荡器产生时钟信号,直接接入XTAL1/CLKIN引脚,此时,XTAL2脚悬空。
这种方法称为晶振方式。
但着一方式仍是用片内的PLL倍频电路来对这一来自片外的时钟进行倍频,以产生所需的时钟。
图1.7锁相环电路PLL片外滤波电路
JTAG标准接口。
JTAG(JointTestActionGroup)是1985年指定的检测PCB和IC芯片的一个标准。
仿真器一般提供DSP的JATG时钟信号,只参与数据的传输,即将目标代码通过JATG接口从PC机下载到目标系统的存储器中。
仿真器JTAG的仿真头如下图2.8及JTAG仿真信号表2.1所示:
图1.8仿真器JTAG的仿真头
表1.1JTAG仿真信号
JTAG信号
信号说明
仿真器输入/输出状态
DSP输入/输出状态
EMU0
仿真引脚0
输入
输入/输出
EMU1
仿真引脚1
PD(Vcc)
目标板存在检测信号。
该引脚用于指示仿真器是否与目标板接上,以及目标板是否已经上电。
DSP的PD引脚必须与目标板的电源Vcc相连。
输出
TCK
测试时钟。
由仿真器提供的10.368MHz的时钟信号。
TCK_RET
测试时钟返回。
对仿真器而言,是输入信号
TDI
测试数据输入(针对DSP)
TDO
测试数据输出(针对DSP)
TMS
测试方式选择
-TRST
测试复位
1.3系统总原理图
图1.9总体硬件电路图
5、软件设计
数字信号处理(DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。
20世纪60年代以来,随着计算机技术和信息技术的飞速发展,数字信号处理技术应运而生,并得到迅速的发展。
在过去的二十多年里,DSP已经在通信等领域得到极为广泛的应用,特别是在一些测量控制领域,应用更是越来越广泛。
本文拟采用定点DSP——TMS320F206来测量一些物理量,如测交流信号的频率?
相位,但这些物理量的测量都离不开信号时间的测量,所以采用定点DSP准确地测量时间直接关系到这些物理量测量是否精确,而且用定点DSP来准确定时并不是件容易的事。
1TMS320F206的结构特点
TMS320F206采用先进的哈佛结构,它不同于传统的冯·
诺依曼(VonNeuman)结构的并行体系结构,其主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址,独立访问。
此外还具有如下特点:
(1)32K×
16字的FLASHEEPROM大大降低了开发成本。
(2)采用100线TQFP的封装技术。
(3)64K字的程序存储空间?
64K字的数据存储空间和64K字的I/O空间通过三条并行总线(PBA?
DRAB?
DWAB)独立操作。
所以可以同时访问程序空间和数据空间;
在一个指定机器周期内,中央算术逻辑单元可执行多达三次的并行存储器操作。
(4)片上4.5K的RAM使得芯片可以实现快速的DSP计算,并使大部分运算能够在一个指令周期内完成。
(5)具有丰富的指令集和灵活的寻址方式。
(6)有四条流水线操作和九级中断,并且用户可以屏蔽大多数中断,且可通过软件方式灵活控制。
2定点DSP的定时器
2.1DSP定时器定时原理
计数器每次减到0时,就在下一CLKOUT1周期产生借位(Borrow),计数器就用各自相应的周期寄存器内容重新加载。
当TIM减到0时,或者在定时器控制寄存器(TCR)中重新加载位(TRB)写入1,则PRD(定时器周期寄存器)加载进TIM;
同样,若PSC(预分频计数器)减到0,或者在TRB写入1,则TDDR(定时器除数寄存器)的值加载进PSC。
当TIM减到0时,它便产生一个借位脉冲,持续时间等于CLKOUT1的周期(tc(c)),该脉冲发送到①外部定时器输出引脚(TOUT);
②作为定时器中断信号(TINT)。
定时器的功能框图如图1所示。
2.2DSP定时器的寄存器
4位的TDDR和4位的PSC包括在TCR中。
而TIM和PRD是16位寄存器。
可以通过读TCR、TIM、PRD得到该定时器和它的计数器的当前状态。
需要注意的是读TIM可获得定时器的当前值,读TCR可获得PSC的值。
由于读TIM和TCR需要两条指令,因而PSC在两次读之间可能有减操作,使读数不精确。
如果要求有精确的定时,可以在读此两值之前停止定时器(设置TCR的TSS位为1,就停止定时器;
清TSS为0,就重新启动定时器)。
定时器控制寄存器的格式如下:
3定点DSP准确计算时间
定时器时间的准确计算对高精度地测量一些物理量是非常重要的。
当需要定时器计算的时间比较长时,也就是即使向PRD中置FFFFh时,定时器计数还不够,这时就需要利用定时器自身的中断,即TOUT每产生一个脉冲就进入定时器中断服务子程序,利用进入的次数来达到计时的目的。
如果假设定时器的周期为0.001s(即PRD=1999,TDDR=9),在定时器中断服务子程序中设一个计数器,每进入一次加一个1,再把定时器周期乘以计数器计数就得出定时器的时间。
但这种计算是粗糙的,不精确,达不到高精度要求。
为此需要补充两点:
(1)当停止定时器时,定时器计数寄存器还有剩余值,必须计算这部分的时间。
方法是先停止定时器,再读TIM的值,然后读TCR的值,通过运算获取PSC的值。
再按公式
(1)计算定时器在最后一次所开销的时间。
定时器最后一次开销时间为:
式中,20M为本文采用的晶振频率。
(2)进入定时器中断服务子程序,程序执行本身要花费一定的时间;
而进入中断服务子程序时,定时器就自动停止,那么所计算的时间自然就少了。
TMS320F206每个指令周期的执行时间是50ns,通过计算中断服务子程序的指令周期数和进入中断的次数可以计算出这部分的时间。
把这三部分时间加起来就得到准确的定时器时间,有了准确的时间,物理量的测量自然就准,精度就高。
结果表明,通过这样准确计时,使得频率和相位的测量精度在万分之二以内。
如果测量的是一个标准的50Hz频率,那么测量结果的范围在50~50.001Hz。
5.1、计时器计时程序
.title"
shizhong.asm"
.mmregs
.def_c_int00;
程序入口
.def_Timer0;
Timer0中断服务程序入口
.refshuchu;
引用外部变量,时钟输出程序入口
.refkey;
引用外部变量,按键输入程序入口
.refsdram_init;
引用外部变量SDRAM初始化程序入口
LED.set400001h
TIM0.set0x1000
PRD0.set0x1001
TCR0.set0x1002
PRSC0.set0x1003
SYSR.set0x07fd
CLKMD.set0x1c00;
时钟模块寄存器地址
PDP_Timer0.setTIM0/128
STACK.usect"
.stack"
200h;
分配堆栈空间
SYSSTACK.usect"
.sysstack"
200h
.data
LED_I.word1,2,4,8,4,2
.sect"
.ve
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 课程设计