基于Small RTOS51的数据采集器设计
摘要:介绍如何运用SmallRTOS51多任务操作系统进行嵌入式控制器的软件设计。首先介绍SmallRTOS51多任务操作系统,然后介绍基于该操作系统进行数据采集器软件系统的设计。
关键词:SmallRTOS51多任务操作系统数据采集器
引言
随着嵌入式系统的发展,嵌入式软件设计向软件平台靠近,单片机软件设计不再是单一线程结构方式,而是逐步采用多任务的设计思想。实时内核也称为实时操作系统或RTOS。它使得实时应用程序的设计、扩展和维护变得更容易,不需要大的改动就可以增加新的功能。通过应用程序分割成若干独立的任务,RTOS使得应用程序的设计过程大为简化。使用可剥夺性内核时,所有时间要求苛刻的事件都得到了尽可能快捷、有效的处理。通过有效的服务,如信号量、邮箱、队列、延时、超时等,RTOS使得资源得到更好的利用。
目前8位单片机在嵌入式系统中,应用还是最广泛的。51多任务系统中,KeilC51所带的RTX51Full太大(6KB多),且需要外部RAM,又无源代码,很多时候不实用。RTX51Tiny虽然小(900多字节),但是任务没有优先级和中断管理,也无源代码,也不太实用。而uC/OSII虽有源代码,但是它太大,又需要外部RAM,所有函数又必须是重入函数,用在51这类小片内RAM的单片机上有点勉强。SmallRTOS为小RAM系统设计,RAM需求小,比较适合51这种资源比较少的系统上。
1数据采集器系统设计
1.1数据采集器原理
数据采集器是将采集到的电表脉冲信号转换为电能量数据整理保存,并与上行设备通信传输到管理单元进行电表数据的统一管理。
1.2硬件设计
主控制器采用AT89C52芯片,利用7032将脉冲信号采样,经过CPU的处理将数据存储到EEPROM芯片中,数据通过红外信道上传到掌上电脑中。系统框图如图1所示。
2SmallRTOS51多任务操作系统
SmallRTOS是一个源代码公开的多任务实时操作系统,SmallRTOS51是其在8051系列处理器上的移植(使用KeilC51)。SmallRTOS可以简化那些复杂而且时间要求严格的工程的软件设计工作。
SmallRTOS有以下的特点。
①公开源代码。只要遵循许可协议,任何人可以免费获得源代码。
②可移植。尽量把与CPU相关部分压缩到最小,与CPU无关部分用ANSIC编写。
③可固化。SmallRTOS为嵌入式系统设计,如果有固化手段,它可以嵌入到产品中成为产品的一部分。
④占先式。SmallRTOS可以管理17个任务,用户最多可以使用16个任务,每个任务优先级不同。
⑤中断管理。中断可以使正在执行的任务挂起。如果优先级更高的任务被中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行。中断嵌套层数可达255层。如果需要,可以禁止中断嵌套管理。
⑥RAM需求小。SmallRTOS为小RAM系统设计,因而RAM需求小,相应的,系统服务也少。
目前,SmallRTOS的最新版本为1.20.0。可以进行任务的建立、删除、动态内存分配等操作。
3任务分解设计
数据采集器主要包括采集处理、显示处理、按键处理、通信处理等模块,由中断处理相应采集脉冲信号和串口通信。因此,将任务分解为按键显示处理、接收数据、命令处理、发送数据、采样滤波处理、系统检测6个任务。
主程序进行系统初始化以后,顺序建立6个任务,进入CPU休眠状态。各个任务运行后,首先进入任务休眠状态,等待相应任务的唤醒。任务被唤醒以后,进行相应处理,再次进入休眠状态。这样,可以减少任务切换,减轻系统负担。
任务框图如图2所示,主程序流程如图3所示。
脉冲到来时,引发相应外部中断,由中断处理程序处理后,置相应信号量,然后唤醒采样滤波处理任务。采样滤波处理任务将数据整理后,存储到外部存储器中。
串口数据到来时,引发串口中断,串口中断处理程序唤醒数据接收任务。数据接收任务完成数据包的接收,并根据通信数据包的特点进行错误处理。数据包被正确接收后,唤醒命令处理任务。命令处理任务判断数据包的校验和,若正确就处理相应的命令。命令处理完成以后,将回应数据打包,然后唤醒发送数据任务,将数据通过串口发送出去。
《基于Small RTOS51的数据采集器设计》
本文链接地址:http://www.oyaya.net/fanwen/view/172514.html
关键词:SmallRTOS51多任务操作系统数据采集器
引言
随着嵌入式系统的发展,嵌入式软件设计向软件平台靠近,单片机软件设计不再是单一线程结构方式,而是逐步采用多任务的设计思想。实时内核也称为实时操作系统或RTOS。它使得实时应用程序的设计、扩展和维护变得更容易,不需要大的改动就可以增加新的功能。通过应用程序分割成若干独立的任务,RTOS使得应用程序的设计过程大为简化。使用可剥夺性内核时,所有时间要求苛刻的事件都得到了尽可能快捷、有效的处理。通过有效的服务,如信号量、邮箱、队列、延时、超时等,RTOS使得资源得到更好的利用。
目前8位单片机在嵌入式系统中,应用还是最广泛的。51多任务系统中,KeilC51所带的RTX51Full太大(6KB多),且需要外部RAM,又无源代码,很多时候不实用。RTX51Tiny虽然小(900多字节),但是任务没有优先级和中断管理,也无源代码,也不太实用。而uC/OSII虽有源代码,但是它太大,又需要外部RAM,所有函数又必须是重入函数,用在51这类小片内RAM的单片机上有点勉强。SmallRTOS为小RAM系统设计,RAM需求小,比较适合51这种资源比较少的系统上。
1数据采集器系统设计
1.1数据采集器原理
数据采集器是将采集到的电表脉冲信号转换为电能量数据整理保存,并与上行设备通信传输到管理单元进行电表数据的统一管理。
1.2硬件设计
主控制器采用AT89C52芯片,利用7032将脉冲信号采样,经过CPU的处理将数据存储到EEPROM芯片中,数据通过红外信道上传到掌上电脑中。系统框图如图1所示。
2SmallRTOS51多任务操作系统
SmallRTOS是一个源代码公开的多任务实时操作系统,SmallRTOS51是其在8051系列处理器上的移植(使用KeilC51)。SmallRTOS可以简化那些复杂而且时间要求严格的工程的软件设计工作。
SmallRTOS有以下的特点。
①公开源代码。只要遵循许可协议,任何人可以免费获得源代码。
②可移植。尽量把与CPU相关部分压缩到最小,与CPU无关部分用ANSIC编写。
③可固化。SmallRTOS为嵌入式系统设计,如果有固化手段,它可以嵌入到产品中成为产品的一部分。
④占先式。SmallRTOS可以管理17个任务,用户最多可以使用16个任务,每个任务优先级不同。
⑤中断管理。中断可以使正在执行的任务挂起。如果优先级更高的任务被中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行。中断嵌套层数可达255层。如果需要,可以禁止中断嵌套管理。
⑥RAM需求小。SmallRTOS为小RAM系统设计,因而RAM需求小,相应的,系统服务也少。
目前,SmallRTOS的最新版本为1.20.0。可以进行任务的建立、删除、动态内存分配等操作。
3任务分解设计
数据采集器主要包括采集处理、显示处理、按键处理、通信处理等模块,由中断处理相应采集脉冲信号和串口通信。因此,将任务分解为按键显示处理、接收数据、命令处理、发送数据、采样滤波处理、系统检测6个任务。
主程序进行系统初始化以后,顺序建立6个任务,进入CPU休眠状态。各个任务运行后,首先进入任务休眠状态,等待相应任务的唤醒。任务被唤醒以后,进行相应处理,再次进入休眠状态。这样,可以减少任务切换,减轻系统负担。
任务框图如图2所示,主程序流程如图3所示。
脉冲到来时,引发相应外部中断,由中断处理程序处理后,置相应信号量,然后唤醒采样滤波处理任务。采样滤波处理任务将数据整理后,存储到外部存储器中。
串口数据到来时,引发串口中断,串口中断处理程序唤醒数据接收任务。数据接收任务完成数据包的接收,并根据通信数据包的特点进行错误处理。数据包被正确接收后,唤醒命令处理任务。命令处理任务判断数据包的校验和,若正确就处理相应的命令。命令处理完成以后,将回应数据打包,然后唤醒发送数据任务,将数据通过串口发送出去。
《基于Small RTOS51的数据采集器设计》