0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机多任务处理方案

姚小熊27 来源:xx 作者:电工之家 2019-09-13 15:45 次阅读

单片机只有一个CPU,一次只能执行一条指令,要处理多任务,相当于多个任务同时执行,只有靠分时。

如果没有实时操作系统,自己做多任务处理很难的。

如果是采集通信数据处理输入输出这样的常规任务,可以采用中断方式,中断服务程序处理实时任务,分析计算等任务放入主程序中。

多任务协调,可用状态自动机模型处理。

普通单片机内部只有一个核,只能顺序执行指令,同一时刻不能并行执行多条指令。

所谓的多任务,也是分时执行实现的。只是任务切换的非常快,人感觉不满任务的切换,像同时执行一样。

单片机要执行多任务,可以使用中断的方式,也可以使用操作系统,目前有一些适用于单片机的小型操作系统。

单个核心不可能真正同时处理两个任务。一般来说,单片机主要是处理外设中断,产生中断的时候,主循环是停止执行的,实际上是分时处理。如果要处理多个任务,最简单的是用实时系统RTOS,创建多个任务即可,还可以定义优先级。如果要做到真正意义上的同时处理,就要用多核芯片。裸机系统可用片内定时器产生中断来切换任务。

首先、单片机多任务处理方案有哪些?

1、采用实时操作系统rtos

也是我们所说的实时操作系统,rtos本身已经实现了多任务调度算法,我们不在关心如何调度的问题,我们只需要根据rtos的api来创建多任务即可。常见的rtos有freertos,uc/OS,华为liteOS,t-thread等等。

2、采用有限状态机(State Machine)

也可通过一幅简单的示意图(也叫「状态转移图」)表示出来:

在单片机程序设计中,如果一个系统需要处理一系列连续发生的任务,或在不同的模式下对输入进行不同的处理,常常使用有限状态机实现。例如测量、监测、控制等控制逻辑型应用。

其次、如何选择单片机多任务调度方案

和rtos相比,状态机占用的系统资源少,省去了系统调度定时器,没有rtos占用的内存也少了,但是需要程序人员来完成多任务调度。

从上面可以看出,如果单片机资源很有限,多任务逻辑又比较简单,建议选择状态机方法。如果多任务很复杂,功能比较多,单片机功能比较强,rtos占用的资源可以忽略不计,那就可以考虑采用rtos来完成。采用rtos可以比较容易的实现模块化设计。但是rtos需要注意的是多任务间的优先级和多任务间的通信问题。

最后、单片机多任务如何选择?

对于大部分编程来说其实一般的状态机就够了,小编也曾经十分推崇rtos,但是到后来发现,其实越是逻辑简单,程序越是容易编写,出错的概率越小。大道至简,小编现在大部分程序都是裸奔了,当然小编自创的异步编程也是相当的便利。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6035

    文章

    44554

    浏览量

    634621
收藏 人收藏

    评论

    相关推荐

    单片机分时多任务

    本帖最后由 eehome 于 2013-1-5 09:44 编辑 单片机分时多任务
    发表于 08-17 15:56

    51单片机多任务设计

    51单片机多任务设计
    发表于 05-14 20:16

    单片机多任务事件驱动C源码分享

    单片机多任务事件驱动C源码
    发表于 01-24 06:31

    51单片机多任务操作系统的原理是什么?

    51单片机多任务操作系统的原理
    发表于 11-06 08:10

    单片机系统中的多任务多线程机制的实现

    单片机系统的开发很多情况下不是在嵌入式操作系统平台上进行的,而是直接基于处理器编写。在多任务并行执行的要求下,可以借鉴操作系统中的任务和线程机制,对资源和
    发表于 05-15 14:15 21次下载

    51单片机多任务机制的实现策略研究

    从操作系统实现多任务机制的原理入手,分析了51单片机实现多任务机制的基本条件,论述了5l单片机实现多任务控制的二种
    发表于 09-19 17:26 159次下载
    51<b class='flag-5'>单片机</b><b class='flag-5'>多任务</b>机制的实现策略研究

    单片机系统多任务实现方法

    考虑到成本等因素,大多数单片机系统的开发还是基于处理器直接编写,但开发者经常面临同时处理多个任务的要求,提出了一种单片机
    发表于 11-21 16:47 750次下载

    MSP430单片机实时多任务操作系统c源代码

    : 资料-【C】嵌入系统-【C0】嵌入式综合-【2】单片机编程-【参考程序】-MSP430单片机的实时多任务操作系统c源代码.zip
    发表于 09-18 10:18 91次下载
    MSP430<b class='flag-5'>单片机</b>实时<b class='flag-5'>多任务</b>操作系统c源代码

    基于单片机状态的多任务系统

    一般嵌入式系统(特指8 位的单片机系统)往往有多个任务,存在多个中断,常需处理许多并发事件的输入数据流。这些事件的到来次序和几率通常是不可预测的,而且还要求系统必须在事先设定好的时限内做出相应的响应
    发表于 07-13 17:31 13次下载

    51单片机多任务操作系统的原理与实现

    51单片机多任务操作系统的原理与实现,在51单片机上模拟操作系统
    发表于 02-28 15:09 16次下载

    基于实时操作系统的单片机多任务应用程序设计

    基于实时操作系统的单片机多任务应用程序设计
    发表于 10-27 15:21 49次下载
    基于实时操作系统的<b class='flag-5'>单片机</b><b class='flag-5'>多任务</b>应用程序设计

    如何使用51单片机进行多任务机制及应用

    传统的单片机程序一般采用单任务机制,单任务系统具有简单直观、易于控制的优点。然而由于程序只能按顺序依次执行,缺乏灵活性,只能使用中断函数实时地处理一些较短的
    发表于 04-15 18:24 8次下载
    如何使用51<b class='flag-5'>单片机</b>进行<b class='flag-5'>多任务</b>机制及应用

    如何使用51单片机实现多任务机制的策略详细资料说明

    51单片机在微型智能控制系统中应用很广,随着人们对控制系统的要求不断提高,51单片机的功能局限越发明显。特别是51系列单片机不具有实时多任务支持功能,大大限制其在控制系统中的进一步发展
    发表于 07-17 17:38 6次下载
    如何使用51<b class='flag-5'>单片机</b>实现<b class='flag-5'>多任务</b>机制的策略详细资料说明

    使用单片机实现道路交通灯多任务控制系统的课件说明

     RTX-51是运行于8051单片机环境中的实时多任务操作系统(RTOS),其常用于处理复杂的多任务控制系统。8051单片机支持典型的RTX
    发表于 04-16 17:31 7次下载
    使用<b class='flag-5'>单片机</b>实现道路交通灯<b class='flag-5'>多任务</b>控制系统的课件说明

    单片机多任务事件驱动C源码

    单片机多任务事件驱动C源码
    发表于 11-29 10:06 26次下载
    <b class='flag-5'>单片机</b><b class='flag-5'>多任务</b>事件驱动C源码