嵌人式虚拟化实时系统的研究与应用
扫描二维码
随时随地手机看文章
引言
随着工业4.0技术的发展,工业机器人控制系统对工业物联网、工业大数据和人工智能等重负载的新技术开始有了应用需求,传统的工业机器人控制系统是基于实时操作系统(RTos)而设计的高度安全可靠的均衡型硬实时系统,同时伴随着系统复杂度的提高,出现了经过内核改造的实时Linux系统方案。但随着系统负载的逐渐加重,其实时性亦逐渐下降。若将通用Linux和RTos两者有机地结合起来,既能满足系统任务复杂性要求,又能兼顾系统实时性。
1Jai1house原理概述
与实时Linux系统单内核(LinuxwithPreemptRT)改造方案不同的是,Hypervisor方案本身并不改造Linux内核,而是利用Linux系统的开放性,增加一个或多个实时操作系统,实现多系统在一个多核处理器上运行。
Jailhouse是一个基于Hypervisor虚拟化技术的Linux静态分区管理程序,其可以运行裸机应用程序或RTos应用程序。为此,Jailhouse使用Cell单元节点来配置CPU和设备硬件平台的虚拟化功能,且各个节点分配的资源互不干扰。
一旦Jailhouse被启动,在Inmate空间就会运行裸机应用程序或RTos,也就是说在Linux端分配了相关的硬件资源给Inmate时,它完全可以独立控制硬件且不再需要外部系统的支持。在TIAM5728硬件平台上,CPU只有两个单元节点Cell:RootCell和InmateCell。Jailhouse软件框架如图1所示。
与基于Linux的全功能虚拟机管理程序(如KVM或xen)不同,Jailhouse不支持硬件的多单元节点复用,其希望用户仅分配需要安全隔离控制的外设硬件资源,这样能保证裸机应用程序或RTos最大限度减少因为应用虚拟化技术所造成的实时性损失。所有静态分配给RootCell操作系统端(Linux)的硬件资源(例如内存、CPU和外围设备),Jailhouse不执行任何调度。
2Jai1house工作过程
Jailhouse由三部分组成:内核模块、程序管理固件和相关工具,主要用来启用管理程序、创建节点Cell和加载InmateCell的二进制应用程序。在AM5728CPU中有两个ARMCortex二A15核,Linux使用sMP模式启动两个核,然后Jailhouse管理程序将由Linux端移至RootCell单元节点,此时Linux端依然使用两个ARM内核。
在创建新的InmateCell单元节点时,Jailhouse管理程序会调用cpu一own()来隔离两个CPU核心,这会使得Linux仅在核心0上运行,随后再加载运行在核心1中基于RTos的应用程序。新的InmateCell单元节点将使用核心1和所分配的硬件资源。
3Jai1house硬件资源配置
根据应用程序的使用情况来看,将外围设备分配给InmateCell单元节点使用的一般原则是保持InmateCell单元节点拥有的外围设备数量和资源数量尽可能少。通常,InmateCell单元节点会直接控制几个与实时控制相关的外围设备(如定时器、工业以太网总线的网口、UART和CAN等硬件接口),其余的外围设备如UsB或显示器,将由标准Linux驱动程序来驱动。
所以在Linux设备树中,为虚拟化管理程序保留16MB的物理内存,为InmateCell单元节点程序保留256MB的物理内存,并将Timer8和Uart9分配给InmateCell单元节点程序。
4测试分析及实验结果
4.1工业机器人EtherCAT应用程序实验测试条件
在基于AM5728平台的工业机器人控制系统中连接清能德创CoolDriveA8单轴伺服驱动,执行1ms总线周期的EtherCAT测试程序。在以下三种系统环境中分别在轻负载和重负载条件下进行系统实时性能测试:
(1)RTos+PRUEtherCAT:
(2)JailhouseLinux+RTos+PRUEtherCAT:
(3)LinuxRT+PRUEtherCAT。
轻负载:运行EtherCAT程序:重负载:运行EtherCAT、网络和科学计算程序。
4.2轻负载下EtherCAT应用测试结果
由表1测试数据可知,在CPU只运行RTos时,实时性能最好,抖动数据主要集中在3.2~6.4μs区间。在Jailhouse环境下由于使用了虚拟化技术造成了实时性能损失,但抖动数据仍然集中在3.2~12.8μs的区间呈正态分布。而LinuxRT实时系统由于其是通过改造内核的方式来达到硬实时的效果,受Linux自身调度机制影响,实时性呈现不规则状况且实时性最差。
4.3重负载下EtherCAT应用测试结果
如表2所示,在系统施加了重负载的情况下,三种系统环境实时性均受到了影响,其中RTosonly和LinuxRT受影响更为严重,最大延迟分别增加了127%和96.7%。但JailhouseRTos由于为双系统独立运行,在虚拟化技术的作用之下,实时性并未受到过大影响。
综上所述,嵌入式虚拟化实时系统非常适合用于复杂的控制系统中。
5结语
本文通过研究基于Hypervisor虚拟化技术的Jailhouse原理,使用虚拟化技术实现多操作系统同时运行在多核处理器上,并将其应用于工业机器人控制系统。通过测试实验得到使用虚拟化技术前后系统实时性延迟抖动数据的对比,测试结果说明在系统负载越重的情况下嵌入式虚拟化实时系统性能越优异,证明工业机器人控制器应用该方案具备基础条件和研究的可行性。