微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 工业电子 > Giotto软件在实时嵌入式控制中的应用

Giotto软件在实时嵌入式控制中的应用

时间:09-20 来源:互联网 点击:


由于自主小车处于领导或避开状态时其他自主小车处于跟随或停止状态,因此对每一个领导者X使用1个LeildXFollow模式和1个EvadeXStop模式。其中,处于LeadlFollow模式时,自主小车l是领导者;处于Evadelstop模式时,自主小车l执行避开程序。另外,为每个自主小车X引入一个stopX模式,它允许自主小车快速停止。runCom1任务每40 ms运行一次存储于输出端口 command中的命令。两个Giotto任务rrailerCtrl和trailerCtr2具有lOms的周期,它们根据command中的命令控制两个自主小车的马达;command中的数据由任务驱动trailerDrv传送到任务trailerCtrl和trailerCtr2的输入端口。

系统分别对自主小车l和2的传感器不断地进行检测。当自主小车1被阻碍时,系统转换到stopl模式。两个自主小车都停止移动;完成stopl模式之后系统转换为EvadelStop模式.此时自主小车l执行 避开程序而自主小车2停止不动。类似地,当自主小车2被阻碍时,自主小车2经过stop2模式后转换到Evade2Stop模式。在EvadelStop模式下,Evadel任务每一周期计算一次避开动作是否完成以及避开的下一步动作;具有10ms周期的任务trailerCtrl根据command中避开的步骤去控制自主小车1的马达,一旦完成避开动作,就转换为LeadlFollow模式。

图4为系统从LeadlFollow模式到stopl模式,EvadelStop模式和LeadlFollow模式的模式转换时序图。到stopl模式的转换发生在LeadlFollow模式下的第60 ms,自主小车l的传感器检测到障碍,系统由LeadlFollow模式转换为stopl模式.两个自主小车执行停止程序;完成stopl模式后,在第80 ms系统转换为另外一个模式EvadelStop,自主小车1的控任务立刻被调用,自主小车l执行避开程序,此时自主小车2仍停止;当自主小车1完成避开动作后,在第110ms,两个自主小车的控制任务立刻被调用,系统转换为LeadlFollow模式。当自主小车2是领导者时,其模式转换类似。


5  结论

在基于Giotto的嵌入式控制设计中,时序程序与功能程序的分离,使Giotto程序与具体的运行平台无关,从而提高了程序的健壮性、稳定性及代码的复用性。Giotto系统中任务的调用和环境变量的检测由全局时钟触发,其时间行为具有高度可预报性,使得Giotto非常适合具有硬实时约束的嵌入式控制系统。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top