随着计算机在工业的广泛应用,控制局域网络也深入应用到各行各业之中。现行的诸多控制系统,若采用单机控制方式已越来越难以满足设备控制的要求,因为往往我们所控制的设备只是整个系统的一个基本单元,它既需要外部输入一些必要的信息,同时,也需要向外部输出自身的运行参数和状态。所有这些,都要求我们采用控制网络技术,将众多设备有机地连成一体,以保证整个系统安全可靠地运行。
目前,在我国应用的现场总线中,RS-485RS-422使用最为普遍。当用户要将基于标准的RS-232接口设备,如PC机,连接至由RS-485RS-422构成的通讯网络时,则必须作RS-232和RS-485RS-422之间的电平转换。传统的做法是在设备内扩展一个通讯适配卡,由通讯适配卡实现电平转换,内部主机再通过并行总线读出或写入数据。显然,这种设计方法存在下列缺点:
· 由于适配卡是基于某一种总线标准扩展的,而不是基于RS-232电平标准,所以其应用范围受到限制,只能一种适配卡适用一种总线(如ISA适配卡不可能插入STD总线或用户自定义的总线),其通用性较差;
· 虽然实现的仅仅是电平转换,但是由于需要考虑与扩展总线的接口和增加一个标准的UART,并且需要占用系统的其它宝贵资源,使硬件和软件变得过于复杂;
· 复杂的硬件设计大大增加了元器件的数目和电路板面,使适配卡的成本过高;
· 由于采用内置插卡方式,使变更通信方式比较麻烦,如将半双工通信方式设置为全双工方式等。另外,维修和测试也比较麻烦;
· 对于现有的基于RS-232的设备,在无法变动系统软件和硬件的情况下,显然适配卡无法将这些设备连成基于RS-485或RS-422通信网络的分布式系统。
为了克服上述缺点,同时考虑到RS-232接口的自身特点,我们设计了一种小巧的、无须外部供电的智能收发转换器,实现RS-232和RS-485RS-422之间的电平转换。
1 功能描述及结构框图
本智能转换器作为一个独立的电平转换控制器,涉及线上取电、发送和接收状态的智能切换、通信方式设置、RS-232电平与RS-485RS-422电平之间的转换等方面。具体描述如下:
· 从RS-232接口上取电
由于不采用外部供电方式,则必须从RS-232接口线取电,为内部元器件供电。我们知道,标准的RS-232接口定义中,TXD、RTS和DTR是RS-232电平输出。设计一个DC-DC转换器,从这些信号上,能够为系统提供一定的电源功率。
· 低功耗微处理器
微处理器通过监测TXD信号的变化,决定是否允许数据发送和数据接收。另外,有关通信方式、波特率和半/双工工作方式选择也是通过TXD信号,或I/O口来设定的。
· RS-232电平与TTL电平之间的转换
· RS-485RS-422电平与TTL电平之间的转换
其内部电路结构示意图如图1所示。
2 工作原理
该智能转换器必须解决两个关键问题,即如何从RS-232线上获得电源和RS-485RS-422接口驱动所需的功率,和如何智能控制RS-485RS-422的收发使能。
2。1 电源方案
标准的RS-232定义中,有三个发送信号:TXD,RTS和DTR。每根线上的典型输出电流为±8mA/±12V,考虑到TXD为负电平(处于停止发送,或发送数字“1”时)的时间较多,因而电源转换决定采用负电源输入,以最大限度地增加电源输入功率,升压至所需的工作电源。从RTS和DTR上输入功率=2×8×12mW=192mW。另外,由于通讯为间歇工作方式,所以输入电源端的储能电容和TXD(为负电平时)能够补充一定的功率。假设,我们设计一个效率为85%、输出电压为3V的DC-DC转换器,则输出电流可达54.5mA。
2.2 智能控制收发使能
RS-232通讯接口采用电平方式传输,适用于点-点通讯,无须专门的收发使能控制;而对于RS-485RS-422通讯接口则不同,由于采用差分电平方式传输,且允许在一条通讯总线上挂接多个节点,必然要求各个节点能够独立地控制总线驱动器关断或打开,保证不会影响到其它节点的正常通讯。为了简化与转换器RS-232接口端相连的软件工作,更重要的是为了提高本转换器的通用性和灵活性(即插即用,无须要求用户更改任何相关软件和硬件),本转换器内置微处理器,实现收发使能的智能控制。具体方法:微处理器在检测到UART的通信起始位后,打开发送使能,允许串行数据发送至RS-485RS-422通讯网络。微处理器根据所设定的波特率延时至UART停止位发送一半时(例如11位格式时,延时10.5T,[page]
3 硬件设计
由于本转换器供电来自RS-232信号线,其输入功率受到限制,因而在本设计中将尽可能地采用+3V供电的低功耗器件,保证总电流小于54.4mA。主要包括4个部分:DC-DC转换器、RS-232接口、RS-485RS-422接口和微处理器。分别介绍如下:
3.1 DC-DC转换器
显然,还没有一个DC-DC转换器能够直接实现-12V输入,+3V输出的IC。但是,如果我们利用现有的IC,稍作改动,即可实现该功能。图2所示的DC-DC转换电路,就是利用MAX761实现的-12V输入,+3V输出、效率高于85%的升压DC-DC转换器。该转换器实际输入电压范围为-2.5~-13.5V,静态工作电流仅I1=120μA,具有输出电流大于54.5mA的能力(如果前端输入功率未受到限制,则输出电流可达300mA以上)。由于MAX761采用高效率的PFM控制方式,而且在本电路中,开关损耗较小因为开关电流小于负载电流所以能够达到比MAX761典型应用更高的效率MAX761典型应用效率为86%。输出电压由下列方程确定:
选取R2=100KΩ,根据所需要的输出电压,计算R1。
3.2 RS-232接口
本转换器只需要一片单发/单收RS-232接口就可以满足要求,但必须要求+3V单电源工作、工作电流尽可能地小的接口电路。MAX3221/NAX3221E(带±15kVESD保护)刚好能够满足上述要求,具有1TX/1RX,其工作电压+3~+5.5V,仅1μA的静态电流,负载电流小于I2=2mA。[page]
3.3 RS-485RS-422接口
为兼顾RS-485RS-422接口中半双工和全双工的要求,本转换器采用MAX3491作为RS-485RS-422接口电路,其主要指标为:+3~+3.6V单电源工作、工作电流1mA驱动60Ω负载时(半双工时,两个120Ω终端匹配电阻的并联值),峰值电流可达I3=3V/60Ω=50mA。半双工和全双工工作方式是通过跳线器来设置的,见图3。
3.4 微处理器
在本转换器中,微处理器所要完成的任务很简单,仅需要几根I/O线即可实现参数的设置和发送使能的自动控制。实际选择中,采用Microchip公司的PIC12C508A,其主要指标为:工作电流<1.0mA工作电压3V,频率4MHz)6条I/O线,512kByte的ROM。其中,GP0、GP1、GP4和GP5四个引脚设定对应于16种常用波特率(300、600、1200至38.4Kbps等8种,以及900、1800至115.4Kbps等8种)的延时时间;GP3对应于10位或11位串行数据格式;GP2为TXD输入,用来检测UART何时发送和停止数据;GP1为复用输出引脚,用来控制MAX3491的发送使能控制端;GP0也为复用输出引脚,用来控制MAX3491的接收使能。详见图3。
本转换器的最大电流总和<
4 软件设计
本转换器的软件设计较为简单,微处理器复位后,将所有的I/O口设为输入,并读入所有的I/O状态,保存到寄存器;将GP2和GP3改设为输出状态,并输出低电平,使RS-485RS-422接口处于禁止发送、允许接收的状态。CPU根据GPI0的初始状态,确定出用户设定的通讯波特率和串行数据格式,从而预置内部的延时设定。CPU检测到UART开始通讯后,打开发送使能,经内部预置延时后,开始在一个位宽时间内检测是否有下一个起始位到来,如检测到,则重新延时等待;否则,关闭发送使能,结束当前通讯,重新检测UART的起始位。对于半双工通讯方式,允许发送使能前应该关闭接收使能,而在发送使能关闭后才打开接收使能。对于全双工通讯方式,其接收使能可以不受此信号控制,而可以直接通过跳线接地,始终允许接收。
总之,在本RS-232到RS-485RS-422接口的智能转换器设计中,除了本身这个产品具有较高的应用价值外,文中所涉及的RS-232信号线供电方案,由于其高效率、大电流输出能力,在许多基于RS-232接口的应用中都能够很好地满足应用;另外,这种智能控制RS-485RS-422接口的收发使能的思想,在扩展基于RS-485RS-422接口的网络分支及延伸通讯距离都能够得到很好的应用。