麻雀虽小 五脏俱全:MCU专用RTOS简述

发布者:SereneDreamer最新更新时间:2020-10-13 来源: elecfans关键字:MCU  RTOS  ARM 手机看文章 扫描二维码
随时随地手机看文章

  微控制器(MCU)广泛应用在各行各业,如各式家电、工业自动化,实时控制、资料采集等领域,为因应工控所需的实时(RealTIme)控制、快速回应等需求,因此MCU大多搭载RTOS(实时操作系统)运行。随著物联网的兴起,软件业也为RTOS加入物联网的成分,以提早卡位物联网的核心软件市场…


  各种处理器专用之OS

  在一般功能(General-purpose)的处理器市场分类中,若以功能与执行速度来说,大致分为CPU > MPU > MCU。CPU的功能最强,主要应用在计算机产品;MPU功能次之,其应用多元,主要应用在嵌入式系统与精简型计算机等多种;而MCU则是以单一应用为主,应用在各式家电、电子产品、嵌入式产品、穿戴式装置、物联网(IoT)应用产品等控制应用。

各种处理器结构
开圆RTOS
各传感器信息传递路径测试

  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般的操作画面,让旧计算机回春。

关键字:MCU  RTOS  ARM 引用地址:麻雀虽小 五脏俱全:MCU专用RTOS简述

上一篇:初识STM8S105K心得
下一篇:SPI,UART,I2C都有什么区别,及其各自的特点

推荐阅读最新更新时间:2024-11-02 18:04

基于W78E54B单片机电话计费器的设计
摘 要:本文简单介绍了基于W78E54B单片机设计的单路电话计费器。本计费器特点是低成本,可配置性好,可适应各种不同的费率要求,计费器自动识别所拨号码,实现自动计费。 关键词:单片机;计费器;W78E54B 引言 公用电话计费器是日常生活中比较常见的。目前的电话计费器不能较好地适应电信系统的折价时间,本计费器采用人工手动计费器,可随时满足折价时间的改变。同时该计费器记录准确,并可以存储200条话费记录;可以通过电话机重新设置时间、区号、费率等,同时可以人工手动实现半价和全价转换;功耗低,体积小,成本低。 系统设计 该系统由W78E54B单片机、摘机检测电路、DTMF解码电路、键盘、LED显示器组成,原理框图如图1所示。
[单片机]
STM32单片机通信协议操作步骤及注意事项
STM32单片机通信协议是一种用于在不同设备之间进行数据传输的协议,它可以帮助设备之间进行高效的通信。STM32单片机通信协议可以用于实现多种不同的应用,如智能家居、智能安防、智能交通等。 STM32单片机通信协议的使用方法主要包括以下几个步骤: 1. 首先,需要确定使用的协议类型,如UART、I2C、SPI等,并确定使用的协议的具体参数,如波特率、数据位、停止位等。 2. 然后,需要在STM32单片机上配置相应的通信接口,并将其与外部设备连接起来。 3. 接着,需要编写相应的程序,实现STM32单片机与外部设备之间的数据传输。 4. 最后,需要将程序烧录到STM32单片机上,并运行程序,实现STM32单片机与外部设备之间的数
[单片机]
ARM异常中断返回的几种情况
异常中断返回的几种情况: 重要基础知识:R15(PC)总是指向“正在取指”的指令,而不是指向“正在执行” 的指令或正在“译码”的指令。一般来说,人们习惯性约定将“正在执行的指令作为参考 点”,称之为当前第一条指令,因此 PC总是指向第三条指令。当 ARM 状态时,每条指令 为 4 字节长,所以 PC 始终指向该指令地址加 8 字节的地址,即:PC 值=当前程序执行 位置+8; 而 ADS 中的 pc,是为了调试看着方便而修改过的,它指向的是正在执行的指令,即 “真正 pc-8”! 1.SWI 和和未定义指令异常中断的返回: 指令地址 A PC-8 当前指令为 SWI 或未定义指令 此时发生中断.PC 的值还没有
[单片机]
单片机成长之路(51基础篇) - 007 CH340CH341最全说明
比较全的CH340,CH341应用说明 CH340 以前用USB转串口时图方便一般也都是直接买现成的USB转串口模块,但是后面设计需要,不等不将CH340这个模块集成到电路板中,经过多次失败,终于得到稳定的工作电路了,以下是CH340的说明。 特点 1、全速USB设备接口,兼容USB V2.0,外围元器件只需要晶体和电容。 2、仿真标准串口,用于升级原串口外围设备,或者通过USB增加额外串口。 3、计算机端Windows操作系统下的串口应用程序完全兼容,无需修改 4、硬件全双工串口,内置收发缓冲区,支持通讯波特率50bps~2Mbps。 5、支持常用的MODEM联络信号RTS、DTR、DCD、RI、DSR、CTS。 6、
[单片机]
<font color='red'>单片机</font>成长之路(51基础篇) - 007 CH340CH341最全说明
51单片机的GPIO配置
导语 通过单片机控制外围器件(LED,蜂鸣器,数码管,按键),本质上是对于单片机IO口的操作,相对于STM32,51单片机IO口模式较少,但了解IO的内部对于学习了解51单片机也由很大的帮助。 GPIO GPIO(General Purpose Input Output),通用输入输出。既能当输入口使用,又能当输出口使用。端口,就是元器件上的一个引脚。可以通过软件去控制。 在大多数的时候,我们将IO口可以看为一个电子开关,通过向IO寄存器中写入相应的值,其输出的电平就随着寄存器的变化而变化,这是IO口的输出,在大多数的单片机中,需要去配置单片机的IO模式,是输入还是输出。 即需要预先初始化,配置GPIO的参数,再去使用
[单片机]
51<font color='red'>单片机</font>的GPIO配置
AVR单片机端口设置
DDRA=OXFF; PORTA=OXFF; 与 PORTA=OXFF; DDRA=OXFF; 是有区别的,这两种顺序对应IO口的电平变化是不一样的。这个区别是在产品性能上面的,从表面上看不出明显区别,没有一定电路功底的可能不太好理解。DDRA、PORTA、在上电时默认都为0x00;如果你设方向DDRA后设PORTA的话,设定为输出方向的全部输出低电平、再设定电平,这个时候输出高电平,那么在输出高电平的这个IO口上面,就会有一个从低电平到高电平的瞬间变化,因为在变化期间IO口方向已经为输出,所以这个信号是有一定能量的,会产生一定的干扰。如果先设电平再设方向的话:上面说的瞬间变化就不会发生了。 ATMEGA8单片机I
[单片机]
STC单片机程序下载问题及解决方法
失败现象: Chinese:正在尝试与 MCU/单片机 握手连接 ... 打开串口失败! Chinese: 串口已被其它程序打开或该串口不存在。 解决方法: 1,检查USB下载模块的连接是否正常,模块上的绿色和红色LED灯都亮起表示连接正常。绿色LED灯不亮表示USB驱动程序出现问题,可以拔下USB模块重插一次。红色LED灯不亮表示模块没有供电,或是USB模块后面的电源输出端(3.3V、+5V、GND)有短路。 2,在控制面板---》系统---》硬件管理器中找到“端口”---》CP2101串口,了解括号里的 COM号。如果括号里显示COM4,那在STC-ISP软件里也要选择COM4才行。 STC-ISP软件: 3,
[单片机]
1.ARM寄存器简解
1.ARM寄存器简解 由ARM Architecture Reference Manual.pdf得信息: 31个通用寄存器,6个状态寄存器(一个cpsr,5个spsr)。 通用31个寄存器,被分为了三类:R0~R7,R8~R14,PC程序计数器(R15)。 R13常做堆栈指针的。 R14保存调用子函数的返回地址,和中断的返回地址。 用于程序计数器,pc指针。 cpsr: 这是对ARM寄存器的简单描述。
[单片机]
1.<font color='red'>ARM</font>寄存器简解
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved