嵌入式控制系统系统级软件构件的设计.doc_第1页
嵌入式控制系统系统级软件构件的设计.doc_第2页
嵌入式控制系统系统级软件构件的设计.doc_第3页
嵌入式控制系统系统级软件构件的设计.doc_第4页
嵌入式控制系统系统级软件构件的设计.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式控制系统系统级软件构件的设计A design method of technology embedded control system based on software component 摘要:随着计算机在工业控制领域的迅速扩大,软件规模及复杂性的不断提高,软件危机愈加明显地暴露出来,提高软件生产率成为软件产业的当务之急。基于构件的软件复用是当前复用研究的焦点,被视为实现成功复用的关键因素之一。基于构件的嵌入式系统软件复用技术是本文讨论的核心内容。本文针对工业嵌入式系统的系统级软件设方法以软件构件形式对其进行了封装以标准接口形式暴露给用户级应用软件对其进行操作,便于系统集成。关键词:软件构件 工业控制嵌入式系统 构件标准接口Abstract: Along with the computer in the industry control domain rapid expansion,the software scale and the complex unceasing enhancement, the software crisis exposes even more obviously, enhances the software productivity to become the software industry the urgent matter. Based on the component software multiplying is the current multiplying research focal point, is regarded as realizes one of successful multiplying key aspects. Based on the component embedded system software multiplying technology is the core content which this article discusses. This article supposed the method in view of the industry embedded system system-level software to carry on the seal by the software component form to it the level application software to carry on the operation by the standard connection form exposition for the user to it, was advantageous for the system integration. Keyword :Software component The industry controls the embedded system Component standard connection引言对嵌入式软件构件平台而言,其支撑平台首先是一个嵌入式实时多任务操作系统,其次为整个软件构件的设计提供开发工具和集成环境。在支撑平台的设计过程中,可以借鉴领域工程的思想,将整个嵌入式实时多任务操作系统设计成一个系统级的软件构件库。这样不但实现了嵌入式操作系统的可裁减性,而且由于从嵌入式操作系统到应用程序的设计都是基于离散化的软件构件,方便了嵌入式控制应用软件设计时的集成和调试。为了方便软件构件的管理,可以将系统级和应用级的软件构件库综合成一个功能完备的软件构件库。它包括从嵌入式控制系统的系统层、支撑层和应用层所需的一切软件构件,因而具有功能的完整性。1. 嵌入式控制系统软件开发平台的体系结构嵌入式软件构件平台的体系结构如图1所示,它包括系统层、连接层(支撑层)和应用层三个部分。系统层属于领域工程的范畴,它利用领域工程的分析方法对嵌入式控制系统进行分析、抽象和提炼,并分解成相应的系统类和应用类功能模块。连接层是一个嵌入式软件构件平台,它实现系统层和应用层之间的无缝连接,即提供软件构件一个集成开发平台。应用层属于应用工程的范畴,用户根据实际的嵌入式控制系统的控制要求和目标,从软件构件库中选取所需软件构件,经集成后生成实际的嵌入式控制应用程序。 嵌入式控制系统嵌入式实时多任务操作系统应用类功能模块系统类功能模块领域分析领域分析软件构件开发工具应用类构件软件构件库系统类构件软件构件集成工具实际嵌入式控制程序实际嵌入式控制项目领域工程嵌入式软件构件平台应用工程图1. 嵌入式软件构件平台的体系结构2. 嵌入式控制系统软件平台的设计该软件平台是基于TMS320F2812 DSP芯片构建的一个构件化了的嵌入式实时多任务操作系统。在设计时充分利用了平台体系结构所述的设计思想,程序的可读性和裁减性非常好。其特点是:1.操作系统和系统两个数据结构。为了方便支撑平台的设计和对系统资源的集中管理设计了操作系统数据结构。该数据结构为平台设计者独占,用户没有访问该数据结构的权限。另外为了便于用户程序与操作系统之间的交互和对系统资源的访问和申请设计了系统数据结构。该数据结构用户是可见的,也是应用程序访问操作系统的唯一途径。2.配置了一个最小系统,其主要功能当接到启动指令后,对指令进行确认并判断启动方式。然后根据启动方式完成微处理器的CPU寄存器和一些外围寄存器的初始化,并且对操作系统和系统两个数据结构进行初始赋值。但它不能实现任何的控制功能,完成初始化后就处于系统扫描状态。3. 系统设计的任务数是小于或等于16,即一个字长,这样一来任务的调度算法相对比较简单,而又完全能够满足嵌入式实时控制系统应用的要求。每一个任务指定唯一的优先级,其任务优先级与任务标识一致,高优先级的任务其优先级ID就越低,可供任务选择的优先级ID范围是015,其中系统保留了最高和最低优先级。任务通信及系统同步采用了信号量方式(可以扩展),设计了P操作和V操作两种软件构件对系统进行通信和同步管理。同时设计了创建任务和任务开始两个软件构件,分别为任务的建立和结束提供系统管理。4. 设计了任务调度、任务切换、任务上锁、虚拟消息等软件构件,实现系统对多任务的控制和管理。为了方便系统的任务切换,整个支撑平台系统设计了两类堆栈系统堆栈和任务堆栈。3.软件构件开发平台的具体设计3.1构件接口软件的设计由于本构件装配是采用语言组态的软件构件集成方式,因此接口的定义类似于组态入口参数序列。它主要包含软件构件标识信息、软件构件注册信息及软件构件的配置信息。标志信息识别目前所用的是哪一个软件构件及给出了软件构件的切入点(虚拟地址指针);注册信息包含软件构件向操作系统申请的系统服务和系统资源,操作系统在得到注册信息后,为软件构件提供响应的系统服务和分配所需的系统资源;配置信息包括软件构件在不同的系统状态下所需的参数信息,它可以以数据或地址的状态给出。接口类软件主要是完成应用程序与支撑平台的交互,起到了一个系统接口界面的作用,方便了用户对支撑平台的访问。它包括错误观察WatchErr()、参数注册SysCompReg、获取整形量*GetAddN()、获取浮点数*GetAddF()、获取结构体*GetAddS()、取开关量Sys_GetBit()、存开关量Sys_BitGetvalue()、浮点数上/下限限幅Sys_Fmaxmin()、整型量上/下限限幅Sys_Nmaxmin()等函数。3.2系统配置类软件构件的设计这类构件在系统软件集成时最多只能使用一次,主要完成系统资源的配置以及一些系统功能的启用,包括系统开始、系统结束、扩充构件、扩充内存等构件。1.设计系统开始构件:一个嵌入式控制应用程序必须包括且仅包括一个系统开始软件构件,而且该构件位于软件构件组态集成序列的末端。系统循环扫描一开始时,首先进入的便是该构件。该构件的功能是根据系统所处在的系统状态,对系统参数、程序空间进行配置,其接口参数如下:构件号启动选择方式缺省通信模式外部高速时钟频率外部低速时钟频率系统口令系统型号装配日期接口说明:构件号是该构件的唯一标识和切入点(该构件入口虚拟程序地址指针);启动选择方式主要用于设定系统的启动方式;缺省的通信模式主要是从CAN、MORDBUS和工业以太网中选择一种作为系统默认的通信方式,比如可选择CAN总线通信;外围高速和低速时钟频率设置高速和低速外围所需的时钟频率,即可以修改最小系统中的初始配置;系统口令主要为了保证系统的安全性,不让人随意修改组态集成格式;系统型号和装配日期给出了系统软件集成的一些文本信息。设计者可以根据系统设计需要,在构件组态集成时自由配置。2.设计扩展构件:由于系统设计时,在系统总配置表单规定了最大的原始构件数小于或等于511个,因此当系统构件数目超过原始构件个数时,必须通过扩展构件来扩展系统构件。扩展构件软件的接口参数如下:构件号扩展构件1地址(32位)扩展构件N地址0接口说明:为了方便扩展构件,该接口设计为比较灵活的方式。它仅指出了扩展构件的地址,而扩展的构件个数未定,由组态集成结束标识0来终结组态接口参数的设置。3.设计扩展内存构件:在支撑平台的设计中,根据嵌入式控制应用程序的需要,将系统的整个内存空间划分为四大块。每一块有固定的长度和使用域。当应用程序对内存的需求超出设计范围时,可以利用扩展内存构件对内存进行扩展。其接口定义如下:构件号扩展RAM1地址RAM1字数扩展RAM2地址RAM2字数4.设计系统结束构件:系统结束构件固定位于软件组态集成序列的前端,即组态集成号为0。它在系统软件构件组态集成完毕后,即将进入系统运行时起用该构件,即处于系统循环的最后。它在系统工作状态工作,执行返回组态集成序列起始地址的功能。在系统初始化状态时,完成标定数据和一般数据的获取和保存,并执行启动系统时钟和看门狗以及返回组态序列起始地址等系统功能。接口参数仅一个标识该构件的构件号0。3.3系统任务类软件构件的设计任务创建构件Task:一般的多任务操作系统运行之前,系统必须至少建立一个任务,一般是一个空闲任务,别的任务可以在程序运行的过程中创建。但在本支撑平台的设计中,鉴于一个实际的嵌入式控制应用程序的任务数事先是可以确定的,因而设计了任务创建构件。可以利用该构件在应用程序的软件集成过程中创建所需的任务,该构件的组态集成接口参数形式如下:构件号任务地址任务号堆栈大小唤醒消息号时间单位时间长度设计说明:每定义一个任务使用一次该构件。任务号是外指针,用户可见,里面包含如虚拟程序地址指针、任务优先级等信息;系统为每个任务分配了堆栈空间,由于任务的不同,可能对系统资源的需求也不同,为了节省整个系统的内存空间,用户可以从组态集成接口直接指定任务堆栈的大小;为了跟踪任务的运行时间和任务定时,在接口中设计了时间单位和时间长度两个参数,对任务的运行时间进行统计和定时计数。另外,为了方便任务切换,整个支撑平台设计了两类堆栈,一个是系统堆栈,另一个是任务堆栈。因此在建立任务时,要根据所处的系统状态,对每一个任务的任务堆栈进行初始化设置。3.4通信和同步管理类软件构件的设计任务间的通信有两个途径:通过全程变量或发消息给另一个任务。 使用全程变量时,必须保证每个任务或中断服务程序独享该变量。中断服务中保证独享的唯一办法是关中断。如果两个任务共享某变量,各任务实现独享该变量的办法可以是关中断再开中断,或使用信号量2。在支撑平台的设计中,采用了信号量方式进行系统的通信和同步管理,它包括P操作PSema和V操作VSema两个软件构件。P操作软件构件完成下列功能:在系统注册状态完成注册表的填写,向系统申请所需的系统资源;在系统参数初始化状态完成信号量数据结构的初始化;在系统工作状态,如果信号量大于零(即信号量可用),则信号量减1,否则表示信号量不可用,进行任务悬挂操作和任务切换。其接口参数如下: 构件号信号量地址信号量初值接口说明:信号量地址是外指针,用户可见,是信号量数据结构的入口点;信号量初值若设为1,则表示任务通信,若为0,则表示任务同步。V操作构件只在系统工作状态下工作,与P操作构件公用一个数据结构。它首先将信号量减1,然后判断信号量是否大于零。若大于零,表示公共资源可用,则使所给定任务就绪,并进行任务调度和切换。其接口参数如下:构件号信号量地址任务号由于采用构件化的设计方式,因此系统通信和同步方式可以自由扩展。比如说可以在支撑平台添加邮箱或消息队列构件。采用那种通信和同步方式主要根据系统的设计需要而定。5. 集成开发环境(MMBIDE)本课题组采用微型消息总线MMB嵌入式系统集成开发环境应用程序编程语言引入IEC 61131-3标准,将结构化语句(Structured Text)描述程序设计语言作为自身嵌入式系统应用软件的编程语言,主要是考虑到MMB嵌入式系统是应用于工业控制领域,要求能够自身可以完成较复杂的控制运算,同时要求语句清晰、易懂,编程任务高度压缩化的表达格式。采用交叉开发方法,在Window主机平台上开发与之连接的目标机。开发环境包括自己的可剪裁的微内核实时多任务操作系统,主机上的编译、调试、查看等工具,以及领用串口、网络与目标机的连接工具。其主要功能包括面向工业应用领域的应用程序基本框架、可重用的构件库、源程序编译器、组态下载用户工具、参数下载用户工具、参数实时监控界面等用于支撑应用程序开发的各类用户工具,是用户开发应用程序的重要基础,强调知识成果的积累和重用,是平台开发模式思想的集中体现.6.结束语本软件开发平台应用软件构件技术主要解决下列问题:软件构件的接口定义,提供软件构件与系统以及软件构件之间的交互机制,同时为软件构件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论