随着物联网发展,嵌入式开发得到了很大的发展,MCU的应用生态也发生了一些改变,呈现出了新的特点。目前,物联网应用基本是传感终端通过通信技术连接到云端,数据源源不断地上到了云端,形成了云-管-端的应用系统架构。MCU在物联网中的相关应用一般是在“管”和“端”,管指的是连接通信的管道,端是设备终端或传感终端。 下图是MCU在物联网中应用生态的示意图: 物联网应用中MCU应用生态示意图 MCU 和CPU一样,MCU也在性能和成本道路上不断地向前发展着。从4位、8位、16位到今天主流的32位MCU;从8MHz、16MHz发展到现在的几百MHz主频MCU。MCU的性能不断地提升,而价格却在不断地下降,低配版本的32位MCU已经达到了0.3美金的价位,这加速了电子产品的设备升级换代,也促进了电子产品智能化的发展。国产的32位MCU供应商也越来越多,尤其是凭借ARM Cortex-M系列内核的MCU产品,部分国产MCU品牌发展迅速,有了一定的市场份额。 随着物联网市场需求的强劲增长,对MCU的规格也提出了一些要求,如无线MCU(RF、Wi-Fi、BLE等)和安全MCU等产品。 底层硬件驱动 早在4位、8位MCU时代,由于程序存储容量小、资源少。一般地,底层MCU外设的驱动都是由工程师根据MCU的寄存器自己开发设计,设计风格因人而异,更换不同的芯片或使用新的外设就需要重新开发底层驱动。MCU程序的通用性不强,移植成本也较高,工程师更换芯片也面临着重新学习和开发的成本。 而当MCU产品规格发展越来越复杂的时候,尤其是32位MCU,自己写MCU底层驱动就越来越不是一种好的做法了。现在的MCU厂商也基本都提供了底层驱动库给工程师,极大地方便了开发。ST公司更是提供了图形化的初始化生成工具,让STM32的开发起步更容易简单。 实时操作系统(Real Time Operating System, RTOS) RTOS也随着物联网应用的发展而逐渐多了。物联网应用多是对数据的采集和数据的传输,对控制的实时性要求并不高,一些物联网应用的任务越来越复杂,就需要一个RTOS对MCU资源进行管理和任务的调度,以简化应用的开发和程序的维护更新。而一些对实时性要求控制比较高的应用,如电机控制等,MCU一般不会用到操作系统(RTOS),虽然RTOS是实时RTOS,但对于控制要求精确到指令周期的控制还是不适用的。 如同PC的操作系统一样,物联网的RTOS也管理着MCU的基础资源和应用程序的运行。RTOS没有PC操作系统那么通用性好,由于MCU架构不同,各个厂家的MCU产品也存在着差异,RTOS需要针对不同MCU做适配。为了让物联网设备或传感终端便能更容易方便地连接到互联网,阿里(AliOS Things )、华为(Huawei Lite OS)等大公司都纷纷推出了自己的RTOS。思必驰和华强聚丰也投资了RT-Thread RTOS,以期语音技术通过RTOS快速到达更多的MCU产品上,使得物联网的连接更便捷。操作系统的价值随着物联网应用的发展越来越体现出来。 ## 中间件(Middleware) 有了RTOS的基础,MCU做的应用任务也就可以更多了,可以针对应用需求开发一些功能,如文件的操作,方便应用的管理。这部分功能是应用程序的一部分,而非全部,是一个相对独立的功能,一般可称之为中间件。一些MCU厂商也针对物联网推出了中间件。中间件为MCU的应用提供了更多应用的可能性,拓展了MCU的应用范围。 下面是一些中间件: 应用程序 物联网中MCU的应用程序,多是以功能实现为主,对实时控制的要求弱化了很多,主要是做传感器数据采集、连接通信以及简单控制等功能。 工具链(Toolchain) 在软件中,工具链一般是指一套编程的工具,用于设计软件产品,由编译器和连接器(将源代码转换为机器能识别并可执行的程序)、库和调试器(测试和调试程序)等组成。MCU的应用开发离不开工具链的支持。8/16位MCU厂商一般提供汇编语言的编译器,不同指令架构的MCU需要不同的专用工具链支持。作为软件产品的工具链,其编译性能和稳定性需要长期不断地完善,市场的工具链基本有三类:a) MCU厂家自有的工具链 b) 第三方工具链,多是商业软件 c) 开源工具链,如GCC。有实力的MCU厂家会自己发展工具链,为用户提供更多的价值服务。而多数的MCU厂商借助第三方或开源的工具链发展MCU产品。 连接通信 (Connection) 在物联网应用中的连接通信的产品,一般可以有两种产品形态:通信模块和网关。常见的一些通信模块有:Wi-Fi、NB-IoT、2G/3G/4G等,可直接连接到云端。MCU在模块中一般用作数据传输。在使用电池供电的应用中一般会选择用超低功耗MCU(ULP MCU)。而如LoRa、Zigbee、Z-Wave、BLE等无线连接技术则需借助网关连接到云端,MCU在网关中用作通信协议转换。 云端 数据经由连接通信的管道传输到云端服务器。服务器按功能可分为网络服务器、应用服务器等。网络服务器一般用做物联网的设备管理,应用服务器一般用做基于数据分析处理等应用程序。用户界面则是与用户直观的交互界面,如Web端、手机App等。 结束语 中国MCU市场基本形成了以8051、RISC(类PIC)、ARM三大内核为主流的MCU产品。国产MCU在在面对各种物联网的需求推出了不少的新MCU产品、如无线MCU、安全MCU等,借助成熟的工具链,加快了物联网项目的落地和产品的上市。 在物联网开发过程中,MCU的应用程序不再为个人或公司独自完成,更需要与其他公司或其他资源的协作,如RTOS和中间件,产品应用的分工更加细化,逐步形成了底层驱动、操作系统、中间件、连接通讯、云端的产品生态链。为使云端应用落地,有实力的公司加快了嵌入式领域的投入与合作,让物联网的开发者开发物联网产品更加容易和快捷。而嵌入式MCU的物联网开发者也可以借助大平台的资源迅速推出一些新颖的物联网产品。 |