基于Small-RTOS51的数据采集器设计

发布者:快乐飞翔最新更新时间:2014-03-21 来源: elecfans关键字:Small-RTOS51  数据采集器  AT89C52 手机看文章 扫描二维码
随时随地手机看文章

引 言

  随着嵌入式系统的发展,嵌入式软件设计向软件平台靠近,单片机软件设计不再是单一线程结构方式,而是逐步采用多任务的设计思想。实时内核也称为实时操作系统或RTOS。它使得实时应用程序的设计、扩展和维护变得更容易,不需要大的改动就可以增加新的功能。通过应用程序分割成若干独立的任务,RTOS使得应用程序的设计过程大为简化。使用可剥夺性内核时,所有时间要求苛刻的事件都得到了尽可能快捷、有效的处理。通过有效的服务,如信号量、邮箱、队列、延时、超时等,RTOS使得资源得到更好的利用。

  目前8位单片机在嵌入式系统中,应用还是最广泛的。51多任务系统中,Keil C51 所带的RTX51 Full 太大(6KB多),且需要外部RAM,又无源代码,很多时候不实用。RTX51 Tiny虽然小(900多字节),但是任务没有优先级和中断管理,也无源代码,也不太实用。而uC/OSII虽有源代码,但是它太大,又需要外部RAM,所有函数又必须是重入函数,用在51这类小片内RAM的单片机上有点勉强。Small RTOS为小RAM系统设计,RAM需求小,比较适合51这种资源比较少的系统上。

1 数据采集器系统设计

    1.1 数据采集器原理

  数据采集器是将采集到的电表脉冲信号转换为电能量数据整理保存,并与上行设备通信传输到管理单元进行电表数据的统一管理。

    1.2 硬件设计

  主控制器采用AT89C52芯片,利用7032将脉冲信号采样,经过CPU的处理将数据存储到EEPROM芯片中,数据通过红外信道上传到掌上电脑中。系统框图如图1所示。

2 Small RTOS51多任务操作系统

  Small RTOS是一个源代码公开的多任务实时操作系统,Small RTOS 51是其在8051系列处理器上的移植(使用Keil C51)。Small RTOS可以简化那些复杂而且时间要求严格的工程的软件设计工作。

Small RTOS有以下的特点。

① 公开源代码。只要遵循许可协议,任何人可以免费获得源代码。

② 可移植。尽量把与CPU相关部分压缩到最小,与CPU无关部分用ANSI C编写。

③ 可固化。Small RTOS为嵌入式系统设计,如果有固化手段,它可以嵌入到产品中成为产品的一部分。

④ 占先式。Small RTOS可以管理17个任务,用户最多可以使用16个任务,每个任务优先级不同。

⑤ 中断管理。中断可以使正在执行的任务挂起。如果优先级更高的任务被中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行。中断嵌套层数可达255 层。如果需要,可以禁止中断嵌套管理。

⑥ RAM需求小。Small RTOS为小RAM系统设计,因而RAM需求小,相应的,系统服务也少。

目前,Small RTOS的最新版本为1.20.0。可以进行任务的建立、删除、动态内存分配等操作。

3 任务分解设计

  数据采集器主要包括采集处理、显示处理、按键处理、通信处理等模块,由中断处理相应采集脉冲信号和串口通信。因此,将任务分解为按键显示处理、接收数据、命令处理、发送数据、采样滤波处理、系统检测6个任务。

  主程序进行系统初始化以后,顺序建立6个任务,进入CPU休眠状态。各个任务运行后,首先进入任务休眠状态,等待相应任务的唤醒。任务被唤醒以后,进行相应处理,再次进入休眠状态。这样,可以减少任务切换,减轻系统负担。

  任务框图如图2所示,主程序流程如图3所示。

  脉冲到来时,引发相应外部中断,由中断处理程序处理后,置相应信号量,然后唤醒采样滤波处理任务。采样滤波处理任务将数据整理后,存储到外部存储器中。

  串口数据到来时,引发串口中断,串口中断处理程序唤醒数据接收任务。数据接收任务完成数据包的接收,并根据通信数据包的特点进行错误处理。数据包被正确接收后,唤醒命令处理任务。命令处理任务判断数据包的校验和,若正确就处理相应的命令。命令处理完成以后,将回应数据打包,然后唤醒发送数据任务,将数据通过串口发送出去。[page]

  每个任务均采用以下结构。

while(1)

{

OSWait(K_SIG, 0); // 任务睡眠,等待任务唤醒处理过程

}

任务的唤醒用OSTaskResume(TASK_ID)完成。

  串口接收和发送处理采用队列模式,设立发送和接收两个缓冲区,独立的进出队列处理。数据解包和数据打包采用单独处理方式,这样单独处理通信协议,以利于今后协议的改动。

  串口缓冲I/O模块的程序见本刊网站www.dpj.com.cn。

  系统节拍设置:将OS_TICKS_PER_SEC设为20,即系统时钟节拍为每秒20次。定义定时器0的中断时间设为50ms。

 

#define m_Fosc 11059200L

#define m_TIME 65536L - (m_Fosc / (OS_TICKS_PER_SEC *

12L))

void InitTimer0(void) {

TMOD = (TMOD & 0xF0) | 0x01;

TH0 = m_TIME / 256;

TL0 = m_TIME % 256;

ET0 = 1;

TF0 = 0;

}

  TestSys任务定时检测各任务的回应,若长时间没有回应,则启动复位功能,热启动整个系统,以保证系统的可靠性。

  由于单片机采用AT89C52,片内RAM为256,使用DS12887中的一部分RAM作为扩展。队列长度各为15个字节时,程序经过9级优化后,RAM占用140字节,XRAM占用106字节。由于系统RAM很小,因此,没有使用信号量和消息进行数据传输。在其它应用时,可以根据系统资源进行信号量和消息的使用,这样可以更有效地使任务运行。

4 结 论

  在嵌入式系统中,使用RTOS是大势所趋,因为在大多数情况下编程效率比执行效率重要。利用Small RTOS多任务系统设计,可以使51单片机发挥的更有效,并且今后的软件维护和改进更方便,更可靠。

关键字:Small-RTOS51  数据采集器  AT89C52 引用地址:基于Small-RTOS51的数据采集器设计

上一篇:一种便携式汽油标号检测仪的设计
下一篇:基于单片机的多功能供电控制系统

推荐阅读最新更新时间:2024-03-16 13:38

基于AT89C52的数控直流电流源设计
恒流源是电子仪器和设备中常用的一种电源。一般的恒流源往往存在调节范围小、稳定性差等缺点。   本文设计的数控直流电流源能够很好地降低因元器件老化、温漂等原因造成的输出误差,输出电流在20—2000mA(可调)、输出电流可预置、输出电流信号可直接显示等功能。硬件电路采用单片机为控制核心,利用闭环控制原理,电路组成闭环负反馈进行稳流,最终实现精度高、稳定性好、输出范围宽的要求。   1 系统组成和原理   1.1 系统的组成   本电流源系统可分为稳压电源电路、单片机控制部分、A/D和D/A转换电路、恒流源电路、人机界面(包括键盘输入与LED显示)等几部分,其系统组成如图1所示。   1.2 系统的工作原理   系统
[电源管理]
基于<font color='red'>AT89C52</font>的数控直流电流源设计
便携式动态心电信号数据采集器的设计
     摘 要 便携式动态心电信号数据采集器是现代动态心电图分析系统的重要组成设备。介绍以单片机为核心的智能心电数据采集系统的原理,详细论述了硬件设计的要点及数据预处理软件的有关算法。     关键词: 单片机 心电信号 数据采集      心电图是心脏疾病诊断的重要工具之一,然而在临床中一些心脏病患者在短时间内其心电图并无异常。这样就要花相当长的时间在医院中作观察诊断,从而给病人和医院都造成了不必要的麻烦。为此,动态心电图分析处理系统便应运而生,该系统可以分为两大部分,一是携带在被检查者身上的袖珍心电图信号采集器,另一为由微机系统组成的心电图处理诊断系统。被检查者配带了心电图数据
[工业控制]
基于USB总线通信数据采集器的设计与实现
1 引言 在变电站和工业现场的微机监控系统中,要通过通信方式采集许多远程现场数据。目前电力系统的通信、监控和数据采集系统的一体化采用的是一种分布式的通信结构,伴随着新设备、新技术的应用,传统的对终端单元的通信和数据采集方式的缺陷日益突出,如安装麻烦,工作效率较低,适应性和可扩展性较差。电力系统所需要的主站数据采集前端子系统,应该可以智能地、高效可靠地完成与终端单元的数据采集、通信和协议解析任务,并具有良好的经济性。 2 通信数据采集器的硬件结构 通用串行总线(Universal Serial Bus,简称USB)是1995年康柏、微软、IBM、NEC等公司为了解决传统总线的不足而推广的一种新型串行通信标准。该总线接口具有安装使用方便
[嵌入式]
遥控电扇系统红外遥控发射电路原理图
如图所示,该图为红外遥控发射电路图。 在图中,单片机采用 AT89C52,这是遥控电路的主芯片。ATMEL 公司生产的 AT89C52单片机采用高性能的静态80C51设计,并采用先进工艺制造,还带有非易失性的 Flash 程序存储器,它是一种高性能、低功耗的8位 CMOS 微处理芯片,市场应用最多。
[单片机]
遥控电扇系统红外遥控发射电路原理图
AT89C52用作多功能外围器件使用
摘要:介绍利用AT89C52单片机作为多功能可编程接口的方法。该接口具有1个键盘/显示接口,2个16位定时/计数器和1个全双工异步串行通信口。其模块化的设计,可以给用户使用带来许多方便。 关键词:多功能接口 串行通信 软件译码 AT89C52(简称89C52)的广泛使用,使单片机的价格大大下降。目前,89C52的市场零售价已经低于8255、8279、8253、8250等专用接口芯片中的任何一种;而89C52的功能实际上远远超过以上芯片。因此,如把89C52作为接口芯片使用,在经济上是合算的。在本人设计的系统中,将89C52设计为多功能可编程接口,其相关程序固化在片内的Flash ROM中。该芯片(以下简称多功能接口)具有如下功
[单片机]
基于单片机AT89C52的CAN总线分布式测控系统的设计
  本文主要介绍了一种基于单片机AT89C52的CAN总线分布式测控系统,主要阐述了系统的总体设计方案,以及控制模块和采集模块的软硬件设计,重点是系统中以单片机为核心的带有CAN总线接口的设计,解决现场各传感器得到的测量信号利用单片机进行存储和处理,然后通过与CAN控制器的通讯将信息发送到CAN总线上。   1 CAN总线网络的技术特点   用通讯数据块编码,可实现多主工作方式,数据收发方式灵活,可实现点对点、一点对多点及全局广播等多种传输方式;可将DCS结构中主机的常规测试与控制功能分散到各个智能节点,节点控制器把采集到的数据通过CAN适配器发送到总线,或者向总线申请数据,主机便从原来繁重的底层设备监控任务中解放出来,进行更高
[单片机]
基于单片机<font color='red'>AT89C52</font>的CAN总线分布式测控系统的设计
基于AT89C52的多超声信号融合处理系统设计
1 引言 在移动机器人超声测距导航系统中,单一的超声波传感器因其发射角等固有的不足难以完成对环境的全面探测。因而在实践中,常常用到大量的超声传感器阵列。 然而,专门针对这种情况设计的数据采集处理平台却很少。同时,在远距离测量时,超声回波信号很微弱并受到了较大噪声干扰。在这种情况下,传统的基于电路方法的超声测距仪很难实现回波的提取,常常造成误判。而已有的基于PC机的数据采集卡却又带来了便携性和适用性差的问题 。 本文介绍的基于单片机的数字信号采集处理系统,针对上述情况,采用了八通道设计以适合多超声传感器信号的采集,并引入了数字信号处理算法,通过对超声回波信号的数字处理,可以精确地检测回波,完成高精度测距的任务。另外基于该平
[单片机]
DEI1016功能和原理简介及其与单片机的接口设计
1 DEI1016的主要功能 DEI1016是Device Engineering Incorporated 生产的一种可支持ARINC429航空总线协议的串行接收、发送器件。该器件的主要功能如下: ●串行数据字长为32或25位; ●串行数据速率为100kbps或12.5kbps; ●具有独立的收、发电路; ●两个独立的接收器可直接与ARINC429总线接口; ●具有串/并接收数据转换,和并/串发送数据转换功能; ●对接收的数据可进行奇偶状态校验;并可对发送数据奇偶状态进行设置; ●可自动产生字与字之间的间隔; ●采用单一+5V供电。 2 DEI1016的工作原理 DEI1016的引脚功能
[单片机]
DEI1016功能和原理简介及其与单片机的接口设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved