一种基于TMS320F2812实时多任务控制系统软件设计方法研究.docVIP

一种基于TMS320F2812实时多任务控制系统软件设计方法研究.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种基于TMS320F2812实时多任务控制系统软件设计方法研究

一种基于TMS320F2812的实时多任务控制系统软件设计方法的研究   摘要:本文提出了基于TMS320F2812设计实时多任务控制系统软件的一种设计方法,即综合利用TMS320F2812的中断系统、CPU定时器及程序切割法,将控制系统中实时性要求相对较低、执行周期相对较长的子程序切割为几部分合理有序的安排在CPU空闲时间段执行,保障关键子任务的实时性。本方法已在某型微型燃机控制系统中得到了成功应用。   关键词:实时多任务控制系统 TMS320F2812 中断 定时器 程序切割法   中图分类号:TN79 文献标识码:A 文章编号:1007-9416(2011)12-0137-02      控制系统一般需要并行执行多个子任务,如模拟量数据采集、开关量输入扫描、数据存储、PID控制计算、模拟量输出、开关量输出、串口通讯等。对于单核处理器来说,同时执行多个子任务是不可能的,只能是以极快的速度按照任务的轻重缓急顺序完成各个子任务,使其看起来像是同时在执行。   对于不同的子任务有着不同的实时性要求。对于某型微型燃机控制系统来说,其PID控制子程序要求20ms调用1次,而串口通讯子程序,则要求500ms才调用1次,但调用1次其执行的时间却大于实时性要求较高的PID控制子程序的调用周期20ms,即一旦开始执行串口通讯子程序,PID控制子程序将无法按要求的时间间隔被调用执行。   对于一个实时多任务控制系统,应根据子任务不同的实时性要求来调用各个子程序,使其即使在最恶劣的情况下也能够被一一实时执行。   所谓实时,是指信号的输入、计算、存储和输出都要在一定的时间范围内完成,亦即计算机对输入信息,以足够快的速度进行控制,超出了这个时间,就失去了控制的时机,控制也就失去了意义[1]。   所谓多任务,是指控制系统需要并行执行多项工作。   如何使长执行周期的子程序(如串口通讯)得到完整执行,又能保证高实时性的子程序(如PID控制)被及时调用,这是设计实时多任务控制系统软件的一个关键问题。   TMS320F2812是一款用于控制的高性能、多功能、高性价比的32位定点DSP芯片,最高可在150MHz主频下工作。TMS320F2812片内集成众多资源,并一改传统的冯?诺依曼结构,采用了先进的???佛总线结构,使数据的吞吐率提高了一倍[2]。TMS320F2812的高性能使其在处理速度、精度方面要求高的领域得到了广泛的应用。   基于TMS320F2812设计实时多任务控制系统软件,综合利用其3级中断系统、片内32位CPU定时器以及TI专为定点处理器设计的快速浮点运算函数库IQmath,使用以程序切割为核心的程序设计方法设计实时控制程序,能够开发出满足某型微型燃机控制要求的实时多任务控制系统软件。   1、中断系统在实时多任务控制系统中的应用   中断的灵活使用不仅能够实现最高级别实时子程序的调用,而且合理的中断安排可以提高事件执行效率。   TMS320F2812的中断系统为3级中断,分别为外设级、PIE级以及CPU级,如图1所示。对于某一个具体的外设中断请求,任意一级的不许可,CPU最终都不会执行该外设中断[3]。   在微型燃机控制系统中,故障报警、紧急停机等紧急事件可以利用中断触发其相应的处理程序被立即执行,满足其对实时性的最高要求。   2、程序切割法   正如引言中所提到的,一旦长执行时间的子程序被主程序调用,调用周期较短的子程序将不能够按设计要求被及时调用,从而影响控制器的控制性能及响应事件的实时性。   我们以微型燃机控制系统PID控制子程序和串口通讯子程序为例进行研究说明。系统要求每20ms调用1次PID控制子程序,执行1次PID控制子程序的时间大约为2ms。串口通讯子程序为每500ms执行1次,执行1次大约需要100ms。串口通讯子程序一旦被主程序调用执行,在其执行完毕前PID控制子程序将无法被调用。如何既能够使串口通讯子程序被执行,又能使PID控制子程序按设计要求的20ms调用周期被实时调用?   注意到PID控制子程序两次调用时间间隔虽然为20ms,但每次的执行时间仅为2ms,CPU还有大约18ms的空闲时间(暂假定系统只有PID控制和串口通讯两个子程序需要执行)。串口通讯子程序1次执行时间虽然为100ms,但调用周期为500ms,即在500ms内执行完整个通讯程序即能满足其实时性设计要求。   一种有效的解决方案是将串口通讯子程序切割为几个执行周期很短(小于CPU空闲时间18ms)的子程序,分别安排在PID控制子程序执行后被执行,每个子程序只完成很少数据的传输任务,经过多次调用即可完成1次完整的数据通讯任务,与PID控制子程序合计总执行时间小于500ms,能够满足通讯任务的

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档