基于总线技术的仓库温湿度监测系统的设计
2022-05-09郑淼淼
摘要:温湿度是仓库环境重要参数之一,针对仓库温湿度监测问题,提出了一种基于总线技术的仓库温湿度监测系统。详细阐述了仓库温湿度监测系统的设计思想、硬件结构和软件的设计方法。采用CAN总线技术对仓库进行分布式节点设计,以低功耗单片机MSP430F149为控制核心,通过数字式温湿度传感器获取节点参数,实现对仓库多点温湿度实时监测。
关键词:仓库;温度;湿度;CAN
中图分类号:TP301 文献标识码:A
文章编号:1009-3044(2022)07-0109-03
1 概述
温湿度是仓库重要的环境参数,保持合适的温湿度对贮存物品非常重要。在工业、农业、制造业等行业中许多产品在高温环境下易燃易爆炸,低温环境容易失去活性效用,阴潮环境下易受潮发霉等,如果在贮藏存储这一环节发生了事故将会造成巨大的经济损失,因此监测仓库的温度、湿度等环境参数非常有必要[1-2]。文章提出一种低功耗、分布式的CAN总线仓库温湿度监测系统,实现对仓库多点温湿度实时监测与显示。系统具有适应性广泛、抗干扰能力强且具备远程传输处理能力。
2 CAN总线概述
CAN(Controller Area Network)总线技术属于现场总线技术的一种,是ISO国际标准化的串行通信协议,又名为控制器局域网络,它作为一种分布式控制串行通信总线,双绞线、同轴电缆、光导纤维等介质都可以作为它的通信介质。目前,比较常用的现场总线有:Profibus总线、LonWorks总线、CAN总线、WorldFIP总线和基金会现场总线等。根据在仓储管理中各个现场设备呈分散式分布的特点,CAN总线因为其通信协议的特性及优势,使其成为应用于仓储管理的现场通信总线的理想选择。
3 硬件系统设计
本仓库温湿度监测系统的硬件部分的主要构成如下:MSP430F149作为主控制器,将CAN控制器MCP2515和CAN收发器TJA1050以及光电耦合器6N137整合为CAN通信模块,而温湿度测量模块则主要由SHT11构成。
3.1 微控制器MSP430F149
系统采用美國德州仪器公司的MSP430F149单片机作为微控制器,工作电压较低,范围为1.8 V ~3.6V,有3种工作模式,分别为主动、待机和关闭,其对应的工作电流分别为280μA、1.6μA和0.1μA。从低功耗模式到唤醒模式的转换时间小于6μs,完全满足实时系统的高效要求[3-4]。该处理器通过16位RISC系统、16位CPU、集成寄存器和常量发生器来获得最大代码效率。它具有丰富的片上资源:60KB+256B闪速存储器、2KB的RAM、两个16位定时器、一个8通道快速12位A/D转换器、两个通用USART接口,以及支持SPI通信,方便CAN总线接口通信,全满足本系统的使用需求[5-6]。
3.2 CAN控制器MCP2515
MCP2515是由Microchip推出的一款具有SPI口可以独立控制器局域网络协议控制器。工业级的工作温度范围为-40℃至+85℃,满足系统设计要求。CAN协议处理模块和发送、接收缓冲器包括过滤器和屏蔽器共同构成了MCP2515的CAN模块。CAN协议处理模块连接于CAN总线,SPI接口连接于MCU。MCP2515对CAN总线数据的发送流程是微处理器通过SPI接口将待发送的数据写入MCP2515的发送缓冲器,紧接着调用发送请求的命令就可以将发送数据到CAN总线上。MCP2515具有发送、接收中断,各自错误中断以及总线唤醒中断等8个中断源。MCP2515既支持CAN的标准帧格式,也支持CAN2.0B的扩展帧格式。MCP2515共有114个寄存器,有效地址范围为0x00~0x7F。在使用MCU对MCP2515进行初始化时,只有通过SPI接口用其内置的读写命令才能完成接收缓冲器和发送缓冲器的设置。
3.3 CAN收发器 TJA1050
TJA1050具有差分发射和接收能力,具有较高的电磁抗干扰性。TJA1050由于在输出信号中CANH能最大限度地匹配CANL,电磁辐射相对更低,改善了在节点未通电时的性能,因此它非常适合设计低功耗节点。其最高通信速率可达1Mb/s,可连接110个节点,非常适用于分布式大范围的节点布置。TJA1050有高速或静音两种工作模式,通过自身S引脚选择工作模式。其中高速模式为默认模式,总线上输出信号的斜率切换时能够在较高的速率上进行,因此这种模式适合于较大的位速率和大总线。当S引脚处于接地时处于高速模式,而接工作电源时为静音模式。在电路中TJA1050的1号引脚TXD的功能为从CAN总控制器当中输入发送到总线上的数据,2号引脚GND为接地,3号引脚VCC为电源,4号引脚RXD的功能为从总线接收的数据发送给CAN总线控制器,6号引脚CANH和7号引脚CANL分别为高低电平的电压输入和输出。
3.4 光电耦合器6N137
6N137是适用于单通道的高速光耦合器,它可以在极低的输入电流下完成光电的转换。具备温度、电流和电压补偿的功能,输入输出隔离程度较高,转换速率可达10Mbit/s,可带8个TTL负载,工作温度范围为-40℃~+85℃。在实际应用中6N137的引脚1与4未连接,2和3两脚分为阴阳两极,5脚接地,6脚为开路集电极输出,7脚为使能端,8脚接工作电源。正常情况下,当光敏管处于非导通状态时,发光二极管正向电流为0~250uA。当光敏管处于导通状态时,其二极管正向电压为1.2V~1.7V,正向电流为6.5 mA ~15mA。6N137在不加限流电阻或者所加电阻阻值较小的情况下,仍然能够工作,但是处于数字波形较为陡峭的时候,Vcc1将会受到发光二极管导通电流的影响,此时上升和下降沿的频谱比较宽,由此产生的尖峰脉冲造成将极其尖锐,一般情况下无法抑制这种噪声,所以电路设计时需用阻值较大的限流电阻。而对于输出端而言,应该在脚5和脚8附近放置一个0.1uF的去耦电容以此来吸收电源线上的纹波,同时也能起到保护光电隔离器接收端在运作时所受到的影响。脚6是集电极开路输出端,一般情况下需接保护电阻。当使能端脚7处于0~0.8V时强制输出为开路,在2.0V~Vcc2时允许接收端工作。
3.5 温湿度传感器SHT11
SHT11是瑞士Sensirion公司生产的数字式新型相对湿度和温度传感器。SHT11的测量范围为0-100%RH,-40℃~+123.8℃,精度为±3.0%RH,±0.4℃,分辨率为0.03%RH,0.1℃,传输方式为I2C总线。SHT11的应用电路中1号引脚接地,2号和3号引脚分别为数据和时钟的串行接口,4号引脚接2.4V~5.5V的工作电压。其工作原理是将所测得的湿度和温度转换成电信号,经过微弱信号放大器放大之后进入A/D转换器,转换后输出数字信号。
3.6 CAN通信模块设计
系统采取在外部总线上进行扩展CAN总线接口芯片和CAN收发器的方案。为了能够使报文数据在CAN通信协议下进行发送和接收,在启动报文发送的环节就要求能够控制使能引脚或者通过SPI接口来发送命令。MCP2515将CAN总线上探查到的报文信息与用户定义信息做对比,一旦确认信息匹配,就会将报文数据转送到接收缓存器中。CAN通信模块设计如图1所示。
为了提升MSP430F149工作的稳定性和准确性以及对抗外界、电路元器件产生的电磁干扰和噪声,加入光电耦合器实现抑制干扰和隔离。在实际电路当中, TJA1050的CANH和CANL两个引脚与CAN总线接口需要串接两个保护电阻以及并接两个瞬态抑制二极管。限流作用的保护电阻的阻值为5Ω,瞬态抑制二极管选择SA28A,放置在输入端与地之间,并在这两者之间并联一个阻值大小为120Ω的终端电阻,它的作用除了在一定程度上防电磁辐射之外也能滤除CAN总线上存在的一些高频干扰。另外在第8个引脚上接地来让其进入高速模式。
3.7 温湿度测量电路设计
本系统设计的温湿度测量模块主要由温湿度测量一体的数字型传感器SHT11完成。DATA数据线需要配置一个上拉电阻,工作电压为5V, SCK数据线的最高频率为10MHz。SHT11的电路设计如图2所示。
3.8 电子报警电路
针对可能出现的仓库内温度或者湿度反常的情况,本系统采用蜂鸣器报警电路来提示。无源蜂鸣器在采取方波作为理想的工作信号的状态下会在程序中相应地输出一定频率的方波。当仓库内出现温湿度超过设置的阈值时,蜂鸣器将会发出报警。电路采取NPN型三极管作为蜂鸣器的驱动。
4 软件系统设计
4.1 CAN总线的通信程序设计
本系統将DeviceNet作为CAN作为底部的通讯协议,在应用层领域对于不同的设备定义不同的协议,它有重复节点的地点侦测的功能,同样能够在高噪声的环境下使用。本系统采用的是DN1022协议芯片来进行微处理器和DeviceNet的连接,通过高速串/并口与用户处理器进行连接。DN1022内置DeviceNet Group2 Only Slave从站协议栈,DeviceNet处理器,高速串/并行口,CAN控制器等。它最大可输入或输出64个字节,并提供POLL(轮询)、COS(状态改变)、CYCLIC(循环)共三种数据触发方式,其正常的供电电压为3.0V~5.5V。程序先后完成CPU的初始化、读保护器配置命令,接着配置DN1022,最后完成保护器与DeviceNet主站之间的交互数据等流程。
4.2 SPI通信程序设计
MCP2515与微处理器通过SPI模式通信,软件设计需要完成初始、SPI读写等操作。本系统所用的SPI函数有:SPI初始化函数:SPI Init(VOID);发送数据:SPI SendByte(BYTE bData,BYTE *pData);读取数据:SPI ReadByte(BYTE *pData)。在设计过程中,SPI是同时进行发送一个数据和接收一个数据的操作。本系统将采用同一个函数来实现SPI的数据的发送和接收来实现,唯一进行区别的是将通过调用时对参数不同的数值。
4.3 CAN总线通信模块设计
CAN总线通信模块程序主要分成CAN总线的初始化,发送数据以及接收数据三部分。CAN总线的初始化的核心是针对CAN控制器的初始化,包括了对工作方式、验收滤波方式以及验收屏蔽寄存器和波特率参数的设置等。当完成了初始化的工作后,MCP2515才能进行正常的发送和接收数据的工作辅以子程序来进行节点报文的发送。对于数据发送,只要确定发送缓冲器处于没有被所锁定的状态,就可以进行把现场的实时测量的数据发至MCP2515的发送缓冲区,接着再启动MCP2515进行发送数据的命令,流程如图3所示。对于数据接收,在确认系统已经处于上电的状态下,首先让MCP2515进入已知的状态,强迫它复位进行配置为定时器、屏蔽器以及滤波器,流程如图4所示。
4.4 温湿度采集模块设计
温湿度采集模块的核心是SHT11,其温湿度采集整体的流程为:1)启动总线传输并进行连接复位,2)测量温湿度参数并查验是否有错误,如有回到1),否则进行温湿度参数软件补偿。
MSP430F149单片机的I2C接口与SHT11连接方便。MSP430F149的I2C内部结构主要分为时钟控制、数据控制和控制逻辑等部分,它们主要负责实现I2C的时钟产生、数据收发、总线裁断和中断等功能。SHT11有四种子程序,分别为启动时序、读一个字节、写一个字节以及通信复位时序。这四种子程序在执行的时候需按照严格的时序来操作。
5 结束语
针对传统仓库温湿度监测系统的不足,利用CAN总线技术,结合低功耗单片机MSP430F149和数字型温湿度传感器SHT11提出了一种分布式总线仓库温湿度监测系统,系统布线灵活,监测节点布局扩展方便,具有低功耗实时监测功能,具有良好的应用价值。
参考文献:
[1] 卢焱,张凤登.基于CAN总线的无线温湿度测量仪[J].软件导刊,2018,17(2):86-88,92.
[2] 张晴,刘青正,林智鸣.基于单片机的仓库温湿度智能测控系统[J].电子世界,2019(21):136-137.
[3] 郑淼淼.基于无线射频技术的温湿度测量系统[J].机电工程技术,2012,41(10):64-66.
[4] 郑淼淼.基于物联网的家居安防系统设计[J].科技广场,2017(5):115-118.
[5] 郑淼淼.楼宇无线火灾监测报警系统的设计[J].科学技术创新,2017(25):17-18.
[6] 郑淼淼.无线传感器网络室内空气质量检测系统[J].电脑知识与技术,2021,17(26):45-46,49.
【通联编辑:谢媛媛】
收稿日期:2021-12-08
作者简介:郑淼淼(1984—),女,安徽淮南人,高级工程师,硕士,主要研究方向为电气工程。