嵌入式实时操作系统在温度控制中应用

时间:2022-06-17 09:47:27

嵌入式实时操作系统在温度控制中应用

摘要:论文介绍了基于嵌入式实时操作系统的温度控制系统,重点分析了系统的构成、控制策略和软件设计方法。在软件设计中移植了μC/OS-II操作系统,采用多任务程序设计方法设计程序,大大降低了编写程序的复杂度。实践表明系统具有控温精度高、运行可靠等优点。

关键词: 嵌入式系统;μC/OS-II;温度控制

中图分类号:TP39文献标识码:A文章编号:1009-3044(2007)16-31108-03

Applications of Temperature Control Based on the Embedded Real-time Operating System

Songlin-Wang, Zhengqin-Wang

(Computer Department Anhui business college Vocational Technology, Wuhu 241000)

Abstract:The paper introduces the design of the temperature-controlled based on the embedded real-time operating system. Analyses mainly the construct of system and the design method of hardware and software. The embedded operating system μC/OS-II has been transplanted in the software design. It will reduce the difficulty in software design because of the new method of multitask program. The system has many advantages such as high temperature accuracy, good quality, etc.all of which have been laboratorial experimented and proved.

Key words:embedded system;μC/OS-II;temperature-controlled

1 引言

嵌入式系统是以应用为中心,满足应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统,它将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物,具有软件代码小、高度自动化、响应速度快等特点。特别适合于要求实时的和多任务的监控系统。论文利用嵌入式系统的设计方法及测试技术,结合RTOS的选取原则,选用了源码公开的嵌入式实时操作系统μC/OS-II,设计、实现对多点温度进行控制的嵌入式系统。

2 系统开发环境与技术

考虑系统性能、成本、可靠性等因素,系统的主控芯片选用了台湾Syncmos公司生产的以80C52为内核的8位微控制器SM5964,嵌入式操作系统的软件开发平台选用了源代码公开的RTOS ---μC/OS-II,运用嵌入式系统较常用的设计与测试技术。下面对其详细介绍。

2.1系统的开发环境与工具

2.1.1系统的开发

PC选用的开发环境是:Windows 2000 Server;嵌入式系统开发集成环境:Keil C51 7.0、VC++ 6.0;选用的程序设计语言是:汇编、C语言。

2.1.2嵌入式微控制器

SM5964 微控制器是系统的核心器件,它是80C52 微控制器家族的派生产品,其硬件特征和强大的指令系统使它成为一种性能价格比高的控制器。除具有通用80C52优点之外,其特点如下:

(1)集成度高:它具有丰富的片内资源,包括3个16位定时器、1个看门狗定时器、全双工串口通道等,其PDIP 封装具有32个I/O口而PLCC/QFP封装则具有多达36个I/O口。

(2)存储量大:它内置了64 KB Flash ROM和1 KB RAM。

(3)ISP特性:它具有在系统可编程(ISP)功能,可以通过串口或者并口利用ISP功能实现系统的程序在线修改或升级。片内有多达4KB的存储空间供ISP编程之用。

(4)PWM特性:片上有5路PWM通道可供用户使用。

2.1.3嵌入式操作系统μC/OS-II

在进行嵌入式系统设计时,选择适合自己的实时操作系统是至关重要的,我结合具体的应用,考虑开发成本等因素,根据嵌入式操作系统的选取原则并基于μC/OS-II的许多特点,选用了源代码公开的实时操作系统μC/OS-II。μC/OS-II的主要特点有:

(1)公开源代码:源代码全部公开,这样使系统变得透明,很容易就能把操作系统移植的各个不同的硬件平台上,并可根据需要进行扩充。

(2)可移植性:μC/OS-II绝大部分源码是用ANSI C写的,可移植性(Portable)较强。它可以在绝大多数8位、16位、32位甚至64位微处理器、微控制器、数字信号处理器(DSP)上运行。

(3)占先式:μC/OS-II完全是占先式(Preemptive)的实时内核,总是运行在就绪条件下优先级最高的任务。大多数商业内核也是占先式的,μC/OS-II在性能上与它们类似。

(4)可确定性:全部μC/OS-II的函数调用与服务的执行时间具有其可确定性。μC/OS-II的系统服务的执行时间不依赖于应用程序任务的多少。

(5)稳定性与可靠性:μC/OS-II自1992年以来已经有很多成功的商业应用,其稳定性和可靠性都有很好的保证。

μC/OS-II的其硬件和软件体系结构如图1。

图1 u C/OS-II硬件与软件的体系

2.2 嵌入式系统协同设计技术

如何工程实际性能出发,依据相应的指导原则和分配算法对硬件/软件功能进行分析及合理的划分,从而使得系统的整体信能、运行时间、能量损耗、存储能量达到最佳状态,即为硬件/软件协同设计技术的重要研究内容。

典型的硬件/软件协同设计过程是:首先,选用独立于任何软硬件的功能性规格方法对系统进行描述;然后,在系统描述基础上对硬件/软件的功能模块进行划分;最后,需对硬件、软件的功能划分的结果进行评估。如果评估结果不满足要求,说明划分方案的选择是不合理的,需要重新划分硬件/软件模块,以上过程重复直到系统获得一个满意的硬件/软件实现为止。

软硬件协同设计过程可以归纳为:需求分析、软硬件协同设计、软硬件实现、软硬件协同测试和验证。

2.3 嵌入式系统的测试技术

嵌入式系统软件的测试必须考虑时间和硬件影响的问题。对于硬件,一般是采用专门的测试仪器进行测试;而对于实时嵌入式软件,则需要有关的测试技术和测试工具的支持,需要采取特定的测试策略。

测试技术指的是软件测试的专门途径,以及提供的能够更加有效的运用这些途径的特定技术。测试技术主要有回归测试(基于代码的测试或白盒测试)、第三方的验证和确认测试(功能测试或黑盒测试)及维护中的修改或升级测试(回归测试)等。目前,大量的实时嵌入式软件是面向对象编程和基于部件开发的,它们对时空和宿主机、目标机的交叉开发方式,论文选用该测试技术。

3 温度控制系统的设计与实现

嵌入式的多点温度监控系统需完成测量和控制两大功能。系统测量功能包括:多点温度数据采集、信号转换、信号传输等功能;系统的控制功能包括:温度数据的分析处理、输出控制信号、显示、通信等功能。下面将详细说明各个功能模块的设计与实现。

3.1系统的硬件设计

温度控制系统主要有键盘输入、数据采集、输出控制、LCD显示、通信及电源模块等组成。系统结构如图2。

图2 系统结构框图

3.1.1键盘输入电路

键盘是一组按键的组合,它是常用的输入设备,可以通过键盘输入数据或者命令,实现简单的人机对话。键盘可分为独立联接式和行列式(矩阵式)两类,每类按其译码方式又分为编码式及非编码式两类,设计中使用的是独立联接非编码式键盘。每个按键使用的是一个瞬时接触开关,这种联接方式可以容易被微处理器检测,但由于按键会产生机械抖动,在按键被按下或者抬起的瞬间,一般持续5~15ms,因此设计中要去除键抖动。可以通过硬件双稳态电路或者软件延时来实现,设计中采用延时20ms实现的。

3.1.2数据采集电路

本系统实现对两路温度信号的采集,为了节省硬件成本,在前向通道中采用了多路选择开关,使用了两个多路模拟开关器件CD4052,实现信号的差分输入,完成对两路温度信号的轮流采样,然后将信号送入一个公共的模数转换器LTC2430,完成模数转换。由微处理器的P1.2、P1.3两引脚实现信道的选择。电路如图3。

图3 数据采集电路图

3.1.3模数转换电路

系统模数转换采用LTC2430,设计中使其工作在外部时钟驱动模式下,工作状态分为转换(Conversion)、休眠(Sleep)和数据输出(DataOutput)三个状态。

3.1.4通信电路

系统所进行的通信是实现与PC机的通信,选择最为广泛的通信标准RS232通信标准。由于PC机使用的是RS232电平,而SM5964输出是TTL电平,因此选用MAX232解决电平匹配的问题。电路如图4。

图4 通信电路原理图

SM5964的串行发送端口TXD和接收端口RXD经MAX232芯片进行电平转换后,分别与PC机的数据接收端口RXD和数据发送端口TXD相连接。在设计中,使用了两个发光二极管D7和D8监视通信的工作状态。

3.1.5 LCD显示电路

对于LCD MGLS-12864,内置HD61202图形液晶显示模块,厂家为其设置了7条指令来完成对它的控制,有两条指令用于显示状态的设置,其余指令用于数据读/写操作,在此不对其进行详细的说明。

MGLS-12864与微处理器的连接方式有两种:一种是直接访问方式,一种为间接控制方式。直接访问方式就是将液晶显示模块的接口作为存储器或者I/O设备直接挂在计算机总线上,计算机以访问存储器或者I/O设备的方式操作液晶显示模块的工作。而间接控制方式是计算机通过自身的或者系统中的并行口与液晶显示模块连接,通过对接口的操作达到对液晶显示模块的控制。设计中论文采用了间接控制方式,这种方式的特点是电路简单,控制时序有软件实现,可以实现高速计算机与液晶显示模块的接口。

3.1.6输出控制及报警指示电路

输出控制电路采用12V直流继电器对外电路进行控制,通过控制继电器的吸合时间来实现对温度的控制,继电器是与强电控制电路(大电流、高电压)联系在一起,会对应用系统产生严重干扰,使系统不能正常工作。为了消除干扰,在微机接口与继电器之间分别加了光耦,使系统主机部分的地与强电控制电路的地隔开。当温度超限或者系统出现致命错误时,系统会发出报警指示且实现在LCD上显示。

3.2系统的移植

系统移植是指使一个实时操作系统能够在某个微处理器平台上运行。每个实时嵌入式操作系统都支持很多种处理器,为了使其在具体的硬件平台上工作,必须根据具体的硬件平成移植工作。μC/OS-II需要用户独立完成此工作。由于在设计时已经充分考虑了可移植性,移植工作并不太复杂,要根据具体硬件平台,对文件OS_CPU.H、OS_CPU_C.C和OS_CPU_A.ASM进行合理的修改。要使其正常运行,处理器首先需满足以下要求:

(1)处理器的C编译器能产生可重入代码;

(2)用C语言就可以打开和关闭中断;

(3)处理器支持中断,并且能够产生定时中断(通常在10Hz至100Hz之间);

(4)处理器支持能够容纳一定数量数据(可能是几千字节)的硬件堆栈;

(5)处理器有将堆栈指针和其他CPU寄存器读出和存储到堆栈或内存中的指令。

3.3系统的软件模块设计

系统软件设计平台RTOS作为一种专门为嵌入式微处理器设计的模块化、高性能的实时操作系统,提供了一种基于开放系统标准的完善的多任务环境。它作为嵌入式应用软件的基础和开发平台,是一段嵌入在目标代码中的软件,在嵌入式系统启动后首先执行的背景程序,用户的应用程序是运行于其上的各个任务,RTOS根据各个任务的要求进行资源管理、消息管理、任务调度、异常处理等工作。

系统软件的体系结构如图5所示。硬件抽象层(HAL)把实时内核与硬件隔离开,实现了操作系统内核与设备无关,提高了应用系统的可靠性。内核层是一个是实时多任务操作系统(RTOS)内核。内核层上面是高层驱动和库函数,提供通用的API、I/O管理器。应用程序层是用户的不同的任务。

图5 RTOS体系结构

3.3.1任务划分

根据要实现的功能,系统划分为如下6个任务:按键处理、LCD显示、串行通信、输出任务、控制运算、信号采集处理。从系统设计方面,可以划分为人机交互模块、串行通信模块、温度测量及控制模块和远程加载模块。

3.3.2基本界面设计

为了完整地实现系统的控制功能,需要在界面上显示全部的信息。显示的信息量较多,采用了六个显示界面分屏显示,界面的切换、菜单的选择、参数的选择及修改等是通过不同的按键来实现。

图6 系统基本界面

3.3.3串行通信模块设计

串行通信模块是系统设计中的一个重要部分。它要实现与PC机通信,接收PC机发来的命令帧,在确认正确后进行分析执行,并向PC机发送相关信息和数据。该模块设计工作主要为串口设备驱动程序设计与串行通信应用程序的设计,前者主要完成串口的工作方式、波特率等环节的设置,该部分工作具有系统设计共性,在此主要分析串行通信设计。

在系统中串行通行程序是专门用于接收PC机发送来的读写命令,根据命令的不同,完成不同的操作,既可以对系统当前的运行状态或参数进行改变,也可以把PC机需要的数据信息打包发送。在设计中,为简单起见,系统作为从机,只能被动接收PC机发来命令,对命令帧分析处理之后执行,可以改变系统当前的运行方式和参数。当需要向PC激发信息时,它要按要求把相关信息组帧发送,如当前继电器状态、第一路温度值、第二路温度值等。程序流程如图7所示。

图7 串行通信流程图

3.3.4温度测量及控制模块设计

数据信号的采集处理是把实际过程中的模拟量、开关量以及其它信息量通过相关的方式送入计算机,再由计算机进行存储和进一步的处理(如计算、显示、控制等)。模拟量的采集是将模拟量转换成数字量并送入计算机。然后调用处理算法将这些数字量存储并进行二次计算处理,一方面要输出显示便于观察,另一方面调用相关的控制模块,对被测对象进行控制。

系统要实现对两路温度进行采集控制,温度信号经两个模拟转换开关CD4052之后,以差分式输入模拟转换器LTC2430的输入端子,转换后的数字量送入微控制器SM5964,从而完成信号的采集。控制模块采用了时间最优控制和PID算法相结合的控制方法合理的控制算法对被控对象进行控制,设计中取得很好的效果。

3.3.5远程加载模块设计

此功能模块就是利用“在系统编程”(In-System Programming,简称ISP)技术,可以实现对系统进行在线升级。所谓“在系统编程”技术是指在用户设计的微控制器系统中为配置新的系统功能而对器件进行重新编程,并在线地将程序代码(固件)下载到程序存储器中的一种编程技术。它的出现是对传统编程方法的重大突破。在设计中,PC机利用串口向系统发送各种命令,如片擦除、页擦除、编程等命令,系统正确接收之后分析执行,从而完成加载升级功能。

4 结论

论文基于嵌入式系统设计框架,选用代码开发的μC/OS-II操作系统,在模块化、高性能的RTOS软件平台上采用多任务编程技术、分层体系思想完成系统各个软件模块的设计,利用系统的ISP功能,实现系统程序加载和动态更新,利用RS232串行通信技术实现通过PC的远程控制功能。嵌入式温度控制系统的实时性、可靠性等工程性能优良,并具有升级更新能力。

参考文献:

[1]巴内特,奥卡尔.嵌入式C语言编程与Microchip PIC/Embedded C Programming and the Microchip PIC [M].清华大学出版社,2005.

[2]江申,陈首先,王子健.基于嵌入式技术的温度测量系统[J].微计算机信息,2005,21(10-2):25-27.

[3]孙瑞志,史美林.基于S3C44BOX的嵌入式温度湿度实时监控系统[J].微计算机信息,2006,22(6-2):207-208.

[4]叶以民,赵会斌,耿增强.等.嵌入式系统中的实时操作系统[J].测控技术,2000,19(4):6-8.

注:“本文中所涉及到的图表、公式注解等形式请以PDF格式阅读原文。”

上一篇:C语言指针和汇编语言间接寻址的关系探讨 下一篇:平衡排序二叉树的C++算法实现