位置:51电子网 » 技术资料 » 音响技术

RS-485收发的零延时转换电路

发布时间:2008/5/28 0:00:00 访问次数:572

rs-485是一种基于差分信号传送的串行通信链路层协议。它解决了rs-232协议传输距离太近(15m)的缺陷,是工业上广泛采用的较长距离数据通信链路层协议。

由于它使用一对双绞线传送差分信号,属半双工通信,所以需要进行接收和发送状态的转换。一般的8脚ttl电平到rs-485电平转换芯片的引脚定义如图1所示。

其中,引脚意义如下:
ro——接收数据的 ttl电平输出;
——低电平有效的接收允许;
de——高电平有效的发送允许;
di——发送数据的ttl电平输入;
a——485差分信号的正向端;
b——485差分信号的反向端。

在rs-485电路设计中,通常将和de短接,用1根信号线来控制,这样可以做到收发的切换。

rs-485芯片通常处于接收状态。当要发送数据时,由程序控制/de 变为高电平,然后uart单元发送数据,程序要等待发送完毕后,再将rs-485芯片转换到接收状态。发送完毕的标志一般由uart的特定寄存器提供状态指示,程序需要去查询。

在单片机电路中,一般用1根i/o线来控制rs-485芯片的接收和发送状态的转换。这样需要由软件来控制 i/o引脚的电平,以达到控制rs-485收发转换的目的。
这样的控制方法造成rs-485通信存在以下问题:

  • 在想要发送数据和真正的能发送数据之间,存在一定的转换延时;
  • 如果发送到接收的转换时机不当,则会造成数据丢失;
  • 在接收和发送数据转换期间,容易引入干扰,使uart单元收到多余的杂乱数据。

    鉴于以上情况,笔者经过探索和参照其它相关电路,设计了一种可以实现rs-485接收和发送零延时转换的电路,如图2所示。

    当不发送数据时,ttl电平的tx信号为高电平,经v1反向为低电平,rs-485芯片处于接收状态。
    当发送数据时,① 若tx为低电平,经v1反向后,de/为高电平,发送允许。此时由于di 接地,所以rs-485芯片的输出端a、b产生表示低电平的差分信号,低电平的tx被送出。② 若tx为高电平,经v1反向后,de/为低电平,rs-485芯片的a、b端处于高阻态。此时靠电阻r1和r2的下拉和上拉作用,使总线上产生正的差分信号,从而将tx的高电平信号送出。

    由以上分析看出,在使用这个电路时,只要程序能保证不同时进行接收和发送的操作,即保证是半双工传送数据,程序不必用指令控制de/进行接收和发送的转换。转换由硬件本身完成。

    发送高电平的过程中,由于rs-485芯片处于接收状态,此时的发送信号必须是在总线上其它节点发送数据时,才能将高电平信号送出。所以,仍需要软件设计中做好总线仲裁。

    经过在没有严重干扰的实验室中的实验,在使用0.5mm2屏蔽平行线时,此电路的传送距离可达1200m。



  • rs-485是一种基于差分信号传送的串行通信链路层协议。它解决了rs-232协议传输距离太近(15m)的缺陷,是工业上广泛采用的较长距离数据通信链路层协议。

    由于它使用一对双绞线传送差分信号,属半双工通信,所以需要进行接收和发送状态的转换。一般的8脚ttl电平到rs-485电平转换芯片的引脚定义如图1所示。

    其中,引脚意义如下:
    ro——接收数据的 ttl电平输出;
    ——低电平有效的接收允许;
    de——高电平有效的发送允许;
    di——发送数据的ttl电平输入;
    a——485差分信号的正向端;
    b——485差分信号的反向端。

    在rs-485电路设计中,通常将和de短接,用1根信号线来控制,这样可以做到收发的切换。

    rs-485芯片通常处于接收状态。当要发送数据时,由程序控制/de 变为高电平,然后uart单元发送数据,程序要等待发送完毕后,再将rs-485芯片转换到接收状态。发送完毕的标志一般由uart的特定寄存器提供状态指示,程序需要去查询。

    在单片机电路中,一般用1根i/o线来控制rs-485芯片的接收和发送状态的转换。这样需要由软件来控制 i/o引脚的电平,以达到控制rs-485收发转换的目的。
    这样的控制方法造成rs-485通信存在以下问题:

  • 在想要发送数据和真正的能发送数据之间,存在一定的转换延时;
  • 如果发送到接收的转换时机不当,则会造成数据丢失;
  • 在接收和发送数据转换期间,容易引入干扰,使uart单元收到多余的杂乱数据。

    鉴于以上情况,笔者经过探索和参照其它相关电路,设计了一种可以实现rs-485接收和发送零延时转换的电路,如图2所示。

    当不发送数据时,ttl电平的tx信号为高电平,经v1反向为低电平,rs-485芯片处于接收状态。
    当发送数据时,① 若tx为低电平,经v1反向后,de/为高电平,发送允许。此时由于di 接地,所以rs-485芯片的输出端a、b产生表示低电平的差分信号,低电平的tx被送出。② 若tx为高电平,经v1反向后,de/为低电平,rs-485芯片的a、b端处于高阻态。此时靠电阻r1和r2的下拉和上拉作用,使总线上产生正的差分信号,从而将tx的高电平信号送出。

    由以上分析看出,在使用这个电路时,只要程序能保证不同时进行接收和发送的操作,即保证是半双工传送数据,程序不必用指令控制de/进行接收和发送的转换。转换由硬件本身完成。

    发送高电平的过程中,由于rs-485芯片处于接收状态,此时的发送信号必须是在总线上其它节点发送数据时,才能将高电平信号送出。所以,仍需要软件设计中做好总线仲裁。

    经过在没有严重干扰的实验室中的实验,在使用0.5mm2屏蔽平行线时,此电路的传送距离可达1200m。



  • 相关IC型号

    热门点击

     

    推荐技术资料

    基准电压的提供
        开始的时候,想使用LM385作为基准,HIN202EC... [详细]
    版权所有:51dzw.COM
    深圳服务热线:13692101218  13751165337
    粤ICP备09112631号-6(miitbeian.gov.cn)
    公网安备44030402000607
    深圳市碧威特网络技术有限公司
    付款方式


     复制成功!