您的位置 首页 知识

数据监测模块的实时性剖析与规划

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

剖析实时数据监测模块实时性需求的根底上,提出一个通用实时数据监测模块体系结构,并论述该模块的软件完结。该体系选用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) 显现时间

嵌入式接触屏设备是一种人机交互设备,将接触屏安装在LCD液晶屏上,配以相应的操控电路对接触屏和LCD进行操控。用户经过接触操作,就可以对相应的设备进行交互。接触屏由接触检测部件和接触屏操控器组成。

收集到的数据送回到接触屏操控器的X与Y值仅是对当时接触点的电压值的A/D转化值,它不具有实用价值。这个值的巨细不光与接触屏的分辨率有关,也与接触屏与LCD的贴合状况有关。因而,要想得到比较准确的表现LCD坐标的接触屏方位,还需求在程序中进行转化。假定LCD的分辨率是320×240,坐标原点在左上角;接触屏分辨率是900×900,坐标原点在左上角,则转化公式如下:

式中:X、Y是对当时接触点电压值的A/D转化值;X1、X2、Y1、Y2分别是接触屏坐标的最大值和最小值。

LCD显现时将收集到的坐标经过具体的转化程序进行转化。转化需求有必定的时间,所以LCD的显现时间t包括获得当时接触点的电压值的时间以及由程序转化得到当时A/D转化值的时间。接触屏选用中止方法对数据进行采样,可以运用定时器对接触屏的采样基准时间进行设定,一般设定接触屏的采样基准时间为10 ms。接触屏每隔10 ms对数据进行一次采样,即每隔10 ms对每个通道的数据进行一次采样,并将其显现在LCD上。

依据以上所述,体系对每个通道数据源的丈量时间tchannel =通讯时间tc +收集时间ts+显现时间tl=10 ms + 0.5 ms +10 ms = 20.5 ms。此刻体系中最多64个通道,那么体系完结64个通道的丈量周期为T=64×tchannel=64×20.5 s≈1 s,实时数据监测模块的规划有必要满意上述要求才干很好地满意体系的实时性。

2 体系规划

依据上述对实时数据监测模块实时性的需求剖析,将整个体系的体系结构分为3个模块: 第1个模块是LCD显现模块,第2个模块是收集和通讯模块,第3个模块是监测点模块。如图2所示,LCD显现模块用于显现收集数据和以按键方法发送指令。通讯模块中LCD经过按键操作的方法经过MODBUS_RTU通讯协议与各个监测点之间的通讯衔接,通讯选用RS232/RS485无源转接器衔接。该实时数据监测模块经过RS232/RS485对各个监测点的数据进行收集,并将收集到的数据送入各个监测点的数据缓冲区(数据缓冲区包括坚持寄存器、操控寄存器和状况寄存器)。体系的数据链路层选用MODBUS_RTU通讯协议。

图2 模块结构

3 软件规划

经过对各嵌入式操作体系的特色、功用进行可行性剖析及比较,本模块选用了μC/OS-II作为该模块需求移植的操作体系。

3.1 使命区分

μC/OS-II是一种占先式多使命内核,其完结的使命调度是依据优先级的,即优先级最高的使命一旦准备安排妥当,就获得CPU的一切权开端投入运转。现在,μC/OS-II办理多达64个使命,其间8个保留给体系,使用程序最多有56个使命,能满意一般嵌入式体系的需求。在μC/OS-II中,每个使命的优先级要求不一样且是仅有的,所以使命调度作业十分简略,即查找准备安排妥当的最高优先级使命,然后进行上下文切换。μC/OS-II下每个使命有休眠、安排妥当、运转和中止等状况。

剖析μC/OS-II的源码会发现,它把使命的优先级作为使命的标识符来运用。只要进入安排妥当态的最高优先级的使命才干得到CPU的运用权。使命区分是开发实时体系软件的重要一步。要依据简化使命间的通讯这一意图进行使命区分,使各使命程序完结的功用模块化。在此模块中,将处理收集和通讯使命都设置了较高的使命优先级,通讯使命为Task40_ComputerCom,收集使命区分为TMapStaticData和TMapDynamicData。为使体系可以及时更新办理模块中的静态数据,将对功用模块静态数据进行更新的使命的优先级设置成两者中的最高。在模块中的其他使命可依据具体状况进行设置。表2胪陈此模块中创立的各使命的使命阐明及优先级区分。

3.2 使命调度战略

TMapDynamicData使命轮询一切在线测点的实时数据;一起,该实时数据监测模块在RAM中为每个功用模块树立一个数据映射区,并在映射区中保存各功用模块的表号、变量参数、报警状况、作业状况等实时信息。在映射区中的数据可分为动态数据和静态数据。动态数据是各个功用模块的实时测点参数和状况数据。当用户运用接触屏按键方法完结对某一测点的动态数据映射区进行操作时,使用体系将当即唤醒使命TMapDynamicData,来更新在映射区中对应于此测点的动态数据,而且在接触屏上会显现出各个测点的动态数据信息。静态数据是反映各个测点相关的装备信息,不会时间改变,但却反映了测点的数据参数的特性。一旦测点的这些数据信息被修正了,映射区中对应数据就有必要更新。为了下降整个体系的通讯开支,在实践使用中,没有频频地更新映射区中的静态数据。当用户接触屏按键方法完结对某一测点的静态数据进行操作后,使用体系当即唤醒使命TMapStaticData,来更新在映射区中对应于此测点静态数据。

.

此实时数据监测模块使命调度战略完结了多个不同优先级的使命与TMapDynamicData使命间的通讯。比方,LCD的主界面显现使命Tmain_Board,具体显现界面使命Tcheck_Board以及巡检界面使命Tcheck_system都与TMapDynamicData进行使命间的通讯。模块有必要优先处理LCD经过TComputerCom使命修正某一测点的静态数据,同步更新各个监测点的静态数据的状况。此使命通讯进程不只包括触发事情的告诉,还要考虑使命间相应数据的传递。因而有必要经过音讯邮箱、音讯行列或许事情标志组方法来完结此数据传递的状况。经进一步剖析得出,因为担任映射静态数据的TMapStaticData使命优先级高,模块规划中选用了音讯邮箱方法来处理其他使命与此使命间的通讯进程。模块规划使命逻辑关系如图3所示。

表2 部分使命区分与优先级分配

图3 模块规划使命逻辑关系

笔者以为,在开发依据多使命的嵌入式项目时,为使整个模块的规划具有结构化、模块化、标准化的特色,也便于将来模块完结的保护与晋级,应该尽量简化各个使命间的逻辑关系,表现各个使命功用的独立性和完整性。每个使命完结一个或若干个功用,但有必要成为一个独自的模块。使命间的调度战略首要经过延时以及信号量、音讯邮箱、音讯行列来完结。

3.3 程序完结

依据μC/OS-II嵌入式实时操作体系处理并发使命,该实时数据监测模块软件规划部分伪代码如下:

void Tstart(void * pdata) {

while(1) {

创立TMapStaticData 通讯使命;

创立TMapDynamicData 通讯使命;

创立LCD的TMain_Board主界面显现使命;

创立LCD的Tcheck_Board测点数据具体显现界面使命;

创立LCD的Tcheck_system测点数据显现巡检使命;

};

}

结语

依据μC/OS-II的旋转机械监督实时数据监测模块运用了μC/OS-II可以安稳、安全处理并发多使命这一特色,并按所述调度战略和谐多使命运转,进步了模块程序的运转功率。该模块一向安稳运转,表现出较高的实时性和可靠性,获得了较好的实践效果。

参考文献

[1] Labrosse Jean J. 嵌入式实时操作系μC/OS-II[M]. 邵贝贝,译. 第2版. 北京:北京航空航天大学出版社,2003.

[2] 陈赜. ARM嵌入式技能实践教程[M]. 北京:北京航空航天大学出版社,2005.

[3] MODBUS over serial line specification and implementation guide[OL]. www.modus.org.

[4] 周建功,等. ARM微操控器根底与实战[M]. 北京:北京航空航天大学出版社,2003.

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/284090.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部