谭毅通信系统课程设计报告.doc13

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

贵州大学明德学院《DSP嵌入式通信系统》课程设计报告题目:基于DSP系统计时器系统的嵌入式设计学院:明德学院专业:通信工程班级:08152学号:082003111353姓名:谭毅指导老师:宁阳2011年12月30日目录1.设计思路..............................................................................................错误!未定义书签。1.1.2CCS开发平台.....................................................错误!未定义书签。1.2.流程图...........................................................................................................................61.3.运行图.............................................................81.4.采用的芯片功能介绍..................................................................................................81.5.原理图............................................................8第二章软件设计..........................................................92.1设计思路..........................................................................................................................92.2程序的流程图..........................................................................................错误!未定义书签。2.3具体程序..........................................................................................................................12.2.3.1计时器的算法及实现...........................................................................................132.3.2.FFT的算法实现..................................................................................................13第三章系统设计应解决的关键问题.............................................................错误!未定义书签。总结设计心得体会.........................................................................................错误!未定义书签。参考文献...........................................................................................................错误!未定义书签。第一章系统架构前沿嵌入式实时操作系统C/OS-II简介μ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目标是实现一个基于优先级调度的抢占式的实时内核,并在这个内核之上提供最基本的系统服务,如信号量,邮箱,消息队列,内存管理,中断管理等。任务管理uC/OS—II中最多可以支持64个任务,分别对应优先级0—63,其中0为最高优先级。63为最低级,系统保留了4个最高优先级的任务和4个最低优先级的任务,所有用户可以使用的任务数有56个。uC/OS—II提供了任务管理的各种函数调用,包括创建任务,删除任务,改变任务的优先级,任务挂起和恢复等。系统初始化时会自动产生两个任务,一个是空闲任务,它的优先级高低,改任务公给一个整形变量做累加运算;另一个是系统任务,它的优先级为次低,改任务负责统计当前CPU的利用率。时间管理uC/OS—II的时间管理是通过定时中断来实现的,该定时中断一般为10毫秒或100毫秒发生一次,时间频率取决于用户对硬件系统的定时器编程来实现。中断发生的时间间隔是固定不变的,该中断也成为一个时钟节拍。uC/OS—II要求用户在定时中断的服务程序中,调用系统提供的与时钟节拍相关的系统函数。例如中断的任务切换函数,系统时间函数。内存管理在ANSIC中是使用malloc和free两个函数来动态分配和释放内存。但在嵌入式实时系统中,多次这样的错作会导致内存碎片,且由于内存管理算法的原因,malloc和free的执行时间也是不确定。uC/OS—II中把连续的大快内存按分区管理。每个分区中包含整数个大小相同的内存块同,但不同分区之间的内存块大小可以不同。用户需要动态分配内存时,系统选择一个适当的分区,按块来分配内存,释放内存时将该块放回它以前所属的分区,这样能有效解决碎片问题,同时执行时间也是固定的。任务间通信与同步对一个多任务的操作系统来说,任务间的通信和同步是必不可少的。uC/OS—II中提供了4种同步对象,分别是信号量,邮箱,消息队列和事件。所有这些同步对象都有创建,等待,发送,查询的接口用于实现进程间的通信和同步。任务调度uC/OS—II采用的是可剥夺型实时多任务内核。可剥夺型的实时内核在任何时候都运行就绪了的最高优先级的抢占式调度,也就是最高优先级的任务一旦处于就绪状态,则立即抢占正在运行的低优先级任务的处理器资源。为了简化系统设计,uC/OS—II规定所有任务的优先级不同,因为任务的优先级也同时叭一标志了该任务本身。任务调度将在以下情况下发生:高优先级的任务因为需要某种临界资源,主动请求挂起,让出处理器,此时将调度就绪状态的低优先级任务获得执行,这种调度也称为任务级的上下文切换。高优先级的任务因为时钟节拍到来,在时钟中断的处理程序中,内核发现高优先级任务获得了执行条件(如休眠的时钟到时),则在中断态直接切换到高优先级任务执行。这种调度也称为中断级的上下文切换。这两种高度方式在uC/OS—II的执行过程中非常普遍,一般来说前者发生在系统服务中,后者发生在时钟中断的服务程序中。调度工作的内容可以分为两部分:最高优先级任务的寻找和任务切换。其最高优先级任务的寻找是通过建立就绪任务表来实现的。uC/OS中的每一个任务都独立的堆栈空间,并有一个称为任务控制块TCB的数据结构,其中第一个成员变量就是保存的任务堆栈指针。任务调度模块首先用变量OSTCBHingRdy记录当前最高级就绪任务的TCB地址同,然后用OSTASKSW()函数来进行任务切换。uC/OS—II的组成部分uC/OS—II可以大致分成核心、任务处理、时间处理、任务同步与通信,CPU的移植等5个部分。1、核心部分是操作系统的处理核心,包括操作系统初始化、操作系统运行、中断进出的前导时钟节拍、任务调度、事件处理等多部分。能够维持系统基本工作的部分都这里。任务处理部分任务处理部分中的内容都是与任务的操作密切相关的。包括任务的建立、删除、挂起、恢复等等。因为uC/OS—II是以任务为基本单位调度的,所以这部分内容也相当重要。时钟部分uC/OS—II中的最小时钟单位是timetick。任务延时等操作是在这里完成的。任务同步和通信部分为事件处理部分,包括信号量、邮箱、邮箱队列、事件标志等部分:主要用于任务间的互相联系和对临界资源的访问。与CPU的接口部分是指uC/OS—II针对所使用的CPU的移植部分。由于uC/OS—II是一个通用性的操作系统,所以对于关键问题上的实现,还是需要根据具体CPU的具体内容和要求作相应的移植。这部分内容由于牵涉到SP等系统指针,所以通常用汇编语言编写。主要包括中断级任务切换的底层实现、任务及任务切换的义愤实现、时钟节拍的产生和处理、中断的相关处理部分等内容。Dsp系统简介Dsp发展的很快。随着计算机、信息技术和大规模集成电路的飞速发展,数字信号处理技术已形成一门独立的学科系统,并且在理论和实现技术两个方面都获得了高速的发展。数字信号处理是采用数值计算的方法对信号进行处理的一门学科。它研究的是怎样对模拟信号进行采样,将其转换为数字序列,然后对其进行变换、滤波、增强、压缩及识别等加工处理,从而提取有用信息并进行应用的理论和算法。而数字信号处理器则是一种用于数字信号处理的可编程处理器,它的诞生与快速发展,使各种数字信号处理算法得以实时实现,为数字信号处理的研究和应用打开了新局面,提供了低成本的实际工作环境和应用平台,推动了新的理论和应用领域的发展。目前,DSP技术在通信、航空、航天、雷达、工业控制、医疗、网络及家用电器等各个领域都得到了广泛应用。DSP诞生于20世纪70年代,1978年美国AMI公司发布的S28811被认为是世界上的第一片DSP芯片。然而,1980年由日本NEC公司推出的D7720才是第一片具有硬件乘法器的商用DSP器件。进入80年代,随着计算机应用范围的扩大,迫切要求提高数字信号处理技术的速度,从而推动了DSP的进一步发展。1982年美国TI公司推出首枚低成本高性能的TMS32010系列DSP,它是一个16位的定点芯片,采用了哈佛结构和硬件乘法器,完成一次乘加操作需要396ns。该芯片的问世,使DSP技术得到了重大突破。1985年TI推出了TMS32020系列DSP,它的寻址空间达到64K字,有专门的地址寄存器,一次乘加运算需要200ns,在此期间,各公司也陆续推出了各种DSP芯片,如ADI的ADSP2100,Motorola的DSP56001和AT7T的DSP16A等。进入20世纪90年代以后,DSP得到了惊人的发展,这体现在DSP的性能和指标不断提高,而其芯片尺寸和功能耗却在不断减小,价格也在逐年降低,自1997年至今,DSP的展进入了完

1 / 27
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功