当前位置:首页 > 嵌入式 > 嵌入式硬件

随着科学技术的发展,温度的自动控制已经广泛地应用在生产和生活中,因此对自动控温方法的研究具有很强的实际意义。由于温度具有大惯性和纯延滞的非线性特性,实际温度控制过程的复杂性又使温度控制系统的参数不易确定,因此实际的温度控制系统是一个复杂的自动控制系统,用一般的控制理论难以得到较为满意的结果。以此为目的,在此设计了基于80C196KB单片机为核心的温度控制系统,通过多线程和专家系统优化程序的算法,对温度进行闭环控制,从而达到精确控温的目的。


1 硬件系统设计

图1为系统原理框图,通过图示可以看出,硬件系统分为:温度采样及放大、显示、按钮输入、温度控制四个部分。系统首先通过AD590采样将温度信号转化为电压信号,电压信号经过放大通过80C196KB单片机对其进行A/D采样,通过采样的结果,可以算得控制系统的温度并显示出来,然后将实际温度与设定的温度(设定温度可以通过输入按钮进行输入)进行比较,根据比较的结果控制加热电阻和风扇的占空比,从而达到闭环控温的目的。



2 软件系统设计

在软件设计中,采用了多线程的编程结构并结合专家知识,对整个系统的控制性能进行改善。

2.1 多线程结构

多线程是指“同时”存在几个执行体,按几条不同的执行线索共同工作的情况。多线程实现单个进程中的并发计算,各线程间共享进程空间的数据,并利用这些共享单元来实现数据交换、实时通信与必要的同步操作。在单片机编程里面,多线程可以通过编写中断子程序进行实现。一个中断子程里面可以包含优先级不同的线程,优先级高的排在该中断子程的开始,优先级最低的排在最后。执行顺序如下:屏蔽其他线程→读系统共用资源→执行操作→改写系统共用资源→开放所有线程→返回主进程。

2.2 专家系统

在该系统中,加热电阻的控制脉冲和风扇的控制脉冲是控制温度关键,其脉宽的设置决定了系统温度控制的精度和稳定性,而脉宽的设置是由专家知识进行判定的。

2.2.1 专家系统概述

所谓专家系统,是指具有专家知识,能够像专家一样解决特定领域复杂问题的计算机软件系统。其特征如下:

(1)系统功能的针对性。ES通过牺牲通用问题求解能力而换得在某一狭窄领域高水平处理问题的能力。

(2)符号推理启发性。ES主要处理不良结构问题,需运用多种启发性经验知识。这些启发式知识往往具有不完全性和不确定性,因此ES常要采用不精确推理等非常规推理方法。

(3)透明性。ES可向用户解释其推理过程,并能回答一些关于它自身的问题。

(4)灵活性。由于ES知识库采用了独立于程序的外部显式表示方法,用户很容易对其进行修改或补充。

2.2.2 脉宽控制

从经验可以知道,当实际温度和目标相差(下面统一称作△T)甚远时,希望电阻发热量大些或者风扇转速高些;而△T较小时。希望电阻发热量小些或者风扇转速低些。



图2为系统温度控制电路图,从图中可以看出,脉宽越小,电阻的发热量越大,风扇的转速越高。至于控制的具体脉宽是多少,这就需要不断的尝试,通过经验进行判断,看哪些组合最适合。判断的原则如下:保证系统控制的稳定性;尽量不要出现超调的现象;保证温度的控制精度。通过实验,得到了如下数据的脉冲控制,见表1。



2.3 程序具体结构

在软件系统中,一共有3个线程,按照优先级从高到低的顺序如下:温度设置线程、温度采样线程、温度显示线程。另外系统有1个主进程。

2.3.1 主进程

主进程实现如下操作:设置各个中断(及设置线程)、初始化全局变量以及等待中断。它的流程图如图3所示。



2.3.2 温度设置线程

该线程通过HIS上升沿触发事件来实现,其中HSI.0为温度加10,H1S.1为温度减10,HIS.2为OPTION取反,其流程图如图4所示。





2.3.3 温度采样线程

温度采样线程如图5所示,该线程的扫描周期为3 000。在该线程中,对温度的采集进行了平均化的处理,即每16次平均作为最终结果,这个处理降低了毛刺信号的影响,使得温度采样趋于稳定,从而使温度显示变得比较稳定,提高了系统的抗干扰能力。另外,在“设置HSO_ PWM和PWM_CONTROL”这一步中,采用了专家知识设置控制的脉宽,使得温度的控制趋于更精确。



2.3.4 温度显示线程

温度显示线程图6所示,该线程的扫描周期为1 000。在该线程中,单片机的P1.0~P1.3管脚输出至74LS48译码器,而单片机的P1.4~P1.6管脚分别控制十位、个位、小数点三个数码管的通与断。每一个状态中,数码管只有一个被点亮,在足够短的时间内,通过循环点亮三个数码管,就可以得到数码显示的效果,这一步可以通过对状态的循环移位来实现。



3 结语

由于一般控制理论难以对温度这种大惯性、纯延滞的非线性且参数不易确定的系统进行控制。为此以温度控制为例,介绍了一类多线程温度控制专家系统,该系统具有调节时间短、超调量小、稳态精度高的特点,能够对温度进行较为满意的控制。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

嵌入式开发作为信息技术的关键支柱,在全球数字化转型浪潮中扮演着无可替代的角色。从传统的嵌入式微控制器到如今先进的片上系统(SoC),再到与云计算、人工智能深度融合的智能终端,嵌入式系统的演进与发展始终紧跟时代脉搏。本文将...

关键字: 嵌入式开发 智能应用

嵌入式开发是一种专门针对特定硬件平台设计和实现软件系统的工程实践,它涵盖了从需求分析、系统设计、编程实现、调试测试直到产品部署及维护的全过程。本文将深入探讨嵌入式开发的主要阶段,分解其流程并阐述每个步骤的关键要点,以便于...

关键字: 嵌入式开发 嵌入式软件
关闭
关闭