MAX488/MAX490在点对点通信中工作很正常,为何在点对多点通信时无法正常通信
由于 MAX488/MAX490没有发送使能控制, 因而其输出无法处于高阻态,当多个输出被连接在一起时(即点对多点通信时),差分输出信号线被多个发送器驱动(通常为 TXD=1 对应的电平状态) ;当某个节点开始通信,且发送TXD=0 对应的差分电平时, A,B 两线上将形成很大的短路电流,若长时间工作, 则接口芯片将损坏;而这种情况不会在点对点通信中发生,且不会出现在点对多点通信中的处于点的一方,这也是象 MAX488/MAX490以及其它一些没有发送使能控制的接口的适用范围
以上是造成这个问题的原因,当然,类似情况也会出现在那些带使能控制而软件没有编程控制使能的接口芯片中
RS-485/RS-422接口为何在停止通信时接收器仍有数据输出
由于 RS-485/RS-422在发送数据完成后,要求所有的发送使能控制信号关闭且保持接收使能有效,此时,总线驱动器进入高阻状态且接收器能够监测总线上是否有新的通信数据
但是由于此时总线处于无源驱动状态(若总线有终端匹配电阻时,A 和 B 线的差分电平为0,接收器的输出不确定,且对AB 线上的差分信号的变化很敏感;若无终端匹配,则总线处于高阻态,接收器的输出不确定),容易受到外界的噪声干扰
当噪声电压超过输入信号门限时(典型值±200mV ),接收器将输出数据,导致对应的UART 接收无效的数据,使紧接着的正常通讯出错;另外一种情况可能发生在打开 /关闭发送使能控制的瞬间,使接收器输出信号, 也会导致 UART错误地接收
解决方法:1)在通讯总线上采用同相输入端上拉(A 线)、反相输入端下拉( B 线)的方法对总线进行钳位,保证接收器输出为固定的“1”电平; 2)采用内置防故障模式的MAX308x 系列的接口产品替换该接口电路;3)通过软件方