嵌入式系统在温度控制中的应用Word格式文档下载.docx
- 文档编号:14360657
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:20
- 大小:432.02KB
嵌入式系统在温度控制中的应用Word格式文档下载.docx
《嵌入式系统在温度控制中的应用Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《嵌入式系统在温度控制中的应用Word格式文档下载.docx(20页珍藏版)》请在冰豆网上搜索。
第1章概述
嵌入式系统被定义为:
以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
实际上嵌入式系统是计算机的一种应用形式,是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合后的产物,具有软件代码小、高度自动化、响应速度快等特点。
因此它是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。
特别适合于要求实时的和多任务的系统。
复杂的微机控制系统使用常规的顺序程序设计方法加上中断来实现功能是比较困难的,主要体现在以下几个方面:
(1).实时性差:
由于计算机在处理中断时,一般不允许响应低级和同级中断,为了提高实时性,要求中断处理程序尽量短。
但是有许多实时操作的处理比较复杂,需要较长的CPU执行时间。
如果用中断来完成这些处理,则在处理时,无法响应低级或同级中断。
如果采用中断置标志的方法,让主程序来进行处理,则一方面会增加程序的复杂性,另一方面也难以做到实时处理,因为主程序不可能在执行其它程序时,随时去检查这些标志位而转向不同的处理程序。
(2).难以实现并行操作的相互通信:
在功能较强的实时系统中,除了主程序有时需要与中断间进行信息交换外,各个并行操作之间有时也需相互通信。
这些用常规方法是难以实现的。
(3).结构复杂、移植性差、维护困难:
单片微机功能的复杂化,使软件越来越复杂,特别是为了实现并行操作,需使用大量的中断和标志,使程序结构十分混乱,难以设计和调试。
同时由于程序采用线性结构,使得程序难于修改或者移植,因此缺乏灵活性、通用性和可维护性。
第二章系统的设计与实现
设计出一个实现对温度进行测量和控制的嵌入式系统。
系统具有对外界两点温度进行采集的能力,采集的模拟信号经A/D模块转换成相应的数字量,送入微处理器进行处理。
采集到的每一路温度都要与系统此路温度设定值进行比较,然后根据结果调用合适的控制算法,并通过控制相应的继电器的占空比实现对温度的控制、测量、运算处理、输出控制、显示、通信。
为此引出串行通信设计
利用RS-232串行通信,实现了与PC机进行通讯功能和远程加载功能。
考虑到实际的应用及成本等因素,选用的主要硬件器件有台湾SynCMOS公司的生产的SM5964微控制器,数据采集部分选用了凌特公司(LinearTechnology)推出的20位无延迟模数转换器LTC2430,串行通讯部分使用MAX232芯片,液晶显示屏选用了北京精电蓬远显示技术公司生产的MGLS-12864。
嵌入式操作系统选用了源代码公开的μC/OS-II。
选用的开发环境是:
Windows2000Server
开发工具:
KeilC517.0、VC++6.0
使用的语言是:
汇编、C语言
2.1系统的硬件设计
系统的原理图如图2-1所示。
主要有键盘输入、数据采集、输出控制、LCD显示、通信及电源模块等组成。
图2-1系统原理框图
下面介绍一下主要部分的电路图设计。
1).键盘输入电路
键盘是一组按键的组合,它是常用的输入设备,可以通过键盘输入数据或者命令,实现简单的人机对话。
键盘可分为独立联接式和行列式(矩阵式)两类,每类按其译码方式又分为编码式及非编码式两类。
设计中使用的是独立联接非编码式键盘。
电路图如图2-2所示:
图2-2键盘原理图
每个按键使用的是一个瞬时接触开关,这种联接方式可以容易被微处理器检测,但由于按键会产生机械抖动,在按键被按下或者抬起的瞬间,一般持续5~15ms,因此设计中要去除键抖动。
可以通过硬件双稳态电路或者软件延时来实现,设计中采用延时20ms实现的。
对于串键,采用无限处理方法。
同时为了防止按一次键而产生多次处理的情况(键扫描和键处理速度较快而此时键还没释放),在有键按下时,作一次键处理后还要检测按下的键是否释放。
2).数据采集电路
本系统实现对两路温度信号的采集,为了节省硬件成本,在前向通道中采用了多路选择开关,使用了两个多路模拟开关器件CD4052,实现信号的差分输入,完成对两路温度信号的轮流采样,然后将信号送入一个公共的模数转换器LTC2430,完成模数转换。
由微处理器的P1.2、P1.3两引脚实现信道的选择。
电路图如图2-3所示:
图2-3数据采集原理图
对温度的测量使用铂(Pt)热敏电阻(100Ω),使用桥式电路进行测量。
铂电阻是一种高性能的贵金属热电阻,具有精度高、稳定性好、性能可靠等优点,铂电阻的温度测量范围在-200℃到+850℃之间,在小于200℃时,非线性误差小于0.3%,它的电阻值R和温度t之间的关系可以近似地表示为:
A,B为常数,A为热敏系数(ΔR/℃)。
测量时采用的是查表法来计算温度值。
对于模数转换器LTC2430,设计中使其工作在外部时钟驱动模式下,工作状态分为转换(Conversion)、休眠(Sleep)和数据输出(DataOutput)三个状态。
此时它的数据输出波形图如图2-4所示:
图2-4LTC2430数据输出波形图
3).通信电路
本系统所进行的通信是实现与PC机的通信,选择了RS232通信标准。
这是因为RS232标准是使用最为广泛的通信标准,几乎每一台PC机上都有两个符合RS232标准的串行口,所以采用RS232标准有利于通用性。
由于PC机使用的是RS232电平,而SM5964输出是TTL电平,因此选用MAX232解决电平匹配的问题。
电路图如图2-5所示:
图2-5通信电路原理图
SM5964的串行发送端口TXD和接收端口RXD经MAX232芯片进行电平转换后,分别与PC机的数据接收端口RXD和数据发送端口TXD相连接。
SM5964串行通信的发送端TXD连接到的11引脚,发出的数据信号经过MAX232芯片转换后,由0~5V的TTL电平变为-12~+12V的RS232电平,从14引脚输出到PC机串行口的第二引脚。
按RS232通信协议规定,PC机串行口的第二引脚为数据输入端,这样,发出的数据就可被PC机接收到。
由PC机串行口的发送端TXD(PC机串行口的第三引脚)传输来的数据,作为RS232电平的信号输入到MAX232芯片的第13引脚,经过MAX232芯片进行电平转换后变为TTL电平,再由MAX232的12引脚输出到SM5964串行口的接收端口RXD。
从而完成数据的双向传输。
在设计中,使用了两个发光二极管D7和D8监视通信的工作状态。
4).LCD显示电路
对于LCDMGLS-12864,内置HD61202图形液晶显示模块,厂家为其设置了7条指令来完成对它的控制,有两条指令用于显示状态的设置,其余指令用于数据读/写操作,在此不对其进行详细的说明。
MGLS-12864与微处理器的连接方式有两种:
一种是直接访问方式,一种为间接控制方式。
直接访问方式就是将液晶显示模块的接口作为存储器或者I/O设备直接挂在计算机总线上,计算机以访问存储器或者I/O设备的方式操作液晶显示模块的工作。
而间接控制方式是计算机通过自身的或者系统中的并行口与液晶显示模块连接,通过对接口的操作达到对液晶显示模块的控制。
设计中我采用了间接控制方式,这种方式的特点是电路简单,控制时序有软件实现,可以实现高速计算机与液晶显示模块的接口。
电路图如下图所示,以P2口作为数据口,P3.3为/CSA,P3.4为/CSB,实现左右两区的显示和切换。
P3.5为D/I,P3.6为R/W,P3.7为E,三者产生控制LCD数据与状态的读写等信号。
电位器用于显示对比度的调节。
电路图如图2-6所示:
图2-6显示电路原理图
5).输出控制及报警指示电路
输出控制电路采用12V直流继电器对外电路进行控制,通过控制继电器的吸合时间来实现对温度的控制,继电器是与强电控制电路(大电流、高电压)联系在一起,会对应用系统产生严重干扰,使系统不能正常工作。
为了消除干扰,在微机接口与继电器之间分别加了光耦,使系统主机部分的地与强电控制电路的地隔开。
当温度超限或者系统出现致命错误时,系统会发出报警指示且实现在LCD上显示。
2.2系统的软件设计与实现
2.2.1设计总述
系统软件是以RTOS为平台的,RTOS作为一种专门为嵌入式微处理器设计的模块化、高性能的实时操作系统,提供了一种基于开放系统标准的完善的多任务环境。
它作为嵌入式应用软件的基础和开发平台,是一段嵌入在目标代码中的软件,在嵌入式系统启动后首先执行的背景程序,用户的应用程序是运行于其上的各个任务,RTOS根据各个任务的要求进行资源管理、消息管理、任务调度、异常处理等工作。
(图2-7软件体系结构)
系统软件的体系结构如图2-7所示。
硬件抽象层(HAL)把实时内核与硬件隔离开,实现了操作系统内核与设备无关,提高了应用系统的可靠性。
内核层是一个是实时多任务操作系统(RTOS)内核。
内核层上面是高层驱动和库函数,提供通用的API、I/O管理器。
应用程序层是用户的不同的任务。
2.2.2任务的划分
系统中每个任务均有以下三部分组成:
应用程序、任务堆栈以及任务控制块。
其中只有应用程序被烧入ROM,而任务本身则被置于RAM,待系统运行时再予建立。
任务堆栈用以存储CPU的寄存器内容。
当某任务由运行态变为其它状态时,CPU寄存器内容压入相应任务堆栈,反之则将相应任务堆栈内容置入CPU寄存器。
作为系统中定义的一个数据结构,任务控制块的内容包括任务堆栈的地址、任务当前状态、任务优先权等。
操作系统通过查询任务控制块内容实现对任务的管理。
在进行任务划分设计时,要考虑以下问题:
1).任务间的关系:
这包括两个方面,一方面是任务间的同步和通信,这可通过信号量、邮箱等通信方法实现。
另一方面,资源共享,通过信号量或其它方法实现。
我在系统设计中使用了信号量和中断的开启,实现上述功能。
2).定时或者延时:
一个任务可能需要每隔一段时间执行一次操作。
如温度采样计算任务,在设计中每秒分别对各路温度采样一次,然后进行计算。
这种定时操作可以而且必须使用操作系统的定时系统来实现。
3).等待操作:
在任务程序设计中,应尽量避免使用程序询问方法,而用中断方式来实现等待操作,除非程序执行时间小于任务调度时间。
另外为防止发生意外情况使等待事件不发生而引起任务无限等待的情况,都加了等待超时处理功能。
根据要实现的功能,我将系统划分为如下6个任务:
按键处理、LCD显示、串行通信、输出任务、控制运算、信号采集处理。
从系统设计方面,可以划分为人机交互模块、串行通信模块、温度测量及控制模块和远程加载模块。
系统软件结构图如图2-8所示。
图2-8系统软件架构
μC/OS-II的任务调度是按优先级进行的,根据各任务的实时性要求及重要程度,分别置它们的优先级为4、5、6、7、8、9。
其中0、1、2、3、OS_LOWEST_PRIO-3、OS_LOWEST_PRIO-2、OS_LOWEST_PRIO-1、OS_LOWEST_PRIO这几个优先级保留以被系统使用。
优先级序号越低,任务的优先级越高。
任务间的通信和同步是利用信号量和开关中断来实现的。
下面对各任务作简要的介绍。
1.按键处理任务
此任务主要完成键盘扫描工作。
用户可以通过键盘对系统进行控制,如改变运行状态、修改相关的参数等,系统必须做出及时的处理,因此在系统中把它的优先级设为最高,一旦有键被按下,系统就能够作出响应完成相应的功能。
2.LCD显示任务
此任务用于刷新LCD显示的工作。
系统的运行状态、各路的温度值、PID相关参数大小、各继电器的状态、错误指示及其它各种信息需要及时的通知用户,当有关的信息发生改变时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 温度 控制 中的 应用