dsp作业

2024-08-05

dsp作业(共10篇)(共10篇)

1.dsp作业 篇一

概述

1、简述DSP2812的特点。

2、简述DSP2812应用领域。

时钟

1、简述DSP2812时钟系统的组成及工作过程。

2、请编写EVA事件管理器25MHz的时钟初始化程序。

3、请编写SCI-A串行通信口37.5MHz的时钟初始化程序。

4、请编写用CPU定时器2产生1秒时钟脉冲的程序。

5、请编写用CPU定时器0产生10秒时钟脉冲的程序。

中断

1、请用文字描述DSP中断响应过程。

2、在编写DSP中断初始化程序及服务子程序过程中应该注意哪些问题?

3、请编写DSP定时器1下溢中断初始化程序,主程序及其服务子程序(子程序内容不做要求)。

AD及EV1、简述DSP2812AD系统的组成及特点。

2、利用中断方式编写采集50Hz正弦波40次的均方根AD程序。(画出流程图)

3、利用查询方式编写采集400Hz正弦波20次的均方根AD程序。

4、简述简述DSP2812EV模块的组成及各部分的功能

5、编写产生占空比50%,周期78.125us的PWM波程序。

6、编写产生50Hz的SPWM波程序。

7、利用2812DSP板产生的SPWM波,经过RC滤波后进入DSP的AD,输出电压稳定在0.8V,频率为50Hz的正选波,用Graph观察AD采集波形并编写闭环程序。(画出流程图)

8、编写利用事件管理器EVA捕获单元测出PWM波脉宽的程序。

通信

1、简述DSP2812SCI系统的组成及特点。

2、编写DSP2812SCI系统初始化程序,参数自定。

3、简述DSP2812SPI系统的组成及特点。

4、编写DSP2812SPI系统初始化程序,参数自定。

2.DSP学习心得 篇二

今年学习了DSP这门课程后,有了一些自己的认识和见解,并且体会到了它强大的功能和作用,它不但在高端的技术领域有很重要的地位,如通信、雷达、声纳、语音合成和识别、图像处理、高速控制等;而且在生活中有它不小的作用,如,影视、仪器仪表、医疗设备、家用电器等众多领域。

但是,由于DSP技术发展很快,生产DSP芯片的厂家又多,这既是它的优点同时又是缺点,因为这样会导致产品更新换代的周期越来越短,还有,每一种芯片,都有其独特的硬件结构和一套专门的指令系统与开发工具,这更加的带来了学习DSP技术的困难。在我自己的学习体系里,有自己的一点经验可以用来辅助的学习这门课程。古时候的一个习语说的是“窥一斑而知全豹”这个同时可以用来指导学习DSP,尽管它的更新换代很快,但也只是为了完善它而更好用和借助其它的技术为它添加一些别的功能而使其更强大,其实质的理论还没有变话,所以,我们可以就其某一个芯片的知识来指导其它的芯片的学习和利用。这里,以TMS320系列DSP芯片为例来进行知识的梳理。

x(t)→抗混叠滤波器→A/D→数字信号处理器→D/A→低通滤波器→y(t)

数字信号处理系统简化框图

这个作为基本的理论模型,然后开始主要内容:1.1,TMS320系列DSP芯片的概述﹑分类及应用、平台;1.2,主要特性有①CPU,②存储器,③指令系统,④在片外围电路,⑤电源,⑥在片仿真接口,⑦速度、组成框图;1.3,总线结构;

1.4,存储器空间分配、存储器(程序存储器、数据存储器);1.5,中央处理单元中,算术逻辑运算单元①ALU的输入,②ALU的输出,③溢出处理,④进位位,⑤双16位算术运算,累加器A和B(保存累加器的内容、累加器移位和循环移位、专用指令),桶形移位器乘法器/加法器单元,比较、选择和存储单元,指数编码器,CPU状态和控制寄存器;1.6,数据寻址方式①立即寻址,②绝对寻址,③累加器寻址,④直接寻址,⑤间接寻址;⑥存储器映像寄存器寻址,⑦堆栈寻址;1.7程序存储器地址生成方式,程序计数器,分支转移,调用与返回,条件操作,重复操作(重复执行单条指令、程序块重复操作),复位操作,中断(中断类型、中断标志寄存器和中断屏蔽寄存器、中断处理过程),省电方式;

1.8,流水线①流水线操作,②延迟分支转移,③条件执行,④双寻址存储器与流水线,⑤单寻址存储器与流水线,⑥流水线冲突和插入等待周期(流水线冲突、等待周期表);1.9,在片围电路①并行I/O口及通用I/O引脚,②定时器,③时钟发生器(硬件配置的PLL软件可编程PLL),④主机接口;1.10,串行口;串行口概述(标准串行口、缓冲串行口、时分多路串行口、多通道缓冲串行口);

3.DSP放异彩 篇三

DSP放异彩

DSP(数字信号处理器)近几年闪亮市场,卖点十足.它是半导体工业中增长最快的市场.据SIA统计,世界半导体工业增长了18.9%,达1490亿美元.其中,许多部门包括微处理器和存储器增长迅速,尤其是DSP,在无线通信应用的牵引下,更获得傲人成长,比上年飚升26%,达44亿美元.

作 者:金中  作者单位: 刊 名:电子产品世界  ISTIC英文刊名:ELECTRONIC ENGINEERING & PRODUCT WORLD 年,卷(期): “”(7) 分类号:F4 关键词: 

4.DSP语音信号处理 篇四

语音信号处理是研究数字信号处理技术和语音信号进行处理的一门学科,是一门新型的学科,是在多门学科基础上发展起来的综合性技术,它涉及到数字信号处理、模式识别、语言学。语音信号处理是研究用数字信号处理技术对语音信号处理的一门学科。处理的目的是要得到一些语音参数以便高效的传输或存储;或者是通过处理的某种运算以达到某种用途的要求。语音信号处理又是一门边缘学科。如上所诉,它是“语言语音学”与“数字信号处理”两个学科相结合的产物。

语音信号处理属于信息科学的一个重要分支,大规模集成技术的高度发展和计算机技术的飞速前进,推动了这一技术的发展。在数字音频技术和多媒体技术迅速发展的今天,传统的磁带语音录放系统因体积大、使用不便、放音不清晰而受到了巨大挑战。本次课程设计提出的体积小巧,功耗低的数字化语音存储与回放系统,可以有效的解决传统的语音录放系统在电子与信息处理的使用中受到的限制。

本文提出了语音信号处理课程建设的实验环节中的一些考虑,作为专业课程的学习,实验内容不能仅仅停留在验证性实验上,还应增加实验延伸的设计要求,是学生加深对理论分析认识的同时,强调培养学生的实际动手能力和知识综合运用能力。从而提高语音信号的教学和实验的质量。实验内容采用MATLAB编程实现,不仅易于语音信号处理的实现,更易引导学生完成实验延伸的设计。

第一章 绪论

1.1选题背景

在我们的现实生活中从磁带、录像带到CD、VCD、DVD;从黑白电视机、彩色电视机、高清晰度电视机到具有数字信号处理功能的电视机;从留声机、录音机到语音信箱;现在正出在模拟信息到数字信息的变革之中,传统的磁带语音录放系统因其体积大,使用不便,在电子与信息处理的使用中受到许多限制。

虽然,目前广播电视系统尚未实现真正的数字化,相信在不久的将来,真正的数字电视、数字收音机、数字收录机将进入家庭。所以,研究音频信号的数字化存储、处理和回放系统有着很重要的现实意义。

通过设计语音信号实验箱可以对语音信号实现各种形式的变换,因此学会对语音信号的处理,也可自行研究将此语音处理技术应用到现实生活中。

1.2课题意义

语音信号处理的一门比较实用的电子工程的专业课程,语音是人类获取信息的重要来源和利用信息的重要手段,通过语言相互传递信息是人类最重要的基本功能之一,语音是人类特有的功能,它是创造和记载几千年来人类文明史的根本手段,是人类最重要、最有效、最常用和最方便的交换信息的形式。

语音信号处理是研究用数字信号处理技术对语音信号进行处理的一门学科,它是一门新兴的学科,同时又是综合性的多学科领域刚也涉及面很广的交叉学科。

第二章 课程设计要求及系统原理

2.1 课程设计基本要求

(1)学会MATLAB的使用,掌握MATLAB的程序设计方法;

(2)掌握在windows环境下语音信号的采集方法;

(3)掌握数字信号处理的基本概念,基本理论和基本方法;

(4)掌握MATLAB设计方法;

(5)学会用MATLAB对信号进行分析和处理。

2.2 系统基本原理

语音采集原理是,人耳能听到的声音是一种范围为20Hz—20kHz,而一般语音频率最高为3.4kHz。语音的采集是指语音声波信号经麦克风和高频放大器转换成有一定幅度的模拟量电信号,然后再转换成数字量的全过程。

本次设计的基本原理是对语音的录音和放音进行数字化控制。其中,关键技术在于:为了增加语音存储时间,提高存储器的利用率,采用了非失真压缩算法对语音信号进行压缩后再存储,而在回放时再进行解压缩;同时,对输入语音信号进行数字滤波以抑制杂音和干扰,从而确保了语音回放的可靠质量。

通过设计一个GUI实验箱,并添加相应的控制控件,添加一个声音文件,通过MATLAB编程,使其通过各种按钮实现语音信号处理的各种功能,最后做成一个完整的语音信号处理实验箱。

第三章 设计方案论证

3.1 设计理论依据

3.1.1采样定理:

在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中最高频率fmax的2倍时,则采样之后的数字信号完整的保留了原始信号中的信号,一般实际应用中保证采样频率为信号最高频率的5—10倍;采样定理又称奈奎斯特定理。

3.1.2采样频率:

采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调、衡量声卡、声音文件的质量标准。采样频率越高,即采样的间隔时间越短,则在单位时间内计算机得到的声音样本数据就越多,对声音波形的表示也就越精确,采样频率与声音频率之间有一定的关系,根据奈奎斯特理论,只有采样频率高于声音信号最高频率的2倍的时候,才能把数字信号表示的声音还原成为原来的声音,这就是说采样频率是衡量声卡采集、记录和还原声音文件的质量标准。

3.1.3采样位数与采样频率

采样位数即采样值或取样值,用来衡量声音波动变化的参数,是指声卡在采集和播放声音文件时候使用数字声音信号的二进制为数。采样频率是指录音设备在一秒钟内对声音信号的采样次数,采样频率越高声音的还原就越真实越自然。

采样位数和采样频率对于音频接口来说是最为重要的两个基本指标,也是选择音频接口的两个重要标准。无论采样频率如何,理论上来说采样的位数决定了音频数据最大的力度范围。每增加一个采样位数相当于力度范围增加了6dB。采样位数越多则捕捉到的信号越精确。对于采样率来说你可以想象它类似于一个照相机。显然采样率越高,计算机提取的声音越多,对于原始的还原也越加精确。

第四章 图形用户界面设计

4.1 图形用户界面概念

图形用户界面或图形用户接口是指采用图形方式显示的计算机操作环境由用户接口。与早期计算机使用的命令行界面相比,图形界面对于用户来说更为简便易用。

GUI是MATLAB提供的图形用户界面开发环境,提供了一系列用于创建图形用户界面的工具,从而简化界面布局和编程工作。

4.2用户界面设计

4.2.1 GUI设计模板

在MATLAB主窗口中,选择File菜单中的New菜单项,再选择其中的GUI命令,就会显示图形用户界面的设计模板。

MATLAB为GUI设计一共准备了四个模板,分别是Blank GUI、GUI with Uicontrols、GUI with Axes and Menu、Modal Question Dialog。

当用户选择不同的模板时,在GUI设计模板界面的右边就会显示出与该模板对应的GUI图形。

4.2.2 GUI设计窗口

在GUI设计模板中选中一个模板,然后单击OK按钮,就会显示GUI设计窗口,选择不同的GUI设计模式时,在GUI设计窗口中显示的结果是不一样的。

GUI设计窗口由菜单栏、工具栏、空间工具栏以及图形对象设计区等部分组成。GUI设计窗口的菜单栏有File、Edit、View、Layout、Tools和Help六个菜单项,使用其中的命令可以完成图形用户界面的设计操作。

4.2.3 GUI设计窗口的基本操作

(1)前面板的设计:在GUI设计窗口创建图形对象后,通过双击该对象,就会显示该对象的属性编辑器。如下图所示。例如,创建一个Push Button对象,并设计该对象的属性值。

图4-1 按钮属性编辑器

通过以上的按钮属性编辑器可以根据个人情况对按钮的名称、颜色、大小等方面的属性进行修改,使按钮在视觉上变的更加完美。

(2)按钮功能的实现:在GUI设计窗口创建按钮后,通过右键单击按钮,选择View callbacks下的callback对相应的按钮进行编程,使按钮实现相应的功能,如下图所示对按钮的响应功能进行设置。

图4-2 按钮功能编辑器

进入到按钮程序编辑窗口,通过编程即可实现按钮的相应功能,如下图:

图4-3 按钮的编程实现界面

通过对各个按钮控件的修改,和对m文件程序的添加就完成对GUI窗口的设计,最后得到的图形化操作界面如下图所示:

图4-4 图形化操作界面

4.2.4 语音的录入与打开

在MATLAB中,[y,fa,bits]=wavread(‘Blip’,[N1 N2]);用于读取语音,7

采样值放在向y中,fs表示采样频率,bits表示采样位数。[N1 N2]表示读取从N1点到N2点的值。

Suond(x,fs,bits);用于对声音的回放,向量y则就代表了一个信号也就是说可以像处理一个信号表达式一样处理这个声音信号。

第五章 课程设计的软件实现

5.1 部分函数语法格式

读wav文件: x=wavread(‘filename’)数组a及b中元素相乘: a.*b 创建图形窗口命令: figure 绘图函数: plot(x)坐标轴: axis([xmin xmax ymin ymax])坐标轴注解: xlabel(‘„’)ylabel(‘„’)图例注解: legend(‘„’)一阶高通滤波器: y=filter([1-0.09375],1,x)分帧函数: f=enframe(x,len,inc)x为输入语音信号,len指定了帧长,inc指定帧移,函数返回为nXlen的一个矩阵,每一行都是一帧数据。

5.2语音信号处理的相关函数

5.2.1语音信号的短时谱:

周期性声门波可表示为:

(5-1)其中,g[n]是声门波的单周期的波形,p[n]是间隔为P的周期采样序列。当u[n]通过线性非时变声道,且该声道的单位冲击响应为h[n]时,声道输出为:

(5-2)为了观察一段语音,需要降生到输出乘以一个一时刻τ 为中心的窗函数 w[n,τ] ,即得到:

(5-3)

这段语音信号的频域表达式为:

(5-4)

即语音信号的谱包络为

语谱图就是现实时变频谱幅度特征的图形表达式为:

(5-5)

将语音信号短时谱程序写入到MATLAB中得到单色语谱图的波形如下:

图5-1 语音信号单色语谱图

5.2.2 自相关方法估计语音信号的声道参数:

由均方预测误差最小的得到正则方程:

(5-6)

其中,(5-7)

在最佳解时的误差为

(5-8)

在自相关法中式5-6,式5-8变为

(5-9)

(5-10)由式5-9和式5-10可列出方程组式5-11

(5-11)

解方程组式5-9求出线性预测系数,通过误差式5-11可求出增益G

(5-12)

加窗后信号频谱图如下:

图5-2 加窗后信号频谱图

通过以上的方法,改变参数分别求得4极点模型频率响应和6极点模型频率响应,6极点波形如下图所示:

图5-3 六极点波形图

最后通过以上方法用一个函数分别实现以上三个功能,三个波形显示在一个界面,通过观察图形,查看它们之间的分别。三者比较所得到的波形如下:

图5-4 三者比较波形图

5.2.3 基音周期检测

数据为浊音语音信号speech1_10k(10000样点/秒)用25ms的汉明窗对语音信号speech1_10k进行加窗处理,并画出所得到的加窗信号的自相关函数,再用根据中心消波法及三电平中心消波法原理改进程序,最后对比中方法基音检测的效果并分析结果。

实验原理及方法

(1)自相关检测原理:对于离散的数字语音信号序列x(n),如果周期N,则自相关函数也是同周期的周期函数。即:x(n)=x(n+N)。清音信号没有周期性,他的自相关函数也没有周期。浊音新海具有准周期性。自相关基音检测正是利用这一性质对语音信号进行基音检测的。

(2)中心消波法检测原理:中心消波处理是使用如下图所示的中心消波函数进行处理的:

图5-5 中心消波检测图

(3)三电平消波法原理:为了减少自相关计算中的乘法运算,可以把上述中心消波以后的信号y(n)的自相关用两个信号的互相关代替,其中一个信号是y(n)另一个信号是对y(n)进行三电平量化产生的结果。且这个信号有三种可能的取值,因而这里的互相关计算只需要做加减法,而这个互相关序列的周期性与y(n)的自相关序列是近似相同的。

三电平法对语音信号处理得到的波形如下:

图5-6 三电平法波形图

中心消波法得到的波形如下图:

图5-7 中心消波法波形图

5.3 GUI实验箱操作界面设计

通过对各个控件的编程和对参数的设计,最后得到的GUI实验箱操作界

面如下图所示,通过界面上的各个按钮即可实现相应的功能。

图5-8 GUI实验箱操作界面

第六章 心得体会

通过本次课程设计完成了对语音信号的读取与打开,与课题的要求十分相符;初略的完成了界面的设计,但也存在相当的不足,达到了打开语音文件,显示已定波形。语音信号处理时语音学与数字信号处理技术相结合的交叉学科,将语音当做一种特殊的信号,即一种“复杂向量”来看待。也就是说,体现了数字信号处理技术。

本次课程设计时希望将数字信号处理技术应用与某一实际领域,这里就是指对语音的处理。作为存储与计算机中的语音信号,其本身就是离散化了的向量,我们只需要将这些离散的量提取出来美酒可以对其进行处理了。

本次课设,用到了处理数字信号的强有力工具MATLAB,通过MATLAB李的几个命令函数的调用,很轻易的在实际化语音与数字信号的理论之间搭了一座桥。

最后,还利用了MATLAB的另一强大功能——GUI界面设计。设计出了一个建议的用户应用界面,可以让人实现界面操作。

通过本次课程设计让我更加了解了语音信号处理在现实中的强大的应用空间,同时查阅了很多相关的资料,应用MTALAB软件来完成,熟练掌握了MATLAB软件,本次课程设计要求用GUI设计模块,查阅了很多资料,更加深刻的陆奥了了这方面知识。

本次课程设计,我明白了理论的学习需要在实践中才能得到巩固。在课程设计中,只有动手慢慢研究,才能真正了解MATLAB软件平台中可以直接设计数字滤波器的各个函数的调用,对设计GUI实验箱的所有函数的运用有了比较好的认识。

通过这个课程设计,我学到了很多MATLAB和语音信号的知识,提高了自己在语音信号设计方面的知识能力,动手能力和思维能力都得到了一定的提升,希望自己以后可以更多的继续学习这一门课程设计方面的知识。

附 录

1.源程序代码:

参考文献

[1] 刘庆华 陈紫强《基于MATLAB和DSP的语音信号处理课程的建设》 电气电子教学学报 2006 10(3):124-128 [2] 张力 《MATLAB在语音信号处理辅助教学中的应用》 电气电子教学学报 2005 27卷2期:96-99 [3] 邓立新 杨震《信息技术融入“语音信号处理”课程的教学实践》电气电子教学学报 2005 27卷5期:13-16 [4] 胡航,《语音信号处理》 哈尔滨工业大学出版社 2005年2月,第二版:135-137 [5] 张平,《MATLAB基础与应用》 北京航空航天大学出版社 2007,第二版:85-92 [6] 谢德芳 《数字信号处理》 北京科学出版社 2005,第一版

[7] 张雄伟 《现代语音处理技术及应用》 机械工业出版社 2006,第二版 [8] 吴家安 《语音编码技术及应用》 机械工业出版社 2006 第一版 [9] 刘幺和 宋庭新 《语音识别与控制应用技术》 科学出版社 2008 第二版

[10] 李昌立 吴善培 《数字语音编码实用教程》 人民邮电出版社 2004 第一版

[11] 姚天仁 《数字语音处理》 华中科技大学出版社 1992 第二版 [12] 朱敏雄 《计算机语音技术(修订版)》 北京航空航天大学出版社 2002 第一版

5.DSP实验学习心得 篇五

论DSP发展前景

DSP 即为数字信号处理器(Digital Signal Processing),是在模拟信号变换成数 字信号以后进行高速实时处理的专用处理器。它的工作原理是将现实世界的模拟信号转换 成数字信号,再用数学方法处理此信号,得到相应的结果。自从数字信号处理器(Digital Signal Processor)问世以来,由于它具有高速、灵活、可编程、低功耗和便于接口等特 点,已在图形、图像处理,语音、语言处理,通用信号处理,测量分析,通信等领域发挥 越来越重要的作用。随着成本的降低,控制界已对此产生浓厚兴趣,已在不少场合得到成 功应用。DSP 数字信号处理器 DSP 芯片采用了数据总线和程序总线分离的哈佛结构及改 进的哈佛结构,较传统处理器的冯?诺依曼结构具有更高的指令执行速度。其处理速度比最 快的 CPU 快 10-50 倍。在当今数字化时代背景下,DSP 已成为通信、计算机、消费类电 子产品等领域的基础器件,被誉为信息社会革命的“旗手”。

最初的 DSP 器件只是被设计成用以完成复杂数字信号处理的算法。DSP 器件 紧随着数字信号理论的发展而不断发展。DSP发展最快,现在的 DSP 属于第五代产品,它与第四代相比,系统集成度更高,将 DSP 芯核及外围组件综合集成在单一芯片上。这种集成度极高的 DSP 芯片不仅在通信、计算机领域大显身手,而且逐渐渗透 到人们日常消费领域,前景十分可观。近年来,随着通信技术的飞速发展,DSP已经成为信号与信息处理领域里一门十分重要的新兴学科,它代表着当今无线系统的主流发展方向。现在,通信领域中许多产品 都与 DSP 密切联系,例如,Modem、数据加密、扩频通信、可视电话等。而寻找 DSP 芯片来实现算法最开始的目标是在可以接受的时间内对算法做仿真,随后是将波形存储起 来,然后再加以处理。

在短短的十多年 时间,DSP芯片已经在信号处理、通信、雷达等许多领域得到广泛的应用。目前, DSP 芯片的价格也越来越低,性能价格比日益提高,具有巨大的应用潜力。DSP 芯片的应用主要有:(1)

信号处理--如,数字滤波、自适应滤波、快速傅里叶变换、相关运算、频谱分析、卷积等。(2)通信--如,调制解调器、自适应均衡、数据加密、数据压缩、回坡抵消、多路复用、传真、扩频通信、纠错编码、波形产生等。(3)语音--如语音编码、语音合成、语音识别、语音增强、说话人辨认、说话人确认、语音邮件、语音储存等。(4)图像/图形--如二维和三维图形处理、图像压缩与传输、图像增强、动画、机器人视觉等。(5)军事--如保密通信、雷达处理、声纳处理、导航等。

(6)仪器仪表--如频谱分析、函数发生、锁相环、地震处理等。(7)

自动控制--如引擎控制、深空、自动驾驶、机器人控制、磁盘控制。(8)

医疗--如助听、超声设备、诊断工具、病人监护等。(9)家用电器--如高保真音响、音乐合成、音调控制、玩具与游戏、数字 电话/电视等 DSP 的发展前景 DSP 的功能越来越强,应用越来越广,达到甚至超过了微控制器的功能,比 微控制器做得更好而且价格更便宜,许多家电用第二代 DSP 来控制大功率电机就 是一个很好的例子。汽车、个人通信装置、家用电器以及数以百万计的工厂使用 DSP 系统。数码相机、IP 电话和手持电子设备的热销带来了对 DSP 芯片的巨大需 求。而手机、PDA、MP3 播放器以及手提电脑等则是设备个性化的典型代表,这 些设备的发展水平取决于 DSP 的发展。新的形势下,DSP 面临的要求是处理速度 更高,功能更多更全,功耗更低,存储器用量更少。

DSP 的技术发展将会有以下 一些走势:(1)系统级集成 DSP 是潮流。小 DSP 芯片尺寸始终是 DSP 的技术发展方向。当前的 DSP 尺寸小、功耗低、性能高。各 DSP 厂商纷纷采用新工艺,改进 DSP 芯核,并将几个 DSP 芯核、MPU 芯核、专用处理单元、外围电路单元、存储单元 统统集成在一个芯片上,成为 DSP 系统级集成电路。(2)追求更高的运算速度和进一步降低功耗和几何尺寸。由于电子设备的 个人化和客户化趋势,DSP 必须追求更高更快的运算速度,才能跟上电子设备的 更新步伐。同时由于 DSP 的应用范围已扩大到人们工作生活的各个领域,特别是 便携式手持产品对于低功耗和尺寸的要求很高,所以

DSP 有待于进一步降低功 耗。按照 CMOS 的发展趋势,依靠新工艺改进芯片结构,DSP 运算速度的提高和 功耗尺寸的降低是完全可能的。

(3)DSP 的内核结构进一步改善。DSP 的结构主要是针对应用,并根据应用 优化 DSP 设计以极大改进产品的性能。多通道结构和单指令多重数据、超长指令 字结构、超标量结构、超流水结构、多处理、多线程及可并行扩展的超级哈佛结 构(SHARC)在新的高性能处理器中将占据主导地位。(4)DSP 嵌入式系统。DSP 嵌入式系统是 DSP 系统嵌入到应用电子系统中 的一种通用系统。这种系统既具有 DSP 器件在数据处理方面的优势,又具有应用 目标所需要的技术特征。在许多嵌入式应用领域,既需要在数据处理方面具有独 特优势的 DSP,也需要在智能控制方面技高一筹的微处理器(MCU)。因此,将 DSP 与 MCU 融合在一起的双核平台,将成为 DSP 技术发展的一种新潮流。DSP 的发展非常迅速,而销售价格逐年降低目前 DSP 的结构、总线、资源和 接口技术都趋于标准化,尤其接口的标准化进展更快。这给从事系统设计的工程 技术人员带来很大机遇,采用先进的 DSP 将会使开发的产品具有更强的市场竞争 力。

近几年来,DSP芯片、应用软件和系统的发展非常迅速,每年增长速度高达40%。其市场驱动力主要是因特网、无线通信、硬盘驱动器、可视电话和会议电视以及其它消费 类电子产品。也就是说,DSP产业的发展依赖于通信技术和通信市场。随着新的通信体 制、传输方式和多媒体智能终端的迅速发展,其算法、标准和规程都需要在实践中不断发 展、改进和优化。DSP编程的灵活性和不断增强的运算能力,同时又将使通信技术向更 高层次迈进。这对通信领域的广大科技人员是一个机遇。抓住这个机遇,我们将大有作为。

6.大学dsp实验心得体会 篇六

// Enable PWM pins

GpioMuxRegs.GPAMUX.all = 0x00FF; // EVA PWM 1-6 pins

GpioMuxRegs.GPBMUX.all = 0x00FF; // EVB PWM 7-12 pins

EDIS;

// Step 3. Clear all interrupts and initialize PIE vector table:

// Disable CPU interrupts

DINT;

// Initialize the PIE control registers to their default state.

// The default state is all PIE interrupts disabled and flags

// are cleared.

// This function is found in the DSP281x_PieCtrl.c file.

InitPieCtrl;

// Disable CPU interrupts and clear all CPU interrupt flags:

IER = 0x0000;

IFR = 0x0000;

// Initialize the PIE vector table with pointers to the shell Interrupt

// Service Routines (ISR).

// This will populate the entire table, even if the interrupt

// is not used in this example. This is useful for debug purposes.

// The shell ISR routines are found in DSP281x_DefaultIsr.c.

// This function is found in DSP281x_PieVect.c.

InitPieVectTable();

// Step 4. Initialize all the Device Peripherals:

// This function is found in DSP281x_InitPeripherals.c

// InitPeripherals(); // Not required for this example

InitXintf(); // For this example, init the Xintf

// Step 5. User specific code, enable interrupts:

init_eva();

//init_evb();

while(1)

{

for(i=0;i<65535;i+=1000)

{

Reg06=0;

EvbRegs.CMPR6 = i;

delay_loop();

}

}

}

void delay_loop()

{ short i,j;

for (i = 0; i < 1000; i++)

{for (j = 0; j < 10; j++);}

}

void init_eva()

{

// EVA Configure T1PWM, T2PWM, PWM1-PWM6

// Initalize the timers

// Initalize EVA Timer1

EvaRegs.T1PR = 0xFFFF; // Timer1 period

EvaRegs.T1CMPR = 0x3C00; // Timer1 compare

EvaRegs.T1CNT = 0x0000; // Timer1 counter

// TMODE = continuous up/down

// Timer enable

// Timer compare enable

EvaRegs.T1CON.all = 0x1042;

// Initalize EVA Timer2

EvaRegs.T2PR = 0x0FFF; // Timer2 period

EvaRegs.T2CMPR = 0x03C0; // Timer2 compare

EvaRegs.T2CNT = 0x0000; // Timer2 counter

// TMODE = continuous up/down

// Timer enable

// Timer compare enable

EvaRegs.T2CON.all = 0x1042;

// Setup T1PWM and T2PWM

// Drive T1/T2 PWM by compare logic

EvaRegs.GPTCONA.bit.TCMPOE = 1;

// Polarity of GP Timer 1 Compare = Active low

EvaRegs.GPTCONA.bit.T1PIN = 1;

// Polarity of GP Timer 2 Compare = Active high

EvaRegs.GPTCONA.bit.T2PIN = 2;

// Enable compare for PWM1-PWM6

//EvaRegs.CMPR1 = 0x0C00;

//EvaRegs.CMPR2 = 0x3C00;

EvaRegs.CMPR3 = 0xFC00;

// Compare action control. Action that takes place

// on a cmpare event

// output pin 1 CMPR1 - active high

// output pin 2 CMPR1 - active low

// output pin 3 CMPR2 - active high

// output pin 4 CMPR2 - active low

// output pin 5 CMPR3 - active high

// output pin 6 CMPR3 - active low

EvaRegs.ACTRA.all = 0x0666;

EvaRegs.DBTCONA.all = 0x0000; // Disable deadband

EvaRegs.COMCONA.all = 0xA600;

}

void init_evb()

{

// EVB Configure T3PWM, T4PWM and PWM7-PWM12

// Step 1 - Initialize the Timers

// Initialize EVB Timer3

// Timer3 controls T3PWM and PWM7-12

EvbRegs.T3PR = 0xFFFF; // Timer3 period

EvbRegs.T3CMPR = 0x3C00; // Timer3 compare

EvbRegs.T3CNT = 0x0000; // Timer3 counter

// TMODE = continuous up/down

// Timer enable

// Timer compare enable

EvbRegs.T3CON.all = 0x1042;

// Initialize EVB Timer4

// Timer4 controls T4PWM

EvbRegs.T4PR = 0x00FF; // Timer4 period

EvbRegs.T4CMPR = 0x0030; // Timer4 compare

EvbRegs.T4CNT = 0x0000; // Timer4 counter

// TMODE = continuous up/down

// Timer enable

// Timer compare enable

EvbRegs.T4CON.all = 0x1042;

// Setup T3PWM and T4PWM

// Drive T3/T4 PWM by compare logic

EvbRegs.GPTCONB.bit.TCMPOE = 1;

// Polarity of GP Timer 3 Compare = Active low

EvbRegs.GPTCONB.bit.T3PIN = 1;

// Polarity of GP Timer 4 Compare = Active high

EvbRegs.GPTCONB.bit.T4PIN = 2;

// Enable compare for PWM7-PWM12

EvbRegs.CMPR4 = 0x0C00;

EvbRegs.CMPR5 = 0x3C00;

EvbRegs.CMPR6 = 0xFC00;

// Compare action control. Action that takes place

// on a cmpare event

// output pin 1 CMPR4 - active high

// output pin 2 CMPR4 - active low

// output pin 3 CMPR5 - active high

// output pin 4 CMPR5 - active low

// output pin 5 CMPR6 - active high

// output pin 6 CMPR6 - active low

EvbRegs.ACTRB.all = 0x0666;

EvbRegs.DBTCONB.all = 0x0000; // Disable deadband

EvbRegs.COMCONB.all = 0xA600;

}

龙 岩 学 院

实 验 报 告

班 级 07电本(1)班 学号 050344 姓 名 杨宝辉 同组人 独立 实验日期 -6-3 室温 大气压 成 绩

高速A/D转换实验

一、实验目的

1.了解高速 AD工作的基本原理。

2.了解如果通过软件正确的控制高速AD。

3.掌握对高速 AD正确操作的过程

二、实验设备

1. 一台装有CCS软件的计算机;

2. DSP实验箱;

3. DSP硬件仿真器;

三、实验原理

实验箱用的高速 AD 为 TLC5510,它是一个 CMOS 结构的、具有高达20MSPS 的8位模数转换器。TLC5510 采用单5V 供电,功耗仅为 130mW。TLC5510 内部包含有一个采样保持电路、具有高阻输出的并行接口以及内部参考电压等。

7.DSP控制器原理及技术 篇七

DSP控制器原理及技术

院(系)名称学生姓名专业班级名称学号时间实验报告

自动化学院

2014年6月

: ::

: : 课内实验

3.1 CCS入门

3.1.1 CCS 入门实验 1(CCS 使用)3.1.1.1 实验目的:

1.熟悉 CCS 集成开发环境,掌握工程的生成方法; 2.熟悉 SEED-DEC28335 实验环境; 3.掌握 CCS 集成开发环境的调试方法。3.1.1.2 实验内容: 1.DSP 源文件的建立; 2.DSP 程序工程文件的建立;

3.学习使用 CCS 集成开发工具的调试工具。3.1.1.3 实验背景知识: 3.1.1.3.1 CCS 简介

CCS 提供了配置、建立、调试、跟踪和分析程序的工具,它便于实时、嵌入式信号处理程序的编制和测试,它能够加速开发进程,提高工作效率。CCS 提供了基本的代码生成工具,它们具有一系列的调试、分析能力。CCS 支持如下所示的开发周期的所有阶段。如下图所示。

开发环境界面如下图所示。

3.1.1.3.2 使用 CCS 常遇见文件简介:

1.program.c: C 程序源文件 2.program.asm: 汇编程序源文件

3.filename.h: C 程序的头文件,包含 DSP/BIOS API 模块的头文件 4.filename.lib: 库文件 5.project.cmd: 连接命令文件

6.program.obj: 由源文件编译或汇编而得的目标文件

7.program.out: 经完整的编译、汇编以及连接后生成可执行文件 8.program.map: 经完整的编译、汇编以及连接后生成空间分配文件 9.project.pjt: 存储环境设置信息的工作区文件 保存配置文件时将产生下列文件: 1.programcfg.cmd: 连接器命令文件 2.programcfg.h54: 汇编头文件 3.programcfg.s54: 汇编源文件 3.1.1.3.3 CCS 常用指令简介 1.设置断点。将光标放置在需要设置断点的程序行前,选择 Debug→Breakpoints,即完成可 一个断点的设置。

2.CCS 提供 3 种方法复位目标板

1)Reset DSP: Debug →Reset D,初始化所有的寄存器内容并暂停运行中的 程序。使用此命令后,要重新装载.out 文件后,再执行程序。

2)Restart: Debug → Restart,将 PC 值恢复到当前载入程序的入口地址。3)Go main: Debug →Go main,将程序运行到主程序的入口处暂停。3.CCS 提供 4 种执行操作

1)执行执行: Debug →Run,程序运行直到遇到断点为止。2)暂停执行: Debug →Halt,程序停止运行。

3)动画执行: Debug →Animate,用户反复运行程序,直到遇到断点为止。4)自由执行: Debug →Run Free,禁止所有断点运行程序。4.CCS 提供 4 种单步执行操作

1)单步进入: 快捷键 F8,Debug →step into,当调试语句不是基本的汇编指令时,此操作进入语句内部。

2)单步执行: Debug → step Over,此命令将函数或子函数当作一条语句执行,不进入内部调试。

3)单步跳出: Debug →step Out,此命令作用为从子程序中跳出 4)执行到光标处: 快捷键 crtl+F10,Debug → Run to Cursor,此命令作用为将程序运行到光标处。5.内存、寄存器与变量的操作

1)查看变量: 使用 view →Watch Window 命令

2)查看寄存器: 使用 view →Registers →CPU Registers 命令 3)查看内存: 使用 view →memory 命令 3.1.1.4 实验准备:

1.将 DSP 仿真器与计算机连接好;

2.将 DSP 仿真器的 JTAG 插头与 SEED-DEC28335 单元的 J18 相连接; 3.启动计算机,当计算机启动后,打开 SEED-DTK28335 的电源。观察

SEED-DTK_MBoard 单元的+5V,+3.3V,+15V,-15V 的电源指示灯灯及SEED-DEC28335 的电源指示灯 D2 是否均亮;若有不亮,请断开电源,检查电源。

4.CCS配置

(1)双击SETUP CCStudio3.3;

(2)在famlily中选择C28XX,在platform中选择SEEDXDS510PLUS;

(3)点击左下角save&quit,进入CCS主调试界面。3.1.1.5 实验步骤: 3.1.1.5.1 创建源文件 1.双击图标进入 CCS 环境。

2.打开 CCS 选择 File →New →Source File 命令。

3.编写源代码并保存

4.保存源程序名为 math.c,选择 File →Save

5.创建其他源程序(如.cmd)可重复上述步骤。3.1.1.5.2 创建工程文件

1.打开 CCS,点击 Project-->New,创建一个新工程,其中工程名及路径可任

指定。

弹出如下对话框:

2.在 Project 中填入工程名,Location 中输入工程路径;其余按照默认选项,点击完成即可完成工程创建;

3.点击 Project 选择 add files to project,添加工程所需文件;

4.在弹出的对话框中的下拉菜单中分别选择.c 点击打开,即可添加源程序Math.c添加到工程。

5.同样的方法可以添加文件 math.cmd、rts.lib 到工程中;在下面窗口中可以看到math.c、math.cmd、rts.lib 文件已经加到工程文件中。

3.1.1.5.3 设置编译与连接选项

1.点击 Project 选择 Build Opitions;

2.在弹出的对话框中设置相应的编译参数,一般情况下,按默认值就可以;

3.在弹出的对话框中选择连接的参数设置,设置输出文件名(可执行文件与空间分配文件),堆栈的大小以及初始化的方式。

3.1.1.5.4 工程编译与调试

1.点击 Project →Build all,对工程进行编译,如正确则生成 out 文件;若是修改程序,可以使用 Project →Build 命令,进行编译连接,它只对修改部分做编译连接工作。可节省编译与连接的时间。编译通过,生成.out 文件;

2.点击 File →load program,在弹出的对话框中载入 debug 文件夹下的.out 可执行文件;

3.装载完毕;

4.点击 debug →Go Main 回到 C 程序的入口;

5.打开 File →Workspace →Save Workspace 保存调试环境,以便下次调试时不需要重新进行设置。只要 File →Workspace →Load Workspace 即可恢复当前设置。

心得体会:通过本次实验使我掌握了CCS实验环境的使用以及相应程序的内容和使用并粗略掌握用C语言编写DSP程序的方法。对本次实验的程序有了全面的了解,并在CCS实验环境下程序的编译及编译中出现的错误的排除错误,警告的处理方法。通过实验,加深了我对DSP试验箱的TMS320F2812主控板的了解同时懂得了如何使用DSP硬件仿真器。

8.dsp作业 篇八

方向:姓名:成绩:

1、试分析下列程序产生流水线冲突的原因,并说明如何解决该流水线冲突。

STLMA, AR0

LD*AR0, B(12分)

2、循环循址是实现循环缓冲区的关键,简要说明循环缓冲区中循环循址算法的基本工作原理。(12分)

3、试分析DSP与通用微处理器相比有哪些优势,为什么DSP处理器更适合做数字算法的处理。(12分)

4、有一个阶数为N=8的FIR滤波器,其单位冲击响应序列h(n)如下:h(0)=0.1, h(1)=0.2, h(2)=0.3, h(3)=0.4, h(4)=0.4, h(5)=0.3, h(6)=0.2, h(7)=0.1,试根据上述滤波器的特点,编写一个DSP程序实现该滤波器。要求用循环缓冲区法实现。(16分)

5、直接型二阶IIR滤波器的差分方程为:

y(n)b0x(n)b1x(n1)b2x(n2)a1y(n1)a2y(n2)

试用循环缓冲区法实现直接型二阶IIR滤波器。(16分)

6、试用DSP上的定时器设计一个方波信号发生器,并通过DSP的输出引脚XF输出。要求方波信号的周期为40s,占空比为50%,方波周期由片上定时器0确定,假定DSP系统时钟频率为4MHz。请根据要求写出设计参数,并编写相关程序。(16分)

9.CF卡与双核DSP的实现 篇九

摘要:介绍了目前PC机中最为流行的硬盘接口技术和磁盘文件管理系统,并在此基础上实现了双核TMS320VC5421与CompactFlash存储卡的接口,解决了嵌入式系统普遍存在的数据空间狭小的问题。

关键词:DSPIDE接口硬盘文件管理系统CompactFlash存储卡

目前,许多工业检测系统要求其前端设备能实时采集大量数据,有些系统甚至还要求其前端设备能够完成实时的数据处理。因此一般工业检测系统将其前端嵌入式系统与一台PC机相连或其前端设备就是一台PC机,再通过网络将采集到的数据传递给主控制系统。这类工业检测系统体积较大且对外部的环境要求高。

本文实现了TMS320VC5421与CompactFlash存储卡(以下简称CF卡)的接口。利用DSP的高速数字信号处理能力可完成数据的实时采集和处理;利用CF卡的容量大、非易失性和即插即用的特性可完成数据保存和传输。因此TMS320VC5401与CF卡的接口在工业检测前端系统的应用中有很好的前景。

1TMS320VC5421芯片介绍

数字信号处理器(DSP)是数字信号处理理论与超大规模集成电路(VLSI)技术融合的结晶。TMS320VC5421更是定点系列DSP中的佼佼者。其系统框架如图1所示。

TMS320VC5421有4个主要特点:

(1)TMS320VC5421包含两个独立的DSP子系统。每个子系统都有独立的程序空间、数据空间和I/O空间,且每个子系统分别具有片内4套总线即4条地址总线、4条数据总线(3种数据总线用来访问片内数据空间,1条数据总线用来访问程序空间)和2个地址发生辅助寄存器来实现并行运算和并行存储功能,提高CPU的运算效率。

(2)TMS320VC5421的每一个子系统都有6个独立的DMA通道,且可对每个DMA通道进行独立编程。TMS320VC5421的两个子系统的所有程序空间、数据空间和I/O空间都在每个DMA通道的寻址范围内。

(3)TMS320VC5421的工作频率最高可达到100MIPS,且两个子系统的工作时钟统一由子系统A控制。

(4)TMS320VC5421的两个子系统之间同步信号可以由IPIRQ中断提供。

TMS320VC5421有3种方式实现不同子系统中的数据传输:

(1)将数据存放在两个子系统共享的128KB程序空间中,由共享的128KB程序空间实现数据传递。

(2)将数据存放在与两个系统分别相连的16字的FIFO中,由FIFO实现两个子系统的数据传递。

(3)通过DMA将数据传输到任意子系统的任意空间。

2CompactFlash存储卡产品介绍

CompactFlash技术是由CompactFlash协会(CFA)提出的一种与PC机的ATA接口标准兼容的新技术,它致力于开发一种先进的、速度快、容量大、体积小、质量轻、功耗低且可移动的数字信息存储产品。

由图2可知,CF卡包含两个基本部分:片内的芯片控制器和片内的存储模块。片内的存储模块用来存储数字信息,片内的芯片控制器用来实现与主机的接口及控制数据在存储模块中的传输。

2.1CF卡控制器

CF卡控制器中包含两组寄存器:命令寄存器和控制寄存器。命令寄存器用来接受命令和传输数据;控制寄存器用作磁盘控制。这两个寄存器组通过REG信号进行区分。控制寄存器组主要用于控制CF卡的工作方式;命令寄存器组被分配在与ATA标准兼容的地址空间。当CF卡工作在I/O方式下,命令寄存器组的地址空间为IF0H~1F7H和3F6H~3F7H;当CF卡工作在寄存器方式下,命令寄存器组的地址空间为1F0H~1FFH。

当CF卡工作在存储器方式下,CF卡按照ATA标准以寄存器方式传送数据、命令和地址。些寄存器除数据寄存器为16位外,其它寄存器均为8位。

数据寄存器(R/W):这是一个16位数据寄存器,用于对扇区的读写操作。主机通过该寄存器向CF卡卡控制器写入或从CF卡控制寄存器读出扇区缓冲区的数据。

错误寄存器(R)和特性寄存器(W):错误寄存器反映控制寄存器在诊断方式或操作方式下的`错误原因。特性寄存器一般不使用。

扇区数寄存器(R/W):用来记录读、写命令的扇区数目。

扇区号寄存器(R/W):用来记录读、写和校验命令指定的起始扇区号。

柱面号寄存器(R/W):用来记录读、写、校验和寻址命令指定的柱面号。

驱动器/磁头寄存器(R/W):记录读、写、校验和寻道命令指定的驱动器号、磁头号和寻址方式(CHS模式或LBA模式)。

状态寄存器(R)和命令寄存器(W):状态寄存器反映CF卡驱动器执行命令后的状态,读该寄存器要清除中断请求信号。命令寄存器接收主机发送的CF卡工作的命令控制字[1]。

2.2CF卡的编址方式

CF卡的扇区寻址有两种方式:物理寻址方式(CHS)和逻辑寻址方式(LBA)。物理寻址方式使用柱面、磁头和扇区号表示一个特定的扇区。起始扇区是0磁道、0磁头、1扇区,接下来是2扇区,一直到EOF扇区;接下来是同一柱面1头、1扇区等。逻辑寻址方式将整个CF卡同一寻址。逻辑块地址和物理地址的关系为:

LBA地址=(柱面号×磁头数+磁头号)×扇区数+扇区数-1

采用逻辑寻址方式,没有磁头和磁道的转换操作,因此在访问连续扇区时,操作速度比物理寻址方式块。

3磁盘文件管理系统简介

为了能够对大容量磁盘上的数据进行有效的管理,Win9X在磁盘上建立了一个文件系统。该文件系统可对磁盘上的数据进行有效的管理。

磁盘文件系统将整个磁盘划分为4个独立的区域,每个区域包含磁盘的独立信息,且这4个独立区域中的信息组合成一个完整有效的磁盘文件管理系统,如表1所示。

表1磁盘文件管理系统结构

DOS引导扇区文件分配区(FAT)根目标区(FDT)文件数据区

(1)DOS引导扇区:该扇区是磁盘的引导扇区,包含一些重要的磁盘系统信息,如:磁盘总共包含多少个扇区,每个族包含多少个扇区,每个扇区包含多少个字节等。通过这些磁盘系统信息可以计算出磁盘的容量、FAT表和FDT表的起始位置以及文件数据存放的起始位置等。

(2)文件分配区(FAT):文件分配区包含两个完全相同的FAT表,其中一个FAT表用作备份FAT。每个FAT表以16字节为个单元。FAT的每一个单元都映射磁盘上的一个簇,其中的值就反映了该簇的使用情况。

(3)根目录区(FDT):根目录区专用来存放根目录下的文件信息。根目录下的每一个文件在该目录区都对应一个32字节的目录项。这32字节的目录项包含文件的名称、属性、文件的长度、文件在磁盘上的起始簇号、文件建立和最后修改和日期和时间等。这些32字节的小单元互相首尾相接,中间没有任何分隔标志。

(4)文件数据区:该区是磁盘存放所有信息的场所为了便于管理,文件管理系统以簇为单位将文件分配在文件数据区的存储空间。1族总是2n个连续扇区。文件在文件数据区存放的起始位置存放在其对应目录下的FDT表中,当文件的长度大于1K时,文件数据区的后续位置保存在FAT表中,即对应的FAT单元中的数值就是文件的后续部分所存放位置的簇号。

文件管理系统通过以上4个区域实现对磁盘上的文件进行有效的管理。文件管理系统将文件数据存放在文件数据区,将文件的属性存放在文件对应目录下的FDT表中,将文件的存放位置存放在FAT表中。因此文件管理系统通过FAT表和FDT表可以很方便地对文件数据区的文件进行管理。

4TMS320VC5421与CF卡的硬件接口

TMS320VC5421对外有I/O、程序和数据3个并行的16位访问空间,分别由对应的空间选择信号线选通。本硬件电路选用TMS320VC5421的I/O空间与CF卡接口,采用数据线分时复用方式。

如图3所示,本电路使用DSP子系统A与前向通道相连。DSP子系统A对采集到的数据进行实时处理,完成数据的实时处理后,通过核间的3种数据传输方式将采集到的数据发送到DSP子系统B中,并且通过核间中断IPIRQ通知DSP子系统B可以存储CF卡。

4.1CF卡即插即用的实现

(1)硬件提供判断条件。CF卡为了实现即插即用的功能,在自身电路上提供了两个用来检测CF卡是否存在的管脚(CD1、CD2)。CD1和CD2的有效电平为低电平,即当主机检测到与其相连的CD1和CD2两个管脚同时为低电平时,可判断出CF卡与主机相连;当主机检测到与其相连的CD1和CD2有一个管脚不为低,则可判断出CF卡未与主机相连。

(2)软件实现。首选定义全局变量(如:IsExist)用于记录CF卡是否与主机相连,当IsExist为0时表示CF卡未与主机相连;当IsExist为1时表示CF卡与主机相连。其次在每次操作CF卡时检测CF卡的CD1和CD2管脚。当检测到CD1和CD2管脚为低电平且IsExist为0时复位CF卡,重新检测CF卡的FAT表统计还剩余多少空间可以分配,检测完FAT表后置变量IsExist为1。当检测到CD1和CD2管脚为低电平且IsExist为1时,继续CF卡的正常操作。当检测到CD1和CD2为高时,停止CF卡操作,置变量IsExist为0。

4.2文件的存储

向CF卡创建文件的流程如图4所示。在CF卡初始化后(包含CF卡上电复位和统计剩余空间等),DSP向CF卡存储数据的核心部分就是首先向一些必要的寄存器填写必要的信息,如向扇区号寄存器填写读写数据的起始扇区号(LBA地址)和扇区数寄存器填写读写数据所占的扇区个数等。然后向CF卡的命令寄存器写入CF卡操作的命令字,如写操作则向CF卡的命令寄存器写入30H,读操作向CF卡的命令寄存器写入20H等。

10.DSP原理及应用复习总结 篇十

中央处理器的体系架构分为:冯·诺依曼结构和哈佛结构 冯·诺依曼结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。由于取指令和存取数据要从同一个存储空间存取,经由同一总线传输,因而它们无法重叠执行,只有一个完成后再进行下一个。

哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。可以减轻程序运行时的访存瓶颈。

基础特性分类:静态DSP芯片、一致性的DSP芯片。数据格式分类:定点DSP芯片、浮点DSP芯片。用途分类:通用型DSP芯片、专用型DSP芯片。处理数据位数分类:16/32位 TMS320F2812芯片封装方式两类:179引脚的GHH球形网格阵列BGA封装、176引脚的LQFP封装。

DSP内部总线分为:地址总线和数据总线。注意:DSP外部总线:即DSP芯片与外扩存储器的总线接口,包括19根地址线和16根数据线。

时序寄存器XTIMINGx主要用于设置读写时序参数;配置寄存器XINTCNF2主要完成选择是种,设置输入引脚状态及写缓冲器深度;控制寄存器XBANK用于设置可增加周期的特定区,以及设置增加的周期数。

命令文件CMD是DSP运行程序必不可少的文件,用于指定DSP存储器分配。由两个伪指令构成,即MEMORY(定义目标存储器的配置)和SECTIONS(规定程序中各个段及其在存储器中的位置)。

28X系列DSP时钟和系统控制电路包括:振荡器、锁相环、看门狗和工作模式选择等

锁相环和振荡器的作用是为DSP芯片中的CPU及相关外设提供可编程的时钟芯片内部的外设分为告诉我社和低速外设,可以设置不同的工作频率看门狗模块用于监控程序的运行状态,它是提高系统可靠性的重要环节。

28xDSP片上晶振电路模块允许采用内部振荡器或外部时钟源为CPU内核提供时钟

DSP处理器内核有16根中断线,包括和NMI两个不可屏蔽中断和INT1至INT14等14个可屏蔽中断(均为低电平有效)。PIE中断系统共分12组,每组有8个中断复用1个CPU中断。采用三级中断机制:外设级、PIE级、CPU级

PIE中断工作原理:当某外设产生中断,IF被置1,IE也被置1,发送到PIE控制器,中断标志PIEIFRx.v被置1,中断请求发送到CPU,CPU级IFR中对应INTx被置1,IER和INTM被使能,CPU响应中断请求。

CPU定时器用户只能用T0,通用定时器是EV中的都可以用;CPU定时器只有周期中断,而EV中的通用定时器可以有上溢中断、下溢中断、周期中断、比较中断四种。

功能控制寄存器:GPxMUX、GPxDIT、GPxQUAL。

数据寄存器:GPxSET寄存器设置每个引脚为高电平;GPxCLEAR清除每个引脚信号;GPxTOGGLE反转触发每个引脚信号;GPxDAT读写每个引脚信号

事件管理器包括:通用定时器、圈比较PWM单元、捕获单元以及正交编码脉冲电路QEP 全比较PWM单元产生脉宽调制信号可以控制直流电机或步进电机的转速;捕获单元对光电编码器的输出信号进行测量可以计算电机的转速;正交编码脉冲电路根据增量编码器信号计算电机的旋转方向等信息。

通用定时器的寄存器:控制寄存器(决定通用定时器的操作模式,例如选择计数模式、时钟、预分频系数、比较寄存器的重装载条件)、全局控制寄存器(规定了通用定时器针对不同时间采取的动作、读取计数方向、定义ADC的启动信号)、比较寄存器(与通用定时器的计数值不断比较,匹配时,相应引脚跳变,请求中断)和周期寄存器(决定定时器的计数周期)是双缓冲的

通用定时器的中断:上溢中断、下溢中断、比较匹配、周期匹配

每个通用定时器都支持4种计数模式:停止/保持模式、连续递增计数模式、定向递增/递减计数模式和连续递增/递减计数模式。

EV模块各有3个全比较器,每个比较器对应两路PWM输出

每个比较单元包括3个比较寄存器CMPRX,各带一个映像寄存器;1个比较控制寄存器;1个动作控制寄存器;6路带三态输出的PWM引脚以及控制和中断逻辑。

较单元的输入包括来自控制寄存器的控制信号,通用定时器1的时钟信号及下溢信号、周期匹配信号和复位信号。比较单元输出信号是一个比较匹配信号,如果比较操作被使能的话,比价匹配信号将中断标志置位,并在对应的PWM引脚上产生跳变。比较单元的工作过程:通用定时器1的计数值不断地与比较寄存器的值进行比较,当发生匹配时,该比较单元的两个输出引脚发生跳变;ACTRA寄存器定义在发生比较匹配时每个输出引脚为高有效电平或低有效电平。

PWM单元对称/不对称波形发生器、可编程死区单元DBU、PWM输出逻辑和空间向量SVPWM状态机组成。ADC模块的特点:12位模数转换内核,内置双采样/保持器;顺序采样模式或并行采样模式;模拟输入电压范围0-3v;快速的转换时间,最高采样率12.5MSPS;16通道模拟信号输入; 并行采样:AdcRegs.ADCTRL3.bit.SMODE_SEL=1;顺序采样为0 双排序AdcTegs.ADCTRL1.bit.SEQ_CASC=0;级联排序为1 AdcRegs.ADCMAXCONV.all=0x0033并双;7并级;77顺双;F顺级 AdcRegs.ADCCHSELSEQ1.bit.CONV00=0x0 ADC工作模式:连续模式和启动/停止模式。ADC电源:上电、掉电、关闭模式。

上电顺序:给参考电源上电、给adc内部参考电源电路供电、adc模块完全供电后,等20μs才能执行第一次模数转换。

28x DSP的输入信号电压不能高于3.3V,模拟信号需经过调理后进入DSP的AD转换输入端口,未使用的模数转换器输入引脚,都要连接模拟地,否则会带来噪声信号

电源管理电路设计:多电源正确连接;不允许有电源引脚悬空;减少噪音和互相干扰,数电和模电单独供电,接地也分开,最终通过一个磁珠在单点连接

DSP编程语言特点:c语言:具有良好可读性和可移植性,开发率高;汇编语言:高的运行效率,常用语时间要求比较苛刻的地方,比如终端服务子程序。

头文件的作用:是c语言不可缺少的部分,是用户程序和函数库之间的纽带;头文件使用:用户程序只要按照头文件中的接口声明来调用库功能,编译器就会从库中提取相应的代码 C语言程序框架包含有寄存器结构定义文件、外设头文件、器件的宏与类型定义等,通过使用头外设文件,可以容易控制片内外设。

DSP程序包括:头文件包含、函数声明、宏定义、主函数main()和中断服务子程序

主函数的编程步骤:1初始换系统控制2清除所有中断并初始化PIE向量表3初始化所有用到的外设4开中断5编写用户代码 #include “DSP281x_Device.h”

#include “DSP281x_Examples.h”

interrupt void cpu_timer0_isr(void); void main(void)// {

InitSysCtrl(); DINT;

InitPieCtrl();

IER = 0x0000;

IFR = 0x0000;

InitPieVectTable(); EALLOW;

PieVectTable.TINT0 = &cpu_timer0_isr;

EDIS;InitGpio();InitCpuTimers();

ConfigCpuTimer(&CpuTimer0,100,1000000);

StartCpuTimer0();IER |= M_INT1;

PieCtrlRegs.PIEIER1.bit.INTx7 = 1;

EINT;

ERTM; …… }

interrupt void cpu_timer0_isr(void)

{

CpuTimer0.InterruptCount++;

PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;

上一篇:人教版二年级下册语文园地七口语交际下一篇:论公务员队伍能力建设