联系方式

    深圳市英瑞尔芯科技有限公司

    电话:

    186 6591 0262

    E-mail:

    sally@szinter.com.cn

    地址:

    深圳市福田区振华路现代之窗A座7B

MCU ARM DSP CPLD FPGA PLC 的异同与应用

发布时间:2022-06-06 16:10:00

来源:http://www.szinter.com.cn/news818543.html

本期对时下流行的数字控制器进行简单的介绍,相互对比分析,简要的说说各类控制器的应用场合。

MCU ARM DSP CPLD FPGA PLC可以分为三组,其中前三种为一组,我认为可以称谓广义MCU分组,他们的主体结构相似,只是侧重点不同,而CPLD/FPGA分为一组,称为可编程逻辑器件,针对的主要是逻辑,相当于一个可以通过编程语言调整的数字逻辑电路。PLC是一个系统级的控制器,将芯片级的控制器做成成品,需要具有稳定性,抗扰性,易用性等特点,降低控制器的使用门槛。

要想了解广义MCU首先需要了解以下概念:

指令集:主要分为两类,复杂指令集(CISC)和精简指令集(RISC)。复杂指令集是早期英特尔(Intel)所使用的指令集,即使到现在,依然广泛应用在PC机的处理器中,与之相对的是精简指令集(RISC),业界普遍认为RICS的执行效率高。至于孰优孰劣,众说纷纭,个人认为英特尔作为处理器第一大厂商,坚持使用复杂指令集除了为了保持对老版本兼容外,一定有RISC无法替代的优势。系统结构:主要分为哈佛结构和冯·诺依曼结构。所谓哈佛结构就是将数据与指令分开存储,独立编址,可以提高数据调用的效率,TI的DSP也是用这个结构;与之对应的是冯·诺依曼结构,数据与指令共同编址,节省一条总线。

MCU(Microcontroller Unit)就是所谓的单片机,将计算机的主体部分集成在一块半导体上,因此单片机是半导体集成技术不断发展的产物,现在的一个芯片的处理能力可能要比当年能占整个屋子的埃尼阿克(ENICA)处理能力强不知道多少倍了。

众多MCU中影响最为广泛的应该是51系列单片机了,基于复杂指令集(CISC)和哈佛结构。我所学习的第一款单片机就是基于51内核的AT89S52单片机,制造商是美国的爱特梅尔(Atmel),当时也有小伙伴使用台湾宏晶的STC系列51单片机。那个时候应该已经不是51的天下了,老牌厂商去玩更高级的芯片,所以厂商比较少。从功能上看宏晶STC系列明显很强大,Atmel的单片机只具有51单片机最基本的功能,4组8为IO口,两个定时器,两个外部中断,一个串口,而宏晶STC在51的基本架构外扩展了IIC接口、SPI接口、PWM、ADC等片上外设。对比应用以后会发现,美国的芯片稳定性确实要好很多,标称5V供电的单片机可以用两节干电池供电(额定3V),大大扩展了应用场合。

除了51单片机,目前应用比较广泛的还有Atmle的 ** R系列,Microchip的PIC系列,德州仪器TI的MSP430系列,意法半导体ST的STM8系列。等等等等……这只是我听说过的,没听过的肯定还很多。广义来看ARM和DSP也可以称为MCU。 ** R系列早期是8位单片机,后来出产了 ** R32的32位机,我觉得就跟Atmel的51一样,比较皮实,供电电压范围很宽,不过价格比较贵;PIC单片机,我听说在工业上应用很广泛,功能很强大,抗干扰能力强,价格吗,也挺贵的;MSP430主打低功耗,一般MSP430的开发板都会配备墨水屏用于显示,因为静态不耗电,不然单片机剩下来的电分分钟被屏幕用掉了。通常认为功耗低的单片机抗扰能力都比较差,因为信号弱嘛,不过TI很多推广很多是用MSP430做电源的,感觉与这款MCU的设计初衷相悖了,因为电源不在乎那点电啊,而且电源的干扰都比较强,。STM8系列单片机,最大特点就是便宜,和ST的ARM一样,一个带有ADC,PWM,串口,IIC,SPI的单片机,在上售价才一块多钱,太吓人了。

ARM本意是高级精简指令集机器(Advanced RISC Machine),是英国剑桥的ARM公司推出的处理器架构,这是一家半导体架构知识产权提供商。半导体制造商向ARM购买架构,然后增加片上外设做成自己的芯片。最近几年ARM的势头非常迅猛,安卓操作系统更是让ARM占领了移动端处理器,英特尔虽然几度发力依然不见成效。高通由于其在通信方面专利的优势,在安卓手机出现后更是大展宏图,占领了大量市场。

ARM其实是架构的名称,就像MCS51一样,所以我说,ARM也是MCU,只是这个领域深耕以后变得十分庞大。ARM的架构也出现了很多细分,在我大一的时候就听说同学要学习ARM,当时还是ARM9的天下,有些人拿着三星的S3C2440学习嵌入式Linux的移植,还有人学工控级ARM处理器STM32,这是意法半导体的基于Cortex-M3内核的ARM。说来当时我也蛮天真的,大家都学ARM,我也想学啊,但看到后缀是9,我得从1开始学啊,然后没几天,听说有了ARM11,我心想完了,根本追不上啊……。

貌似ARM从11开始就重新编号,扩展了产品线,也就是所谓的Cortex系列内核,其中包括3类,M,A,R。其中M是工控系列其中我比较熟悉的就算是STM32了,其他的还有恩智浦(NXP)的LPC系列,飞思卡尔的K60系列等等。M系列主频相对较低,具有比较强大的ADC和定时器PWM等功能,同时扩展各种基础接口,除了传统的串口,IIC,SPI以外,还有些芯片还有网口的部分底层硬件,USB的低版本功能(例如USB1.1),SDIO之类。M系列存在的意义就在于让你的产品能够在增加最少的外围器件的前提下实现更多的功能。A系列是移动端嵌入式系统处理器,功能强大, 通常要跑操作系统,现阶段手机端除了华硕曾使用英特尔的Atom以外,基本都是Cortex-A系列芯片,包括苹果的手机端处理器。R系列我不太了解,传说中应用于对实时性要求比较高的场合,例如通信交换机方面。

DSP(Digital Signal Processor)数字信号处理器,是一种主要针对数字信号处理的芯片,具有强大的运算能力,在移动端的数据处理,声音采集的方面应用较多,目前的主流厂商有两个:德州仪器(Texas Instruments)和亚诺半导体(Analog Devices),非主流的有飞思卡尔(freescale)。估计是德州仪器早期在高校中推广做得比较好,在学校里应用比较多,也导致了企业应用的拓展。电力电子专业使用TI的DSP做电机控制,电源的调制等,不过我们应用的C2000系列,已经被TI降级,定性为数字信号控制器(DSC),从应用中看主要感觉编译器问题比较多,例如声明变量不赋值就可能出现随机值,编译效率低等问题,还曾经发现过ePWM移相同步功能的一个小缺陷。当然DSP还是主打数据处理功能,具体来说片上通常会有单周期硬件乘法器,浮点处理器,甚至可能有用于快速傅立叶变换的硬件,而且通常使用哈佛结构,对数据单独编址,提高读取效率。以上特点带来的问题就是功耗比较高。

CPLD与FPGA在应用上区别不大,就是功能是否强大的区别,CPLD(Complex Program ** ble Logic Divece)通常规模较小,FPGA(Field Program ** ble Gate Array)规模相对较大,他们的内部结构不同,但对于应用来说这并不重要。FPGA/CPLD使用的编程语言与以上所说的广义MCU不同,称为硬件描述语言(HDL),目前用的比较多的两种硬件描述语言分别是VHDL和Virilog。语言的核心功能在于描述芯片内部逻辑单元的组合方式,相当于用语言替代硬件的数字门电路,门电路的优点在于灵活性搞,可以同时设置多组结构并行工作。目前出产CPLD/FPGA主要有两个Altera和Xilinx,其中A厂前期推广过得比较好,以至于我学的就是Altera的芯片,Xilinx在国内市场属于后来居上。在电力电子行业可以用FPGA做比较复杂的开关调制,在我的硕士毕业设计中就应用到了FPGA作为一片ARM的外设,专门做调制,克服了TI的DSP在移相功能上的不足。随着制造商不断推出各种不同的IP核,FPGA所能做的工作也越来越广泛,甚至可以使用内部逻辑单元搭建处理器并移植操作系统。未来FPGA可能会应用于云计算领域,未来不可 ** 啊。

PLC(Program ** ble Logic Controller)属于MCU的替代方案,主要目的是降低使用门槛。

早期工业上的流程及逻辑控制是基于继电器接触器电路的,当需求改变,就要求输入输出的对应逻辑根据需要进行调整,由于当时缺乏编程人才,不能使用晦涩的编程语言,因此就有了PLC。当年通用电气(GE)的工厂里,需要工人反复的修改继电器接触器电路以应对控制流程的变换,如果使用MCU进行控制,现有的员工素质无法完成语言的编写,因此有了这个需求。(DEC)根据这个需求设计出了PLC(当时叫PC)。PLC使用梯形图进行编程,主要控制通断逻辑。随着技术的进步,现在的PLC会带有ADC和各种接口,用来实现与HMI和云端的通信。

关于学习这些控制器的职业前途,我认为,MCU的基本应用,这应该是个电子工程师基础技能,根据手册编程,完成一些外设的调度,实现一些小功能。当然,靠这些已经不可能获得一个满意的收入了。因此单片机开发工程师需要对控制算法,简单数字滤波等延伸应用有所了解,能够完成更高端的应用设计。工控级的ARM相对于狭义的MCU来说只是功能更强大了,处理能力更强,接口更丰富,对工程师的要求也十分接近,主要是控制算法和数据处理能力,由于接口丰富了,因此还需要对比较高级的通信协议有一定了解,例如USB协议,以太网TCP/IP协议,SD卡及文件系统等。A系列的移动端ARM处理器由于这几年智能手机的发展,分工逐渐细化,有负责操作系统的,有写应用的,这方面我不太了解就不细说了。DSP用于数字信号处理,也就是模式识别领域,首先要求开发者能够设计算法,同时也要能够将MATLAB中的算法移植到DSP上,并进行优化。FPGA的在电力电子上的应用比较基础,在通信方面我不太了解,当年的实验室里有一块软件无线电开发板,通过ADC采集信号,通过DAC发出,使用FPGA进行调制和解调,增加了无线通信的灵活性,调制和解调的核心算法其实也是数字滤波的一种。PLC在工业中应用广泛,对于电子工程师来说,应该不算难。

欢迎关注微信公众号:匠人电子实验室

相关标签: