一种基于机上1553B总线RTC时间的任务计时及分析方法与流程

文档序号:17656320发布日期:2019-05-15 22:02阅读:795来源:国知局

本发明属于机载设备系统领域,具体涉及一种基于机上1553B总线RTC时间的任务计时及分析方法。



背景技术:

1553B数据总线标准是20世纪70年代由美国公布的一种串行多路数据总线标准,具有传输速度快、通信效率高的特性,广泛应用于机载设备系统通信。

机载设备软件属于嵌入式软件领域,对系统的实时性、可靠性具有很高的要求。根据机载设备软件开发的要求,整个系统软件在中断内运行时间至少留有30%的余量,因此,经常需要评估软件中每一个任务执行所耗费的时间,以便分析处理耗时过多的任务。机载设备嵌入式软件通常是基于中断触发的周期方式执行,而系统中断的时间通常可能很小,例如2.5ms,因此,对各任务执行耗时的计算分析需要一种微秒级的精确方法。

常见的机载设备任务计时方法有以下三种:(1)基于硬件离散量输出和示波器测量技术,(2)基于单片机处理器提供的定时器计时技术,(3)基于操作系统提供的任务计时技术。这些方式通常对外界环境要求较高,需要硬件或者操作系统的支持,平台移植性差,或者需要人工过多参与,操作起来较为不便,或者计时精度达不到微秒级。



技术实现要素:

本发明提出了一种基于机上1553B总线RTC时间的任务计时及分析方法,有效解决了机载系统设备的任务执行时间测量难度大、精度低、可靠性差、对外围设备依赖性强等问题。

考虑到现有技术的上述问题,根据本发明公开的一个方面,本发明采用以下技术方案:

一种基于机上1553B总线RTC时间的任务计时及分析方法,其具体步骤如下:

步骤1:方法采用的1553B总线系统硬件包括1553B总线A和1553B总线B,分别与机载设备中惯性导航系统和飞行控制系统连接,系统硬件上电后,对软硬件进行初始化,再对1553B总线的多路总线接口(MBI)板进行初始化,设置相应RTC时钟分频寄存器;初始化完成后启动总线工作;

步骤2:惯性导航系统软件是基于中断触发的方式周期执行,以中断周期作为软件执行周期;在每周期中断触发后,依次激活运行各个任务;采用A总线、B总线双余度的方法,在激活运行某个任务前,调用1553B总线的底层驱动方法分别读取此刻A总线、B总线的RTC时间;在任务执行结束时刻再次读取A总线、B总线的RTC时间;

步骤3:利用任务执行先后读取的A总线、B总线的RTC时间,分别计算时间差,并乘以时间比例因子,得到任务执行时间中间结果,所述时间比例因子为RTC时间的最小分辨率,一般仅为20微秒或40微秒;若两路中间结果至少有一路大于等于中断周期,则舍弃本次结果并终止流程;若两路中间结果都小于中断周期,则对比两路中间结果;若两路中间结果的差值的绝对值大于一定门限值,舍弃本次结果并终止流程;否则求取两路中间结果的平均值,作为本次任务执行时间;

步骤4:惯性导航系统运行包括准备、对准、导航等阶段,在每个阶段取一段时间,每个中断周期内执行步骤3;在每个周期得到本次任务执行时间后,将最近连续若干个周期的本次任务执行时间取其滑动平均值,作为任务平均执行时间;并通过将本次任务执行时间与本阶段任务执行时间的最大值和最小值对比,更新上述最大值和最小值;

步骤5:输出任务执行时间计算结果,执行方法包括以下两种:(1)通过惯性导航系统的232串口周期打印,(2)通过1553B总线周期输出;周期对外输出本次任务执行时间、任务平均执行时间、任务执行时间的最大值和最小值;根据每个周期的输出数据分析评估任务的执行时间效率:根据本次任务执行时间和任务平均执行时间,评估任务在当前阶段内及随惯性导航系统不同运行阶段的变化趋势,根据任务执行时间的最大值和最小值评估最坏情况和最好情况。

本发明的方法优点在于:

首先,对任务执行时间的计算过程进行软件上的简单改进,不需要使用额外硬件设备,减少了外部环境依赖性;不需要增加其它人工操作,避免了人为误差。

其次,由于RTC时间的更新周期仅为20微秒或40微秒,采用该方法计算的任务执行时间为微秒级,相比以往的方法,极大地提高了精度。并且通过双余度技术的应用以及多次采样滑动求平均的方法的使用,进一步提高了准确性和可靠性。

最后,本方法可移植性高,可以跨平台应用,很容易推广到任何使用1553B总线通信的机载系统设备中使用。

附图说明

图1---1553B总线系统硬件结构图;

图2---本发明方法的具体实施步骤流程图;

图3---两种任务计时方法计时结果对比曲线图。

具体实施方式

下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。

参阅附图1,在飞机(包括无人机、歼击机、直升机、运输机等)上,绝大多数采用1553B总线作为主要设备间通信方式,机载系统设备一般包括惯性导航系统、飞行控制系统、任务系统等等。各设备间通过1553B的A总线、B总线进行通信,因此很容易实时获取A总线和B总线上的系统RTC时间。

对于惯性导航系统而言,系统任务包含了对准导航主任务、故障检测任务、I/O任务、非易失任务等多种任务,各任务在中断内依次激活运行,系统中断内执行时间等于任务调度时间与各任务执行时间总和。如果对惯性导航系统主任务的执行时间进行计算统计,整个实施步骤参见附图2,具体描述如下:

步骤1:对惯性导航系统软硬件进行初始化,包括:

(1)初始化1553B总线MBI板,包括对1553B总线A,1553B总线B分别进行通道初始化;

(2)对RTC时钟分频寄存器进行初始化。

步骤2:执行系统软件中断触发过程,在主任务激活运行前,读取此刻A总线与B总线RTC时间,分别记为Ta1、Tb1;在主任务执行结束时刻,再次读取总线RTC时间,记为Ta2、Tb2。

步骤3:利用读取的RTC时间Ta1与Ta2、Tb1与Tb2,分别计算时间差值,计算方法如下:

ΔTa=(Ta2-Ta1)*Δt (1)

ΔTb=(Tb2-Tb1)*Δt (2)

其中,ΔTa、ΔTb表示时间差值,Δt表示RTC时间比例因子(RTC时间的最小分辨率),一般为20us或40us。

用T表示系统中断周期,如果ΔTa>T或者ΔTb>T,那么舍弃本次结果,终止流程;如果ΔTa<T且ΔTb<T,则对比计算结果ΔTa、ΔTb,如果|ΔTa-ΔTb|>ΔTlimit(ΔTlimit表示所取差值门限,根据实际仿真确定该值),舍弃本次结果,终止流程;否则求取ΔTa和ΔTb的平均值Tnew,作为主任务本次执行时间;在惯性导航系统每个阶段第一次执行该步骤后,将Tnew赋值给平均值Tavg、最大值Tmax和最小值Tmin,作为该阶段初始值。

Tnew=(ΔTa+ΔTb)/2 (3)

步骤4:在惯性导航系统运行的每个阶段,取一段时间,每中断周期执行步骤3,记录每周期的Tnew;利用滑动求平均方法求取最近N个周期的平均值并更新Tavg,通过将Tnew与原Tmax、Tmin比较更新最大值Tmax和最小值Tmin。

Tavg=[Tnew(N-1)+…+Tnew(i)+…+Tnew(1)+Tnew]/N (4)

其中Tnew(i)表示记录的当前周期的第i个周期前的任务本次执行时间,i=1,2,…,N-1;N值根据经验预先设定;

步骤5:通过232串口周期打印输出任务本次执行时间Tnew、平均值Tavg、最大值Tmax和最小值Tmin,将获取的数据绘制曲线图进行直观分析。

具体实施例

具体应用场景:在某型无人机上,对其惯性导航系统的各任务进行执行耗时分析。该型惯性导航系统的硬件单片机基本配置如下:

CPU类型:TMS320C6713-200,32bits定点,64bits浮点;

最大工作频率:200MHz;

系统基本中断:10ms;

程序存储器:惯性处理器容量≥512K×32bit、导航处理器容量≥512K×32bit;

数据存储器:惯性处理器容量≥512K×32bit、导航处理器容量≥512K×32bit;

参数存储器:惯性处理器容量≥5K×8bit、导航处理器容量≥32K×8bit。

在该惯性导航系统的导航运行阶段时,分别采用两种方法测量主任务的执行时间,方法(1)是本发明基于RTC时间的计时方法,方法(2)是传统的基于硬件离散量输出和示波器测量的方法,即借助硬件离散量信号,在任务启动前置离散量输出高电平,在任务结束时复位离散量输出低电平,用示波器测量输出高电平的持续时长作为任务执行时间。对主任务执行时间连续30次统计,根据结果绘制了曲线图,如附图3所示。

根据曲线图可以对比看出,采用本发明所提出的基于RTC时间的方法得到的结果,曲线波动相对较小,因此对任务计时的数据稳定性、准确性较高;而采用方法(2)所测量的结果,曲线波动相对较大,异常值比较多,稳定性不够好,故可靠性较低。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1