RTX51Tiny在核数据采集系统中的应用_周程
- 格式:pdf
- 大小:224.61 KB
- 文档页数:3
RTX51小型实时操作系统介绍(连载1)有二个不同的RTX51版本可以使用∶RTX51 Full使用多于四个任务优先权同时完成存在时间片轮转调度和抢先式的任务切换。
RTX51工作在与中断功能类似的状态下。
信号和消息可以通过邮箱系统在任务之间互相传递。
你可以从一个可分配存储区中分配和释放内存。
你可以强迫一个任务等待中断、超时或者是从另一个任务或中断发出的信号或消息。
RTX51 Tiny 是 RTX51的一个子集,它可以很容易地在没有任何外部存储器的单片8051系统上运行。
除了下列例外,RTX51 Tiny支持许多 RTX51中的特性。
RTX51 Tiny仅支持时间片轮转任务切换和使用信号进行任务切换。
不支持抢先式的任务切换。
不包括消息历程。
没有可分配存储区分配程序。
许多微处理器应用程序要求同时执行两个工作或任务。
对于这样的应用程序,一个实时操作系统(RTOS)允许灵活的分配系统资源(中央处理器、存储器、等等.)给各个任务。
RTX51是一个很容易使用的功能强大的实时操作系统。
R TX51可以运行于所有的 8051 派生机型。
你可以使用标准 C语言编写和编译一个程序并使用 C51 构造、编译他们,仅在指定任务标识符和优先权上有一点差别。
. RTX51程序也要求你在程序中用include命令引入实时管理的头文件并使用 BL51 linker/locator进行连接和选择适当的 RTX51库文件。
RTX51小型实时操作系统介绍(连载2)单任务程序一个标准的 C语言程序从主函数开始执行。
在一个嵌入式应用中,主函数通常是一段无限循环的代码,可以认为是一个连续执行的单独任务。
时间片轮转程序一种更高级的 C语言程序可以在不使用实时操作系统的情况下实现时间片轮转拟多任务系统。
在这种系统中、任务或功能被一段无限循环程序重复调用。
例如∶用 RTX51进行时间片轮转调度rtx51也能完成多重任务时间片轮转,而且允许准并行执行多个无限循环或任务。
RTX51 Tiny 实时内核理解声明:以下来自网络整理而来并非本人作品,觉得挺容易懂所以放入博客以便后来学习者参考RTX51 Tiny中容易混淆的问题RTX51 Tiny是 Keil uVision中自带的一个小型嵌入式RTOS,具有小巧、速度快、系统开销小、使用方便等优点。
使用RTX51 Tiny能够提高系统的稳定性,优化程序的性能;而且它是为51单片机专门定制的,所以在51单片机上的运行效率比其它一些通用的RTOS性能也要好一些。
但是,由于RTX51 Tiny的相关资料和书籍比较少,大部分只是对程序自带帮助文件的简单翻译,很少进行深入探讨。
下面就RTX51 Tiny使用中经常遇到的一些问题进行探讨。
1 关于时间片的问题RTX51 Tiny使用的是无优先级时间片轮询法,每个任务使用相同大小的时间片,但是时间片是怎样确定的呢?RTX51 Tiny的配置参数(Conf_tny.a51文件中)中有INT_CLOCK和TIMESHARING两个参数。
这两个参数决定了每个任务使用时间片的大小:INT_CLOCK是时钟中断使用的周期数,也就是基本时间片;TIMESHARING是每个任务一次使用的时间片数目。
两者决定了一个任务一次使用的最大时间片。
如假设一个系统中INT_CLOCK设置为10000,即10ms,那么TIMESHARING=1时,一个任务使用的最大时间片是 10ms;TIMESHARING=2时,任务使用最大的时间片是20ms;TIMESHARING=5时,任务使用最大的时间片是50ms;当 TIMESHARING设置为0时,系统就不会进行自动任务切换了,这时需要用os_switch_task函数进行任务切换。
这部分功能是RTX51 Tiny 2.0中新增加的。
2 关于os_wait延时的问题os_wait 是RTX51 Tiny中的基本函数之一。
它的功能是将当前任务挂起来,等待一个启动信号(K_SIG)或超时信号(K_TMO)或周期信号(K_IVL)或者是它们之间的组合。
目录总览 (2)实时程序 (5)操作原理 (7)配置RTX51 Tiny (11)使用RTX51 Tiny (14)实例 (17)函数参考 (18)总览RTX51 Tiny是一个实时系统,它允许你创建可同时执行多个功能或任务的应用程序。
在嵌入式应用中这往往是必须的。
虽然可以创建无RTOS实时程序(通过执行一个或多个任务循环),但诸如调度,维护和时序问题,像RTX51 Tiny这样的RTOS可以解决。
一个实时的操作系统可以灵活的调度系统资源,像CPU、内存和任务之间的通信。
RTX51 Tiny是一个功能强大且简单易用的RTOS,适用于所有8051衍生产品。
在Keil C51编译器中RTX51 Tiny是用标准C(ANSI C)编写的。
C语言允许你轻松的定义任务功能而不必进行复杂的栈和变量设置。
RTX51程序需要包含一个特殊的头文件且链接RTX51库到程序中。
1.新特性RTX51 Tiny第二版包含了许多新特性使实时软件开发更容易,如下代码分段RTX51 Tiny现在支持代码分段(需配置文件L51_BANK.A51文件)。
明确任务切换新功能(OS_SWITCH_TASK)可以是一个任务处于就绪状态并立即切换至另一个任务。
任务就绪标志新的RTX51 Tiny库允许给任务设置就绪状态标志,使任务处于就绪状态,在一个时间间隔、超时或接受到信号后恢复运行。
CPU空闲模式RTX51 Tiny允许CPU处于空闲模式定时器中断的用户代码支持开发者可以添加自己的代码到RTX51 Tiny定时器中断中,也可以为自己的例程设置和RTX51 Tiny相同的例程(需配置CONF_TNY.A51)。
支持间隔时间设置OS_REST+INTERVAL允许开发者在混合的时间间隔和信号中调用OS_WAIT来调整超时时间。
此外,RTX51 Tiny已被重新组合以具备灵活性、加速性以及对代码和数据空间要求更小。
RTX51 Tiny第二版在显著减小代码量并具有可扩展性。
RTX51 Tiny 2.02 中文手册RTX51 Tiny第二版(版本2.02)是RTX51 Tiny 1.xx的升级版本,他完全集成在keil的集成开发环境中。
RTX51 Tiny是一款可以运行在大多数805 1兼容的器件及其派生器件上的实时操作系统(准实时),相对与传统的开发方式而言,用实时操作系统进行开发是一种效率更高的方式。
作为实时操作系统,RTX51 Tiny虽然比较简陋,但它还是具备了一些实时操作系统的基本要素,完全可以充当我们进入实时操作系统(RTOS)世界的领路者,更为重要的是,它是免费的。
:-)从本节起,我会陆续将keil帮助文件中的RTX51 Tiny第二版的使用手册翻译为中文,并发布给大家,供大家参考。
RTX51 Tiny 2.02 中文手册part1RTX51 Tiny第2版用户手册第一章概述RTX51 Tiny是一种实时操作系统(RTOS),可以用它来建立多个任务(函数)同时执行的应用。
嵌入式应用系统经常有这种需求。
RTOS可以提供调度、维护、同步等功能。
实时操作系统能灵活的调度系统资源,像CPU和存储器,并且提供任务间的通信。
RTX51 Ti ny是一个功能强大的RTOS,且易于使用,它用于8051系列的微控制器。
RTX51 Tiny的程序用标准的C语言构造,由Keil C51 C编译器编译。
用户可以很容易的定义任务函数,而不需要进行复杂的栈和变量结构配置,只需包含一个指定的头文件。
一、What’s NewRTX51 Tiny第二版增加了许多新特性,使得实时软件的开发更加简单,如:●支持Code Banking该选项必须在CONF_TNY.A51配置文件中允许,还要在L51_BANK.A51文件中定义Code Ban king硬件配置。
●直接任务切换新增加的函数(os_swich_task)允许一个任务立即切换到另一个处于就绪态的任务。
●任务就绪标志新的库函数isr_set_ready和os_set_ready允许用户给一个任务设置就绪标志。
RTX51应用笔记mcs 51 2008-09-01 08:33:48 阅读31 评论0 字号:大中小RTX51是KEILC公司专为51系列单片机而出的嵌入式系统,目前有两个版本可供选择:RTX51 tiny和RTX51 full 两个版本。
由于使用的人不是很多,相关的资料也十分的少。
因此本人在调试时走了一点点弯路,由于之前自学了点UC/OS II嵌入式操作系统。
学习RTX51时感到十分的轻松。
此次上传一点关于RTX51软件安装包和一点中文使用手册(想学好的话必须得看英文手册,安装好软件包后,英文手册在HLP目前下可找到)。
本此讲解的为RTX51 TINY版,因为它适合于没有外展存储器的51芯片,其本身也就900个字节左右,非常的小巧,当然了功能方面也就相应缩水了!。
但是,使用RTX51 Tiny 的程序可以访问外部存储器。
RTX51 Tiny允许循环任务切换,并且支持信号传递,还能并行的利用中断功能。
RTX51 Tiny 的os_wait函数可以等待以下事件:时间到、时间间隔、来自任务或者中断的信号。
压缩包中的中文手册讲解的非常的详细,也此就不再赘说了。
下面举两个小例子:事前准备:下载附件,解压。
安装RTX 51软件包,(注KEIL C 版本必须是7.02版本以上)实例1:(最好的例子是安装后程序处带的examples,我就是认真看了交通灯那个例子后才调通了下面的LED流水灯程序的)#include#includeconst unsigned char table[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0xFF,0x00};/*时间到空间的转换,如果table是:const unsigned char table[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};则算法和代码会多出一倍来。
第28卷 第3期核电子学与探测技术
V ol .28 N o .3 2008年 5月Nuclear Electronics &Detection Technolo gy
M ay . 2008
RTX51Tiny 在核数据采集系统中的应用
周 程
(江苏省辐射环境监理站,南京 210029)
摘要:
介绍了一种基于实时操作系统RT X51Tiny 的核数据采集系统。
该系统是以P89C668为核心,512道的γ能谱数据采集系统。
将RT X51T iny 应用到核多道系统的设计中,大大提高了系统的稳定性和可靠性;同时,由于采用多任务设计,软件的模块化程度高,降低了软件开发的复杂性,提高了软件开发的效率。
关键词:核数据采集系统,RT X51T iny ,P89C668,γ能谱
中图分类号: T L81 文献标识码: A 文章编号: 0258-0934(2008)03-0599-03
收稿日期:2006-06-22
作者简介:周程(1981-),男,四川自贡人,硕士研究生,研究方向:核技术应用及辐射监测防护
1 核多道分析仪器系统介绍
本文以多道γ能谱仪器为例,首先由探测器将探测到的γ射线转换成电脉冲信号,经过信号整形放大、峰值检测和峰值保持等信号调
理电路后,启动A /D 转换,A /D 转换完毕后通知微控制器从中获取转换数据,然后通过P89C668对数据进行简单分析,在液晶屏上动态显示出γ射线的能谱曲线。
结构框图如图1所示。
图1 核多道分析仪器系统电路原理框图
2 核多道分析仪器硬件设计
2.1 探测器选择
在众多的γ射线探测器中,经过筛选比较,我们选用了探测效率较高、能量分辨率适宜、价格较便宜的NaI (Tl )闪烁体作为γ射线全谱测量探测器。
NaI (Tl )闪烁体的尺寸选取为 75×75m m 。
配合N aI (Tl )闪烁体工作的是GDB -76F 光电倍增管,工作高压约为负680V 。
2.2 放大甄别电路
电路包括了对脉冲信号的幅度放大,阈值甄别,信号的过峰检测,以及峰值保持的调理电路。
由控制电路(74LS74的第六脚)启动ADS7852,A /D 对此时的脉冲峰值进行模数转换,转换结束后触发批中断,P89C668从AD 读取有效数据并重新控制该电路(74LS74的第13脚置1,8脚为高,开关断开,电容充电)开始转换。
电路如图2所示。
2.3 AD 芯片
本设计采用的是美国TI 公司的12位并行输出A /D 芯片A DS7852。
ADS7852的最大采样率为500ksps ,有8个通道,其功率损耗在500ksps 条件下只有13m W ,功耗很低,而且ADS7852还具有一个半睡眠模式和一个全睡眠模式,可以在其不进行数据转换时把功耗降低到2mW ,ADS7852的这一特性完全满足核数据采集系统低功耗的要求。
599
图2 甄别控制电路
2.4 微控制器选择
鉴于512道能谱仪的数据处理相对较为复杂,本设计选用Philips系列单片机P89C668,其内带64kB大容量Flash存储器,8k的数据RAM足以支持核能谱程序的编写与数据的暂存。
该存储器既可并行编程也可以串行在系统编程ISP。
该器件在6个时钟周期内执行一条指令是传统的80C51的两倍。
2.5 液晶选择
液晶选用晶采光电科技公司的AG-320240A1FIQW-59H背光的LCD用于显示人机交换界面和谱线。
其主控芯片为SED1335,显示范围320×240。
在5V供电下,功耗150M W。
3 基于实时操作系统的核数据采集系统的设计
近年来,利用嵌入式实时操作系统来开发嵌入式系统的软件已是大势所趋。
这是因为传统的这类设计中,大多采用中断结合单任务的顺序机制进行,这种设计方法虽比较直观,但是也带来了诸如稳定性差、实时性差、不便于调试等问题。
尤其是当系统比较复杂、实时性要求较高时,这种单任务机制的缺陷更为明显。
利用嵌入式实时操作系统,程序开发者可以将复杂的系统分成多个相对独立的任务,从而分而治之,降低了系统的复杂性;通过对不同的任务赋以不同的优先级,从而能够保证系统的实时性;同时,由于软件系统由多个任务组成,所以其模块化程度好,提高了系统的可维护性。
因此,这里利用实时操作系统RTX51来进行核多道分析系统的软件设计。
3.1 RTX51Tiny简介
RTX51是美国keil公司开发的一种小型的应用于M CS51系列单片机的实时多任务操作系统,该操作系统简单易用,适用于51系列的所有派生机型,它分为RTX51Full和RTX51Tiny两个部分,后者是前者的子集。
我们使用的是后者,因为RTX51Tiny功能强大,足以满足本系统软件开发的需要,它可以灵活地分配硬件系统资源(CPU,存储器等)给各个任务,从而大大地缩短了程序开发的时间并增强了软件工作的稳定性。
此外,RTX51Tiny 可以很容易地运行在8051系统上,而不需要外部RAM。
它支持时间片轮转方式的任务切换,不支持占先式任务切换。
RTX51Tiny支持任务间的信号通讯,支持最大16个标准任务。
(1)RTX51Tiny所占资源很少,具体描述如下:
a)占用程序空间:900By te;
b)占用定时器:永久占用一个16位定时器,一般是定时器0(因此要记得一开始要打开全局中断和定时器0中断,并且不要对定时器0进行操作);
c)占用内部RAM的7字节Data区,占用ida ta区字节数为:3×任务数。
(2)RTX51Tiny的配置
a)RTX51Tiny有一个配置文件CONF TNY.A51,可配置时间片的大小等参数,该文件有详细的注释。
编辑完该文件后,需要进行编译,并与其它相关目标代码一起连接,之后再创建成库RTX51tny.lib。
b)在连接器的连接属性中需加上参数。
3.2 RTX51Tiny在核数据采集系统设计中的应用
本设计主要采用两个任务:任务0和任务1;任务0负责处理USB事件,任务1负责处理键盘事件;其中USB事件包括USB设备的枚举,USB端点数据的传送和接受,USB设备的挂起等操作;键盘事件包括键盘按键键值的获
600
取,键值对应相应功能的实现,如设置仪器参数、谱线实时显示、谱线刻度、数据上传等功能;两任务间利用时间片轮进行轮换调度;具体流程框图如图3所示。
值得注意的上传数据功能,当任务1中获取按键按下后,P89C668向USB端点1IN发送能谱仪存储的数据。
首次发送64By te,以后发送任务均由任务0中的USB端点0中断处理程序来启动数据上传,直至数据发送完毕返
回任务1等待新任务。
图3 RT X51T iny在系统软件中的应用4 总结
针对51系列单片机而言,RTX51是一个比较好的实时操作系统,将其应用到核探测仪器的设计中,大大提高了系统的稳定性和可靠性;同时,由于采用多任务设计,软件的模块化程度高,降低了软件开发的复杂性,提高了软件开发的效率。
参考文献:
[1]Keil Sof tw are Inc.RT X51T iny U se r's G uide.
[2]《RT X51Real2time K ernel》http://w ww.keil.
co m/r tx51/default.htm.
[3]徐爱钧,单片机高级语言C51Window s环境编程
与应用[M].北京:电子工业出版社.
[4]周立功,P DIU SBD12固件编程与驱动开发[M].北
京:北京航空航天大学出版社,2003.2.
The application of RTX51Tiny in nuclear data collection system
ZHO U Cheng
(Radiative and e nviro nmental mo nito ring and supe rvision statio n o f Jiang su P rov ince,210029,China)
Abstract:T his paper int roduces a kind of nuclear multi-channel analyse system,which isγenergy spec-trum data acquisition system with512channel and use P89C668as the key microprocessor.T he applica-tion of RT X51T iny in the design of nuclear multi-channel system greatly improve the system's stability and reliability,at the same time,the introduction of multi-task improve the softw are modularization and exploiture,cut dow n the complexity of soft ware exploiture.
Key words:nuclear dat a collection system,RTX51Tiny,P89C668,γenergy spect rum
601。