微控制器(MCU)广泛应用在各行各业,如各式家电、工业自动化,即时控制、资料采集等领域,为因应工控所需的即时(Realtime)控制、快速回应等需求,因此MCU大多搭载RTOS(即时作业系统)运作。随着物联网的兴起,软体业也为RTOS加入物联网的成分,以提早卡位物联网的核心软体市场…
各种处理器专用之OS
在一般功能(General-purpose)的处理器市场分类中,若以功能与执行速度来说,大致分为CPU > MPU > MCU。CPU的功能最强,主要应用在电脑产品;MPU功能次之,其应用多元,主要应用在嵌入式系统与精简型电脑等多种;而MCU则是以单一应用为主,应用在各式家电、电子产品、嵌入式产品、可穿戴设备、物联网(IoT)应用产品等控制应用。
MCU内部整合了KHz~MHz级的CPU、KB~MB级的记忆体单元(RAM与ROM/EEPROM/Flash)、时脉产生器(Oscillator;Clock Generator)、与I/O扩充单元等,可视为一种速度较慢的系统单芯片(SoC)。
由于内部存储容量小,因此大型作业系统如Windows、Linux等是不可能塞入MCU去执行的,且MCU大多被应用在即时控制的环境,因此许多容量小的RTOS(Real-Time Operating System;即时作业系统),便成为开发MCU软体的主要平台。
主打嵌入式应用的中高阶RTOS
RTOS的种类繁多,主要设计给基于MPU或MCU的嵌入式系统所使用。例如MPU等级专用的有Integrity、QNX、VxWorks等功能强大之 RTOS;至于体积较小巧,主要支援MCU等级为主的RTOS,则有Nucleus、ThreadX、Unison OS、ucOS II/III等等。
以Green Hills Software推出的Integrity OS为例,就是一种支援MPU (甚至CPU等级)为主的RTOS。其强项在于Integrity-178版本已通过EAL 6+(资讯安全)认证与DO-178B(飞安环境) A级认证,被应用在极度重视安全和可靠性的市场,例如战斗机(如B-2、F-16、F-22、F-35)与民航机(如Airbus A380)等领域。该RTOS支援ARM、XScale、Blackfin、Freescale (已并入NXP) ColdFire、MIPS、PowerPC、AMD x86(嵌入式APU)等CPU/MPU平台。
另一个知名的QNX RTOS,采用微核心架构,是唯一成功打入商用市场的OS,其强项是多媒体的即时处理能力,适用于车(机)上娱乐设备与手机等嵌入式市场。QNX于 2010年被BlackBerry购并,并开发出BB 10作业系统。QNX支援IA32、MIPS、PowerPC、SH-4、ARM、StrongARM、XScale等CPU/MPU平台。
至于像是IntervalZero的RTX、RTX64,则是设计来与微软Windows共存共容的RTOS,搭配EtherCAT协定来做为工厂自动化的应用。其中,Windows主要负责GUI、储存、运算,RTX则负责即时工控与资料采集,让工控软体开发更容易。以上的RTOS都是MB至GB等级的 MPU等级OS,不适用于MCU的环境。
主打MCU应用的商用RTOS
中低阶RTOS部分,主要是把软体功能极尽精简到MB甚至KB等级,使整个OS与主要应用程式,均可以塞入MCU里的ROM/EEPROM /Flash。由于MCU应用的领域更加广泛,其软体必须力求更加精简,因此MCU专用的RTOS大多具备非常高度模组化的架构,从核心、驱动程式、档案系统、周边 I/O、网路支援等,都可以量身订作,以利产品快速上市。
商用的RTOS有些会提供原始码给授权客户,而开源的RTOS则更能自由使用,让开发人员可以编译出程式码最小、最佳化的执行环境。
由于各芯片厂所推出的MCU产品/开发板,都会有其对应的OS与IDE(整合软体开发环境),但这些OS与软体开发环境可能只适用于该厂的MCU产品,因此第三方软体厂商,就开发出跨芯片/跨硬体平台的OS与IDE,让开发人员不须因为换了硬体平台,软体就必须全部改写。
目前MCU OS/IDE市场占有率最高的,大多是软体公司所推出商用RTOS(搭配各厂商的MCU产品),然随着ARM推出Cortex-M、Cortex-R等指令集架构,进军可穿戴与物联网应用市场,使得ARM架构(采开源码)的RTOS开始有提升的趋势。
Mentor Graphics旗下Accelerated Technology公司所推出的Nucleus,采Microkernel设计,号称有30亿个设备导入,优势是核心长度可以小至2KB,且开发人员不需要撰写嵌入式设备专用BSP(开发板支援套装软体),因此被广泛应用到消费性电子、移动设备、车用电子、智能能源、医疗仪器、工业/工控等领域。
早期采用联发科MT6217芯片的大陆山寨、白牌、双卡2G手机,就是执行Nucleus RTOS。该RTOS支援ARM、MicroBlaze、MIPS、Nios II、Power、SuperH、XScale等嵌入式MCU架构。
Express Logic推出的ThreadX,则是一套免收权利金的RTOS,其优点是具备超快速的开机时间、反应时间,其Picokernel核心长度低于2KB,并通过安全规范,号称有21亿个设备导入使用。例如HP的旗下印表机和事务机便采用该RTOS。可广泛支援各式32位MCU,包含ARM、Atmel、 BlackFin、CoreFire/68K、EFM32、Freescale (NXP)、FM3、H8、XMC、M-Core、MicroBlaze、MIPS、Nios II、Power、STM32、StrongARM、Synopsys ARC、TI、Win32、x86/x386、XScale等等。
Wind River公司所推出的VxWorks,主要针对嵌入式系统设计,采Monolithic (单体式)核心,优势是具备先占式多工处理核心、循环执行、岔断快速反应等特性,原生支援64位处理器架构(x64)、可进行平行(SMP)/非平行 (AMP)处理,累积至今有超过15亿个设备导入。
新版VxWorks 7则瞄准IoT所需要的可扩充性、安全性、连接性、绘图能力、虚拟化等做强化,而全功能的VxWorks微核心长度只要20KB。VxWorks广受科技业界的采用,登陆火星的Curiosity(好奇号)便采用VxWorks。该RTOS支援Intel x86(包含Quark SoC与x86-64)、MIPS、PowerPC、SH-4、ARM等CPU/MPU架构。
RoweBots公司的Unison OS,则是一款完全相容于POSIX(可移植作业系统界面)的RTOS,适用于MCU、DSC、DSP、SoC、FPGA等32位的硬体开发环境,其好处是特别针对物联网的应用,提升其系统安全性,且核心程式码在某些应用架构可以低到仅1KB。支援Microchip PIC32、Renesas R32C/SH2A、ST STM32、TI ARM Cortex-M3等32位MCU。
Micrium的μc/OS-II (microcontroller OS version 2),主打可携、能在ROM执行、弹性、先占式多工的RTOS核心,可管理高达250个应用任务。μc/OS-III则主打无限应用任务、几近于零的岔断,并可提供原始码给客户。
其优势在于该系统原始码开放、整洁一致、注释详尽,亦通过FAA认证与DO-178B认证,适合各种嵌入式与物联网的系统开发,核心大小从5或 6KB~24KB。至于μc/OS-III HW-RTOS,则是针对ARM Cortex-M为主的MCU做硬体加速。该RTOS可支援超过100种DSP、MPU、MCU。
ARM MCU促使开源RTOS兴起
近年来由于ARM架构的处理器横扫全球智能移动设备(手机/平板)市场,除了搭配各MCU/MPU硬体平台所推出的商用RTOS/IDE之外,为进军物联网与可穿戴的MCU级应用,ARM推出Cortex-M与Cortex-R的指令集架构,搭配开源的OS/IDE来抢占MCU的应用市场。
例如ARM推出的mbed OS与相关开发环境,便着重于嵌入式设备与IoT的应用,具备连接性、高效率、安全性、生产力的OS,搭配其mbed-rtos函式库,亦可做为RTOS的应用。该mbed开发环境,可开发出智能家庭、智能城市、可穿戴等应用产品。
此外,坊间针对ARM平台所推出的开源RTOS/IDE很多,例如FreeRTOS、uKOS-II、Atomthreads、BeRTOS社群版、 ChibiOS/RT、CoActionOS、eCos、Embox、Erika Enterprise/RT-Druid、Keil (ARM) RTX、Lepton、nOS、Nut/OS、NuttX、RIOT、RT-Thread、TI-RTOS-KERNEL(SYS/BIOS)、TNeo 等等,让开发人员有更多的选择。
其他专用MCU的非即时OS概述
此外,也有许多针对MCU设计的开源OS (非RTOS),但同样具有体积小的特性,有些是针对IoT的WSN(无线传感网路)应用,例如Contiki OS、TinyOS。而有些则具备一般桌上型图形化使用界面(GUI),例如SymbOS、Wheels OS等。
Contiki OS是一套开源的微型OS,可应用在Atmel ARM/AVR、LPC、PIC32、TI MSP430/CC2430/2538/2630/2650、STM32W等MCU做IoT应用,也可在博物馆级的8位电脑(Apple II、Atari、Commodore等)做上网连线、甚至在骨灰级游乐器(Atari Jaguar、Game Boy/Advance、GP32、任天堂红白机、PC Engine等)上执行。
至于SymbOS,则是一套能在8位Z80 CPU (如MSX、Amstrad)的古董电脑上执行之免费多媒体图形作业系统,赋予如Windows 95般的操作画面,让旧电脑回春。