引言
随着通信技术的普及和发展,人们对测控系统的总体性能要求越来越高,为了便于对分布式的各个现场测控设备实现集中控制,现场总线技术得到了广泛的应用。RS485总线因其硬件设计和通信协议简单、控制方便、成本低廉、传输距离远以及可挂接多个从设备等优点而成为目前国内应用较多的现场总线之一。
目前大多数的分布式现场总线通信系统通常都使用PC机(或工控机)作为主机对各个现场设备进行集中控制和数据传输。PC机只有标准的RS232接口,而RS232总线和RS485总线的接口电平不兼容,要实现PC机和RS485总线构成的通信网络的连接就必须进行RS232和RS485之间的电平转换。因此,进行RS232/RS485转换器的设计就显得很有必要。
采用单片机进行RS232/RS485转换器的设计是比较常用的一种方法。传统的基于单片机设计的RS232/RS485转换器存在着以下不足之处:
(1)采用的单片机和外围器件个数较多,给设计带来不便,也不利于降低成本,减小体积;
(2)设置不灵活,不能改变波特率和通信方式,或者更改参数不方便,使通用性受限。
鉴于以上不足,本文采用宏晶科技公司生产的增强型51单片机STC11F02E为核心设计了一款RS232/RS485转换器来弥补这些缺陷,降低了成本,减小了体积,同时能够方便地进行波特率和通信方式的设置,增强了其通用性;而且单片机的可编程方式也方便了转换器的功能扩展,灵活性大大增强。
转换器的总体结构概述
转换器主要由三部分组成,分别为:RS232电平转TTL电平模块、RS485电平转TTL电平模块和单片机主控制模块。转换器的总体结构框图如图1所示。
图1 转换器总体结构框图
RS232电平转TTL电平模块用来实现RS232总线和单片机之间的连接,RS485电平转TTL电平模块用来实现RS485总线和单片机之间的连接,而单片机主控制模块起到一个过渡连接的作用,用于协调和控制RS232总线和RS485总线之间的数据传输。
下面详细阐述这3个模块的具体硬件电路设计。
转换器的硬件电路设计
RS232电平转TTL电平模块的电路设计
这里采用Maxim公司生产的MAX232电平转换芯片设计RS232和单片机的电平转换接口电路。
MAX232芯片只需用5V的单电源供电,外加4个电容,就可实现RS232电平和TTL电平之间的转换,可直接驱动RS232总线进行数据传输,使用十分方便。采用该芯片可以很容易地实现单片机和RS232总线之间的连接,其最高传输速率可达120kbps。
该模块的具体电路设计图如图2所示。
图2 RS232电平转TTL电平电路
RS485电平转TTL电平模块的电路设计
该模块的电路采用Maxim公司生产的RS485接口芯片MAX483E进行设计。
MAX483E芯片是一款用于RS485和RS422通信的低功耗总线收发器,具有±15kV静电放电冲击保护和限摆率驱动特性,减小了电磁干扰和终端电缆反射,允许高达250kbps速率的无差错数据传输。该芯片只需用5V的单电源电压供电即可正常工作,而且在一条总线上最多可以连接32个负载。利用该芯片可以极大地简化单片机和RS485总线的接口电路设计。
该模块的具体电路设计图如图3所示。
图3 RS485电平转TTL电平电路
单片机主控制模块的电路设计
该模块是转换器的核心模块,转换器的主要功能就是通过该模块来实现的。整个电路设计也非常简单,只需一片增强型的51单片机STC11F02E外加一些基本的外围电路(包括外部晶体振荡器电路和复位电路)即可完成设计。
STC11F02E单片机为增强型的8051内核,具有2KB的片内Flash程序存储器、2KB的EEPROM存储器和256KB的片内SRAM数据存储器。这款单片机的UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器)模块的最大特点就是通过配置特殊功能寄存器AUXR1中的第7位UART_P1的状态可以使UART模块的两个引脚(RXD、TXD)接到P3端口的P3.0、P3.1引脚,或者接到P1端口的P1.6、P1.7引脚,从而可以充当两个串口使用。这里主要利用该功能来设计RS232/RS485转换器。
整个转换器的总体硬件电路图如图4所示。
图4 转换器总体硬件电路图
转换器的工作原理
转换器硬件电路的工作原理是先将PC机串口输出的RS232总线信号电平通过电平转换芯片MAX232转换成STC11F02E可以接收的TTL电平信号,由该单片机接收PC发送过来的数据。STC11F02E接收完传来的全部数据后将串口引脚从P3.0和P3.1切换至P1.6和P1.7引脚,再把接收到的数据通过RS485收发器MAX483E发送到RS485总线上。从机应答后将相应的数据传至RS485总线上,再通过RS485收发器转成TTL电平后由单片机STC11F02E接收。STC11F02E接收完从机传来的全部数据后将串口引脚重新切换至P3.0和P3.1引脚,再通过MAX232电平转换芯片传送到PC机的RS232串口上去,使PC机接收从机传来的数据。整个数据传输过程就这样反复地进行。
一般的RS485总线的多机通信方式是半双工方式,也就是发送和接收不是同时进行的,某一个终端设备在某一时刻只能是发送状态或者是接收状态,所以采用这种方法来设计RS232/RS485转换器是合理的。这里的关键问题是如何协调好P3.0、P3.1和P1.6、P1.7这两组串口引脚之间的切换,这可以通过单片机的程序设计来实现。