嵌入式系统在窑炉多点温度控制中的研究与应用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

嵌入式系统在窑炉多点温度控制中的研究与应用
作者:吴荣光陈正军
来源:《科学与财富》2011年第05期
[摘要] 本文基于嵌入式系统的开发及应用,利用嵌入式系统的设计方法及测试技术,结合RTOS的选取原则,选用了源码公开的嵌入式实时操作系统μC/OS-II,结合实际应用,设计了一个实现对窑炉多点温度进行控制的嵌入式系统。

[关键词] 窑炉温度RTOS μC/OS-II 多点采集
0、前言
今天嵌入式系统带来的工业年产值已超过了1万亿美元,1997年来自美国嵌入式系统大会(Embedded System Conference)的报告指出,未来5年仅基于嵌入式计算机系统的全数字电视产品,就将在美国产生一个每年1500亿美元的新市场。

美国汽车大王福特公司的高级经理也曾宣称,“福特出售的‘计算能力’已超过了IBM”,由此可以想见嵌入式计算机工业的规模和广度。

1998年11月在美国加州举行的嵌入式系统大会上,基于RTOS的Embedded Internet成为一个技术新热点。

在国内,“维纳斯计划”和“女锅计划”一度闹得沸沸扬扬,机顶盒、信息加电这两年更成了IT热点,而实际上这些都是嵌入式系统在特定环境下的一个特定应用。

据调查,目前国际上已有两百多种嵌入式操作系统,而各种各样的开发工具、应用于嵌入式开发的仪器设备更是不可胜数。

在国内,虽然嵌入式应用、开发很广,但该领域却几乎还是空白,只有少数几家公司和极少数人员在从事这方面工作。

由此可见,嵌入式系统技术发展的空间真是无比广大。

1、系统总体设计
除了实现对窑炉温度的采集、处理、控制之外,本课题一方面利用SM5964的ISP功能,实现了PC机利用ISP技术进行对系统远程加载和升级。

另一方面,利用RS232串行通信技术,实现了PC机与系统的通信,并可对系统进行远程控制。

从而实现了微机控制系统中主从式控制系统结构。

1)硬件结构
系统的原理图如图1所示。

主要有键盘输入、数据采集、输出控制、LCD显示、通信及电源模块等组成。

图1 系统原理框图
2)软件结构
系统软件是以RTOS为平台的,RTOS作为一种专门为嵌入式微处理器设计的模块化、高性能的实时操作系统,提供了一种基于开放系统标准的完善的多任务环境。

它作为嵌入式应用软件的基础和开发平台,是一段嵌入在目标代码中的软件,在嵌入式系统启动后首先执行的背景程序,用户的应用程序是运行于其上的各个任务,RTOS根据各个任务的要求进行资源管理、消息管理、任务调度、异常处理等工作。

硬件抽象层(HAL)把实时内核与硬件隔离开,实现了操作系统内核与设备无关,提高了应用系统的可靠性。

内核层是一个是实时多任务操作系统(RTOS)内核。

内核层上面是高层驱动和库函数,提供通用的API、I/O管理器。

应用程序层是用户的不同的任务。

2、系统的移植
移植是指使一个实时操作系统能够在某个微处理器平台上运行。

每个实时嵌入式操作系统都支持很多种处理器,为了使其在具体的硬件平台上工作,必须根据具体的硬件平台完成移植工作。

为了便于用户的使用,嵌入式操作系统生产商一般提供一些通用的板级支持包(Board Support Package,BSP)(有的称为硬件抽象层(Hardware Abstract Layer, HAL)),用户只需选择与自己相近的BSP进行修改,可以很容易完成移植工作。

μC/OS-II没有提供BSP,需要用户独立完成此工作。

由于在设计时已经充分考虑了可移植性,移植工作并不太复杂,要根据具体硬件平台,对文件OS_CPU.H、OS_CPU_C.C和
OS_CPU_A.ASM进行合理的修改。

要使其正常运行,处理器首先需满足以下要求:
◇处理器的C编译器能产生可重入代码;
◇用C语言就可以打开和关闭中断;
◇处理器支持中断,并且能够产生定时中断(通常在10Hz至100Hz之间);
◇处理器支持能够容纳一定数量数据(可能是几千字节)的硬件堆栈;
◇处理器有将堆栈指针和其他CPU寄存器读出和存储到堆栈或内存中的指令。

针对本论文论文中选用的SM5964微处理器和开发工具Keil C51,进行移植时,重点考虑函数的重入和任务栈的结构及大小的确定。

对三个文件进行的修改如下。

1)设置OS_CPU.H 中与处理器和编译器相关的代码
/*与编译器相关数据类型*/
typedef unsigned charBOOLEAN;
typedef unsigned charINT8U;
typedef signed char INT8S;
typedef unsigned intINT16U;
typedef signed int INT16S;
typedef unsigned longINT32U;
typedef signed long INT32S;
typedef float FP32;
typedef doubleFP64;
typedef unsigned charOS_STK;
#define OS_ENTER_CRITICAL() EA=0 //关中断
#define OS_EXIT_CRITICAL() EA=1 //开中断
#define OS_STK_GROWTH 0 //堆栈从下往上增长1=向下,#define OS_TASK_SW() OSCtxSw()/*因为微处理器没有软中断指令,所以用程序调用代替*/
2)在OS_CPU_C.C中用C语言编写6个与操作系统相关的函数
在此文件中主要是完成任务初始化函数OSTaskStkInit()的编写,每个任务在创建时,要初始化自己的任务堆栈,任务堆栈的结构类似系统发生一次中断后的堆栈结构,在进行任务切换时,它要用来存储与本任务相关的所有信息。

其它5个函数需要声明,因在此用不到,没有实际内容。

如果需要使用可以进行编程。

void *OSTaskStkInit(void(*task)(void *pd),void *ppdata,
void *ptos,INT16U opt)reentrant
{
OS_STK *stk;
ppdata=ppdata;
opt=opt;
stk=(OS_STK *)ptos;//用户堆栈最低有效地址
*stk++=15;//用户堆栈长度
*stk++=(INT16U)task & 0Xff;//任务地址低8位
*stk++=(INT16U)task>>8;//任务地址高8位
*stk++=(INT16U)(ptos+MaxStkSize)>> 8;
*stk++=(INT16U) (ptos+MaxStkSize)& 0xFF;
return((void *)ptos);
}
3)用汇编语言编写OS_CPU_A.ASM中4个与处理器相关的函数
◇ OSStartHighRdy ( ):运行优先级最高的就绪任务
◇ OSCtxSw ( ) :任务级的任务切换函数
◇ OSIntCtxSw ( ):中断级的任务切换函数
◇ OSTickISR ( ):中断服务函数
以上四个函数的具体内容见附录。

完成上述3个文件的编写之后,μC/OS-II就可以在系统的硬件平台上正常运行了。

3、结论
本文中论述了嵌入式系统方面的广泛知识,结合嵌入式系统的设计,将嵌入式实时操作系统引入微机控制系统,并最终设计了一个实现窑炉多点温度测量和控制的嵌入式系统。

该系统
是在8位嵌入式微处理器和实时多任务操作系统的基础上设计实现的,在研究中取得了满意的效果。

参考文献
[1]阮忠,邹琦.萍嵌入式无线温度采集系统的设计[J],农业网络信息,2010(10).
[2]丰海.嵌入式远程温度采集与报表曲线的生成[J],电脑知识与技术,2010(12).
[3]胡成,杨林楠,郜鲁涛.基于TE2440-Ⅱ的嵌入式温度采集驱动实现[J],计算机应
用,2010(12)■
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。

相关文档
最新文档