用户中心

资讯 > 嵌入式系统

调度器在DSP编程中的应用

2006.07.09阅读 2240

  摘要: DSP在自动控制系统领域得到广泛的应用。它的性能远远强于单片机,在控制系统中所完成的功能也较为复杂。若基于简单的超循环结构来完成软件设计控制工程网版权所有,则编写的程序繁琐而且困难,更为重要的是系统有的任务精确时限得不到满足;若使用简单嵌入式操作系统,则会占用非常多的资源(CPU与RAM),系统的实时性还有可能不满足要求。为了把一个复杂系统中的任务组织起来,并且尽量减少资源的损耗控制工程网版权所有,本文提出了一种软件设计方法可满足上述要求。

  关键字:DSP ,单片机 , 嵌入式操作系统


  Attemper Application in DSP Program

  Abstract:DSP is widely used in automation system field. Its performances are much stronger than SCM, so it can complete complex functions in automation system field. If accomplish the software based on simple infinite c

ircle, the designing is complex and difficult, more important thing is that time limit of tasks is not met; if used embedded OS , it will take up more resources(CPU and RAM) and real time quality of the system probably can not be met. In order to organize the tasks in complex system and reduce wastage of resources, this paper put forward a method of designing software that could meet above requests.

  Keywords: DSP, SCM , embedded OS


  一. DSP介绍

  DSP芯片,也称数字信号处理器,是一种具有特殊结构的微处理器。它的内部采用程序和数据分开的哈佛结构,具有专门的乘法器,广泛采用流水线结构,提供特殊的DSP指令CONTROL ENGINEERING China版权所有,在一个周期内完成一次乘法和一次加法。在国外,DSP芯片已经被广泛地应用于当今技术革命的各个领域;在我国,DSP技术也正以极快的速度被应用在通信、电子系统、信号处理系统、自动控制、雷达、军事、航空航天、医疗、家用电器、电力系统等许多领域中,而且新的应用领域在不断地被发掘。因此基于DSP技术的开发应用正成为数字时代的应用技术潮流。相对于单片机,它速度更快www.cechina.cn,外设集成度更高,程序存储器更大。在《时间触发嵌入式系统设计模式》一书中详细介绍了基于单片机的软件设计方法,而本文基于DSP对这种设计进行了扩展,使这种设计方法更为灵活,有效。


  二.调度器介绍

  可以从两方面来看调度器:一方面:调度器可以看作是一个简单的操作系统,允许以周期性或单次方式调用任务;另一方面:从底层角度来看,调度器可以看作是一个由许多不同任务共享的定时器中断服务程序。

  1. 调度器的组成

  (1)调度器数据结构

  调度器的核心是调度器数据结构。这是一种用户自定义的数据类型,集中了每个任务所需的信息。


  typedef struct
    {
     void ( * pTask)(void); 指向任务的指针(必须是一个void(void)函数)。
     unsigned int Delay; 延时时标数:直到任务将下一次运行所剩时标数。       时标,是硬件定时器周期中断设定的时间间隔,它是调度器的驱动者。
     unsigned int Period; 周期时标数:任务连续运行所间隔的时标数。
     unsigned int DelCounter; 若不为周期任务,表示任务运行次数;若为周期函数,则无意义。
     char PrdOrTemp; 若PrdOrTemp=1CONTROL ENGINEERING China版权所有,则为周期任务;若PrdOrTemp=0,则为非周期任务。
     char RunMe; 当任务需要运行时(由调度器)加1
    } sTask;

 

  另外,还需要定义一些全局变量:unsigned int Task_Index 记录当前所添加任务索引变量,对于每一个任务都要定义一个任务索引变量,以便对任务进行查找。例如:可以利用任务索引变量对任务进行删除。任务队列sTask SCH_tasks_G [SCH_













版权声明:版权归控制工程网所有,转载请注明出处!

频道推荐

关于我们

控制工程网 & CONTROL ENGINEERING China 全球工业控制、自动化和仪器仪表领域的先锋媒体

CE全球

联系我们

商务及广告合作
任小姐(北京)                 夏小姐(上海)
电话:010-82053688      电话:18616877918
rendongxue@cechina.cn      xiashuxian@cechina.cn
新闻投稿:王小姐

关注我们的微信

关于我们 | 网站地图 | 联系我们
© 2003-2020    经营许可编号:京ICP证120335号
公安机关备案号:110102002318  服务热线:010-82053688