嵌入式课程设计之ARM的温度采集系统.docx
- 文档编号:7951842
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:9
- 大小:347.05KB
嵌入式课程设计之ARM的温度采集系统.docx
《嵌入式课程设计之ARM的温度采集系统.docx》由会员分享,可在线阅读,更多相关《嵌入式课程设计之ARM的温度采集系统.docx(9页珍藏版)》请在冰豆网上搜索。
嵌入式课程设计之ARM的温度采集系统
指导教师评定成绩:
审定成绩:
重庆邮电大学
课程设计报告
设计题目:
ARM的温度采集系统
学校:
重庆邮电大学
学生姓名:
专业:
自动化
班级:
xxxxxxxx
学号:
xxxxxxxxxx
指导教师:
设计时间:
2012年12月
重庆邮电大学
摘要
本文设计了一种温度控制系统,它基于三星公司生产的ARM7内核的S3C44B0,以Pt100热电阻采集温度信号,通过RWB温度变送器和A/D转换获得实际温度值,同时通过LCD实时显示;通过调整脉宽调制的占空比,控制加热电路继电器的通断时间,实现温度的闭环控制。
文章介绍了该系统的构成原理,实现流程,并重点介绍了PID自整定算法的原理和实现,给出了部分应用电路。
此温度控制系统应用于热电仪,实际应用表明,系统稳定、可靠,满足了热电仪的温度控制要求。
关键词:
ARM;温度控制;PID;自整定
Abstract:
Atemperaturecontrolsystemisdesigned,whichisbasedontheS3C44B0oftheAdvancedRISCMachine(ARM)producedbytheSamsung.UsingPt100tomeasurethetemperature,therealvalueisgottenthroughRWBtemperatureconverterandA/DtransformationanddisplayedbyLCDmeanwhile.Thesystemisundertheclosedloopcontrolwiththeheatingcircuitrelay’sopeningorclosurewhichisdecidedbythePWM.Thesystemcomponentprincipleandtheflowrealizationisintroduced,someapplicationcircuitisprovided,emphasizethePIDself-turningtheoryandmethod.Thetemperaturecontrolsystemisdesignedforthethermoelectricityinstrument.Theexperimentalresultsshowthatitissafeandreliable,andmeetthedemandofthethermoelectricityinstrument.
Keywords:
advancedRISCmachine;PID;temperaturecontrol;self-turning
引言
处在温差条件下的矿物,对外表现为温差热电势E,温差一定时,E达到一平衡值。
E除以温差得到的就是矿物的热电系数,它能够灵敏的反映矿物成分和晶体结构的某些细微差异,在金矿找矿和矿床评价方面具有极高的应用价值。
用来测量矿物热电性的热电系数测量仪(热电仪),在市场上并没有现成的产品,需要根据需求自行开发。
其中一项关键技术就是将温度精确控制在设定值,为半导体矿物创造恒定的温差条件。
本文所设计的温度控制系统就是来解决这一问题。
温度控制系统是一种典型的过程控制,与其它控制系统相比,温度控制系统有其特殊性[1]。
例如,对机械系统或机电系统,用线性定常集中参数的动力学微分方程来描述,通常不会带来过大的误差。
然而用同样的方法来处理温度过程显然不能令人满意,因为热能的传递是以场的方式进行的,所以它具有明显的非线性、时变性、分布性以及时间滞后。
若用解析的方法为它建模,其结果不是过于复杂,就是在模型简化过程中,失去某些最本质的因素,使模型和对象间产生过大的偏差。
因此,对温度系统的建模,通常用经验建模,或经验与理论分析相结合的建模。
本文介绍的温度控制系统,通过改进的PID控制算法,结合硬件ARM7内核的S3C44B0微处理器,由传感器PT100获取温度信号,通过自整定获取最适合系统的实时控制参数,实现对所需温度的精确控制。
系统包括电加热器、控制器和温度传感器及变换器三部分,构成闭环控制回路。
这种主动热控制的特点在于可适时调节被控对象的热传递效率,对外部变化反应灵敏,温度调节精度高。
系统设计
总体设计
该温度控制系统要求实现对设定温度的实时控制,操作人员可以通过键盘设定目标控制温度,通过单片机的逻辑程序控制,实现温度的高精度控制。
整个控制系统的组成主要分为三部分,即三星公司生产的S3C44B0X单片机所构成的单片机控制系统;由Pt100热电阻、温度补偿,运算放大电路构成的温度检测通道;由三极管运放电路、固态继电器和外部加热器构成的输出控制通道。
其中,单片机控制系统是整个系统的控制中心,所有的数据运算、处理和交换功能都是利用单片机的软件来实现。
工作时,设定温度由操作人员通过键盘完成,并通过LCD显示设定温度值;由Pt100热电阻检测控制对象实际温度值,经过RWB温度变送器和放大电路,将温度信号送入S3C44B0的A/D端口,经过固定公式换算得出实际温度并实时显示。
程序控制系统将实际温度值与系统设定温度值进行比较,按照自整定PID控制算法进行运算,确定下一时间单元输出PWM信号占空比,以控制固态继电器的导通时间,从而控制外部加热器的平均输出功率,实现温度控制。
硬件设计
系统原理框图
本设计的基于ARM的嵌入式数据采集和显示装置的原理框图如图1所示。
由图可见,本系统采用“电源部分+ARM核心控制模块+温度采集模块”实现所需功能。
并考虑到系统的可扩展性和延伸性,本系统采用主从CPU协同工作,实现了数据的实时采集、传输与显示,具有处理速度快、精度高、人机交互界面友好、稳定性高、扩展性好等优点。
本设计的基于ARM的嵌入式数据采集和显示装置的原理框图如图1所示。
由图可见,本系统采用“电源部分+ARM核心控制模块+温度采集模块”实现所需功能。
图1温控系统原理图
电源电路设计
本系统的电源电路由两部分组成:
系统总电源电路和RAM核心模块电源电路。
如图2:
+12V恒定直流电源经电容滤波,分别进入7809和7805稳压,得到+9V和+5V的稳定电压输出后分别供给ARM核心控制模块和其余电路部分使用。
图中IN4148是为了防止输出端并接高于本稳压模块的输出电压而烧坏7809和7805而特别设计,达到了可靠性电源设计目的。
另外,由于系统正常工作电流较大,因此使用时均应在7809和7805上加散热片散热。
由图可见,系统采用双电源供电,提供了系统正常工作所需的电源电压。
另外,由于考虑到便携目的,本系统采用+12V铅蓄电池提供系统所需的恒定直流电源。
图2系统电源电路原理图
如图2:
I/O口提供了相应的稳定直流电源。
其中的IN4004是为了防止电源输入反接烧坏集成稳压块而设计的。
由于S3C44B0x采用2.5V作为ARM内核电源,使用3.3V作为I/O口电压,故ARM核心控制模块电源需要另外单独设计,其电源电路如图3-2所示。
由系统总电源电路提供的+9V稳压电源作为输入,分别经AS1117-5.0、AS1117-3.3、AS1117-2.5稳压后,输出5.0V、3.3V和2.5V恒定电源,为RAM内核和I/O口提供了相应的稳定直流电源。
其中的IN4004是为了防止电源输入反接烧坏集成稳压块而设计的。
温度采集电路设计
温度采集模块电路采用AT89S52单片机作为模块的协控制器。
对于温度传感器的选用DS18B20,因为DS18B20是Dallas公司最新单总线数字温度传感器,该传感器集温度变换、A/D转换于同一芯片,输出直接为数字信号,大大提高了电路的效率。
由于现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,且提高了CPU的效率。
AT89S52单片机的P0口与8路温度传感器相连,用于采集温度数据;另外,模块提供RS-232串行口与RAM核心控制模块通信,达到数据传输的目的。
温度采集模块电路原理图如图3-3。
图3温度采集电路原理图
软件设计
流程图
图4程序流程图
由该流程图可看出,刚上电时,S3C44B0x要先进行ARM内部的初始化,以使ARM进入相应的状态和模式;然后初始化硬件装置,以使硬件系统可以正常支持温度数据采集;接着通信初始化,以确定温度采集模块与ARM核心控制模块连接正常,并通过UART复位温度数据采集模块,确保其进入正常温度数据采集状态;然后初始化LCD显示和键盘,在LCD上显示相应的菜单列表,供用户通过键盘选择操作;至此,系统初始化完成,并进入正常主程序循环状态。
在正常主程序循环状态中,首先扫描键盘,以快速的响应用户的按键操作;若没有键值按下,则ARM立即进行数据的采集、处理与显示,以实现实时数据采集与显示等功能。
其主程序包括温度采集程序、ARM获取温度子程序、温度处理和转换子程序。
当ARM处理器接收到正确的温度数据后,立即进行相应的温度数据处理与转换,变成可被LCD直接显示的正确温度值。
程序设计
温度处理与转换子程序如下:
//存放读取到的当前温度值,未转换
StaticU16a-temp-now[8]={8*0}
//存放经精度计算后的实际温度值,高8位整数部分,低8位小数部分
staticU16b-temp-now[8]={8*0};
//存放8路转换后温度值,分别为百位,十位,个位,小数位
staticU8temp-convent-all[32]={32*0};
//-------------------------------
//温度处理与转换子程序
//----------------------------------
voidtemp-change(void)
{
U8negtive=0x00; //存放数的符号,若为正=0;若为负,=0xff
U8j=0;
U8*pt=temp-convent-all;
U16*p1=a-temp-now;
U16*p3=b-temp-now;
U16temp=0;
for(j=0;j<8;j++)
{
negative=0x00;
temp=*p1;
//若温度为负值,进行相应处理
if((temp&0xf80)!
=0)
{
temp=(~temp)+1;//转为正的原码
negative=0xff;//同时置符号为0xff
}
//根据精度消除无关数据
switch(a-temp-prec)
{
case0x1f:
//精度为9位,则清除最低3位无效位
{
temp=temp&0xfff8;break;
}
case0x3f:
//精度为10位,则清除最低2位无效位
{
temp=temp&0xfffc;break;
}
case0x5f:
//精度为11位,则清除最低1位无效位
{
temp=temp&0xfffe;break;
}
case0x7f:
//精度为12位
{
break;
}
}
//换算成实际温度,并扩大10倍,去掉小数部分
temp=(U16)((float)(temp)*0.625);
//折算放入b-temp-now 数组中
//高8位放整数部分,低8位放小数部分,最高位放符号位
if(negtive==0xff)//若为负值
{
*p3=((temp/10)<<8)|(temp%10)|0x8000;
}
else
{
*p3=((temp/10)<<8)|(temp%10)&0x7fff;
}
if(negative==0xff)//若为负值
{(*pt++)=0x80;}
else
{
(*pt++)=temp/1000%10+0x30;
}
(*pt++)=temp/100%10+0x30;
(*pt++)=temp/10%10+0x30;
(*pt++)=temp%10+0x30;
p1++;
p3++;
}
//转换完成后清除读回的原始温度
p1=a-temp-now;
for(j=8;j>0;j--)
{
*p1++=0x0;
}
}
总结
通过这次课程设计,我对ARM嵌入式系统尤其是数据处理中的温度采集系统有了更进一步的了解,同时知识面也进一步得到了扩展和加深。
本次课程设计的任务主要是对基于传统温度采集系统的使用环节中遇到的一些问题提出的一种改进方法,有助于温度采集系统更好的发展与使用,帮助我们更好的理解嵌入式系统和温度采集系统的原理和应用。
在这次课程设计的过程中,我深深的感触到了团队合作的重要性,尤其是在当今的社会工作中,一个人的力量在一个巨大的任务前是那么的渺小,必须靠多人合作才能共同完成。
通过本次课程设计,让我很好的锻炼了理论联系实际,与具体项目、课题相结合开发、设计产品的能力。
既让我们懂得了怎样将理论应用于实际,又让我们懂得了在实践中遇到的问题怎样用理论去解决。
目前,由于传统的温度采集系统存在响应慢、精度低、可靠性差、效率低、操作繁琐等弊端,已经不能完全适应现代化工业的高速发展。
随着嵌入式技术的迅猛发展,设计高速度、高效率、低成本、高可靠性、操作方便的温度采集系统成为当务之急。
所以,学习和应用温度采集系统及其应用技术对我们以后的学习和工作有着十分重要的意义。
在设计过程中,总是会遇到这样或那样的问题。
有时一个问题可能会需要大家集体去查阅资料,做大量的工作,花大量的时间才能解决。
通过不断地发现问题,解决问题,自然而然,我的发现问题和解决问题的能力便在其中建立起来了。
这都为以后的工作积累了经验,同时也增强了我们解决问题的能力。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 课程设计 ARM 温度 采集 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)