第19章 C51通信接口程序设计
在单片机的通信应用系统中,广泛采用异步串行通信方式。使用单片机的全双工串行接口可以完成双机以及多机的通信任务。另外,在远距离、干扰大或者和计算机进行串口通信的场合,需要考虑选用的串行接口标准的问题。对于串行接口,目前用得比较多的是RS232标准、RS422标准以及RS485标准等。
本章首先介绍了几种常用的串行通信接口标准,接着介绍了常用的串行接口转换芯片MAX232以及双机和多机通信原理。最后分别通过实例,详细讲解了C51双机串行通信和多机串行通信的实现。
19.1 串行接口通信概述
在实际的应用系统中,为了满足长距离、高速率和低错误率的通信要求,常常需要采用一些标准的串行通信接口。在单片机的串行通信接口设计时,同样需要考虑这些问题。
19.1.1 串行接口通信标准
目前计算机以及其他测控设备中的异步串行通信接口标准,主要包括RS-232C标准、RS-449、RS-423A、RS-422A、RS-485以及20mA电流环路等。这几种接口标准各有优缺点,在系统设计时,用户可以根据需要进行选择。下面分别介绍这几种接口标准。
1.RS-232C标准
RS-232C标准最初是为远程通信连接数据终端(Data Terminal Equipment,DTE)与数据通信设备(Data CommunI2Cation Equipment,DCE)而制定的,其由美国电子工业协会(ElectronI2C Industries Association,EIA)与BELL等公司于1962年公布,1969年最后修订的串行通信协议。目前,计算机与终端或外设之间的近距离连接,很多都采用RS-232C接口,它适合于0~20 000bit/s范围内的通信。
在R S-2 3 2 C标准中,字母R S表示R e c o m m e n d e d Standard(推荐标准),232是识别代号,C是最后一次修订的标准版本号。
在RS-232C标准中对连接器本身的物理特性没有具体的定义,因此市场上出现了DB-25、DB-15和DB-9等各种类型的RS-232C连接器,其引脚的定义也各不相同。目前使用最多的是DB-9型连接器,一般的计算机和测控仪器中都使用。DB-9型RS-232C连接器引脚结构,如图19.1所示。其各个引
图 19.1 DB-9型RS-232C引脚结构
脚的接口信号,如表19.1所示。
为了在工业领域中提供抗干扰能力和增加传送距离,在RS-232C标准中规定的接口信号状态和电压标准不是TTL信号。在RS-232C标准中,高电平1信号电压的范围为-15~-3V,低电平0信号电压的范围为+3~+15V。高低电平用相反的电压来表示,这样两者之间至少有6V的电压差,这极大地提高了数据传输的可靠性。
在RS-232C标准中,允许的连接电缆约为15m。另外,RS-232C标准的信号传输速率限制在0~20 000bit/s范围内。但在实际应用中,常常不应超过19 200bit/s,过高的传输速度容易引发传输错误。
RS-232C接口标准虽然有广泛的应用,但在现代工业控制及通信领域,有其明显的缺点,主要表现在如下几个方面。
❑RS-232C接口标准只支持单端收发。
❑RS-232C接口标准抗共模干扰能力差。
❑RS-232C接口标准传输速率低,小于20 000bit/s。
❑RS-232C接口标准传输距离短,通常在15m以内,很难满足工业控制的要求。
❑RS-232C接口标准没有明确规定连接器的类型,造成了很多互不兼容的连接器。
鉴于以上缺点,为了实现更远距离以及更高速度的直接连接,EIA在RS-232C的基础上,制定了更高性能的接口标准,如RS-449、RS-422A、RS423A及RS-485等。
2.RS-449标准
为了得到比RS-232C更快的传输速率和更远的传输距离,1977年提出了RS-449标准。使用RS-449接口标准,可以达到90 000bit/s的通信速率,如果使用24-AWG双绞线,可以实现长达1219m的远距离数据传输。
RS-449标准和RS-232C标准的主要差别是信号在传输线上的传输方法不同。在RS-232C接口标准中,传输数据利用的是传输信号和公共地之间的电压差,而在RS-449接口标准中,利用的是信号传输线之间的信号电压差。
RS-449标准不使用调制解调器,也可以实现比RS-232C标准传输速率更高,通信距离更远的串行数据通信。并且,由于使用平衡信号差来传输高速信号,所以通信线路噪声低,可以实现多点或者使用公共线通信,即RS-449通信电缆可以与多个RS-449设备并联。
在RS-449接口标准中,规定了两种标准连接器,一种是37脚,功能最全面;另一种是9脚,为功能简化版本。RS-449标准连接器引脚的定义,分别如表19.2和表19.3所示。
3.RS-423A标准
RS-423A接口标准以非平衡的方式进行串行数据传输。RS-423A标准实质上是用差分接收器代替原来的R S-2 3 2 C的单端接收器,如图19.2所示。其中,一般使用驱动器DS3691和接收器26L32来实现
图 19.2 RS-423A接口标准连接示意图
电平转换和信号驱动。
和RS-232C相类似,RS-423A标准规定信号参考电平为地。RS-423A标准与RS-232C的主要区别在于:RS-423A标准中只允许有一个单端发送器,但可以有多个接收器,接收器采用平衡接收器。另外,RS-423A标准规定的逻辑高电平1的状态必须超过4V,但不能高于6V;逻辑低电平0的状态必须低于-4V,但不能低于-6V。
RS-423A接口标准采用差动接收,提高了抗共模干扰能力,可以实现更远的传输距离和更高的传输速率。例如,在最大串行数据传输速率为100kbit/s时,传输距离为90m;当最大串行数据传输速率为1kbit/s时,传输距离可远至1200m。
4.RS-422A标准
RS-422A标准是一种以平衡方式传输的标准。RS-422A接口标准的连接示意图如图19.3所示。RS-422A接口标准的最大数据
传输速率为10Mbit/s时,传输距离为15m;如果传输速率为90kbit/s,则最大的传输距离可以达到1200m。
RS-422A接口标准采用双端发送和双端接收,传输过程中要用两条线,发送端和接收端分别采用平衡发送器和差动接收器。一般可以使用专用的平衡驱动器MC3487和差动接收器MC3486,另外,也可以使用SN75174/SN75175等。
图 19.3 RS-422A接口标准连接示意图
RS-422A接口电路由平衡发送器、平衡连接电缆、电缆终端负载和差动接收器组成。RS-422A接口标准通过平衡发送器将逻辑电平变换成电压差,完成信息发送;接收方通过差动接收器,将电压差变换成逻辑电平,实现终端的信息接收。该标准中规定只有一个发送器,但可以有多个接收器。RS-422A的接口标准允许驱动器输出为±2V~±6V,接收器输入电平可以低至±200mV。
RS-422A标准与RS-232C标准不同的是,其对逻辑电平的定义是根据两条传输线之间的电压差决定的。当AA‘传输线上的电平比BB'传输线上的电平低2V的时候,表示逻辑高电平1;当AA'传输线上的电平比BB’传输线上的电平高2V的时候,表示逻辑低电平0。RS-422A接口标准采用了双线传输,由于两根传输线在传输中受到的干扰基本相同,当以电压差表示信号时,干扰可以抵消,因此电压差基本不变,这便大大增强了抗共模干扰的能力。
5.RS-485标准
RS-485接口标准和RS-422A标准相类似,是一种平衡传输方式的串行接口标准。RS-485标准扩展了RS-422A的性能,是一种多发送器的电路标准,其允许在双导线上有多个发送器,也允许一个发送器驱动多个负载设备。RS-485标准的特点是抗干扰能力强,传输距离远,速率高。如果采用双绞线传输信号,如果最大传输速率为10Mbit/s,传输距离为15m;在最大100kbit/s的传输速率下,传输距离可达1200m;如果最大传输速率为9600bit/s,则传输距离可达1500m。
RS-485标准的电路结构如图19.4所示。其中,传输线是一对平衡传输导线的两端都配置终端电阻,其发送器、接收器以及组合收发器都可以挂接在平衡传输线的任意位置,从而实现了数据传输中多个驱动器和接收器共用一条传输线的多点应用。
图 19.4 RS-485标准的电路结构
RS-485标准最多允许在平衡电缆上连接32个发送器/接收器,但RS-485仅能工作于半双工方式,即任一时刻只允许一个发送器发送数据,而其他组件只能处于接收状态。
由于RS-485的高速度、远距离以及多收发器等特点,使其特别适用于工业控制领域用于现场分布管理、联网检测控制等,目前应用十分广泛。
6.20 mA电流环路串行接口
20mA电流环路同样是一种异步串行通信接口标准,其电路结构图如图19.5所示。图中两根传输线发送+和发送-组成一个输入电流回路,另两根传输线接收+和接收-组成一个输出电流回路。当发送数据时,根据数据的逻辑0和1,使回路有规律地形成通、断状态。
在20mA电流环路串行接口中,每次发送数据的时候必须以无电流的起始状态作为每一个字符的起始位,接收端检测到起始位后便开始接收字符数据。
图 19.5 20mA电流环路原理图
20mA电流环路串行通信接口主要的优点是低阻传输线,对电气噪声不敏感,而且易于实现光电隔离,适用于长距离的串行数据通信。