本发明涉及一种基于时间片规划的集中式总线时序控制方法,属于嵌入式软件领域,适用于综合电子系统星载应用软件的通信架构设计。
背景技术:
在航天器(卫星或飞船)1553B总线网络中,中心控制计算机作为总线控制器(BC)发起数据通信,其它单机作为远程终端(RT)响应数据指令并应答。传统的航天器总线通信设计中,主要采用基于事件的总线消息帧发送方式,这种方法有两种局限性:1)实时性不强。BC以事件为触发向RT发起消息帧,数据的创建、收发具有明显的非周期性,对于长短不一的消息,因传送时间带来的差异会导致系统实时性下降。2)系统行为不可预测。中心控制计算读取输入,输出控制指令都是通过1553B总线消息实现的,如果消息通信不是按照固定时间点的方式创建、收发的,就会导致程序运行过程中从输入到输出的执行时刻不确定,系统运行状态也会因“链式反应”变得不可预知。
技术实现要素:
本发明解决的技术问题是:克服现有技术不足,提出一种基于时间片规划的集中式总线时序设计方法,在总线管理任务中实现了综合电子系统中BC与RT的实时通信,基于时间片规划统一时序设计策略实现了总线数据发送与接收以及总线故障处理,总线时序设计合理高效,系统行为可预测、避免突发发起通信的情况,另外还可以降低总线负载,避免总线数据帧发生碰撞。
本发明技术解决方案是:一种基于时间片规划的集中式总线时序控制方法,步骤如下:
1)向卫星综合电子系统上的ADU发送快帧消息,包括控制指令消息和闭环反馈数据消息;所述卫星综合电子系统包括中心管理单元CMU、平台业务单元PFISU、载荷业务单元PLISU和执行机构驱动单元ADU,各单机通过1553B总线通信;其中CMU是综合电子系统的核心,作为总线控制器BC发起数据通信,其它单机作为远程终端RT响应数据指令并应答;
2)延时1.6ms后,从BC消息栈读取ADU回送的闭环反馈数据;
3)根据64ms周期计数CNT1取值进行如下处理:
当CNT1=0时,创建并发起BC与ADU的A类消息帧;
当CNT1=1时,创建并发起BC与PFISU的A类消息帧;
当CNT1=2时,创建并发起BC与PLISU的A类消息帧;
当CNT1=3时,不做任何处理;
当CNT1=4时,根据448ms周期轮转计数CNT2进行如下处理:
当CNT2=0时,CMU完成一次重要数据打包处理;
当CNT2=1时,创建并发起BC与ADU的B类消息帧;
当CNT2=2时,创建并发起BC与PFISU的B类消息帧;
当CNT2=3时,创建并发起BC与PLISU的B类消息帧;
当CNT2=4~141时,不做任何处理;
当CNT1=5、6时,不做任何处理;
CNT2递增1;
所述64ms周期轮转计数器CNT1,初始置0,每控制周期递增1,在0~6轮转,周期计时7×64ms=448ms;
所述448ms周期轮转计数CNT2器,初始置0,每448ms递增1,在0~141轮转,周期计时142×448ms=63.616s;
所述A类消息帧包括遥控指令消息、遥测数据消息和遥测勤务指令消息;
所述B类消息帧包括重要数据消息和重要数据勤务指令消息;
4)下一控制周期进入子任务4——1553B总线管理任务后,CMU从BC消息栈读取RT回送的遥测数据;
当CNT1=0时,取回ADU的遥测数据;
当CNT1=1时,取回PFISU的遥测数据;
当CNT1=2时,取回PLISU的遥测数据;
CNT1递增1;
5)每控制周期CMU进行总线故障判断,根据RT消息状态字判断BC与RT的总线通信状态,如果判出总线通信错误,则将BC与RT的总线通道由A总线切到B总线。
本发明与现有技术相比具有如下优点:
1)实时性更强,将总线操作严格控制在一个控制周期内,避免突发事件导致的临时性消息帧收发;
2)系统行为可预测,总线通信数据的组建、发送与接收均是在固定时间点触发,从输入、处理到输出的程序运行状态均可预知。
3)本发明以上优势可以提高系统通信实时性,降低总线负载,很好满足卫星数据交互量大、实时性高、总线管理越来越复杂的任务需求。
附图说明
图1是东三B平台综合电子系统1553B总线拓扑结构;
图2是控制周期子任务时间分配;
图3为1553B总线管理任务通信时序;
图4为根据控制周期计数轮转实现BC与RT的数据发送与接收;
图5为重要数据打包及重要数据发送处理策略。
具体实施方式
某卫星综合电子系统由中心管理单元CMU、平台业务单元(PFISU)、载荷业务单元(PLISU)和执行机构驱动单元(ADU)组成,各单机通过1553B总线通信,其中CMU是综合电子系统的核心,作为总线控制器(BC)发起数据通信,其它单机作为远程终端(RT)响应数据指令并应答。综合电子系统星载应用软件实现总线控制器功能,定期与各RT端通信,从而完成综合电子系统的数据管理,网络拓扑结构如图1所示,具体需求如下:
1、CMU应用软件控制周期为64ms,即每64ms进行一次数据管理,通信周期必须以控制周期为时间片进行划分。一个控制周期包含4个子任务,所有总线操作限制在12ms的子任务4——1553B总线管理任务中完成,如图2所示。
2、本发明主要使用以下3种1553B消息格式:
1)BC-RT:BC向RT发送一个接收命令字,后面跟随特定长度的数据字。RT在接收到命令字和数据字后,进行消息合法性验证后发送一个状态字给BC;
2)RT-BC:BC首先向RT发送一个发送命令字,RT在接收到命令字并进行合法性验证后发送一个状态字给BC端,后面跟随特定长度的数据字;
3)带一个数据字的BC-RT方式命令:BC向一个RT发送一个接收命令字,后面带一个16位的数据字;
3、CMU应用软件每控制周期与ADU进行快帧通信,包括控制指令消息和闭环反馈数据采集消息,消息格式分别为BC-RT的单消息和RT-BC的单消息;
4、CMU应用软件每7个控制周期,即448ms,分别与ADU、PFISU、PLISU完成慢帧通信,包括控制指令消息,遥测数据采集消息和用于数据同步的勤务指令消息,消息格式分别为BC-RT的单消息,RT-BC的单消息和带一个数据字的BC-RT方式命令。
5、CMU应用软件以固定时间周期向RT端保存重要数据,该时间周期不超过64S,数据规模为2K字节,要求发送的数据完全相同,一式三份分别发往ADU、PFISU、PLISU。消息格式为BC-RT的循环缓冲区消息和一个带一个数据字的BC-RT方式命令消息。
6、CMU应用软件每个控制周期均进行总线异常处理,从A总线切到B总线。
根据综合电子系统的通信需求,本发明采用基于时间片规划的集中式总线时序控制方法,设计原则如下:
1)根据BC与RT的实时性需求,采用周期性时序设计方式,减小总线负载。
2)以RT为目标创建数据帧,尽量避免一帧中包含发往多个RT的消息,这样处理便于总线故障处理,当发现一帧中出现错误消息时,可将整帧丢弃,不影响BC与其它RT的通信;
3)BC不采用芯片级消息重试策略,完全交由应用层处理,避免出现1、2次重试后打乱原时序;
4)BC不采用帧异常中止发送策略,无条件发送消息帧后根据消息状态字综合判断总线故障;
5)BC采用查询方式完成数据收发,从而避免了中断带来的时序与数据访问冲突。
下面结合附图进一步说明:
根据前面叙述的总线通信需求,在一个控制周期内需完成所有总线数据收发,不仅包括以64ms为周期的BC与ADU的快帧通信,还包括以448ms为周期BC与ADU、PFISU、PLISU的慢帧通信,此外还包括以不超过64S固定时间周期的重要数据保存任务。本发明设计了基于时间片的总线时序控制方法,在一个64ms控制周期内发起两个消息帧:一帧是按照64ms周期轮转计数发起的BC与ADU通信快帧,另一帧是按照448ms周期轮转计数发起的BC与某下位机的通信慢帧或重要数据保存帧。所有总线操作均集中在12ms的总线管理任务中,时序设计如图3所示。
其中,涉及计数器定义如下:
●64ms周期轮转计数器CNT1,初始置0,每控制周期递增1,在0~6轮转,周期计时为7×64ms=448ms。
●448ms周期轮转计数器CNT2,初始置0,每448ms递增1,在0~141轮转,周期计时为142×448ms=63.616s。
涉及消息帧定义为:
●A类消息帧由遥控指令消息、遥测数据消息和遥测勤务指令消息组成;
●B类消息帧由重要数据消息和重要数据勤务指令消息组成。
图3为本发明流程图,步骤说明如下:
步骤①向ADU发送快帧消息,包括控制指令消息和闭环反馈数据消息;
步骤②延时1.6ms后,从BC消息栈读取ADU回送的闭环反馈数据;
步骤③根据64ms周期计数CNT1取值进行如下处理,流程如图4所示:
当CNT1=0时,创建并发起BC与ADU的A类消息帧;
当CNT1=1时,创建并发起BC与PFISU的A类消息帧;
当CNT1=2时,创建并发起BC与PLISU的A类消息帧;
当CNT1=3时,不做任何处理;
当CNT1=4时,根据448ms周期轮转计数CNT2取值进行如下处理,流程如图5所示:
当CNT2=0时,CMU软件完成一次重要数据打包;
当CNT2=1时,创建并发起BC与ADU的B类消息帧;
当CNT2=2时,创建并发起BC与PFISU的B类消息帧;
当CNT2=3时,创建并发起BC与PLISU的B类消息帧;
CNT2递增1;注:每次CNT1=4时CNT2自增1,即每448ms自增1
当CNT2=4~141时,不做任何处理。
当CNT1=5、6时,不做任何处理。
步骤④下一控制周期进入子任务4——1553B总线管理任务后,CMU软件从BC消息栈读取RT回送的遥测数据;
当CNT1=0时,取回ADU回送的遥测数据;
当CNT1=1时,取回PFISU回送的遥测数据;
当CNT1=2时,取回PLISU回送的遥测数据。
CNT1自增1;注:改变控制周期计数,准备与下一个RT通信
步骤⑤每控制周期进行总线故障判断,根据RT消息状态字判断BC与RT的总线通信状态,如果判出总线故障,则将BC与RT的总线通道由A总线切到B总线。
本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。