时间触发总线验证技术研究
2017-05-10陈长胜刘智武王晨博
陈长胜,刘智武,王晨博,刘 洋
(中航工业西安航空计算技术研究所,西安 710068)
时间触发总线验证技术研究
陈长胜,刘智武,王晨博,刘 洋
(中航工业西安航空计算技术研究所,西安 710068)
TTP协议定义了一种高确定性,无冲突,高安全的通信总线,能够满足包括飞行控制等的安全关键实时控制系统的应用要求;时间触发总线验证技术根据TTP协议规范要求,针对研制的节点进行测试,包括基本通信测试、时钟同步、故障注入等不同的测试场景,充分验证被测节点的各项功能、性能;通过这些测试,表明被测节点各项指标都满足研制需求,可用于安全关键实时控制系统。
安全关键;时间触发总线;协议验证
0 引言
近年来,控制系统正从集中式控制发展到分布式控制,传感器、控制器、作动器等控制系统中的各个部件之间采用通信总线进行连接,实现数据交互,使得系统具有更高的安全性和经济性。在控制系统中,可以按照执行计算、通信等任务的触发条件进行分类,对于由事件的发生而触发的系统称为事件触发系统,而对于由特定时间而触发的系统则称为时间触发系统。分布式实时控制系统中,采用时间触发模式能够将可用的通信资源合理地静态分配给系统内每个节点,通过时间触发的协议排除了事件触发通信协议要考虑的资源共享冲突和恢复操作等问题,提高系统的确定性和安全性。因此,多种基于时间触发的通信总线,如FlexRay[1]、TT-CAN[2]等。相对而言,SAE AS6003[3]标准定义的时间触发协议(TTP)总线由于设计中采用了分布式的同步算法、支持安全监护等,使其更加适合应用在安全关键的实时控制系统中。
TTP总线是一种基于全局同步的时间,按照预先配置的消息描述表(MEDL)进行静态通信调度的高安全、强实时总线[4],相对于传统的1553B等机载总线,具有传输速率更高、容错能力更强、成本更低等特点[5],因此成功应用在民用飞机的机电系统(A380的舱内压力控制系统、B787的动力控制系统与环境控制系统等)、飞控系统(庞巴迪C系列支线客机飞行控制等)和发动机控制系统(GE的F110发动机FADEC)等实时控制系统中,表明其有良好的应用市场和推广前景。随着我国在大飞机、发动机等领域的快速发展,有必要开展TTP总线技术的研究工作。
1 TTP协议
TTP采用总线型拓扑架构,物理层采用RS-485总线,无专门的总线控制器,所有节点平等地连接到总线上。TTP总线提出了一种分布式的高精度时钟同步算法[6],通过多个授时节点发出帧的相对时刻对网络进行同步,避免了传统的集中式时钟同步技术中的授时端单节点故障问题,并且无专门的授时帧因而不增加额外的通信带宽。基于该算法,总线上各个节点建立全局时间。总线定义了集群周期和TDMA(时分复用)环,并将TDMA环划分为多个槽,为各个节点定义无冲突的消息发送槽位置,使得系统能够按照时分复用的方式独占总线,保证了通信的实时性,如图1所示。
图1 介质访问策略
TTP总线定义了两类协议服务:通信服务和安全服务。通信服务保证可靠的数据传输、集群的启动、节点之间的重新整合、确认算法、容错时钟同步以及集群模式切换的处理,包括:
1)启动服务:TTP控制器从未同步模式进入同步模式的过程称为启动。取决于TTP控制器启动时集群通讯是否正在进行,控制器要么整合进而加入当前集群,要么发起一个集群启动(称作冷启动);
2)时钟同步服务:TTP通信协议采用分布式的同步算法,周期性同步所有TTP节点的本地时钟以产生一个确定精度范围内的全局时间基;
3)确认服务:基于成员关系和隐式的校验,发送节点在发送帧之后从最多两个有效后继节点发送的帧的状态来确认自身是否正常的服务;
4)集群模式服务:考虑到许多实时系统的操作和控制过程中包含了多个相互独立的阶段,不同阶段要求不同的通信配置数据,TTP支持多个集群模式,并且支持动态的集群模式更改。
安全服务支持错误检测,包括:节点成员关系,派系检测算法和主机/控制器生命标记服务,包括:
1)成员关系服务[7]:定义64位的成员关系向量,每一位代表一个节点的状态。在一个TDMA环的一定延时内,用于保证所有有效节点的通信,调整这些节点对于每个节点的工作状态的本地视图;
2)派系检测服务:派系定义为一个节点集,根据持续通信的每个帧,这些节点具有一致的控制器状态(集群模式、当前槽位以及成员关系向量)。派系检测服务用于检查整个总线上是否存在不同的派系并进行恢复,从而避免系统的非一致性错误;
3)主机/控制器生命标记服务:在每个TDMA环中,主机和TTP控制器之间通过主机接口相互提供周期性更新的生命标记信息,以将自己的活跃状态通知给对方,保证节点行为的正确。
TTP总线通过上述服务,使其具有实时性、安全性的技术特点,能够满足机载环境中飞行控制、机电控制、发动机控制等安全关键领域的应用要求。
2 TTP节点机
TTP节点机设计成标准PMC模块,采用32位33MHz/66MHz的PCI总线。物理端口上采用双余度的方式,提高系统的可用性,使得其中一个通道故障的情况下总线仍然能够为系统提供有效的通信服务。核心逻辑采用大规模FPGA自主实现,支持时钟同步以及基于时间触发的总线通信服务、安全服务等。TTP节点机结构如图2所示。
图2 TTP节点机结构
其中,RS485驱动器实现TTP总线电平的驱动,变压器用于总线信号的隔离保护,MEDL采用PROM保存TTP节点的通信配置信息,而FPGA作为TTP节点机的核心部件,实现TTP总线的协议控制器功能并对主机提供访问接口。
FPGA实现的TTP总线控制器主要包含以下功能:
1)PCI总线接口:作为PCI设备端,实现主机对于节点机中相关寄存器的设置与访问、消息的发送与接收等;
2)通信网络接口(CNI):定义了一组寄存器和缓冲区,用于主机与协议处理部分的信息交互。寄存器包括主机对控制器的一些参数的设定,如通信速率的配置、集群模式更改请求等,以及一些控制器向主机提供的状态信息,如集群时间、中断状态、统计信息等。缓冲区包括发送消息缓冲区和接收消息缓冲区,实现主机发送和接收操作时的消息缓冲;
3)协议处理:采用状态机的形式,支持Freeze、Init、Listen、Cold Start、Active和Passive共6种状态。在Freeze状态,设置相关寄存器的初始值;在Init状态,加载MEDL表并做CRC检验,将MEDL中的配置信息加载到相应的寄存器中;在Listen状态,监听总线上的活动以确定是否加入现有的总线;在Cold Start状态,主动发起冷启动帧,并检测是否有其他节点加入,从而实现总线的启动;在Active状态,执行正常的通信功能;由于未准备好或者主机故障等问题而处于Passive状态时,仅接收其他节点发送的帧而不允许向其他节点发送。在这些状态之上,协议处理单元实现启动服务、时钟同步服务、确认服务、集群模式服务、成员关系服务、派系检测服务、主机/控制器生命标记服务等,为主机提供确定、安全的通信;
4)链路层:包括发送和接收。发送操作时按照协议状态机的命令,组织冷启动帧、I帧、N帧或者X帧,并提交给物理层进行发送;接收操作时从物理层接收帧内容并进行帧类型的判断、CRC校验等;
5)物理层:实现总线速率的控制(支持1Mbps、2Mbps、4Mbps和5Mbps等不同的速率)、曼彻斯特编解码、帧起始符(SOF)/结束符(EOF)等的控制、串并/并串转换功能等。
3 TTP验证平台
为了对研制的TTP总线节点进行验证,建立了TTP验证平台,包含2种连接方式,如图3所示。
图3 TTP测试连接关系
图中,(a)通信测试用于对TTP总线的规划、加载、监控等功能的测试,(b)故障注入测试用于对TTP总线容错功能的测试。验证平台中主要的设备和软件包括:
1)TTP Cluster:包含4个TTP节点的机架,用于与TTP被测节点之间进行时钟同步、通信、确认等功能;
2)TTP Monitor:能够实时监控TTP总线上的帧传输,并且提供对总线上其他节点的数据加载,与主机之间采用以太网连接。验证过程中,TTP Cluster中的TTP节点、TTP被测节点的MEDL和应用程序都是PC机通过TTP Monitor进行加载的;
3)TTP Disturbance:支持包括派系、固定电平、CRC校验等多种类型的故障注入,对总线的容错能力进行验证,与主机之间采用串口连接;
4)TTP工具集,包括TTP-Plan、TTP-Build、TTP-Load及TTP-View,这些工具分别用于TTP总线的规划、建立、加载和实时流量监控。
4 TTP验证程序
TTP总线节点验证的流程是,基于TTP总线需求定义测试程序,并为每个测试程序设计接口控制文件(ICD),定义各个消息传输的源节点、目的节点、周期、长度等。在TTP-Plan中根据ICD定义测试所需的通信配置,使用TTP-Build生成各个节点的通信配置文件MEDL,并通过TTP-Load由TTP Monitor对总线上的各个节点进行MEDL和测试软件的加载。
测试过程中,使用TTP-View工具软件、示波器对总线上的通信进行观察,从而判定所进行的测试项是否通过。针对338需求,共设计了52项测试用例。以下选择其中的基本通信测试、同步测试、故障注入测试和集群模式测试等4项测试,简单描述其覆盖的测试需求、具体的测试过程以及测试结果的验证。其他测试用例都与此类似。
4.1 基本通信测试
基本通信测试用于验证TTP节点传输速率、发送帧的结构和支持的帧长。
4.1.1 测试需求
TTP总线应支持1Mbps,2Mbps,4Mbps和5Mbps的传输速率;
TTP总线N帧结构应满足AS6003定义的格式;
TTP总线N帧应用数据最大应支持240字节。
4.1.2 测试过程
步骤1:通过TTP Monitor,将传输速率设为1Mbps的配置加载到各个节点;
步骤2:重启系统;
步骤3:被测节点测试软件循环发送应用数据长度分别为1字节、100字节和240字节的帧;
步骤4:通过示波器观察总线上信号的特性;
步骤5:通过TTP-View观察被测节点发出的帧格式及帧内容;
重复步骤1-步骤5,测试2Mbps,4Mbps和5Mbps传输速率下的通信。
4.1.3 验证测试结果
TTP总线采用曼彻斯特编码。在不同传输速率下,示波器测量到的总线信号周期和帧结束符(EOF)应该满足表1所示的值。
表1 总线信号周期和EOF长度
不同传输速率下,通过TTP-View观察到被测节点发送N帧的格式应符合AS6003规范要求,由4位帧头、对应长度的应用数据以及24位CRC组成,各个部分的内容、长度应正确无误。
4.2 同步测试
同步测试用于验证TTP节点的从初始状态到进入同步的启动服务,以及周期性时钟同步服务。
4.2.1 测试需求
TTP节点应该能够通过启动服务和时钟同步服务保持与总线的同步,同步精度<12.75 us。
4.2.2 测试过程
步骤1:配置TDMA环为6.25 ms,每个槽1.25 ms,通过TTP Monitor将配置加载到各个节点;
步骤2:重启系统;
步骤3:通过示波器观察总线上各个节点发出帧的开始时间。
4.2.3 验证测试结果
相邻两个节点发送帧的开始时间之差,应该稳定保持在以下范围:
[1.25 ms-6.375 us, 1.25 ms+6.375 us]
4.3 故障注入测试
通过不同的故障注入,验证TTP总线的确认服务、成员关系服务、派系检测服务和主机/控制器生命标记服务。该测试采用图2(b)中的连接方式。
4.3.1 测试需求
TTP节点应该采用确认服务,通过连续两个有效后继节点的状态,判断自己发送帧的正确性;
TTP节点应该采用成员关系向量,标识每一个节点的工作状态;
TTP节点应该采用派系检测服务,并在处于少数派系时重启并重新加入派系;
TTP节点应该采用主机/控制器生命标记服务,交互各自状态,并在一方故障时另一方不能继续发送帧。
4.3.2 测试过程
步骤1:通过TTP Monitor将配置加载到各个节点;
步骤2:重启系统;
步骤3:系统稳定工作后,采用信号发生器和干扰仪TTP Disturbance依次注入表2所示的各种故障;
表2 总线故障注入
步骤4:通过TTP-View和示波器观察总线状态。
4.3.3 验证测试结果
指定节点故障时,被测节点的成员关系向量将对应位置为0;被测节点在成为少数派系成员时,能够发现并重启;
被测节点主机标记为故障(不更新生命标记)时,控制器不再发送帧。
4.4 集群模式测试
TTP总线支持最多7个集群模式,通过发起集群模式切换命令,实现不同集群模式之间的切换,从而满足不同应用阶段使用不同通信配置的要求。
4.4.1 测试需求
TTP总线支持最多7个集群模式,发起集群模式切换命令后,所有节点能够切换到指定的集群模式。
4.4.2 测试过程
步骤1:配置包含7个集群模式的MEDL,并通过TTPMonitor将配置加载到各个节点;
步骤2:重新启动;
步骤3:被测节点发起集群模式切换;
步骤4:通过TTP-View观察总线的集群模式。
4.4.3 验证测试结果
TTP总线可以按照集群模式切换命令,实现不同模式之间的切换。
5 结论
在TTP节点研制过程中,基于TTP总线需求分析形成的338条需求,建立了TTP总线验证平台,开发了52个测试程序。本文对TTP协议做了简单介绍,描述了自研的TTP节点机设计,并对TTP总线验证平台和验证程序做了说明。通过测试表明,研制的TTP节点满足需求规范,具有高确定性、高安全的技术特点。
[1] 王 婧, 张 欣. 汽车网络通信协议TTP/C和FlexRay的研究分析[J]. 北京汽车, 2006, 6:40-43.
[2] 周 震, 杨正林. 时间触发CAN—TTCAN[J]. 汽车电器, 2005, 5:3-7.
[3]AS6003TTPCommunicationProtocol[S].SocietyofAutomotiveEngineers, 2011-2.
[4]HermannK,GunterG.TTP-Aprotocolforfault-tolerantreal-timesystems[J].IEEEComputer, 1994, 27(1):14-23.
[5] 赵 罡, 何 锋, 王红春,等. 航空电子环境TTP/C总线应用技术研究[J]. 航空计算技术, 2014, 44(6):110-115.
[6] 刘冬冬, 张天宏, 陈 建, 等.TTP/C协议的关键特性研究[J]. 计算机测量与控制, 2012, 20(10):2769-2772.
[7] 刘双与, 郭丽娟, 张 激, 等.TTP/C协议的一致性机制研究[J]. 计算机工程, 2006, 32(5):119-121.
ResearchonVerificationofTimeTriggeredProtocol
ChenChangsheng,LiuZhiwu,WangChenbo,LiuYang
(Xi’anAeronauticsComputingTechniqueResearchInstituteofAVIC,Xi’an710068,China)
Time-triggered Protocol (TTP) defines a communication bus with high determinism, conflict-free and high safety, and it could meet the communication requirements of safety-critical real-time control systems such as flight control system. Verification of TTP is based on the demands of the protocol, designed test methods and procedures including basic communication, synchronization and fault injection to verify the functions and performance of TTP node under test. Through the tests, the TTP node is verified that it meets the requirements and it could be used in safety-critical real-time control systems.
safety-critical; time-triggered protocol; protocol verification
2017-01-17;
2017-02-09。
国家十二五基金项目(MJZ-2014-S-47)。
陈长胜(1982-),男,安徽芜湖人,硕士,高级工程师,主要从事机载总线与网络方向的研究。
1671-4598(2017)04-0244-03DOI:10.16526/j.cnki.11-4762/tp
V
A