我接触DSP较8051系列和arm系列晚,原因无它,资源少(相对8051和arm铺天盖地的资料和例程来说),价格贵,一般应用也用不上。再加上DSP的一般应用项目都是高端的数字处理和数码设备,久而久之,在我脑海里DSP就好像微处理器里面的贵族一样,带着神秘的光环,漂浮在云端。
随着工作经验的增长,接触的项目越来越多,难免会碰到一些棘手的事情,特别是在音视频解码和数据采集分析方面,有时候突然发现繁杂的算法和数据处理要很多指令和时间去处理,即使有公共库或参考算法,但实际运行的效果却总是差强人意。就是这个时候,熟悉DSP的任务必须要做了。
工欲善其事,必先利其器;要熟悉它就先要了解它,那到底DSP
是什么呢? DSP:数字信号处理器(Digital Signal Processor),也称数字信号芯片;是一种特别适合于进行数字信号处理运算的微处理器,其主要应用是实时快速地实现各种数字信号处理算法。
为什么其它单片机做不到的事它可以呢?
DSP芯片一般具有如下特点:
(1) 在一个指令周期内可完成一次乘法和一次加法;
(2) 程序和数据空间分开,可以同时访问指令和数据;
(3) 片内具有快速 RAM,通常可通过独立的数据总线在两块中同时访问;
(4) 具有低开销或无开销循环及跳转的硬件支持;
(5) 快速的中断处理和硬件 I/O 支持;
(6) 具有在单周期内操作的多个硬件地址产生器;
(7) 可以并行执行多个操作;
(8) 支持流水线操作,使取指、译码和执行等操作可以重叠执行;
这些特点,特别是硬件运算指令的加入,能使DSP在很短的时间内快速进行复杂的运算,相对于没有这一功能的控制器,在数据处理和算法实现中大大提高了速度和精度,使其效率显著提高。
当前DSP的主要供应商有 TI,ADI,Motorola,Lucent等几家公司,其中TI占有最大的市场份额.
同样是DSP,为什么TI的市场占有率这么高呢?
TI的DSP之所以受欢迎是有原因的。
首先架构方面,它采用的是不同于传统冯.诺曼结构的哈弗结构,可以将程序和数据存储在不同的存储空间中,分别有其独立的存储器,独立编址,独立访问,而且系统中对应设置了程序总线和数据总线,从而使数据的吞吐量提高了一倍;而且TI的指令存储在高速缓冲其中,当执行指令时不需要从存储器中预读,节约了指令时间。
采用了流水线进一步减少指令执行时间,而且根据流水线深度等级不同,可以并行处理相应深度的指令。
还带有专用的硬件乘法器,这样在一个指令周期内即可完成一次乘法,相对于依靠加法来实现的乘法来说,速度的提升是相当可观的。
TI在此基础上还加入了一些特殊的DSP指令,优化了集成电路保障了数据处理方面性能的优势。
TI的DSP同样具备其它系列控制器的特点:低功耗,这让其在同其它DSP厂商竞争时保有无以伦比的优势。
TI 公司现在主推DSP系列有:
1、C5000 系列(定点,低功耗)。
2、C2000 系列(定点,控制器)。
3、C6000 系列:该系列以高性能著称,最适合宽带网络和数字影像应用。
4、OMAP 系列:OMAP处理器集成ARM的命令及控制功能,另外还提供DSP的低功耗实时信号处理能力,最适合移动上网设备和多媒体家电。
硬件虽好,相信大家都有体会,对于我们这些做开发的来说,最大的福音不仅仅是你芯片有多强,更重要的是你技术支持的丰富程度,这点我想大家都不用讲了,TI网站完善的开发资源库和实例例程,详细的说明文档,元器件datasheet,给我快速入门带来的不是一点点的便利啊,这个十分感谢TI幕后的技术人员。
不过也有一个问题,由于TI可能是US的军用元器件供应商,所以有的资料和样片申请时有复杂的手续,还有可能申请失败,这个嘛,我才不会告诉你我下资料都是翻墙去的呢。
当然,新手(me too)
在TI网站查找资料学习时,发现资源好多,到处是链接,应接不暇啊,其实这时入门是关键,我往往是找三类资源:
1、IC的Datasheet.
2、库的UserGuide.
3、外设资源的例程.
IC的说明档可以详细了解原件的资源和寄存器配置。库的使用可以大大简化开发周期;而外设的操作是必须的,但是其配置却是繁琐枯燥的,所以这部分的例程是加速设计或排查错误的很好的例子。
TI
还有一个做的好的地方就是物美价廉的开发学习板,它对芯片的推广,用户的普及和产品更新换代的共识,技术的分享和提高,知识的学习,功不可没。我的学习也是从它们身上开始的。