一种线型组网的三线制数据测量方法
扫描二维码
随时随地手机看文章
引言
现场测量中,常遇到测点呈线状分布的情形,例如,输电线路,输油管道,河流沿线,城市管网等,这类监测数据有如下特点:
(1)间隔距离各不相同。例如:石油输送管道的流量压力,监测点可1 km一个;城市路灯损坏监测25 m一个。
(2)对传输速率要求不高。例如:路灯是否损坏的监测,煤矿坑道倾斜度监测,可以几分钟一次,河流沿线水质,温度信息甚至可以每小时一次。
(3)测点物理顺序可以作为监测点的逻辑次序,只要顺序检测各点的数据即可,不要求某个编号的数据单独传送。
(4)测点数量众多,例如10 km长的路灯监测点就有400个。
对于这些现场常遇到的线状分布测点,如果采用总线式的组网结构,可以很好的简化布线形式,所有测点连接到总线上即可。实际上,已经有很多这类总线可供选择,例如,CAN总线,485总线,IEEE1394总线,Profi-bus总线,HART总线,甚至有自成总线的器件,如数字温度传感器DS18B20.但是这些方案都不是针对上述数据特点量身定做的,有的追求高可靠性,有的追求网络速度,还存在成本高、协议复杂、需要逐个测点编址等问题[3].所以,本文提出了一种基于单片机构成的针对线状测点的三线制组网方案,它具有自带电源、协议简单、灵活多变等特点,可以极大简化电路设计和系统设计。
1系统构成及原理
1.1硬件构成
1.1.1系统总体构成
三线制测量系统的构成图如图1所示,由一个主机和若干单元构成,三线分别定义为电源、信号、地线。主机能控制单元的供电,由开关J1完成,它可以是继电器的硬触点,也可以是VDMOS管软触点。当主机需要采集数据时,首先闭合J1,使所有单元上电,然后通过信号线R/T来控制各个单元依次上传数据。其中1,2,…,N代表N个测量单元。
如果需要传送模拟信号,则要另外增加模拟信号总线,单元结构如图2所示。
1.1.2单元结构
单元的内部组成,根据测量参数不同各有所异,这里给出一个倾角测量的例子,使用倾角传感器,原理图如图2所示。上电测量是自动进行的,完成后等待输入端R接受启动脉冲,然后进入本单元数据发送,这期间本单元与主机是直通的,当本单元数据传送完成后,则等待输入端的结束脉冲,然后本单元向下单元发送启动脉冲,随后本单元进入透传(或称传话筒)模式,相当于直通,主机可以跟下个单元进行通信,依次类推。
在单元示结构意图中,还增加了2条模拟信号线,因为倾角传感器既有数字量输出(通过SPI接口)也有模拟量输出(通过Vf端)。如果想直接采集到单元的模拟量,则增加模拟开关和模拟信号总线,当单元处于工作状态时,闭合模拟开关,把模拟量送到总线上。
1.2工作原理
主机启动一次数据采集时,首先闭合开关J1,总线VCC得电,所有单元同时上电,单元内的单片机开始工作。单元的工作分为待机、工作、透传3种模式。上电后,所有单元进入待机模式,主机先向距离最近的1#单元发出启动脉冲,1#单元由“待机”转为“工作”模式,它会启动传感器,点亮指示灯L1,表示本单元是活动的,这时,主机可以与1#单元进行直接的通信,命令1#单元的进行测量并读取数据,完毕后,主机发送结束脉冲,命令1#单元结束活动态。1#单元在向2#单元发送启动脉冲后进入透传模式。于是,收到1#发出的启动脉冲,2#单元成为活动单元,点亮指示灯L1,进入工作模式。由于1#单元的透传作用,主机可以直接跟2#单元通信,直到2#单元收到结束指令后,它启动下个单元,然后自己变成透传,这样依次类推,各个单元逐个变成活动单元,主机总是透过已经变成透传模式的单元,直接与活动单元进行通信,获取数据,直到全部单元都完成数据采集。
因此,在整个三线制网络中,只有一个是活动单元,活动单元前面,是完成了数据采集变成透传模式的单元;在活动单元后面,是等待启动的待机单元。主机能够直接与活动单元联系,使用灵活约定的协议和速率,是本文提出三线制线状组网的一大优势。
主机与活动单元通信时,可以直接使用单片机的串口通信模式,在数据量小的时候,约定使用较低的波特率可以获得较远的传送距离。用来启动和停止单元工作的脉冲命令,可以有2种形式:
(1)直接使用串行通信来改变单元的工作模式,只要约定主机下发给单元的串行数据命令字即可,例如约定0X55为启动命令,0XAA为停止命令;(2)使用脉冲宽度控制,只要命令脉冲与通信波特率通信脉冲有明显区别不产生混淆就可以,例如波特率使用1 200,启动和停止脉冲使用宽度为30 ms的低电平。
1.3特点分析
总结上述阐述,本文提出的三线制线状组网具有如下特点:
(1)自带电源:三线中有一根电源线,所有单元可以直接授电;(2)功耗低:工作过程中,只有一个单元是活动的,处于待机和透传模式的单元,可以关闭所辖传感器的供电,只让单片机带电,如果使用MSP433超低功耗单片机,100个单元的功耗也不会超过1 mA.
(3)协议灵活:主机是通过透传单元直接与活动单元通信,允许系统搭建者使用自己约定的通信协议;(4)传送距离远:主机是通过接力与每个单元通信的,只要每个单元之间能有效传送,多个单元构成的整个系统就能正常工作。
(5)扩展方便:当需要模式量传送时,只要再增加一条总线,每个单元增加模拟开关,活动单元把模拟开关闭合,该单元的模拟量就可以上传到总线上,送给主机。
(6)无需单元编号:主机是顺序与各个单元建立联系的,所有单元完全一样,没有地址编号环节,适合批量生产制作。
2程序编制
下面是主机和单元的程序编制流程与说明。
主机程序流程如下:
①上电→②等待采集时间到→③启动供电开关J1→④发出启动命令→⑤等待单元发回应答→⑥与单元通信完成采集→⑦发出结束命令→⑧判断单元是否全部完成采集→⑨关闭J1供电→回到②等待下次采集。
其中,在⑤如果等不到单元发回的确认,要回到断开J1回到③重新开始,如果多次重复均不成功,要做出错处理;在第⑧步,如果单元采集没有完成,则回到第⑤等待下个单元的回复确认。
对于每天只有几次采集的低频度情形,可使用低功耗定时振荡器,用硬件电路控制主机的CPU供电,达到采集时刻主机才上电工作1次,大大降低功耗,适合在野外现场做数据采集。
单元程序流程如下:
①上电→②等待启动命令→③启动传感器采集数据/点亮L1/与主机通信/完成数据采集→④等待结束命令→⑤向下个单元发送启动命令→⑥进入透传模式。
其中透传模式的编程框图见图3,思路如下:
(1)透传的含义是既可以从接收主机方向数据传给后面的单元,也可以从后面单元接收数据传给主机(2)认为常态是高电平,不停检测左右两边的电平,为高时表示没有数据传递。
(3)无论在哪个方向检测到低电平,都立即把低电平传输到另一个方向,直到这个低电平消失,便取消另一个方向的低电平。
3传送距离
传送距离受透传单元引入的脉冲宽度失真和单元电压跌落两个因素影响,下面分别讨论。
3.1透传单元对脉冲的宽度的失真
单元之间传输延迟如图4所示,命令由第N - 1单元传向第N单元,在t1时刻发出,t2时刻结束,宽度为T1.线路电容等带来脉冲的下降和上升时间,第N单元认定的翻转时刻,由该单元的输入端阈值决定,它认定的宽度为T2.同样道理,这个宽度传送到N + 1单元时被认定为T3.T1,T2 ,T3会有差异,造成脉宽逐级失真,超过一定限度就无法正确通信(串口专用11.059M晶体用12M代替就无法工作,这时误差仅为8%)。解决逐级失真的办法有两个:
(1)加快脉冲上升下降时间,可在单元的信号线加上拉电阻。上拉电阻的最小值,要保证它灌入的电流小于单片机能吸入电流的最大值;上拉电阻的最大值,要考虑它与信号线电容的时间常数小于通信脉宽的10%.例如,100 m的单元距离,按照普通绞线100 pF/m的分布电容,C = 100 pF×100=0.01μF,如果使用1 200波特率,信号脉宽800μs,则时间常数应小于80μs,用τ= RC计算,上拉电阻R =τC = 80μs /0.01μF =8 kΩ。按照经验这个数值是可以用于单片机上拉的。
(2)智能判别法,透传单元不直接转发电平值,而是把整个字节或脉冲接收完毕后,判明是什么数据或脉冲,用约定的波特率或脉宽向下个单元转发,这样可以保证没有累计的脉冲失真。
实际上,由于单元的一致性,累计误差并不大,在波特率1 200时,使用1 kΩ上拉电阻可以轻松实现10 m单元间距上百个单元级联。
3.2各个单元用电造成的供电降低和地线压降
供电电压的降低和地线压降的影响分为3个方面讨论。
3.2.1远端单元供电电压的降低
离开主机越远,单元供电越低。设第1个单元与主机距离L1 m,每个单元距离L2 m,总单元个数为M,待机单元电流I1,工作单元电流I2,主机供电电压为VCC,总线的每米电阻为r,则第N个单元的电压VN = VCC - L1*r*[(N - 1)*I1 + I2] - L2*r*[(N - 1)*I2 + (N - 2)(N - 1) 2].
当L1 = 100 m,L2 = 10 m,M = 100个单元,I1 =10μA,I2 = 10 mA,VCC = 5 V,每米电阻r = 0.01Ω(截面1.5 mm2导线),则最尾端单元N =100得到的电压为4.8 V,没有超出5%波动,可以认定这个电压在正常范围。
以上是100个单元1 000 m距离的情形,具有一定的代表意义。
3.2.2单元之间产生的逻辑电平差
一般认为,在TTL系统中,低电平高于0.5 V,高电平低于3.5 V会出现不定态。在有上拉时,主要考虑低电平问题,后级的低电平要叠加地线压降作为前级的低电平。显然,最大叠加电压出现在第1个单元与主机之间,在上述参数下,这个叠加电压约100 m的线路加上活动电流再加上100个单元的待机电流,约为10μA×100+10 mA=11 mA,在100 m线路产生的压降为11 mA×0.01 m=11 mV,数值很低,可忽略不计。
3.2.3附加模拟信号总线时产生的误差
到达主机的模拟电压会附加上各单元间地线的电压差。有2个办法可以解决这个问题,一是修正法,根据采样的单元个数,减去所经过的单元的地线电压差。
例如,采样第10个单元,叠加的电压为100 m×0.01Ω×11 mA+10 m×10×0.01Ω×11 mA=22 mV,主机采样电压时减去这个数值可近似认为是准确电压。二是采用双线差分信号传输,经过2个模拟开关选通,不但传送N单元的模拟信号,还传送N单元的地线到主机,经过主机的差分放大器,取出N单元的实际模拟信号,如图2所示。
3.3供电方式
上述示意图中,主机供电VCC是直接连接到各个单元的,在远距离时会产生电压降。可以使用两种方案避免:一是每个单元增加一个可关断DC/DC稳压模块,被选中的单元接通模块,只给本单元供电,这样做的优点是待机单元不启动DC/DC模块,不增加任何功耗,缺点是成本稍高;二是采用较高电压供电,例如12 V,每个单元设立线性降压至5 V后给单片机和传感器使用,这样做的优点是简单、低成本,缺点是各个单元的降压电路在持续工作,会增加静态电流。
4结语
本文提出的组网方法,非常适合于线状分布的测点,方便实用,简明易用,在低速场合可以获得很远的传送距离,还能扩展传送模拟信号,经过多个项目的运用,证明其稳定、简单、价廉,具有一定的实用价值。