智能温室多点温度检测系统电路设计与仿真

2014-02-09 03:00
实验室研究与探索 2014年11期
关键词:流程图温度传感器时序

刘 德 全

(宁夏师范学院,宁夏 固原 756000)

0 引 言

余川川等[1]提出了基于BP神经网络的PID控制算法,并将其应用于温室温度的控制,仿真表明控制器具有很好的自适应和鲁棒性,为温度采集算法提供了参考价值,但没有给出具体的设计电路;文献[2]研究了基于CAN总线网络在温室温度测控系统的应用,其温度传感采用了DS18B20,因为采用CAN总线传输数据,因此没有充分发挥DS18B20传感器的1-Wire性能;文献[3]中研究了基于计算机流体动力学模型(Computational Fluid Dynamics,CFD)的温度多指标GA优化算法,为获得精确的温室温度算法提供了很好的参考;文献[4]对基于FPGA和模糊PID算法的温度采集进行了系统研究;文献[5]研究了基于ZigBee的温室温度检测系统,采用“一线总线”数字化温度传感器DS18B20的无线温度检测系统,实现低功耗、低成本的温室温度检测;文献[6]提出一种基于现场控制系统(FCS)的现场总线控制模型,结合烟叶生长原理和温室温度控制原理出发,实现烟叶温室温度的精确控制;文献[7]对温室温度控制系统不确定性与干扰的灰色预测补偿算法进行研究,灰色预测补偿算法能够避开温室对象的不确定性、时变性和多扰动性,控制精度明显提高。结合上述文献的优缺点,本文提出基于Proteus软件平台下的单片机控制的智能温室多点检测系统电路的设计和仿真。

1 电路设计

1.1 温度传感器电路

温度传感电路实现土壤温度的实时采集,为了提高采集的精确性,这里选取美国DALLAS公司的可编程分辨率的1-Wire数字温度传感器DS18B20[8-11],其主要特点首先是采用单总线接口,具有经济性好、抗干扰性强,适用于恶劣环境的现场温度测量;其次可以实现多点组网,轻松地组建传感器网络,实现多点测温;最后就是DS18B20供电方式灵活,可以不外接电源,具有掉电保护等功能。DS1820内部结构框图如图1所示,从图中可以看出,DS18B20有3个引脚,其中:DQ为双向单总线数据引脚;GND为地信号;UDD为可选的外部电源引脚[13]。

图1 DS18B20 内部结构图

每个DS18B20在出厂时,都被写入独特、不重叠的64位序列号,被保存在图1中的64位ROM存储器器中,从而允许多只DS18B20同时连接在一根总线上。因此,很简单就可以用一个微处理去控制很多覆盖在一大片区域的DS18B20,这一特性在HVAC环境监控、探测建筑物、仪器或者机器的温度以及过程监控等方面非常有用。数据缓冲存储器含有2个字节的温度寄存器用来存储温度传感器采集的温度值;TH和TL温触发寄存器保存用户设置的温度报警值;1个字节的配置寄存器中的R0和R1 两个位地址用于设置温度转换的精度可以为9,10,11或者12位(此时R0=1,R1=1,为默认状态)。

DS18B20传感器的网络拓扑结构,从原理上来说,可以将多个传感器都挂在一根总线上,但实际上一根总线上的传感器数目超过8个时,就要计算总线的驱动能力,因此,在系统设计时,每根总线最好接8个DS18B20。本文在电路设计和仿真时以4个为例,其电路图如图2所示。

DS18B20的核心功能是直接输出数字温度值,温度值的精度为用户可编程的9、10、11或者12位,分别以0.5、0.25、0.125、0.0625 °C增量递增。系统上电状态下默认为12位精度。上电复位时温度寄存器默认值为+85 °C,所以在调试时会出现+85 °C温度的显示。

1.2 单片机最小系统及人机交互电路

单片机控制系统为了降低成本和功耗,采用典型的最小系统,包括复位电路、晶振电路和电源电路,在这里只是设计仿真,因此电源电路直接用5 V直流电源代替,其他电路如图3所示。

在图3中,人机交互式电路主要包括按键电路、声光报警电路和液晶显示电路。按键电路的功能主要是进行温度传感器检测以及数字温度传感器温度报警阈值的设置,具体功能如表1所示。

表1 按键的功能

声光报警电路由发光二极管D1和蜂鸣器SOUNDER构成,在温度处于报警阈值范围之内时,二极管一直处于亮状态,当温度高于或者低于阈值时,发光二极管开始闪烁,并且蜂鸣器发出“嘟嘟……”的报警声。

液晶显示电路主要由LM016L显示器构成,在不同的状态下显示内容也不一样,总结如下:

(1)显示DS18B20的64位的ROM码;

(2)实测温度显示,液晶显示器首先显示DS18B20的64ROM码,随后显示当前的温度情况,如果实测温度高于温度报警值TH的设定值时,LCD显示为“>H”;当实测温度值小于温度报警值TL时,LCD显示为“

(3)显示当前温度传感器的温度报警阈值,当在温度设定状态时,显示改变的温度报警阈值。

2 算法实现

2.1 DS18B20时序

DS18B20通信需严格遵守1-Wire通信协议,在此协议中详细定义了复位脉冲信号、应答信号、写时序和读时序等信号。应答脉冲信号除外的其他信号都由主机发出,且数据字节的低位在前高位在后。下面主要研究各时序之间的关系[12-14]。

2.1.1DS18B20复位时序1

在节水灌溉技术选择过程中,要按照因地制宜的模式,制定科学的节水灌溉发展规划,避免盲目引进不适合本地区农业生产的节水灌溉技术,不盲目搞所谓的样子工程。针对本地区存在大量中低产田的现状,应该进一步重视中低产田改造,将中低产田改造列为今后农业的主攻方向。通过利用合适的灌溉技术,将中低产田的低产向着高产转变。进一步促进节水灌溉技术在中低产田推广应用,提升农业生产效益。

上位机与DS18B20间的任何通信的第一步就是进行初始化操作[15],其初始化序列如图4所示。从图中可以看出,初始化脉冲包括一个复位脉冲和一个存在脉冲,在发出复位脉冲时,总线控制器首先拉低总线DQ并保持480 μs以上发出(TX)一个复位脉冲,然后释放总线,进入接收状态(RX),并将单总线上拉电阻拉至高电平;存在脉冲表明DS18B20已经准备好数据的发送和接收,当DS18B20检测到DQ总线上的上升沿后,等待15~60 μs,然后发出一个由60~240 μs低电平信号构成的存在脉冲。复位程序流程图如图5所示。

图4 DS18B20初始化时序图

图5 复位程序流程图

2.1.2DS18B20读、写时序

DS18B20的数据读写是通过时序处理来确认信息交换的。写时序包括写逻辑1时序和写逻辑0时序。从图6(a)可以看出,写时序开始前必须将DQ总线处于低电平状态,等待15 μs后释放总线并读取总线的状态,如果总线是高电平,则向DS18B20写入1;如果总线是低电平,则向DS18B20写入0。从图5(a)还可以得到,写时序至少持续60 μs,包括两个写周期之间至少1 μs的恢复时间。

总线控制器发出读时序时,所有读时序同样至少持续60 μs,包括两个读周期期间至少1 μs的恢复时间。读时序图如图6(b)所示,读时序开始之前必须将DQ数据从高电平拉到低点平然后释放总线,如图6(b)所示。在总线控制器发出读时序后,如DQ总线为高电平,则读入的数据为1,反之读入的数据为0。

根据DS18B20的读写时序图,画出DS18B20读写程序算法流程图,编写程序,流程图和程序如图7所示。

(a)

(b)

图7 DS18B20 读、写程序流程图

2.2 DS18B20 64位ROM编码的搜索算法

当温度传感器均挂与单线总线上时, 对单线总线上的DS18B20正确寻址是其正常地测量温度先决条件,而识别ROM编码是对单线总线上的DS18B20正确寻址唯一方法。所以对单线总线上的DS18B20 ROM编码搜索与识别是必须的。系统64位ROM码包括8位系列码(最低8位),默认值为28H;接着48位是一个唯一的序列号,最高8位是以上56位的CRC 校验码。系统对总线上器件的数量和每个器件的ROM码的识别与搜索是通过软件算法与ROM 搜索命令配合来实现的。ROM码的每一位搜索过程可总结为读一位,读该位补码,写一位,即“两读一写”。上位机对ROM码的识别是从最低位开始,每一位的识别都要进行“两读一写”操作,直到搜索完所有DS18B20的ROM码。

表2 “两读”数据功能

主机写1位的目的就是为了排除和定位,具体写入一位数值由读到的“两位”数值决定,如“两读”数据为“11”,说明没有检测到DS18B20传感器,因此结束搜索,无需再写入数据;若读到为“01”或者“10”,表明存在DS18B20,则应对写入“0”或者“1”,继续读下一位;若读到“00”,表明总线上的DS18B20器件的ROM码在该位上数据发生冲突,此时,写入1位数据具有“排除”的作用。如果器件ROM码在该位上的数据与写入的数据相同,则继续保持与总线的联系,如果不同则此器件在本次搜索中从总线上“删除”,不在响应主机发布的命令,直到主机进行下一次复位。根据上述ROM的搜索原理,可得到如图8所示的树形搜索策略图,因此得出ROM编码的搜索与识别功能函数流程图如图8所示。

2.3 CRC发生器

CRC码是一种线性分组码,编码简单但具有很强的检错纠错能力。DS18B20采用CRC8纠错[17],其纠错公式如示。

图8 ROM码树形搜索策略图

图9 DS18B20 ROM编码的搜索与识别功能函数流程图

CRC=x8+x5+x4+1

在DS18B20中,CRC字节作为DS18B20 64位ROM的一部分存在存储器中,CRC码由ROM的前56位计算得到,当ROM中的数据发生变化时,CRC值也随之改变。为校正数据是否被正确读取,总线控制器必须用接受到的数据计算出一个CRC值和存储在ROM中的8位CRC码进行比较,如果两者相吻合,说明数据被无错误的传输,当在DS18B20中存储的和由计算到的CRC值不相符,说明数据发生错误,重新接收数据。

CRC校验与CRC编码方法相同,都是采用移位和异或进行的。如果在编程中直接采用这种算法,则降低程序的运算速度,因此提出了查表法计算,该算法核心思想是先取一个字节数据进行暂存,然后对暂存单元内的值进行左循环移位运算,一个字节左循环移位运算后如果其最低位为1,说明数据有误,进行CRC纠错,将CRC单元值(初始化为0)与18H做异或运算且左移,否则CRC单元值只进行左移运算。最后将CRC单元值与下一字节做同样运算,直到完成最后256个单元值的运算,形成256个CRC纠错码,其C程序代码如CrcTable数组。算法流程如图10所示。

3 结 语

将电路在英国Labcenter公司的EDA平台—Proteus环境中进行原理图设计并进行了虚拟仿真,实现了4个DS18B20传感的温度数据采集、显示和报警等功能。在实际应用中系统采集精度高、运行稳定。

图10 CRC纠错算法流程图

[1] 涂川川,朱凤武,李铁.BP神经网络PID控制器在温室温度控制中的研究[J].中国农机化,2012(2): 151-154, 144.

TU Chuan-chuan,ZHU Feng-wu,LI Tie. Study and simulation of BP neural network PID controller [J].Chinese Agricultural Mechanization, 2012(2): 151~154, 144.

[2] 彭 波,文 方.CAN总线网络在温室温度检测控制系统中的应用[J].工业控制计算机,2013,26(2):1-3.

PENG bo,WEN Fang.Application of CAN Bus in Greenhouse Temperature Monitoring and Control System[J]. Industrial Control Computer, 2013,26(2):1-3.

[3] 李永博,孙国祥,楼恩平,等.基于CFD模型的温度温室对指标GA优化控制[J].农业机械学报,2013,44(3):187-191.

LI Yong-bo,SUN Guo-xiang, LOU En-ping,etal. Multi-index GA Optimal Control of Greenhouse Temperature Based on CFD Model[J]. Transactions of the Chinese Society for Agricultural Machinery, 2013,44(3):187-191.

[4] 黄 霞.基于FPGA的智能温度控制系统的设计[D].武汉:武汉理工大学,2012.

HUANG Xia. Design of Intelligent Tempetature Control System Based on FPGA[D].Wuhan University of Technology,2012.

[5] 张李伟.基于Zigbee的温室温度检测系统[J].信号与系统,2012(8):31-33.

ZHANG Li-wei. Temperature test system of Greenhouse based on Zigbee[J].Signal Process and System, 2012(8):31-33.

[6] 杨 乐,舒建文,盛立冉.基于现场控制系统的烟叶温室温度控制模型[J].实验室研究与探索,2013,32(6):16-17,70.

YANG Le,SHU Jian-wen,SHENG Li-ran. Greenhouse Temperature Control Model for Tobacco Based on FCS[J]. Research and Exploration in Laboratory, 2013,32(6):16-17,70.

[7] 张 军,张侃谕.温室温度控制系统不确定性与干扰的灰色预测补偿算法[J].农业工程学报,2013,29(10):225-233.

Zhang Jun, Zhang Kan-yu. Grey prediction compensation algorithm for the uncertainty and interference of greenhouse temperature control system[J]. Transactions of the Chinese Society of Agricultural Engineering (Transactions of the CSAE), 2013, 29(10): 225-233.

[8] 刘德全.Proteus 8—电子线路设计与仿真[M].北京:清华大学出版社,2014.

[9] 徐爱军.单片机原理实用教程—基于Proteus虚拟仿真[M].2版.北京:电子工业出版社,2012.

[10] 周景润,张丽娜.基于Proteus的电路及单片机系统设计与仿真[M].北京:北京航空航天大学出版社,2005.

[11] 赵健领,薛圆圆.51单片机开发与应用技术详解[M].北京:电子工业出版社,2010.

[12] DAllAS SEMICONDUCTOR.DS18B20 Programmable Resoultion 1-Wire Digital Thermometer.

[13] 王丽娟,王 艳.基于DS18B20的多通道温度测试仪[J].制造业自动化,2013,35(1):123-127.

WANG Li-juan, WANG Yan. The multi-channel temperature tester based on DS18B20[J]. Manufacturing Automation. 2013,35(1):123-127.

[14] 程玉娟,刘东波,汪春梅,等.基于以太网的分布式煤矿温度远程监控系统[J].制造业自动化, 2014,36(1):31-33.

CHEN Yu-juan, LIU Dong-bo, WANG Chun-mei,etal. Remote temperature monitoring and control system design based on the ethernet for coal mine[J]. Manufacturing Automation. 2014,36(1):31-33.

[15] 张家伟,刘成忠.基于STC89C52RC的养殖区温控系统设计[J].甘肃农业大学学报,2014,49(1):161-165.

ZHANG Jia-wei,LIU Cheng-zhong. Design on temperature control system of culture zone based on STC89C52[J].Journal of Gansu Agricultural University, 2014,49(1):161-165.

[16] 岳云峰,李怀盛,马春光,等.单总线数字温度传感器DS18B20数据校验与纠错[J].传感技术,2002,21(7):52-55.

YUE Yun-feng, LI Huai-sheng, Ma Chun-guang,etal. Proofreading and correction for the 1-wire digital thermometer DS18B20' s data[J]. Journal of Transducer Technology, 2002,21(7):52-55.

猜你喜欢
流程图温度传感器时序
基于Sentinel-2时序NDVI的麦冬识别研究
温度传感器DS18B20在温度计设计中的应用
一种高性能CMOS温度传感器
XTR105电流变送器在温度传感器中的应用
基于FPGA 的时序信号光纤传输系统
一种毫米波放大器时序直流电源的设计
专利申请审批流程图
专利申请审批流程图
温度传感器在笔记本电脑散热系统中的应用
宁海县村级权力清单36条