书城工业技术智能仪器设计基础
19100400000020

第20章 通信接口技术(1)

通信接口是智能仪器的重要组成部分之一。在自动化测量和控制系统中,智能仪器之间需要不断地进行各种信息的交换和传输,这是通过智能仪器通信接口按照一定的协议进行的。通信接口是智能仪器之间或者智能仪器与计算机之间进行信息交换和传输的联络装置。

按通信方式分类,可分为并行通信和串行通信两种。并行通信传输速度快,效率高,在短距离数据传输中得到了广泛的应用。串行通信是指在发送方将并行数据通过某种机制转换为串行数据,经由通信介质逐位发送出去,而在接收方通过某种机制将串行数据恢复为并行数据的通信方式。采用串行通信可以大量地节省电缆,对于远距离数据通信(包括无线通信),串行通信几乎是唯一的选择。

串行总线有RS232C、RS485、I2C总线、单线总线(亦称1wire总线)、USB总线和HART协议现场总线等。

6.1串行通信接口

6.1.1串行通信基本方式

串行通信是指将构成字符的每个二进制数据位,依照一定的顺序逐位进行传输的通信方式。计算机或智能仪器中处理的数据是并行数据,因此在串行通信的发送端需要把并行数据转换成串行数据后再传输;而在接收端,又需要把串行数据转换成并行数据再处理。数据的串并转换可以用软件和硬件两种方法来实现。硬件方法主要是使用了移位寄存器。在时钟控制下,移位寄存器中的二进制数据可以顺序地逐位发送出去;同样,在时钟控制下,接收进来的二进制数据也可以在移位寄存器中装配成并行的数据字节。

根据时钟控制数据发送和接收的方式,串行通信分为同步通信和异步通信两种。

在同步通信中,为了使发送和接收保持一致,串行数据在发送和接收两端使用的时钟应同步。通常,发送和接收移位寄存器的初始同步是使用一个同步字符来完成,当一次串行数据的同步传输开始时,发送寄存器送出的第一个字符应该是一个双方约定的同步字符,接收器在时钟周期内识别该同步字符后,即与发送器同步,开始接收后续的有效数据信息。

在异步通信中,只要求发送和接收两端的时钟频率在短期内保持同步。通信时发送端先送出一个初始定时位(称起始位),后面跟着具有一定格式的串行数据和停止位。接收端首先识别起始位,同步它的时钟,然后使用同步的时钟接收紧跟而来的数据位及停止位,停止位表示数据串的结束。一旦一个字符传输完毕,线路空闲,无论下一个字符在何时出现,它们都将再重新进行同步。

同步通信与异步通信相比较,优点是传输速度快。不足之处是:同步通信的实用性将取决于发送器和接收器保持同步的能力。在一次串行数据的传输过程中,接收器接收数据时,若由于某种原因(如噪声等)漏掉一位。则余下接收的数据都是不正确的。

异步通信相对同步通信而言,传输数据的速度较慢,但若在一次串行数据传输的过程中出现错误,仅影响一个字节数据。

目前,在微型计算机测量和控制系统中,串行数据的传输大多使用异步通信方式。

6.1.2串行通信协议

为了有效地进行通信,通信双方必须遵从统一的通信协议,即采用统一的数据传输格式、相同的传输速率、相同的纠错方式等。

异步通信协议规定每个字符以位串行方式传输,每个串行数据由起始位、数据位、奇偶校验位和停止位组成。具体定义如下:

当通信线上没有数据传输时应处于逻辑“1”状态,表示线路空闲。

当发送设备要发送一个字符数据时,先发出一个逻辑“0”信号,占1位,这个逻辑低电平就是起始位。起始位的作用是协调同步,接收设备检测到这个逻辑低电平后,就开始准备接收后续数据位信号。

数据位信号的位数可以是5、6、7或8位。一般为7位(ASCⅡ码)或8位。数据位从最低有效位开始逐位发送,顺序地发送到接收端的移位寄存器中,并转换为并行的数据字符。

奇偶校验位用于进行有限差错检测,占1位。通信双方需约定一致的奇偶校验方式,如果约定奇校验,那么组成数据和奇偶校验位的逻辑“1”的个数必须是奇数,如果约定偶校验,那么逻辑“1”的个数必须是偶数。通常奇偶校验功能的电路已集成在通信控制器芯片中。

停止位用于标志一个数据的传输完毕,一般用高电平,可以是1位、1.5位或2位。当接收设备收到停止位之后,通信线路就恢复到逻辑“1”状态,直至下一个字符数据起始位到来。

在异步通信中,接收和发送双方必须保持相同的传输速率,这样才能保证线路上传输的所有位信号都保持一致的信号持续时间。传输速率即波特率,它是以每秒传输的二进制位数来度量的,单位为比特/秒(b/s)。规定的波特率有50、75、110、150、300、600、1200、2400、4800、9600和19200b/s等几种。

总之,在异步串行通信中,通信双方必须持相同的传输波特率,并以每个字符数据的起始位来进行同步。同时,数据格式,即起始位、数据位、奇偶位和停止位的约定,在同一次传输过程中也要保持一致,这样才能保证成功地进行数据传输。

6.1.3RS232、RS485通信标准接口

RS232是美国电子工业协会(EIA)正式公布的串行接口标准,也是目前最常用的串行接口标准,用来实现计算机与计算机间、计算机与外设之间数据通信。RS232串行接口总线适合用于设备之间通信距离不大于15米、速度不高于20kbps的场合中。

RS485是美国电子工业协会于1983年制订并发布的,后由通信工业协会(TIA)修订后命名为TIA/EIA485A,不过大家还是习惯地称之为RS485。RS485由RS422发展而来,后者是为弥补RS232的不足而提出的。

为改进RS232通信距离短速率低的缺点,RS422定义了一种平衡通信接口,将传输速率提高到10Mbps。当速率低于100kbps时,传输距离可延长到100m,并允许在一条平衡线上连接最多10个接收器。RS422是一种单机发送多机接收的单向平衡传输标准,为扩展其应用范围,又增加了多点双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,这就是后来的EIARS485标准。

6.1.3.1RS232接口

1.接口值号

一个完整的RS232C接口有22根线,采用标准的25芯插头座。

-2.电气特性

RS232C采用负逻辑,其中:

逻辑“1”为-5V~-15V;

逻辑“0”为+5V~+15V。

用RS232C连接系统时,有近程通信方式和远程通信方式。近程通信是指传输距离小于15m的通信,这时可以用RS232C电缆直接连接。15m以上的长距离通信,需要采用调制解调器。

3.RS232C标准接口的实现及电平转换

RS232C规定了自己的电气标准,而此标准不能满足TTL电平传送的要求。因此,当RS232C电平与TTL电平接口时,必须进行电平转换。

(1)传输线驱动器MC1488和接收器MC1489

RS232C电平与TTL电平转换最常用的芯片是传输线驱动器MC1488和传输线接收器MC1489,其作用是电平转换、正负逻辑转换。

MC1488内部有3个与非门和一个反相器,供电电压为±12V,输入为TTL电平,输出为RS232C电平。

MC1489内部有4个反相器,输入为RS232C电平,输出为TTL电平,供电电压为+5V。MC1489中每一个反相器都有一个控制端,高电平有效,它可作为RS232C操作的控制端。

2.单电源供电的双RS232收发器

ICL232是Intel公司为串行口RS232生产的专用芯片,同类产品有TC232、MAX232、AD232等。在单5V供电条件下,该芯片可以把0/5V的TTL电平转换为+10V/-10V的RS232电平,还能把+10V/-10V的RS232电平转换为0/5V的TTL电平。可见,它可以替代传统的RS232接口芯片MC1488、MC1489而简化电路,省去了±12V电源。

ICL232芯片具有以下特点:

只需要单一的+5V电源工作,功耗低;

符合RS232技术标准;

片内升压、电压极性转换功能;

两驱动器、两接收器。

ICL232主要由一个电压泵升电路、一个双重发送电路和一个双重接收电路组成。电压泵升电路由两个电荷泵组成,用以实现升压和电压极性的转换。ICL232内部有一振荡器,工作频率为25kHz,内部还有8个模拟开关,外部连接4个电容。在时钟控制下,模拟开关按照一定的规律开与关,以控制电容的充放电,从而实现升压与极性转换,得到±10V电压。

ICL232的发送部分有一个典型值为5kΩ的RS232接收器负载,在Vcc=5V的情况下,驱动输出电压在±18V左右。对于逻辑1,输出电压为-5V~0V;对于逻辑0,输出电压为+5V~0V。片内部上拉电阻为400kΩ。另外输出具有短路保护功能,与地短路不受限制。

ICL232的接收部分,如果输入驱动为负,它的输入只能变成高电压;如果输入浮空或者未被驱动,那么输出也不会为低状态。输入阻抗3kΩ~7kΩ,即便Vcc=0V,输入接收信号也能达±30V。一般情况下,输入超过2.4V则输出为低,输入在+0.8V~-30V之间则输出为高。片内的5kΩ电阻引向地,可以辅助逻辑1的输出,而接收器输入具有0.5V的滞后效应,对于噪声抑制有作用。

ICL232可以适用于需要采用单一电源进行RS232数据通信的网络中,其接口电路简单可靠。

6.1.3.2RS485接口

RS232接口虽然应用广泛,但其传输速率低,通信距离短,在工业网络控制应用中不能得到推广。而RS485标准接口就能避免这些缺点。

1.RS485电气接口标准

RS485是一个电气接口标准,它只规定了平衡驱动器和接收器的电特性,而没有规定接插件传输电缆和通信协议。RS485标准定义了一个基于单对平衡线的多点、双向、半双工通信链路,是一种极为经济并具有相当高的噪声抑制、传输速率、传输距离和宽共模范围的通信平台。RS485接口的主要特点如下。

平衡传输。

多点通信。

驭动器输出电压大于1.5V。

接收器输入门限:±200mV。

-7V~+12V的总线共模范围。

最大输入电流:1.0mA/-0.8mA(12Vin/-7Vin)。

最大总线负载:32个单位负载。

最大传输速率:10Mbps。

最大电缆长度:100m。

RS485支持半双工或全双工模式网络拓扑,一般采用终端匹配的总线型结构,不支持环形或星型网络。最好采用一条总线将各个节点串接起来,从总线到每个节点的引出线长度应尽量短,以便使引出线中的反射信号对总线信号的影响最低。

RS485接口采用差分方式传输信号,并不需要相对于某个参照点来检测信号系统,只需检测两线之间的电位差就可以了。但应该注意的是,收发器只有在共模电压不超出一定范围(-7V~+12V)的条件下才能正常工作。当共模电压超出此范围时,就会影响通信的可靠性甚至损坏接口。

2.RS485收发器

MAX481/MAX483/MAX485/MAX487~MAX491都是用于RS485接口的收发器,它们都含有一个驱动器和一个接收器,满足RS485标准,总线允许32个收发器。其中,MAX483、MAX487、MAX488和MAX489是具有减小转换速率的驱动器,可以使电磁干扰减小到最低,并减小因电缆终端不当而产生的影响。

下面以MAX481为例来认识RS485接口芯片。

MAX481等系列芯片是专为在多点总线传输线上实现数据双向通信而设计的,它们也可以作为通信线路的中继器使用。为了减少在线路上的反射,线路两端应接上与之匹配的特性阻抗,并且要使其与主线路支线的连线尽可能短。

6.1.4智能仪器与计算机通信实例

在实际应用中,常常需要用计算机与智能仪器组成分布式测控系统,这就需要计算机与智能仪器之间进行通信。

PC机发出三个数据,作为智能仪器中89C51的命令;89C51接到命令后,将不同的数据发给PC机。

用汇编语言编制的PC机发送和接收程序如下:

STACKSEGMENTSTACK

DB30DUP(?)

SEACKENDS

DATASEGMEMT

SJ1DB11H,22H,33H

DATAENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATA,ES:DATA

MOVAX,DATA

MOVDS,AX

MOVES,AX

MOVAL,80H;置DLAB为1

MOVDX,3FBH;写入通信线控制寄存器

OUTDX,AL

MOVAL,0CH;置产生9600波特率除数低位

MOVDX,3F8H

OUTDX,AL;写入波特率因子锁存器低位