单片机远距离串行通信电路
扫描二维码
随时随地手机看文章
单片机的应用越来越普遍。有些单片机设置了串行通信口,使其应用范围更加扩大。如51系列单片机的串行口是一个全双工通信接口,能同时进行发送和接收,且可通过对串行控制寄存器SCON的设置,选择多种串行通信模式,包括多机通信。实际应用系统中往往要涉及远距离多机串行通信。
按一般介绍,多机通信的主机与从机连接如图1-9所示,通过软件编程实现由主机查询、从机响应的通信方式,但这种通信方式只限于主机与从机近距离(几米)范围内。这是因为串行口TxD发出的TTL电平信号无论在驱动能力还是在抗干扰能力方面都不足以实现远距离串行数据传送,所以要实现单片机串行口的远距离通信(几十米到几千米),必须另辟蹊径。
远距离串行通信电路
1.单片机远距离串行通信电路
为实现单片机的远距离串行通信,在串行口TxD和RxD信号前端分别加入一差分驱动器MC3487和一差分接收器MC3486,变电平收发为差分收发。加入差分驱动和差分接收电路后的多机串行通信连接如图1- 10所示。空方框代表加入的差分驱动、接收电路。由图可知,加入差分驱动、接收器后,主机与从机的连线只剩下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的差分电平接收,大大延长了数据传输的距离,消除了共地系统的地势电位影响。
2.计算机远距离串行通信电路
有时多机通信系统中一端是计算机或两端都是计算机,如图1 - 14所示。通常计算机本身都带有RS - 232C串行通信口。RS - 232C串行口是电子工业协会(EIA)的一种标准串行数据通信口,在电气性能上采用负逻辑定义。逻辑1电平为-5~-15 V,逻辑O电平为+5~+15 V。但RS一232C的通信距离也不允许太远,一般要求在15 m内。为延长计算机通信距离,可像前面介绍的方法一样,在RS - 232C前加入一个232C/422A转换器,把232C电平传输变成差分驱动、接收。232C/422A转换器的电路如图1-15所示。由图可见,电路只是比前面详细介绍过的图1- 11电路多加一片MC1489和一片MC1488。MC1489是RS - 232C串行通信接收器,图1-15中它把计算机串行TxD发出的232C电平转换成TTL电平,供MC3487驱动传输;MC1488是RS - 232C串行通信发送器,图1-15中它把MC3486接收的电平转换成232C电平,送到计算机串行接收端RxD。这样接入232C/422A转换器后,计算机间变成差分线路传输,只需D+和DL两根双绞线,达到延长通信距离,消除共地地电势影响的目的。
实际应用系统
单片机、计算机的远距离串行通信已应用在重庆市交通局的多区制、多信道集群无线通信系统中。我们将重庆市交通局组建的集群无线通信网分为四个区,覆盖全市9区、12县。每个区的总台控制中心如图1 - 16所示。总台控制中心采用STD工业控制微机为上位机,通过一块用单片机8031做成的串行通信板与各信道从机进行串行数据通信。系统中每个工作信道由一块用单片机8751做成的控制板对电台进行控制和管理,同时控制板通过单片机串行口与上位主机通信板实现串行通信,把数据送向上位STD微机进行处理,并接受上位机的命令控制。串行通信板与各信道控制板的通信就是一个典型的单片机多机通信系统,因各信道电台架设在山上,与STD工业控制微机所处的控制室相距较远(最远2~3 km),采用了上面介绍的远距离串行通信方法,通信速率取2 400 b/s,软件设计加入CRC - 16检验,自开通以来,通信网运行可靠,串行通信数据误码率极低。
以上所介绍的单片机、计算机远距离串行通信方法不失为一种简便、可行的方法。利用现成的集成芯片,采用最经济的双线传输,解决了远距离数据交换的问题。它具有抗电磁干扰能力强,速率高,误码率低,彻底摆脱了公共地电势电平影响等优点;其缺点是数据传输只能以半双工方式进行,即不能同时收/发,当距离更远(万米以上)时,恐怕就只能改用其他传输方法了,如加调制解调器,利用现行电话线进行传输等方法。