APP下载

基于CAN总线的无线温湿度测量仪

2018-03-10卢焱张凤登

软件导刊 2018年2期
关键词:CAN总线温湿度无线

卢焱+张凤登

摘 要:设计一种基于CAN总线的远程温湿度综合探测器,具有高稳定性、高精度、抗干扰能力强的特点。同时添加了ESP8266无线模块,将采集到的数据传输到安卓客户端或其它终端,使设计更加灵敏高效、快捷方便,便于用户使用。采用数字型智能温湿度传感器,以单片机STC5A60S2为主控制器,温湿度传感器由数据总线将数据传送给单片机,OLED12864实时显示室内的温湿度值,单片机通过CAN控制器和CAN收发器连接至CAN总线,实现与总线其它节点的通信。最后对系统精度进行实验验证,其温度测量精度达到±0.2℃,湿度精度±4%RH,结果表明该系统精度高、性能稳定,能快速高效地将当前环境的温湿度值反馈给用户。

关键词: CAN总线;温湿度;无线;STC51

DOIDOI:10.11907/rjdk.172489

中图分类号:TP319

文献标识码:A 文章编号:1672-7800(2018)002-0086-03

0 引言

温湿度的测量在多个方面都有应用。在日常生活中,空气中的温湿度决定了空气质量,与人类生活质量及健康问题息息相关;在农业方面,大棚内适宜的温湿度可以促进植物健康成長;在工业领域,温湿度的应用与其重要性更为突出:工厂车间里的高精度仪器设备都对其工作环境有严格要求,温湿度需要控制在一定范围,即实时监测温湿度值,并且根据实时测得的数据对一些设备进行控制,以确保当前环境的温湿度值达到要求[1-3]。传统的远程温湿度检测系统通常存在传输抗干扰能力差、无法简便接入多个传导点等问题,使系统的互换性和适应性、测量精度与稳定性受到影响。本课题内容致力于实现基于CAN总线的高适应性、抗干扰能力强的远程温湿度测量系统[4-6]。同时具有较高的综合性,包含了数据采集、数据处理、图像显示、数据传输等一系列相关联的子问题,因此需要有一个整体的思路进行串联和设计。

1 研究现状及设计原理

1.1 温湿度测量发展现状

温度数值测量有两种方式,分别是接触式和非接触式测温。传统上有多种测量湿度的方法:动态法、静态法、露点法等。露点法是用于测量当前空气中的相对湿度到达饱和,也就是空气中的气态水转变为液化水时的湿度值,不仅准确度与精确度均相对较高,而且测量范畴相对较宽。另外,目前湿度测量的发展趋向,也正从单一的湿敏元件朝着智能化、多参数检测、集成化、数字化的方向发展。

综上,温度和湿度两个物理量本来就相互影响,传统上将其分开独立测量无疑又增大了测量的误差。因此,现在普遍用得最多的温湿度测量方法是通过整合在一起的电子式数字式传感器。与传统测量方法与器件相比,电子式测量使用方便、成本低廉、精度高,而且内部整合模数字信号转换,方便与其它微处理器及电子器件连接,无疑契合了当前数字化的发展趋势。最终笔者选择DHT22温湿度传感器。

1.2 CAN总线发展现状

CAN总线具有成本低廉、数据传输距离远、数据传输率高(最高1Mbps)、优先权仲裁无破坏、错误检测中断重发可靠、环境适应能力较强和抗扰能力强的特点,本课题采用CAN总线作为数据通信方式。CAN总线系统的硬件框架由多个节点构成,通常两端需要分别加上120Ω的终端电阻,使用高频信号传输时,信号到达传输线末端后不产生反射,干扰信号[7] 。CAN总线通信通过帧传输报文实现。根据其格式可分为基于CAN2.0A的11位标准帧格式以及基于CAN2.0B的含有扩展标志位的29位扩展帧格式。报文主要有4种固定的帧类型:数据帧、远程帧、错误帧、过载帧[8] 。

1.3 无线模块工作原理

此次使用的无线模块是ESP8266模块,封装尺寸小、能耗低,专门为移动设备和物联网应用设计而成,可将物理设备连接到无线网络上,以进行互联网或局域网通信,从而实现联网功能。

ESP8266模块支持3种工作模式:

(1)STA 模式。ESP8266模块通过借助路由器可以连接到互联网、手机或电脑,从而可以通过连接互联网实现远程控制设备。

(2)AP模式。ESP8266模块作为热点,实现模块与手机或电脑的直接通讯,从而实现局域网无线控制。

(3)STA+AP模式。两种模式共同存在的形式,即可以通过互联网,从而实现两种模式的相互交换,对于使用而言,这种模式相对来说操作更加方便,应用较为广泛。

2 测量系统硬件设计

2.1 总体结构

温湿度测量系统总体结构见图1。

2.2 单片机最小系统

单片机最小系统包括:单片机、复位电路、晶振电路。晶振电路:其作用是为了给整个系统提供一个稳定的振荡源。复位电路:主板复位电路的作用是把主板上所有存储器以及连接在上主板的CPU、显卡、内存、硬盘等部件中的存储器在进行清零,即初始化,使所有存储器在同一节拍下有序地工作。复位的方式有两种:一是自动复位(开机时),由PG信号电路进行复位;二是手动复位(死机时可以选择),按下机箱面板上的RESET重启按钮,开始复位。

2.3 DHT22传感器

根据DHT22的工作电压范围情况(3.3~5.5V),所以通常给传感器外界加上的直流电源是5V。器件使用单总线数据格式进行通讯:一次通信时间4~5ms左右,数据分为两个部分:小数和整数。一次完整的数据传输为40bit,由高位先出。

2.4 无线传输及显示模块

根据ESP8266无线模块的工作电压情况,通常会给ESP8266的外界加上3.3V直流电源。UTXD引脚需要连接至单片机P3.0,URXD引脚需要连接至单片机P3.1,数据收发功能得以实现。

OLED12864液晶显示屏的尺寸为0.96寸,具有高分辨率,为128*64,直接接3.3V就可以工作了[9]。其模块接口为SPI/IIC,因此引脚4接至P1.5,MOSI作用为SPI同步串行接口的主出从入,以此来实现数据收发;引脚3(SPI时钟信号)接至P3.4CLOCKOUT0(计数器0的时钟输出)。endprint

2.5 CAN模块通信

CAN控制器用于实现CAN协议,对外需要供应MCU物理线路的接口,再由CAN收发器完成CAN控制器与物理总线之间的连接。当SJA1000作为CAN控制器与CAN总线相连时,其须使用引脚为:P0、RD、WR、ALE、INT1、P23、AD0。PCA82C250 CAN收发器工作模式多样,共有3种,通过Rs控制引脚,可以对其模式进行转换控制。

3 系统软件设计

整个系统软件部分主要由温湿度测量、CAN通信以及无线模块构成。而温湿度测量部分又可分为初始化和主系统执行两部分:当上电启动或者复位后开始进入系统初始化。以此对芯片内部相关系统、CAN通信模块、LED指示灯、OLED显示屏、蜂鸣器以及DHT22传感器进行初始化。传感器初始化后判断传感器是否工作正常,若否,则重新进行初始化;若是,继续操作进入系统执行部分。

3.1 温湿度测量系统软件设计

3.1.1 温湿度模块测量流程

温湿度模块测量流程见图2。

3.1.2 温湿度值计算

湿度:湿度的分辨率是16位,高位在前。校验成功后,将湿度高八位与湿度低八位转化为十六进制,然后通过计算得出的湿度值是实际湿度值的10倍。

温度:溫度分辨率是16位,高位在前。校验成功后,将温度高八位与温度低八位转化为十六进制,然后通过计算得出的温度值是实际温度值的10倍。其中,温度的正负由最高位表示:当温度最高位的数值等于1时,代表负温度;当温度最高位的数值等于0时,表示正温度。

3.2 无线模块软件设计

3.2.1 ESP8266工作原理

ESP8266是高性能无线SOC(System on Chip,即一个有专用目标的集成电路芯片),主频可以支持两种频率,分别为80MHz和160 MHz,支持 RTOS,拥有集成Wi-Fi MAC/BB/RF/PA/LNA、板载天线。支持标准的IEEE802.11 b/g/n协议、完整的TCP/IP协议栈[10]。当串口开始通讯时,ESP8266的固件便开始自动编程,TCP/IP协议模型对数据进行封装,从而实现数据无线收发。

本次设计中,将ESP8266无线模块置于AT模式:使模块可以作为热点使用,热点密码设置为:0123456789。

3.3 CAN通信实现

3.3.1 CAN通信

(1)CAN初始化。在应用CAN总线进行通信前,需要对CAN总线进行一系列参数配置。调用CAN_Mode_Init(u8 tsjw,u8 tbs2,u8 tbs1,u16 brp,u8 mode)函数配置波特率以及CAN的工作模式。按照先后顺序可分为:GPIO口配置、CAN初始化配置、过滤器配置。本设计采取标准格式进行配置。

(2)节点发送。状态寄存器判断状态是否可以接收,接下来配置发送缓冲器。在判断数据缓冲区是否被锁时:若SR2为放映逻辑0,则锁;若SR2为放映逻辑1,则开。

(3)节点接收。报文接收开始触发,前提是接收中断使能(RIE)必须为逻辑1。

3.3.2 CAN控制器SJA1000

(1)初始化。①复位模式—开始配置;②开始配置时钟分频寄存器,决定工作模式(决定Peli模式还是Basic模式);③开始配置总线定时寄存器,确定波特率;④开始配置中断使能寄存器,决定使用哪几个中断;⑤配置输出控制寄存器;⑥配置验收码、屏蔽码,决定接受哪一类节点的数据;⑦退出复位模式,进入正常工作模式。

(2)发送。①查询当前状态(是否接收、发送数据,数据缓冲区是否被锁);②配置发送缓冲区;③配置命令寄存器,启动发送。

(3)接收(扩展帧与标准帧由于ID长度不同,验收也有区别)。①采用中断接收(关CPU中断);②判断是不是接收中断;③判断是数据帧还是远程帧;④取得数据;⑤开启中断。

帧数据传输时,CAN控制器(SJA1000)需要验收滤波,若与本节吻合,则数据可存入相应的寄存器里,否则抛弃该数据。

4 结语

4.1 数据结论

某日各个时间所测得的实验结果如表1所示。

4.2 结论

本设计最核心之处是在CAN总线上,因为CAN总线这种通讯协议方式有极强的拓展性和稳定性。只需要设置好用户层参数以后便可以接入CAN网络,而不需要对主机或者整个系统造成任何改变,这就使得本设计可以方便地接入任何CAN总线网络,正是这种便捷通用的优越性以及CAN总线工业级的稳定抗干扰性,使得本设计有了设计生成的价值及意义。

当然,由于水平有限,对CAN总线以及51芯片的应用理解还在初级阶段,本设计还有许多可以优化升级的地方。比如可以考虑多CAN节点的通讯网络,同时建立一个合适的网络结构,编写上位机程序,将CAN信号转换成232信号,实现与上位机的连接,方便用户对整个系统的操作等。一系列的优化以及应用会随着对CAN总线的学习及应用得到进一步改善和提高。

参考文献:

[1] 谭林.基于单片机的温度监控系统设计[J].国外电子测量技术, 2009,28(4):50-52.

[2] 周云辉,王娇,钱云飞.基于嵌入式的环境温湿度监测系统设计[J].电子测量技术, 2012(9):80-82.

[3] 张瑞华.温室环境自动监控[J].计算机与农业,2002 (2):8-10.

[4] 朱恒军,于泓博,王发智.基于CAN总线的大棚温度测控系统设计[J].微电子学与计算机,2012(5):183-187.

[5] 徐亮,邓小龙.基于CAN总线的分布式车间温湿度检测系统[J].电子科技, 2012(10):19-22.

[6] 王欢,黄晨.高精度无线环境温湿度测量系统设计研究[J].电子测量与仪器学报, 2013(3):211-216.

[7] 牛跃听.CAN总线应用层协议实例解析[M].北京:北京航空航天大学出版社, 2007.

[8] 张凤登.现场总线技术与应用[M].北京:科学出版社, 2008.

[9] 张素萍,李朝强,张建芬.基于单片机的OLED显示系统设计[J].福建电脑, 2015(8):15-16.

[10] 杨博雄,倪玉华.无线传感网络[M].北京:人民邮电出版社, 2015.endprint

猜你喜欢

CAN总线温湿度无线
温湿度控制器在回收砂冷却系统中的应用
基于DSP的多路温湿度监测系统
基于ARM的无线WiFi插排的设计
基于温湿度控制的天气预测装置
蒸发冷却温湿度独立控制空调系统的应用
ADF7021-N在无线寻呼发射系统中的应用
基于嵌入式的汽车辅助制动系统研究