• 从软件工程师的角度,理解硬件术语


    1. 单片机系列

    知乎: Arduino,C51,STM32,ARM,FPGA有什么联系和区别?

    单片机就是一个百搭的通用CPU,提供各种接口来对整体进行控制,相当一个总调度,当然,简单的功能一片CPU独立工作也就完成了。原来的51系列就是一堆IO口,后来慢慢的把常用的PWM,AD之类的功能加入了单片机。主要包括用了无数年仍然牛逼、各大学必教的51系列,还有AVR,PIC,ARM,HOTEK……其实ARM9以后,已经说不清ARM算哪类了,目前的架构来看,更接近DSP。

    1.1. C51

    C51是INTEL公司早起的8051产品的简称,现在泛指一切用51内核的单片机,包括STC(宏晶)公司出的增强型80C51、80C52和ATLEM公司的一系列产品,属于单片机入门级,寄存器数目少,直接操作简单。

    8051系列已经是辉煌的末日了。构架上已经拖后腿了。除了老代码、老系统升级,就是特定领域的芯片上使用。但是他至今还占用很大份额的原因是——大学的课本是他。

    1.2. Arduino

    Arduino准确的说是一个单片机及其外设的集合,主控是ATMEL出的AVR单片机,你可以理解成比51厉害一点。这个集合之所以出名在于其操作太简单。STM32库函数的一大堆命令,在这里只需要一句,并且有相当丰富的外设模块。

    Arduino虽然可以替换更高速的芯片,但究其最常见的uno——AVR芯片(16位)来说,性能跟宏晶的51单片机差不多,但价钱可是51单片机的10几倍。所以其定位一直是“玩具”。

    1.3. STM32

    STM32是ST公司基于ARM Cortex-M3系列内核设计的一系列32位单片机,寄存器复杂,直接用汇编操作比较麻烦,但是用ST给的库函数十分方便。

    1.4. ARM

    ARM这个含义太多,首先它是英国一家公司的名字,这家公司不生产芯片,它只卖授权,然后ARM公司卖出去的处理器架构也叫作ARM架构,再细分有ARM5.ARM7.ARM9 .ARM11再高级一点有CORTEX系列,这个系列的A子系列叫做应用处理器,你的手机平板都是用的这一个系列的,不要在意是苹果还是三星,架构都是ARM没错的。

    平常我们所说的ARM应该是指ARM架构的芯片如ARM7,ARM9。

    • ARM7使用V4指令集
    • ARM9使用V5指令集
    • ARM10使用V5指令集
    • ARM11使用V6指令集
    • Cortex使用V7指令集

    Cortex是ARM公司推出的以V7指令集设计出来的一系列arm核,其中包括:

    • Cortex-M1, Cortex-M0, Cortex-M4
    • STM32是就是ST公司基于Cortex-M3生产的CPU

    1.5. FPGA

    FPGA可编程门阵列,和stm32等单片机有很大的不同。单片机是在处理器上运行你写的程序,程序是只能顺序(串行)执行的。

    而FPGA(CPLD)是一块拥有很多数字电路单元的电路板,使用VHDL或者Verilog语言描述所需要的功能,综合软件将代码转换成相应的数字电路,将输出文件烧到FPGA中FPGA中的资源就会连接成你想要的样子,等于是设计了一款芯片。数字电路是可以同时执行的,所以FPGA可以并行,运算力非常强大

    应用领域:

    • 一般用来做高速接口或数字信号处理,比如视频压缩,高频信号(数据)处理等。
    • 也可以做仪器,很多示波器都是用FPGA做的。
    • 当然也可以做控制,像单片机一样用,不过有些大材小用了。

    1.6. ASIC

    ASIC原本就是专门为某一项功能开发的专用集成芯片,比如你看摄像头里面的芯片,小小的一片,集成度很低,成本很低,可是够用了。一个山寨摄像头卖才卖30块,买一片ARM多少钱?后来ASIC发展了一些,称为半定制专用集成电路。

    1.7. DSP

    DSP实际应该称为DSPs,即用于DSP处理的专用芯片。跟普通计算机的区别一方面是他是哈佛结构的,也就是数据和程序空间分开(普通计算机是冯诺依曼结构)。另一方面他有流水线结构,不过现在其他也有了,见贤思齐。再一方面他有专用的硬件算法电路,用以完成DSP运算,比如最基本的乘法累加。上过DSP的就知道,蝶形算法FFT什么的,拆成最基本单元就是乘法累加,把这部分加速了,整体性能就有非常大的提高。

    DSP对于流媒体的处理能力远远的优于通用CPU。所以你看现在手机CPU,至少语音部分都是用DSP的。后来DSP概念也复杂化,各家都把一个控制核心整合到DSP里面,比如现在的智能手机芯片。可以看一下高通或者TI的片,基本是一个ARM核控制整体运算,一个DSP处理语音编解码,一个GPU负责图像运算,一个基带和天线处理模块负责通信,再加一些七七八八的东东比如GPS模块什么的。

    1.8. 总结

    从系统角度,

    • 8051都是裸跑
    • STM32可以跑RTOS
    • ARM(Cortex-A级别)就可以用来跑Linux或Android

    从价格角度:

    • C51: ¥3~4
    • Arduino: ¥20~40
    • STM32: ¥20~90
    • ARM: 当然更贵了
  • 相关阅读:
    大家一起写mvc(二)
    大家一起写mvc(一)
    jquery读取XML 生成页面文件
    jquery点击区域显示或隐藏DIV,点击非该DIV的地方隐藏该DIV
    struts2 iterator排序
    解决JS传参中文乱码
    关于解决 请求被中止:无法建立SSL / TLS安全通道
    查看sqlserver被锁的表以及如何解锁
    查询sqlserver数据库视图、存储过程等包含特定的字符串
    C#中查询字符串中是否包含指定字符/串,使用IndexOf还是Contains?
  • 原文地址:https://www.cnblogs.com/brt2/p/13055855.html
Copyright © 2020-2023  润新知