您现在的位置:网站首页答辩论文工学论文电子论文

交通灯的设计

  • 简介:作为通信设备的交通灯 摘要: LED(发光二极管)交通灯发出来的可见光能够被用来进行信息调制和编码。因此,它能够被用作音频信息或者任何交通道路信息的广播。基本上,所有的LED交通灯都可以被用作通信设备。本文集中描述了一个由高亮度的发光二极管组...
    • 请与管理员联系购买资料 QQ:5739126
  • 论文简介
  • 相关论文
  • 论文下载

作为通信设备的交通灯

摘要:

LED(发光二极管)交通灯发出来的可见光能够被用来进行信息调制和编码。因此,它能够被用作音频信息或者任何交通道路信息的广播。基本上,所有的LED交通灯都可以被用作通信设备。本文集中描述了一个由高亮度的发光二极管组成的、一个有音频的信号系统,其中一个或多个发光二极管用于音频信息一起进行编码。这个系统也包含一个与说话者相结合的接收器,这个说话者离LED交通灯有一定的距离。这个接收器被被设计用来解调用光学方法传送有声音信息并且向发言者播送信息。光链路使用强度调制来直接监督。在LED交通灯上实现的音频信息系统能够提供露天场所的作用和音频消息的无线广播。

1.引言

    最近,市场上出现了可被用作交通信号的高亮度发光二极管。例如,一种新的带蓝色和绿色的LED已经被设计用于满足基于设定在美国和世界上其他国家的规格标准的绿色交通信号灯的颜色和亮度要求。高亮度的红色和黄色发光二极管出现在市场上好些年了。因此,所有的高清晰度、高效率的三色发光二极管对交通信号制造商是有用的。使用发光二极管有许多的优点。白织灯在常规8英寸直径交通信号内的使用能够消耗116瓦到150瓦的电能。新的发光二极管仅仅消耗10瓦到18瓦特。使用的预期寿命也很长,抗湿度能力也非常强。通常,一盏LED的故障是逐渐的减弱,并不会导致红、黄、绿等突然变暗,这又为驾驶员提供了一种额外的安全。

    本文的中心内容如下。除了作为指示和照明的正常的功能外,LED交通灯能够被用作一个传输和传播信息的通信设备。因此,它成为一个无线光通信系统的一部分。本人描述了一个用可见发光二极管来传播音频信号的音频信息系统。同时这些可见发光二极管的一致使用和通信会产生很多新的有趣的应用。本人中所描述的系统的系统的原型已经被实施。在这篇文章里报告的工作不同于使用红外线辐射作为一种近距离的无线通信媒介。目前,红外线链接和局域网是可利用的。低成本的红外线数据链路的红外线无线电收发两用机在市场上可得到广泛的应用。不管怎样,作为一种通信媒介在使用可见光上有一些细微的工作。高亮度的发光二极管的有效性使得这种可见光媒介非常适用。实质上,所有的利用可见发光二极管元件的产品(像LED交通信号头)能够转变成信息信号灯。本文集中于它在音频传播中的应用。

    可见光作为一个通信媒介在纤维光学中使用了好多年了。在本文中,作为一个短距离的信息信号灯用在露天广场。应用必须利用通讯媒介的定向本质,因为接收者对放声系统或者传送者需要一条视线来接收。在当今的实验设备里,音频信号广播系统和接收器的位置相对确定。由于接收者和来源之间的相关速度远远小于光速,多普勒的频率

                                                                                      

变换通过接收者观察可能被完全忽视。值得注意的是,传送者为通过接收者的视线接受提供容易接收的目标。这是因为发光二极管在任何时刻都是发射机的地点的显示。发射机能以近180度的角度广播。

1.   系统描述

音频信息系统如图1所示。图2给出了表示发射机设计的概要图的一个方框图。来自盒式磁带或者CD播放器的音频信号幅度比较小,因此这个音频信号放大器是必要的。音频放大器用来放大弱的音频信号,并且把音频信号的平均电压平移到合适的水平。以

便信号是在一台压控振荡器(VCO)的捕获范围内。VCO芯片是用来调节从音频放大器进来的音频信号变化,并且产生FM信号。一个矩形波VCO被用来代替正弦波使用,因为发光二极管只有两个状态(亮和灭)。载波频率被设置在100KHZ,最大频率偏差为正负50KHZ。被调整的信号通过发光二极管的改变来传送。开关频率足够高,因此可察觉的光经常被看作对人们眼睛的照明。

下面是对接收者的描述的详细设计如图3。光电探测电路包括发光二极管和电阻器。发光二极管的一端与陷流电阻连接。另一端接地。因为从光电探测器信号比较小,所以在下一阶段放大器是必需的。限制的前置放大器电路由两个运算放大器和一些电阻、发光二极管组成。二极管用来把输入电压限制在要求的水平(例如在-0.7V0.7V之间)。这条电路的目的是把输入信号放大到一定的水平,一台比较器被用来产生矩形信号脉冲。二级前置放大器被用在这条电路里,因为使用一级前置放大器将需要一个高的增益放大器。因此,两级前置放大器以单个被使用更低的获取要达到高的获取,但噪声也跟着降低了。

接下来用的是一个有操作放大器、一个电阻和两级与非门NAND施密特触发器组成的数据复制电路。其功能是将来自先前阶段的放大器的信号产生一个矩形脉冲。操作放大器被使用作为一台比较器,这台比较器用虚拟地作为参考。两级NAND施密特触发器被用来提高抗干扰度和改正那些由于比率放大器的回转的由低到高的边缘电压。两级NAND施密特触发器被使用代替一个以便信号不会被倒置。然后,由一个电容和一个电阻组成的微分电路被用来检测被一个二极管阻挡后沿的前沿脉冲。接下来是一个脉冲发生器电路,一个施密特触发器门被使用作一台脉冲发生器并产生给来自微分器一个倒置形式的脉冲。

在下一阶段可以发现一个积分器和表面检测器,积分器就是一个表面检测器,所以双重积分就被执行。如果从脉冲发生器中的倒置脉冲包含高频率,那么总频率越高,输出电压电平也就越高。然而,如果被倒置的脉冲包含低频率,那么总频率越低,输出电压电平也就越低。这样,被调制的信号将会被重建。接下来使用的是一带通滤波器,输出信号从先前阶段的积分器和表面检测器都有许多畸变。带通滤波器就是用来滤除所有的高频畸变。更高的截止频率要依靠噪声譬如50HZ的输出电线频率。从带通滤波器输

                                                                                      

出的信号是一音频信号。接收电路最后一级是功率放大器,其输出与发言者相连接。目的是通过一个扩音器或耳机或助听器来传递有声信息。

2.   LED交通灯的音频系统

    上述的音频系统的一种应用就是LED交通灯。如今,高亮度的发光二极管在交通灯的应用中逐渐增加。这主要是由于低功耗和LED交通灯需要的维护率低。那样每年就可以节约可观的成本。

在美国费城城市,城市用发光二极管替换它所有的总共28000个红色信号,估计每年美国能节约120万成本。下一阶段的发展将包含有3种颜色的LED信号。本人所描述的想法和发展除了他们作为指示和发信号的设备外,LED交通灯能够被用作一个通讯设备。这允许同时使用交通灯,因为它能广播地方交通信息、车地点、道路和航海信息,并且同时执行它作为交通信号设备的正常功能。LED交通灯作为一种新的短距离信号灯支持路旁对车的通信。

3.   实施和结果

本文所描述的音频信息系统的两种模型已经在香港大学的工业自动化实验室被实

施。第一种模型是简单的LED发送器,它包含了由HP高亮度ALINGAP发光二极管组成的发光强度为1100mcd,驱动电流为20mA。这是一盏5mm与观察角度为15度一起的LED灯。用这样的LED作者证明了在发光二极管前面放一个50mm焦距的透镜,传送距离能达到390cm。没有透镜,传输距离可达到77cm。图4和图5分别是被实施的传送者(用6LED显示)和接收者的图片。

第二种模型实施的是由441个高亮度的发光二极管组成的LED交通信号头(如图6)。每一个在额定电流为20mA时都有2000mcd的发光强度,并且观察角度为30度。在户外的音频传输距离能达到20m

7给出了LED交通灯的放射曲线,图8给出了系统的频率响应特性曲线。图9给出了另一种对信噪比测量的结果。图10显示了从23710KHZ的信号畸变测量。

4.   结论

发光二极管为许多生产项目包括长经营的有效期限、低维护、强度产生的最小的热

能和从当前TTLCMOS电路的低电流操作和兼容性的低电能消耗提供了许多好处。LED交通灯包含同样的好处,并且没有理由不交换除了在最初变化过程中对他们的投资。在本文中,这种想法是基于发光二极管的快速开关和可见光的调制。目的是发展一种新型的带LED交通灯的音频信息系统。这种可见光的LED音频系统利用视觉光射线。传输音频消息给一偏远地区的接收器。这种由高亮度可见发光二极管组成的系统能够为露天场所和无线电广播提供音频信号的功能。在短距离通信它能够用作一只信息信号灯。这个系统局限于视线的通信。然而,LED交通信号头的一致使用为同时用信号通知和通讯将开放许多新应用。

                                                                                       

交通灯控制的安全核心

 

摘要:实施安全的果仁的成功已经导致提议用果仁实施安全。本文通过交通灯控制的应用为安全果仁提出一特殊的可行性示范的建议。文章为交通灯控制从安全特性开始详细说明保持安全特性的一颗果仁。埃达里给出了果仁实施的草图并讨论了使用方法。本文所主出的贡献就是证实了果仁在时间、安全关键的应用方面的软件的一种可行性和合乎需要的技术。文章也说明了用什么样的正规方法帮助软件工程师开发和使用这样的软件。

 

引言

    软件被用于控制的应用的次数渐增是非常安全的,它意味着某些失败和所谓的安全故障,有不可接受的费用。例如,认为损害、环境损害和财政损失等等。计算机控制,安全纠正系统确实也可能失败。并且在这些系统里对软件技术的改进有强烈的兴趣。虽然多种技术已经被发展。这些技术仍受到很多的限制,比如,实现什么功能,而且需要增加为软件安全纠正的发展提供一些可靠的方法。在本文中,我们朝着考虑果仁应用的目标去工作,在享有在安全地区的成功时取得安全。本文最特殊的贡献是Rushby关于果仁观念的可行性示范。交通灯的控制被选来为示范应用。

安全纯粹是一个系统特性,软件本身是安全也是不安全的。然而,象在安全纠错系统中的任何一部分,软件都需要有被认为有包含安全的系统作用的某种特性。这些特性可以断定表示软件必须与它的输入、输出和当前的状态保持关联。例如,一个电抗线圈的安全特性系统可能被定义为如果电抗线圈过热则它就停止操作。为了使电抗线圈能够安全运行,用软件控制的电抗线圈必须使断定得到满意。电抗线圈传感器超出一临界值后电抗线圈就在一定时间间隔内发出一停止运行的命令。在这个例子中,安全设施被定义于与电抗线圈的毁坏有关,相关的安全设备。软件断定为调速控制器与传感器从输入到输出适时相关联。

这里所展现的软件是满足给出一套安全规定的特别系统的验证问题。在没有安全纠错的系统软件里,与功能需求有关的验证通常被通过非常正常的测试和调查结合起来进行。有些错误也即设计错误,避免了非正式的检验过程。这些残留的错误的结果必须被全部作为软件后期的使用费用。

软件在关键系统内,可直接获得保证。与安全需求相关的非正常的证实通常是不充分的。并且需要更多精密的技术。有时候受规章限制的机构需要更严格的方法制造更正式的可行性分析是困难的也是昂贵的。因为部分问题是软件总大小问题,一个有用的策

                                                                                      

略是组织软件,以使最严格的分析能够被限制在总体软件相对小的部分上,用标准的方法用于剩余物上。

果仁是分离软件重要的部分和不重要部分的有用组织。通常,果仁必须非常小,相对简单的单元,因为果仁在复杂性方面可比非核心软件有一点点实用好处。果仁必须为没有对关于可信赖性或适当的剩余的软件的功能做任何假设的整个系统保证一些特殊的行为。另外,安全核心的设计者做最坏情况下的假设,假设残余软件是由一目标是绕过果仁的不怀好意的敌人所写。

果仁在操作系统中作为一种保护有权使用计算机资源的方法和在安全应用中作为一种保护未被授权的信息流的方法有成功的历史。例如,果仁在一个多层的安全系统里能够阻止一个果仁在一多层安全系统能够防止用户被分类在一个安全级别直接在一个标有更高或不能比较的安全级别读数据或在一更低或不能比较的安全级别写数据。安全性核心所取得的关键产物是无论在果仁外面的表现怎样,果仁保持一个断定安全级的系统。也即,所有的直接信息流都是经授权的。(间接信息流或隐蔽的渠道都必须写明地址,通常通过一颗称为以一个被信任计算机基础的果仁的扩展。)

事实上,安全断定可能被看作一种安全设备断定的特殊情况来促使各种各样的研究人员建议为申请适用其他安全纠错软件的安全技术。尤其,果仁的想法已经为了安全起见陪用来考虑。安全果仁的建议在细微方面不同但是重用的方式。Rushby为安全果仁提出了一个精确的另人信服的理论例子。并且,本人采用Rushby的模型,在这开始被称为Rushby果仁。

对执行安全的Rushby果仁来说,必须拥有两个条件。第一个条件是,在系统安全操作的断定描述必须被定义在核心水平。换句话说,在安全断定的变量必须受果仁的控制。如果一安全断定的参数变量在果仁的控制之外,这个果仁就不独立了,不能保证安全断定。

Rushby果仁执行安全的第二种条件是,果仁的外部任意行为都不能用来伪造安全断定。Rushby通过说明在显示一颗果仁保持安全断定P来使这个条件正式化。它通常有必要表示为:

在这里,每一个op是在一个在果仁内或外的操作,而 是一系列的任意序列

Rushby简略地描述了一些果仁怎样被应用实践上的例子。本文所作出的贡献也是显示果仁在一个更实际可行性方面的例子。虽然交通灯控制可能似乎是一个太简单的应用,但有证据与之相反。例如,最近对安全纠错软件的验证技术评估就使用了交通灯控制问题的版本。在那项研究中所包括的大多数变量有潜在的安全关键错误,因此,表明在交通灯控制中有一定内在的困难。而且,在根本的安全断定的情况下存在或发生严重违反安全的现象还是简单的可以很好的去了解。例如,在Therac-25交通事故中,射速

                                                                                       

强度和转盘位置就不匹配了。最后,本文的核心是基于实际的交通灯说明,而且,结果

在某些地方比典型的交通灯专题研究要实际点。

这还有为工作一个更大的例子的其他原因。首先,可测量性对任何一个软件工程技术来说都是一个焦点。本文也给了一个实际系统的可测量性证实性例子。其次,这里所给出的例子是从安全断定的规格开始应用的,是通过一系统的正式说明书来进行的。这个系统满足安全断定,并且是实施用Ada(非正式)从正规说明里提炼来完成的。表述的是不完全正式、不同阶段,相当于Rushby0(非正式)到3(机器定理证明)正规刻度方法内的12。然而,作者相信,练习是易接近的。并且它证明了一个有效的正式使用方法,这个方法对掌握开发软件的工程师是很容易的。因此,本文所给出的例子不仅为建造一个安全核心而服务的模型,而且也是为有效使用正规方法的一个模型。

安全核心的基本原理

各种各样用来激发使用交通灯控制的因素被作为本文实施想法的例子。首先,交通灯控制是安全重要的,因为交通信号的安全失败可能直接导致交通事故。这其中包括人们的生命和财产。其次,虽然交通灯的基本操作是简单的,并且被普通了解的。但实际操作起来相当复杂。在这方面,交通灯控制类似于通信协议。即使简单的通信协议能有隐藏席位的大状态空间,但是是重要的错误。同样地,下面所列举的因素使交通灯的基本控制变得复杂。第三,在其他许多系统里,大功率的微处理器的适应性导致功能性的增加。交通灯控制变的越来越复杂,并且分析交通灯控制器的特性是相对苛求的。

交通灯控制器可能被实施作为实时中断驱动系统。交通灯控制器必须与各种各样的接口通信,这些接口包括从交通传感器输入,信号通过一个网络直接从面板上发布命令。功能和安全需求也许取决于不同的消息来源。例如,如果被请求超过了网络允许,那么请求改变光为一特殊方向也许由与安全原因被拒绝。但如果是人工在操作请求可能被接受。控制器的原代码可能超出10个兆字节,并且目标代码可能占用了从5佰万个字节到1个兆字节。

急救车有要求通行权的设备,因此,交通等的正常操作可能被先占有了。交通等的硬件也会出现故障。例如,通过短路或遭雷击;这些故障的反应必须是安全的,如果可能应该保持维护操作。因为中断服务是一个关心的设备。虽然,一些这类问题在交通灯标准中详细描述了,但这些标准不论及一些重大问题。例如,反应燃烧发出的信号只在第[7]篇参考文献里报道了。上述因素的组合意味着评定一指定的交通灯控制器的功能和安全。尽管基础的协议简单,但是一项非平凡的任务。虽然果仁不论及关于功能的正确性,但果仁简化关于安全的正确性评估。

交通灯的安全规定

    1给除了交通灯控制器运行的图解,下面安全要求是由[7]中交通灯标准而的来:

1.一些交通灯指示冲突,在不一致指示的运输流量可能会导致一场交通事故。因此,

                                                                                      

如果一对指示发生冲突,那么与其中一个指示相关的等必须为红灯。关系冲突列举了这

对相冲突的指示。(在这里,符号Z表明了高于这条线的变量,并且约束了低于这条件的变量。强制断定 表明了关系冲突是相对称的):

2.与一个图书指示相关的灯只能根据图1来改变。从一个安全的角度来看,对于一盏灯变红来说,灯必须为黄色。在转变之前必须经过至少几秒钟的黄色变化。因此,给司机发出紧急的红色警告。更进一步,对于一盏灯变绿来说,所有灯必须为红色,在转变之前必须经过至少几秒钟的红色清除。因此,给交叉路口清理机动车辆的机会。从一个功能的角度来看,对于一盏灯变为黄色,灯必须为绿色。在转变之前必须经过至少几秒钟的绿色变化。我们稍后返回到安全与功能透视的问题。

    考虑到闪烁的操作,从一个安全的角度来看,仅仅当全部指示灯都为红色,并且经过了一个合适的红色清除后,自动闪烁方式也许可以被选用。

    3.开始闪烁可能被认为是一种出态或一种错误的方式。这里也没有进入起动的前提闪烁的方式。如果由于一个错误开始进入了闪烁,系统然后必须保持至少最小周期的闪烁。

我们提议为交通控制器安装一个安全核心的软件。现有的交通灯包含一个在控制器外部的纠错故障处理单元的硬件设备(MMU[7,第4]MMU的主要目的是安全;MMU发现潜在的不安全的条件并且迫使交通进入一个安全状态。例如,开始闪烁说明是在一个不安全条件上的探测。明确地,MMU检查冲突信号以及不足延迟与黄色变化和黄色变化/红色清除的时间间隔有关。实际上,虽然MMU是一个为交通灯系统级的安全核心,但两个论据支持在控制器里增加安全核心。

首先,他在尽可能快的发现错误是非常有用的。控制器里的安全核心能够在控制器

                                                                                       

接口输出提出之前探测到受安全限制的紧急侵害。这个察觉意味着不安全的输出可能被

抑制,并且控制器会给一次恢复错误的机会。被截止的安全破坏来源,可能被记录为软件的设计缺陷。并且,查帐索引可能被存储为随后的分析。如果更换不安全的输出是实际上产生的,并且进入了MMU。然后,证据不再清楚,软件也就出错了。例如,短路可以改为是负责任的。同样,当MMU调停,司机们总是看见失败,然而当果仁调停时,司机们则看不到。

    其次,与MMU相比,控制器有更多的关于安全限制的详细信息。MMU实施相同的黄色改变和黄色改变/红色清除的延迟;两次延迟都必须是至少2.6秒。2.6秒适宜个下限,那适用于任何指示交通的任何交通灯,并且需要一般从一个交通灯转为另一个交通灯变化的延时,以及由相同的交通灯控制不同的方向。

    支持在控制器内部的安全核心的争论将不会减少对MMU的需要。即使所有的安全限制条件来自于系统特性,安全限制条件能够在不同的标准下强制执行。对于交通灯的离子,控制器内的安全核心能够要求在一个控制的标准下强制执行系统安全。并且,所提到的MMU基于一标准系统的安全核心。能够强制执行在交通灯标准所需要的系统安全。安全限制的实施在两种标准上都是有用的。

交通灯安全设备的必要条件

   让灯的类型来列举可能的交通灯背景和让指示类型来列举可能的交通知识。适合一些特殊的十字路口的类型。例如,在50向西路线通过交通,在123北部路线左拐。这里的规则可应用于任何十字路口,不管十字路口的复杂性。因此,我们忽略类型方向的细节:

虽然被要求决定用毫秒,但是时间在几秒钟内被非正式地指定。对目前实际应用来说,我们不必关于时间是怎样实现的细节。我们只能陈述时间间隔,譬如0s2.7s

1描述了列举的三种方式的模式类型,类型地位表明了行动是否正常运行。是否一些有关安全的错误已经被检测一错误的情形总是与相关方式开始闪烁。

把对待安全核心作为一个抽象的数据类型是有用的,并且我们给错一个与证据相

                                                                                      

对,为这个抽象数据类型的规格的基本模型。下面所给出的交通灯核心图解定义了果仁

的状态。对交通灯核心的各个组成部分的解释(组分出现膏腴中间线)和各个限制在交通灯核心的组成部分(限制出现在中间线之下)出现在图解之后。

灯的组成部分在设置方向上为每个方向分配一个信号,对于普通操作和自动闪烁方式。第一不变式保证为每一对有冲突指示的灯至少有一个为红色。有冲突的指示灯在开始闪烁方式不是一个问题。

在交通灯核心方式和状态组分被第二种不变式给抑制了。因此,错误的状态要求即那些方式开始闪烁。零部件故障时间记录了从确定给最近发生错误的状态的时钟价值(参考下面的记录错误和清除错误的操作)

为了帮助时间限制的评估,对每个灯的最后更新时间已经记录在最后改变的组成部分里。下面定义了被应用在预处理操作的与最后改变的组成部分相关的时间限制。

为处理时间要求,我们形式化把极小的信号周期作为交通灯指示的功能。时间间隔的时间限制条件取自于交通灯控制的标准[7,第3.5.3.1节和第4.4.2]

我们定义安全性断定为P,核心的断定就必须维护任何一个序列的操作。如四个分开的断定:

,这里的P1P2P3P4在下面会给出说明。

P1

在正常的操作和自动闪烁的模式下,在任何一个有冲突的指示总有一盏灯是红色的。在

                                                                                       

这个断定的交通灯核心看来是一个不变量。下面我们重述依次:

P2

除了开始闪烁的方式外(在这里灯的设置是不重要的),在允许任何方向的灯从红色转换成其他颜色之前,在有冲突指示里都有一次红色清楚延迟。必须的断定为:

   (在与预先准备的Z变量操作之后表示零部件指示状态,在操作之前没有准备的变量表示零部件状态。)

P3

如果是正常操作模式,那么,在允许任何方向的灯从黄色变为其他颜色之前,都有一次黄色变化的延迟。必须的断定为:

P4

如果由于一个错误的结果进入到了开始闪烁的模式,那么这个模式不会改变知道最小闪烁周期中指为止。

核心规格

正如图1所显示的,最初的模式是开始闪烁,交通灯初始化操作定义了交通灯核心最初的状态

(初始化被看作为一个只有在操作后的状态的操作,因此,必须预先准备写入模式和状态。)错误时间、灯和最后改变的组成部分都不必在交通灯初始化被限制。当然,给了模式和状态的限制。剩余的组成部分的全部可能价值满足交通灯核心的不变量。

我们接下来详细说明核心操作,简短一点,我们忽略了错误情况的详细说明。也即,所要做的就是如在它的前提不满意的时候,一个操作就被请求应用标准的说明方法。特

                                                                                      

别地,对于一次不满意前提的操作的情况,一错误的操作就被定义来说明那些核心的状

况不变换和那些适当的误差报告被产生。

在一外在误差的情形下,比如短路,被检测到,错误寄存器的操作在任何时候都应用到。在错误寄存器的始终时间被称为记录在错误时间的组成部分里。(交通灯核心定义了两种状态,操作之前的状态被应用,操作后的状态被应用,并且规定在两种状态都坚持有不变量)清除错误被称做为从一个错误寄存器命令来恢复。

转变为普通操作的模式如下所示。当普通操作在交换模式时所有方向的灯都变为红色,并且,延迟改变组成部分被设置为每个方向来反映当前的时间。

普通操作模式的操作被定义来调节图1的结构。所有的三个操作,变绿、变红和变黄有同样的构造,象在普通操作计划捕获的那样。普通操作有前提条件,当前的模式是普通操作并且最后改变的快速条件被更新为方向d?。(方向表示了变量d?是一个输入。)

变绿、变红和变黄的规则如下:

 

                                                                                      

变绿的前提条件是方向d?的灯是红色,即所有冲突方向的灯都是红色,并且所有冲突方向的红色清楚延时间隔已经通过了。

变红的前提条件是方向d?的灯是红色,即所有冲突方向的灯都是红色,并且所有冲突方向的红色清除延时间隔已经通过了。

尝试用同样的方式来说明变黄的操作:

变黄的前提条件的草稿说明是方向d:的灯是绿色。并且在方向d?的最后的绿色至少在指定的周期内灯必须为绿色。

当不满足 的前提条件时变为黄色。也不会造成安全故障。实际上,有一些情况,就如当违反与最小绿色有关的前提要求时,把交通灯通行权让给一紧急救援车的一抢先占有信号。因此,与最小绿色有关的时间需求不属于安全核心。变为黄色的说明如下:

自动闪烁操作使用一个红灯和黄等闪烁的结构,并且或许也有一些不亮的灯[7,第3.9.1.2],由自动闪烁结构来描述:

 

 

 

                                                                                      

我们详细说明了从开始自动闪烁到自动闪烁模式的操作。自动闪烁的模式能够从普通模式进入。(结束自动闪烁是通过开始普通操作计划来完成的。)

进入自动闪烁的前提条件是当前的模式为普通操作模式。即所有的信号灯是红色,并且适合于与每一个信号有关的红色清除间隔已经通过。

安全核心的分析

这部分的目的是证实先前提出的维护安全断定的核心说明。这里有两个方面来分析这个核心。一方面是应用正式方法的标准的方式来分析核心。另一方面是考虑到关于从P1P4安全断定的任意序列的操作的影响。

Z里,与例子相关的标准分析程序可能分为三种:初始化的检测、前提条件的研究和总体分析。初始化的检测保证初始状态满足一常数。它也有必要保证维持残余操作的常量。在Z里,常量被明确地断定在‘以后的’状态,因此,前提条件的调查集中改为保证操作是否是‘老实的’,通过这种方式它意味着前提条件是清楚的。前提条件的调查也帮助了执行的人。一执行人面对一个‘不诚实’的情况时很可能忽略为一些前提条件的部分的检查,并且因此产生一个说明无效的提炼的执行。最后,总体分析说明了一个操作是为所有安全常量状态而定义的。

详细的初始化检测,前提条件的研究和总体分析在交通灯核心都没有给出,因为他们不是本文最初的中心要点。然而,注意那些正式证据需要一些修正的安全断定是有趣的。例如,前提条件的简化在变绿的操作上结果是要求对不反射的冲突的额外的限制。因为与自己相冲突的方向的灯必须总是红色的。

一个完成标准分析程序的重要方面是做如此的简化是否会使核心维持安全的断定分析。很明确的,这些程序所提供的不变量保证,的确是个不变量。不变量的初始化设置,

                                                                                      

核心的操作很明确是保持不变的,并且非核心操作。那些被假定为没有更新在不变量里的有权使用的变量不能影响不变量。

考虑到P1P1是交通灯核心里的一个不变量。并且因此标准的分析程序保证了P1总是满足条件的。通常:

考虑到P2,他足够用来考虑在一些任意序列 的最后操作。来反映在任何一个灯被允许从红色变为其他颜色之前一个适当的红色清除周期已经通过。我们发现相关的操作,即满足P2先行的操作。特别地,相关的操作应用在当模式不是开始闪烁,并且某一方向的灯从红色变为其他颜色时。检查显示了两种这样的操作,变绿和开始自动闪烁。

因此,它必须被显示变绿和开始自动闪烁来维持P2。正式的证明陈述是:

在变绿的情况下,被改变的唯一的灯是为了方向d?并且因此P2仅仅需要被考虑在d1=d?的情况。P2简化为:

他在断定变绿之前已经暗示了。

在开始自动闪烁的情况下,我们能够考虑一下P2的加强说明:

他在开始自动闪烁里是个明确的断定。

因此我们确定了:

考虑到P3,检查反映了与P3相关的唯一操作是变红。我们必须指出变红来维持P3。正式的证明陈述为:

接下来的证明直接从 的变红断定。因为d=d?是在P3唯一感兴趣的d。这样我们已经确定:

最后,考虑到P4,他唯一相关的操作就是清除错误。接下来的两个定理是明确的:

我们推断,交通灯的核心说明组成了一与安全断定 有关的Rushby核心。我们只提出非正式证据的草图。通常,Z规格说明比适合产生服从与机器操作的正式证据更有益于产生打算供读者使用的正式证据。然而,正式证据决不会被排

                                                                                      

除。

作为一个分开的确认练习,我们应该显示那被Z规格说明描述的操作与在图1的状态转换图相符。确认需要在状态图表和交通灯核心的操作之间的两个方向显示通信。因为我们没有为在这个例子里使用的状态转换图提供正式的语义学。这次证实必须被非正式地携带。例如通过一个检查过程。

执行和应用

安全核心能够以各种方式来执行。一种形式方法是执行数据和操作提炼,在这里更多抽象化的数据结构被用更接近于事实的东西有系统替换。例如,接收机作为(单射的)顺序被典型地事实。精练接近产生一套证据义务,特别是‘初始化’义务、‘适应性’义务和‘正确性’义务,统一地保证,准确的说明是原先说明的合乎要求的实施。

对我们来说,安全核心的说明相当简单,并且在Ada里,我们直接着手实施,对交通灯控制来说,支持同时发生是适当的一—实际上交通灯是同时实施的——因此我们选择分配给程序的一个任务来实施。通过交通灯核心的状态描述与Ada包一起实施,并且每一个操作与一称作任务的进入一起实施。即交通灯核心任务实施的Ada规格说明部分在下面给出了。

PACKAGE TrafficLightKernel IS

………

TYPE Direction IS (NorthSouth, EastWest)

………

TASK TrafficLightKernelTask IS

ENTRY RegisterError;

ENTRY ClearError;

ENTRY BeginNormalOperation;

ENTRY ToGreen (d : IN Direction);

ENTRY ToRed (d : IN Direction);

ENTRY ToYellow (d : IB Direction);

ENTRY BeginAutomaticFlash;

END TrafficLightKernelTask;

END TrafficLightKernel;

实施的Ada主要部分说明如下所显示的:

PACKAGE BODY TrafficLightKernel IS

TYPE Light IS (Red, Yellow, Green, Dark);

TYPE ModeType IS (Ok, Error);

TYPE StatusType IS (NormalOperation,

                                                                                      

AutomaticFlash, StartUpFlash);

    ……

mode : ModeType;

status : StatusType;

lights : ARRAY (Direction) OF Light;

lastchanged : ARRAY (Direction) OF Time;

……

TASK TrafficLightKernelTask IS

……

LOOP

SELECT

……

OR ACCEPT ToRed (d : IN Direction) DO

IF PreToRed (d) THEN

lights (d) := Red;

lastchanged (d) := Clock;

ELSE -- raise exception /

-- produce audit trail /

-- return error code

END IF;

END ToRed;

……

OR TERMINATE;

END SELECT;

END LOOP;

……

END TrafficLightKernelTask;

BEGIN -- Implement TraficLightKernelInit

mode := StartUpFlash;

status := Ok;

END TrafficLightKernel;

代码在上面的数字选录说明了从ZAda几方面的转化列举的Ada类型直接执行Z数据类型定义。即,方向、灯、模式和状态。初始化,由交通核心初始计划详细说明的,被与交通灯核心的程序包的初始代码一起执行。前提条件在进入被接受后被检查;侵害

                                                                                      

导致维护安全不变量的一些未指明的行动,这样的出现是一个例外。一个查帐索引就产生了,并且或者一个错误的编码被返回到访问者。

在例子中,变红的前提条件是通过提前变红的能来检查的。准备变红之前是一个变红之前的指示实施。在前提条件的调查期间的计算显示如下:

准备变红的实施如下所示。在准备变红里附加的结构是使适应如果不是普通操作模式,灯和最后的变换就可能没被定义的事实。

FUNCTION  PreToRed (d : IN Direction)

RETURN BOOLEAN IS

BEGIN

IF mode = Normaloperation THEN

RETURN (lights(d) = Yellow AND

Clock-lastchanged(d)>=YellowChange(d));

ELSE

     RETURN (FALSE) ;

END IF;

END PreToRed;

我们再一次申明,譬如变红必须是诚实的规格是尤其重要的。所以,变红的实施来自于一个直接了当的方式,并且仍然保证变红规格是有根据的说明。

核心的应用

核心可能被应用到残余的软件,在那交通灯功能需求被执行。例如,那些实施可能服务由汽车抑压的压垫与其他交通灯同步阶段,或者满足有急救车优先权要求所发出的请求。所有这些情况,对一特殊的灯的任何变化都需要一个与进入交通灯核心任务相关的命令。由于核心,安全设施断定维护不管有多么复杂的残余的实施。没有核心,发现是否甚至简单的实施保持安全特性可能非常难。例如,LevesonChaShimeamAda提出了为坐汽车旅行的察觉传感器服务请求的一实施。LevesonChaShimeam用这个例子来说明为实施任务的软件错误分析(SFTA)技术。

LevesonChaShimeam的例子是一个交通灯。在那里的方向类型在我们的模型里有两种价值,东西方向和南北方向。在[5]里的例子,一个进入服务请求的任务是由东西方向交通所产生的另一进入服务请求的任务是由南北方向交通所产生的。从这里核心

                                                                                       

的详细说明来看,故障情况是通过[5]里的软件纠错分析来发现的。以下面的进入掉用序列来显示(在这序列开始时,东西灯是绿色的,南北灯是红色的。)

A.ToYellow (EastWest); delay(i.O)

- [5, figure 18, line 341

B. ToRed (EastWest); ToGreen (NorthSouth);

- [5, figure 18, line 351

c. ToRed (NorthSouth) ; ToGreen (EastWest) ;

- [5, figure 18, line 331

如果通过[5]软件纠错分析的发现,C步骤出现了一个问题。尤其,在步骤C里违反了变红的前提条件。因为南北方向的灯还没有设置成黄色。(同样,在步骤BC都违反了变绿的前提条件,如果在东西方向和南北方向红色清除不为0,然而,这些限制安全在[5]里有被考虑过)

我们指出,如果在LevesonChaShimeam例子里的直接操作被在这里指定的被调用进入的安全核心指定所代替,然后,所有的安全设施鼓掌的表现正如断定P来保证在执行时间时识别所定义。安全纠错分析没有任何完全性保证,因此,一些有关的错误逃过了分析是有可能存在的。观察报告没有暗示安全纠错分析不应该被使用,而是核心的一种补充方法。

 

注意这里提出的分析主要集中于核心的说明和对在代码上的更大的有限范围是重要的。对一个交通等的安全操作相关的很多问题根本没被处理,象没有的零不见(灯泡)的处理。硬件错误的容忍,不适当的感觉输入和果仁从不能信任应用代码的划分那样。要求是简单的,对正规方法的使用和一安全果仁提供增加安全特性的要求软件已经被明确表达了。并且导致的系统实际上满足这些特性。

 

为了证实Rushby核心的可行性,我们展示了一为交通控制的安全核心。安全需求从[7]里的交通灯标准提炼出来,在Z里详细说明,并在Ada里实施。分析表明,核心为交通灯控制安全维持了四个有必要的断定。我们以讨论在控制器剩余的软件的如何使用果仁来结束。通过举例练习显示,果仁的确是一可行性技术适合保证安全和正规方法帮助软件工程师建造一颗果仁。目的是因此而鼓舞安全果仁和正规方法在其他应用软件内的使用。

 

     作者很高兴感谢Timothy GorgosJohn KnightMelissa MooreJeff OffultMichal RittlerKevin Wika,和匿名的调解人‘O’的鼓舞对这篇文章的改进。作者也很高兴感谢来自在1994年秋季学习学生为软件工程在正规方法和模型的反馈,在那

                                                                                      

里,交通灯核心作为一项学期设计。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                                                                                      

查看评论 已有0位网友发表了看法
  • 验证码: