关键词:嵌入式; 远程控制; UML; 建模
1 引言
基于嵌入式仪表的远程监控系统的核心是嵌入式控制器,嵌入式控制器是一个典型的嵌入式系统,嵌入式控制器的系统设计遵从嵌入式系统设计的相关理论。嵌入式系统的设计有别于一般的传统的设计。嵌入式系统的设计需要考虑软件的响应速度,内存空间占用,电源消耗等。系统设计需要考虑把软件和硬件的结构作为一个统一协调的整体。嵌入式系统趋向于采用高平台(Platform)和采用面向对象的UML-RT来进行系统的分析和设计。因此,我们在设计嵌入式控制器时,采用UML-RT和平台(Platform)进行系统的设计,使嵌入式控制器有一个弹性的架构,能够方便快速的改变或扩充功能,满足系统要求。
2 UML-RT和平台
2.1 UML-RT与嵌入式系统设计
UML (Unified Modeling Language)是面向对象的建模语言,由Grady Booch,James Rumbaugh和Ivan Jacobson提出,并于1997年被OMG(Object Management Group)组织采纳为业界标准。UML用一套标准的符号体系来描述模型,可以用它来描述系统的结构和静态特征,系统的行为和动态特征。它从不同的视角为系统架构建模,形成系统的不同视图(view)。作为一个通用的建模语言,UML提供了良好的扩展机制,如版类(Stereotype,加标签值(tagged values),约束(constraints)等,允许UML针对专门的应用领域进行建模。
利用UML扩展机制,专门针对嵌入式系统的UML-RT有三个基本的结构:容器(capsules),端口(ports),连接器(connectors)。
2.2平台与嵌入式系统设计
我们在抽象层次上对嵌入式系统进行描述,并对这种描述提供平台支持,把嵌入式软件和硬件的结构作为一个统一协调的整体来认识。基于平台的设计思想在PC设计上用了多年,近年来,这个方法得到普遍化,形式化,适用于嵌入式系统设计。用平台进行嵌入式系统建模,解决下列设计难题:
1. 应用程序的QoS需求。
2. 资源组,APIs和QoS提供的服务。
3. 不同抽象层的关系,尤其是资源的映射和使用。
在嵌入式的软硬件设计流程中,对关键的连接点定义平台。每个平台表示设计流程中的一层。服务质量(QoS)参数,比如CPU的处理速度,Il0带宽等,要在相关的平台作好定义。在理想情况下,提供QoS的平台的性能参数至少要满足要求QoS的平台的性能参数。
基于平台设计的一个基本思想是平台能支持类似或相关的应用程序,有些应用程序可以出现在平台被开发出来后。为支持这些不可预见的程序,平台服务必须有扩展性。
3 嵌入式控制器的需求分析
我们利用UML的用例图(use case)来对嵌入式控制器进行需求分析。用例图从用户的观点描述了系统硬件和软件的功能。按照第二章对嵌入式控制器的功能描述,我们得出系统的用例图,如图1所示。其中包括七个不同的用例和两个不同的角色。
图1 嵌入式控制器的用例图
用户角色可进行查看数据,设定数据,开启和关闭控制对象(智能仪表),控制对象可以接收和发送数据,相应开启和关闭的操作指令。数据处理中心负责数据的封装、发送,计算等数据处理工作。
4 平台(platform)的划分和设计
在完成了系统的需求分析之后,开始划分本平台的系统结构,所谓本平台的系统结构就是指平台系统对各级之间界面的定义及其上、下层的功能分配,而且每一层又有它自己的系统结构。主要按照功能、逻辑顺序来划分多级层次结构。嵌入式控制器平台的系统结构如图2所示。
我们把嵌入式控制器系统分为3个抽象层次:体系结构平台(ARC platform),应用程序编程接口平台(API platform),定制的应用程序平台(ASP)。ARC平台包含了微处理器存储系统,接口电路,I/O通道及芯片之间的内部连接。微处理器系统由Rabbit2000微处理器,FLASH,SRAM,RTL8019AS网络控制芯片等一族“微架构”组成。API平台包括RTOS实时操作系统,嵌入式Web服务器,设备驱动程序等。API平台是软件抽象层,把ARC平台的实现细节进行封装。API平台提供接口服务,并对这些接口按类别进行分组。比如用户需要知道RTOS是否提供占先式任务调度接口,嵌入式Web服务器提供的Http,TCP/IP接口。ASP平台提供用户的直接操作界面和专门的应用服务,如让用户通过浏览器查看和设定智能仪表的控制参数。
图2 平台的划分
在每个平台都有相应的服务质量(QoS)的要求。在ARC平台对功耗,存储量,处理速度,通讯能力等都有要求。Rabbit2000,RTL8019AS等芯片可以很好的满足这些要求。在API平台对运行任务的个数,任务切换时间等也有要求,嵌入式Web服务器和RTOS—µc/OS能满足这些要求。在ASP平台要求进行实时的参数查看和参数设定。采用lava Applet能很好的做到这些。
对嵌入式控制器系统进行平台的划分,并且对各个平台提出相应的服务质量参数,使我们在设计的初始阶段对整个设计有全局的观念,由于各个平台之间相对独立,对以后出现的新的设计要求和设计修改具有很好的适应能力。
5 基于UML-RT的嵌入式控制器设计
在对嵌入式控制器划分平台后,我们可以用UML-RT的符号体系对嵌入式控制器系统进行建模。我们把建模的过程分为两个阶段。第一阶段是考虑系统的对外接口。第二阶段是考虑系统内部的平台建模。
根据前面用例图的需求分析,得出系统需要与环境交互的端口有两个:一个是与控制对象即智能仪表进行通讯。一个是和用户进行交互。为了支持用户交互和控制对象通讯,我们定义了两个容器(capsule) u:UserInterface和t :Transfer Data。容器p:Process Data则是用来处理数据。容器可以包含相关的软件和硬件结构,我们对t:Transfer Data进一步细化,可以得到图3。
图3 TransferData容器的结构
图3中可以看到数据传送可通过并口和串口进行,这种传送和处理器Pl即Rabbit2000耦合的很紧,我们用UML-RT的扩展符号表示。同样,《SW P1》表示在处理器P1上执行的处理与控制对象通讯的程序。我们用这种方式还可以对u :User Interface和p :Process Data进行细化。在第一阶段的基础之上,我们结合前面对平台的划分,进行平台建模。系统的ARC平台的建模如图4所示。
图4 ARC平台的UML-RT建模
图4表示了ARC平台的基本组件和它们的拓扑图结构,利用这个图可以进一步的进行对象建模。这个模型提供了一个框架,并可以方便的增加,移动,替代,修改框架内的元素。UML-RT的端口可以有效的表示模型元素之间的接口。
API平台处于ARC平台和ASP平台之间,包括RTOS,嵌入式Web服务器,设备驱动程序等。从UML-RT角度看,API平台是ARC容器与ASP容器之间的通讯管道。在这里 ARC容器和ASP容器直接通过连接器相连。
我们把API平台表现出来,如图5所示。ARCProxy从ASP容器的端口中接收调用信息,然后把这个信息通过RTOS API送到合适的设备驱动程序,让设备驱动程序去和ARC平台通讯。异步和同步的通讯可以通过这个方式进行。从图5还可知,驱动程序和RTOS是紧密相关的。ASP平台的建模同样可以通过类似的方式表现。
图5 ARC容器与ASC容器的通讯的实现
综上所述,结合UML-RT和Platform进行嵌入式控制器的设计,我们看到它们能够很好的对嵌入式软硬件进行抽象,提供良好的文档资料。基于UML-RT和Platform设计的系统架构,对设计过程出现的新的设计要求和设计修改具有很好的适应能力,设计者可以及早的发现并更正错误。
本文作者创新点
本文首先对嵌入式系统设计理论中的UML-RT和平台(Platform)进行了介绍,然后结合嵌入式控制器,作者具体阐述了UML-RT和平台思想在嵌入式控制器系统设计中的运用,给出了嵌入式控制器系统设计的详细步骤和具体内容。
参考文献:
[1] 康军,戴冠中.基于Internet的工业以太网远程监控系统设计[J].控制工程,2004.7: 16-20
[2] 王勇.嵌入式Internet的实现及其安全性问题的研究[D].浙江大学博士论文,2003
[3] 李凤保.网络化测控系统技术[M]. 四川大学出版社,2004.5
[4] 董小国,王蓉. 基于Web的中水远程监控系统的设计与实现[J]. 微计算机信息, 2006, 12-1: 86-88