1. 1 DSP 基础知识
可能大家都不会想到, DSP 的前身是TI 公司设计的用于玩具上的一款芯片,经过二三十年的发展.在许多科学家和工程师的努力之下,如今DSP 已经成为数字化信息时代的核心引擎,广泛应用于家电、通信、航空航天、工业测量、控制、生物医学士程以及军事等许许多多需要实时实现的领域。从DSP 最初的应用来看, DSP 的学习不也应该是一件轻松愉快的事情吗?
1. 1. 1 什么是DSP
DSP 是Digital Signal Processing 的缩写,同时也是Digital Signal Processor 的缩写。前者是指数字信号处理技术,后者是指数字信号处理器。通常来说,或者在本书中讲的DSP 是数字信号处理器的意思,主要研究如何将理论上的数字信号处理技术应用于数字信号处理器中。通常流过器件的电庄、电流信号都是时间上连续的模拟信号,可以通过A/D 器件对连续的模拟信号进行采样,转换成时间上离散的脉冲信号,然后对这些脉冲信号量化、编码,转换成由0 和1 构成的二进制编码.也就是常说的数字信号,如图1 - 1 所示。当然,采样、量化、编码
这些操作都是由A/D 转换器件来完成的。
DSP 能够轻松地对这些数字信号进行变换、滤波等处理,还可以进行各种各样复杂的运算,来实现预期的目标。
1.1. 2 DSP 的特点
DSP 既然是特别适合于数字信号处理运算的微处理器,那么根据数字信号处理的要求,
DSP 芯片一般具有下面所述的主要特点:
①辑序空间和l 数据空间分开, CPU 可以同时访问指令和数据;
②在一个指令周期内可以完成一次乘法和一次加法运算;
③片内具有快速RAM ,通常可以通过独立的数据总线在程序空间和数据空间同时访问;
④具有低开销或无开销循环及跳转的硬件支持;
⑤具有快速的中断处理和硬件1/ 0 支持;
⑥可以并行执行多个操作;
⑦支持流水线操作,使得取址、译码和执行等操作可以重叠执行。
那DSP 是不是在数字信号处理器的舞台上是一枝独秀的呢?答案是否定的,其实在微处理器领域, DSP 存在着许多的竞争者,例如MCU 、ARM 、FPGA 等,它们每个都有自己的优点,都有自己擅长的一面,从而在微处理器领域占有一席之地。
1.1. 3 DSP 与MCU 、ARM 、FPGA 的区到
先来看看DSP 与MCU 之间的区别。DSP 采用的是哈佛结构,数据空间和存储空间是分开的,通过独立的数据总线在程序空间和数据窍间同时访问。而MCU 采用的是冯·诺伊盘结构,数据空间和存储空间共用一个存储器空间,通过一组总线(地址总线和数据总线)连接到CPU 。很显然,在运算处理能力上, MCU 不如DSP; 但是MCU 有个很大的优点,就是价格便宜。这在成本控制比较严格,对性能要求不是很高的情况下, MCU 还是很具有优势的。当然,随着工艺的发展和产业化进程的不断加快, DSP 的性能在不断提高的同时.价格也在不断地降低。
ARM 是Advanced RISC( 精简指令集) Machines 的缩写,是面向低预算市场的RISC 微处理器。ARM 具有比较强的事务管理功能,适合用来跑跑界面、操作系统等,其优势主要体现在控制方面,像手持设备90% 左右的市场份额均被其占有。而DSP 的优势是其强大的数据处理能力和较高的运行速度,所以多用于数据处理,例如加密/解密、调制/解调等。值得一提的是, TI 公司C2000 系列的DSP 除了具有强大的运算能力之外,也是控制领域的佼佼者。
FPGA 是Field Programmable Gate Array (现场可编程门阵列)的缩写,它是在PAL 、GAL 、PLD 等可编程器件的基础上进一步发展的产物,是专用集成电路中集成度最高的一种。FPGA 采用了逻辑单元阵列LCAC Logic Cell Array) 的概念,内部包括了可配置逻辑模块CLBCConfigurable Logic Block) 、输入/输出模块IOBCInput Output Block) 、内部连线( Interconnect)三个部分。用户可以对FPGA 内部的逻辑模块和I! O 模块进行重新配置,以实现用户向己的逻辑。它还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改。使用FPGA 来开发数字电路,可以大大缩短设计时间,减少PCB 面积,提高系统的可靠性;同时FPGA 可以用VHDL 或Verilog HDL 来编程,灵活性强。由于FPGA 能够进行编程、除错、再编视和l 重复操作, I对此可以充分地进行设计开发和l 验证。当电路有少量的改动时,更能盟示出FPGA 的优势,其现场编程能力可以延长产品在市场上的寿命,而这种能力可以用米进行系统升级或除错。不过, FPGA 的价格通常比较昂贵,这是限制其应用的一个原因。
在一些复杂的应用场合,一般都不是只有一个处理器来单独挑大梁,往往会采用多个处理器同时运行的模式, DSP 、ARM , FPGA 可能都会被使用,它们各自发挥民处,互补合作,来完成一个复杂系统的要求。例如,在电力自动化装置中,不但有显示、通信、复杂的事件处理,还有大世数据的处理,而且对运算的时间要求非常高,因此,在最新的这些装置中,一般都会采用DSP+ ARM --i- FPGA 的结构。就像现在一直强调的团队合作J 样,个人的力量毕竟比较小,不可能各个方面都擅长,也没有那么多精力.只有具有不同才华的团队成员分r:合作,齐心协力,才能把一件难度较大的事情做好,才能做lH 成绩。
1. 1. 4 学习开发DSP 所需要的知识
如果大家没有接触过DSP ,义听人说DSP 门槛相对比较高,学习起来比较困难的话,在开始学习之前.是不是有点担心呢?是不是想知道学习开发DSP 的话,最好具有哪峙慕础知识呢?无论学习哪一款微处理器,无关乎两个部分:一个是硬件, ~-个是软件。硬件部分.最好有过MCU 或者ARM 之类相关微处理器的开发经验,因为硬件上,各个处理器之间是有许多共同点的,设计时处理的方法很多是一样的。当然,如果之前没有接触过硬件知识也不要紧,可以以DSP 为起点,慢慢进行积累。软件部分,需要会C 或者C++ ,这是必需的,如果没有这个作为基础的话,那DSP 开发真的就无从下手了,因为编程的时候总是要用到C 语言。当然,如果会汇编那自然就更好了。
除了上面两方面的技能之外,如果在信号处理理论方面有一些基础,例如知道时域与频域、自域、z 域的变换,知道FFT 、各种数字滤波器的知识,那就是锦上添花了。不过,话也说回来,就算现在什么都没学过,什么基础都没有,也是可以从头开始学习的,所以只要能静下心来学习,想要好好学的话,还是没有问题的。
在这里,想要谈一个题外话,就是谈谈到底是做硬件工程师好还是做软件工程师好,可能很多还在学校里读书的朋友会比较关心,因为方向的选择可能会关系到一个技术工程师今后职业的选择。其实,究竟选择哪一个方面来作为自己发展的方向,一是看兴趣,二是看机会。例如,导师在读书期间给你安排的是一个偏向于硬件方面的项目,那你在硬件方丽得到的锻炼就会多一些,这样在考虑将来发展的时候,可能就会倾向于硬件工程师。当然你也应当在导师安排之前,主动和导师沟通,告诉他自己的兴趣在哪方面,想要从事侧重于哪方面的研究T.作,我想很多导师应该会根据学生的兴趣尽力为其创造学习条件的。当然,在学校里如果有机会单独负责一个项目,这样,不管是软件还是硬件方面都是能得到锻炼的。作为职业,可能更多的人比较羡慕软件工程师,汀行业很多向领收入很不错,也很风光。
但是从重要性来讲,对于公司而言.其实两者都是一样的,因为一个项目是要靠硬件工程师和软件工程师通力合作才能够完成的。举个例子吧,我曾经所在的单位投资研发了一款新的装置,软件部分完成得差不多了,基本没有问题:但是硬件由于EMC 的问题迟迟没有得到很好的解决,装置的抗干扰能力有缺陷,测试时发现装置很不稳定;拖了一段时间之后,公司最后被迫放弃了这个历时两年多的项目,无奈之下转投其他平台。可见硬件工程师和软件工程师在项目中的地位是一样的,任何一个出了问题,都会影响到整个项目的完成情况。当然不包括纯软件开发的项目,这里讲的都是嵌入式软件。由于软件技术更新比较快,软件丁.程师必须不断地学习,补充新鲜的知识,才能保持自己的战斗力,但是随着年龄的增长,学习能力的下降,如果不做转型,与朝气蓬勃的年轻人一起参与竞争,压力就会比较大。而硬件t程师是要靠经验来进行设计的,因此随着时间的推移,阅历的增多,经验会越来越丰富,这样就等于不断地在巩固自己的技术壁垒,年轻人没有经验的话是很难与之竞争的,所以硬件工程师基本上是越老越吃香。当然,不管是做软件,还是做硬件,还是两者都做,只要尽自己全力用心去做,将来一定都会是美好的。
购线网 专业定制各类测试线(同轴线、香蕉头测试线,低噪线等)。