1 实时性的考察对象:单片机、实时操作系统和分时操作系统
1.1 单片机裸机OS
一、古老的51单片机。
二、当下最流行意法半导体的STM32 Cortex-M3系列、Cortex-M4、Cortex-M0和Cortex-M7系列单片机。
三、其他公司单片机系列:
1、德州仪器TI公司的MSP430系列和DSP F28系列;
2、微芯科技Microship公司的PIC系列;
3、爱特梅尔Atmel公司(被Microship公司收购)的AVR系列;
4、**瑞萨公司(日本)**的RA系列(48-200MHz 32位ARM生态)、RZ系列(125Mhz-1.5GHz 32位支持Linux或RTOS)和RH850系列(最高400MHZ,汽车应用);
5、恩智浦NXP公司的8位单片机80C51 系列和32位的i.MX系列;
6、飞思卡尔Freescale公司(被恩智浦NXP公司收购)的32位Kinetis系列、32位ColdFire系列、32位MPC56xx系列和16位DSC系列、16位9S12XS系列;16位9S12G系列;
7、英飞凌Infineon公司的8位单片机XC800系列、16位XC2000系列和Xe166m系列和32位TriCore系列;
8、赛普拉斯Cypress公司的PSOC 系列
9、三星Samsung公司的 4 位单片机KS51 和 KS57 系列、8 位单片机KS86 和 KS88 系列、16 位单片机KS32 系列和32 位单片夹KS32 系列;
1.2 实时操作系统(RTOS)
一、主流RTOS
1、μClinux
? ? 嵌入式Linux版本,优点:良好的稳定性和移植性、强大的 络功能、出色的文件系统支持、标准丰富的API,以及TCP/IP 络协议;缺点:μClinux结构复杂,移植相对困难,内核也较大,不支持内核抢占,实时性一般。
2、μC/OS-II
? ?主流RTOS,但是不开源,收费;在商业和工业应用广泛。
3、eCos
4、FreeRTOS
? ?主流RTOS,且开源免费。缺点:一方面体现在系统的服务功能上,如FreeRTOS只提供了消息队列和信 量的实现,无法以后进先出的顺序向消息队列发送消息;另一方 面,FreeRTOS只是一个操作系统内核,需外扩第三方的GUI(图形用户界面)、TCP/IP协议栈、FS(文件系统)等才能实现一个较复杂的系统, 不像μC/OS-II可以和μC/GUI、μC/FS、μC/TCP-IP等无缝结合。
5、mbed OS
? ?ARM公司主导,将mbed OS免费提供给所有厂商使用。
6、RTX
7、Vxworks
? ?美国WindRiver风河公司产品。具有硬实时、确定性与稳定性,也具备航空与国防、工业、医疗、汽车、消费电子产品、 络及其他行业要求的可伸缩性与安全性。优点:实时性、确定性和稳定性最好的RTOS,偏军工和航天;缺点:收费,知识产权保护严格,且价格不菲,开放资料相对较少。
8、QNX
? ?遵从POSIX规范的类Unix嵌入式实时操作系统。
9、NuttX
10、MCU制造商开发的配套自己单片机的实时操作系统。
? ?如德州仪器TI的DSP/BIOS?实时操作系统一个可定标的实时作业核心,是TI公司特地为其TMS320C5000? 及 TMS320C6000? DSP 的平台所设计
二、国内RTOS:
1、赛睿德RT-Thread(开源免费,国内比较流行,国内最好);
2、腾讯TencentOS Tiny;
3、华为AliOS;
4、华为Huawei LiteOS;
5、都江堰djyos;
6、翼辉SylixOS(国内军工与航天领域的RTOS)。
三、无论是国外主流RTOS还是国内RTOS,都是跑在高性能的单片机上。
1.3 分时操作系统
一、Windows系列。
二、Linux系列:如Ubuntu、Debian、Centos、深度Deepin(国产)。
三、Unix系列:如Mac OS(苹果电脑操作系统)。
四、移动端操作系统:Android(类Linux)和iOS(类Unix)。
2 实时性对比
单片机裸机≥RTOS>分时操作系统
? ?单片机裸机的实时性不是一定比RTOS的高。在产品功能简单和程序任务单一的情况下,单片机裸机的实时性要高于RTOS;在产品功能复杂和程序多任务的情况下,合理使用RTOS获得的实时性要高于单片机裸机。
? ? 单片机裸机和RTOS的实时性,一般情况是远远高于分时操作系统的。
3 分时操作系统的实时性改造
? ? 众所周知,Windows系统和Linux系统是分时操作系统,但是在某些特殊情况或应用场景下,作为分时操作系统的Windows和Linux会有实时性需求,这就涉及到分时操作系统的实时化改造。
3.1 Linux 系统的实时性改造
? ? 目前 Linux 系统的实时化改造分为两类。
? ? 一类是在标准的 Linux 操作系统里嵌入一个实时微内核,形成传统Linux内核+实时内核的双内核方案。 微内核负责运行实时任务,保证强实时性,而传统Linux内核运行于实时内核之下, 负责处理低优先级的任务。
? ? 另一类是单核实时 Linux 系统,这类方案利用 Linux 内核自2.6 版本之后添加的内核具有可抢占特性, 通过改造内核实时调度策略,实现内核资源的抢占来缩短中断延迟, 最终获得实时任务的处理能力。典型的做法是对传统的Linux内核打入PREEMPT_RT补丁,使内核成为硬实时操作系统。
3.1.1Linux双内核实时改造方案
一、优点:实时性强。
二、缺点:实现颇为复杂。 一方面微内核需要在硬件上获得维护和支持, 开发周期长, 而且与之相关的开源资料很少, 新的开发人员入手难度极大;另一方面, 在此种方案下, Linux 需要维护一个硬件抽象层,不能使用标准 C 函数库, 而且与 POSIX 层对接繁琐,需要使用专门的动态链接库,并面向双内核进行交叉编译和,调试极其复杂。
三、Linux双内核实时改造具体方案:RTLinux、RTAI和Xenomai。
3.2 Windows 系统的实时性改造
? ?Windows是闭源收费的分时操作系统,在实时性改造方面远没有Linux系统自由和可选择性广泛。目前找到两种Windows 系统的实时性改造方案,如下。
3.2.1 Windows 系统的实时性改造-KingStar Motion现成方案
? ?美国InterverZero公司开发的Windows平台硬实时系统KingStar Motion,是迄今为止在Windows 平台上最优秀的基于软件的硬实时解决方案。
? ?KingStar Motion,是以RTX实时操作系统为主轴,并整合EtherCAT、软件PLC (Software PLC)及软件运动控制 (Software Motion)的整合产品。
? ?优点:实时性高(RTX 的时钟分辨率可以达到100纳秒,定时器周期最低可以做到1000、500、200、100微秒);广泛的扩展性(支持Windows 2000、Windows XP、Windows XP Embedded、Win7和Win10,几乎Windows下所有的32位和64位系统都支持)和优秀的稳定性。
? ?缺点:收费,开发资料少。
3.2.1 Windows 系统的实时性改造-代码优化
? ?内容详见“基于 Windows 平台的实时 EtherCAT 主
站开发”论文第三章“3 Windows 系统实时性优化方法”。
? ?优点:自己公司程序员代码优化,不用额外付费。
? ?缺点:实时性不高(中断时间1ms),有开发周期。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!