微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 数据监测模块的实时性分析与设计

数据监测模块的实时性分析与设计

时间:10-22 来源:互联网 点击:

在分析实时数据监测模块实时性需求的基础上,提出一个通用实时数据监测模块系统结构,并阐述该模块的软件实现。该系统采用MODBUS_RTU通信协议,采集各个监测模块的实时数据,并在LCD上以图形方式显示系统运行的情况。

实时数据监测是保证大中型旋转机械安全运行的重要手段。随着工业自动化程度的日益提高,对旋转机械的实时数据监测的实时性、可靠性也提出了更高的要求。

笔者在S3C44B0上基于μC/OS-II进行通用实时数据监测模块的设计,并将其应用在旋转机械监视保护系统中,实现了很好的实时性。该监测模块具有对32个模拟量测点进行采集、显示、通信与管理的功能。

1 系统实时性需求

该实时数据监测模块是基于μC/OS-II进行设计的,而保证系统实时性的重要策略是系统的中断处理机制。下面首先对系统设计的中断处理机制进行分析。

1.1 中断处理机制分析

实时系统最根本的特点是实时性,而中断处理程序是实时系统的重要组成部分,是RTOS实时性的重要体现。系统通过中断机制了解外部世界,并对外部事件立刻作出响应。实时系统的反应速度取决于系统对于中断的响应速度和中断处理程序的处理速度。为了获取对外部事件的最短反应时间,μC/OS-II系统中断响应过程如图1所示。

图1 系统中断处理机制分析

第①阶段是中断延迟时间,从出现中断请求到当前任务开中断这一过程。实时系统在进入临界区代码段之前都要关中断,执行完临界代码之后再开中断。关中断的时间越长,中断延迟就越长。

第②阶段是内核保存当前任务的状态,将CPU寄存器压栈,以便为中断服务。

第③阶段调用OSIntEnter()函数或把中断嵌套层数计数器直接加1,用OSIntExit()函数,将中断嵌套层数计数器减1,当嵌套计数器减到零时,μC/OS-II要判定有没有优先级较高的任务被中断服务子程序唤醒。如果有优先级高的任务进入了就绪态,μC/OS-II就返回到那个优先级高的任务B。如果中断嵌套层数计数器大于0,μC/OS-II将被返回到被中断了的任务A。OSIntExit()函数的作用是进行中断级的任务调度。

第④阶段恢复已压栈的寄存器值;最后执行中断返回指令,结束中断。

根据上述中断处理机制,中断响应时间是影响中断实时性的最重要指标,而中断延迟是其主要因素,延迟时间主要由系统时钟和关中断的时间决定。由于系统存在对任务和多中断的调度,所以中断延迟是个变量,一般为4~28个处理器周期。

1.2 实时数据监测模块实时性需求分析

该实时数据监测模块最多同时对32个测点的数据进行实时监测。下面就以32个测点数目对该系统的实时性进行分析,并从系统测量时间、功能要求两个方面说明系统保证实时性的时间条件。

1.2.1 功能要求

① 32同步采样,即系统能够进行多通道采样,并且系统的A/D转换芯片对采样信号可以进行高速动态采集波形的要求,通道采集频率高达240 Hz。

② A/D转换位数,不小于16位。

③ 要求系统必须与计算机接口进行通信,并且接口具有足够的传输速率来满足系统的实时性要求。

④ 要求该系统具有即插即用功能,在即插即用的同时,系统能够实时更新测点的数据以及状态参数。

⑤ 该系统必须具有报警延时和报警保持功能。各个通道的报警延时用户可以根据自己的需要设定,并且报警状态可以被保持。

1.2.2 测量时间

因为每个测点就是需要采集的一个数据源,因此系统需要同时对32个数据源的数据进行采集。每个测点可以分为多个通道(假设都为2个通道),系统需要同时采集的数据有64个。这样可以计算出系统测量周期t为:

t=64×系统对每个通道数据源的测量时间

每个通道的测量时间包括通信时间和A/D采集时间、显示时间。

(1) 通信时间

系统通信采用工业控制和分布式系统协议MODBUS_RTU通信协议。通信协议采用十六进制的形式,所有寄存器采用的都是16位寄存器。寄存器中数据的排列采用大端格式。MODBUS_RTU基本帧格式如表1所列。

表1 MODBUS_RTU基本帧格式

该系统按照上述MODBUS_RTU的基本帧格式发送命令。发送命令基本流程如下:上位机按照表1叙述的MODBUS_RTU基本帧格式向下位机发送,下位机接收到上位机发送过来的命令后,执行相应的操作,然后将返回上位机应答信号。这一过程成为一个通信过程。该系统的一个通道的通信时间为10 ms。

.

(2) A/D采集时间

系统A/D采集转换需要采用高速动态的波形采集方式,每秒最高可采50 000个数据,那么采集一个数据源的时间为 2 μs。完成对32个测点64个数据源的采集时间仅为2 μs×64=128 μs。

采集数据的频率最低可以为每秒钟采集2500个数据,那么采集一个数据的时间最大值为0.5 ms。

(3) 显示时间

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top