而处于中
间部分的节点则不能接入终端电阻,否则将导致通讯出错。
4
.为什么在
RS-485/RS-422
构成的通信网络中
,
传输数据包时经常出现多出一个数据或少
一个数据的现象
?
一般在点
-
多点通信系统中会经常出现这个问题
,
归纳出现的原因大致如下
:
1)
在半双工通信中
,
一般可以通过禁止
RS-485
收发器接收使能或
UART
内部的接收使能
,
以保证不出现自发自收,进而减少
CPU
的开销。当数据发送完成后,
RS-485
接收器和内
部
UART
将回到允许接收状态而发送器将关闭,在此状态切换过程中,可能出现
RS-485
接收器输出低电平跳变,而此时
UART
已经允许接收,从而导致多接收一个字节。
正确处理方法应该为:从接收状态向发送状态转换时,先禁止内部
UART
的接收使能,再
打开接口的发送器使能,然后,允许内部
UART
的发送使能,开始发送数据;从发送状态
向接收状态转换时,先禁止内部
UART
的发送使能,再关闭接口的发送使能(如果接口的
接收使能被禁止,则紧跟着打开接口的接收使能)
,在延时
2
至
4
个
NOP
指令后,才打开
内部
UART
的接收使能。
2
)对于大多数
UART
来说,内部发送缓冲器
"
空
"
会产生中断或置对应的标志位,但此时数