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

 引 言
    在简单的单片机应用系统中,前/后台系统被广泛应用。其中应用程序是一个无限循环,循环中调用相应的函数完成相应的操作。这部分可以看作后台行为,也称为任务级;中断服务程序处理异步事件,可以看作前台,也叫中断级,时间相关性很强的操作靠中断服务程序来保证。中断服务程序提供的信息一直要等到后台程序运行到该处理这个信息时才能得到处理,最坏情况下,响应时间等于整个循环的执行时间。随着单片机应用系统的复杂化,前/后台系统已不能满足系统实时性的要求,这就需要一个嵌入式的实时操作系统来管理和协调多个任务和中断。
    目前在单片机上运行的实时多任务操作系统主要有μ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是一个占用系统资源极小的嵌入式实时操作系统,可以应用在绝大多数单片机上,而且移植过程简单。使用它开发基于单片机的多任务应用系统,可以较大地缩短开发周期。

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

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭