采用ds18b20和at89c51单片机的远程温控系统设计.doc
《采用ds18b20和at89c51单片机的远程温控系统设计.doc》由会员分享,可在线阅读,更多相关《采用ds18b20和at89c51单片机的远程温控系统设计.doc(30页珍藏版)》请在咨信网上搜索。
1、采用DS18B20和AT89C51单片机的远程温控系统设计1 引言粮食温度检测是储备库中防止粮食霉烂、保质存放的重要环节。对于一个农业大国来讲,粮食生产、需求与储备量都很大。大量粮食在储备的过程中常因粮食湿度过大而升温发热,导致粮食大量腐烂变质,给国家带来巨大损失。所以粮仓监控系统中温度测量是整个系统的主要功能之一。本文介绍一种以单线数字温度传感器DS18B20为温度敏感元件的粮仓温控系统,系统以微型计算机为上位机, 89C51单片机为检测分机,DS18B20数字温度传感器直接与分机连接,分机与测温主机通过RS-485总线网进行通信,系统所有操作通过菜单命令完成。本文主要围绕下位机数据采集部分
2、进行论述,并结合粮仓监控系统,对DSl8B20的这种单总线技术及其在本系统中的具体应用进行了讨论。2 系统硬件设计2.1 系统的总体设计整个系统从结构上可分为三层:由微型计算机构成上位机用户监控层,51 单片机系统分别构成测温主机控制层和分机温度数据采集层。上位机通过串行口与测温主机交换数据。测温主机与多台分机采用主从分布式结构。系统组成结构如图1 所示,测温主机与上位机通过RS-232 总线连接,测温分机与主机通过RS-485 总线连接。一台主机最多可管理64 台分机,一台分机可以测试大约1000 个温度点。本设计适用于中小型粮库。 2.2 温度数据采集模块的设计DS18B20是美国DALL
3、AS公司生产的数字温度传感器芯片,具有结构简单、体积小、功耗小、抗干扰能力强、使用方便等优点。可以在三根线上同时并联多个温度传感器,每台分机上可以连接多根电缆,每根电缆上可以并联几十个点,构成串行总线工作方式。由于18B20芯片送出的温度信号是数字信号,因此简化了A/D转换的设计,提高了测量效率和精度;并且芯片的ROM中存有其唯一标识码,即不存在相同标识码的DS18B20,特别适合与微处理芯片构成多点温度测控系统。每台测温分机的P0P3 口分别可接N 个DS18B20 传感器(N3 软件设计3.1 系统软件的工作流程DS18B20 以单总线协议工作,测温分机首先发送复位脉冲命令,使信号线上所有
4、的DS18B20 芯片都被复位,接着发送ROM 操作命令,使序列号编码匹配的DS18B20 被激活进入接收内存访问命令状态;内存访问命令完成温度转换、温度读取等工作(单总线在ROM 命令发送之前存储命令和控制命令不起作用)。DS18B20 工作流程见图3 所示。图3 DS18B20 工作流程图系统以ROM 命令和存储器命令的形式对DS18B20 操作。ROM 操作命令均为8 位,命令代码分别为:读ROM(0x33H)、匹配ROM(0x55H)、跳过ROM(0xCCH) 、搜索ROM(0xF0H) 和告警搜索(0xECH) 命令;存储器操作命令为:写暂存存储器(0x4EH) 、读暂存存储器(0x
5、BEH)、复制暂存存储器(0x48H)、温度变换(0x44H)、重新调出EERAM(0xB8H)以及读电源供电方式(0xB4H)命令。其对时序及电特性参数要求较高,必须严格按照它的时序要求去操作。DS18B20 的数据读写由测温分机来完成,包括初始化、读数据和写数据。系统软件采用模块化程序设计,主从式结构通信方式。规定总线上有一个测温主机和64台分机,分机地址唯一。初始化完成后各分机均处于监听状态,采用中断方式工作,测温分机接受上位机命令,向DS18B20发出地址匹配命令帧,进入等待状态,每一帧数据位都对应着不同意义,若地址匹配成功则进行响应分机,否则继续等待,直到等待超时而重发命令。温度采集
6、模块负责数据的采集工作。当缓冲区有数据时产生中断,程序转向中断服务子程序入口,中断子程序如下:C程序 void SerialInterrupt() interrupt 4 /中断服务子程序loop0:if(RI);SlaveNo=SBUF;RI=0; while (! RI); /等待下一个命令loop1:RI=0;SensorNo=SBUF;if(SlaveNo=0x81&SensorNo0x80) /判别数据是否合法while(1)Gettemp(SensorNo); if(RI) goto loop1;else goto loop0; /否则继续等待3.2 DS18B20的时延及读写时序
7、问题为保证DS18B20的严格I/O时序,需要作较精确的延时。在DS18B20的操作中,短时间延时是指10us以下的延时,在汇编语言下采用若干个NOP指令即可。因C51编译器提供了若干内部函数,(_nop_()函数为其中之一)其编译结果就是在对应位置嵌入一个nop汇编指令,所以短时间延时可利用_nop_()函数实现。较长时间延时指10us以上的延时。在DS18B20操作中,用到的较长时间延时有15us、90us、270us、540us等。因这些延时均为15us的整数倍,可编写一个Delayl5(n)函数,该函数可实现约15usn的延时。DS18B20的初始化包括测温分机发送的复位脉冲和其向测温
8、分机返回的存在脉冲。总线在开始时刻发出一个最短为480us的低电平复位脉冲,接着在该时刻释放总线并进入接收状态,DS18B20在接收到总线的电平上升沿,等待1560us后在下一时刻发出60240us时延的低电平存在脉冲信号,表明器件已接在总线上。时序如图4所示。图4 初始化图当总线于该时刻从高电平拉至低电平时,就产生“写”的时间间隙。从该时刻开始15us之内,应将所需写的位送到总线上,DS18B20在该时刻后的1545us期间内对总线采样,低电平写入0,高电平写入1。连续写两位之间的间隙应大于1us。写时序如图5所示。图5 读写时序图起始时刻将总线从高电平拉至低电平,持续15us之后将总线释放
9、,就产生读时间间隙。测温分机必须在该时刻之后的15us之内完成读总线状态,并在45us内释放总线,连续读两位之间的间隙应大于1us。读时序如图5所示。4 总结本文论述了以DS18B20 为传感器,AT89C51 单片机为控制核心组成的远程粮仓温控系统。由于DS18B20 采用数字单总线技术,使得系统电路简单,易于扩展,加上总线数字化,使得系统的抗干扰性能好,可靠性高,测温范围比较宽(-55125),与传统的温控系统相比还具有较高的性价比。此外,系统的应用范围不仅仅局限于粮仓领域,稍作改动还可作为其它自控领域的解决方案,如烟叶烘烤箱控制系统等。本文作者创新观点:采用新型数字温度传感器DS18B2
10、0,并将其与51 单片机、RS-485总线技术有机的结合在一起,组成抗干扰性能较强的温控系统。系统具有较高的性价比,已成功应用于许昌、尉氏等中型粮库中。该系统避免了因温度过高而导致大量粮食发霉变质所造成的损失,对于中型粮库可产生经济效益百万元以上,在粮食储藏技术领域内具有广阔的市场前景。用FPGA实现对DS18B20温度传感器控制l 引言 DS18B20是DALLAS公司生产的一线式数字温度传感器,采用3引脚T0-92型小体积封装;温度测量范围为-55+125C,可编程为9位12位A/D转换精度,测温分辨率可达00625,被测温度用符号扩展的16位数字量方式串行输出。 一线式(1-WIRE)串
11、行总线是利用1条信号线就可以与总线上若干器件进行通信。具体应用中可以利用微处理器的I/O端口对DS18B20直接进行通信,也可以通过现场可编程门阵列(FPGA)等可编程逻辑器件(PLD)实现对1-WIRE器件的通信。 本文介绍利用ACTEL公司的ProASICplus系列FPGA实现与DS18B20的通信功能。FPGA可以将读出DS18B20的48位ID号和12位温度测量结果保存在内部寄存器中,微处理器可以随时快速地从FPGA寄存器中读取这些信息。 一般在使用DS18B20时往往采用微处理器的I/O端口实现与该器件的通信,这种方法虽然比较容易和方便,但是,因为DS18B20的一线式串行总线对时
12、序要求比较严格,因此,为了保证与DS18B20的通信可靠性,微处理器与DS18B20通信时需要采用关闭中断的办法,以防止操作时序被中断服务破坏。 利用FPGA实现与。DS18B20通信不存在被迫关闭中断的情况,可以满足对实时性要求严格的应用要求。2 ProASICplus系列FPGA简介 ProASICplus系列FPGA是ACTEL公司推出的基于Flash开关编程技术的现场可编程门阵列,包括从75万门的APA075型到100万门的APAl000型,具有高密度、低功耗、非易失、含有嵌入式RAM及可重复编程等特点。 因为ProASICplus系列FPGA基于Flash技术,利用Flash开关保存
13、内部逻辑,因此不需要另外的器件。由于不需要上电配置过程,因此具备上电就立即工作的特点。不用配置器件,系统的保密性提高。 笔者在电力监控的产品中利用APA150型FPGA实现了逻辑控制、A/D采样控制和FIFO存储等功能,并利用剩余的资源实现了DS18B20的通信功能。APA150在整个系统中充当协处理器,使主CPU从繁重的实时处理中解脱出来。3 DS18B20简介31内部结构 DS18B20的内部结构如图1所示,主要由以下几部分组成:64位ROM、温度传感器、非挥发的温度报警触发器TH(温度高)和TL(温度低)、配置寄存器、暂存寄存器(SCRATCHPAD)、存储器控制逻辑。DQ为数字信号输入
14、/输出端。ROM中的64(8位产品家族编号、48位ID号、8位CRC)位序列号是出厂前刻好的,这64位序列号具有惟一性,每个DS18B20的64位序列号均不相同。 8位CRC生成器可以完成通信时的校验。暂存寄存器有9个字节,包含温度测量结果、温度报警寄存器、CRC校验码等内容。32操作步骤 对DS18B20的操作分为3个步骤:初始化、ROM命令和DS18B20功能命令。321初始化 FPGA要与DS18B20通信,首先必须完成初始化。FPGA产生复位信号,DS18B20返回响应脉冲。322ROM命令 该步骤完成FPGA与总线上的某一具体DS18B20建立联系。ROM命令有搜寻ROM(SEARC
15、H ROM)、读ROM(READ ROM)、匹配ROM(MATCH ROM)、忽略ROM(SKIP ROM)、报警查找等命令(ALARM SEARCH)。 这里,FPGA只连接1个DS18B20,因此只使用读ROM命令,来读取DS18B20的48位ID号。323 DS18B20功能命令 FPGA在该步骤中完成温度转换(CONVERTT)、写暂存寄存器(WRITE SCRATCHPAD)、读暂存寄存器(READ SCRATCHPAD)、拷贝暂存寄存器(COPYSCRATCHPAD)、装载暂存器寄存器(RECALL E2)、读供电模式命令(READ POWER SUPPLY)。 文中不用温度报警功
16、能,因此在本步骤中只需完成温度转换,然后通过读暂存寄存器命令完成温度转化的结果。33操作时序 DS18B20的一线式操作时序如图2所示。从时序图中可以看出,对DS18B20的操作时序要求比较严格。利用FPGA可以实现这些操作时序。4 FPGA与DS18B20的通信41 DS18B20的操作模块 FPGA需要完成DS18B20的初始化、读取DS18B20的48位ID号、启动DS18B20温度转换、读取温度转化结果。读取48位ID号和读取温度转换结果过程中,FPGA还要实现CRC校验码的计算,保证通信数据的可靠性。 以上操作反复进行,可以用状态机来实现。状态机的各种状态如下: RESET1:对DS
17、18B20进行第一次复位,然后进入DELAY状态,等待800s后,进入CMD33状态。 CMD33:对DS18B20发出033命令,读取48位ID值。 GET_ID:从DS18B20中读取48位ID值。 RESET2:对DS18B20进行第二次复位,然后进入DELAY状态等待800s后,进入CMDCC状态。 CMDCC:向DS18B20发出忽略ROM命令,为进入下一状态作准备。 CMD44:向DS18B20发出启动温度转换命令,然后进入DELAY状态等待900ms后进入下一状态。 RESET3:对DS18B20进行第三次复位。 CMDCC2:向DS18B20发出忽略ROM命令,为了进入下一状态
18、作准备。 GET_TEMP:从DS18B20中读取温度测量数值。 DELAY:等待状态。 WRITE_BIT:向DS18B20中写入数据位状态。 READ_BIT:从DS18B20中读取数据位状态。在该状态中每读取1位数据,同时完成该数据位的CRC校验计算。所有数据都读取后,还要读取8位CRC校验位。这8位校验位也经过CRC校验计算,如果通信没有错误,总的CRC校验结果应该是0。这时可将通信正确的数据保存到id和temp_data寄存器中。 设计中采用Verilog语言建立DS18B20操作模块”DS18B20_PROC”。在该模块中实现以上的状态机功能。该模块的定义为module DS18B
19、20 PROC(sysclk,reset,dq_pim,id,temp_data,dq_ctl)。图3示出是该模块的仿真波形。从仿真波形可以看出,系统上电后的10ms左右,FPGA可以读出DS18B20的48位ID值,这样,主CPU在系统复位后很短的时间内就可以读取ID值,进行相应的处理。42 FPGA与CPU的接口 在FPGA中,要实现对DS18B20的通信处理,主模块要实现对DS18B20_PROC模块的调用及建立与CPU之间的接口。 与CPU之间的接口通过建立若干寄存器实现。温度测量值和48位ID可以用4个16位寄存器保存。CPU通过读取这些寄存器可以获得温度测量数值和48位ID值。CP
20、U、FPGA及DS18B20的连接原理如图4所示。5 结束语 在系统中,FPGA可以分担许多主处理器的工作,提高整体实时性,降低CPU处理的严格实时约束,从而降低CPU软件处理的难度。同时,由于ACTEL公司的ProASICplus系列FPGA的保密特性,可以增强产品知识产权的保护。 本设计应用在电力监控产品中。测量出的装置内部温度用于电量测量精度补偿和报警,对保证产品测量精度和可靠运行具有重要意义。48位ID值用于产品的惟一编码标识和以太网MAC地址,便于产品生产、维护和管理。采用AT89C2051单片机的的温湿度控制系统设计目前,国内大中型库房在仓储管理中由于技术和资金上的原因,多数仅限于
21、只对温度进行监测,当温度超标时进行强制通风和翻仓,即使如此,处理不及时或因设备人力条件有限仍会造成大量损失。实现库房储藏物的温升主要是由于湿度引起的,库房储藏物本身的水分过高或连续的高湿天气将导致储藏物新陈代谢加快而放出热量,放热引起的温升又使代谢进一步加剧以至发霉变质。这种恶性循环一旦形成很难进行有效控制。因此,库房在进行温度监测的同时,必须重视对空气湿度的检测,以利于提前采取有效措施控制库房储藏物升温而霉变。本文所介绍的温湿度控制系统以AT89C2051单片机为控制核心,结合传感器、通讯和数字电子电路技术,实现了温度和湿度检测与库房温度和湿度的有效控制,降低经济损失和劳动强度。系统总体结构
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 采用 ds18b20 at89c51 单片机 远程 温控 系统 设计
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。