Small RTOS 对RAM 需求小,十分合适单片机这类资源比较少的体系上。RTOS 具有多使命处理,较强的实时性,可削减的内核,使得实时使用程序的规划、扩展和保护变得更简单。RTOS 思维的引进,一改传统单片机软件规划办法,使其不再是单一线程结构办法,通过使用程序分割为若干独立的使命,RTOS 使得使用程序的规划进程大为简化。本文结合根据单片机的电子存包柜的软件规划,扼要剖析了Small RTOS 的规划思维及音讯行列通讯机制的使用。
1. Small RTOS51 的基本原理
Small RTOS51是一个很小的内核,彻底集成在KEIL C51编译器中,仅占用较少的程序存储空间,能够在没有外挂数据存储器的51单片机体系中运转。内核担任体系的初始化和敞开、调度其它使命,根据各个使命的优先级,合理地在不同使命之间分配CPU 的时间,内核一般都能供给使命调度和中止服务等功用。把一道程序和一个使命对应,把使命中的每个分隔的、独立履行的部分称之为线程。一切的事情驱动和时间驱动都体现在设置相应的使命标识和线程标识。当硬件环境一守时,根据这些标识,通过组织体系内中止呼应办法和调整使命调度算法,选用设置环境变量的办法,使中止退出后能够恣意回来到多个设置入口中的某一个去履行,有效地处理了前台和后台使命线程的灵敏切换这一关键问题。Small RTOS 51 的用户使命具有运转态、安排妥当态、等候和挂起、中止服务程序。任何一个时间,使命的状况便是这四种状况之一。为了节约内存,OS 不能动态的树立和删去使命,用函数OSSTART()发动多使命环境后,OS 就把一切的使命树立起来,并把它们设为安排妥当状况,开端运转优先级最高的使命。只有当一切的优先级高于它的使命转为等候时。安排妥当的使命才干进入运转状况。调度程序将“使命安排妥当表”中的最高优先级其他使命作为下个要履行的使命。
使命调用 os_wait 函数,挂起当前使命,等候一个或几个距离(K_IVL)、超时(K_TMO)、信号(K_SIG)事情。假如所等候的事情现已产生,持续履行当前使命;假如所等候的事情没有产生,则置相应的等候标志后,挂起该使命,转使命切换程序段切换到下一使命。
Small RTOS51 通过履行函数init ( )来给寄存器赋初值,调用函数OSSTart ( ) 来初始化每一个使命的仓库并履行榜首个使命,而挑选榜首个使命履行的理由是该使命的优先等级。在挑选进程中就完成了使命的调度。
1.1 使命之间的通讯
使命之间的通讯选用音讯行列,通过3步:创立音讯行列OSQCreate(),向音讯行列发音讯OSQPost(),取音讯OSQPend()。调用OSQPost ( )函数发送音讯时,假如现已有使命在等候该音讯,则当即转向等候该音讯的使命,假如音讯行列已满,则无法传递该音讯,回来一个错误信息。如音讯行列未满,一起也没有其他使命等候该音讯,则入列。值得注意的是,当行列满时,该函数并不挂起当前使命,因而调用该函数的使命应当判别回来条件,假如音讯满,则应挂起当前使命。接纳音讯时,假如音讯行列空,则取音讯的使命将挂起,直到该音讯行列中有音讯时才会持续履行。
2. 使用实例
2.1 硬件渠道
以使用在大型超市、书店的电子式存包柜为例,体系框图如下
该电子存包柜能够操控的最大货品存储箱数为 32 个,分左右各16 个箱子,上图只画出16 路操控。操控芯片选用AT89C55 单片机,配有实时时钟模块、条码读入器、液晶显现模块、热敏打印机组成,规划为三块PCB 板。
1 主控板,进行用户的存包和取包人机交互,保存存包暗码,显现用户取*程中的暗码输入以及悉数32 个存包箱的状况。
2 门操控板由三部分组成,榜首部分箱内物品检测,包含16 路红外线检测输入、16 路红外发射操控驱动。第二部分16 路继电器操控,开箱操控由16 个小直流电机构成16 个箱子的开门操控。第三部分箱门状况检测,检测16 个箱门的开/关。
3 存取包的条码打印、语音提示,整个体系由 4 个单片机合作作业,主控单片机办理存包用户的操作并记载其前史参数,然后向从单片机宣布指令,分配空箱并打印输出存包条,给用户。
2.1 软件规划
电子存包柜首要包含按键处理、显现处理、通讯处理等模块,由中止处理条码读入和串口通讯。因而,能够把使命分为按键显现、接纳数据、指令处理、发送数据等4 个使命。
以主控单片机1 接纳用户按存包输入暗码、键值处理、暗码显现及箱子状况显现、发送开箱指令为例,阐明主体规划思维。
主程序进行体系初始化今后,调用函数OSStart()设置多使命环境,为每一个使命树立使命仓库,次序树立了4 个使命,等候相应使命的唤醒。用户只需把自己想要完成的功用界说为使命,在cONfig.h 中声明使命函数名和它的优先级,而且编写好自己的代码段就能够了,彻底没有了传统编程下的那种上下调用的联系,体系会主动运转代码。Small RTOS51 的移植首要是要装备OS_CPU.H、OS_CFG.H 和CONFIG.H 三个文件,其间OS_CFG.H 文件首要用于对操作体系的削减和时钟等的相关装备。
在 CONFIG.H 文件中界说4 个使命
#ifndef …。。
…………
#endif
限于篇幅,向单片机2、3 的发送及接纳单片机2 数据的程序略
4.定论
选用实时多使命操作体系使得编程功率更高、保护及修正也更便利,所以现在得到广泛使用,尤其是在嵌入体系中。在低端的51 单片机使用领域,使用实时多使命操作体系的思维,选用Small RTOS 多使命渠道进行体系使用规划及改善,相同也有现实意义。
本文立异点:将Small RTOS 多使命的思维使用在一个详细的单片机操控的电子式存包柜体系的软件规划中,介绍了根据音讯行列的使命通讯的编程办法。