资深工程师简谈ARM、DSP、单片机的异同与应用场景
扫描二维码
随时随地手机看文章
单片机、ARM、DSP这三者的可以说是CPU,那这三者有什么区别吗?
首先,说CPU,中央处理器,本质就是一个集成电路,实现的功能就是从一个地方(如rom)读出一个指令,从一个地方(如ram)读出数据,然后根据指令的不同对数据做不同的处理(如相加),然后把结果存回某个地方(如ram)。不同架构的cpu会有不同的指令,不同的存取方式,不同的速度,不同的效率,等等的差异。
然后,说单片机(通常意义所说的微控制器MCU),ARM(通常意义所说的高效能RISC),DSP(通常意义所说的通用数字信号处理器),这三个 CPU分别是针对不同的应用而产生的CPU。当然这也不是绝对的,因为ARM现在出的CPU囊括了MCU(如M0),RISC(如A8),DSP(如 M4)。
也就是说单片机实际上是微控制器MCU、ARM是高效能RISC、DSP就是数字信号处理器喽,那您能具体的从这三者的功能谈谈它们的控制原理吗?
微控制器MCU的目的主要是用作控制,他不需要多快的速度,如电饭锅的控制器,只需要控制发热元件的通断,信号等的开关等,但是对成本要求很严格,所以一般做得比较简单,4位、8位的很多。
高效能的RISC,常用于一些数据处理比较多的地方,最常见的莫过于现在的消费性电子产品了,手机,pad,MP4等等,目前ARM的商业模式主要是卖内核,集成到各家的SOC中间。他其实就是个通用的CPU,能干各种各样的活,和Intel的CPU一样。但是通用就有效能问题,在某些特殊场合,效能就显得没那么高了,如大量运算(譬如做FFT)的时候。这样就有DSP的用武之地了。
DSP数字信号处理器,只要是做数字信号处理的模块都可以叫做一个DSP,如视频解码的IP核。通用的数字信号处理器,如TI的TMS320C55x DSP。该CPU的长处就是在于运算,大量循环的计算,如连续1024个乘加。他的指令针对这种应用有特殊的处理,相比RISC可以更快速高效地完成这类运算。
您能结合开发案例,具体谈谈它们的主要应用场景吗?
单片机集成完整的冯诺依曼体系所规定的结构,是一个完整的计算机体系。实现特定的运算功能,应用集中在工业自动化控制等专门化需求的运算领域。我刚刚看到开发平台上有很多关于DSP方面的项目开发,可以看出来大多都是工业应用上的需求,如“基于单片机设计的LED驱动电源综合测试仪”、“单片机拨号程序”等。
ARM芯片精髓在“R”,是RISC精简指令集的意思。RISC指令集根据80%的时候只用到了20%的处理器指令的状况,使用了经过精简设计的指令系统,使得整个处理器的设计可以更加简洁,功耗、体积大大缩小,所以ARM在手机、平板等智能移动设备上得到了广泛应用。如开发平台发布的“arm的 linux内核下的手持机开发”、“ARM的linux内核LVDS显示开发”等均是基于ARM芯片的智能产品。
DSP是数字信号处理器,相较于普通计算机实现通用计算的特点,DSP只负责数字信号(视频、音频或者其他传感器获得数字信号)处理。在日常生活中,常见的DVD、蓝光播放机、数字电视机顶盒、MP4等都广泛使用了DSP。这个“基于DSP的声音控制系统开发”、“基于DSP图像处理固定区域内人数统计仪”等对于音频音质、图像像素要求较高的产品多使用DSP控制器。