用TTP/C协议构建高可靠硬实时嵌入式应用技术探讨
刘太泽,刘  骊,吕  杨
(昆明理工大学信息与自动化学院,云南 昆明 650051)
摘  要:用时间触发协议TTP/C设计容错性好的实时嵌入式系统是一种可行的方案。本文详细阐述了TTP/C的物理实现机制、采用的帧结构、组合性和容错方法,阐明了时间触发和事件触发的区别和基于时间触发体系结构设计的基本构件以及各构件在系统中的作用。
关键词:嵌入式系统;TTP/C协议;高可靠性;时间触发;事件触发;总线;网络
中图分类号:TN915.04  文献标识码:A  文章编号:1811-8755(2004)0985

The Technical Exploration of Building Highly Dependable Hard R-T Embedded System
Using TTP/C Protocol
LIU Tai-ze, LIU li, LY yang
(Institute of Information & Automation, Kunming University of Science & Science, Kunming  Yunnan 650051, China)
Abstract: It is a kind of desired scheme to use time-triggered protocol in design of good fault-tolerant real-time embedded system. The article has illustrated the physical realization mechanism, the frame structure employed, composability and fault-tolerant methods of TTP/C in detail, illuminated the difference between time-triggered and event-triggered, explained the basic components based on time-triggered architecture design and their role in the system.
Keywords: embedded system; TTP/C protocol; highly dependability; time-triggered    event-triggered; Bus; network
0. 引言
传统用于分布式系统网络互联的协议很多,如RS-232串口通信协议、CAN(Controller Area Network)协议以及与Internet互联的TCP/IP协议等,在嵌入式系统中已得到了广泛的应用。但是,在现代安全至上的高可靠硬实时嵌入式系统(safety-critical highly dependable hard real-time embedded system)中,这些协议都没法满足系统的高可靠性要求。爱尔兰Limerick大学开发了TTCAN(Time-Triggered Controller Area Network)现场总线,采用了时间触发的消息响应调度方式,使现场总线在本质上具有确定性行为,因而可以应用于有严格实时要求的工业控制领域,能满足消息传输时间是实时的、有界的系统的最基本的控制要求[2]。
用于工业测控系统的嵌入式计算机系统的工作环境往往是复杂恶劣的,有的嵌入式系统需要在高温、强辐射、高电磁干扰的恶劣环境下工作。尽管传统上的在容错和抗干扰方面的解决方案取得了较大的成功。但是,在要求严格实时高可靠的现代分布式嵌入式系统应用场合,传统采用的方案就显得不太理想了。当今的嵌入式系统也倾向于采用分布式解决方案,这就涉及到采用何种总线,用何种协议来支持的问题。在安全至上的自动化领域中,特别是在硬实时嵌入式操作系统和安全至上(Safety-critical)的自动控制系统中,安全可预测的调度算法显得尤为重要。传统事件触发方式对消息响应时间的有界性有不可忽视的影响,必须在总线协议中采用多种调度策略,使不确定的消息传输时延发生的概率降到最低,但它仍不是适合于安全性要求极高控制场合。本文介绍的TTP/C,最适合于安全硬实时控制领域,在硬实时嵌入式系统中用TTP/C协议开发高可靠的嵌入式应用系统有重要意义。
1. 事件触发系统与时间触发系统
系统在向控制对象提供服务时,可以采用两种本质上不同的调度方式:事件触发和时间触发。事件触发结构是系统对控制对象的响应是由某个事件行为决定的,其发生时间具有随机性。也就是说,系统在时间上表现为不可预测性,而时间触发结构则不同,它是通过一个全局时钟进行驱动的,系统的行为不仅在功能上得到确定,而且在时间上也是确定的。两者的异同表现在以下几个方面:
(1)从对控制对象产生行为的机制上看,在事件触发系统中,控制信号取决于事件的发生(如一次中断),是不可预知的。也就是说,系统中的结点没有共同的时间概念,各结点的行为是随机的、不可预测的。而在时间触发结构中,系统控制信号的产生是由时间的推进来触发的,系统中各结点都知道何时何结点在特定时刻将会产生何种活动。因而系统的行为是确定的、可预测的。
(2) 从状态信息的来源看,时间触发系统的状态信息来源于规定时间内的某个条件(如在t0时刻读传感器的值);而事件触发系统的状态信息则是当某个条件成立时的状态(如流量计超过某个闸值时触发事件的状态)。
(3) 对总线的占用来看,在事件触发系统中,由于子系统之间都是完全的自治系统,它们不知道何时系统会产生何种行为,相互之间共同争用带宽,从而会产生冲突。而在时间触发系统中,系统中的各结点分时复用带宽,各结点对总线的占用在设计时就已确定,总线带宽取决于最坏情况下系统的通信量,因而不会产生带宽争用现象。
(4) 从可靠性方面看,事件触发系统中各结点的可靠性取决于相对的优先级,优先级越高,可靠性越高。实验证明[3],当事件率达到60~70%时,优先级低的结点的服务将得不到保证,整个系统是不可靠的。而时间触发系统中各结点的事件都是预先安排好的,每个结点都在自己的时间槽内完成相应的任务,整个系统是可靠的。
(5) 从稳定上看,由于事件触发系统中各结点在争用总线时会产生冲突,从而会产生延迟和抖动现象,这在硬实时高可靠系统中危害最大的因素之一,而时间触发系统则不会。
(6) 从应用角度上看,事件触发系统广泛用于分时系统,使得系统获得较大的吞吐量和反映的灵活性。而时间触发系统则适用于硬实时高可靠系统,以获得更好的可预测性和可靠性。
由以上区别可以看出,时间触发系统由于其自身的特性,比较适合于硬实时高可靠系统,而对软实时和分时系统来说,这种触发结构就显得不够灵活了。在某些专用领域,如交通工具、医药行业等安全至上的行业,系统的失败可能导致严重后果的场合,使用时间触发系统不失为一种可行方案。
2. 基于TTP/C的时间触发高可靠嵌入式实时系统的实现机制
高可靠实时嵌入式系统必须具有良好的容错性能、实时性能、抗干扰性能和故障预测性能。在嵌入式分布式系统中,在硬件可靠性得到保证的前提下,如果没有好的协议机制和调度机制,系统的可靠性也是没法保证的,时间触发协议TTP/C提供了良好的可靠性保证机制。下面以一个基于B/S结构时间触发嵌入式实时系统为例,说明用TTP/C时间触发体系结构来设计嵌入式分布式系统的基本框架。
2.1 基于TTP/C的时间触发高可靠系统的物理实现机制
Vienna 理工大学的H.Kopetz教授的研究小组开发了TTP/C协议,它的全称是C类时间触发协议(Time-Triggered Protocol Class C),“C”表示实时通信协议。TTP/C协议由SAE(The Society of Automotive Engineers汽车工程师协会)定义。TTP/C是以开发硬实时高可靠容错嵌入式应用的需求为目标而设计的,它可以用于设计高可靠嵌入式应用系统。
一个TTP/C结点由主机(host)、通信网络接口(CNI)、TTP/C通信控制器(TTP CC)组成,其功能框图如图1所示。
控制对象I/O接口是提供主机与环境检测、控制部件的接口。
主机负责向控制对象接收信息并进行处理,并可以向控制对象发送控制信息,同时可与通信网络进行交互。
 
网络通信接口CNI是联接主机和TTP/C的接口,它位于主机和TTP/C控制器都可以互相访问的双端口存储区中,为主机和TTP/C控制器会话提供了一个接口,其另一个作用是将主机和TTP/C控制器的时序隔离避免干扰。主机可以通过CNI对TTP/C控制器的操作进行监视,并可通过CNI命令使TTP/C控制器执行特定的动作。CNI还为TTP/C消息的流动提供一条缓冲路径。
TTP/C通信控制器是TTP/C网络通信的核心,它的内部有一个消息描述表MEDL(Message Description List),该表中定义了结点所需要的控制数据,包括结点通信的组织和TDMA每一轮的消息调度方案,如在某时间点上结点应该发送或接收什么样的数据。该表是在系统投入运行前定义的,在运行时不能更改,一般存储在EEPROM或闪存中。消息描述表中可包含着多种不同的模式,每种模式分别对应于一种特定的消息调度,在不同的模式下,机群周期内的TDMA轮数可能是不同的,在具体的某个时槽应该发送哪一个消息也是随模式的不同而不同的。
协议处理器负责控制器内部的逻辑控制。
总线守护器是一个具有自己的时钟系统的独立硬件单元,它的作用是保护网络通信使之不受故障结点的干扰。如果某个结点发生故障,它可能与系统时序失去同步而不在自己时间槽规定的时刻发送消息,那么该结点就成了串扰结点。如果不对该结点发送的消息进行屏蔽,就会对总线造成干扰,从而影响其他结点的正常工作。总线守护器存有机群中各结点的时间槽信息,如果结点不按照时间槽规定的时间发送,总线守护器将对它的消息进行屏蔽。它的独立时钟是用于避免因结点失效而导致时钟失效,从而使总线守护器不能同步计时的情况发生。
TTP/C可以根据ISO-11898和TTCAN等来设计物理层。图2为基于TTP/C的分布式嵌入式系统组成的总线式网络,一个TTP/C机群由多个TTP/C结点和一个监视结点组成,由于Web服务器上的通用操作系统没有实时功能,不能满足机群中的硬实时要求,所以增加一个监视结点对TTP/C网络进行数据采集和监控。为了改善人机交互的界面和网上监控功能,可以把TTP/C网络通过Web服务器接入Internet。由于本文的重点在于介绍TTP/C的网络体系结构,接入Internet 的技术细节不作为重点讲述。
TTP/C机群采用两条总线进行互联,其中一条是冗余通道,保证系统在一个通道失效的情况下仍能继续工作。
 

2.2 TTP/C所采用的帧类型和作用
TTP/C通信采用两种不同类型的帧,正常帧(N-Frame)和初始化帧(I-帧,Initialization frame),这两种帧在通信网络中的作用不同,其帧格式如图3所示。一个TTP/C帧由帧头、数据域(或控制域)和CRC校验域组成。帧头有四位,一位为帧类型标志,用于表示是N-帧还是I-帧;其余位用作模式控制位,用于标识模式变化请求。应用数据域可以达到16字节,CRC校验位采用16位,提供最少4位的海明距离。
I-帧只包含控制器的状态(C-state)信息,不包含任何数据信息。当帧头的帧类型标志为I-帧时,表示发送的是控制器状态信息。控制器状态信息用于初始化和恢复时间失效的结点,它包含了一个结点在参与通信前需要获得的信息、该时刻在机群周期内的当前位置信息和哪一个结点正在起作用,此外,控制器状态信息还包含当前的模式编号。如果一个结点因暂时的错误而失效,就要通过侦听I-帧进行恢复,并用I-帧提供的信息与网络进行同步。
N-帧用于携带正常操作中的应用数据和发送历史状态消息。应用数据的地址在当前的MEDL表中。如果时间失效的结点需要某个特定应用的数据以便对网络进行恢复,它可以侦听具体的历史状态(h-state)消息,该消息中携带着所需要的数据,以N-帧(正常帧)的形式传送,历史状态消息的发送是由主机来完成的。
2.3 时间触发高可靠嵌入式系统的调度机制
TTP/C协议是一种基于TDMA(Time Division Multiple Access)的协议,因而采用的也是基于时间的调度。不同结点的时间槽系列组成一个TDMA轮(round),不同轮的系列组成一个TDMA机群周期(cluster cycle),这样,一个机群周期可能包括一个或多个TDMA轮。在设计时就给系统中的每个处理结点分配固定的周期性的时间槽。时间触发协议采用绝对时钟进行同步,由一个时间主站周期性地向每个结点广播时钟基准消息,它标志着一个消息交互系列的开始。当结点成功接收到一个消息后,立即初始化结点内部的计时器,此后在整个交互系列周期内,计时器指示相对于基准消息出现时刻的时间,各结点也将参照接收到的消息,对本结点时间进行设置或调整,以保持所要求的时间同步。计时器记录的一个全程时间即是一个周期时间。图4说明了有4个结点的时间触发系统的运作图,在这种情况下,每一轮总是只有一个发送方和三个接收方,所有结点协议的运行都在先验点上及时得到初始化,以后随着系统的运行,每个结点会根据消息发送的时间和自己MEDL中规定的消息到达时刻相对照,据此就可以调整时钟,始终与系统保持同步。全局时间基准通过分布式时钟同步算法而得到实现。当结点1的时间槽到来时,结点1成为消息发送结点,此时其余结点都是接收结点,同样,结点2、3、4也是在自己的时间槽内进行消息发送。
要实现高可靠时间触发应用的调度,必须首先算出硬实时应用管理的处理器开销、最坏情况下的内核开销和系统调用开销。在时间触发系统中,所有的活动都是随时间的推进而完成的,这就意味着,除了计时中断外,系统不响应别的中断。轮询I/O和诊断I/O口这类活动,真接在计时中断例程中产生。时间触发系统一般采用静态调度策略,将它们在一个周期内的调度信息列成一个表,调度方案就确定了,采用的调度策略只要按照时间的推进进行就可以了。也可以采用改善的时间触发调度策略,在确定了机群周期中的轮数和其中各结点的时间槽之后,可以采用图论的知识将各结点生成一棵树,在保证各个结点实时可靠性的前提下,应用图算法,算出最优调度方案,随着调度的进行,即时更新调度表,然后进行下一轮的调度。有关调度的更详细信息,请参考文献[7]。
由于每个消息有各自的时槽,这种消息的一个最大优点是各消息之间不会产生冲突,能很好地适应于要求硬实时高可靠系统的场合。
 
2.4 TTP/C结点的组合能力和采用的容错机制
(1)TTP/C的组合能力。在嵌入式分布式系统中,组合能力是一个重要的要求。一个运行良好的控制元件,在组成一个网络后不一定就运行良好。要有可组合性,网络中各控制元件必须满足系统的要求。相对于事件触发系统来说,采用TTP/C协议的时间触发系统有比较良好的可组合性,
(2)临界瞬时冲突解决机制。事件触发系统由于访问网络的随机性,会产生临界瞬时的冲突,而时间触发TTP/C采用TDMA的机制,有效地解决了这个问题。
(3)时序干扰的容错机制。位于主机和通信控制器之间的CNI,是一个双端口的RAM,除了前面介绍的作用外,还有一个重要的作用就是时间防火墙。如图1所示,发送数据时,主机将需要传输到网络的数据写到CNI的双端口存储器中;当接收数据时,TTP/C协议处理器把网络上的传输数据也写到CNI的双端口存储器中,CNI有效地隔离了主机与协议控制器的时序行为,解网络和主机间的时序干扰。
3. 结束语
TTP/C协议不是为了与当前通信协议竞争而开发的,它主要针对高可靠硬实时系统。传统嵌入式系统一般采用中断等机制来响应异步事件。但是,在某些实时高可靠、容错性和抗干扰要求高的场合,这种办法就不适应了。而采用TTP/C协议可消除许多不确定性因素,从而提高了系统的可知性、可预测性。本文详细介绍了与事件触发体系结构不同的一种改善嵌入式系统实时性、可靠性的设计方案。
参考文献:
[1] Hermann Kopetz, Fellow, IEEE  Günther Bauer, The Time-Triggered Architecture, (Available from http://www.vmars.tuwien.ac.at via email)
[2] 周治邦,适用于安全性控制的现场总线:时间触发的CAN总线,《工业控制计算机》2004年17卷第3期
[3]V. Claesson, C. Ekelin, and N. Suri. The event-triggered and time-triggered medium-access methods. TR-03-02, Dept. of Comp. Engg., Chalmers Univ. of Tech., 2003.
[4] Specification of the TTP/C Protocol, version 0.5, TTTech, July 1999 (available from http://www.tttech.com)。
[5] H. Kopetz. Real-Time Systems: Design Principles for Distributed Embedded Applications, volume 395 of Kluwer International Series in Engineering and Computer Science. Kluwer Academic Publishers, Boston, Dordrecht, London, 1997.
[6]Michael J. Pont,Kent Beck著,周敏译,时间触发嵌入式系统设计模式—使用8051系列微控制器开发可靠应用,中国电力出版社,2004.
[7] Paul Pop, Petru Eles, and Zebo Peng, An Improved Scheduling Technique for Time-Triggered Embedded Systems, 25th Euromicro Conference, Milan, Italy, September 8-10, 1999.
作者简介:
刘太泽,昆明理工大学计算机应用技术研究生;
刘骊,昆明理工大学计算机应用技术研究生;
吕杨,计算机应用技术教授,硕士生导师.

(收稿日期:2004-11-8)

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐