联系电话:021-60706467
 
驭源云标签打印软件及管理系统,是一款集成标签设计、模板管理、供应链协同、防伪标签打印等功能的专业标签打印及管理软件。
它可以从1个用户扩展到成千上万个用户,还可延伸到本公司其他地点的工厂、仓库、以及客户及供应商,协同打印。
< /td>
如有业务意向欢迎联系我们!
电话联系:
021-60706467
栏目导航
条形码基础知识
条形码打印机知识
条码扫描器知识
产品评测
条码标签、碳带知识
条码应用
仓库管理及生产采购知识
  条码知识条形码打印机知识—基于Small-RTOS51的数据采集器设计
基于Small-RTOS51的数据采集器设计
2007-10-16
随着嵌入式系统的发展,嵌入式软件设计向软件平台靠近,单片机软件设计不再是单一线程结构方式,而是逐步采用多任务的设计思想。实时内核也称为实时操作系统或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所示。

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


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


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


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单片机发挥的更有效,并且今后的软件维护和改进更方便,更可靠。


上篇文章: 手持式标签打印机满足严格的行业标准
下篇文章: Ring4024PMH条码打印机印字头的更换方法
   相关文章 (  关键字:数据采集器  )
   热点信息

Copyright©2008-2024上海驭源信息科技有限公司 沪ICP备08020661号-3 
 条码打印机   
 条码扫描枪   
 数据采集器   
 无线局域网   
 不干胶标签   
 条码碳带   
 条码仓库管理软件(条码仓库管理系统)   
 驭源标签打印软件   
 条码生产管理软件(条码生产管理系统)   
 防伪防窜货条码管理系统   
 产品质量跟踪条码追溯系统   
 条形码系统与ERP系统集成   
 二维条码在物流中的应用   
 大型超市仓库中的条码应用   
 人事考勤条码系统   
 条形码基础知识   
 条形码打印机知识   
 条码扫描器知识   
 产品评测   
 条码标签、碳带知识    
 条码应用   
 仓库管理及生产采购知识   
 下载中心   
 库存日报表   
 库存月报表   
 用料分析报表   
 用料计划报表   
 材料编号表   
 领用、退料记录报表   
 盘点记录报表   
 库存报表   
 半成品记录报表   
 呆废料记录报表   
 关于我们   
 联系我们   
 网站地图