基于ARM和DS18B20的数字测温系统.doc_第1页
基于ARM和DS18B20的数字测温系统.doc_第2页
基于ARM和DS18B20的数字测温系统.doc_第3页
基于ARM和DS18B20的数字测温系统.doc_第4页
基于ARM和DS18B20的数字测温系统.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于ARM和DS18B20的数字测温系统发布时间:2006-06-12 作者:沈洪垚 傅建中 陈子辰 点击:3152摘 要: 本文介绍了一种新型的嵌入式数字测温系统,系统采用SAMSUNG公司的32位ARM微控制器S3C44BOX,利用单总线数字温度传感器DS18B20作为分布式测温元件。该系统具有电路简单,可靠性高,易于安装和扩展维护的特点,可作为一种新型的数控机床测温系统设计方案。关键词:ARM,S3C44BOX,数字温度传感器,DS18B200 前言热误差是数控机床的最大误差源,数控机床的温度测试为机床热误差的补偿提供依据。传统的测温方案是将模拟信号通过电缆远距离传输至数据采集卡进行A/D转换并处理,实用中必须解决长线传输和模拟量传感器布线等问题。本文介绍了一种新型的设计方案,控制器采用SAMSUNG公司的32位ARM微控制器S3C44BOX,温度传感器采用单总线数字温度传感器DS18B20。采用数字温度传感器即在测试点完成了信号的数字化,提高了传输的可靠性,同时简化了外围电路,也便于传感器在机床上的布置安装。ARM处理器控制数字温度信号的采集,并与上位PC机通讯,同时其他硬件资源提供热补偿系统其他功能。本文在介绍数字温度传感器DS18B20的基础上,给出了系统的软硬件设计方案,对软件实现中的关键点做了详尽的注释说明。1 数字温度传感器DS18B20介绍1.1 DS18B20的结构DS18B20是美国DALLAS公司推出的一种可组网数字温度传感器。DS18B20只有一个数据输入/输出口,是单总线专用芯片。DS18B20工作时,被测温度值直接以单总线的数字方式传输。DS18B20体积小,电压适用范围宽(3V-5V),可以通过编程实现912位的温度读数,即有可调的温度分辨率。测温范围55125,在1085时,精度为0.5。其可选封装有TO-92、SOIC及CSP封装。每个DS18B20出厂时都有一个唯一的64位序列号,因此一条总线上可以同时挂接多个DS18B20而不会出现混乱。DS18B20包括一个暂存RAM和一个E2RAM。暂存存储器RAM用于存放工作参数和测量值,其作用是保证在单线通讯时的完整性,包括8个字节。E2RAM用于设定非易失性温度报警上下限值TH和TL(调电后依然保存)。内部结构如图1所示。头两个字节表示测得的温度读数,数据格式如图2所示:S=1时表示温度为负,S=0时表示温度为正,其余低位以二进制补码形式表示,最低位为1,表示0.0625内部存储器的第五个字节是结构寄存器,主要用于温度值的数字转换分辨率。1.2 DS18B20的工作时序DS18B20严格遵循单总线协议,工作时,主机先发一复位脉冲,使总线上的所有DS18B20都被复位,接着发送ROM操作指令,使序列号编码匹配的DS18B20被激活,准备接受下面的RAM访问指令。RAM访问指令控制选中的DS18B20工作状态,完成整个温度转换,读取等工作。在ROM命令发送之前,RAM命令命令不起作用。表1列出了所有操作命令。整个操作主要包括三个关键过程:主机搜索DS18B20序列号、启动在线DS18B20做温度转换、读取温度值。其工作流程如图3:DS18B20对时序及电特性参数要求较高,必须严格按照DS18B20的时序要求去操作。它的数据读写主要由主机读写特定的时间片来完成,包括复位(初始化)、读时间片和写时间片。(1) 复位时序使用DS18B20时,首先需将其复位,然后才能执行其它命令。复位时,主机将数据线拉为低电平并保持480960,然后释放数据线,再由上拉电阻将数据线拉高1560,等待DS18B20发出存在脉冲,存在脉冲有效时间为60240,这样,就完成了复位操作。其复位时序如图4所示。(2) “写”时序 在主机对DS18B20写数据时,先将数据线置为高电平,再变为低电平,该低电平应大于1。在数据线变为低电平后15内,根据写“1”或写“0”使数据线变高或继续为低。DS18B20将在数据线变成低电平后1560内对数据线进行采样。要求写入DS18B20的数据持续时间应大于60而小于120,两次写数据之间的时间间隔应大于1。写时隙的时序如图5所示。“读”时序机理类似,不再赘述。2 系统软硬件设计2.1 硬件设计我们采用的控制器是SAMSUNG公司的32位ARM微控制器S3C44BOX,是三星公司为一般应用提供的高性价比和高性能的微控制器的解决方案,功耗小,可靠性高。它使用ARM7TDMI核,工作在66MHz。采用的该ARM控制器将服务于整个热误差补偿系统,完成包括数据处理与通讯、控制等多任务的实现。机床测温系统只使用小部分片上资源。我们主要通过对I/O引脚的电平读写来完成单总线的通讯,采用ARM内部的定时器产生中断来完成有时隙要求的工作。由于我们通过预分频后产生的计时值单位达到1,完全能够满足时序工作的需要。DS18B20与控制器的接口及其简单,只需将DS18B20的信号线与控制器的一位双向端口连接即可。系统连接如图8所示:2.2 软件设计遵循DS18B20单总线通讯协议,温度转换与读取工作的软件流程可表示为图9(该流程是在已经选中激活某个选中的DS18B20以后,选中激活流程软件原理类似,此处省略)。可见,与DS18B20进行通讯主要完成以下三个基本子程序:初始化程序(复位程序)、读子程序,写子程序。系统采用 C语言进行设计,以下是初始化(复位)子程序,设计如下:U8 resetpulse(void) /复位函数定义U8 RX=1; /函数返回值设置rPCONF=0x01; /PF0输出口rPDATF=0x0; /PF0输出0,拉低 rTCNTB1=0x1f4; /定时缓冲器设定,延时500usrTCON=0x0200; /定时控制器设定,将定时器1手动更新rTCON=0x0100; /定时器开启,手动更新关闭 while(TIME); /在定时中断产生以前踏步等待(我们在中断中改变这个标志值)rPDATF=0x01; /低脉冲时间500us已过,PF0置高TIME=1; /将TIME值恢复rTCON=0x0; /关闭定时器rTCNTB1=60; /延时60usrTCON=0x0200;rTCON=0x0100;while(TIME);TIME=1; rTCON=0x0; rPCONF=0x0; /改为输入口,进行读值 if(rPDATF & 0x01)=0) /读到PF0口为低时说明存在脉冲收到RX=0;rTCNTB1=0x0190; /延时400usrTCON=0x0200;rTCON=0x0100;while(TIME); TIME=1;rTCON=0x0;return(RX); /函数返回RX值,在收到存在脉冲时RX为零

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论