DSP入门必看(非常好的DSP扫盲文章)
DSP入门教程(非常经典)
3)对于 C5000 系列: 硬件等待信号为 READY,高电平时不等待。 软件等待由 SWWCR 和 SWWSR 寄存器决定,可以加入最多 14 个等待。其中程序存储器、控制程序存储器和 数据 存储器及 I/O 可以分别设置。
4)地址译码、IO 扩展等用 CPLD 或者 FPGA 来做,将 DSP 的地址线、数据线、控制信 号 线如 IS/PS/DS 等都引进去有利于调试
5、如何高效开始 TI DSP 的软件开发 如果你不是纯做算法,而是在一个目标版上进行开发, 需要使用 DSP 的片上外设,需要控 制片外接口电路,那么建议在写程序前先好好将这个目标 版的电路设计搞清楚。最重要的是 程序、数据、I/O 空间的译码。不管是否纯做算法还是软硬结合, DSP 的 CPU,memory,program memory addressing, data mem.ory addressing 的资料都需要看.
1)看 CCS 的使用指南
2)明白 CMD 文件的编写
3)明白中断向量表文件的编写,并定位在正确的地方
4)运行一个纯 simulator 的程序,了解 CCS 的各个操作
5)到 TI 网站下相关的源码,参考源码的结构进行编程
6)不论是 C 编程还是 ASM 编程,模块化是必须的
6、选择 C 还是选择 ASM 进行编程 记住一条原则,TI 的工程师在不断改进 CCS 的 C 程序优化编译器,现在 C 优化的效率可 达 到手工汇编的 90%甚至更高。当然有的时候如果计算能力和内存资源是瓶颈,ASM 还 是有 优势,比如 G.729 编解码。但是针对一般的应用开发,C 是最好的选择。 新手编程则选择 C 和汇编混合编程更有利一些
DSP入门教程(非常经典)
5、如何高效开始 TI DSP 的软件开发 如果你不是纯做算法,而是在一个目标版上进行开发, 需要使用 DSP 的片上外设,需要控 制片外接口电路,那么建议在写程序前先好好将这个目标 版的电路设计搞清楚。最重要的是 程序、数据、I/O 空间的译码。不管是否纯做算法还是软硬结合, DSP 的 CPU,memory,program memory addressing, data mem.ory addressing 的资料都需要看.
DSP 的内部指令周期较高,外部晶振的主频不够,因此 DSP 大多Байду номын сангаас片内均有 PLL。但每个 系列不尽相同。
1)TMS320C2000 系列: TMS320C20x:PLL 可以÷2,×1,×2 和×4,因此外部时钟可以为 5MHz-40MHz。 TMS320F240:PLL 可以÷2,×1,×1.5,×2,×2.5,×3,×4,×4.5,×5 和×9,因此外部时钟 可 以为 2.22MHz-40MHz。 TMS320F241/C242/F243:PLL 可以×4,因此外部时钟为 5MHz。 TMS320LF24xx:PLL 可 以由 RC 调节,因此外部时钟为 4MHz-20MHz。 TMS320LF24xxA:PLL 可以由 RC 调节,因此外部时钟为 4MHz-20MHz。
3)C6000 系列:C62XX,C67XX,C64X 该系列以高性能著称,最适合宽带网络和数字 影 像应用。32bit,其中:C62XX 和 C64X 是定点系列,C67XX 是浮点系列。该系列提供 EMIF 扩展 存储 器接口。该系 列只提供 BGA 封 装,只能制作 多层 PCB。且功耗较 大。同为浮点 系列的 C3X 中的 VC33 现在虽非主流产品,但也仍在广泛使用,但 其速度较低,最高在 150MIPS。
DSP学习笔记
一、如何开始DSP的学习以下为各网友学习DSP的一些经验fxw451:大家先大体上看一遍书,把大体的知识了解一下。
其次就是看例子了,例子是关键,例子里有你学的所有的东西,这次你再拿出一本书来看,这次是有针对性的看,比如你做的spi的,你就直接看spi那张,一边看例子一边看书,这样你就可以把一些重要的寄存器给记住了。
对于初学者来说,一直好奇的就是ccs的使用,拿我第一次使用ccs来说,当我把ccs 和板子连载一起时,我相当高兴,成功感油然升起,接下来就是用ccs里的看自带的例子了,看完后你就会发现,这些是什么东东哦,什么都不会,这就对了,你要是看一开始看会了你就是神仙了,dsp不像单片机那么容易上手,所以你要花费点功夫吃透它,好东西不是那么容易就可以搞定的。
到了自己编程的时候了,这个时候不要要求自己能编一个什么样的程序,你要仿着例子里的东西全部搞定就可以了,这就是你编程的第一步,当然也是成功的一步,在这成功下,我相信你的积极性肯定被调到起来,对dsp越来越热爱了。
suary:1)把存储器映射结构搞清楚----说的具体点就是dsp内到底有那些存储器(ram,rom,flash,etc),这些存储器到底是如何分配的,这个可以参考相关的.cmd文件的写法,它定义了存储器映射和输入输出段的位置2)编译器的堆栈操作---有关这点我还是没有具体弄清楚,就是中断或是子程序调用时,系统自己的堆栈操作。
2407有一个8级硬件堆栈,而2812没有,这个区别比较大,所以在编一边针对堆栈操作的程序(eg. rtos)时就要特别注意了。
3) 中断系统----每个mcu的中断系统搞清楚了,会给编程带来很大的便利,所以一定要对所用的mcu的中断过程了解的清清楚楚。
4)数据结构---设计好的,适合的数据结构会使自己的程序编写变得结构清楚而且“容易”。
dsp31:我的经验是:DSP不管是软件和硬件开发一定要多思考,多比较。
软件人员一定要会调试和定位硬件电路的问题点。
DSP扫盲文件
DSP入门必看(非常好的DSP扫盲文章)(ZZ)(1)DSP可以降频使用吗?可以,DSP数字信号处理的主频均有一定的工作范围,因此DSP均可以降频使用。
如何选择外部时钟?DSP的内部指令周期较高,外部晶振的主频不够,因此DSP大多数片内均有PLL。
但每个系列不尽相同。
1)TMS320C2000系列:TMS320C20x:PLL可以÷2,×1,×2和×4,因此外部时钟可以为5MHz-40MHz。
TMS320F240:PLL可以÷2,×1,×1.5,×2,×2.5,×3,×4,×4.5,×5和×9,因此外部时钟可以为2.22MHz-40MHz。
TMS320F241/C242/F243:PLL可以×4,因此外部时钟为5MHz。
TMS320LF24xx:PLL可以由RC 调节,因此外部时钟为4MHz-20MHz。
TMS320LF24xxA:PLL可以由RC调节,因此外部时钟为4MHz-20MHz。
2)TMS320C3x系列:TMS320C3x:没有PLL,因此外部主频为工作频率的2倍。
TMS320VC33:PLL可以÷2,×1,×5,因此外部主频可以为12MHz-100MHz。
3)TMS320C5000系列:TMS320VC54xx:PLL可以÷4,÷2,×1-32,因此外部主频可以为0.625MHz-50MHz。
TMS320VC55xx:PLL可以÷4,÷2,×1-32,因此外部主频可以为6.25MHz-300MHz。
4)TMS320C6000系列:TMS320C62xx:PLL可以×1,×4,×6,×7,×8,×9,×10和×11,因此外部主频可以为11.8MHz -300MHz。
DSP_入门教程
DSP_入门教程DSP(Digital Signal Processing)是数字信号处理的缩写,它是利用数字技术对信号进行处理的一种方法。
在现代工程中,DSP技术广泛应用于各种领域,如音频处理、图像处理、通信系统等。
下面将为大家介绍DSP的基本概念和入门教程。
首先,我们来了解一下什么是数字信号处理(DSP)。
数字信号是指连续信号经过采样和量化处理后得到的离散数值序列,而数字信号处理就是在这个离散序列上进行一系列数学运算和算法处理的过程。
DSP可以通过数字滤波、傅里叶变换、时域分析等方法对信号进行处理,使其具备滤波、降噪、压缩等功能。
要学习DSP,首先需要了解一些基本概念。
首先是采样和量化。
采样是指将连续信号在时间上进行离散化,即以一定的时间间隔对信号进行观测,得到一系列的采样值。
量化是指将采样得到的连续幅度值转换为离散幅度值的过程。
采样和量化是将连续信号转换为离散信号的关键步骤。
接下来是数字滤波。
数字滤波是指在离散时域或频域上进行滤波操作。
常见的数字滤波器有低通滤波器、高通滤波器、带通滤波器等。
数字滤波可以用于信号去噪、提取感兴趣的频率成分、改善信号质量等。
另外,我们还需要了解一些基本的数学运算和算法。
傅里叶变换是一种重要的信号处理方法,可以将时域信号转换为频域信号,从而分析信号的频谱特性。
在DSP中,快速傅里叶变换(FFT)是一种常用的算法,可用于高效计算傅里叶变换。
此外,数字信号处理还涉及到一些常见的算法,如卷积、相关、自相关、互相关等。
这些算法可以用于信号的滤波、特征提取、模式识别等任务。
要学习DSP,可以首先通过学习相关的数学知识打好基础。
掌握离散数学、线性代数、复变函数等基本概念,对于理解和应用DSP技术非常重要。
其次,可以学习一些基本的DSP算法和工具。
如学习使用MATLAB软件进行信号处理,掌握常用的DSP函数和工具箱,进行信号的滤波、频谱分析等操作。
另外,可以学习一些经典的DSP案例和应用。
DSP入门必看(非常好的DSP扫盲文章)(ZZ)(6)
WriteFlash(iFlashAddr,0x8000);
iFlashAddr++;
for (iLoop=0;iLoop<0x7f00;iLoop++)
{ /*从程序空间读数据,放到暂存单元*/
asm(" pshm al");
asm(" pshm ah");
asm(" rsbx cpl");
有源晶振与晶体的区别,应用范围及用法
1)晶体需要用DSP片内的振荡器,在datasheet上有建议的连接方法。晶体没有电压的问题,可以适应于任何DSP,建议用晶体。2)有源晶振不需要DSP的内部振荡器,信号比较稳定。有源晶振用法:一脚悬空,二脚接地,三脚接输出,四脚接电压。
程序经常跑飞的原因
1)程序没有结尾或不是循环的程序。
2.提供串口编写:TI的网页上有相关软件。注意只能编写一次,因为编写程序会破坏串口通信程序。
3.在你的程序中编写:TI的网页上有相关资料。
如何编写DSP外部的Flash?
DSP的外部Flash编写方法:
1.通过编程器编写:将OUT文件通过HEX转换程序转换为编程器可以接受的格式,再由编程器编写。
2.通过DSP软件编写:您需要根据Flash的说明,编写Flash的编写程序,将应用程序和编写Flash的程序分别load到RAM中,运行编写程序编写。
asm(" ld #00fch,dp");
asm(" stm #0000h, ah");
asm(" MVDM _iLoop, al");
asm(" add #2800h,4,a");
DSP基础知识简洁版(适合考试用)
一、名词解释1、数字信号处理理论(Digital Signal Processing):频谱分析、数字滤波器设计、自适应信号处理、信号压缩、信号建模……2、数字信号处理器 (Digital Signal Processor) :专门针对数字信号的数学运算需要而设计开发的一类集成电路芯片3、冯·诺依曼结构:也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。
由于取指令和存取数据要从同一个存储空间存取,经由同一总线传输,因而它们无法重叠执行,只有一个完成后再进行下一个。
4、哈佛结构:是一种将程序指令存储和数据存储分开的存储器结构。
可以减轻程序运行时的访存瓶颈。
5、专用的硬件乘法器:典型的FFT、IIR和FIR等数字信号处理算法中,乘法是DSP运算的重要组成部分;DSP芯片中有专用的硬件乘法器,一次或多次的乘法累加运算可以在一个指令周期内完成。
6、特殊的DSP指令:专门为实现数字信号处理的算法而设置特殊指令;位倒序寻址、循环寻址等特殊指令能够方便快速地实现FFT算法。
7、流水线操作:执行指令的几个阶段在程序执行过程中是重叠的,即几条不同的指令同时处于激活状态,每条指令处于不同的阶段。
8、晶振时钟信号:‘28x DSP片上晶振电路模块允许采用内部振荡器或外部时钟源为CPU内核提供时钟;在使用片上晶振模块的内部振荡器时,应当在X1/XCLKIN和X2两个引脚之间连上一个石英晶振,片上晶振模块输出与石英晶振频率相同的时钟信号,典型的晶振频率是30MHz。
采用外部时钟应把时钟信号直接接到X1/XCLKIN引脚,X2引脚则必须悬空,这时内部振荡器不工作,片上晶振模块输出该外部时钟信号。
二、简答题1.PWM变化PWM输出变化由一个对称/非对称波形发生器和一个相关输出逻辑控制,同时还要依赖于以下几种情况:(1)GPTCONA/B中位的定义;(2)定时器的计数模式;(3)定时器处于连续增/减计数模式下的计数方向。
DSP入门教程
DSP入门教程DSP(Digital Signal Processing,数字信号处理)是一门与数字信号进行各种处理的技术与领域。
在现代科技的发展中,DSP扮演着非常重要的角色,它在通信、图像处理、音频处理、雷达系统等各个领域都有广泛的应用。
本文将为大家介绍DSP的基本概念和入门知识,并推荐一些经典的学习教材。
首先,DSP的基本原理是将信号转换为数字形式,然后利用计算机算法对数字信号进行处理。
数字信号是连续时间信号的离散化,可以通过采样和量化将连续时间信号转换为数字形式。
然后,通过各种算法对数字信号进行滤波、变换、压缩等处理,最后再将数字信号转换为模拟信号输出。
为了更好地理解DSP的原理和算法,有一些经典的教材是非常推荐的。
以下是一些经典的DSP学习教材:1.《数字信号处理(第四版)》这本教材是DSP领域里的权威之作,被广泛认为是DSP的入门经典。
书中介绍了数字信号处理的基本概念和原理,并涵盖了滤波、变换、解调等常见的DSP算法。
2.《信号与系统:连续与离散时间的综合》这本书是DSP的前身,信号与系统的经典教材之一、书中介绍了连续时间信号和离散时间信号的基本概念和特性,以及各种信号处理方法与算法。
3.《数字信号处理:实用解决方案》这本书是一本非常实践的DSP教材,通俗易懂地介绍了数字信号处理的基本理论和应用。
书中还提供了大量的MATLAB实验和示例代码,非常适合初学者上手和实践。
4.《数字信号处理和滤波》这本书介绍了数字信号处理和滤波的基本概念和原理,并通过实验和示例演示了各种滤波方法的应用。
书中的内容结构清晰,适合初学者系统地学习和理解DSP。
此外,如果你喜欢在线学习,一些在线学习平台也提供了优质的DSP 课程,如Coursera、edX、Udemy等。
这些平台上的DSP课程涵盖了从入门到高级的知识内容,配有视频讲解和练习项目,非常适合自学和深入学习。
总结起来,DSP是一门应用广泛的技术与领域,学习DSP需要掌握信号采样与量化、滤波、变换等基本概念和算法。
DSP入门必看(非常好的DSP扫盲文章)
DSP入门必看(非常好的DSP扫盲文章)(ZZ)(7)如何设置硬件断点?在profiler ->profile point -> break pointc54x的外部中断是电平响应还是沿响应?是沿响应,准确的说,它要检测到100(一个clk的高和两个clk的低)的变化才可以。
参考程序,里面好象都要dISAble wachdog,不知道为什么?watchdog是一个计数器,溢出时会复位你的DSP,不dISAble的话,你的系统会动不动就reset。
时钟电路选择原则1,系统中要求多个不同频率的时钟信号时,首选可编程时钟芯片;2,单一时钟信号时,选择晶体时钟电路;3,多个同频时钟信号时,选择晶振;4,尽量使用DSP片内的PLL,降低片外时钟频率,提高系统的稳定性;5,C6000、C5510、C5409A、C5416、C5420、C5421和C5441等DSP片内无振荡电路,不能用晶体时钟电路;6,VC5401、VC5402、VC5409和F281x等DSP时钟信号的电平为1.8V,建议采用晶体时钟电路C程序的代码和数据如何定位1,系统定义:.cinit 存放C程序中的变量初值和常量;.const 存放C程序中的字符常量、浮点常量和用const声明的常量;.switch 存放C程序中switch语句的跳针表;.text 存放C程序的代码;.bss 为C程序中的全局和静态变量保留存储空间;.far 为C程序中用far声明的全局和静态变量保留空间;.stack 为C程序系统堆栈保留存储空间,用于保存返回地址、函数间的参数传递、存储局部变量和保存中间结果;.sysmem 用于C程序中malloc、calloc和realloc函数动态分配存储空间2,用户定义:#pragma CODE_SECTION (symbol, "section name");#pragma DATA_SECTION (symbol, "section name")cmd文件由3部分组成:1)输入/输出定义:.obj文件:链接器要链接的目标文件;.lib文件:链接器要链接的库文件;.map文件:链接器生成的交叉索引文件;.out文件:链接器生成的可执行代码;链接器选项2)MEMORY命令:描述系统实际的硬件资源3)SECTIONS命令:描述“段”如何定位为什么要设计CSL?1,DSP片上外设种类及其应用日趋复杂2,提供一组标准的方法用于访问和控制片上外设3,免除用户编写配置和控制片上外设所必需的定义和代码什么是CSL?1,用于配置、控制和管理DSP数字信号处理片上外设2,已为C6000和C5000系列DSP设计了各自的CSL库3,CSL库函数大多数是用C语言编写的,并已对代码的大小和速度进行了优化4,CSL库是可裁剪的:即只有被使用的CSL模块才会包含进应用程序中5,CSL库是可扩展的:每个片上外设的API相互独立,增加新的API,对其他片上外设没有影响CSL的特点1,片上外设编程的标准协议:定义一组标准的APIs:函数、数据类型、宏;2,对硬件进行抽象,提取符号化的片上外设描述:定义一组宏,用于访问和建立寄存器及其域值3,基本的资源管理:对多资源的片上外设进行管理;4,已集成到DSP/BIOS中:通过图形用户接口GUI对CSL进行配置;5,使片上外设容易使用:缩短开发时间,增加可移植.为什么需要电平变换?1) DSP系统中难免存在5V/3.3V混合供电现象;2)I/O为3.3V供电的DSP,其输入信号电平不允许超过电源电压3.3V;3)5V器件输出信号高电平可达4.4V;4)长时间超常工作会损坏DSP器件;5)输出信号电平一般无需变换电平变换的方法1,总线收发器(Bus Transceiver):常用器件:SN74LVTH245A(8位)、SN74LVTH16245A(16位)特点:3.3V供电,需进行方向控制,延迟:3.5ns,驱动:-32/64mA,输入容限:5V应用:数据、地址和控制总线的驱动2,总线开关(Bus Switch)常用器件:SN74CBTD3384(10位)、SN74CBTD16210(20位)特点:5V供电,无需方向控制延迟:0.25ns,驱动能力不增加应用:适用于信号方向灵活、且负载单一的应用,如McBSP等外设信号的电平变换3,2选1切换器(1 of 2 Multiplexer)常用器件:SN74CBT3257(4位)、SN74CBT16292(12位)特点:实现2选1,5V供电,无需方向控制延迟:0.25ns,驱动能力不增加应用:适用于多路切换信号、且要进行电平变换的应用,如双路复用的McBSP4,CPLD3.3V供电,但输入容限为5V,并且延迟较大:>7ns,适用于少量的对延迟要求不高的输入信号5,电阻分压10KΩ和20KΩ串联分压,5V×20÷(10+20)≈3.3V未用的输入/输出引脚的处理1,未用的输入引脚不能悬空不接,而应将它们上拉活下拉为固定的电平1)关键的控制输入引脚,如Ready、Hold等,应固定接为适当的状态,Ready引脚应固定接为有效状态,Hold引脚应固定接为无效状态2)无连接(NC)和保留(RSV)引脚,NC 引脚:除非特殊说明,这些引脚悬空不接,RSV引脚:应根据数据手册具体决定接还是不接3)非关键的输入引脚,将它们上拉或下拉为固定的电平,以降低功耗2,未用的输出引脚可以悬空不接3,未用的I/O引脚:如果确省状态为输入引脚,则作为非关键的输入引脚处理,上拉或下拉为固定的电平;如果确省状态为输出引脚,则可以悬空不接。
DSP开发入门基础知识
DSP开发入门基础知识发布日期:2009-3-6 11:12:07 文章来源:搜电浏览次数:111DSP是Digital Signal Processing(数字信号处理)或Digital Signal Processor(数字信号处理器)的缩写。
这一章中我们要讲的内容是,如何开始采用一个或多个数字信号处理芯片对输入信号(数字信号)进行分析、处理。
所以在你进行DSP开发之前,你应该明确以下几个问题:(1).你是否应该或需要使用DSP?(2).你应该选择哪个型号的DSP?(3).你熟悉你即将使用的DSP吗?包括它的硬件结构、外设控制、指令系统、寻址方式以及开发环境(工具)?1-1为什么要采用数字信号处理?(1)灵活性在模拟处理系统,当需要改变一个模拟系统的应用时,你可能不得不修改硬件设计,或调整硬件参数。
而在数字处理系统,你可以通过改变数字信号处理软件来修改设置,以适应不同的需要。
(2)精度在模拟处理系统,系统精度受元器件影响,同一批次产品可能有不同的性能。
而在数字处理系统中,精度仅与A/D的位数和计算机字长、算法有关,它们是在设计系统是就已经决定了的。
(3)可靠性和可重复性模拟系统易受环境温度、湿度、噪声、电磁场等的干扰和影响,而数字系统的可靠性和可重复性好。
(4)大规模集成模拟系统尽管已有一些模拟集成电路,但品种较少、集成度不高、价格较高。
而数字系统中DSP体积小、功能强、功耗小、一致性好、使用方便、性能/价格比高。
(5)虚拟特性与升级一套模拟系统系统只能对应一种功能,升级意味着新型号的系统的研制。
而数字系统中一套系统对应多种功能,只要装上不同的软件即可。
图1软件使得数字系统更加灵活(6)特殊应用:有些应用只有数字系统才能实现例如:信息无失真压缩(LOSSLESS COMPRESSION)、V型滤波器(NOTCH FILTER)、线性相位滤波器(LINEAR PHASE FILTER)等等.但数字信号处理也有局限性:(1) 实时性模拟系统中除开电路引入的延时外,处理是实时的。
手把手教你DSP解读
13.6.1ADC校正的原理 13.6.2ADC校正的措施 13.6.3手把手教你写ADC校正的软件算法
第14章串行通信接口SCI
14.1SCI模块的概述 14.2SCI模块的工作原理 14.3SCI多处理器通信模式 14.4SCI模块的寄存器 14.5手把手教你写SCI发送
和接收程序
14.1.1SCI模块的特点 14.1.2SCI模块信号总结
被广泛应用于通信(手机)、家电(变 频空调)、航空航天、工业测量、控制、 生物医学工程以及军事等许许多多需要 实时实现的领域。
1.1.1 什么是DSP?
DSP=Digital Signal Processing处理技术 DSP=Digital Signal Processor处理器
1.1.2 DSP的特点
特别适合于数字信号处理运算 单片机,ARM,FPGA 哈佛结构,程序空间和数据空间分开,CPU可以同时访问指令和
数据; 在一个指令周期内可以完成一次乘法和一次加法运算; 片内具有快速RAM,通常可以通过独立的数据总线在程序空间和
数据空间同时访问; 具有低开销或无开销循环及跳转的硬件支持; 具有快速的中断处理和硬件I/O支持; 可以并行执行多个操作; 支持流水线操作,使得取址、译码和执行等操作可以重叠执行。
第16章增强型控制器局域网通信接口eCAN
16.1CAN总线的概述 16.2CAN2.0B协议 16.3X281xeCAN模块的概述 16.4X281xeCAN模块的寄存器 16.5X281xeCAN模块的配置 16.6eCAN模块的中断 16.7手把手教你实现CAN通信
16.1.1什么是CAN 16.1.2CAN是怎样发展起来的 16.1.3CAN是怎样工作的 16.1.4CAN有哪些特点 16.1.5什么是标准格式CAN和扩展格 式CAN
初学DSP,你得知道的那些事儿
初学DSP,你得知道的那些事儿DSP是嵌入式开发处理器的三大巨头之一,很多刚刚接触DSP的朋友大都会有这些疑问,为什么要用DSP?DSP是什么、能干嘛?有没有前途,或者有没有“钱途”?好不好学?该怎么学?今天就和大家聊下学习DSP得知道的那些事儿。
一、为什么要用DSP?3G通信技术的发展,要求处理器的速度越来越高,体积越来越小,MCU的速度较慢;CPU体积大、功耗高;嵌入CPU的成本较高。
DSP的发展正好能满足这一发展的要求,使其在许多速度要求较高、算法较复杂的场合取代MCU或其它处理器,而且综合成本有可能更低。
二、DSP是什么、能干嘛?想了解这些,就得一个概念讲起,DSP首先是Digital Signal Processing(数字信号处理),然后才是Digital Singnal Processor(数字信号处理器)。
具体关于DSP的介绍,请参考小弟的《三国杀之FPGA与ASIC、DSP全面大比拼!》,你能找到你想要的知识,也能找到学习DSP的动力。
三、DSP有没有前途(“钱途”)?很多人都觉得做技术就是苦逼,哪来的什么前途,一定要转做技术管理或销售。
以前我也这般认为,但现在越来越多的事实证明,这就是一个谬论,DSP相当有钱途!举两个例子:其一,某位DSP的资深AE,可以算是中国区该领域的专家,年薪不菲(60万以上),走遍世界,工作也很轻松;其二,某知名电信公司晋升年限一样的技术专家比同级的经理薪酬要高,如Expert(专家级)与管理大概50个人的经理相比,前者的薪酬要更高。
肯定有人说哪这么多高端人士,大家都是正常人类。
好吧,那来个正常的数据,京沪深的DSP工程师起薪基本上是10K/月,就是1万现大洋,满意了吧。
四、DSP好不好学?不管你喜不喜欢,学习DSP就必须得面对她:算法。
算法是DSP 的精华,可以说摆平了算法就搞定了80%,如果你又懂单片机编程,那么恭喜你有成为DSP专家的潜力。
肯定有童鞋问算法到底好不好学呢?算法,听上去是很高深的东西,但其原理也不过就是一些加减乘而已,连除都很少。
浅谈DSP的入门知识
浅谈DSP的入门知识
Digital Signal Processing 数字信号处理
作为一个案例研究,我们来考虑数字领域里最通常的功能:滤波。
简单地说,滤波就是对信号进行处理,以改善其特性。
例如,滤波可以从信号里清除噪声或静电干扰,从而改善其信噪比。
为什幺要用微处理器,而不是模拟器件来对信号做滤波呢?我们来看看其优越性:模拟滤波器(或者更一般地说,模拟电路)的性能要取决于温度等环境因素。
而数字滤波器则基本上不受环境的影响。
数字滤波易于在非常小的宽容度内进行复制,因为其性能并不取决于性能已偏离正常值的器件的组合。
一个模拟滤波器一旦制造出来,其特性(例如通带频率范围)是不容易改变的。
使用微处理器来实现数字波器,就可以通过对其重新编程来改变滤波的特性。
DSP 处理器与通用处理器的比较
考虑一个数字信号处理的实例,比如有限冲击响应滤波器(FIR)。
用数学语言来说,FIR 滤波器是做一系列的点积。
取一个输入量和一个序数向量,在系数和输入样本的滑动窗口间作乘法,然后将所有的乘积加起来,形成一个输出样本。
类似的运算在数字信号处理过程中大量地重复发生,使得为此设计的器件必须提供专门的支持,促成了了DSP 器件与通用处理器(GPP)的分流:
1 对密集的乘法运算的支持
GPP 不是设计来做密集乘法任务的,即使是一些现代的GPP,也要求多个指令周期来做一次乘法。
而DSP 处理器使用专门的硬件来实现单周期乘法。
DSP 处理器还增加了累加器寄存器来处理多个乘积的和。
累加器寄存器通常。
DSP入门
美国模拟器件公司(AnalogDevices,简称AD)在DSP芯片市场上也占有一定的份额,相继推出了一系列具有自己特点的DSP芯片,其定点DSP芯片有ADSP2101/2103/2105、ASDP2111/2115、ADSP2161/2162/2164以及ADSP2171/2181,浮点DSP芯片有ADSP21000/21020、ADSP21060/21062等。自1980年以来,DSP芯片得到了突飞猛进的发展,DSP芯片的应用越来越广泛。从运算速度来看,MAC(一次乘法和一次加法)时间已经从20世纪80年代初的400ns(如TMS32010)降低到10ns以下(如TMS320C54X、TMS320C62X/67X等),处理能力提高了几十倍。DSP芯片内部关键的乘法器部件从1980年的占模片区(diearea)的40%左右下降到5%以下,片内RAM数量增加一个数量级以上。从制造工艺来看,1980年采用4μm
(4) 精度高。16位数字系统可以达到10^(-5)的精度;
(5) 可重复性好。模拟系统的性能受元器件参数性能变调试和大规模生产;
(6) 集成方便。DSP系统中的数字部件有高度的规范性,便于大规模集成。
当然,数字信号处理也存在一定的缺点。例如,对于简单的信号处理任务,如与模拟交换线的电话接口,若采用DSP则使成本增加。DSP系统中的高速时钟可能带来高频干扰和电磁泄漏等问题,而且DSP系统消耗的功率也较大。此外,D SP技术更新的速度快,数学知识要求多,开发和调试工具还不尽完善。
(3)片内具有快速 RAM,通常可通过独立的数据总线在两块中同时访问;
DSP(TMS320C6713)入门之旅一、LED的点亮
最近很多朋友开始学习DSP了(小双同志也加入这个团伙),本人基本上入门。
在此给他家分享一下DSP的入门经验。
其实DSP和我们本科所使用的单片机基本上架构一致,只是在它的内部集成了一系列的运算单元和逻辑移位单元,并且安排了指令流水,这样在运算性能上大大的提高,可以完成一系列的复杂计算。
当然DSP内部也集成了一系列外设,我这儿使用的是TMS320C6713 DSP,这块DSP主频可以达到450M,可以安排8级指令流水,在同一时刻可以同时执行8条指令,当然这要求的是CPU内部的运算单元不能冲突!好了,在此我就不多介绍了,免得把大家说得晕呼呼的!我们刚才是入门了解这些基本上没用,我们得一步一步的按着简单的东西一步一步的做实验。
所以我们今天开始一个最简单的实验—LED灯的点亮!我们一般学习是要买一块开发板,在此我不做推销,其实每一块开发板都基本上差不多,很多就是按照TI公司的Demo板,而设计的。
如果没有学习板,自己看书看了半年,还不如我拿到板子调试一个月的效果,因为很多东西是要在实际中才知道他的作用。
我们用一个板子一般要几样东西:一、原理图(知道每一根信号线的走向,比如我们的LED就连接到DSP的GPIO的13脚)二、芯片资料(芯片的总的芯片Datasheet和子模块的Datasheet,一般在芯片资料中总的芯片资料会告诉大家芯片的整体规划,比如内存分布,特殊寄存器的分布和具体的地址,而子模块资料会把这个模块的功能和使用介绍得更为详细)三、电路板和仿真器(这个是投入较大的一笔了)四、编译软件和计算机(希望在做实验之前大家用过编译器,不一定是CCS,因为所有基于windows上的编译软件都是一个样)我们来开始第一步,查看我们的电路板上的LED灯的位置和DSP的信号线的连接:从左边的几个原理图的截图我们可以清晰的看到LED灯接到了GPIO的13脚,中间用了一个缓冲器过度了一下,实际的控制信号还是来自DSP的GPIO13。
DSP入门
学习日志:1、看电路图,把整体结构看懂,然后找出对应的芯片的用的功能。
2、看实验箱上面的电路图,知道DSP每个脚所连接的线的作用。
3、把实验箱玩转,就是怎么接线的。
4、会根据已知的程序写进去,此处应该用到USB仿真器,此处要对相应的ccs学习。
5、ccs的学习,首先要学会配置,即先要进入Setup CCS 2 ('C2000)进行配置,此时最好亲自装一下ccs学会怎么配置,不然实验箱不会正常工作的,此处是在仿真模式下进行的。
配置之前先要clear,然后选择ICETEK-5100 EMULATOR for,也就是最后一个,这种模式下,是在外设相连的情况下的仿真,如果选择F2812 Device Simulator是纯仿真模式,不与外设相连接,在此情况下,一般只会用到这两种情况下的仿真。
6、对ccs的学习,在编写程序时,只需要编写.c程序和.cmd程序,其它的全部都从别的地方调进来的,不用编写,但是要理解相应程序的功能。
7、事件管理器的学习:GpioMuxRegs.GPAMUX.all=0x0000 GPIOA的I/O模式和第二功能模式0时I/O模式1时第二功能模式。
GpioMuxRegs.GPADIR.all=0x00bf GPIOA I/O模式的输入输出。
0输入1输出(p110 *p95)。
GpioMuxRegs.GPADIR.all此东东暂时没有什么用,编程时可以带上,令其=0x0000即可。
事件管理器分为EV A(起始地址7400H)和EVB(起始地址7500H),功能基本相同,只是模块的外部接口和信号有所不同。
(*p14) 8、通用定时器的比较器用作比较功能时可以产生PWM波形。
GP1为比较器和PWM电路提供基准时钟,GP2为捕获单元和正交脉冲计数操作提供基准时钟。
定时器包括:增减寄存器TxCNT比较寄存器TxCMPR周期寄存器TxPR控制寄存器TxCON通用定时器比较输出引脚TxCMP全局控制寄存器GPCONA/B定时器的四种模式:停止保持模式、连续增计数模式、定向的增减计数模式、连续的增减计数模式。
DSP 基础介绍
DSP 基础介绍数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。
20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。
数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。
在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。
德州仪器、Freescale等半导体厂商在这一领域拥有很强的实力。
DSP微处理器DSP(digital signal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。
其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。
它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。
它的强大数据处理能力和高运行速度,是最值得称道的两大特色。
DSP微处理器(芯片)一般具有如下主要特点:(1)在一个指令周期内可完成一次乘法和一次加法;(2)程序和数据空间分开,可以同时访问指令和数据;(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;(4)具有低开销或无开销循环及跳转的硬件支持;(5)快速的中断处理和硬件I/O支持;(6)具有在单周期内操作的多个硬件地址产生器;(7)可以并行执行多个操作;(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。
当然,与通用微处理器相比,DSP微处理器(芯片)的其他通用功能相对较弱些。
DSP优点:对元件值的容限不敏感,受温度、环境等外部参与影响小;容易实现集成;VLSI可以分时复用,共享处理器;方便调整处理器的系数实现自适应滤波;可实现模拟处理不能实现的功能:线性相位、多抽样率处理、级联、易于存储等;可用于频率非常低的信号。
DSP入门(献给初学者)
DSP入门(献给初学者)DSP的特点对于没有使用过DSP的初学者来说,第一个困惑就是DSP其他的嵌入式处理器究竟有什么不同,它和单片机,ARM有什么区别。
事实上,DSP也是一种嵌入式处理器,它完全可以完成单片机的功能。
唯一的重要的区别在于DSP支持单时钟周期的“乘-加”运算。
这几乎是所有厂家的DSP芯片的一个共有特征。
几乎所有的DSP处理器的指令集中都会有一条MAC指令,这条指令可以把两个操作数从RAM 中取出相乘,然后加到一个累加器中,所有这些操作都在一个时钟周期内完成。
拥有这样一条指令的处理器就具备了DSP功能具有这条指令就称之为数字信号处理器的原因在于,所有的数字信号处理算法中最为常见的算术操作就是“乘-加”。
这是因为数字信号处理中大量使用了内积,或称“点积”的运算。
无论是FIR滤波,FFT,信号相关,数字混频,下变频。
所有这些数字信号处理的运算经常是将输入信号与一个系数表或者与一个本地参考信号相乘然后积分(累加),这就表现为将两个向量(或称序列)进行点积,在编程上就变成将输入的采样放在一个循环buffer里,本地的系数表或参考信号也放在一个buffer里,然后使用两个指针指向这两个buffer。
这样就可以在一个loop里面使用一个MAC指令将二者进行点积运算。
这样的点积运算对与处理器来说是最快的,因为仅需一个始终周期就可以完成一次乘加。
了解DSP的这一特点后,当我们设计一个嵌入式系统时,首先要考虑处理器所实现的算法中是否有点积运算,即是否要经常进行两个数组的乘加,(记住数字滤波,相关等都表现为两个数组的点积)如果有的话,每秒要做多少次,这样就能够决定是否采用DSP,采用多高性能的DSP了。
浮点与定点浮点与定点也是经常是初学者困惑的问题,在选择DSP器件的时候,是采用浮点还是采用定点,如果用定点是16位还是32位?其实这个问题和你的算法所要求的信号的动态范围有关。
定点的计算不过是把一个数据当作整数来处理,通常AD采样来的都是整数,这个数相对于真实的模拟信号有一个刻度因子,大家都知道用一个16位的AD去采样一个0到5V的信号,那么AD输出的整数除以2^16再乘以5V就是对应的电压。
看完这个,别说你还不懂DSP(上)
看完这个,别说你还不懂DSP(上)一、时钟和电源问:DSP的电源设计和时钟设计应该特别注意哪些方面?外接晶振选用有源的好还是无源的好?答:时钟一般使用晶体,电源可用TI的配套电源。
外接晶振用无源的好。
问:TMS320LF2407的A/D转换精度保证措施。
答:参考电源和模拟电源要求干净。
问:系统调试时发现纹波太大,主要是哪方面的问题?答:如果是电源纹波大,加大电容滤波。
问:请问我用5V供电的有源晶振为DSP提供时钟,是否可以将其用两个电阻进行分压后再接到DSP的时钟输入端,这样做的话,时钟工作是否稳定?答:这样做不好,建议使用晶体。
问:一个多DSP电路板的时钟,如何选择比较好?DSP电路板的硬件设计和系统调试时的时序问题?答:建议使用时钟芯片,以保证同步。
硬件设计要根据DSP芯片的时序,选择外围芯片,根据时序设定等待和硬件逻辑。
二.干扰与板的布局问:器件布局应重点考虑哪些因素?例如在集中抄表系统中?答:可用TMS320VC5402,成本不是很高。
器件布局重点应是存贮器与DSP的接口。
问:在设计DSP的PCB板时应注意哪些问题?答:1.电源的布置;2.时钟的布置;3.电容的布置;4.终端电路;5.数字同模拟的布置。
问:请问DSP在与前向通道(比如说AD)接口的时候,布线过程中要注意哪些问题,以保证AD采样的稳定性?答:模拟地和数字地分开,但在一点接地。
问:DSP主板设计的一般步骤是什么?需要特别注意的问题有哪些?答:1.选择芯片;2.设计时序;3.设计PCB。
最重要的是时序和布线。
问:在硬件设计阶段如何消除信号干扰(包括模拟信号及高频信号)?应该从那些方面着手?答:1.模拟和数字分开;2.多层板;3.电容滤波。
问:在电路板的设计上,如何很好的解决静电干扰问题。
答:一般情况下,机壳接大地,即能满足要求。
特殊情况下,电源输入、数字量输入串接专用的防静电器件。
问:DSP板的电磁兼容(EMC)设计应特别注意哪些问题?答:正确处理电源、地平面,高速的、关键的信号在源端串接端接电阻,避免信号反射。
DSP基础知识集锦之五数字信号处理的方方面面
数字信号处理器(DSP)主要针对代表连续信号的数字进行数学运算,以得到相应的处理结果。
这种数学运算是以快速叶变换(FFT)为基础,对数字信号进行实时处理。
近二十年来,由于集成电路技术的高速发展,使得用硬件来实现各种数字滤波和快速傅立叶变换成为可能,从而使DSP得到了极其迅速的发展和广泛的应用。
在数字化的世界和互联网的时代,DSP变得越来越重要,可以说是无处不在。
DSP最基本的特征是:1)能够在一个指令周期内实现一次或多次乘法累加(MAC)运算。
所以,在DSP中集成了多个乘法累加运算单元,可以进行并行乘法累加运算。
2)能够在一个指令周期内完成对存储器的多次读取。
所以,在DSP中集成了多个片内总线和多端口片内存储器。
3)为了加快处理器中的运算,在DSP中集成了多个地址产生单元,以支持循环寻址和位翻转寻址。
4)处理器中的运算大多是重复的运算,为了方便使用,大部分DSP都支持这种重复运算,而不用额外编写重复运算的指令。
5)大部分DSP都提供多个串行或并行I/O接口,以及特别I/O接口来处理特殊的数据,以降低成本和提高输出/输入性能。
虽然应用于不同领域的DSP有不同的型号,但其内部结构大同小异,都具有哈佛(Harvard)结构的特征。
它包括处理器内核,指令缓冲器,数据存储器和程序存储器,I/O 接口控制器,程序地址总线和程序数据总线,直接读取的地址总线和数据总线等单元,其中最核心的是处理器内核。
它的性能好坏直接决定了DSP的性能和使用范围。
Analog Device 公司的TigerSHARC处理器内核就具有典型的哈佛结构特征。
它于1998年10月问世,具有特大指令字组(VLIW)的结构,一个周期可执行四条32位指令,可以工作于多种数据宽度,支持定点和浮点两种格式, 支持两种单指令多重数据(SIMD)运算,一个周期可执行四条16x16位定点乘法,支持六种不同的数据:(8位,16位,32位,64位)定点、32位IEEE-754浮点和40位扩展精度浮点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DSP入门必看(非常好的DSP扫盲文章)
DSP入门必看(非常好的DSP扫盲文章)
如何设置硬件断点?
在profiler ->profile point -> break point
c54x的外部中断是电平响应还是沿响应?
是沿响应,准确的说,它要检测到100(一个clk的高和两个clk的低)的变化才可以。
参考程序,里面好象都要 dISAble wachdog,不知道为什么?
watchdog是一个计数器,溢出时会复位你的DSP,不dISAble的话,你的系统会动不动就reset。
时钟电路选择原则
1,系统中要求多个不同频率的时钟信号时,首选可编程时钟芯片;
2,单一时钟信号时,选择晶体时钟电路;
3,多个同频时钟信号时,选择晶振;
4,尽量使用DSP片内的PLL,降低片外时钟频率,提高系统的稳定性;
5,C6000、C5510、C5409A、C5416、C5420、C5421和C5441等DSP片内无振荡电路,不能用晶体时钟电路; 6,VC5401、VC5402、VC5409和F281x等DSP时钟信号的电平为1.8V,建议采用晶体时钟电路
C程序的代码和数据如何定位
1,系统定义:
.cinit 存放C程序中的变量初值和常量;
.const 存放C程序中的字符常量、浮点常量和用const声明的常量;
.switch 存放C程序中switch语句的跳针表;
.text 存放C程序的代码;
.bss 为C程序中的全局和静态变量保留存储空间;
.far 为C程序中用far声明的全局和静态变量保留空间;
.stack 为C程序系统堆栈保留存储空间,用于保存返回地址、函数间的参数传递、存储局部变量和保存中间结果;
.sysmem 用于C程序中malloc、calloc和realloc函数动态分配存储空间
2,用户定义:
#pragma CODE_SECTION (symbol, "section name");
#pragma DATA_SECTION (symbol, "section name")
cmd文件
由3部分组成:
1)输入/输出定义:.obj文件:链接器要链接的目标文件;.lib文件:链接器要链接的库文件;.map文件:链接器生成的交叉索引文件;.out文件:链接器生成的可执行代码;链接器选项
2)MEMORY命令:描述系统实际的硬件资源
3)SECTIONS命令:描述“段”如何定位
为什么要设计CSL?
1,DSP片上外设种类及其应用日趋复杂
2,提供一组标准的方法用于访问和控制片上外设
3,免除用户编写配置和控制片上外设所必需的定义和代码
什么是CSL?
1,用于配置、控制和管理DSP数字信号处理片上外设
2,已为C6000和C5000系列DSP设计了各自的CSL库
3,CSL库函数大多数是用C语言编写的,并已对代码的大小和速度进行了优化
4,CSL库是可裁剪的:即只有被使用的CSL模块才会包含进应用程序中
5,CSL库是可扩展的:每个片上外设的API相互独立,增加新的API,对其他片上外设没有影响
CSL的特点
1,片上外设编程的标准协议:定义一组标准的APIs:函数、数据类型、宏;
2,对硬件进行抽象,提取符号化的片上外设描述:定义一组宏,用于访问和建立寄存器及其域值
3,基本的资源管理:对多资源的片上外设进行管理;
4,已集成到DSP/BIOS中:通过图形用户接口GUI对CSL进行配置;
5,使片上外设容易使用:缩短开发时间,增加可移植.
为什么需要电平变换?
1) DSP系统中难免存在5V/3.3V混合供电现象;
2)I/O为3.3V供电的DSP,其输入信号电平不允许超过电源电压3.3V;
3)5V器件输出信号高电平可达4.4V;
4)长时间超常工作会损坏DSP器件;
5)输出信号电平一般无需变换
电平变换的方法
1,总线收发器(Bus Transceiver):
常用器件: SN74LVTH245A(8位)、SN74LVTH16245A(16位)
特点:3.3V供电,需进行方向控制,
延迟:3.5ns,驱动:-32/64mA,
输入容限:5V
应用:数据、地址和控制总线的驱动
2,总线开关(Bus Switch)
常用器件:SN74CBTD3384(10位)、SN74CBTD16210(20位)
特点:5V供电,无需方向控制
延迟:0.25ns,驱动能力不增加
应用:适用于信号方向灵活、且负载单一的应用,如McBSP等外设信号的电平变换
3,2选1切换器(1 of 2 Multiplexer)
常用器件:SN74CBT3257(4位)、SN74CBT16292(12位)
特点:实现2选1,5V供电,无需方向控制
延迟:0.25ns,驱动能力不增加
应用:适用于多路切换信号、且要进行电平变换的应用,如双路复用的McBSP
4,CPLD
3.3V供电,但输入容限为5V,并且延迟较大:>7ns,适用于少量的对延迟要求不高的输入信号
5,电阻分压
10KΩ和20KΩ串联分压,5V×20÷(10+20)≈3.3V
未用的输入/输出引脚的处理
1,未用的输入引脚不能悬空不接,而应将它们上拉活下拉为固定的电平
1)关键的控制输入引脚,如Ready、Hold等,应固定接为适当的状态,Ready引脚应固定接为有效状态,Hold 引脚应固定接为无效状态
2)无连接(NC)和保留(RSV)引脚,NC 引脚:除非特殊说明,这些引脚悬空不接,RSV引脚:应根据数据手册具体决定接还是不接
3)非关键的输入引脚,将它们上拉或下拉为固定的电平,以降低功耗
2,未用的输出引脚可以悬空不接
3,未用的I/O引脚:如果确省状态为输入引脚,则作为非关键的输入引脚处理,上拉或下拉为固定的电平;如果确省状态为输出引脚,则可以悬空不接。