袁春柱 刘思远 杨芳
(航天东方红卫星有限公司,北京 100094)
随着卫星应用领域的不断扩展,卫星功能、性能及复杂度等都在不断提升,未来星上综合管控计算机,不仅要承担常规的星务管理任务,还需要承担整星任务管理,甚至姿轨控算法等功能,星上各个设备间信息交互的数量和频率急剧增加,对星上网络总线的性能和功能要求也越来越高。以往我国的卫星星载网络1553B、CAN 总线传输速率只有1 Mbit/s,两种总线传输速率很低,严重制约了卫星星上综合电子的控制能力和信息共享能力;而且两种总线都是完全事件触发式总线,事件触发式总线网络中所有活动都是由事件的发生所引起的,各个节点按照自己的情况向总线上传输数据,在网络中所有的节点都有可能是下一个发送者,导致网络事件可能的冲突,出现网络堵塞、丢帧、延迟等问题,网络实时性、可靠性、安全性降低,影响网络通信品质[1-2]。
随着计算机技术与现场总线技术的快速发展,FlexRay总线作为继CAN 之后的新一代车载总线,于2006年成功应用到某车型的电子控制减震器系统中,后续又成功应用到该品牌其他车型的悬挂减震器控制中。与传统的1553B、CAN 总线相比,FlexRay总线具有很多优点:一是FlexRay总线既具有时间触发机制,又具有事件触发机制,时间触发机制保证了信息传输的确定性和实时性,克服了网络堵塞、丢帧、延迟等问题,事件触发机制保证了临时性的重要数据在总线忙时有机会被发送[3];二是FlexRay总线具有较高速的通信能力,每个通信信道传输速率可以达到10Mbit/s;三是FlexRay具有良好的容错性,一个FlexRay总线的控制芯片具有两个通信信道,不需要单独做总线冗余。
按照总线网络协议分层结构,常用FlexRay总线网络只具体定义了物理层和数据链路层,物理层规定了FlexRay总线机械、电气等要求,链路层规定了帧结构、帧传输方式、时间同步等问题。但FlexRay总线协议并没有对应用层作详细的规定,只是规定通信周期的最大时间长度,每个时隙的最大有效传输位数等参数,对时隙大小及分配、信息交互周期并没有作详细规定。
目前,FlexRay应用层协议在汽车领域已有了初步研究,但主要针对汽车线控系统设计了时间触发的静态段单周期传输协议;而卫星传输信息量大且具有多样性,不但需要处理定时遥测信息,而且需要及时处理遥控上注信息、故障模式等突发事件,需要具有事件触发的动态段,并且卫星上传输信息量大,单个总线周期不能满足星上需求,需要对FlexRay总线星上时隙进行重新配置,对总线周期进行周期扩展。所以,FlexRay汽车应用层协议不能用于卫星系统数据传输,需要定义航天专用应用层通信协议。
本文针对卫星应用的特点和要求,对FlexRay总线星载应用的时隙参数进行了定义配置,制定了一种星载应用层传输方法。
根据FlexRay总线数据链路层协议,帧格式如图1所示,一共包括3个部分:头部段、负载段和尾部段[4-5]。帧的头部包括1bit保留位、1bit负载段指示位、1bit空帧指示位、1bit同步帧指示位、1bit起始帧指示位、11bit 时隙ID、7bit 负载长度、11bit头部循环冗余码校验(CRC)、6bit周期计数,共5byte;FlexRay的负载段可包含0~254byte的数据;尾部段是一个包含有24bit的帧CRC域[6]。
图1 FlexRay总线帧格式Fig.1 FlexRay frame format
如图2所示,FlexRay总线通信是建立在周而复始的通信循环(communication cycle)中的。每一个通信循环包括静态段(static segment)、动态段(dynamic segment)、符号窗口(symbol window)和网络闲置时间(network idle times)[7-8]。静态段采用时分多址技术(TDMA),动态段采用灵活的时分多址技术(FTDMA),符号窗口用来传输特征符,网络闲置时间是一个通信空闲的区域,它所包含的时间长度是一个通信循环中没有被前面三个单元消耗掉的时间。
静态段是由静态段时隙组成,静态时隙的时间长度是由总线比特率和最长数据帧决定,静态段时隙的长度至少是静态段传输的最长帧所需时间,加上集群内任一控制器处理的最长时间和时间精度的持续时间以及时隙延时校正参数的最大值。动态段是由动态段微时隙组成,动态段微时隙是由总线比特率和实时性需求决定。
图2 FlexRay总线通信循环Fig.2 FlexRay communication cycle
为了保证星上电子系统的实时性和稳定性,总线比特率采用5 Mbit/s,根据星上遥控、遥测、上注等信息传递的实际需求,满足大部分节点的信息都在一帧中传输,定义每帧负荷段中传输250byte。
1)静态段时隙定义
静态段时隙时间长度相同,为数据帧传输时间加上网络闲置时间之和。由于静态段消息在每个FlexRay通信周期的固定时刻发送,不用考虑队列延迟,因此,时隙长度也就是静态段发送延迟时间。发送延迟是指节点发送信息所需要的时间,发送延迟因为只与消息帧自身和总线参数有关,所以,可根据FlexRay总线帧格式的定义计算时隙长度。
在一个FlexRay总线数据帧中,帧头部段占用5byte,尾部段占用3byte,负荷段为250byte,共计258byte,每一个字节前面都需要添加2bit的字节开始序列(BSS),所以每字节实际占有10bit,共计2580bit。再加上7bit的传输开始序列(TSS),1bit的帧开始序列(FSS),以及2bit的帧结尾序列(FES)[5],所以,传完每一帧需要2590 bit,满足2590bit≤2628bit(静态帧最大长度)。
根据FlexRay总线2.1协议[9],在5Mbit/s下传输每一位的时间为0.200 3μs。所以传输2590bit需要的时间为518.777μs。考虑到位流信息、闲置时间和时间偏差等约30bit,在5MHz下约6μs,网络空闲时间设为130个节拍,即26μs。最后一个静态段定义为550μs,小于2.1协议中的静态段可定义的最大时间长度(adTxMax[μs])值,满足要求。
2)动态段微时隙定义
如果动态段时间较短,低优先权的动态段消息帧,有可能因为大量高优先权消息帧的发送而无法在本通信周期内进行发送,为了避免这种情况,每个动态段时间长度应足够使动态段消息在本通信周期内完成。
根据星上电子系统传输信息需求,在动态段,数据段的头2byte通常用作消息识别域,传输最短的帧包括2byte的消息识别域和6byte的数据域,1byte的数据部分,3byte的CRC校验码,5byte的帧头,总共17byte,每一个字节前面都需要添加2bit的字节开始序列(BSS),所以每字节实际占有10bit,共计170bit。再加上7bit的传输开始序列(TSS),1bit的帧开始序列(FSS),以及2bit的帧结尾序列(FES),所以传完每一帧需要180bit。
根据FlexRay总线2.1协议[9],在5 Mbit/s下传输每一位的时间为0.200 3μs,所以传输180bit需要的时间为36.054μs。考虑到闲置时间和时间偏差等约4μs,所以传输一个最短帧所需时间约为40μs。为此,一个动态段时隙定义为40μs。
基于FlexRay总线卫星星上电子系统设计了两种工作模式:正常工作模式和异常模式。
(1)在正常模式下,即综合数据管控、姿控、热控等系统均处于正常工作模式下,此时循环中不存在外部触发事件,一切事件的发生都是可预知的,所以通信集群主要使用静态段进行数据传输。通过事先设定静态时间调度表,变现有的消息轮询通信方式为消息订阅方式。与传统的基于CAN总线的综合数据管控系统相比,基于FlexRay总线的综合数据管控系统,不需要发送遥测轮询指令,只需要接收其他系统的遥测参数即可,同时完成星时广播;其他分系统按照时间调度表完成遥测参数的发送即可。
(2)在异常模式下,即系统存在外部触发事件,需要使用FlexRay 总线动态段进行异常命令数据的传输。例如综合数据管控系统发送的遥控指令、上注数据,分系统的故障信息等,都属于突发事件,需要采用动态段即时传输。
考虑到卫星星上电子系统数据传输延时、节点处理器处理数据的时间以及后续新开发节点的加入,根据星上数据传输需求,设定总线通信速率为5 Mbit/s,根据在正常模式下遥测参数和广播时间等信息对静态时隙的需求和在异常模式下突发事件对动态段的需求,设定通信循环周期的时间长度,静态段在每个通信循环中的占用时间和静态时隙的持续时间,以及动态段在通信循环中的占用时间和动态段“微时隙”的时间长度,并设定了网络空闲时间的时间长度。
卫星应用FlexRay 总线的时隙分配。根据FlexRay总线2.1协议,每个通信周期最长为16ms,即gdCycleMax=16 000μs。为了方便控制周期计算,设定通信循环周期T为15ms,小于16ms,满足要求。
考虑到FlexRay总线的卫星星上电子系统,设计了两种工作模式的信息流,如图3所示,设定静态段时间长度为11ms,动态段时间长度为4ms。
图3 卫星应用FlexRay总线的通信周期Fig.3 FlexRay bus communication cycle for satellite
(1)静态段占用时间设计11ms,由于每个时隙的持续时间为550μs,所以,静态段可以定义20个时隙,最大限度地为后续系统预留足够的通信时间。
(2)动态段占用时间设计4 ms,动态段时隙的持续时间为40μs,所以动态段可以定义100 个时隙,即动态段传输的信息可设1到100个优先级。
根据以上定义,如图4 所示,设定卫星应用FlexRay总线通信集群的主要时间参数。静态段采用双通道冗余设计,每个通信循环有20个小时隙,每个小时隙的时间长度为550μs,每一帧传输的最大有效数据为250byte;动态段也采用双通道冗余机制,每个通信循环有100个小时隙,每个小时隙的时间长度为44μs,每一帧传输的最大有效数据为8byte。
图4 卫星应用FlexRay总线的时间参数Fig.4 FlexRay bus time parameter for satellite
基于FlexRay总线的星上网络设计,还需要根据卫星系统信息交互周期的需求,进行FlexRay总线通信周期设计,由于FlexRay总线协议规定通信周期最大为16 ms,如果星上信息交互周期小于16ms,则可以直接配置通信周期;如果信息交互周期大于16 ms,则可以对FlexRay总线的通信周期进行整数倍扩展,以满足通信需求[10]。
在现代卫星设计中,像科学载荷探测数据块、星间载荷传输数据块等,需要星上网络进行传输,但是数据量又比较大,一帧传输不完,需要多帧传输。根据卫星常用数据块大小,制定了FlexRay总线信息交互周期时隙调度表,如图5所示。设定交互周期为10个通信循环周期,即10T,每个通信循环周期T为15ms,所以信息交互周期为150ms,即在一个信息交互周期中可用的静态段时隙为200个,可用的动态段时隙为1000个。
图5 卫星应用FlexRay总线的时隙调度表Fig.5 FlexRay bus schedule table for satellite
面向未来新一代高性能卫星、星座等新任务新型号,对星上控制网络的通信能力和控制能力要求越来越高,采用高速率、强实时、高可靠的总线作为卫星控制网络是技术发展趋势。本文把灵活的车载FlexRay总线引入到卫星上,针对卫星星上应用,设计了一种FlexRay总线应用层传输协议,详细规定了FlexRay总线的时隙参数设计以及时隙在卫星上的分配。这种传输方法不但保证了星上控制网络的有序性、实时性和稳定性,也可以作为FlexRay总线小卫星应用的一种标准,约束卫星分系统的设计,保证协议设计的一致性,有利于整星系统集成。
(References)
[1]John Rushby.A comparison of bus architectures for safety-critical embedded systems[R].Washington D.C.:NASA,2003
[2]Seo S-H,Kim J-H,Hwang S-H,et al.A reliable gateway for in-vehicle networks based on LIN,CAN,and FlexRay[J].ACM Transactions on Embedded Computing Systems(TECS),2012,11(1):1-24
[3]陈智琦,罗峰,陈觉晓,等.FlexRay特性分析及应用实现[C]//中国汽车工程学会年会论文集,天津:中国汽车工程学会,2007:1201-1205
Chen Zhiqi,Luo Feng,Chen Juexiao,et al.Characteristic analysis and application &implementation of FlexRay bus[C]//Proceeding of Sino-Automobile Engineering Institute.Tianjin:Sino-Automobile Engineering Institute,2007:1201-1205(in Chinese)
[4]FlexRay Consortium.FlexRay communications system protocol specification[Z].Berlin:FlexRay Consorti-um,2005
[5]FlexRay Consortium.FlexRay communications system preliminary Node-Local bus guardian specification[Z].Berlin:FlexRay Consortium,2005
[6]Jaouani H,Bouhouch R,Najjar W,et al.Data distribution service on top of FlexRay vehicle networks[J].Lecture Notes in Computer Science,2012,7135(1):306-317
[7]Jang K,Park I,Han J,et al.Design framework for FlexRay network parameter optimization[J].International Journal of Automotive Technology,2011,12(4):589-597
[8]Pop T,Pop P,Eles P,et al.Timing analysis of the FlexRay communication protocol[J].Real-Time Syst,2008,39(1-3):205-235
[9]FlexRay Consortium.FlexRay communications system electrical physical layer specification[Z].Berlin:FlexRay Consortium,2005
[10]刘思远.时间触发型FlexRay总线星载应用研究[J].航天器工程,2012,21(6):80-86
Liu Siyuan.Preliminary study of time-triggered FlexRay bus for satellite avionics application[J].Spacecraft Engineering,2012,21(6):8086(in Chinese)