当前位置:首页 > 电源 > 数字电源
[导读] 引 言 在简单的单片机应用系统中,前/后台系统被广泛应用。其中应用程序是一个无限循环,循环中调用相应的函数完成相应的操作。这部分可以看作后台行为,也称为任务级;中断服务程序处理异步事件,可以看作前

 引 言
    在简单的单片机应用系统中,前/后台系统被广泛应用。其中应用程序是一个无限循环,循环中调用相应的函数完成相应的操作。这部分可以看作后台行为,也称为任务级;中断服务程序处理异步事件,可以看作前台,也叫中断级,时间相关性很强的操作靠中断服务程序来保证。中断服务程序提供的信息一直要等到后台程序运行到该处理这个信息时才能得到处理,最坏情况下,响应时间等于整个循环的执行时间。随着单片机应用系统的复杂化,前/后台系统已不能满足系统实时性的要求,这就需要一个嵌入式的实时操作系统来管理和协调多个任务和中断。
    目前在单片机上运行的实时多任务操作系统主要有μC/OS、RTX51 Full和RTX51 Tiny。μC/OS是Jean J.Labrosse先生编写的源码开放的实时内核,可适用于8/16/32位的单片机、ARM和DSP等微控制器和微处理器,在诸多领域得到广泛应用。但是μC/Os实时操作系统规模较大,相对于处理能力有限的单片机来说有些勉强,并且大多需要外扩RAM运行,这给应用系统软硬件设计都带来不便。 RTX51是德国Keil公司开发的一种小型的专门应用于McS-51系列单片机的实时多任务操作系统,它有RTX51 Full和RTX51 Tiny两个版本。RTX51 Full无源码,自身代码有6 KB多,运行时需要大量的外部RAM,不利于学习和使用;RTX51 Tiny较为简单,但是任务没有优先级和中断管理,很多时候并不实用。SmallRTOS51是陈明计先生为51系列单片机编写的源码公开的实时操作系统,支持任务优先级和中断管理,RAM需求量小,非常适合在单片机上运行。本文将在简要介绍Small RTOS51实时操作系统的基础上,结合具体应用实例详细说明Small RTOS51环境下的多任务串行通信

1 Small RTOS51简介
    Small RTOS51嵌入式实时操作系统具有以下特点:
    ①公开源代码,任何人都可以免费获取。
    ②可移植、可固化,虽然是为51系列单片机编写,但是比较容易移植到其他MECU上,并可以固化到产品中,成为产品的一部分。
    ③占先式,支持16个优先级不同的用户任务以抢占式运行。
    ④中断管理,系统支持中断管理功能,中断嵌套层数可达255层。
    ⑤RAM需求量小,Small RTOS51为小RAM系统设计,128个RAM单元就可以运行。通常单片机不需要外扩RAM就能运行Small RTOS51实时操作系统。
    下面简要介绍Small RTOS51的任务管理和任务间的通信与同步。
1.1 Small RTOS51的任务管理
    Small RTOS51实时操作系统中,任务必须是一个无限循环,每个任务必须赋予不同的优先级,优先级数值越小,优先级越高。在任意时刻,任务的状态必处于以下4种状态之一:
    ①运行,任务获得CPU后开始执行;
    ②就绪,任务只等待系统分配CPU资源;
    ③等待或挂起,任务因等待时隙、信号量或者消息等资源而被阻塞;
    ④被中断态,发生中断时,CPU提供相应中断服务,原来正在运行的任务暂不能运行,就进入了被中断态。
    系统中任务状态的转换关系如图1所示。

1.2 Small RTOS51中任务间的通信与同步
    Small RTOS51中,任务间的通信与同步主要有两种方式:信号量和消息队列。
    信号量由两部分组成:一个是信号量的计数值,它是一个8位无符号的整数;另一个是由等待该信号量的任务组成的等待任务表,所有对信号量的访问都必须通过信号量索引来实现。信号量索引是一个0到OS_MAX_SEMS-1的数值,其中OS_MAX_SEMS为用户自定义的最大信号量数目。
    消息队列实际上是一个8位无符号的字节变量数组。向队列发送一个消息,实质上是将O~255之间的一个数值存储到消息队列中;从消息队列中获得一个消息就是获取一个O~255之间的数值。

2 多任务串行通信研究
    下面以一个应用实例详细说明Small RTOS51环境下包含多任务的串行通信,该应用的硬件设计以NXP公司的P89V51RD2单片机为核心,包含了键盘电路、看门狗电路和显示电路等几个部分。硬件设计简图如图2所示,主要完成以下功能:从串口接收数据,经P89V51RD2单片机处理,并通过I2C总线输出到由LED发光二极管与 8574T组成的显示电路,由P89V51RD2扫描键盘,检测到按键被按下时,进行相应的处理并生成一串命令数据通过串口向远端发送。

[!--empirenews.page--]

2.1 多任务的实现
    根据所要完成的功能,系统可由1个串口中断服务程序和4个用户任务来实现:
    串口中断服务程序,当数据到达串口接收缓冲区并产生中断时,该中断服务程序负责从接收缓冲区读取数据,并加入用户自定义的接收缓冲队列。若完整地接收了一个数据包,则向数据处理任务发送信号量,表明有数据包等待处理,否则中断服务程序结束。串口中断下次到来时,继续由该中断服务程序接收串口数据。数据处理任务,执行时首先无限期等待中断服务程序发送信号量,成功获取信号量后,从自定义的接收缓冲队列中取出数据包进行数据解码,并通过I2C总线发送数据到显示电路。
    看门狗任务,每次运行都反转单片机P89V51RD2输出到看门狗电路的I/O引脚电平(喂看门狗),表明P89V51RD2内部程序正常运转,以确保看门狗电路不会将P89V51RD2复位,然后使本身进入等待状态,等待时间到后再次运行。
    键盘扫描任务,负责扫描键盘电路,检测是否有按键被按下,若检测到某一按键被按下,则获取键值,并发送消息给按键处理任务。
    按键处理任务,执行时首先无限期等待按键扫描任务发送消息,成功获取消息后,根据按键值(消息内容)和当前系统状态生成一串命令数据,通过串口向远端发送。
    系统中程序的执行顺序如图3所示。首先从主程序即main()函数开始执行,在main()函数中完成SmallRTOS51实时操作系统、系统定时器、串口、消息、变量和外围设备的初始化工作,然后创建用户任务,最后主程序放弃CPU资源,任务优先级最高的任务开始执行。

    Small RTOS51实时操作系统支持16个优先级,0为最高优先级,15为最低优先级。程序中将看门狗任务置为最高优先级,因为它必须定期向看门狗电路输出喂狗信号。将它置为最高优先级,使其优先运行,可以保证单片机P89V51RD2不会被看门狗电路复位。为了能及时处理串口中断服务程序读取的数据包,数据处理任务也应当具有比较高的优先级。同样,在检测到有按键被按下时,考虑到按键处理的实时性,也不能将按键处理任务的优先级设得太低。可以将键盘扫描任务置为最低优先级,当没有数据到达串口,在看门狗任务运行的间隙,键盘扫描任务一直运行,一旦检测有按键被按下,立即发送消息给按
键处理任务,按键处理任务获得消息后解除挂起状态,抢占CPU资源开始运行。因手工连续按下两次按键的时间间隔远大于按键处理任务进行一次数据处理的时间,故而这样的优先级设置既保证了键盘操作能及时被处理,又不影响检测连续的键盘操作。
2.2 任务间的通信与同步
    应用中,串口中断服务程序与数据处理任务之间、键盘扫描任务与按键处理任务之间都需要进行同步和通信,前者使用信号量进行同步和通信,后者使用消息。

    串口中断服务程序接收到一个完整的数据包后,发送一个信号量给数据处理任务,因等待信号量而处于挂起状态的数据处理任务获得信号量后,立即从用户自定义的接收缓冲队列取出数据包进行处理。键盘扫描任务检测到按键被按下时,进行去抖动处理并获取键值。然后,以键值作为消息内容,发送消息给按键处理任务。因等待消息而挂起的按键处理任务取得消息后,根据消息内容(键值)和当前系统状态,生成一串命令数据并通过串口向远端发送。

结 语
    本文举例说明了Small RTOS51环境下包含多任务的串行通信,重点叙述了多任务的执行过程和任务间的同步与通信。该应用系统经过较长时问的测试,没有发生数据到达串口时因没能及时处理而被后来到达的数据覆盖而造成丢失的情况,也没有发生按下按键时不能及时处理的情况,应用系统的可靠性和实时性要求均可满足。
    Small RTOS51是一个占用系统资源极小的嵌入式实时操作系统,可以应用在绝大多数单片机上,而且移植过程简单。使用它开发基于单片机的多任务应用系统,可以较大地缩短开发周期。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

作者 Mohamad Ali| IBM咨询首席运营官 北京2024年5月24日 /美通社/ -- 生成式AI的兴起几乎在所有面向上给业务带来改变。根据 IBM 商业价值研究院最新的年度 CEO 研究,近60%...

关键字: IBM AI BSP 模型

台北2024年5月21日 /美通社/ -- 提供针对AMD WRX90和TRX50主板优化的DDR5 OC R-DIMM 提供容量128GB(16GBx8)到768GB(96GBx8),速度5600MHz到8...

关键字: AMD 内存 BSP GB

上海2024年5月20日 /美通社/ -- 2024年5月16日,世界知名的生命科学公司 Eppendorf 集团于第二十三届生物制品年会上成功举办了"疫路超越 推流出新"的产品发布会,正式推出大规模...

关键字: RF PEN BSP IMAC

北京2024年5月20日 /美通社/ -- 过去五年里,支付和收款方式日新月异,其发展和变化比过去五十年都要迅猛。从嵌入式数字商务的出现,到"一拍即付"的...

关键字: VI BSP PAY COM

华钦科技集团(纳斯达克代码: CLPS ,以下简称"华钦科技"或"集团")近日宣布致敬 IBM 大型机 60 载辉煌历程,并将继续实施集团大型机人才培养计划。

关键字: IBM BSP 研发中心 PS

助力科研与检测新突破 上海2024年5月15日 /美通社/ -- 全球知名的科学仪器和服务提供商珀金埃尔默公司今日在上海举办了主题为"创新不止,探索无界"的新品发布会,集中展示了其在分析仪器领域的最...

关键字: 质谱仪 BSP DSC 气相色谱

上海2024年5月16日 /美通社/ -- 2024年5月10日至5月13日,富士胶片(中国)投资有限公司携旗下影像产品创新力作亮相北京P&E 2024。在数码相机展览区域,全新制定的集团使命"为世界绽...

关键字: 富士 数码相机 影像 BSP

贝克曼库尔特目前已成为MeMed Key免疫分析平台和MeMed BV检测技术的授权经销商 在原有合作的基础上,继续开发适用于贝克曼库尔特免疫分析仪的MeMed BV检测 加州布瑞亚和以色列海法2024年5月16日...

关键字: BSP IO 检测技术 免疫分析仪

英国英泰力能的燃料电池是可产业化的产品解决方案 英国首个专为乘用车市场开发的燃料电池系统 在 157kW 功率下,此燃料电池比乘用车的其他发动机更为强大 &...

关键字: ENERGY INTELLIGENT 氢燃料电池 BSP

深爱人才,共赴"芯"程 深圳2024年5月15日 /美通社/ -- 5月11日,深圳国资国企"博士人才荟"半导体与集成电路产业专场活动在深圳市重投天科半导体有限公司(简...

关键字: 半导体 集成电路产业 BSP 人工智能
关闭
关闭