王誉树,蔡 强*,郭冬莲,诸 寅,章晓眉
(1.杭州电子科技大学电子信息学院,杭州 310018;2.浙江清华长三角研究院,浙江 嘉兴 314006)
基于CAN总线的水产养殖水质在线监控系统设计与实现*
王誉树1,2,蔡强1,2*,郭冬莲2,诸寅2,章晓眉2
(1.杭州电子科技大学电子信息学院,杭州 310018;2.浙江清华长三角研究院,浙江 嘉兴 314006)
摘要:设计完成了一套水产养殖水质多参数在线监控系统,该系统采用CAN现场总线技术实现现场数据的传输,采用GSM无线通信技术进行远程数据采集和监控。本系统对温度、溶解氧、pH值、导电度等水质参数进行实时监测,并针对其中的溶解氧实现了自动控制。现场应用结果表明系统具有良好的实用性和稳定性,能较好的满足水产养殖水质监控的需求。
关键词:水产养殖水质;CAN总线;自动控制;在线监测
随着人民生活水平的不断提高,对水产品的需求也大幅度提高,传统的粗放养殖方式已不能满足人们蛋白质摄入的需要[1],生态、高效的规模化养殖成为现代水产养殖的发展趋势。在规模化水产养殖中,水质的好坏直接影响到水产动物的生长发育,进而决定养殖产量和效益。因此实时监控养殖水体中的溶解氧含量、pH值、温度、导电度等参数因子十分重要。此外,规模化水产养殖往往包含多个不同的养殖水域,需要采取分散监测,集中管理的方式,同时对多个水域的水质参数进行监控[2]。CAN总线以其分布性、网络化、智能化等特点被广泛应用于各种控制系统中[3]。本文基于CAN总线设计了一种水产养殖水质多参数在线监控系统,并利用GSM网络对现场采集的数据进行远程传输,实现了对养殖水质多参数的实时自动监测,为养殖技术人员做出相应决策提供重要参考依据。
本系统由浮筒式水质多参数检测仪、增氧机控制器、监控终端、短信数据传输模块组成。系统总体结构框图如图1所示。
图1 水产养殖监控系统结构图
监控终端与各水质多参数检测仪、增氧机控制器形成CAN网络,配合自定义协议实现了数据或命令的有效传输。水质多参数检测仪完成对主要水质参数的数据采集;增氧机控制器会响应监控终端发送的控制命令从而实现对应增氧机的自动控制。监控终端包括现场计算机、远程计算机及移动终端。远程计算机和移动终端通过GSM网络与现场计算机进行通信。计算机上的监控软件实现了对数据的接收、存储、显示等信息管理工作和相关的控制、预警。
2.1浮筒式水质多参数检测仪
浮筒式水质多参数检测仪(图2)完成对多个水质参数的检测,所用传感器包括溶解氧电极(汉星,型号DO912B)、复合pH电极(汉星,PC202)、电导率传感器、温度传感器(Pt100)。
图2 浮筒式水质多参数检测仪实物
水质多参数检测仪的信号采集处理电路主控芯片采用基于ARM Cortex-M3内核的STM32F107处理器,该处理器是专门设计满足于高性能、低功耗、实时应用、具有性价比高的新一代嵌入式芯片,其标准外设包括10个定时器、5个USART接口、两路CAN2.0B控制器等模块[4]。检测仪硬件结构框图如图3所示。
图3 水质多参数检测仪硬件框图
2.2信号调理电路
水质多参数检测仪中各传感器的输出信号需要经过相应调理电路的处理,使得处理后的信号便于AD采样[5],下面以溶解氧电极和Pt100的信号处理为例加以描述。
溶解氧电极正常工作时,需要在电极间加0.7 V左右的极化电压,传感器的输出电流与待测水体中的氧分压成正比,故测得电流值便可以计算出溶解氧的含量[6]。溶解氧传感器信号调理电路如图4所示。图中IC1、R1、R2构成的电路用于产生极化电压,IC2、IC3完成传感器输出电流信号的放大。
图4 溶解氧传感器信号调理电路
Pt100传感器是利用金属铂的电阻值随温度变化而变化的物理特性制成的温度传感器[7],其温度变化率为0.385 1 Ω/℃。本系统测温范围为0 ℃~50 ℃,测量分辨率为±0.1 ℃。系统采用三线制接法,恒流源驱动的方式进行测量,将温度引起的阻值变化转变为电压变化量输出。三线制恒流源测量方式有效地消除了导线电阻的影响且输出电压与电阻变化成线性关系[8-9]。恒流源产生电路如图5所示。
图5 恒流源产生电路
图中参考电压Vref由2.5 V基准电压芯片ADR441产生,其具有精度高、噪声低等特点。当R1=R2,R3=R4时,输出电流Iout=Vref/Rref。因此本系统恒流源Iout=2.5 V/5 kΩ=0.5 mA。输入Pt100的电流必须高低适中,过小会降低传感器的灵敏度,过大会使传感器产生较大的热效应,造成误差,此外电阻Rref应当选择稳定性好的精密绕线电阻,以保证电流源的精度。Pt100上产生的电压需进一步放大,以便AD采样,本系统设计的放大倍数为10。±0.1 ℃的精度要求电路可以检测到0.1 ℃引起的电压变化,由已知条件可计算出次电压变化量为0.5 mA×0.358 1 Ω/℃×0.1 ℃×10=0.179 mV。
2.3AD转换与模拟开关电路
由于有多路模拟信号的存在,因此通过多路模拟开关进行信号选通,以便单个AD转换芯片可以对多路信号进行处理[10]。系统选用ADG708,ADG708是一款低压CMOS模拟多路复用器,内置8个单通道。它根据3位二进制地址线A0、A1和A2所确定的地址,将8路输入(S1~S8)之一切换至公共输出D引脚。该器件提供EN输入,用来使能或禁用器件。禁用时,所有通道均关断。ADG708具有低功耗,工作电压范围在1.8 V~5.5 V,所有通道均采用先开后合式开关,防止通道开关时发生瞬时短路。多路模拟开关的公共输出经AD8628缓冲送入AD。具体电路如图6所示。
图6 模拟多路开关电路
2.4增氧机控制器
增氧机控制器可以手动或自动控制增氧机的开关。控制器内部主要有:220 V断路器、380 V断路器、多个接触器、多个继电器、12 V开关电源、控制电路板。
增氧机的手动控制通过开关增氧机控制器面板上的按钮开关实现。控制电路板设计带有CAN总线通信接口和继电器控制电路。电路板主控芯片也采用STM32F107,控制电路板响应上位机发送的控制命令,通过控制12 V电磁继电器来控制接触器的通断以此达到开关增氧机的目的,继电器与单片机之间通过光耦TLP521隔离,以保护前端电路。
2.5GSM网络通信模块
现场计算机获得的数据通过GSM网络以短信的方式发送给远程计算机或手机终端,移动终端的GSM无线网络覆盖范围广,用户无需另外组网,在信息传递方面性能稳定、可靠,且移动终端便于携带操作[11]。利用GSM短信息系统进行无线通信还具有双向数据传输功能,可实现数据的采集和相应控制命令的发送。本系统采用北京东方讯公司的串口短信数传模块EIC-CS12,该模块具有一个RS232串口,内置GSM模块,可通过AT指令灵活设置通信参数,从而实现RS232与GSM之间通信的双向转换。
2.6CAN总线接口
规模化水产养殖的养殖水域分布范围广,本系统应用的对虾养殖基地水域分布如图7所示。由图可见养殖水域分为多个区域,每个养殖区域中分布有多个养殖鱼池。监控中心距离养殖池最远可达600 m,鱼池总数达30个,CAN总线的通信方式可以有效地应用于此种监测节点多,通信距离较远的场合,理论上一个监测中心通过CAN总线可以挂接110多个CAN节点。
图7 养殖水域分布图
对于每个CAN节点,其硬件电路均采用STM32F107和CTM8251AT模块来实现。带隔离的收发器模块CTM8251AT内部集成了所有必需的CAN隔离及CAN收、发器件,模块的主要功能是将CAN控制器的逻辑电平转换为CAN总线的差分电平[12]。上位机则通过CAN适配器接入CAN网络。
在CAN2.0B的技术规范中,只规定了数据链路层和物理层,没有规定应用层。所以必须根据实际应用的需要设计合适的CAN总线通信协议,才能完成可靠准确的数据传输[13]。本系统协议采用CAN2.0B支持的29 bit标识符扩展帧。通信速率采用250 kbit/s进行通信。
3.1传输信息类型
根据CAN总线网络中各个节点设备的功能,确定通信时所需要的信息类型如下:
(1)命令信息:控制中心向增氧机控制器发送的信息。
(2)状态信息:增氧机控制器接收命令后,返回的执行结果。
(3)查询信息:控制中心向水质监测仪发送的查询请求。
(4)数据信息:水质监测仪向控制中心返回的数据。
(5)广播信息:向总线上所有节点发送的信息。
3.2标识符分配与数据域结构
确定CAN标识符的分配非常重要,它关系到通讯网络结构的合理性和传输效率的高低,本系统采用的29 bit标识符的扩展帧格式具体分配如表1所示。
表1 标识符格式
信息类型域确定了上述5种信息的发送优先级。配置为:命令信息—0x01、状态信息—0x02、查询信息—0x03、数据信息—0x04、广播信息—0x05。
目标地址域和源地址域各占1 byte,其包含两部分信息,高3位为养殖区域编号,低5位为鱼池编号。监控主机的地址设定为0x00,当信息类型为广播类型时,其取值为255(即11111111)。
目标设备类型域和源设备类型各占2位,其表示总线上接有的设备类型,针对本设计配置为:监控主机—00、多参数监测仪—01、增氧机—10,当信息类型域为广播类型时,目标设备类型域的值为11。
地址域和设备类型域共同确定了CAN网络中的一个设备。
多帧标志占1位,当此位为1时,表示所需数据大于8 byte,数据将以多个CAN帧的形式发出。此时的数据域格式如下表2所示。其中索引号为此帧数据部分在整个数据流中的索引位置,数据长度为数据流的字节总数。该位为0时,数据按单个CAN帧传输。
为了简化协议,规定数据信息之外的信息类型数据部分为1 byte,不同信息类型的数据域详细描述如下:
(1)命令信息时,1 byte,0x00—关闭增氧机,0xff—开启增氧机
(2)状态信息时,1 byte,0x00—开启状态,0xff—关闭状态
(3)查询信息时,1 byte,低4位bit0~bit3分别对应温度、溶解氧、pH、电导率,高4位始终为0。
(4)数据信息时,多个字节,对应于各水质参数数值。本系统在软件上按浮点数的方式保存水质参数,一个浮点数对应于4 byte,因此,每个水质参数占4 byte。
(5)广播信息时,1 byte,暂未定义。
表2 多帧标志为1时的数据域格式
3.3通信举例
若监控主机(地址0x00,设备类型00)需要获取1号区域,3号鱼池中的温度、溶解氧和pH的数值,则完整的CAN数据帧如表3所示。
表3 监控主机发送查询信息数据帧示例
对于帧ID值有:信息类型为查询信息0x03,目标地址为1号区域,3号鱼池0x23(00100011),源地址为主机地址0x00,目标设备为水质监测仪01,源设备为主机00,多帧标志为0;因此帧ID值0x00646008。需要查询温度、溶解氧和pH的值,数据域为0x07(00000111)。
由于请求查询3个水质参数值即12 byte的数据,大于单个CAN帧8 byte的数据长度,所以在返回数据时需要分多个CAN帧来发送,此时,帧ID中的多帧标志位需置位,随后上传的数据域中,前2 byte带有当前帧的索引与本次数据流的总长度信息,监控主机在收到数据后,需根据索引重新组装为完整的数据流。
同上,若需要开启1号区域,3号鱼池的增氧机,仅需将目标设备类型域的值设置为10,数据域设置为0xff,其他不变即可。
系统软件由上位机主程序和下位机监控程序构成,下位机软件用C语言实现[14],对于浮筒式水质多参数检测仪的软件由监控程序、数据采集子程序、CAN通信子程序等构成。监控程序主要进行系统的初始化,调用子程序,实时采集养殖池塘的现场水质参数,处理和保存采集的数据,供上位机查询。程序流程图如图8所示。
图8 水质多参数检测仪程序流程图
CAN通信子程序分为接收和发送2个部分,数据的接收采用中断的方式,CAN控制器检测到总线上有数据时会自动接收总线上的数据,存入其接收缓冲区,并向CPU发送接收中断,CPU执行接收中断服务程序,从CAN控制器的接收缓存读取数据,并对接收到得数据进行判断处理,若解析为上位机请求命令,则设置相应的发送标志,数据接收流程图如图9所示。
图9 CAN接收中断程序流程图
上位机主程序用C#语言开发,开发工具选择Visual Studio[15]。设计成人机交互界面。软件使用SQL Server 2000作为其数据库[16],上位机软件主要实现了实时数据的显示,数据的存储,历史数据的查询,以及GSM短信通信和对增氧机控制器的控制等功能。数据实时显示界面如图10所示,实现了对水体温度、电导率、pH以及溶解氧参数的实时显示。
图10 1号养殖池实时数据显示界面
试验鱼池选在嘉兴市南湖区凤桥镇渔业养殖场,鱼池为10 m×15 m的水池,深度为1.2 m,鱼池中养殖对虾。
以1区域1号与2号养殖池中的水质参数为代表,进行数据检测和传输可靠性试验。为了比较自动控制下增氧机对水体中溶解氧含量的影响,在2号养殖池中安装了增氧机,此次试验数据取自9月19日13:00至9月21日11:30期间,图11(a)为1号养殖池pH变化曲线图,图11(b)为1号养殖池温度变化曲线图,图11(c)为未安装增氧机的1号养殖池中溶解氧变化曲线图,图11(d)为相同时间段内2号养殖池溶解氧变化曲线图。
现场实验表明系统具有较好的传输可靠性,可以有效地对现场鱼池中的水质进行在线检测。从图9(c)可以看出养殖池中的溶解氧含量白天高于夜晚,傍晚时分溶解氧达到最大值,清晨溶解氧降至最低,在有些时间段溶解氧的浓度低于2 mg/L,在此时段应该开启增氧机对养殖池进行增氧,2号养殖池在溶解氧浓度较低时段,开启了增氧机调节溶解氧含量,由图9(d)可以看出其对应时段的曲线较为平缓,基本保持了溶解氧的浓度不低于2 mg/L,维持了对虾正常生长所需溶解氧含量。
图11
该系统采用CAN总线作为水产养殖水质监控的通信方式并针对养殖水域分布特点制定了相应的CAN应用层协议,本系统具有高可靠性和实时性,系统灵活,扩展性强。能针对温度、pH值、溶解氧等水产养殖环境参数进行自动监测,可通过控制增氧机的开关来调节水中的含氧量,在溶解氧浓度较低的时刻开启增氧机增氧,节约了不必要的用电开支。获得的水质参数通过GSM短信的方式亦可随时发送到移动终端,整套系统在现场测试中能够保持长时间正常运行,效果良好。
参考文献:
[1]沈伟,杨翠容,李世忠.人工水产养殖单片机实时检测与控制系统研究[J].计算机测量与控制,2009,17(1):11-13.
[2]史兵,赵德安.工厂化水产养殖智能监控系统设计[J].农业机械学报,2011,42(9):191-196.
[3]刘泽祥.现场总线技术[M].2版.机械工业出版社,2011.
[4]王永宏,徐炜,郝立平.STM32系列ARM Cortex-M3微控制器原理与实践[M].北京:北京航空航天大学出版社,2008:22-25.
[5]韩志峰,宋执环.基于嵌入式网络的数据采集与分布式计算系统[J].传感技术学报,2006,19(3):885-889.
[6]李彩霞,丁启胜.溶解氧分析仪的研制[J].农机化研究,2000(3):78-81.
[7]朱育红.工业铂电阻精确测温方法[J].中国测试技术,2007,33(4):50-52.
[8]张瑜,张升伟.基于铂电阻传感器的高精度温度检测系统设计[J].传感技术学报,2010,23(3):311-314.
[9]张修太,胡雪慧.基于PT100的高精度温度采集系统设计与实验研究[J].传感技术学报,2010,23(6):812-815.
[10]柴晓东,袁晓.基于DSP的多路数据采集系统的设计[J].通信技术,2009,42(7):172-174.
[11]岳洋,兰国辉.基于GSM和CAN总线的数据采集监控系统[J].电子测量技术,2012,35(10):107-110.
[12]CTM8251A/CTM8251AT通用CAN隔离收发器产品数据手册V1.02[Z].广州致远电子有限公司,2012.
[13]基于CAN总线通信协议的设计与实现[J].微计算机信息,2007,23(4-2):22-24.
[14]李宁.基于MDK的STM32处理器开发应用[M].北京:北京航空航天大学出版社,2008:62-64.
[15]赵增敏.Visual C# 2008程序员开发入门与提高[M].北京:电子工业出版社,2009:2-5.
[16]刘秋香,张永胜.Visual C#下利用ADO.NET访问SQL Server技术[J].计算机系统应用,2004(11):66-69.
王誉树(1987-),男,汉族,辽宁沈阳人,杭州电子科技大学在读硕士研究生,主要研究方向为环境监测仪器技术,嵌入式系统,513151282@qq.com;
蔡强(1972-),男,汉族,安徽蚌埠人,浙江清华长三角研究院生态环境研究所研究员,主要研究方向为环境监测仪器技术研究,caiq@tsinghua.edu.cn。
On-LineMonitoringSystemforAquacultureWaterQualityBasedonCANBus*
WANGYushu1,2,CAIQiang1,2*,GUODonglian2,ZHUYin2,ZHANGXiaomei2
(1.Electronic Information Institution of Hangzhou Dianzi University,Hangzhou 310018,China;2.Yangtze Delta Region Institute of Tsinghua University,Jiaxing Zhejiang 314006,China)
Abstract:An on-line monitoring system for aquaculture water quality was designed.This system adopted CAN fieldbus technology to achieve on-site data transmission.GSM wireless communication technology was used for remote data acquisition and supervisory control.The water quality parameters including temperature,dissolved oxygen(DO),pH and electric conductivity(EC)were monitored in real time.The DO concentration was controlled automatically to avoid the fish death.The results demonstrated that this system is practical and stable,suggesting good potential for meeting the requirement of aquaculture water quality monitoring.
Key words:aquaculture water quality;CAN fieldbus;automatic control;on-line monitoring
doi:EEACC:720010.3969/j.issn.1005-9490.2014.04.027
中图分类号:TP277.2
文献标识码:A
文章编号:1005-9490(2014)04-0708-06
收稿日期:2013-03-14修改日期:2013-10-27
项目来源:嘉兴市科技计划项目(2013AY21031)