基于传感器测量节点和数据采集器实现海气边界层监测系统的设计

测量仪表

1495人已加入

描述

引言

海气边界层监测系统的主要功能是连续、自动获取所在区域大气边界层近海面30米左右的温湿廓线数据,以及风速、风向、气压和海表水温等水文气象要素数据,并进行实时数据存储和显示。

海气边界层监测系统结构如图1所示。系统由多层风速风向传感器、多层温湿传感器、气压传感器、水温传感器、水位传感器等测量结点组成传感器测量节点。数据采集器是系统的核心部分,负责接收、处理、存储各传感器测量节点的测量数据,并将测量结果传输至上位计算机,对计算机发出的各种命令予以响应。

测量

由图1可以看出,系统各传感器节点和数据采集器的通讯方式均是RS-485。RS-485采用平衡差分信号传输,比起RS-232的非平衡传送方式在电气指标、抑制共模干扰能力、传输距离上都有了大幅度提高。RS-485串行接口的电气标准属于七层OSI(开放系统互连)模型物理层的协议标准。依赖其性能优异、结构简单、容易组网的优点,RS-485总线标准得到了广泛的应用。

海气边界层监测系统采用RS-485总线的优点是所有的梯度观测数据通过一根RS-485 通信电缆即可进行采集,而不需要将所有的传感器信号与数据采集器连接,具有硬件设计简单、控制方便、成本低廉的优点,而且便于系统维护和安装。

RS-485总线节点硬件设计

RS-485总线节点的硬件图如图2所示。

测量

光电隔离

由于系统安装在通信设备密集的地区,现场情况复杂,各个节点之间存在很高的共模电压。RS-485标准采用的是差分传输方式,具有一定的抗共模干扰的能力,当共模电压为-7V~+12V之间时可以保证通讯的正确性,但是当共模电压超过RS-485接收器的极限范围时,接收器将无法正常工作,严重时甚至会损坏芯片。

通过DC/DC转换模块将系统电源和RS-485收发器的电源隔离;通过光耦将差分信号线隔离,可彻底消除共模电压的影响。实际应用中有以下两种实现途径:一是使用光耦、带隔离的DC/DC电源模块和RS-485芯片;另一种方法是使用全集成芯片,如PS1480、MAX1480等。本设计采用第一种方案,具有成本低廉,使用广泛、芯片易于选购等优点。

该电路使用两片6N136实现系统与RS-485接口芯片之间的数据隔离,使得他们之间完全没有电气联接,提高了电路的稳定性和可靠性。6N136是特性优良的光电耦合器件,具有体积小、寿命长、抗干扰性强、隔离电压高(可达3500V)、高速度、与TTL逻辑电平兼容等优点。6N136最显著的特点是高速度,所以广泛应用在高速数字通信接口中。它的数据波特率可达500kbps以上,而一般的光电耦合器件如4N25等只有几k的波特率。如果在实际应用中要求的数据传送速率不是很高也可以使用4N25、TLP521等普通光耦,以降低成本。

隔离电源

节点的隔离电源使用了一片IB0505LS来实现。它是金升阳公司生产的小型隔离稳压型高效DC/DC转换器,它的输入电压为5V,输出为稳定的5V隔离电压,最大输出电流为200mA,转换效率可达80%以上。特别适用于小电流隔离和DC电压变换、及线路空间较小的电源系统,用它可以实现RS-485节点与总线的电源隔离。

RS-485转换

根据RS-485标准规定,接收器的接收灵敏度为±200mV,即接收端的差分电压≥200 mV时,接收器输出为高电平;≤-200mV时,接收器输出为低电平;而A、B端电位差的绝对值小于200mV时,输出为不确定状态。一般在总线空闲、传输线开路或短路故障时,可能会出现这种状态,此时CPU的串行口接收端可能出现高电平也可能出现低电平,会导致串口找不到起始位,导致通信异常。

本设计使用MAXIM公司的用于RS-485和RS-422通信的低功耗收发器件MAX3082,它具有在总线开路、短路和空闲情况下使接收器的输出为高电平的功能,这样CPU的RXD电平在RS-485总线空闲时是唯一的高电平,从而达到故障保护的目的。此外,MAX3082最多允许挂接256个节点,对于节点数目要求较多的场合比较适用。

MAX3082的收发控制端是使用CPU的一个I/O来控制的。在系统复位时,I/O默认都输出高电平。如果把I/O口直接与MAX3082的收发控制端相连,会在CPU复位期间为高,从而使本节点处于发送状态。如果此时总线上有其它节点正在发送数据,则此次数据传输将被阻断,严重者可能导致整个总线的瘫痪。为了保证上电时RS-485芯片始终处于接收状态,并考虑到系统工作的稳定性和可靠性,每个RS-485节点的收发控制端的设计都应当使用反逻辑。实际实现方法是CPU的I/O引脚使用一片单反向器芯片74AHC1G14进行反向后与MAX3082的收发控制端进行相连。当CPU的I/O引脚输出1时,MAX3082进入接收状态,当CPU的I/O引脚输出0时,MAX3082进入发送状态。通过增加反相器进行控制,而不采用控制芯片引脚直接进行控制,可以防止节点上电时对总线的干扰,从而有效地避免因节点异常情况而对整个总线系统造成影响。

与总线接口部分

RS-485总线为并接式三线制(包含一个地)接口,总线上只要有一个节点发生故障就有可能将总线“拉死”。因此,数据端口A、B与总线之间应加以隔离。在这里我们的做法是,A、B与总线之间各串接一只100mA的PTC自恢复保险,同时与地之间各跨接5V的TVS二极管,以消除线路浪涌干扰。

需要注意的是,许多人错误地认为RS-485是两线制。实际上RS-485总线的构成是一个信号差分对和一个地返回线,系统也许没有这个地返回线也可以工作,但是会处于极不可靠的状态之中。这是因为 RS-485总线在差模电压为-7V至+12V之间才可保证通讯的正确性。如果超过此范围,数据将丢失,端口也可能损坏。信号地线的功能是将每个节点的信号地连接到一个共同的地上,这个地的作用是用来保持共模电压。如果系统没有设计和连接地线,将影响系统总线的可靠性并带来噪声。

海气边界层监测系统中,RS-485总线通讯的波特率是9600bit/s,最长距离是100m。总线并没有设计终端电阻。这是因为添加终端电阻的目的是减少信号的反射、吸收噪声,但是这样却显著增加了系统的功耗,并使系统设计复杂化。如果系统传输速率较高(通讯速率大于115.2K)并且是长距离的传输,才需要考虑终端电阻。

系统软件设计

RS-485总线是异步半双工的通信总线,即在某一个时刻,总线只可能呈现一种状态(收或发)。所以这种方式一般适用于主机对分机的查询方式通信,软件编程对系统的可靠性有很大影响。尤其要注意对485芯片收发控制端DE和RE的软件设计。为了可靠的工作,在RS-485总线状态切换时需要做适当延时,再进行数据的收发。具体的做法是在数据发送状态下,先将控制端置“1”,在9600bit/s的波特率下,延时1ms左右的时间,再发送有效的数据,一包数据发送结束后再延时1ms后,将控制端置“0”。

海气边界层监测系统总线上的数据采集器处于主机地位,每隔3s轮询各节点一次,轮询到哪个节点则哪个节点上传数据,总线的使用权完全由主机分配,各子节点不能擅自占领总路线,也不允许主动发起通信。具体实现方法是,每隔3s,数据采集器发出索要第一个节点数据命令,并等待节点回传测量数据,超过规定的等待时间仍然没有收到节点返回的数据,认为该路结点通讯失败,延迟100ms后接着索要下路节点数据。值得一提的是,系统等待节点回传测量数据并不是采取软件死等的方法,而时采用分时多任务的方法来实现。具体实现方法是:在10ms定时器中断服务程序中设一个节点通信时间计数变量,进行减计数。数据采集器发出索要数据命令后,对这个变量重新赋超时限定值,主程序判断这个值为0时还未收到节点响应数据,才认为该节点通讯失败。采用这种调度机制,可以大幅提高数据采集器CPU的运行效率。

结语

RS-485总线具有线路设计简单、价格低廉、控制方便的特点,通过上述的软硬件设计方法,在海气边界层监测系统中得到了良好的应用。目前系统24小时连续开机,系统的通信始终处于正常状态,整个系统的性能满足了项目的需求。

责任编辑:gt

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分