自动化与控制行业中有不少场景须要循环周期控制,而运动控制领域对循环周期控制的时间肯定性要求尤其严格,周期抖动的时间肯定性和周期控制的极限范围直接影响运动控制产品的质量和性能。
SylixOS做为一款嵌入式实时操做系统,针对不一样循环周期和不一样程度的时间肯定性要求均有对应的周期控制方式,其中就有为周期性任务解决多任务调度冲突而且时间肯定性良好的速率单调调度(Rate Monotonic Scheduling RMS),还有传统的以硬件平台定时器做为中断源,以中断服务程序做为实时任务运行载体的周期控制方式。网络
本文档主要针对SylixOS实时周期任务进行时间肯定性的测试,为贴近真实场景,除了实时周期任务,还有多个普通线程以及不间断的串口中断、网络中断等干扰项,以此保证本文档测试数据以及抖动分析有实际参考价值。性能
测试平台有两个CPU,在应用程序中将实时任务绑定到CPU1上,其余任务则在CPU0上运行,其中SylixOS中断的绑核不提供应用层的接口,所以咱们编写了一个.ko文件用于绑定中断(包括串口中断、网络中断、定时器中断等)到CPU0上,测试时加载此.ko模块便可,具体测试模型如图 2-1所示。测试
图 2-1 SMP模式的RMS方式测试模型spa
RMS实现说明:基于操做系统tick的软件定时,循环周期高于tick的部分以tick来实现,循环周期低于tick的部分以CPU忙等待处理实现,以此保证时间延时精度。
SylixOS在高精度时间的CPU忙等待处理中会使用自旋锁,在这一过程当中,操做系统不停地获取CPU的时间计数值,每次获取值的过程须要自旋锁加锁、解锁的操做,多核竞争下共享资源使用自旋锁进行互斥访问会对RMS有影响,存在一个极限状况,CPU0在CPU1上的实时任务延时完成以前抢先占有自旋锁,自旋锁被占有的时间会致使SMP模式的RMS最大抖动极限值。操作系统
以硬件平台定时器做为中断源,以中断服务程序做为实时任务运行载体,这种SMP模式的ISR方式,将实时线程转化为中断任务,可有效提升任务的响应速度和任务循环周期的时间肯定性,具体测试模型如图 2-2所示。线程
图 2-2 SMP模式的ISR方式测试模型接口
SMP模式的ISR周期控制方式,SylixOS使用双核平台的私有定时器产生定时中断到中断处理程序开始执行存在必定时间间隔,不可避免。这段时间间隔就是中断响应时间,稳定的中断响应时间能够保证ISR方式的稳定循环周期。存在一个极限状况,先后两次的定时中断分别以最小的中断响应时间和最大的中断响应时间让中断处理程序开始执行,就会致使ISR周期控制方式的最大抖动极限值。SylixOS在双核平台的中断响应时间集中在2-3μs,所以ISR周期控制方式的最大抖动极限值为±1μs。资源
周期控制方式中时间肯定性最好的一种方式。文档
由于任务在中断服务程序中执行,要求任务代码短小精悍且不容许有耗时操做,须要根据具体状况决定是否采用此方法,不具有通用性。产品
SylixOS支持AMP模式,在双核平台的两个CPU上分别运行SylixOS,测试模型与SMP模式的RMS方式相似,具体的测试模型如图 2-3所示。
图 2-3 AMP模式的RMS方式测试模型
AMP模式的RMS周期控制方式相对SMP模式的RMS周期控制方式避免了多核竞争下共享资源使用自旋锁互斥访问的影响,最大抖动主要是和先后两次实时任务运行以前的任务上下文切换时间有关,存在一个极限状况,先后两次任务上下文切换分别以最小切换时间和最大切换时间来完成任务调度,会形成AMP模式的RMS方式的最大抖动极限值。
因为每一个CPU单独运行一个操做系统,相比SMP模式下的RMS方式,避免了多核竞争下共享资源使用自旋锁互斥访问的影响,提升了时间肯定性。
AMP模式的RMS方式可能会出现RMS任务独占CPU的状况,SylixOS在双核平台的时钟周期为100μs,当任务延时时间低于100μs(时钟周期)时就会出现任务独占CPU的状况。
AMP模式的ISR周期控制方式和SMP模式的ISR控制方式结果相似,不单独列出。 SylixOS有多种循环周期控制方式可供选择,在对较小循环周期的控制场景下,SylixOS能够以针对性的控制方式保证明时任务的时间肯定性,本文档测试场景模拟了一些干扰任务和中断任务,用户可根据自身实际场景选择合适的周期控制方式。