FPGA、PLC、STM32、Arduino、单片机、计算机等概念间的关系、区别及各自的优缺点
入门之初,对于标题所列各个概念总是含混不清的,这样一来,不知道自己应该从何学起,或者不知道自己想要实现的IDEA应该使用什么样的硬件系统最合适。因此,梳理一下这些概念很有必要,作者仅就所了解的信息做总结梳理,并以最通俗的语言作解释,如有不妥敬请指教~
1.先说说这里面最独特的FPGA
FPGA(Field-Programmable Gate Array):现场可编程门阵列。什么意思呢?先来看看它的构成示意图
从图中可以看出,FPGA其实可以看做是数字电路的集合,因此,它与其它名词概念所指物的最大区别就是FPGA只能称得上是一个器件。器件一般具有
输入、处理、和输出,FPGA可以看作是一堆可以编程定义的门电路和用于输入、输出的IO口构成的器件。器件也必然就有器件的独特特点,那FPGA的特点是什么呢?
- 并行处理
- 处理速度极快
- 理论上不会运行卡死
- 只处理数字信号
为什么具有上述特点呢?这取决于它的工作方式,用硬件描述语言编写程序后导入到FPGA,实际上是对FPGA内部的门电路等进行直接配置,其能实现的逻辑规模取决与门电路的资源规模,只要不超过其大小,则配置结束后,你的FPGA可以看做是内部具有丰富门电路相互连接的电路集合。注意,这里面没有计算,不需要代码解释,因为根本没有代码,它就是一堆电路。就像你将一根导线的一端接上高电平,另一端必然是高电平一样,不需要任何东西做运算。这就是为什么FPGA能以极高的速度并行处理多个输入端口的数字信号而不会出现卡死的原因。(就像一栋大楼里的输水管道一样,不管你家的水龙头开或关,或者在你家里折了几道拐,都不会影响隔壁老王使用他家水管里的水)
2. 再看看PLC的特点
PLC (Programmable Logic Controller): 可编程逻辑控制器。专为工业生产设计的一种数字运算操作的电子装置,它采用一类可编程的存储器,用于其内部存储程序,执行逻辑运算,顺序控制,定时,计数与算术操作等面向用户的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。是工业控制的核心部分
因此,PLC相比FPGA来说就更加“智能”了,因为它具有计算的功能,它具有解释内部代码的能力,因此可以说它是一个计算机。但相比一般的计算机和单片机,他最大的特点是稳定。它内部的代码是严格按顺序执行的,但上一条执行的成功与否不会影响下一条的执行。因此,它理论上不会出现程序锁死的现象。再加上PLC加持了较强的抗干扰外围电路和封装,特别适用于工业生产等具有加高稳定性需求的场合。简单的讲,PLC就是一个具有一定计算能力的非常稳定的工业级控制器,用于控制和驱动工业设备和生产线上的电源系统等对稳定性要求较高的地方。
两句话对比FPGA和PLC:
FPGA是一种可编程的器件,而PLC是一种计算机。FPGA主要用于弱电,PLC主要用于强电。
3. 再来看看单片机的概念
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统.
划重点,要考:
单片机是一种集成电路芯片,是一种小而完善的微型计算机系统。
常见的
STM32单片机、51单片机、ATMEGE 328P单片机等等就是这种小型计算机系统了。
说白了就是我们经常会在很多电子产品里见到的那块核心芯片。但是虽然单片机看上去很全,但少了外围电路,便很难发挥其作用。因此,在实际应用场合中,通常会给单片机外围加上一些必须的电路和接口器件等,用于完善单片机的功能和铺平其工作的“道路”。
于是乎,我们知道了,像
Arduino便是在ATMEGA系列单片机上加上一些必要的、通用的外围电路及器件后构成的
电子原型平台,在加上用于编程的IDE,广泛应用于各个菜系的电子入门菜鸟手中(hia, hia, hia,)
上节所述的PLC其实也是一种在单片机基础上加上外围电路构成的。
4.总结
莫方,从51单片机开始慢慢搞吧~
以上!over…