在物联网应用发展中,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厂商也基本都提供了底层驱动库给工程师, 实时操作系统(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在网关中用作通信协议转换。 云端 数据经由连接通信的管道传输到云端服务器。服务器按功能可分为网络服务器、应用 |