0731-84728105
15116127200
ZYNQ RTOS解决方案

一、 引言

    支持 FAST 开源架构的 OpenBox-S4 平台的核心器件采用(yòng)的是 Xilinx 公司的 ZYNQ 系列芯片的产品,该平台目前是 FAST 开源社區(qū)的主要适配平台,支持所有(yǒu)的 FAST 开源项目,如 SDN、TSN 等。时间敏感网络(TSN:Time Sensitive Networking)是以以太网
    為(wèi)基础的新(xīn)一代网络标准,具有(yǒu)时间同步、延时保证等确保实时性的功能(néng)。
    FAST 开源社區(qū)目前已经完善了在真实物(wù)理(lǐ)网络传输环境下的 TSN 功能(néng)适配,湖(hú)南新(xīn)实也推出了一體(tǐ)化的 TSN 综合演示方案。随着我们对 TSN 技术的不断深耕,支持 TSN功能(néng)、适配 TSN 业務(wù)软件的综合系统应用(yòng)环境也将逐步推出。
    ZYNQ RTOS 顾名思义就是在 ZYNQ 平台上运行 RTOS(Real Time Operating System,简称 RTOS),更准确的说就是在 OpenBox-S4 上运行实时操作系统,更好的支持 TSN技术。

二、 RTOS 背景

    How fast is fast enough? 实时是一种相对概念。根据应用(yòng)场景与用(yòng)户需求不同,实时的响应时间要求不同,其实现方法也各有(yǒu)差异。支持 ZYNQ 的实时解决方案分(fēn)為(wèi)如下几种:
1. SMP 的亲和
    SMP(对应多(duō)处理(lǐ)器)的亲和是指将业務(wù)处理(lǐ)逻辑亲近在某些或某个特定的 CPU核上进行处理(lǐ),减少 CACHE 失效带来不确定的查表延时。CPU 的亲和包括软件逻辑的亲和与中断的亲和。中断的亲和其实也是為(wèi)了让软件逻辑亲和在指定的核上工作。通过亲和的方式可(kě)以对逻辑的性能(néng)带来一定的提升,处理(lǐ)延时也会得到一些改善。但亲和改善的主要关键在于 CACHE 的失效,故只对一些数据 IO 密集形业務(wù)有(yǒu)改善,延时的稳定性也与数据分(fēn)布相关。
2. PREEMPT_RT
    PREEMPT_RT 是 Linux 内核的一个实时补丁。主要目的是為(wèi)了提高 Linux 的延时响应时间。补丁代码需要替换内核中成千上万行的代码,需要适配不同的支持设备,而且為(wèi)了保证实时,也牺牲了系统整體(tǐ)的吞吐量。由于这些不尽理(lǐ)想的代价权衡,至今為(wèi)止,该补丁仍未融入到 Linux 内核的主線(xiàn)版本中来。
3. Enea LWRT
    Enea LWRT 是一种商(shāng)业解决方案,主要是在用(yòng)户空间提供无中断(上下文(wén)切换)的代码执行环境。整个系统分(fēn)為(wèi)两部分(fēn),一部分(fēn)為(wèi)实时分(fēn)區(qū),另一部分(fēn)為(wèi)非实时分(fēn)區(qū)。其中实时部分(fēn)既可(kě)以使用(yòng)部分(fēn)系统屏蔽的的 CPU 核来运行,也可(kě)以在内核中嵌入实时模块来支持。实时的用(yòng)户空间提供了一些轻量级的線(xiàn)程 API 和管理(lǐ)模块。
4. 裸机 AMP
    AMP(非对称多(duō)处理(lǐ)器)的最直接方案就是 Xilinx 提供的裸机 APP 应用(yòng)。Linux 系统运行在一个专门的 CPU 核上,通常是 CPU0,然后通过 FSBL 将裸机 APP 或可(kě)执行代码加载到 CPU1 上运行。由于操作系统运行在 CPU0 上,在 CPU1 上仅运行业務(wù)逻辑代码,不存在上下文(wén)切换,调度等任何其他(tā)带来的延时开销,故该方法可(kě)以较好的保证业務(wù)逻辑处理(lǐ)的实时性
5. FreeRTOS
    FreeRTOS 主要由 Amazon 开发与维护,属于 AMP 架构。Linux 系统运行在 CPU0上,在 CPU1 上运行支持整个实时应用(yòng)环境的操作系统。实时任務(wù)与非实时任務(wù)均只在自己的核上运行,但两者之间可(kě)以相互访问。实时访问非实时要根据 MMU 的地址定义来决定,而非实时访问实时可(kě)以像访问其他(tā)设备存储一样读写。
6. Xenomai
    Xenomai 是一种采用(yòng)双内核机制的 Linux 内核的强实时扩展。他(tā)与 Linux 共享硬件资源,优先级高于 Linux 内核,负责处理(lǐ)系统的实时任務(wù)。其运行方式更像一个勾子系统,系统支持的内部或外部中断触发后,先由 Xenomai 执行,属于实时操作的任務(wù)在 Xenomai 环境下全部执行完成,由于该环境的最高优先级,处理(lǐ)过程不会被 Linux 中断。只有(yǒu)非实时处理(lǐ)任務(wù)会被分(fēn)派到 Linux 系统执行。这样就可(kě)以完全保证 Xenomai 环境任務(wù)的实时要求不受 Linux 的影响,提供系统的实时可(kě)确定性。

三、 我们的选择

    FAST 开源架构主要面向网络通信领域,TSN 技术更是為(wèi)了支持确定性的网络通信传输。通过上述的几种对实时处理(lǐ)的解决方案对比,裸机 AMP、FreeRTOS 和 Xenomai 各有(yǒu)优势与不足。结合目前我们在 FAST 架构上的应用(yòng)与开发,我们倾向选择 Xenomai。一方面由于该方案更适合网络应用(yòng)环境,包含了从驱动、协议栈到用(yòng)户应用(yòng)的完整的网络应用(yòng)开发示例。另一方面该方案仍然支持并使用(yòng) SMP 架构的通用(yòng) Linux 系统,对用(yòng)户原有(yǒu)系统架构和 FAST 原有(yǒu)支持系统与架构均不会带来任何影响。

四、 测试与验证

    目前系统正在测试过程中
    关于 RTOS 上的实时应用(yòng)开发,敬请关注 FAST 开源社區(qū)的推出的技术文(wén)章
下载该文(wén)档
服務(wù)热線(xiàn)