谢 杰
(韶关学院 物理与机电工程学院,广东 韶关512005)
本文主要是定量分析在制作一个微控制器实时处理系统程序时,程序结构形式和程序长短分配与控制实时性的关系,从实时控制的时间角度,相对处理器而言,定义了程序的时间效率,从实时效率角度揭示和度量了程序的时间可扩展性.
在实时控制系统中,程序的目的就是实时控制对象,这个实时控制时间设为,由控制对象决定,实时程序的执行时间与程序的实时控制时间是相等的,程序的执行过程就是控制过程,因此程序的执行时间也为T.
程序由指令构成,程序的执行时间取决于程序的指令速度与程序的长度,有些处理器指令速度是一样的,如ARM系列等,有些处理器指令速度是不一样的,如51系列[1],AVR系列[2].定义概念,程序的平均指令周期TZ,程序的运行长度为n,n包含程序中循环过程,子程序过程,中断过程,根据上面分析可得表达式(1).
程序的执行时间等于程序的指令长度乘以平均指令周期.在表达式1中可以发现程序写得越短,实时控制时间越短.从另一个角度来说,实时控制时间存在最小值.由于实时控制时间是固定的,那么实时控制程序的执行时间T也是固定的,微处理器的指令平均周期TZ也是固定的,由表达式(1)可知,实时控制程序的指令长度n也是固定的.
程序可分为两类作用的指令,一类指令用来实现控制逻辑的指令,这一类指令程序段的运行时间设为TL,另一类指令用来保证实时控制时间而加入的延时指令,这类指令构成的程序段的运行时间设为TL,这样程序的执行时间可表示为表达式(2).
从表达式(2)中,程序的控制逻辑过程越短,需要延时的时间就越长,也就是说微处理器的剩余时间越多,反过来,程序的控制逻辑过程时间TL必须小于实时控制时间T,既要满足表达式(3),否则控制超时,程序就失去了控制意义.
根据表达式(1)可得:
表达式(4)表明实时控制时间固定的程序,那么程序的的运行长度也是固定的.
表达(1)代入表达式(2)可得表达式(5).
表达式(5)中,TLZ为算术逻辑运算及控制指令平均周期,TYZ为延时指令平均周期.有些微处理器的指令周期是相等的,指令周期不相同的微处理器的大多数指令是单周期或者双周期指令,在程序比较长的时候,根据概率可以认为指令周期是相等的[6],表达事(5)可变成表达式(6).
表达式(6)表明延时程序长度nY与控制逻辑程序nL之和是固定的,控制逻辑程序越短,延时程序就越长.同样,控制逻辑程序长度不能大于实时程序的固定长度,表达式(7),否则就失去了控制意义.
在编写实时控制程序之前,上面七个表达式可以对程序的长度和时间起到估算作用.
在实时程序设计过程中,逻辑控制指令程序时间TL代表微处理器对控制对象的处理时间,延时指令程序时间TY表示微处理器的空闲时间,这样就可以定义微处理器在时间上的控制效率ηT,表达式如下.
表达式(8)表明了效率越高,微处理器的空闲时间就越多,控制对象占有微处理器的时间资源就越少,同时,逻辑控制时间越短,程序的效率就越高.根据表达式(6),表达式(8)可变成表达式(9).
表达式(9)表明了程序的时间效率等于延时程序长度除以实时控制程序的固定长度,逻辑控制程序段越短程序的效率就越高.定义实时控制程序的空闲时间与处理时间的比值K为扩展度,可得表达式(10)如下.
表达式(10)表明了微处理器在时间上还可以再控制K个同等的对象,给出了微处理器的具体时间扩展程度,也衡量的设计者的程序设计能力,可扩展度数值越大,表明设计者程序编写能力越强.
微处理机提供的程序运行方式都可以归结见图1,图中的箭头表示程序流程,当程序初始化后进入主程序,主程序是一个循环程序,在主程序中可能产生的断点是子程序、各种中断程序,子程序产生的断点是预先可知的,中断程序产生的断点是随机的,不同的微处理器中断个数是不一样的,所有实时系统运行方式都是一样的,包括带实时操作系统的控制系统[3].
可以认为凡是要重复运行的程序称为循环程序,那么微处理器提供的程序运行方式都是是循环程序,主程序和定时中断程序都可以看作是循环程序,外中断程序可以看作是周期比较长的循环程序,因为他是随机的程序,它的循环周期是可变的,一次性运行的程序,可以看作是循环一次的循环程序.原则上微处理器运行的程序都可以归结为循环程序.
绝大多数微处理器是单线程工作,各种程序不可能同时运行,因此每个功能程序运行有先有后[4-5].
图1 微处理器程序结构图
一个实时控制系统常常包含着多个功能模块,不同的程序方式一般对应着不同的功能模块,每个功能模块都有自己固定的实时控制时间.每个功能模块程序的运行时间就是它们循环的时间,用T功能模块表示,由于程序的运行过程代表着控制过程,那么功能模块的实时控制时间也是T功能模块,事实上,由表达式(1)可知,时间与功能模块程序的长度有关,用n功能模块表示功能模块程序长度,整个系统的综合实时性反应时间用T表示.
在实时控制系统中,一般由多个功能模块组成,建立一个多模块控制系统模型,根据图1,可是功能模块主程序为A,其它中断模块依次为B、C、D、E、F,也就是说,实时控制系统程序由这几部分组成,当然根据实际要求和微处理器程序结构模块可多可少,可以扩展到n个功能模块,本文只选择了6个.
功能模块程序中也可分为两类指令,一类是完成功能控制指令,另一类是为了满足时序的延时指令.设这两类指令时间分别用 T功能模块L、T功能模块Y表示.
根据图1提供的程序结构模型,如前所述,程序功能模块依次为A、B、C、D、E、F.不同模块控制的对象实时性要求不一样,因此不同模块有不同模块的实时时间.用N表示模块A、B、C、D、E、F,根据(6)表达式可得:
每个模块都有不同的实时控制时间,但是整个程序是由每个功能模块组成的一个整体,因此程序的效率要从整体上来分析.
每个功能模块程序可分为逻辑运算控制和延时等待两部分时间,单片机是单线程工作的,有可能在A模块的等待时间里面运行B模块的逻辑运算控制工作,同样的道理,在B模块延时等待的时间里,运行C模块的逻辑运算控制指令,也就是说,A模块运行时间包含B模块运行时间,B模块运行时间包含C模块运行时间,得出结论,程序运行的方式是包含,实时控制时间最长的功能模块程序运行,包含了其它所有功能模块程序的运行,因此整个程序的的执行时间T不等于各功能模块运行时间之和,即:
由于包含关系,整个程序的运行时间应该是功能模块中运行时间最长的,也就是实时控制周期最长的那一个模块的时间,这个模块也是整个系统的程序的运行时间,即可列如下表达式:
由于系统中程序运行的包含性,系统模块的运行时间包含了每个功能模块的逻辑控制处理部分TNL,为了保证程序的实时性,各功能模块实现逻辑控制的处理时间之和必须小于等于系统的实时控制时间,可列得表达式(12)如下.
根据表达式(1)表达式(5),表达式(14)可变成表达式(15):
表达式(14)表明各模块实现逻辑控制的程序段运行时间之和受限于系统的实时控制时间,也就是功能模块中实时时间最长的时间,程序设计时,一个模块时间用多了,其它模块的时间就少了.表达式(13)表明了一个模块程序设计长了,其它模块程序就必须设计短一些,所有模块的程序时间之和必须小于总时间或者说模块程序长度之和必须小于等于固定的总长n.
根据(13)表达式,(14)表达式可写成(14)表达式如下.
根据表达式(1)和表达式(6),表达式(15)可表示为表达式(17)
(17)式表明模块中,实时控制最长的时间必须大于等于各功能模块算术逻辑运算控制指令时间之和.
实现系统程序逻辑控制的指令时间是每个模块的实现逻辑控制指令时间之和.
程序的延时指令时间是根据由程序效率定义可得表达式:TY=max(TA,TB,TC,TD,TE,TF)-TL
表达式(18)反映出实时控制系统的效率与各功能模块实现逻辑控制的程序时间之和有关,和的时间越小,效率越高,微处理器的空闲时间就越长,时间的扩展性就越好.
根据表达式(1)和表达(6),表达试(20)可写成表达式(21).
根据表达式(11)和表达式(16),表达式(19)可以写成表达式(20).
表达式(21)实时控制程序的效率与各功能模块的逻辑控制程序长度有关,各功能模块的逻辑控制程序长度之和越短,程序的效率就越高.表达式(19)可以估算程序设计之前每个功能模块可以分配的程序长度.
同样,在实时程序完成之后评估程序的时间可扩展性,根据表达式(10)和表达式(18)可写出多模块实时系统的时间可扩展度表达式(22)和表达式(23).
表达式(22)和(23)说明程序的时间可扩展度与程序的控制逻辑部分时间或者实现逻辑控制的程序长度之和有关,反过来说,在程序设计过程中,逻辑控制程序写得越短,程序的扩展度越高,K的数值表示微处理器控制的实时系统还可以扩展同样系统的个数.
以上分析主要用于微处理器实时程序设计之前的程序长度计算或者估算,以及各功能模块的时间分配与程序长度的分配,避免花了大量时间编写实施控制程序之后不满足时间控制条件,导至必须推倒重来的困境.
可扩展度的建立,度量了设计程序的时间可扩展性,衡量了一个设计程序在时间上的优劣性,衡量了程序设计者的一个设计方面的能力,度量了各种微处理器的时间处理能力,通过时间度量来选择合适的微处理器.
[1]李群芳,肖看,张士军,单片微型计算机与接口技术[M].4版.北京:电子工业出版社,2012.
[2]周立功,ARM嵌入式系统基础教程[M].2版.北京:北京航空航天大学出版社,2008.
[3]Labrosse.嵌入式实时操作系统 uC/OS-II[M].2 版.邵贝贝,译.北京:北京航空航天大学出版社,2003.
[4]ATMEL 公司.ATmege 系列 User Manual[EB/OL].[2012-05-22].http://www.atmel.com.
[5]PHILIPS 公司.LPC2114/2114/2212/2214 User Manual 2004[EB/OL].[2012-05-22].http://www.zlgmcu.
[6]谢安,李东红,概率论与数理统计[M].北京:清华大学出版社,2012.