基于AVR单片机的串行接口智能转换器
扫描二维码
随时随地手机看文章
由于RS-422、RS-485总线具有抗干扰能力强、通讯速率高、通讯距离远、可以与多台从机通讯等特点,所以在主从式多机通讯中,得到普遍应用。
我们设计开发了一种以AT90S2343低功耗单片机为核心的外插式串行口智能转换器,它把RS232串行口转换至RS-422或RS-485串行口。它无须外部供电、并能自动识别通讯波特率(1200-115.2K)和通讯方式(8位、9位方式),智能控制接收和发送电路与通讯总线的连接、在不改变现有软件情况下,做到即插即用。
该转换器且通用性强、性能可靠、结构简单、使用方便的特点。可广泛应用于数据采集、监控管理及集散控制的通讯系统中。笔者在电气设备的绝缘在线监测系统中,应用该转换器实现对多台数据采集装置的数据通讯,通讯性能稳定可靠。
1、电路的整体结构
智能转换器的电路结框图如图1所示,整个电路由4个部分组成。第一部分是DC-DC电源变换电路。它从PC机串行口的信号线上窃取电能,将其转换成供智能转换器使用的电源;第二部分是RS-232接口电路,它实现各信号的RS-232电平与TTL电平的转换;第三部分是RS485/RS422接口电路,它实现通讯总线的RS485/RS422电平与TTL电平之间的转换;第四部分是以CPU为核心的智能控制电路,它通过监测PC机的TXD发送信号,识别通信的波特率、通讯方式(10/11位方式)、智能控制通讯数据的发送和接收。
当转换器用作RS485半双工通讯方式时,须将发送器输出和接收器输入的同相、反相端分别用两个跳线短接。
2 电路工作原理
2.1 DC-DC电源变换电路
由于RS232接口不提供电源,全部电路的供电只能从RS-232信号线中获取。RS-232接口有DTR、RTS和TXD三个输出信号,每个信号可提供输出电流的典型值为±8mA。通用软件不使用握手信号RTS和DTR,它们输出为-12V。TXD信号在不发送数据和发送数据“1”的时,也输出为-12V。为了增加电源转换电路的输出功率,电路中把DTR、RTS和TXD三个信号的-12V输出作为电源变换电路的电源输入。
由于没有负电压输入转换到稳定正电压输出的DC-DC转换器,笔者在通用DC-DC转换电路的基础上,用IC芯片MAX761研制出具有输入-12V电压、+5V稳压输出的 DC-DC转换电路,转换效率>85%。具体的电路如图2所示。电路中MAX761是PFM(脉冲调频方式)的DC-DC转换控制器。最高调制频率为300KHZ。LX是功率驱动管(场效应管)的漏极输出端;REF是基准电压输出端;LB是电压采样输入端。MAX761控制器和电感L构成自举升压电路,输出电压采样网络由稳压管W1、晶体管T、和电阻R1、R2组成。采样电压经LB输入控制器,通过改变调制脉冲的频率来稳定输出电压。电路的稳压工作原理如下:
输出电压VOUT降低时,三极管T1的基极电流IEB减小,LB端的取样电压UR1(βIEB×R1×)减小,当LB的取样电压(UR1)<片内基准电压时,控制信号以最高调制频率的来控制功率驱动管的开通与截止,当功率驱动管导通时,LX等于-12V,二极管D4处于截止状态,电流经电感L流向LX,此时电感L储存能量。当功率驱动管截止时,电感L释放能量,反电动势产生的电流经二极管D4向电容C4充电,从而使输出电压VOUT升高。
输出电压VOUT升高时,三极管T1的基极电流IEB增大,LB端的取样电压UR1(βIEB×R1×)增大,当LB的取样电压(UR1)≥片内基准电压时,控制信号控制功率驱动管在一个完整调制的周期内处于截止状态,由负载消耗使输出电压VOUT下降。
[!--empirenews.page--]
通过以上的脉冲调频方式的自举升压调节,使输出电压稳定在+5V。
输出电压由下式确定:
VOUT=Vw1+Veb+Ib×R2≈Vw1+Veb ≈ 5 V
2.2 单片机智能控制工作原理RS485通讯方式是软件通过收、发使能信号来控制数据的分时接收与发送,使用同一对差分通讯总线实现双向数据通讯的半双工通讯方式,而RS232通讯接口不能提供这样的使能控制信号。但可以通过单片机对主机PC-TXD信号的监测,准确计算出传送一帧数据的时间,智能产生收、发使能信号控制数据的分时接收与发送,实现数据的半双工通讯。以AT90S2343低功耗单片机为核心的串行口智能转换器的具体电路如图3所示。
单片机对传送一帧数据的时间的识别方法如下:当单片机监测到主机发送数据的起始位时,开始测量PC-TXD信号的每个脉冲的脉冲宽度,计算出对应的波特率,若均属于通用波特率集合,它们中的最高波特率即是通讯波特率。否则,该脉冲宽度是发送两帧数据的间隔时间,电平负跃变的时刻是起始位的开始时刻,开始重新测量每个脉冲的脉冲宽度。当通讯波特率确定后,检测第十位的电平状态,若是低电平,则可确定是11位通讯方式。否则是10位通讯方式。由通讯波特率和通讯方式计算出传送一帧数据的时间。
通讯接口接收、发送数据的智能控制过程如下:每当监测到主机发送数据的起始位时,单片机输出收、发使能信号(RE=1、DE=1),控制收、发电路禁止接收、允许发送数据,主机数据发送到RS485通讯总线上,同时定时器开始计时。当计时时间等于发送一帧数据的时间时,单片机输出收、发使能信号(RE=0、DE=0),控制收、发电路允许接收、禁止发送数据。此时,主机可以接收RS485通讯总线上的从机数据。当单片机又监测到主机发送数据的起始位时,重复上述的发送过程。
在通讯过程中,波特率测量和收、发数据智能控制必须同步进行,否则就会造成通讯数据的丢失。
为适应高速通讯的要求,电路中采用美国Atmel 公司的AT90SL2343单片机。它是目前最新的单片机系列之一,其突出特点是执行速度高,片内硬件资源丰富。使用CPU内部的电源监测和可编程看门狗定时器,使电路具有较强的抗干扰能力。
单片机I/O端口的分配和功能:PB3输入,监测主机PC-TXD信号;PB0输出,接收使能信号;PB4输出,发使能信号;PB2输入,由K1设置双工或半双工通讯方式。
3 软件设计
3.1 程序流程框图
串行口智能扩展卡的程序流程图如图4所示。
3.2 半双工通讯方式的软件设计
在RS485半双工通讯方式下,首先允许接收、禁止发送数据。在检测到PC-TXD信号的数据起始位之后,通讯接口禁止接收、允许发送数据,并开始计时。通过检测数据信号的每个脉冲宽度,确定其波特率和数据的发送位数,进而计算出每帧数据允许发送的时间。当计时时间大于或等于该时间时,该通讯接口禁止发送并允许接收数据。在接收状态下,CPU重复检测发送数据的起始位。当检测到发送数据的起始位时,重复上述的数据发送的控制过程。
[!--empirenews.page--]
3.3 双工通讯方式软件设计
在RS422双工通讯方式下,接收和发送使能信号始终有效,同时允许接收和发送数据。
4 结束语
电路结构简单、无须外部供电,笔者将它制作成串行口转换器直接插接在串行口插口上即可。它具有通用性强、性能可靠、结构简单、使用方便的特点。该电路使用了电源监测和可编程的看门狗监测定时器,使转换器具有较强的抗干扰能力。该转换器可广泛应用于主从式多机通讯系统。
参考文献
1. 吴秀清等,微型计算机原理与接口技术,中国科学技术大学出版社,1999.02
2. 李勋,耿德根,AVR单片机应用技术,北京航空航天大学出版社,2002.6