基于Petri网的综合电子系统总线建模与性能优化
2011-10-08宋小庆任维彬陈克伟王治国王海涛
宋小庆,任维彬,2,陈克伟,王治国,王海涛
(1.装甲兵工程学院控制工程系,北京100072;2.65545部队,辽宁 普兰店116200;3.75100部队,广西柳州545002)
综合电子系统是以总线网络为核心,将车内电气、控制、导航和识别等各分系统进行有机连接,实现功能综合以提高车辆整体效能的综合化系统[1]。总线网络是军用综合电子系统的核心技术,具有严格实时性和高度可靠性的要求,性能优劣直接决定综合电子系统性能,影响车辆整体作战效能。近年来,世界各国对军用车辆综合电子系统的发展给予高度重视,我国也在多种主战坦克及步兵战车上开展了综合电子系统的研究和应用[2]。但综合电子系统总线在实车应用中所表现出的总线效率低、整体效能不高等问题也较为突出[3]。
本文以某新型步兵战车综合电子系统总线为对象,采用Petri网,按照自顶向下的模块化建模思想,利用CPN Tools建模工具,依据总线协议建立系统总线通信协议机制模型,仿真系统信息流动态行为。通过对系统性能指标的分析,提出针对该综合电子系统的优化方案,提高了综合电子系统总线利用率,提升了综合电子系统整体效能。
1 系统网络结构分析
1.1 总体拓扑结构
综合电子系统总体结构主要分为单级网络拓扑结构和多级网络拓扑结构。单级网络拓扑结构是由单一总线挂接各个设备终端组成,多级网络拓扑结构是由2种以上类型总线通过互连并挂接各个设备终端组成,其中不同类型总线通过网关结构实现互连。多级网络与单级网络相比,具有更好的层级管理能力,其不同种总线的拓扑结构可以根据任务需要,按照总线协议机制,更加合理高效地实现消息的传输与调度,满足系统可靠性和实时性要求,提高综合电子系统整体性能。
图1为该型战车综合电子系统拓扑结构,该结构为二级网络拓扑:一级网络由1553B总线构成,完成乘员子网间消息的传递和交互;二级网络由CAN总线构成,完成乘员子网与挂接在各个乘员终端的设备之间的通信。一级网络与二级网络的互连,是通过网关结构来实现2种不同总线协议的解析和消息格式的转换。
图1 某型步兵战车综合电子系统拓扑结构
1.2 协议机制分析
CAN总线协议采用基于优先级的CSMA/CD(Carrier Sense Multiple Access/Collision Detection)方式,当多个节点同时向总线发送消息时,优先级高的节点继续发送,而优先级低的节点则主动停止发送,等待总线空闲再继续发送,这样可以有效避免总线碰撞。1553B采用的是主从控制方式的总线控制。总线控制器(Bus Controller,BC)负责控制整个网络,只有BC发送命令才能引起网络数据的传送,远程终端(Remote Terminal,RT)只能接收消息。
CAN标准数据帧格式控制场有11位标识符,而扩展帧控制场标识符有29位,当传送小于8个字节的有效字节时,CAN标准数据帧传送的位数是44~108位,而CAN扩展帧则为64~128位。CAN帧格式详细说明参见文献[4]。
根据CAN标准数据帧格式定义,抽象消息传输要素如表1所示。其中优先级数字越小代表该消息的优先级越高,数据指有效数据个数,周期为1 ms。
1553B协议规定每个字字长为20位,有效信息为16位,每个字的前3位为单字的同步头,而最后一位是奇偶位[5]。1553B字格式及具体传送方式参见文献[6],限于篇幅,不再赘述。根据1553B消息传送方式和字格式的定义,抽象消息要素和标识码对应关系如表2所示。
2 信息流规划
2.1 信息分类
在综合电子系统中,消息根据是否具有确定的周期可以分为2类:确定性消息和随机性消息[1]。确定性消息传输的内容主要包括车辆工况、行驶路线、周电设备参数等信息,随机性消息主要包括紧急任务指令和三防火警信息等。其中随机性消息中,一部分任务指令需要不同任务终端的多个设备之间协同完成,这样的信息传递需要经由1553B一级网络在不同任务终端之间进行信息传递。
表1 消息传输要素对应关系
表2 消息传输格式对应关系
2.2 流动过程模型分析
结合CAN总线构成的二级网络,对CAN总线静态结构和动态行为及功能进行概括,制定信息流控制过程如图2所示。按照功能划分为4部分,第1部分为初始化功能模块,将周期性消息初始化到各个节点。第2部分为节点内消息产生模块,其工作详细过程如图3所示,节点内初始表表示等待初始化的周期性消息,这些消息将被送入节点内部进行处理:首先按照产生的时间进行排序,然后取出本节点最早产生的消息,获取其产生时间,根据CAN总线协议机制,每次只能取出一帧消息。第3部分为总线竞争模块,分为2种情况:有随机性消息产生的过程及无随机性消息产生的过程。有随机性消息产生的过程中,产生的消息首先要和随机性消息参与总线使用权的竞争,进行优先级的仲裁,优先级高的消息帧胜出。在没有随机性消息注入的过程中,产生的消息参与总线使用权的竞争。一般情况下,随机性消息比较紧急和重要,因此设定随机性消息的优先级较高,一般会在仲裁过程中胜出。当有大量消息帧竞争总线使用权时,会产生队列延时,超过消息发送的最大延时后该消息帧失效而被取消。第4部分为消息接收模块,根据目的节点地址标识,送入目的节点。
图2 信息流流动过程
图3 节点内部消息产生过程
3 赋时颜色Petri网对应关系
3.1 赋时颜色Petri网定义
定义1:颜色Petri网是一个七元组:CPN=(S,T,F,C,W,I,M0) ,其详细定义参见文献[7]。
定义2:一个赋时颜色Petri网(Colored Timed Petri Net,CTPN)是一个二元组(CPN,τ),其中 CPN是一个颜色Petri网,τ是一个时间映射函数[8]。τ:T0∪R+规定了网中每个变迁t的持续时间。当持续时间为0时称之为瞬时变迁,不为0时称之为时延变迁。由于τ的引入,使得赋时颜色Petri网可以用于分析系统时间层次的性能,在一个CTPN中若时间与每一变迁关联,将得到一个赋时颜色Petri网。在建模过程中,通常用库所表示消息所处的状态或位置,变迁表示消息传递的动作或过程,颜色集是传递的消息的各个要素的集合,赋时代表消息传递过程中产生的延时[9]。
3.2 动态行为仿真
利用Petri网仿真建模工具CPN Tools对系统进行建模[10-11],按照自顶向下的模块化建模思想,仿真CAN总线和1553B总线通信协议机制运行。其中炮长任务终端的CAN总线发送模块如图4所示:融合库所GunComputer代表消息经初始化后等待发送的状态;StructHelper0代表发送计时器;库所Cache0代表发送缓存区;库所DataMoniter0代表发送计数器;PriorBSP0代表位流处理器;库所A0代表发送缓冲区;库所0和T0是融合库所,通过控制其使能标识实现周期性消息按照时间顺序每次发送一帧;库所 RandStrInterface0代表节点缓存;变迁StructHelper01代表缓冲器;库所TReg0代表接收缓冲区;变迁PriorBSP01代表位流处理器。CAN总线发送模块工作过程如下。
图4 炮长任务终端CAN总线发送模块
库所GunComputer执行变迁StructHelper0,将本节点的周期性命令帧表一次性全部送入代表本节点的数据缓冲区,等待总线仲裁。变迁TimeBSP0通过背景函数的作用,将节点周期性命令按照产生时间顺序进行排序,每次执行最先产生的一帧周期性命令,送入本节点数据缓存Cache0中,库所T0存放使能标识,限制变迁TimeBSP0连续发生,使TimeBSP0每次执行只能取出最先产生的一帧命令。在使能标识被归还前,变迁TimeBSP0执行能力被限制,从而模拟周期性消息帧按照产生时间顺序每次取出最早产生的一帧进行发送的过程,保证周期性消息的发送按照其产生时间的先后顺序进行。
库所Token中存放使能标识,使变迁Rec能够通过CPN Tools提供的底层函数接口,接收代表随机性命令的字符串,并解析形成命令帧表送入代表节点缓存的库所RandStrInterface0中,从而完成随机性命令帧的初始化过程。通过变迁StructHelper01的执行,将随机性命令帧形成队列送入代表节点缓存的库所TReg01中。变迁PriorBSP01通过执行,将库所TReg01中的随机性命令帧待发送队列按照颜色集中规定的优先级进行排序,取出优先级最高的一帧送入库所Cache0中,从而模拟随机性消息按照优先级的顺序进行发送。库所Cache0中存放周期性命令中最早产生的命令帧和可能存放着随机性命令中优先级最高的命令,变迁DataMoniter0代表发送计数器,对数据帧数以及有效字节数等参数进行计数,通过执行形成队列并送入代表数据发送缓存区的TEC0中。变迁PriorBSP0通过执行,将库所TEC0中的周期性和随机性命令先按照产生时间,再按照优先级的顺序,确保在同一时刻产生时间最早的消息帧最先发送。在没有时间更早的消息情况下,则优先级最高的消息进行发送。通过确定这样的规则和顺序,模拟消息发送的逻辑顺序。将通过这样的规则和顺序获得发送权的消息帧送入输出端口A0中,同时将使能标识归还T0。库所0存放使能标识,限制变迁PriorBSP0每次只能取出一帧命令帧。限于篇幅,其他模块及工作过程不予赘述。
4 仿真结果分析
4.1 性能指标定义
综合电子系统的性能指标,主要包括总线负载、总线效率、平均延迟率等。其中:总线负载和总线效率这2个性能指标是用来衡量总线上信息传输的拥挤程度,二者描述的角度不同;平均延迟率是反映消息帧在总线传输过程中的平均滞留时间。
式(1)中:m1为在固定时间内实际传输的数据位数,单位为bit;n1为总线传输的位速率,为1 bit/μs;t1为固定时间值,单位为μs。式(2)中:t3为一位传输的时间,在1 Mbit/s的速率下为1 μs;n3为传输的总位数;t2为一位数据传输的时间,n2为数据位数。式(3)中:t4为产生延时;t5为传输延时;t6为队列延时;t7为接收延时,单位都是μs;其中Cm的公式为[12]Cm=[64n+8Sm+(54+8Sm)]τbit+Pcons,n为传输的数据帧数,Sm为数据帧中有效数据字节数,τbit为位时间,Pcons是一个与物理电气介质电气特性相关的参数。按照现在的总线通信能力和处理器运算速率,t4、t5可以忽略不计,t6、t7通过在模型中设定传输速率计算获得。通过模型运行和编程计算,可得性能指标参数列表,其中炮长任务终端部分性能指标参数如表3所示。
表3 炮长任务终端部分性能指标参数列表
4.2 系统总线性能优化方案
4.2.1 方案 1
根据车长端性能指标参数列表,可得车长任务终端总线负载与有效数据字节数性能关系曲线,如图5所示,设定所有消息帧有效数据长度为0~8位,消息发送平均时间间隔为600 μs,传输速率为1 Mbit/s。从图5可看出:在CAN节点发送的数据长度不断增加的过程中,在总线上传输的有效数据字节总数也在不断增加,网络负载随之接近线性关系不断增加。这是因为随着节点发送CAN帧的数据长度的增加,单位时间内网络上的比特流量也在不断增加,占用系统的带宽在不断变大,因而系统的后备能力也在不断减弱。所以,在确定的时间段内,为保证系统具备相当处理随机性消息的能力,应合理控制总线负载,留有一定的预备带宽,可以根据该曲线大致确定在确定时间段内经总线传输的有效数据字节总数,并由此设计每帧所携带有效数据字节数,满足总线系统传输要求。
但是留有预备带宽的方法,在提高系统处理随机性消息的同时,又会对总线带宽造成浪费,所以在尽可能缩小裕量带宽的同时,尽量减小总线开销(如同步头、帧结束等无效信息位),增加单帧有效数据字节数。结合车辆综合电子系统任务传输要求,可以将相关消息帧进行合并,将原来的多帧消息通过添加标识位进行合并,在接收端进行编程处理,将合并的帧进行解析,从而增加单帧有效信息量,减少无用系统开销。实际应用也证明了该方法的有效性。
图5 总线负载与有效数据字节数关系曲线
4.2.2 方案 2
CAN总线引入位填充机制:发送节点的传输控制器在连续检测到5个相同极性位之后插入一个相反极性位,接收节点在接收时也会检查相同极性的位数,并把填充位从位流中去除。位填充机制使得总线上实际传输的消息位数大于原始消息位数。对于标准帧,可以得到在不同填充位数下数据传输效率与字节数的关系,对于数据域为1~8个字节的报文,在网络传输过程中填充位的增加都会导致数据传输效率的降低,这对于网络来说是十分不利的,所以采取措施降低填充位数量对CAN网络的数据传输有很积极的作用。很多学者对减少填充位数量做了大量的研究工作[13],其中有一种十分简便的改进填充方法就是适当地选取标识符,使帧起始位、仲裁域和控制域都不参与位填充,以此来减少参与填充的位数,从而提高报文的数据传输效率。
综合电子信息系统内周期性消息的主要内容为工作状况参数和导航信息等,以该型步兵战车为例,其中的周期性消息中,主要包括发动机工况参数和导航坐标参数等信息,该类信息在实际的应用中不要求很高的可靠性,因此可以考虑在这类的周期性消息传输中,利用这种改进的填充方法适当地选取标识符,减少参与填充的位数,提高报文的传输效率。
对于标准格式的数据帧,若帧起始、仲裁域和控制域参与位填充,并考虑前帧的帧间空间,则单帧消息填充的位数最大约为4位,以车长任务终端北斗卫星导航设备节点为例,该节点向车长任务终端实时反馈导航信息,以100个周期为研究时间域,通过模型仿真结合网络编程可得优化前与优化后总线效率数据,如表4所示。
表4 总线效率对比表
根据表中实验数据可得数据传输效率与有效数据字节数关系曲线,如图6所示。从该曲线可以看出:经过优化后的数据总线效率明显高于单帧相同有效数据字节未优化时的效率,而且随着研究时间域的增长,这种趋势将更加明显,优化的效果也更加显著。采用合理选择仲裁域,减少填充位的发生,可以有效提高总线传输效率,尽管这种选择会丧失部分仲裁域的取值,但是剩余的仲裁域取值空间针对实际的消息传输的定义和安排,仍然可以有很大裕量地满足应用要求。
图6 传输效率对比曲线图
5 结论
本文通过Petri网对总线协议机制建模,进行的相关性能分析和研究还比较简单,还可从以下几个方面进行进一步的探索和研究。
1)方案1中只是对系统内周期性信息进行实验和探讨,对于系统内非周期性信息也同样适用。考虑到非周期性信息数目相对较少,对一般模式下总线性能指标影响不大,所以未在方案1实验中涉及。
2)方案2中当对系统内大量信息进行优化过程中,数据传输效率的优化效果将体现更加明显,已通过CANoe硬件测试进行验证。本文只是针对该型步兵战车内信息流作一般情况下初步探讨。
3)所采用Petri网建模的方式,相比较已有研究,具有较好的数学支撑,可以对实际未存在综合电子系统进行仿真和分析研究,并对相关性能进行预测和评估。
[1]宋小庆.军用车辆综合电子系统总线网络[M].北京:国防工业出版社,2010:8.
[2]周娟,陈慧岩.CAN总线在军用车辆上的应用[J].车辆与动力技术,2001,12(4):47 -51.
[3]凌征均.坦克综合电子系统总体研究[J].兵工学报:坦克装甲车与发动机分册,1998(3):28-32.
[4]饶运涛.现场总线原理与应用技术[M].北京:北京航空航天大学出版社,2006:22.
[5]王志宏.基于MIL-STD-1553B总线的航空电子综合系统总线通讯研究[D].南京:南京理工大学,2004.
[6]罗志强.航空电子综合化系统[M].北京:北京航空航天大学出版社,2000.
[7]吴哲辉.Petri网导论[M].北京:机械工业出版社,2006:186-187.
[8]韩咚,田银花.基于赋时颜色Petri网的NSSK协议建模[J].计算机技术与发展,2010,20(6):39 -42.
[9]袁崇义.Petri网原理与应用[M].北京:电子工业出版社,2005:2.
[10]Mulyar NA.Patterns in Colored Petri Nets[EB/OL](2005-04-15) [2010-07-16].http://wiki.daimi.au.dk/cpntools-help/
[11]Welters M.Building Logistic Games in CPN Tools[EB/OL](2005-1-22)[2010-07-16].http://wiki.daimi.au.dk/cpntools-help/
[12]徐鹤.车用CAN总线拓扑结构设计与性能分析方法研究[D].北京:中国农业大学,2005.
[13]Nolte Thomas,Hansson Hans,Norström Christer.Minimizing CAN Response-time Jitter by Message Manipulation[C]//RTAS'02 Proceedings of the Eighth TEEE Real-Time and Embedded Technology and Applicatime Symposium.Washington D C:IEEE Computer Society,2002:8 -19.