基于SDI-12总线(通信协议)的数据采集技术
时间:2023-12-15 阅读:570
概述:
目前SDI-12产品越来越丰富,应用也越来越广泛,关键在于其智能化,数字化。众多仪器厂商,系统集成商,开始关注该项技术,几乎所有的数据采集器生产商都在自己的产品中增加了SDI-12总线接口,在大趋势的推动下,传感器厂家也开始加入这个协议。通过SDI-12组建的数据采集系统结构简洁,由于使用了总线技术,所有的传感器连接在一条SDI-12总线上,所以放弃了以往的复杂接线,让用户一目了然,即使供应商不提供服务,用户自己也能很好的来改变观测方案甚至是对系统升级。
SDI-12的技术背景
SDI-12 Serial Digital Interface 即串行数字接口,是一种基于微处理器的智能化传感器系统。SDI-12通讯标准是由美国水文组织提出的的一种串行数据通讯接口协议,在SDI-12协会支持下,近年来欧美国家在环境监测中加以推广使用。此技术广泛应用在工农业多参数测控、江河湖海的水文和气象等地球环境监测、养殖和食品生产中,可以远距离传送数据。
目前此协议的版本是2005年7月18号公布的V1.3版,这个标准版本是V1.2版的升级版。SDI-12小组的技术支持遍及。国外有很多从事智能传感器开发的公司对SDI-12通信技术的应用都非常成熟,生产了一大批高性能智能传感器和数据采集系统产品。国内近年来从事SDI-12传感器开发的公司逐步兴起,有些公司也开发出了很多不错的SDI-12智能传感器。我国的>SDI-12技术也已应用到如气候变化追踪、水采集及水测试、生态调查、土壤监测、农业及气候分析等领域。
一、关于接口、总线与通信协议
我们常见的RS232、RS485、RS422、CAN等这些都是接口标准,它并没有规定通信的内容,在定义了接口的机械与电气标准后,各种组织或厂家制定出标准的通信内容约定,即形成通信协议。在这些协议的约定下,各生产厂家的相同或不同类型的产品可以兼容在一起组成网络。这些设备都是并联在接口上的,形成总线连接方式,同时它也限定接入总线的数量。SDI-12既约定了接口的电气规范又约定了通信的内容。但在其软件协议功能*性的推动下,一些厂家也在RS485接口的产品上使用了该协议的通信格式。
SDI-12总线技术属于单线总线技术,即在一根数据线上进行双向半双工数据交换,但这并不代表一根电线就可以进行数据传输了,它是和电源线的负极共用的。在短距离的应用中它并不强调线路使用双绞线,对计算机通信有过研究的人都知道,数字信号的传输距离和线路的阻抗匹配有很大关系,用平行线路做为数据传输的物理层,会在很大程度上缩短通信距离,这是由于构成通信信号电流回路的两根线在处于并行时,这条线路的电容增加,对传输的数字脉冲的上升沿和下降沿---产生畸变,造成接收方无法辨认是“1”或是“0”。另一个影响通信距离的因素是通信速率bps/S,即每秒传输的数据位数。通信速率越高,对线路的要求越高。因此在进行远距离通信中,选用双绞线是有必要的。
但这对于>SDI-12总线来说,情况好多了,SDI-12总线的通信速率为1200bps/S。
二、SDI-12接口标准规范内容
1.接口的电气性能
接口规定了总线使用三芯电缆,定义如下:
一根为串行数据线,双向半双工通信
一根为12V供电线,向传感器供电
一根为地线,即作为电源的回路又作为数据信号线的回路。
2.串行数据的逻辑和电压值
二进制值 电压范围
1 -0.5V~ 1.0V
0 3.5V~ 5.5V
3.SDI-12传感网络结构
三、SDI-12的通信协议
1.通信速率和字帧结构
协议规定了通信的波特率为1200
字帧结构
起始位: 1
数据位: 7
校 验: 偶校验
停止位: 1
2.可实现特性
所有在SDI-12总线上发送的字符必须是可印刷的ASCII字符。
所有的指令以地址码开始,以“!”为结束符。
所有的传感器响应以地址码开始,以为结束符。
3.SDI-12的地址范围
规范约定地址由0-9 、a-z、A-Z ,出厂初始化地址为0,但大部分厂家没有对这个范围进行限制,经过实验验证,所有的可显示的键盘码都可以做为地址,但建议用户在地址资源充足的情况下,不要将地址设置超出该范围,以免带来不必要的麻烦。
四、SDI-12传感器
1.传感器的特点:
传感器自身具有微处理器,可以实现适合自身特点的算法
可以通过指令对其进行校准
内部采用EEPROM,用来放置校准信息和其他配置信息。
单总线的串行接口简化了数据采集器的设计
感器在未来的发展上可以独立完成。
2.传感器的组成结构
3.传感器的休眠与唤醒机制
这个协议里最特殊的点是它的休眠与唤醒机制12mS和8.33mS标识。由于>SDI-12传感器低功耗模式,当不进行工作时即进入休眠,因此每个命令前需要加上一个12mS的标识信号,用于唤醒总线上所有的传感器,传感器从低功耗模式中唤醒后,在收到下一个8.33mS标识信号后,开始寻找和自己匹配的地址,地址匹配开始测量。如果地址无效或空闲超过100mS将返回到低功耗待机状态。
注意:这项功能是由数据采集器或>SDI-12协议转换器自动执行的,用户只要理解就可以了。
五、SDI-12的常用指令
初看这个协议的时候有很多不理解的地方,特别是数据获取指令,D0、D1……,笔者在对一个传感器进行实际操作练习后,便*明白了这个协议。采用一个SDI-12接口适配器,在PC上使用一个串口调试软件,将协议的指令都运行一遍后,才发现它并不神秘了。
1.对一个SDI-12传感器测量操作,一个测量任务共分为四步:
步:数据采集器发送一个测量命令,传感器即做出响应。一个测量命令格式如下:aM! 小写的“a”是传感器的地址码,“M”是通知传感器进行测量,“!”是命令结束符,由这三个元素构成一个完整的命令。
第二步:传感器的响应
对于传感器来说,aM!是一个常规的测量命令,传感器可以完成一个基本的测量任务。并且会做出一个响应:atttn,这是传感器接到aM!后的一个反应,响应中:
a 为本传感器的地址
ttt 为本次测量需要的时间,以秒为单位
n 为数据数量
为回车符
为换行符
第三步:数据采集器发送数据获取命令通常,数据采集器发送一个aD0!命令来向传感器获取数据。
第四步:传感器向数据采集返回测量结果
a 其中values 可以是一个值也可以是多个值,多个值用“+”或“-”来区分。
2.SDI-12常用命令与响应的解释(其他指令请参考SDI-12原文或我们提供的译文)
命令 响应
?! 查询地址指令 a
a! 应答激活指令 a
aI! 识别指令 allcccc…………传感器型号、版本、序列号等
aAb! 修改地址指令 b 表示为b
aM! 测量指令 atttn
a 为地址
ttt 为一次测量需要的时间
n 本次测量可产生的数据个数
aD0! 获取数据指令 a
数据采集器的命令始终以“!”为结尾,而传感器的响应始终以结尾
3.SDI-12扩展指令,
它是各个传感器生产厂家根据传感器本身的*性能,自定义一些特殊功能的指令。但这些命令也是符合SDI-12的约束的。
扩展指令的格式:aXNNN!需要加一个“X”来区别,“NNN”由厂家自定义。
六、通信距离实验
协议规定了SDI-12的通信距离为200英尺,但实际远不止这些,我们选用了一些不同厂家的传感器进行实验,发现它们有很好的兼容性,对网络结构没有特殊的要求,传输距离都超过了1KM。取得的数据仅供参考,因各厂家生产的传感器接口性能不尽相同,组网的结构、传感器接入数量以及电缆的纽绞形式都是影响传输距离的因素。
平行线实验结果3×1mm2无屏蔽
双绞线实验结果2×0.2mm2无屏蔽
七、支持SDI-12总线的产品类型
基于SDI-12协议的产品涵盖了环境监测领域大部分产品主要有以下三大类
气象:温度,湿度,雨量、风速、风向,如Vaisala的WXT520等。
水文:水位、水质、流量、温度等 YSI 6600等。
土壤:水分、水势、温度等 GeoPrecision 的pF meter 、GP220D、温度链等。
具有SDI-12接口的数据采集器GeoPrecision 、Campbell、 DataTaker等。
八、如何组建SDI-12的数据采集系统
1.数据采集器的选用
如果系统简单,选用的传感器全部为SDI-12接口,可选用GeoPrecision的I-Logger,这个产品本身具有5个模拟量输入通道,一个SDI-12接口,该采集器不需要编程,只用进行简单的通道设置就可以了,支持48个通道,且集成了一个GPRS模块,可组成网络。
在复杂的测量并含有控制逻辑的系统中建议采用DataTake DT80,该采集器界面友好,接口丰富,4个SDI-12接口,具有数字及开关量输出接口,在测控系统中使用很方便。
不同的数据采集器对SDI-12的使用上有区别,但基本指令是不可改变的
2.关于供电问题
SDI-12传感器本身具备低功耗休眠模式,但由于野外使用时需进一步节约功耗,所以建议采用数据采集器控制供电方式,即到达采集时刻,提前3-5秒供电,采集完成后即关闭总线电源。大多数数据采集器均具备这种功能,即WarmUP功能。
九、SDI-12与GPRS相结合组成环境观测网络
基于SDI-12的土壤水分温度传感器与GPRS Logger组成土壤墒情监测网络。
基于SDI-12的土壤水势温度传感器与GPRS Logge组成土壤基质势监测网络。
基于SDI-12的多参数水质传感器与GPRS Logge组成水质监测网络。
十、关于SDI-12适配接口
使用该适配器可以方便的通过PC机对SDI-12传感器进行操作,从而更方便直观的了解SDI-12协议,还可对传感器的一些特殊功能进行设置等。