实时嵌入式系统模型校验技术

发布者:BlissfulCharm最新更新时间:2011-11-15 来源: 电子产品世界关键字:嵌入式系统 手机看文章 扫描二维码
随时随地手机看文章

模型校验是最成功的需求验证工具。模型校验的基本原理如图1所示。模型校验工具的输入是系统需求或设计(称为模型)以及最终系统期望实现的特性(称为“规 范”)。如果给定的模型满足给定的规范,那么工具将输出yes,否则将生成反例。反例详细描述了模型无法满足规范的原因,通过研究反例,可以精确地定位模 型的缺陷,如此反复。该方法的原理是通过确保模型满足足够多的系统特性以增强我们对模型正确性的信心。系统需求之所以称为模型,因为这些模型表征的是需求 或设计。

  

 

  图1:模型校验方法。

  那 么,哪种规范化语言可以用来定义模型呢?答案当然不是唯一的,因为不同应用领域的需求(或设计)差异很大。例如,银行系统和空间系统在系统规模、结构、复 杂度、系统数据的属性及执行操作上的需求差异就很明显。相反,大多数实时嵌入式或安全临界系统都面向控制,而不是数据,这意味着这些系统的动态特性远比业 务逻辑(由系统维护的内部数据的结构及操作)重要。这些基于控制的系统可以应用于诸多领域:航天系统、航空电子、汽车系统、生物医学仪器、工业自动化及过 程控制、铁路、核电站等。甚至数字硬件系统的通信和安全协议均可视为面向控制的系统。

  对于面向控制的系统,可以采用有限状态 机(FSM)定义需求和设计,这是一种得到广泛认可的抽象表示方法。当然,光靠FSM并不能对复杂的实际工业系统进行建模。我们还需要:1. 能将需求模块化并区分需求等级;2. 能合并各组成部分的需求(或设计);3. 能通过更新预先规定的变量和设备,防止可能出现的异常。

  校验设计需求时,通常可以通过回答一些问题得到结果。下面给出了校验需求时最常问的一些问题:

  * 设计需求是否准确地反映了用户需求?需求中的每一事项是否与用户的期望一致?需求是否包含用户所要求的全部内容?

  * 设计需求是否表述清晰并无异义?是否能被用户很好地理解?

  * 设计需求是否具有灵活性和可实现性?例如设计需求是否模块化并具有良好的架构,从而有助于设计和开发?

  * 设计需求是否能轻松地定义验收测试示例以验证设计实现与需求的一致性。

  * 设计需求是否只是概要地描述而与具体的设计、实现及技术平台等无关,从而使得设计人员和开发人员具有充分的自由度实现这些需求?

  回 答这些问题当然绝非轻而易举而且也没有任何捷径可循,但如果需求成功地超越了这些条条框框,那么无疑为优良系统的设计打下了坚实基础。尽管可以利用类似 UML这样的建模工具,但仍然需要确保设计需求的质量。这个过程需要投入大量精力和时间,包括各种形式的审查,有时甚至还需要进行部分原型设计。此外,需 求设计中采用多种表示方法(如UML中的表示方法)通常又将引发其他的问题,例如:

  * 设计需求需要使用哪种表示方法?

  * 如何确保不同表示方法的描述的一致性?

  

 

  图2:简单的双水槽泵控系统。

  设计需求缺陷的成本通常很高,至少需要重设计并进行维护。错误的需求导致错误的系统行为并显著增加成本,如丧失产品的时效性和本质特征,而对于工作在实时环境下的嵌入式安全临界系统更是如此。为确保系统设计的质量,也需要考虑类似的问题。

  改 进需求和设计的一条途径是利用自动化工具对需求和设计各环节的质量进行校验。那么,哪种工具最适用呢?一般而言,校验用英文描述的需求或设计极为困难。因 此,必须采用一种清晰严格且无二义的规范化语言对需求进行描述。如果这种描述需求和设计的语言具有明确的语义,那么完全可以开发出自动化工具以分析这种语 言描述的设计需求。这种采用严格语言描述需求或设计的基本思想已成为系统验证的基石。

简单的系统模型实例

 

  首 先,让我们考察一下如何利用模型校验工具验证简单的嵌入式系统特性。为此,我们采用Carnegie-Mellon大学开发的符号模型验证器 (symbolic model verifier,SMV)作为模型校验工具。当然,我们也可以采用其他的模型校验工具描述该模型。文章结束部分列出了可选的模型校验工具及获取方式。

  如 图2所示,一个简单的泵控系统通过泵P将源水槽A中的水传送至接收水槽B。每个水槽都具有两级刻度线:一个用来检测水位是否为空(Empty),而另一个 用来检测水位是否已满(Full)。如果水槽的水位既不为空也不为满,那么水槽刻度线设定为ok;换言之,即水位高于空刻度线但低于满刻度线。

  最 初,两个水槽均为空。一旦水槽A的水位值为ok(从空开始),启动泵并假定水槽B尚未为满。只要水槽A不为空且水槽B不为满,泵将持续工作。一旦水槽A为 空或水槽B为满,泵将停止工作。一旦泵启动(或停止),系统将不会尝试停止(或启动)泵。虽然这个示例非常简单,但可以很容易地扩展为控制多个源水槽和接 收水槽的复杂泵管线网络控制器,如应用在水处理系统或化工厂中的控制器。

  表1:SMV模型描述和需求清单。

  MODULE main

  VAR

  level_a : {Empty, ok, Full}; -- lower tank

  level_b : {Empty, ok, Full}; -- upper tank

  pump : {on, off};

  ASSIGN

  next(level_a) := case

  level_a = Empty : {Empty, ok};

  level_a = ok & pump = off : {ok, Full};

  level_a = ok & pump = on : {ok, Empty, Full};

  level_a = Full & pump = off : Full;

  level_a = Full & pump = on : {ok, Full};

  1 : {ok, Empty, Full};

  esac;

  next(level_b) := case

  level_b = Empty & pump = off : Empty;

  level_b = Empty & pump = on : {Empty, ok};

  level_b = ok & pump = off : {ok, Empty};

  level_b = ok & pump = on : {ok, Empty, Full};

  level_b = Full & pump = off : {ok, Full};

  level_b = Full & pump = on : {ok, Full};

  1 : {ok, Empty, Full};

  esac;

  next(pump) := case

  pump = off & (level_a = ok | level_a = Full) &

  (level_b = Empty | level_b = ok) : on;

  pump = on & (level_a = Empty | level_b = Full) : off;

  1 : pump; -- keep pump status as it is

  esac;

  INIT

  (pump = off)

  SPEC

  -- pump if always off if ground tank is Empty or up tank is Full

  -- AG AF (pump = off -> (level_a = Empty | level_b = Full))

  -- it is always possible to reach a state when the up tank is ok or Full

  AG (EF (level_b = ok | level_b = Full))

  该系统的模型的SMV建模如表1所示。起始的VAR部分定义了系统的3个状态变量,变量level_a和level_b分别记录了上层水槽(upper tank)和下层水槽(lower

  

 

  图3:泵控系统执行树的初始部分。

  tank)的当前水位;在每个“时刻”,这两个变量都将分别赋值,取值范围为Empty、ok或Full。变量pump表征了泵的启动(on)和停止(off)。

  系 统状态就可用上述3个变量的不同取值来表示。例如(level_a=Empty, level_b=ok, pump=off)和l (level_a=Empty, level_b=Full, pump=on)就可以表示系统状态。在靠近结尾的INIT部分,定义了这些变量的初始值(这里,最初假定pump的初始值为off,而其他两个变量则可 取任意值)。

  ASSIGN部分定义了系统如何从一个状态迁移到另一个状态。每个next语句都规定了特定变量的取值变化。所 有这些赋值语句都假定可以并行执行;next语句定义为在该部分执行所有赋值语句后的最终结果。下层水槽的状态可以从Empty状态迁移到Empty或 ok状态;从ok状态迁移到Empty或Full状态,或保持为ok状态(如果pump的状态为on);从ok状态迁移到ok或Full状态(如果 pump的状态为off);如果pump状态为off,那么下层水槽在Full状态无法发生状态迁移;如果泵状态为on,则可迁移到ok或Full状态。 上层水槽也可规定类似的操作。

  在系统内部,大多数模型校验工具通常会将输入模型扩展为具有Kripke结构的动态系统。扩展 过程包括在EFSM中除去分层结构、并行成分以及状态迁移时的告警和操作。Kripke结构中的每个状态实际上都可用每个状态均赋值的元组(tuple) 来表示。Kripke结构中的状态迁移表征了一个或多个状态变量取值的变化;而且还可以比较通过扩展给定模型而得到的Kripke结构,对指定的系统属性 进行校验。然而,为了更好地理解每条属性语句的含义,Kripke结构还必须进一步扩展为无限树形结构,其中树形结构的每个分支都表征了系统可能的执行操 作或行为。

路径和属性规范

 

  最开始,系统可以处于9个状态中的任意一个,其中对于A和B的水位没有任何限制,而pump的初始状态假定为off。这样,我们就可以利用有序元组

  这 些状态可以无限执行(或运算)树状结构的形式进行排列。如图3所示,树根为我们所选的初始状态,任意状态的分支均表示下一个可能的状态,而每个系统执行都 是执行树状结构的一条路径。总体上,系统可以具有无限多个这样的执行路径。模型校验的目标就是检验执行树状结构是否满足用户指定的属性要求。

  现 在的问题在于,我们究竟该如何描述执行树状结构路径(及路径上的状态)的属性。从技术的角度看,运算树逻辑(Computation tree logic, CTL)是时序逻辑(time temporal logic, TTL)的一个分支,其简单性和直观性非常适合于本例。CTL是常用的布尔命题逻辑(Boolean propositional logic, BPL)的扩展,除了支持包括“和(and)”、“或(or)”、“否(not)”、“蕴涵(implies)”在内的BPL逻辑连接操作外,还支持辅助 的时序连接操作。表2所示为 CTL 中的某些连接操作。

  表1和图4说明了CTL中一些基本时序连接操作的直观意义。一般地,E(就某个路径而言)和A(就所有的路径而言)表示从某个状态开始的路径数目。F(就某个状态而言)和G(就所有状态而言)表示某个路径中的状态数目。

  

 

  图4:状态s0处满足CTL公式的直觉推导。

  对 于指定的属性以及对应于系统模型的运算树T(可以是无限运算树),模型校验算法可以通过校验T判断T是否满足该属性。例如,考虑指定的属性AF g,其中g表示与任何CTL连接无关的命题公式。图4b给出了运算树T的一个示例。如果属性AF g在根状态s0的值设定为true(即如果T中的每条路径中有状态开始于s0以使公式g为true),那么对于该运算树TAF g的值为true。如果g在s0为true,那么就实现了预定目标,因为s0将会出现在从s0开始的每条路径中。但如果g在s0状态下不为true,由于 从s0开始的路径要么是s0的左分支,要么是s0的右分支,因此如果在运算树T中s0的两个分支都为true(通过递归校验),那么该属性在s0处也为 true。

  图4b显示,g在左分支根部为true(球体填充为黄色)。因此从s0到左分支单元的所有路径以及整个左分支树都 满足该属性。现在假定g在s0的右分支根部不为true;因此对于所有的子单元都将递归检验该属性。图4b显示,对于s0右分支的所有子单元,g都为 true(球体填充为黄色),因此对于s0的右分支树该属性为true。这样,对于s0的所有子分支树该属性为true,从而s0也为true。

  图4 归纳了类似的其他属性(例如EG g和AG g)校验原理。当然,实际应用中的模型校验算法远比这复杂;这些算法利用一些巧妙的简化手段对状态空间进行精简,从而避免了对那些确保为true的属性进 行校验。一些设计良好的模型校验器可用来校验状态数高达1,040个的状态空间的属性。在SMV中,待验证的属性可由SPEC部分的用户指定。逻辑连接 “否”、“或”、“和”和“if-then”可以分别用!、|、&和 ->表示。CTL时序连接则表示为AF、AG、EF、EG等。属性AF(pump=on)表示对于每条开始于初始状态的路径,路径中有一个pump =on的状态。在初始状态,该属性显然为false,因为从初始状态开始有一条路径pump的值始终为off(例如,当水槽A永远保持为空时)。如果希望 在SPEC部分中描述该属性,那么SMV将为该属性生成如下反例。循环表征了开始于初始状态的无限状态序列(换言之,即路径),这样水槽B在该路径下的每 个状态均为Full,因此pump=off。

  与严格的规范化语言相结合,可以下列执行序列表示:

  state 1.1:

  level_a = Full

  level_b = Full

  pump = off

  state 1.2:

  属性AF(pump=off)具有两重含义,表征的是对于每条开始于初始状态的路径,路径中有一个状态中pump=off。该属性当然在初始状态为true,因为初始状态本身(所有路径均包含初始状态)pump=off就成立。

  

 

  表2:CTL中的一些时序连接。

  时 序连接和逻辑连接相结合,可以得到一些有趣的复杂属性。属性AG((pump=off) -> AF (pump=on))表示如果pump=off,那么最终pump=on这种情形总会发生。初始状态,该属性显然为false。属性AG AF (pump=off -> (level_a=Empty | level_b=Full))表示如果底层水槽为Empty或上层水槽为Full,那么pump将总是为off。属性AG (EF (level_b= ok|level_b=Full))表示总是会出现上层水槽为ok或Full的情形。

  实际应用中的模型校验

  模型校验已被证明是对各类系统(尤其是硬件系统、实时嵌入式系统和安全临界系统)进行需求和设计验证的有效工具。例如,SPIN模型校验器曾用于验证NASA的深空1发射方案中的多线程规划执行模型并成功地发现了5个先前未知的并发缺陷。然而,实际使用模型校验时还需要注意下面一些主要问题:

  1. 每种模型校验工具都采用特有的建模语言,这些建模语言一般都无法将不规范的需求描述自动转化为规范化语言。这样的转化显然需要手工完成,因此很难检验模型 是否正确地表示了建模系统。实际上,指定的建模表示法往往很难甚至根本不可能对部分系统需求进行建模。2. 专用工具属性规范表示法也存在类似的问题,属性表示法通常可以是CTL、CTL*或命题线性时序逻辑(PLTL)的变形。某些需要验证的属性很难甚至根本 不可能用该表示法进行描述。3. 模型系统中的状态数量也可能极为庞大。尽管模型校验算法可以利用一些技巧减小状态空间的复杂度,但模型校验器仍然需要很长的时间才能验证一个指定的属性或 者决定“放弃”验证该属性。这时,用户将不得不投入更大的精力,独立验证模型的各部分或者通过减小变量的取值范围以达到简化状态空间的目的。

  尽管如此,模型校验仍被证明是无与伦比的系统需求或设计验证工具。该工具能在需求或设计的早期阶段发现瑕疵,因此能极大地节省后续的开发时间。

关键字:嵌入式系统 引用地址:实时嵌入式系统模型校验技术

上一篇:超薄磁力搅拌器的设计与实现
下一篇:解决软硬件接口的嵌入式系统设计实例

推荐阅读最新更新时间:2024-03-30 21:50

嵌入式系统架构:RISC家族之MIPS处理器
  MIPS是美国历史悠久的RISC处理器体系,其架构的设计,也如美国人的性格一般,相当的大气且理想化。MIPS架构起源,可追溯到1980年代,斯坦福大学和伯克利大学同时开始RISC架构处理器的研究。    MIPS公司成立于1984年,随后在 1986年推出第一款R2000处理器,在1992年时被SGI所并购,但随着MIPS架构在桌面市场的失守,后来在1998年脱离了SGI,成为MIPS技术公司,并且在1999年重新制定 公司策略,将市场目标导向嵌入式系统,并且统一旗下处理器架构,区分为32-bit以及64-bit两大家族,以技术授权成为主要营利模式。    MIPS除了在手机中应用得比例极小外,其在一般数字消费性、网络语音、
[嵌入式]
基于CPLD和Embedded System的LED点阵显示
摘要:采用自顶向下的设计思想,综合运用EDA 技术、CPLD技术和共享式双口RAM,解决了大屏幕LED点阵显示屏无闪烁显示的技术难题。给出了系统设计方法及实际电路。 LED点阵显示屏是显示公共信息的一种重要显示终端,其中大屏幕LED点阵显示屏在许多场合得以应用。大屏幕显示所采用的技术比中小屏幕显示难度更大,因为其屏幕大、LED点数多,要求在极短的时间内刷新每个点,使得其扫描速率必须非常高,所以只有设计合理的控制电路才能达到这个要求。本文着重解决大屏幕LED点阵显示这一技术难题。通过采用自顶向下的设计思想,综合运用高速CPLD、双口RAM等技术和芯片,设计出了大、小屏幕皆适合的显示控制电路。特别是利用单片机、CPLD与双口
[工业控制]
基于CPLD和Embedded System的LED点阵显示
基于μC/OS-II嵌入式系统的EPA通信协议的实现方案
  1. 引言   《用于工业测量与控制系统的EPA系统结构与通信规范》(以下简称EPA)是基于工业以太网的实时通信规范,它有效地解决了以太网通信的确定性通信问题,进而可以应用于多种工业领域,构成各种工业测量与控制系统。该规范将收录在制定中的实时以太网国际标准IEC61784-2中,成为我国首例具有自主知识产权的现场总线标准;开发和实现EPA通信协议是应用EPA系统的基础和前提。   μC/OS-II是一种占先机制的实时多任务嵌入式操作系统,具有源码公开、可移植、可固化、可裁剪等特点,已经得到广泛的应用。相对于同为源码公开的μClinux,它具有内核小、实时性高等特点,更适合于控制应用。μC/OS-II作为EPA通信协议的实现平台
[单片机]
基于μC/OS-II<font color='red'>嵌入式系统</font>的EPA通信协议的实现方案
54M无线网络适配器在嵌入式系统中的研究与应用
目前,嵌入式技术已广泛应用于工业控制、消费类电子产品、通信系统等各类市场产品。并且随着互联网的日益发达,具有无线接入功能的嵌入式系统更加具有发展前景。本文将介绍支持IEEE 802.11g协议的54M USB无线网卡在嵌入式系统上的应用,嵌入式系统使用了ARM9系列的S3C2410处理器。 1 系统硬件体系结构 1.1 系统结构 系统总体结构如图1所示。 系统核心芯片采用三星公司的S3C2410处理器,该处理器是三星公司的一款基于ARM920T内核的16/32位RISC嵌入式微处理器,主要面向手持设备以及高性价比,低功耗的应用,运行的频率可以达到203MHz。该处理器集成了很多重要的功能模块,并且支持多种总线。处理器集
[单片机]
54M无线网络适配器在<font color='red'>嵌入式系统</font>中的研究与应用
泰克混合域示波器具有无线功能的嵌入式系统中的应用
在下面的讨论中,被测器件将使用一块灵活的无线电集成电路,其已经集成到无线电测试模块中,即Microchip Technologies MRF89XM8A。这个模块采用MRF89XA集成电路无线电及滤波和天线匹配。为进行演示,这个模块安装在Microchip Explorer 16电路板上,与电脑一起使用,对无线电设置进行编程。 为演示使用开关电源对无线电供电的影响,我们使用升压转换器集成电路Microchip MCP1640,其集成到MCP1640EV评测电路板上。这个转换器以大约500 kHz频率开关,这一频率对开关稳压器十分常见。它可以提供无线电模块所需的3.3 V输出电压,支持最低0.8 V的输入电压。这意味着可以从一个电池单
[测试测量]
基于ARM嵌入式系统与Internet网络技术实现设备的远程实时监测
目前国外对于大型光电望远镜系统所采用的观测站远程监控系统已经比较完善,但是国内还没得到很好的应用。本课题将设计一个观测站远程监控系统,把ARM- Linux嵌入式系统应用到该系统中,实现一个在线实时监测、控制于一体的低成本远程监控系统。随着嵌入式系统的发展越来越成熟,嵌入式处理技术很好地解决和实现了高低端系统的实时性、多任务性、大数据量处理的要求。嵌入式Internet技术的产生,使得设备可以轻而易举地接入Internet网络,实现设备上网和设备的远程监控。短消息服务(SMS)已成为一种成熟的技术,其业务已为人们广泛使用和喜爱。由于GSM网络覆盖面广,可靠性高,采用无线网络远程监控也有很广阔的应用前景。 1、系统工作原理及硬件
[单片机]
基于ARM<font color='red'>嵌入式系统</font>与Internet网络技术实现设备的远程实时监测
基于嵌入式系统的手机编程开发平台
引 言 随着移动通信技术的飞速发展,手机已经从单一的电话通信设备转变为信息网络终端,因此,近年来手机编程已经成为一项重要的技术。手机是一个高新技术的集合体,包含了移动终端、嵌入式系统、数字信号处理以及通信协议设置等多项技术。手机编程开发平台是集合了通信技术、嵌入式技术、电子技术、软件工程、操作系统等理论的软硬件的教学与研究开发平台。在这个开发平台上开发相应的程序,可以掌握嵌入式系统设计的流程与方法;可以根据使用者的需求,设计并实现手机的基本功能和扩展功能。 1 手机编程开发平台总体结构 作为专业技术课程,手机编程技术的教学内容包括系统设置、操作系统使用以及应用软件开发,因此,手机编程平台必须支持各项教学内容。另外,作为教学仪
[单片机]
嵌入式系统的功耗管理技术研究
    摘要: 根据硬件提供的功耗管理机制,参考Intel和Microsoft公司制订的高级电源管理规范,在嵌入式领域中提出了系统工作的四种功耗模式-常规模块、空闲模式、休眠模式和睡眠模式;通过在嵌入式操作系统中使用功耗管理模块,为应用提供有效的功耗管理机制,同是分析基于操作系统功耗管理机制的功耗管理策略,从而实现系统的低功耗目的。     关键词: 移动设计 功耗管理 嵌入式操作系统 引言 同固定设备相比,移动设备具有功耗低、重量轻和体积小的特点:但移动设备的资源有限,主要反映在能够使用的磁盘、内存、处理能力和屏幕尺寸都比较小,且能够连续使用的时间也比较短。同时,由于移动网络的低带宽、高延迟特点,使移动应
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新工业控制文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved