Giotto软件在实时嵌入式控制中的应用
时间:09-20
来源:互联网
点击:
1 引 言
随着计算机技术、控制技术、信息技术的快速发展,工业的生产和管理方式进入了生产自动化、控制智能化时代,特别是分布嵌入式系统的应用,更加需要标准化、实时的控制模块和I/O功能模块,以便系统集成,构建适应于恶劣环境的复杂分布式系统。实时嵌入式软件模块适合于没计复杂的分布式系统,它支持分布的、异构设备的系统建摸和构造。嵌入式模块的作用是提供使复杂性容易处理的结构和技术,基于Giorio的嵌入式控制设汁更适合具有硬实时控制约束的应用。本文中,平台指硬件结构、操作系统和通信协议,由CPU、传感器、执行器和网络组成。与平台无关的事件包括应用功能和时限,与平台相关的事件包括时序安排、通信和物理特性。
2 Giotto编程特点
传统的实时嵌入式软件设计是在抽象的数学模型基础上,控制工程师根据对象行为和环境影响,利用求解模型的软件工具,得到模型的功能和性能,然后交给软件工程师针对给定的平台写出代码,并在给定的平台上检验和优化代码,直到得出满意的时间行为。在这个过程中,常常丢失了模型和代码之间紧密的对应关系,放弃了软件的复硝性,增加了软件设计的复杂度,因而产生的软件是弱化的,难于在不同的平台上应用。
基于Giotto的嵌入式控制软件设计将功能程序从特定平台分离,将时限从功能中分离,其与平台无关性使得它具有更好的实时性、可靠性及可复用性,更适合嵌入式实时分布系统。图l为基于Giotto的嵌入式控制系统的设计流程图。首先,控制工程师和软件工程师就控制设计的功能和时限达成一致,设计一个Giotto程序;然后,软件工程师使用Giotto编译器产生一个可执行代码,该代码能连接Giotto运行时间库,将程序映射到给定的平台。Giotto运行时间库提供一个时序安排和通信的中间层,这一层定义了Giotto可执行程序与平台之间的接口。目前已经建立了一个Giotto运行时间库,用于Intel x86机上Wind River的VxWorks实时操作系统。
3 Giotto编程技术
Giotto是一种与平台无关,且在特定控制领域应用中具有高水平的编程语言。Giotto的设计用于高要求的控制应用,这些应用要求周期性地渎取传感器,调用任务,更新执行和模式转换。Giotto基于时间触发编程,从传感器到CPU以及CPU到执行器之问的通信由全局时钟触发,使其具有可预报性。Giotto程序不指定与平台相关的部分,如优先权、通信等。其优点是与具体的执行平台无关,能与任何实时操作系统、调度运算法则以及实时通信协议兼容。
Giotto的两个核心组成部分是:周期性的任务调用和模式转换。一个Giotto程序指定一系列的模式,每一种模式又包含一系列的任务和模式转换。每一时刻,程序都执行在特定的模式P下,每个P模式转换包含1个评估函数和1个目标模式Q,只有评估函数为真时系统才转换为新模式Q。
Giotto任务是一项剧期性的工作,其输入和输出端几分别在任务周期的启动和结束时更新,但Giotto任务不一定要在周期开始时启动,只需在周期内启动和完成。图2(a)显示了运行在同一个CPU上的1个40ms任务M和1个10ms任务N的时序,虚线为目前任务占用CPU的可能情况。在第Oms,M和N都读取它们输入端口的值;在第10 ms,任务N的计算结果写入它的输出端口,但是N早已结束执行(如图中虚线所示);在第40 ms,任务M的计算结果写入它的输出端口,但任务M在第40ms之前已经完成执行。无论任务M在0~40 ms的任何时间完成计算,任务N都只会在第40 ms读其结果。
在Giotto中一个任务可以看作是一个工作单元,一旦开始,就必须要完成。任务周期没结束时,模式转换不能终止任何任务。给定一个Giotto模式P(包括分别由40 ms和10 ms调用的Giotto任务M和N)和一个Giotto模式Q(包括分别由40ms和5ms调用的Giotto任务M和R)。图2(b)显示了在P模式中的第10ms模式转换被激活的时序,此时模式P转换为模式Q。由于P和Q都包含任务M,所以任务M不会终止,但任务N被周期为5ms的任务R代替。
4 物流系统自主小车设计
2一自主小车系统包括2个自主小车,每个自主小车包含一个微处理器、马达和触摸式传感器。设定在任何时候只有一个自主小车是领导者,而其他自主小车是跟随者。其中,处于领导或避开状态的自主小车称为“领导者”,处于跟随或停止状态的自主小车称为“跟随者”。当领导者被阻碍时,领导者进入避开状态,跟随者进入停止状态。进入避开状态的自主小车执行一段避开程序,以避开障碍物,此时处于停止状态的自主小车仍停止;当领导者完成避开程序返回到领导状态时,跟随者返回跟随状态。当跟随者之一被阻碍时,该自主小车进入避开状态,其他所有的自主小车进入停止状态,被阻碍的这个自主小车成为新的领导者。图3显示了2一自主小车系统的状态行为。
随着计算机技术、控制技术、信息技术的快速发展,工业的生产和管理方式进入了生产自动化、控制智能化时代,特别是分布嵌入式系统的应用,更加需要标准化、实时的控制模块和I/O功能模块,以便系统集成,构建适应于恶劣环境的复杂分布式系统。实时嵌入式软件模块适合于没计复杂的分布式系统,它支持分布的、异构设备的系统建摸和构造。嵌入式模块的作用是提供使复杂性容易处理的结构和技术,基于Giorio的嵌入式控制设汁更适合具有硬实时控制约束的应用。本文中,平台指硬件结构、操作系统和通信协议,由CPU、传感器、执行器和网络组成。与平台无关的事件包括应用功能和时限,与平台相关的事件包括时序安排、通信和物理特性。
2 Giotto编程特点
传统的实时嵌入式软件设计是在抽象的数学模型基础上,控制工程师根据对象行为和环境影响,利用求解模型的软件工具,得到模型的功能和性能,然后交给软件工程师针对给定的平台写出代码,并在给定的平台上检验和优化代码,直到得出满意的时间行为。在这个过程中,常常丢失了模型和代码之间紧密的对应关系,放弃了软件的复硝性,增加了软件设计的复杂度,因而产生的软件是弱化的,难于在不同的平台上应用。
基于Giotto的嵌入式控制软件设计将功能程序从特定平台分离,将时限从功能中分离,其与平台无关性使得它具有更好的实时性、可靠性及可复用性,更适合嵌入式实时分布系统。图l为基于Giotto的嵌入式控制系统的设计流程图。首先,控制工程师和软件工程师就控制设计的功能和时限达成一致,设计一个Giotto程序;然后,软件工程师使用Giotto编译器产生一个可执行代码,该代码能连接Giotto运行时间库,将程序映射到给定的平台。Giotto运行时间库提供一个时序安排和通信的中间层,这一层定义了Giotto可执行程序与平台之间的接口。目前已经建立了一个Giotto运行时间库,用于Intel x86机上Wind River的VxWorks实时操作系统。

3 Giotto编程技术
Giotto是一种与平台无关,且在特定控制领域应用中具有高水平的编程语言。Giotto的设计用于高要求的控制应用,这些应用要求周期性地渎取传感器,调用任务,更新执行和模式转换。Giotto基于时间触发编程,从传感器到CPU以及CPU到执行器之问的通信由全局时钟触发,使其具有可预报性。Giotto程序不指定与平台相关的部分,如优先权、通信等。其优点是与具体的执行平台无关,能与任何实时操作系统、调度运算法则以及实时通信协议兼容。
Giotto的两个核心组成部分是:周期性的任务调用和模式转换。一个Giotto程序指定一系列的模式,每一种模式又包含一系列的任务和模式转换。每一时刻,程序都执行在特定的模式P下,每个P模式转换包含1个评估函数和1个目标模式Q,只有评估函数为真时系统才转换为新模式Q。
Giotto任务是一项剧期性的工作,其输入和输出端几分别在任务周期的启动和结束时更新,但Giotto任务不一定要在周期开始时启动,只需在周期内启动和完成。图2(a)显示了运行在同一个CPU上的1个40ms任务M和1个10ms任务N的时序,虚线为目前任务占用CPU的可能情况。在第Oms,M和N都读取它们输入端口的值;在第10 ms,任务N的计算结果写入它的输出端口,但是N早已结束执行(如图中虚线所示);在第40 ms,任务M的计算结果写入它的输出端口,但任务M在第40ms之前已经完成执行。无论任务M在0~40 ms的任何时间完成计算,任务N都只会在第40 ms读其结果。
在Giotto中一个任务可以看作是一个工作单元,一旦开始,就必须要完成。任务周期没结束时,模式转换不能终止任何任务。给定一个Giotto模式P(包括分别由40 ms和10 ms调用的Giotto任务M和N)和一个Giotto模式Q(包括分别由40ms和5ms调用的Giotto任务M和R)。图2(b)显示了在P模式中的第10ms模式转换被激活的时序,此时模式P转换为模式Q。由于P和Q都包含任务M,所以任务M不会终止,但任务N被周期为5ms的任务R代替。

4 物流系统自主小车设计
2一自主小车系统包括2个自主小车,每个自主小车包含一个微处理器、马达和触摸式传感器。设定在任何时候只有一个自主小车是领导者,而其他自主小车是跟随者。其中,处于领导或避开状态的自主小车称为“领导者”,处于跟随或停止状态的自主小车称为“跟随者”。当领导者被阻碍时,领导者进入避开状态,跟随者进入停止状态。进入避开状态的自主小车执行一段避开程序,以避开障碍物,此时处于停止状态的自主小车仍停止;当领导者完成避开程序返回到领导状态时,跟随者返回跟随状态。当跟随者之一被阻碍时,该自主小车进入避开状态,其他所有的自主小车进入停止状态,被阻碍的这个自主小车成为新的领导者。图3显示了2一自主小车系统的状态行为。
- 基于ARM与DSP的嵌入式运动控制器设计(04-25)
- 多核及虚拟化技术在工业和安全领域的应用(05-23)
- 基于nRF2401智能小区无线抄表系统集中器设计(04-30)
- 解密波音747飞机中的Sperry垂直陀螺仪(05-06)
- lns构架智能小区安防及关键技术应用研究(06-09)
- 基于MSP430及PROFIBUS的监测子站设计(06-12)
