单片机是什么,单片机就是微控制器,一种通过运行编写的程序实现控制功能的芯片,广泛应用于马达控制、人机交互、数据采集、照明、小家电、玩具等各种应用。从事电子行业的人一般称之为MCU,也就是微控制器。现在大家似乎不怎么提单片机这个词,笔者也只记得在大学里有门课叫单片机,有些网络论坛还有单片机板块。单片机这个词似乎只有老工程师会这么说,现在年轻一代的工程师很多直接用ARM来指代单片机。
其实单片机的英文名很直接地表达了其本质,Single Chip Machine/Microcomputer/Microcontroller,其字面理解就是单芯片实现的微电脑、微控制器。其核心就是高度集成化,集成了CPU与存储器,以及外部设备,比如定时器、GPIO、SPI、IIC等等。
图1:典型的混合信号MCU结构(混合信号指模拟与数字外设并存)
(图片来源:Silicon Labs C8051f数据手册) 由于单片机在一般电子系统中负责控制功能,因而从功能的角度大家又称单片机为微控制器单元,Microcontroller Unit简称为MCU。 为了统一表达,本文往下用MCU来指代单片机。 目前市面上的MCU根据其CPU系统的指令与数据总线宽度主要分为8位、16位或32位MCU。在早期,各大主流半导体厂商的8位MCU在各细分领域取得了巨大的成功,8位MCU主要分为大名鼎鼎的51核系列和非51系列。
图2:众多8位机内核(图片来源:贸泽电子) 在8位机时代,各厂商的MCU架构各有特色,差异较大,若想熟练掌握某系列MCU的编程技巧,并非易事。一般多采用“祖传”的软件系统架构及驱动代码,很少使用标准RTOS,俗称”裸奔“。所以工程师在熟练掌握某系列MCU后,除非迫不得已,绝不愿意使用其他系列的MCU。 32位MCU,得益于32位的指令与数据系统,较8位MCU,其性能更强大,定位为高端MCU。知名的架构有Cold fire、MIPS32、PIC32d等。后来NXP、三星、ST等厂商推出了32位的ARM7内核MCU,作为高端MCU产品,在市场上取得了巨大的成功。直到那时,32位MCU还是以中高端MCU的身份出现在市场,高端MCU的特征有以下几点: 1 跑的快,主频在50MHZ以上。 2 集成有大容量的ROM与RAM,并多带有外部存储器总线。 3 集成有高级外设,比如USB、以太网、LCD控制器等。 再后来针对传统8位/16位MCU市场,ST率先推出了ARM Cortex-M3内核MCU,就是现在处于32位MCU王者地位的STM32系列。STM32系列简单易用,使用高效的IDE工具,即使是新手也很容易使用C语言从main()函数直接编写应用程序,不需要过多考虑系统的启动与中断系统的配置。由于简单易用,市场占有率越来越高,不少8/16位MCU用户都采用Cortex-M3内核MCU来升级自己的产品。各主流MCU厂商纷纷推出了ARM Cortex-M3内核MCU,也就是采用ARM Cortex-M3内核配上自家传统MCU的外设。 ARM Cortex-M3 MCU的巨大成功,催生了更高性能的Cortex-M4、Cortex-M33、Cortex-M7以及多核MCU。这些高端MCU速度达到数百Mhz,具有浮点运算等数学计算能力,甚至采用了Cache技术。其应用范围拓展到了图像处理领域,其性能远远超出传统MCU的标准,模糊了MCU与MPU的边界,目前与MPU的区别仅仅在于高端MCU无MMU(存储器管理单元)部分,无法运行linux/android级别的高级操作系统。
图3:STM32高端MCU H7系列(Cortex-M7内核)(图片来源:贸泽电子) 由于这些ARM MCU启动与中断系统是一样的,IDE也可以是一样的,对于开发工程师而言,选用新的ARM MCU的难度要比以前换不同架构MCU轻松很多。 为了解决不同厂商MCU外设的差异化,ARM又提出了微控制器软件接口标准(CMSIS:Cortex Microcontroller Software Interface Standard)。在原厂提供的标准驱动库的支持下,设计工程师可以非常轻松的采用不同型号MCU完成设计工作。 时至今日,针对海量需求的低端MCU市场,越来越多的厂商推出了Cortex M0/M0+ MCU,价格低至0.1 USD。仅中国大陆地区,就有40家以上的MCU供应商。似乎再没有人会想到用8位MCU去做产品。ARM Cortex-M核MCU已经完全覆盖了从主频1GHz,带有DRAM控制器,引脚高达两百多,采用BGA封装高端MCU,到主频15MHz,20条腿的低端MCU。 由于ARM Cortex-M核MCU的普及,也难怪有人用ARM来特指MCU。 MCU市场如此的火爆,贸泽官网提供了近45,000个可选料号,并按照其架构分为8位,16位,32位以及ARM核MCU。如有需求,相信一定能找到符合您期望的MCU。