单片机远距离多机串行通信应用
单片机的应用越来越普遍。有些单片机设置了串行通信口,使其应用范围更加扩大。如51系列单片机的串行口是一个全双工通信接口,能同时进行发送和接收,且可通过对串行控制寄存器SCON的设置,选择多种串行通信模式,包括多机通信。实际应用系统中往往要涉及远距离多机串行通信。 按一般介绍,多机通信的主机与从机连接如图所示,通过软件编程实现由主机查询、从机响应的通信方式,但这种通信方式只限于主机与从机近距离(几米)范围内。这是因为串行口TxD发出的TTL电平信号无论在驱动能力还是在抗干扰能力方面都不足以实现远距离串行数据传送,所以要实现单片机串行口的远距离通信(几十米到几千米),必须另辟蹊径。
远距离串行通信电路1.单片机远距离串行通信电路 为实现单片机的远距离串行通信,在串行口TxD和RxD信号前端分别加入一差分驱动器MC3487和一差分接收器MC3486,变电平收发为差分收发。加入差分驱动和差分接收电路后的多机串行通信连接如图所示。空方框代表加入的差分驱动、接收电路。由图可知,加入差分驱动、接收器后,主机与从机的连线只剩下D+和D_两根数据线,主机与从机无需共地连接,彻底消除了远距离因地电位不等造成的影响,且简化了拉线。但值得注意的是,两根传输线要用双绞线,以更好地消除电磁干扰。接入驱动、接收电路后不影响原通信程序设计。
电路与单片机有TxD,RxD,GND三个连接信号,输出有D+和D_两个数据信号。电路中用到一个74LS04非门、一个MC3487差分驱动器和一个MC3486差分接收器;电容C1和C2分别为传输线D+和D_的滤波电容,用于滤除系统高频干扰;Ri为D+信号的电平提升电阻。MC3487和MC3486是配对的优良差分驱动、接收芯片,电气性能符合串行通信的RS - 422 A标准。市场上可以购买到,且价格不高(国产型号分别为DS3487和DS3486)。 MC3487的引脚如图1- 12所示,真值表如表1-6所列。它是一个有三态输出的四RS -422 A传输线驱动器,脚1是第一个驱动器的输入端;脚2、脚3是第一个驱动器的同相、反相输出,输出受脚4控制。当脚4为低电平时,输出脚2、脚3呈高阻态。MC3486的引脚如它是一个有三态输出的四差分线路接收器,脚l、脚2为第一个差分接收器的反相、同相输入端;脚3为输出端,输出受脚4电平控制。当脚4接高电平时,允许输出。
现在来分析一下图1 - 11差分驱动接收电路的工作过程。以串行口发送数据为例,当TxD送出低电平时,经74LS04反相后变高电平加到MC3487的控制端脚4。输入端脚1固定接地,为低电平。由表1-6可知,此时输出脚2为低电平,脚3为高电平,脚2和脚3信号分别经传输线D+和D_送到远端差分驱动器、接收器。此时远端接收MC3486的脚2(对应D+)收到为低电平,脚1(对应D_)收到为高电平,即运放器同相输入端为低电平,反相输入端为高电平。所以输出脚3为低电平,也即远端单片机RxD收到的信号与发端单片机TxD发出的低电平一致。当TxD发送高电平时,经反相加在控制脚4为低电平。此时输出端脚2和脚3都呈高阻态,相当于悬空。这时远端接收因D+接有电平上拉电阻,故D+为高电平,而D_为低电平,也即远端接收MC3486的输入端脚2为高电平,脚1为低电平,输出脚3为高电平。由上面分析可知,远端RxD收到的信号电平完全是发送端TxD的电平,即对单片机收/发端串行通信口的电平状态不改变。因MC3487具有较强的线路驱动能力,加上MC3486的差分电平接收,大大延长了数据传输的距离,消除了共地系统的地势电位影响。
|