标题：232接口
概述
详细地介绍了如何从RS-232信号线上高效率地产生电源，如何实现RS-232接口与RS-485RS-422接口的智能转换，同时，也给出了具体的硬件设计及软件设计方法。 关键词： RS-232 RS-485RS-422 接口 智能转换器  R232接口
随着计算机在工业的广泛应用，控制局域网络也深入应用到各行各业之中。现行的诸多控制系统，若采用单机控制方式已越来越难以满足设备控制的要求，因为往往我们所控制的设备只是整个系统的一个基本单元，它既需要外部输入一些必要的信息，同时，也需要向外部输出自身的运行参数和状态。所有这些，都要求我们采用控制网络技术，将众多设备有机地连成一体，以保证整个系统安全可靠地运行。　　目前，在我国应用的现场总线中，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之间的电平转换。
功能描述及结构框图
本智能转换器作为一个独立的电平转换控制器，涉及线上取电、发送和接收状态的智能切换、通信方式设置、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所示。
工作原理
该智能转换器必须解决两个关键问题，即如何从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,T=1/Fbavd）,开始检测是否有下一个起始位到来。在时间T内，若有下一个起始位到来，则保持发送状态，否则将关闭发送使能，结束数据发送。
硬件设计
由于本转换器供电来自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。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，其主要指标为：工作电流I4<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。
本转换器的最大电流总和<I1+I2+I3+I4=0.12+2.0+50.0+1.0=53.12mA，小于DC-DC转换器的最小输出电流54.4mA，因而通过RS-232信号线为本电路供电是完全可行的。实际上，由于输入电源端的储能电容E1和TXD（为负电平时）能够为电路补充一定的功率，所以设计上留有较大的电源功率裕量。
软件设计
本转换器的软件设计较为简单，微处理器复位后，将所有的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接口的网络分支及延伸通讯距离都能够得到很好的应用。