【转载仅为了个人学习方便,并无他意,如有冒犯,敬请谅解】
【转载地址】https://blog.csdn.net/liebecl/article/details/78046823
犹记得当年读书的时候,老师说单片机、ARM、DSP有互通之处,都是CPU,但听老师讲都听不懂。

  • 1

  我该如何理解他们,并找出他们的异同呢?我们来看看行内人的看法:
  ICer,从事ARM CPU的SOC设计
  按我的理解说几句吧,希望能说薄一点。
  首先,说CPU,中央处理器,本质就是一个集成电路,实现的功能就是从一个地方(如rom)读出一个指令,从一个地方(如ram)读出数据,然后根据指令的不同对数据做不同的处理(如相加),然后把结果存回某个地方(如ram)。不同架构的cpu会有不同的指令,不同的存取方式,不同的速度,不同的效率,等等的差异。
  然后,说单片机(通常意义所说的微控制器MCU),ARM(通常意义所说的高效能RISC),DSP(通常意义所说的通用数字信号处理器),这三个CPU分别是针对不同的应用而产生的CPU。当然这也不是绝对的,因为ARM现在出的CPU囊括了MCU(如M0),RISC(如A8),DSP(如M4)。
  微控制器的目的主要是用作控制,他不需要多快的速度,如电饭锅的控制器,只需要控制发热元件的通断,信号等的开关等,但是对成本要求很严格,所以一般做得比较简单,4位,8位的很多。
  高效能的RISC,常用于一些数据处理比较多的地方,最常见的莫过于现在的消费性电子产品了,手机,pad,MP4等等,目前ARM的商业模式主要是卖内核,集成到各家的SOC中间。他其实就是个通用的CPU,能干各种各样的活,和Intel的CPU一样。但是通用就有效能问题,在某些特殊场合,效能就显得没那么高了,如大量运算(譬如做FFT)的时候。这样就有DSP的用武之地了。
  DSP,数字信号处理器,只要是做数字信号处理的模块都可以叫做一个DSP,如视频解码的IP核。但你老师所说的应该是指通用的数字信号处理器,如Ti的TMS320C55x DSP。该CPU的长处就是在于运算,大量循环的计算,如连续1024个乘加。他的指令针对这种应用有特殊的处理,相比RISC可以更快速高效地完成这类运算。
  总的来说,学习CPU,首先就是要了解其指令集,然后了解去指令执行的方式,然后针对具体的芯片了解其外围电路,程序都是用C写的,基本使用就没啥问题了。
  入门教材就不知道了,学好微机原理先吧。
  一种设备能称之为CPU,是因为它能够融入到计算机的冯诺依曼体系中。冯诺依曼的计算机模型规定了计算机“运算器、存储器、控制器、外存储器、输入和输出设备”,而CPU的重要地位在于解决了运算问题,计算机的CPU能够访问存储器的数据和指令进行运算,从实现运算这一点的角度上看,无论是单片机、ARM、DSP都可以称之为CPU。
  单片机集成完整的冯诺依曼体系所规定的结构,是一个完整的计算机体系。实现特定的运算功能,应用领域集中在工业自动化控制等专门化需求的运算领域。
  ARM出品的芯片精髓在“R”,是RISC精简指令集的意思,和传统大型机以及PC微处理器采用的指令系统相比,RISC指令集根据80%的时候只用到了20%的处理器指令的状况,使用了经过精简设计的指令系统,使得整个处理器的设计可以更加简洁,功耗、体积大大缩小,所以ARM在目前的手机、平板等职能移动设备上得到了广泛应用。随着ARM处理能力的不断增强,加上其功耗小的特点,也不断在扩展其企业级服务器集群应用的可能性,为企业降低能耗成本。
  DSP是数字信号处理器,相较于普通计算机实现通用计算的特点,DSP只负责数字信号(视频、音频或者其他传感器获得数字信号)处理。在日常生活中,常见的DVD、蓝光播放机、数字电视机顶盒、MP3、MP4等都广泛使用了DSP,由于设计的专门化,所以可以在较低的成本下,使DSP执行异常复杂的编码、解码等信号处理工作,而无需使用价格昂贵的通用处理器。
  所以从广义上讲,单片机、ARM和DSP都可以算做CPU,但是这种说法并不严格,因为如今CPU往往指代的是兼容x86架构的通用处理器,例如你电脑里的intel和amd出品的cpu。如果把单片机、ARM和DSP都称作CPU,会在理解上产生偏差。
  这些的确都能算CPU,前面大家已经说过共同点了,我主要说说区别吧。主要区别在于用途不同造成了功能侧重的区别。
  比如单片机和低端ARM(如M3),更严谨的说法应该称作Microcontroller 或 MCU(Micro Control Unit),中文一般叫“微控制器”。而CPU叫做“中央处理器”。一个Control 和 Process 还是有很大区别的。 微控制器不需要一般也不具备强大的计算能力,重点在于实现各种逻辑和非逻辑控制。
  而DSP的(Digital Signal Processor), PROCESS表明它相比于通用单片机具有更为强大的处理,运算能力。可以实现对数字信号的各种算法的处理。
  举一个简单的例子。一个MP3可能由一块普通MCU+一块专用DSP 芯片组成。 其中普通MCU叫主控芯片,负责全局控制。诸如通过处理按键来响应用户的操作,控制屏幕输出相关播放信息给用户等等。而DSP只负责音频文件的解码。可见,全局的控制工作,逻辑比较繁琐,比如显示中各级菜单的实现,这是MCU适合的工作。而音频解码需要强大的运算能力,普通MCU难以胜任,就需要DSP来进行。
  而ARM和单片机,我个人认为没有特别严格意义的界限,主要看功能和需求的划分。ARM本身已经给我们划分的很好了:”ARMv7架构定义了三大分工明确的系列:‘A’系列面向尖端的基于虚拟内存的操作系统和用户应用;‘R’系列针对实时系统;‘M’系列对微控制器。“ 所以诸如STM32之类的Cortex-M3芯片其实也可以理解做高端单片机的范畴。侧重于控制,片内集成,低功耗等指标。相比传统51,AVR。 Contrex-M系列的微控制器集成了更多的资源(如更高位的AD,更多的串口,以及I2C,SPI之类的外设总线)。而且32位相比传统8位和16位的单片机也更有优势。
  而消费类电子产品中的ARM显然需要更为强大的运算功能。 这一块我不太熟悉,就不多说了。
  额,发现楼主还问了如何学习。其实很简单,就是实践。买一块开发板实际动手做比什么都强,有机会参与一些项目更好,自学现在网络资源也非常丰富,不用担心。可以从8位单片机学起,作为入门。虽然近些年大家都说51落伍了,但是作为单片机入门还是很好的,相对简单,网上资源到处都是。你去买任何一个模块几乎都会给你提供51的例程。。。我现在就经常拿51测试模块,测试好了再改一下代码用到stm32上。
  总之,只看书是没有用的。还是要多动手。写写代码,烧烧程序,焊焊简单的电路。你会收获很多。
  我也来说一下自己的理解。
  首先,“嵌入式”这是个概念,准确的定义没有,各个书上都有各自的定义。但是主要思想是一样的,就是相比较PC机这种通用系统来说,嵌入式系统是个专用系统,结构精简,在硬件和软件上都只保留需要的部分,而将不需要的部分裁去。所以嵌入式系统一般都具有便携、低功耗、性能单一等特性。
  然后,MCU、DSP、FPGA这些都属于嵌入式系统的范畴,是为了实现某一目的而使用的工具。
  MCU经过这么多年的发展,早已不单单只有普林斯顿结构的51了,性能也已得到了很大的提升。因为MCU必须顺序执行程序,所以适于做控制,较多地应用于工业。而ARM本是一家专门设计MCU的公司,由于技术先进加上策略得当,这两年独霸单片机市场。ARM的单片机有很多种类,从低端M0(小家电)到高端A8、A9(手机、平板电脑)都很吃香,所以也不是ARM的单片机一定要上系统,关键看应用场合。
  DSP叫做数字信号处理器,它的结构与MCU不同,加快了运算速度,突出了运算能力。可以把它看成一个超级快的MCU。低端的DSP,如C2000系列,主要是用在电机控制上,不过TI公司好像称其为DSC(数字信号控制器)一个介于MCU和DSP之间的东西。高端的DSP,如C5000/C6000系列,一般都是做视频图像处理和通信设备这些需要大量运算的地方。
  FPGA叫做现场可编程逻辑阵列,本身没有什么功能,就像一张白纸,想要它有什么功能完全靠编程人员设计。如果你够NB,你可以把它变成MCU,也可以变成DSP。由于MCU和DSP的内部结构都是设计好的,所以只能通过软件编程来进行顺序处理,而FPGA则可以并行处理和顺序处理,所以比较而言速度最快。
  那么为什么MCU、DSP和FPGA会同时存在呢?那是因为MCU、DSP的内部结构都是由IC设计人员精心设计的,在完成相同功能时功耗和价钱都比FPGA要低的多。而且FPGA的开发本身就比较复杂,完成相同功能耗费的人力财力也要多。所以三者之间各有各的长处,各有各的用武之地。但是目前三者之间已经有融合的态势,ARM的M4系列里多加了一个精简的DSP核,TI的达芬奇系列本身就是ARM+DSP结构,ALTERA和XINLIX新推出的FPGA都包含了ARM的核在里面。所以三者之间的关系是越来越像三基色的三个圆了。
  一句话以蔽之“你中有我,我中有你”。
  _________________________
   2017.09.20
   晚23:28
   转自电子发烧友

单片机、ARM与DSP对比相关推荐

  1. 理解单片机(MCU)、ARM、DSP,vDSP(Vision DSP )都是处理器,

    可以具体参考知乎上的讨论怎么深入浅出地理解「单片机.ARM.DSP 有互通之处,都是 CPU」? 一.理解MCU,ARM cpu, DSP 作者:匠人时尚 链接:https://www.zhihu.c ...

  2. 单片机、ARM、DSP与CPU之间的关系大揭秘

    你知道单片机.ARM.DSP都是CPU吗,它们之间又有什么不同,小编进行了整理和编辑. CPU:中央处理器 CPU 包括运算逻辑部件.寄存器部件和控制部件等,其本质就是一个集成电路,实现的功能就是从一 ...

  3. 浅谈单片机、ARM和DSP的异同

    犹记得当年读书的时候,老师说单片机.ARM.DSP有互通之处,都是CPU,但听老师讲都听不懂. 我该如何理解他们,并找出他们的异同呢?我们来看看行内人的看法: ICer,从事ARM CPU的SOC设计 ...

  4. 浅谈单片机、ARM和DSP的异同——非常透彻

    http://www.elecfans.com/app/api/focus/index/id/341 犹记得当年读书的时候,老师说单片机.ARM.DSP有互通之处,都是CPU,但听老师讲都听不懂. 我 ...

  5. 51单片机真的过时了吗?单片机、ARM、DSP、FPGA/CPLD

    现在在大学里,51单片机仍是电子类专业必修的课程,然而这几年随着ARM的火爆,很多51的学习者有了专业一个疑问:既然大家都在用ARM,我们为什么还要学51?而且找工作的时候人家也比较关注有过ARM使用 ...

  6. 写在公众号之前——QT,ARM,DSP,单片机,电力电子与传动!

    第一节:为什么想做公众号 搜寻微信上许多公众号,关键词:QT,单片机,DSP,电力电子与电力传动,开关电源硬件设计,信号采集,通讯技术(CAN.I2C.UART.SPI.ETHERNET),LoRa, ...

  7. ARM、DSP、FPGA的区别

    https://blog.csdn.net/godloveyuxu/article/details/80027501 DSP: DSP(digital singnal processor)是一种独特的 ...

  8. ARM、DSP、FPGA的技术特点和区别

    首先,他们都是微处理器,都是嵌入式系统开发的核心,这也是他们与嵌入式的区别.单片机,也是微处理器,但不如他们集成的功能强大,要外扩设备.因此,确切的说,是微控制器. 在嵌入式开发领域,ARM是一款非常 ...

  9. 2021-02-18 ARM、DSP、FPGA的技术特点和区别

    一.ARM.DSP.FPGA的技术特点和区别 在嵌入式开发领域,arm是一款非常受欢迎的微处理器,其市场覆盖率极高,DSP和FPGA则是作为嵌入式开发的协处理器,协助微处理器更好的实现产品功能. 在嵌 ...

  10. ARM、DSP、FPGA的特点和区别

    说明ARM.DSP.FPGA的异同点 ARM(AdvancedRISCMachines) 是微处理器行业的一家知名企业,设计了大量高性能.廉价.耗能低的RISC处理器.相关技术及软件.ARM架构是面向 ...

最新文章

  1. “雾霾”天里坐看云起时-【软件和信息服务】2014.01
  2. python 程序打包成 exe 文件
  3. 一个好的MIS系统应该考虑哪些内容
  4. pwn学习总结(五) —— ret2dl_runtime_resolve(待补充)
  5. 基于verilog按键消抖设计
  6. js判断浏览器是否支持flash的方法
  7. ARC_xp_20160530
  8. 前端学习(2617):删除品牌
  9. 用python绘制心形_python小趣味_520绘制一个心形.
  10. 软考(一):迎战软考
  11. AHOI2018训练日程(3.10~4.12)
  12. 在线网络投票/打分活动实施步骤及疑难问题汇编
  13. 避重就轻:Intel的垄断抗辩
  14. 2022蓝桥杯嵌入式学习分享
  15. html实现好看的年会抽奖(附源码)
  16. 【高手分享】熟知Win7系统(英文版)分区14个小步骤
  17. chattr -i authorized_keys 无效
  18. SOEM 源码解析 ecx_LWR
  19. Flutter 全局弹窗
  20. TCL发布两款可穿戴设备;中兴通讯推出第三代5G室内路由器;绘王联合制作《河岸》获棕榈泉国际短片电影节最佳动画奖 | 全球TMT...

热门文章

  1. python自动生成sql建表语句
  2. 项目进度管理:制定进度计划
  3. “硬件极客”:树莓派Raspberrypi安装Kali Linux保姆教程(通过树莓派安装ARM Kali教程)
  4. 信息系统项目管理师必背核心考点(四十一)风险管理计划
  5. JPG/PNG转SVG矢量格式
  6. yytextview 复制_YYText使用篇(一)
  7. iOS YYText的使用笔记二(YYLabel聊天表情+文字并排)
  8. java获得时间差_Java获取时间差实例代码详解
  9. 定制版商业计划书PPT模板
  10. cc1101 使用笔记