问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

DSP学习入门

发布网友 发布时间:2022-04-22 05:23

我来回答

5个回答

热心网友 时间:2022-04-13 00:03

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中是直接对这个16位的采样进行处理,并不将它转换成以小数表示的电压,因为定点DSP无法以足够的精度表示一个小数,它只能对整数进行计算.
而浮点DSP的优势在于它可以把这个采样得到的整数转换成小数表示的电压,并不损失精度(这个小数用科学记数法来表示),原因在于科学记数法可以表示很大的动态范围的一个信号,以IEEE754浮点数为例,
单精度浮点格式: [31] 1位符号 [30-23]8位指数 [22-00]23位小数
这样的能表示的最小的数是+-2^-149,最大的数是+-(2-2^23)*2^127.动态范围为20*log(最大的数/最小的数)=1667.6dB 这样大的动态范围使得我们在编程的时候几乎不必考虑乘法和累加的溢出,而如果使用定点处理器编程,对计算结果进行舍入和移位则是家常便饭,这在一定程度上会损失是精度.原因在于定点处理处理的信号的动态范围有限,比如16位定点DSP,可以表示整数范围为1-65536,其动态范围为20*log(65536/1)=96dB.对于32定点DSP,动态范围为20*log(2^32/1)=192dB,远小于32位ieee浮点数的1667.6dB,但是,实际上192dB对绝大多数应用所处理的信号已经足够了。
由于AD转换器的位数*,一般输入信号的动态范围都比较小,但在DSP的信号处理中,由于点积运算会使中间节点信号的动态范围增加,所以主要考虑信号处理流程中中间结果的动态范围,以及算法对中间结果的精度要求,来选择相应的DSP.另外就是浮点的DSP更易于编程,定点DSP编程中程序员要不断调整中间结果的P,Q值,实际就是不断对中间结果进行移位调整和舍入.。
DSP与RTOS:
TI的CCS提供BIOS,ADI的VDSP提供VDK,都是基于各自DSP的嵌入式多任务内核.DSP编程可以用单用C,也可以用汇编,或者二者结合,一般软件编译工具都提供了很好的支持.我不想在这里多说BIOS,VDK怎么用这在相应的文档里说的很详细.我想给初学者说说DSP的RTOS原理.用短短几段话说这个复杂的东西也是挑战!
其实DSP的RTOS和基于其他处理器的通用RTOS没什么大的区别,现在几乎人人皆知的uCOSii也很容易移植到DSP上来,只要把寄存器保存与恢复部分和堆栈部分改改就可以.一般在用BIOS和VDK之前,先看看操作系统原理的书比较好.uCOS那本书也不错.
BIOS和VDK其实是一个RTOS内核函数集,DSP的应用程序会和这些函数连接成一个可执行文件.其实实现一个简单的多任务内核并不复杂,首先定义好内核的各种数据结构,然后写一个scheler函数,功能是从所有就绪任务中(通过查找就绪任务队列或就绪任务表)找出优先级最高的任务,并恢复其执行.然后在此基础上写几个用于任务间通信的函数就可以了,比如event,message box,等等.
RTOS一般采用抢先式的任务调度方式,举例说当任务A等待的资源available的时候,DSP会执行一个任务调度函数scheler,这个函数会检查当前任务是否比任务A优先级低,如果是的话,就会把它当前挂起,然后把任务A保存在堆栈里寄存器值全部pop到DSP处理器中(这就是所谓的任务现场恢复).接着scheler还会把从堆栈中取出任务A挂起时的程序执行的地址,pop到PC,使任务A继续执行.这样当前任务就被任务A抢先了.
使用RTOS之后,每个任务都会有一个主函数,这个函数的起始地址就是该任务的入口.一般每个任务的主函数里有一个死循环,这个循环使该任务周期地执行,完成一部分算法模块的功能,其实这个函数跟普通函数没任何区别,类似于C语言中的main函数.一个任务创建的时候,RTOS会把这个函数入口地址压入任务的堆栈中,好象这个函数(任务)刚发生过一次中断一样.一旦这个新创建任务的优先级在就绪队列中是最高的,RTOS就会从其堆栈中弹出其入口地址开始执行.
有一个疑问是,不使用RTOS,而是简单使用一个主循环在程序中调用各个函数模块,一样可以实现软件的调度执行.那么,这种常用的方法与使用RTOS相比有什么区别呢?其实,使用主循环的方法不过是一种没有优先级的顺序执行的调度策略而已.这种方法的缺点在于,主循环中调用的各个函数是顺序执行的,那么,即使是一个无关紧要的函数(比如闪烁一个LED),只要他不主动返回,也会一直执行直到结束,这时,如果发生一个重要的事件(比如DMA buffer full 中断),就会得不到及时的响应和处理,只能等到那个闪烁LED的函数执行完毕.这样就使整个DSP处理的优先次序十分不合理.而在使用了RTOS之后,当一个重要的事件发生时,中断处理会进入RTOS,并调用scheler,这时scheler 会让处理这一事件的任务抢占DSP处理器(因为它的优先级高).而哪个闪烁LED任务即使晚执行几毫秒都没任何影响.这样整个DSP的调度策略就十分合理。

热心网友 时间:2022-04-13 01:21

2812很适合工业控制用的一款2000系列DSP,也可以作为通用控制器用,IO口可用的可以达到五六十个,比较好入门。更像功能升级了的单片机。
我现在用的是xds510-usb2.0系列仿真器,零零电子的,很便宜,大概600元左右,当时买了个套件,也带2812的书和很全面的电子资料(这些资料可以让你自己做一个2812开发板)。很好用。如果想单步调试看结果必须买仿真器。当然ti也提供通过串口方式在线下载程序的方法,看最终的运行结果。但这种方法不常用,你可以查查资料。
TI DSP入门学习:http://e2e.ti.com/cn/forums/t/83.aspx
希望对你有所帮助。

热心网友 时间:2022-04-13 02:55

仿真器(又说仿真盒)是必须买的,如果想实现在线编程,就必须买个仿真器,光有板子不可以,程序写出来,没法调,囧。。。
我用过合众达做的仿真盒,需要单买。好像是SEED510还是什么 一个仿真器1000多,没办法,哥们,整一个吧。
对于教材:本人曾熟悉使用过TI24**系列各种型号,市面上也有这系列的开发板,功能不少,的确适合初学者使用。2812也可以,性能在C2000系列中好一些。如果作者真是对DSP一点都不了解的话,我建议作者还是看看C2000系列的吧

热心网友 时间:2022-04-13 04:47

SHOUXIAN

热心网友 时间:2022-04-13 06:55

首先 学习计算机体系结构吧,弄清楚什么是vliw,弄清楚各种总线。同时学习编译原理,搞清楚各种优化。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
Request对象语法 9,django中request对象 塞尔达传说时之笛火之神殿Boss房间怎么去 ...的圆形地方怎么上去?打完BOSS后才发现没去过,但我 榆中兴隆山旅游路线 ...兴隆山校区到哪个公交车站最近?应该怎么乘公交车?打车的话得多少钱... 从般若寺到兴隆山法院怎么坐公交车,最快需要多久 那些属于国有经济,哪些属于集体经济 ...丢手机,生病,丢工作,怎么转运啊,谁能告诉我,我快疯了 阴历十月又叫什么月 怎样删除微信黑名单里的联系人 定点DSP,定点DSP是什么意思 vivo X50 Pro+ 8GB+256GB卖5498元,华为mate40pro ... 求救呀~~咋用16位定点DSP进行32位运算,怎样编写双... DSP16效果器footswitch用法 华为mate40pro8+256主板现在多少钱 16种音效dsp数字混响板怎样接入功放 mate40pro,256g现在多少钱,你觉得mate40和mate40pr... dsp16混响器怎么接 MX一1234调音台输入输出怎么接 dsp_16_4调音台各项功能 digitech dsp16 音响效果器可以当话放吗 16位的DSP和32位的DSP有什么本质区别吗?多少位有... 华为mate40价格官网价8+256但是我多少钱? 16DSP什么意思 七日年化和业绩基准的区别 业绩基准和年化收益有什么区别 刺客信条4黑旗 新手怎么玩 入门秘籍 刺客信条4:黑旗dlc补充包 是什么 刺客信条4 黑旗pc版有秘籍吗 刺客信条4辅助应用修改金币方法 dsp芯片可分为哪几个存储区 dsp两个数相加为什么要左移16位 DSP中怎样将执行文件转换成16进制文件 DSP芯片的分类 dsp是多少位的? DSP中 18K*16位什么意思 ARM与DSP的区别? 索尼电视挂壁支架只有一个尺寸吗 新店开业第一天有哪些需要注意的? 电视机的挂架选择攻略 不同种类的电视机挂架有什么... 液晶电视如何科学安装挂壁 索尼挂壁支架SU-WL50B安装方法 液晶电视挂壁支架要自己买的还是买的时候就有的? 大理石背景墙怎么安装70寸挂壁电视 电视机支架弹不出来怎么办? 挂壁的液晶电视可以在挂架上调整上下左右的角度吗? 挂壁液晶电视怎么装机顶盒美观? 这种旋转支架叫什么?哪里可以买到 液晶电视挂壁架是通用的吗? 26寸液晶挂壁电视能不能挂在轻体砖墙上?