微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于Small RTOS51的多任务串行通信研究

基于Small RTOS51的多任务串行通信研究

时间:06-13 来源:作者:北京跟踪与通信技术研究所 邵富杰 安徽大学 杨磊 点击:

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

2.2 任务间的通信与同步

应用中,串口中断服务程序与数据处理任务之间、键盘扫描任务与按键处理任务之间都需要进行同步和通信,前者使用信号量进行同步和通信,后者使用消息。

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

结 语

本文举例说明了Small RTOS51环境下包含多任务的串行通信,重点叙述了多任务的执行过程和任务间的同步与通信。该应用系统经过较长时问的测试,没有发生数据到达串口时因没能及时处理而被后来到达的数据覆盖而造成丢失的情况,也没有发生按下按键时不能及时处理的情况,应用系统的可靠性和实时性要求均可满足。

Small RTOS51是一个占用系统资源极小的嵌入式实时操作系统,可以应用在绝大多数单片机上,而且移植过程简单。使用它开发基于单片机的多任务应用系统,可以较大地缩短开发周期。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top