硬软件系统的实时性

  • Post author:
  • Post category:其他

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.1.2 Linux单内核实时改造方案

一、缺点:实时性不如双内核方案。但是在一般负载下, RT-Preempt Patch 单内核改造方案与双内核方案的实时性能差异并不明显,二者的实时处理性能都能够满足工控要求。
二、优点:RT-Preempt Patch 补丁可以按照标准 Linux-C 方式进行开发, 使用现有的标准 C 库与 POSIX 接口即可完成软件设计, 开发难度更小而调试方便。
三、Linux单内核实时改造具体方案:RT-Preempt Patch 补丁。

3.1.3 Linux实时改造方案与硬件平台

    Linux实时改造方案和硬件平台息息相关,选择方案时一定要确定所选择的方案是否支持实际使用的硬件平台。
   由下图可知,Linux单内核实时改造方案RT-Preempt Patch 支持的硬件平台比较多,所以在实际项目应用中,一般选择Linux单内核实时改造方案RT-Preempt Patch的情况居多
   注意:下图中的“x86_32/64”单指x86下的Linux,不是指Windows。在这里插入图片描述

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),有开发周期


版权声明:本文为y_q_m原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。