timedsefm:嵌入式实时控制系统的编程模型探讨

timedsefm:嵌入式实时控制系统的编程模型探讨

ID:24220209

大小:81.50 KB

页数:4页

时间:2018-11-13

timedsefm:嵌入式实时控制系统的编程模型探讨_第1页
timedsefm:嵌入式实时控制系统的编程模型探讨_第2页
timedsefm:嵌入式实时控制系统的编程模型探讨_第3页
timedsefm:嵌入式实时控制系统的编程模型探讨_第4页
资源描述:

《timedsefm:嵌入式实时控制系统的编程模型探讨》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、1引言典型的嵌入式控制系统的设计和实现分别由控制工程师和软件工程师完成。控制工程师对系统行为和交互环境进行建模,导出控制逻辑,设计并优化控制模型,模拟验证其功能和性能,•软件工程师将控制模型中的计算分解成不同的实时任务,并根据控制模型的时间约束、操作系统的调度机制和目标平台的性能,为任务指定优先级和任务周期。软件工程师需要反复尝试以确保实际执行时间满足设计需求。实验过程中如果某一任务错过了指定的deadline,需要重新指定任务优先级和周期,再次进行实验。除此之外,传统的编程模型(BoundedExecutio

2、nTime,BET)模型不具有V0可组合性,即当向系统中添加新任务时,其他任务的完成时间会受到影响,其原因在于RTOS和实时调度器为满足实时需求提供了很弱的保障。传统RTOS和实时调度器无法保证任务完成时间的确定性,尽管可以通过反复的测试使系统具备足够的可信度,但方法本身存在缺陷,根本原因在于:(1)编程模型中缺乏明确描述时间属性的语法;(2)线程本身就具有不确定性;(3)任务的wcet时间难以准确度量,任务协作运行时难以确保时间属性,尤其是在多核系统中2TimedSEFM模型概述一个完整的TimedSEFM控

3、制程序由服务、数据端口、任务、模块和模式等基本定义组成。2.1服务月艮务是SEFM+操作系统模型中最基本的功能单元和调度单位。一个服务使用四元组)表示,其中,sn是全局唯一的服务名称;f是一段内部没有同步点的代码,实现服务sn所代表的功能;In和Out分别是一组输入和输出数据端口,如图1(a)所示。输入数据端口为服务提供运行所需的所有数据,输出数据端口用于存储对外可见的运行结果。月艮务是组成任务(Task)的基本元素,在不同任务中服务以不同的实例存在。2.2数据端口数据端口是用于存储类型化数据(TypedDat

4、a)的结构,有三种数据端口:服务的输入数据端口(InputDataPorts,IDP)、服务的输出数据端口(OutputDataPorts,ODP)和全局数据端口阳0631DataPorts,GDP)。前两者与某服务绑定,用于实现该服务的数据输入输出;后者不与任何服务绑定,用于实现服务间松耦合的数据交换。为避免不确定的竞争和同步,服务间的数据交换必须显式地进行:只能调用SEFM+内核功能DataTransferDriver(DTD)在数据端口之间进行数据交换(如图1(b)中带dtd标记的连线所示)。即数据由DT

5、D从GDP或其他服务的ODP导入到某服务的IDP;该服务运行结束时直接将结果写入其ODP,并由DTD将ODP中的数据传到指定的GDP或其他服务的ODP。为保证数据的一致性和完整性,数据端口的访问受到严格的约束:(l)DTD只能在有限的时间范围内以有限的权限访问服务的输入(服务开始前,只写)和输出(服务结束后,只读)数据端口;(2)服务在运行期间只能访问自己的IDP和ODP2.3模块和模式模块是描述控制逻辑的结构,该结构描述了任务间的交互方式和逻辑时间属性。在实时控制软件中,某些特定条件下一组任务可能需要替代另一

6、组任务运行,TimedSEFM用模式切换(ModeSwitch)来满足这样的设计需求。模块由一组模式组成,模式是一组任务的集合,任意时刻一个模块中只有一个模式处于活动状态,称为活动模式,只有活动模式中任务的服务实例能被调度运行。一个模块用六元组,其中Mn是全局唯一的模块名称;p是模块获得执行流脚CPU时间)的周期;t为该模块每个周期内获得的执行流时间,t将被分派给当前活动模式中各个任务;Modes为组成模块的模式列表;Nms为模式切换周期(ModeSwitchPeriodzMSP湘对于p的倍数;switch为模

7、式切换函数,是用户编写的C语言函数,该函数返回应当被激活的模式。为确保模式切换不影响系统中其他模块的运行并保证系统的时间确定性,模式切换只能在模式切换周期MSP到来时发生,MSP被指定为p的Nms倍,即系统将每Nmsp时间间隔执行一次函数switch,该函数将返回需要被激活的模式m(mModes),若m1当前活动模式,则发生模式切换。3编译和运行支持TimedSEFM程序的功能部分和控制部分独立编译,功能部分由C语言编译器编译,编译之后形成二进制代码和数据的集合,存储在一段连续的内存中。控制部分由TimedSE

8、FMCompiler进行编译,编译之后形成一系列触发器。显示了TimedSEFM的编译和运行环境,除MemoryManager、Clock、Scheduler'DataTransferDriver等基本功能之外SEFM+内核还提供了NamingService和TriggerManager作为TimedSEFM程序的运行支持。NamingService建立了端口名到存储地址、服务名到函数

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。