AFDX冗余管理机制的仿真
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2008年12月
December 2008
—92—
计 算 机 工 程Computer Engineering 第34 第23期
Vol 卷.34 No.23 ·网络与通信·
文章编号:1000—3428(2008)23—0092—03
文献标识码:A
中图分类号:TP393
AFDX 冗余管理机制的仿真
陈 昕1,2,3,路 娟2,周拥军3
(1. 清华大学计算机科学与技术系,北京 100084;2. 北京信息科技大学信息安全系,北京 100101;
3. 洛阳电光设备研究所电子部,洛阳 471009)
摘 要:介绍了AFDX 系统的组成及体系结构,通过对AFDX 实时通信协议的冗余管理机制和冗余帧处理算法的分析和研究,提出具有较高可靠性的冗余帧处理算法ESKM 。
并通过时间自动机理论和UPPAAL 工具模拟仿真,验证了其满足航空电子网络数据传输的可靠性需求。
关键词:冗余网络;冗余管理;最大偏移;时间自动机
Simulation of AFDX Redundancy Management Mechanism
CHEN Xin 1,2,3, LU Juan 2, ZHOU Yong-jun 3
(1. Department of Computer Science and Technology, Tsinghua University, Beijing 100084;
2. Department of Information Security, Beijing Information Science and Technology University, Beijing 100101;
3. Department of Electronics, Luoyang Institute of Electro-optical Equipment, Luoyang 471009)
【Abstract 】This paper introduces the composition and architecture of AFDX system, puts forward a highly reliable redundancy management mechanism along with corresponding processing algorithm of redundant frames through analysis and study of the original AFDX real-time communication protocol. Based on timed automata theory and UPPAAL simulation, it is proved that ADFX can meet the reliability requirement on avionics data transmission.
【Key words 】redundant network; redundancy management; SkewMax; timed automata
近年来,随着空客A-380成功研制并投入使用,AFDX
(Avionics Full-Duplex Ethernet)得到了航空电子综合技术研究与应用领域的广泛重视。
在航空技术比较先进的发达国家,出现了一系列具有较强研究与应用价值的成果[1-3]。
在国内,也引起国内航空电子技术研究与应用领域的高度重视,并逐步展开广泛的研究[4]。
1 AFDX 体系结构及关键技术
AFDX 网络体系结构主要由航空电子子系统、端系统和AFDX 互连模块3个部分组成。
1.1 航空电子子系统
航空电子子系统,即传统的航空电子机载子系统,例如飞行控制计算机系统、全球定位系统、疲劳压力监控系统等。
作为航空电子计算机系统的一个组成部分,一方面,它连接到航空系统中的控制器、传感器或激励(动作)器上,接收由这些源发送来的数据信息;另一方面,它和专门(唯一)接收它的数据的端系统相连。
在航空计算机系统控制下,将接收到的各种数据信息传送给端系统。
1.2 端系统
端系统也是航空电子计算机系统的一个主要组成部分,其主要是为航空电子子系统和AFDX 互连模块之间的通信提供通信接口。
在航空电子计算机系统中,端系统的接口可以同时向一个或多个航空电子子系统提供安全、可靠的数据交换。
另外,端系统也可以通过网关将AFDX 互连模块与外部的因特网连接起来,实现更加广泛的应用。
1.3 AFDX 互连模块
AFDX 互连模块的功能是实现各个航空电子计算机系统的互连,并将AFDX 帧转发到恰当的目的地。
该模块通常由具有特殊功能的AFDX 交换机组成。
此外,AFDX 交换机还具有流量控制功能,可以防止网络故障引起的流量异常影响整个AFDX 网络的传输性能。
1.4 AFDX 关键技术
AFDX 关键技术主要包括:流量整形,虚电路调度和冗余管理等。
流量整形是对AFDX 端口发送过来的消息流进行规范化,其输出是规整的、没有时延波动的,且满足虚电路BAG 参数的消息流,这样很大程度上增强了网络的稳定性。
虚电路调度的基本单元是虚电路调度器,它用来对不同的虚电路中的消息进行调度,决定发送消息的顺序,以满足实际的实时性需求。
冗余管理的基本功能分为2部分:(1)在发送
时,将消息复制发送到2个独立的冗余网络中;
(2)在接收时,滤除从冗余网络中收到的重复消息。
2 AFDX 冗余机制
2.1 AFDX 冗余管理系统组成
一般情况下,在AFDX 系统中有2个独立的交换网络:A 网络与B 网络。
发送端系统发送的数据帧被复制后,分别
基金项目:国家自然科学基金资助项目(90104002);国家“863”计划基金资助项目(2001AA112080);北京市属市管高校人才强教计划基金资助项目(PXM2008-014224-055928);北京市教委科技发展面上基金资助项目
作者简介:陈 昕(1965-),男,副教授、博士,主研方向:网络性能评价,信息安全;路 娟,硕士研究生;周拥军,研究员、博士收稿日期:2008-09-15 E-mail :chenxin@
发送到A, B 2个网络中。
因此,在通常情况下,接收端系统都会收到2个互为冗余的数据报。
在虚电路和冗余网络接收端,冗余帧处理的基本规则是:首先,进行完整性检查,即检查成功到达帧的帧序号是否符合顺序要求;然后,进行冗余处理,端系统确定是接收该帧,还是由于这个帧一个拷贝已经抵达而丢弃。
在实际算法应用中,通常将完整性检查和冗余管理放在一起解决,并把这种发送端、冗余链路和接收端的冗余帧处理机制统称为冗余管理系统。
2.2 AFDX 冗余模型
作为一个实时系统AFDX ,保证其正确性与可靠性是至关重要的。
显然规范和验证该AFDX 系统的冗余机制,传统的有穷状态自动机显然不够。
因此,引入时间自动机理论进行系统建模,并用UPPAAL 工具对模型进行检测和分析。
定义1[5](时间自动机) X 是时钟的有穷集合。
X 上的时间
约束集C (X )由语法φ::=(x ~c )|φ1∧φ2|true 定义。
其中,x ∈X , ~∈{<,≤,≥,>};c ∈N +, N +为非负整数集。
X 上的时间自动机是
一个六元组<L ,L 0,Σ,X ,I ,E >。
其中,
(1)L 是一个有穷的位置集合; (2)L 0 ⊆L 是一个起始位置集合; (3)Σ是一个同步有穷符号集合; (4)X 是一个有穷时钟集合;
(5)I : L →C (X )为L 中的每一个位置l 指定Φ(x )中的某一个时钟约束;
(6)E ⊆L ×C (X )×Σ×P (X )×L 是一个转移集合;<l ,a ,δ,λ,l ′>表示输入符号a 时,从位置l 到l ′的一个转移;δ是定义在X 上的一个时钟约束,在转移发生时必须被满足。
同时属于λ(λX )的时钟被重置为0。
⊆时间自动机的时钟赋值为µ:X R +。
其中,R +为非负实
数集;时钟赋值µ+t 表示对于所有的时钟变量x ∈X ,µ(x +t )= µ(x )+t , t ∈R +;时钟赋值µ满足时间约束φ(记为µ|=φ),当且仅当在µ的赋值下φ为真。
对于λX ,µ[λ:= 0]表示对每个 x ∈λ的时钟赋值为0,其余的时钟值保持不变。
6⊆2.3 ESKM 算法设计 定义2 逻辑循环加运算:是一种具有循环最大值的运
算,当逻辑循环加运算超过运算的最大值时,返回到循环的
起始位置。
eg :循环最大值为255,最小值为1,则254⊕1=255,255⊕1=1。
定义3 逻辑循环减运算:是一种具有循环最小值的运算,当到达最小值时,返回到循环的最终位置。
eg :循环最大值为255,最小值为1,则2⊙1=1⊙1=255。
在理想的情况下,接收端只接收当前帧的后续帧,即只接收Seq ⊕1号帧(Seq 为当前帧序号)。
但是,若B 网络中的冗
余帧早晚于A 网络中的后续帧到达,冗余帧就不能真正地发挥作用。
如图1所示,t 表示第1链路上零号帧到达时间,此帧的后续帧即1号帧最早到达时间是BAG +L min 。
在另一个链路上,冗余零号帧的到达时间是t +SkewMax 。
为避免帧不按顺序到达,冗余帧必须先于后续帧到达。
所以,必须保证t +SkewMax <BAG +L min ,即SkewMax <BAG +L min–t 。
图1 冗余链路帧到达的时间序列图
然而,由于虚电路的大小的不确定性和软件延迟的布确
定性,SkewMax 大小很难精确控制。
因此,在本冗余帧处理算法中,设计分别接收当前帧的前3后2个帧,即可以接收Seq ⊕1, Seq ⊙1。
在本次仿真实验中,具体的ESKM 算法如下:
wait(fr)
if((Len>=2)∧(frn>0)∧(frn ∈[Psn ⊕1,Psn ⊙1])) then
if(frn=psn ⊕1)then if(IsPresent(frn) = null) then enqueue(fr)
psn[ch]←frn
else if (IsPresent(frn) = fr) then
Psn=frn
end if
else if(frn=psn ⊙1) then if (IsPresent(frn) = null) then enqueue(fr)
psn[ch] ← frn
else if (IsPresent(frn) = fr) then
Psn=frn end if else
end if
dequeue() Psn=fr goto wait(fr) else
counttime(t) if(Len>=0)
dequeue() goto end
end if
End if 其中,fr 表示上交到应用程序的帧序号;frn 表示到达帧的序号;psn 表示已经接收帧的序号;函数enqueues ( )表示使帧序号为frn 的帧入队;IsPresent 用来检查到达帧frn 是否存在于队列中;
dequeue 函数表示将数据帧出队上交应用程序。
3 AFDX 冗余仿真研究
3.1 AFDX 冗余机制仿真
结合上述研究成果和时间自动机理论,在时间自动机验证工具UPPAAL 的编辑器中,建立4个时间自动机进程模板
模拟仿真AFDX 网络冗余机制。
在发送端,其状态转移如图2所示。
Init Reset
sendfristone
sendfristtwo
SentOne SentTwo c<1
c<1
c<=BAG
c<=BAG
fr:=0,rchk=1,c=0c>=HR msg_one!fr:=0,c:=0
msg_two!
fr:=0
msg_one!
fr:=0,c:=0msg_one!
msg_two!c=0c==BAG fr=(fr<255)?(fr+1):1,rchk=0,tfr=fr
图2 发送端系统图
Init 节点为系统初始状态,该状态可进入发送第1个数
—93—
据帧或复位状态,若进入复位状态,则分别发送2个序号为零的帧到2个独立的冗余链路中;否则,就直接进入发送第一个帧状态(SentOne),发送该帧到冗余链路A ;随后,就进入发送第2个帧状态(SentTwo),发送该帧到冗余链路B-链路A 冗余链路。
最后,检查更新帧序号并回到初始状态,若小于255就加1,更新帧序号;否则,就回滚到1,若该次发送数据完毕,复位并将帧序号标志为0。
冗余链路表示A, B 2个物理上相互独立、互为冗余网络中的2个链路,并采用完全一样的传送路径和策略分别传送待发送数据帧。
网络A, B 分别接收来自发送端状态send_one 和send_two 所发出的数据帧进行传送,链路cha_b 状态转移图与cha_a 类似,如图3所示。
Init 节点为系统初始状态,当接收到发送端的消息msg_one 或者msg_two 就进入传送状态,若传送过程没有错误,就进入传送成功状态。
然后,更新系统一系列的帧序号进入更新状态,最后,回到系统的初始状态;否则,表示传送过程出错,发送error 消息,进入传送失败状态SendFailed ,最后回到链路初始状态Idle 。
C
Update prfr=nfr Idle
msgone!SendSuccessful
Transmitting
SendFailed
msg_one?
msg_one?
msg_one?
frq cn2<=max_latency
msg_one?
error!cn2:=0
no_error!cn2:=0
cn2<=max_latency
frq [ub]=tfr,ub=(ub<4)?(ub+1):0
nfr=frq[lb],lb=(lb<4)?(lb+1):0nfr=tfr,ub=0,lb=0
图3 传送链路系统图
在接收端进程模板中,针对接收到帧的序号和系统消息,采用以下3种不同的处理方式:(1)接收到消息msgone 和
msgtwo 且序号为零的帧多于2个时,重新启动接收端。
(2)接收到消息msgone 或msgtwo ,且帧序号满足冗余帧处理算法要求时,接收该帧进入Recd_one 或Recd_two 状态。
(3)接收到消息msgone 或msgtwo ,但到达的是已接收的帧时,进入RM 冗余状态。
最后,当接收到error 消息时,说明传送链路存在错误,则立即返回到初始状态不作任何处理。
具体状态转移如图4所示。
C
C C Idle
Reset
Recd_one
Recd_two
RM
error?
msgone?
msgone?
msgone?
msgtwo?msgtwo?
msgtwo?
((fr==psnlb)||(fr==ps1))&&fr!=0
fr==0fr==0
(fr!=0)&&(fr==psn)
(fr!=0)&&(fr==psn)
((fr==psnlb)||(fr==ps1))&&fr!=0
图4 接收端系统图
3.2 仿真结果评估
使用UPPAAL 工具的模拟器对该模型进行模拟验证,得到系统运行的一个消息序列表,如图5所示。
消息序列表显示了各个进程模板在系统运行时的控制位置变化情况,以及各进程间的相互通信状况。
主要有2种情况:(1)零号帧复位
消息传递的正确性,即使有2个在传送过程中发生错误,也不影响最终接收端的正确复位。
(2)接收到非零帧后接收端的接收情况。
首先,接收先到的虚电路上帧,对该帧在另一个链路上的冗余帧,标记RM 冗余状态,随后丢弃该帧。
由此可见,可以有效地处理冗余帧。
另外,通过验证检查系统没有存在死锁的情况。
所以,系统能够很好地满足航电网络的实时性和可靠性的基本需求。
图5 一般帧发送的时序图 4 结束语 本文通过对AFDX 实时通信协议的冗余管理机制的研究,提出了具有较高可靠性的冗余帧处理算法ESKM ,并利用形式化模拟验证的方式,证明运用ESKM 算法的冗余管理机制能够较好地满足航空电子总线网络的可靠性需求。
参考文献 [1] Charara H, Scharbarg J L, Ermont J, et al. Methods for Bounding
End-to-End Delays on an AFDX Networks[C]//Proc. of the 18th Euromicro Conference on Real-time Systems. [S. l.]: IEEE Press, 2006: 193-202.
[2] Anand M, Vestal S, Bronwn S D, et al. Formal Modeling and
Analysis of the AFDX Frame Management Design[C]//Proc. of the 9th IEEE International Symposium on Object and Component- oriented Real-time Distributed Computing. [S. l.]: IEEE Press, 2006: 393-399.
[3] Täubrich J, Hanxleden R. Formal Specification and Analysis of
AFDX Redundancy Management Algorithms[M]. [S. l.]: Springer- Verlag, 2007.
[4] 熊华刚, 周贵荣, 李 峭. 机载总线网络及其发展[J]. 航空学报,
2007, 27(6): 1135-1144.
[5] 晏荣杰, 李广元, 徐雨波, 等. 有限精度时间自动机的可达性检
测[J]. 软件学报, 2006, 17(1): 1-10.
—94—。