dsp课程设计正文.docx

上传人:b****7 文档编号:9250406 上传时间:2023-02-03 格式:DOCX 页数:30 大小:161.03KB
下载 相关 举报
dsp课程设计正文.docx_第1页
第1页 / 共30页
dsp课程设计正文.docx_第2页
第2页 / 共30页
dsp课程设计正文.docx_第3页
第3页 / 共30页
dsp课程设计正文.docx_第4页
第4页 / 共30页
dsp课程设计正文.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

dsp课程设计正文.docx

《dsp课程设计正文.docx》由会员分享,可在线阅读,更多相关《dsp课程设计正文.docx(30页珍藏版)》请在冰豆网上搜索。

dsp课程设计正文.docx

dsp课程设计正文

第1章绪论

1.1课题研究的背景

在高度发展的当今社会中,科学技术的突飞猛进和生产过程的高度自动化已成为人所共知的必然趋势,而它们的共同要求是必须建立在有着不断发展与提高的信息工业基础上。

人们只有从外界获取大量准确、可靠的信息经过一系列的科学分析、处理、加工与判断,进而认识和掌握自然界与科学技术中的各种现象与其相关的变化规律,并通过相应的系统和方法实现科学实验研究与生产过程的高度自动化。

换言之,生产过程的自动化面临的第一个问题就是必须根据从各种传感器得到的数据来检测、监视现场,以保证现场设备的正常工作。

所以对现场进行数据采集是重要的前期基础工作,然后再对现场数据进行传输和相应的处理工作,以满足不同的需要。

数据采集系统是一种应用极为广泛的模拟量测量设备,其基本任务是把信号送入计算机或相应的信号处理系统,根据不同的需要进行相应的计算和处理。

它将模拟量采集、转换成数字量后,再经过计算机处理得出所需的数据。

同时,还可以用计算机将得到的数据进行储存、显示和打印,以实现对某些物理量的监视,其中一部分数据还将被用作生产过程中的反馈控制量。

数据处理在整个科研工作中是个重要的必不可少的环节,数据处理系统工作的质量和速度如何,对整个科研工作的影响也是很大的。

因此研究一种质量性能高的通用数据采集平台具有很大的意义。

从广泛的意义上来讲,数据采集与处理的主要包括以下几个方面:

(1)数据的采集:

主要是解决非电量转换为电量的问题以及多路复用、数据的模拟形式和数字形式之间的转换问题。

(2)数据的记录:

数据的存储是非常重要的问题。

(3)数据处理:

包括预处理、数据检验和数据分析等步骤。

随着科学技术的飞速发展,对数据处理的实时性要求也愈来愈迫切。

显然,不论在哪个应用领域中,数据处理越及时则经济效益就越大。

例如在实时监控系统中,必然要求对测量数据实时处理。

又如在新型飞机试飞中如能实现对某些关键数据的实时处理和监测,就能在这些数据发生异常变化时及时发现并采取措施,以避免机毁人亡的重大事故发生。

可见,实时处理数据意义是很大的。

由于电子计算机技术的蓬勃发展,为提高数据处理的实时性提供了广阔的前景。

2断资源限制,可扩展性差;在一些电磁干扰性强的测试现场,无法专门对其做电磁屏蔽,导致采集的数据失真。

而现代工业生产和科学研究的发展要求数据采集卡具有更好的数据采集、处理能力,传统的CPU已经不能满足这一要求。

1.2国内外研究现状

数据采集与处理一直是生产实践研究与应用领域的一个热点和难点。

随着微电子制造工艺水平的飞速提高及数据分析理论的进一步完善与成熟,目前国内外对数据采集系统的高性能方面的研究上取得了很大的成就。

就A/D转换的精度、速度和通道数来说,采样通道从单通道发展到双通道、多通道,采样频率、分辨率、精度逐步提高,为分析功能的加强提供了前提条件[2]。

而在数据分析的微处理器上,最初的数据采集系统以8位单片机为核心,随着微电子技术的不断发展,新兴单片机的不断问世,十六位、三十二位单片机也为数据采集系统研制厂家所采用,近来采用具有DSP功能的数据采集系统也己投入市场。

同时,通用PC机的CPU用于数据处理也较为常见。

总之,伴随着高性能微处理器的采用和用户技术要求的不断提高,数据采集系统的功能也越来越完善。

数据采集系统的发展主要体现在以下几个趋势:

首先,在专业测控方面,基于PC计算机的数据采集系统越来越成熟和智能化。

在过去的二十年中,开放式架构PC机的处理能力平均每十八个月就增强一倍为了充分利用处理器速度的发展,现代开放式测量平台结合了高速总线接口,如PCI和PXI/CompactPCI,以便获得性能的进一步提升。

计算机的性能提升和由此引起的基于计算机的测量技术的创新,正在持续不断地模糊着传统仪器和基于计算机的测量仪器之间的界线。

其次,在通用测控方面,采用嵌入式微处理器的方案也由早期的采用A/D器件和标准单片机组成应用系统发展到在单芯片上实现完整的数据采集与分析,即目前极为热门的SOC(SystemOnChip)[3]。

通常在一块芯片上会集成一个,可以采样多路模拟信号的A/D转换子系统和一个硬CPU核(比如增强型80_52内核),而且其CPU的运算处理速度和性能也较早期的标准CPU内核提高了数倍,而且有着极低的功耗。

这种单芯片解决方案降低了系统的成本和设计的复杂性。

此外,为了解决SOC方案中数据处理性能的不足,采用DSP作为数据采集系统的CPU的研究与应用目前也逐渐引起业内重视。

但是这类产品目前仅仅处于发展的初级阶段,在精度、速度或其它性能指标上并不能很好的满足要求。

因此,国内外以DSP作为数据采集系统的采样控制和分析运算的研究与应用正在展开。

1.3课题研究的内容

通过对基于TMS320VC5416的信号采集处理与控制系统的设计掌握PCB设计软件AltiumDesigner的使用方法,以及卷积、FFT、FIR滤波器等数字信号处理算法并熟悉TI的DSP集成开发环境CCS的使用,掌握基于DSP的系统设计流程。

数据采集(Dataacquisition)由RTU或PLC进行,包括读取传感器数据,依SCADA需求通信传送设备的状态报告。

数据有特定的格式,控制室中的操作员可以用HMI了解系统状态,并决定是否要调整RTU(或PLC)的控制,或是暂停正常的控制,进行特殊的处理。

数据也会传送到历史记录器(Operationalhistorian),一般会是架构在商用的数据库管理系统上,以便追踪趋势并进行分析。

控制系统意味着通过它可以按照所希望的方式保持和改变机器、机构或其他设备内任何感兴趣或可变的量。

控制系统同时是为了使被控制对象达到预定的理想状态而实施的。

控制系统使被控制对象趋于某种需要的稳定状态。

例如,假设有一个汽车的驱动系统,汽车的速度是其加速器位置的函数。

通过控制加速器踏板的压力可以保持所希望的速度(或可以达到所希望的速度变化)。

这个汽车驱动系统(加速器、汽化器和发动机车辆)便组成一个控制系统。

 

第2章系统方案设计及论证

2.1现场处理器的选择

随着信息社会的不断发展,对数据采集的实时性和精度提出了更高的要求,传统的单片机显然不能满足要求。

TI公司推出的系列DSP一改传统的冯。

诺依曼结构,采用先进的哈弗总线结构。

将程序和数据放在不同的存储空间内,每个存储空间都可以独立访问,而且程序总线和数据总线分开,从而使数据的吞吐率提高了一倍。

作为TI公司的TM320F2812具有很高的性价比,广泛应用于工业控制,特别是应用于处理速度,处理精度方面要求较高的领域。

TMS320F2812的主要性能[6]如下:

(1)TMS320F2812芯片采用了高性能的CMOS技术,其主频最高可以达到150MHz,时钟周期为6.67ns。

当内核电压为1.8V时,主频为135MHz;当内核电压为1.9V时,主频为150MHz。

(2)支持JTGA在线仿真接口。

(3)高性能的32位中央处理器。

采用哈佛总线结构模式,具有快速的中断响应和中断处理能力,具有同一的寄存器编程模式,并且编程可兼容C/C++语言以及汇编语言。

(4)TMS320F2812片内含有128K×16位的Flash,分为4个8K×16位和6个16K×16位的存储段;而TMS320F2812片内含有128K×16位的ROM。

(5)时钟和系统控制:

内含看门狗定时器模块;具有片内振荡器;支持动态锁相环倍频。

(6)3个外部中断模块,外部中断模块PIE可以支持96个外部中断,当前仅用了45个外部中断。

(7)128位安全密匙:

可以保护Flash/ROM、OTPROM和L0、L1SARAM;防止系统中的软件程序被修改或读取。

(8)先进的仿真模式:

具有实时分析以及设置断点的功能;支持硬件仿真。

(9)低功耗模式和节能模式:

支持IDEL、STANDBY、HALT模式,即支持空闲模式、等待模式以及挂起模式;可以独立禁止/使能各个外设的时钟。

(10)双向的10位串行数模转换器,采样速率可以达到166KHz,精度达到210即1024;

(11)带有功能强大的事件管理器:

3个通用定时器、3个全比较单元、3个单比较单元、PWM脉宽调制电路、事件管理器模块中断控制电路、4个捕获单元以及QEP正交编码脉冲电路;

(12)带有串行通讯接口模块(SCI)、串行外设接口模块(SPI)、数字I/O端口模块、CAN控制器模块,便于与外部设备通讯;

2.2处理器间的通信

在现场总线的设计过程中,我们考虑过用RS一485的基于R线构建分布式控制系统。

但是较之目前许多RS一485基于R线构建的分布式控制系统而言,基于CAN总线的分布式控制系统在以下方面具有明显的优越性。

首先,CAN控制器工作于多主方式,网络中的各节点都可根据总线访问优先权(取决于报文标识符)采用无损结构的逐位仲裁的方式竞争向总线发送数据,且CAN协议废除了站地址编码,而代之以对通信数据进行编码,这可使不同的节点同时接收到相同的数据,这些特点使得CAN总线构成的网络各节点之间的数据通信实时性强,并且容易构成冗余结构,提高系统的可靠性和系统的灵活性。

而利用RS一485只能构成主从式结构系统,通信方式也只能以主站轮询的方式进行,系统的实时性、可靠性较差。

其次,CAN总线通过CAN控制器接口芯片82C250的两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。

这就保证不会出现象在RS一485网络中,当系统有错误,出现多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点的现象。

而且CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,从而保证不会出现象在网络中,因个别节点出现问题,使得总线处于“死锁”状态。

而且,CAN具有的完善的通信协议可由CAN控制器芯片及其接口芯片来实现,从而大大降低系统开发难度,缩短了开发周期,这些是只仅仅有电气协议的RS一485所无法比拟的。

另外,与其它现场总线比较而言,CAN总线是具有通信速率高、容易实现、且性价比高等诸多特点的一种已形成国际标准的现场总线。

这些也是目前CAN总线应用于众多领域,具有强劲的市场竞争力的重要原因。

由于本系统只是整个现场主控制系统中的一个子系统,需要与主系统其他子系统进行通信,并且相互能够进行实时的数据传输和处理。

而CAN具有独特的设计思想,良好功能特性和极高的可靠性,现场抗干扰能力强,结构简单,只有两根线与外部相连,通信方式灵活,可以点对点、点对多点及全局广播方式发送和接收数据等等优点[ll],我们选择使用DsP本身就具有的cAN总线控制器模块来完成于其它子系统的通信。

2.3PC与DSP通信接口

串行接口是指数据一位位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信,并可以利用电话线,从而大大降低了成本,特别适用于远距离通信,但传送速度较慢一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。

串行通讯的特点是:

数据位传送,传按位顺序进行,最少只需一根传输线即可完成;成本低但传送速度慢。

串行通讯的距离可以从几米到几千米;根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。

现已确定下位机选用TI公司的TMS320F2812DSP芯片,数据经DSP采集后,要实时将现场信息传输到PC机进行实时监控。

DSP的与数据传输相关的外设有SCI、SPI、CAN。

现已将CAN总线用于各个DSP间的通信,SPI为一种同步串行外设接口,使用较少。

SCI接口可以工作在全双工工作模式,并且经接口芯片转换后可变成RS-232或RS-485电平标准,进而与PC机的串口相连。

是一种较为实用的方案。

2.4系统控制

控制系统有几种分类方法

1、按控制原理的不同,自动控制系统分为开环控制系统和闭环控制系统。

开环控制系统

在开环控制系统中,系统输出只受输入的控制,控制精度和抑制干扰的特性都比较差。

开环控制系统中,基于按时序进行逻辑控制的称为顺序控制系统;由顺序控制装置、检测元件、执行机构和被控工业对象所组成。

主要应用于机械、化工、物料装卸运输等过程的控制以及机械手和生产自动线。

闭环控制系统

闭环控制系统是建立在反馈原理基础之上的,利用输出量同期望值的偏差对系统进行控制,可获得比较好的控制性能。

闭环控制系统又称反馈控制系统。

2、按给定信号分类,自动控制系统可分为恒值控制系统、随动控制系统和程序控制系统。

恒值控制系统

给定值不变,要求系统输出量以一定的精度接近给定希望值的系统。

如生产过程中的温度、压力、流量、液位高度、电动机转速等自动控制系统属于恒值系统。

随动控制系统

给定值按未知时间函数变化,要求输出跟随给定值的变化。

如天线系统。

第3章硬件电路设计

系统底层电路的功能主要包括:

电源电路设计,复位电路及JTAG下载口电路的设计,通讯接口电路设计,CAN总线接口电路设计,RS232接口电路设计,DlD/0接口模块。

下面对电路分模块进行详细说明。

3.1硬件总体结构

图3.1硬件总体结构

3.2电源模块设计

图3.2电源电路

3.3时钟模块设计

图3.3时钟模块

3.4存储器模块设计

图3.4存储器模块

第4章软件设计

4.1概述

本系统设计的主要任务包括DSP硬件系统设计和软件系统设计。

其中硬件设计要求设计一个精简的能独立运行的DSP系统,包括绘制系统的原理图和PCB版图;软件设计要求编写基于所设计的硬件系统的CCS程序使其能够完成数据采集处理和控制等功能。

利用实验箱的模拟信号产生单元产生不同频率的信号,或者产生两个频率的信号的叠加。

在DSP中采集信号,并且对信号进行频谱分析,滤波等。

通过键盘选择算法的功能,将计算的信号频率或者滤波后信号的频率在LCD上显示。

主要功能如下:

一、对外部输入的模拟信号采集到DSP内存,会用CCS软件显示采集的数据波形。

二、对采集的数据进行如下算法分析:

1、频谱分析:

使用fft算法计算信号的频率。

2、对信号进行IIR滤波或FIR滤波,并且计算滤波前后信号的频率。

三、外部键盘选择算法功能,并且将结果在LCD上显示。

4.2主程序方案

主程序调用了6个子程序,分别是LCD显示控制、外部中断2服务函数

、求最大值和次大值函数、FIR滤波器设计函数、卷积程序,FFT算法程序[19]。

求最大值和次大值函数:

实现对数据的选值,选出最大值和次大值。

外部中断2服务函数:

DSP的中断服务,DSP芯片运行时需要设置中断点。

LCD显示控制:

向液晶显示器的显示送数,控制系统的显示部分。

FIR滤波器设计函数:

实现FIR滤波。

卷积程序:

将数据进行卷积计算,然后把数据传出。

FFT算法程序:

实现FFT的算法。

将各个功能程序以子程序的形式写好,当写主程序的时候,只需要调用子程序,然后在寄存器的分配上作一下调整,消除寄存器冲突和I/O冲突即可。

程序应该尽可能多的使用调用指令代替跳转指令。

因为跳转指令使得程序难以看懂各程序段之间的结构关系。

而调用指令则不同,调用指令使得程序结构清晰,无论是修改还是维护都比较方便。

将功能程序段写成子程序的形式,除了方便调用之外,还有一个好处那就是以后写程序的时候如果要用到,就可以直接调用这个单元功能模块[17]。

主程序流程图如图4.1所示。

图4.1主程序流程图

第5章系统实物调试

5.1采集的数据及其FFT计算结果

图5.1FFT计算结果

可见所采集的信号中仅含有多种频率分量,直流、低频和高频。

5.2叠加波形与滤波后波形比较

图5.2叠加波形与滤波后波形比较

可见滤波后信号中的高频分量得到了较大的衰减,滤波后波形变得平滑。

 

5.3滤波前后信号的频谱图比较

图5.3滤波比较

由滤波前后高低频分量的相对大小再次证明低通滤波器对高频分量的衰减作用较强。

 

第6章结论

DSP作为嵌入式处理器家族的一大类,其结构特点决定了它尤其适合做数字信号处理的应用,而学好数字信号处理对日后的信息处理的深入学习和应用有着重要意义,因而学好DSP技术也就有着深远的意义。

通过此次课程设计我学习了一个实际的电子系统的完整的设计流程,同时对ccs的使用更加熟悉了。

在此次课程设计中我负责的是代码的编写和软件的仿真。

从刚一开始拿到这个DSP课程设计,心中充满了困惑和激动。

困惑是因为自己读书不用功,没有把老师给的东西好好消化。

等到了要课程设计的时候才发现自己学的东西是多么的肤浅。

激动是因为这是一个前所未有的设计。

以前从来没有过这样的经历。

是那么的神秘而又是那么的让人着迷。

这个不是其余的课程设计能够比的。

一开始组里要求我搞代码和仿真,心里真的没底。

主要对这个课题真的不是很清楚,赵思聪同学负责采集资料,沈斌卓同学负责调bug。

仿真我们是这样分的,我和赵思聪同学一起负责仿真。

这也让我心中稍得安慰。

我想说的是任何东西都要归根于基础的,就像万丈高楼不能没有地基一样。

我们也不能没有DSP的基础,所以一开始,我每天都拿着课本看,把老师讲的重点和基础都深入的研究了,在这里我要特别感谢赵思聪同学的帮助,没有他的资料,我真的不知道从何下手。

DSP的结构比单片机要复杂的多,相应的寄存器也就较多,而很多情况下编写DSP程序都需要操作和配置寄存器,这既要求对冯诺依曼体系结构的处理器的共性有一定了解,同时也要针对DSP的特点来进行,这还得归功于我那几天看的课本。

代码写完了,但不知道仿真怎么搞,不过还好仿真时两个人搞的。

一开始中搞不对,不是卡这儿就是卡在那儿了。

没办法,只能叫沈斌卓同学了,他在调bug方面还是挺牛逼的,最终两个人的事情的三个人搞定了。

当然要想做的好,做的成功老师的功劳是不可少的,还好林老师人好。

我们中间好几次都卡住了,只能厚着脸皮去找老师(次数太多了)。

心中不由的肃穆起来,突然对老师这个职业更加尊重了。

其实这次课程设计一方面锻炼了我们的团队合作能力,另一方面锻炼我们的人际交往能力。

马上要毕业的我们,将来怎么面临工作的挑战?

我心中仍旧是一片混乱。

但是有了这次的课程设计,我得到了锻炼,使我知道了,有时候人际交往和团队合作比专业知识更重要。

在此次课程设计中我也遇到了很多问题,首先是绘制PCB版图时的布局和布线问题,这是一个需要经验和技巧的问题,尤其是Flash器件与DSP的连线较多而DSP的所有数据线和地址线分布又较为分散,所以也就多画了几遍,争取精益求精还是能够画好的。

还有创建CCS工程后cmd文件和中断向量表的详细配置,这两个文件的修改需要清楚DSP的结构以及存储器映射情况,通过阅读几本参考书和其他一些资料,自己已经基本明白了他们的作用和配置。

当然这些问题都有一定的难度,但是想办法解决它们的过程也就是学习和进步的过程。

通过此次课程设计我对TMS320C54x系列DSP的硬件结构有了较为深刻的认识,真正的了解了DSP课程设计不同于以往的课程设计(c语言和单片机),它在数据处理和预算速率方面是单片机所不能及的。

此次课程设计持续时间虽然不长,但是自己在设计过程中却学到了不少的知识和技能,包括从查阅和参考的各种资料中也学到了DSP的硬件和软件设计技巧,以及CCS的使用和常见问题的排除和程序的调试组装等等。

在此,我要感谢系里面能够给我这一次锻炼的机会,同时也要感谢指导老师的悉心教导和组员的积极配合。

这次课程设计对于即将毕业的我们来说是获益匪浅的,我期待下一次的挑战。

 

参考文献

[1] 张雄伟,曹铁勇.DSP芯片的原理与开发应用(第2版)电子工业出版社,2000.

[2]戴明桢,周建江.TMS320C54xDSP结构、原理及应用(第2版)北京航空航天大学出版社,2007.

附录A:

TMS320VC5416最小系统

图A:

最小系统图

板上包括了支持TMS320VC5416独立运行的时钟电路、复位电路、Flash模块、JTAG仿真接口电路以及电源模块等。

所有的器件都放在了正面,电源、复位按键和JTAG接口放在了板子边缘方便连接和调试。

附录B:

源代码

FFT算法程序:

voidkfft(doublepr[Length],doublepi[Length],intn,intk,doublefr[Length],doublefi[Length],intl,intil)

{

intit,m,is,i,j,nv,l0;

doublep,q,s,vr,vi,poddr,poddi;

for(it=0;it<=n-1;it++)

{

m=it;is=0;

for(i=0;i<=k-1;i++)

{j=m/2;is=2*is+(m-2*j);m=j;}

fr[it]=pr[is];fi[it]=pi[is];

}

pr[0]=1.0;pi[0]=0.0;

p=6.283185306/(1.0*n);

pr[1]=cos(p);pi[1]=-sin(p);

if(l!

=0)pi[1]=-pi[1];

for(i=2;i<=n-1;i++)

{

p=pr[i-1]*pr[1];q=pi[i-1]*pi[1];

s=(pr[i-1]+pi[i-1])*(pr[1]+pi[1]);

pr[i]=p-q;pi[i]=s-p-q;

}

for(it=0;it<=n-2;it=it+2)

{

vr=fr[it];vi=fi[it];

fr[it]=vr+fr[it+1];fi[it]=vi+fi[it+1];

fr[it+1]=vr-fr[it+1];fi[it+1]=vi-fi[it+1];

}

m=n/2;nv=2;

for(l0=k-2;l0>=0;l0--)

{

m=m/2;nv=2*nv;

for(it=0;it<=(m-1)*nv;it=it+nv)

for(j=0;j<=(nv/2)-1;j++)

{

p=pr[m*j]*fr[it+j+nv/2];

q=pi[m*j]*fi[it+j+nv/2];

s=pr[m*j]+pi[m*j];

s=s*(fr[it+j+nv/2]+fi[it+j+nv/2]);

poddr=p-q;poddi=s-p-q;

fr[it+j+nv/2]=fr[it+j]-poddr;

fi[it+j+nv/2]=fi[it+j]-poddi;

fr[it+j]=fr[it+j]+poddr;

fi[it+j]=fi[it+j]+poddi;

}

}

if(l!

=0)

for(i=0;i<=n-1;i++)

{

fr[i]=fr[i]/(1.0*n);

fi[i]=fi[i]/(1.0*n);

}

if(il!

=0)

for(i=0;i<=n-1;i++)

{

pr[i]=sqrt(fr[i]*fr[i]+fi[i]*fi[i]);

if(fabs(fr[i])<0.000001*fabs(fi[i]))

{

if((fi[i]*fr[i])>0)pi[i]=90.0;

elsepi[i]=-90.0;

}

else

pi[i]=atan(fi[i]/fr[i])*360.0/6.283185306;

}

}

 

卷积程序:

voidconvolve(double*Input,double*Impulse,double*Output,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 财会金融考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1