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,但是到后来发现,其实越是逻辑简单,程序越是容易编写,出错的概率越小。大道至简,小编现在大部分程序都是裸奔了,当然小编自创的异步编程也是相当的便利。

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

    关注

    5998

    文章

    43949

    浏览量

    620569
收藏 人收藏

    评论

    相关推荐

    单片机分时多任务

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

    单片机小型操作系统多任务并行的原理

    如果在单片机的中断中修改了堆栈中的PC指针值,那么是不是中断就返不回来原来的程序地址?如果还是这个地址是我故意设定的值那么他是不是执行完这个中断就跳到我的设定的这个地址上去了?如果这个地址又是另外一个任务
    发表于 10-18 10:59

    51单片机多任务设计

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

    多任务编程多任务处理是指什么

    嵌入式Linux应用编程-多任务编程多任务处理是指用户可在同一时间内运行多个应用程序,每个正在执行的应用程序被称为一个任务。Linux就是一个支持
    发表于 12-22 08:30

    FreeRTOS多任务系统的相关资料推荐

    目录单片机各编程系统特点1、裸机系统(1)轮询系统(2)前后台系统2、多任务系统单片机各编程系统特点单片机编程中有裸机系统与多任务系统。裸机
    发表于 01-13 07:51

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

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

    什么是多任务系统?FreeRTOS任务与协程简析

    功能,初学者必须先掌握——任务的创建、删除、挂起和恢复等操作。本章节分为如下几部分:*什么是多任务系统*FreeRTOS任务与协程*初次使用*任务状态*
    发表于 02-18 06:38

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

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

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

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

    基于页的8051多任务模型

      随着8051微控制器性能的不断提高,使用多任务操作系统对单片机进行资源管理已成为当代开发的需要。由于受静态链接的限制,8051系统的多任务开发需要处理代码重入(reentran
    发表于 09-25 17:34 887次阅读
    基于页的8051<b class='flag-5'>多任务</b>模型

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

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

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

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

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

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

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

     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源码