基于AT90S2343的串口智能转换器

标签: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位方式)、智能控制通讯数据的发送和接收。


图1  串行口智能转换器结构框图

   当转换器用作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输入控制器,通过改变调制脉冲的频率来稳定输出电压。电路的稳压工作原理如下:


图2   DC-DC电源变换原理图

   输出电压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下降。

   通过以上的脉冲调频方式的自举升压调节,使输出电压稳定在+5V。

   输出电压由下式确定:

   VOUT=Vw1+Veb+Ib×R2≈Vw1+Veb ≈ 5 V

   2.2 单片机智能控制工作原理

   RS485通讯方式是软件通过收、发使能信号来控制数据的分时接收与发送,使用同一对差分通讯总线实现双向数据通讯的半双工通讯方式,而RS232通讯接口不能提供这样的使能控制信号。但可以通过单片机对主机PC-TXD信号的监测,准确计算出传送一帧数据的时间,智能产生收、发使能信号控制数据的分时接收与发送,实现数据的半双工通讯。以AT90S2343低功耗单片机为核心的串行口智能转换器的具体电路如图3所示。

   单片机对传送一帧数据的时间的识别方法如下:当单片机监测到主机发送数据的起始位时,开始测量PC-TXD信号的每个脉冲的脉冲宽度,计算出对应的波特率,若均属于通用波特率集合,它们中的最高波特率即是通讯波特率。否则,该脉冲宽度是发送两帧数据的间隔时间,电平负跃变的时刻是起始位的开始时刻,开始重新测量每个脉冲的脉冲宽度。当通讯波特率确定后,检测第十位的电平状态,若是低电平,则可确定是11位通讯方式。否则是10位通讯方式。由通讯波特率和通讯方式计算出传送一帧数据的时间。


图3 串行口智能转换器原理图

   通讯接口接收、发送数据的智能控制过程如下:每当监测到主机发送数据的起始位时,单片机输出收、发使能信号(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重复检测发送数据的起始位。当检测到发送数据的起始位时,重复上述的数据发送的控制过程。

3.3 双工通讯方式软件设计

   在RS422双工通讯方式下,接收和发送使能信号始终有效,同时允许接收和发送数据。         


图4  程序流程图

    4 结束语

    电路结构简单、无须外部供电,笔者将它制作成串行口转换器直接插接在串行口插口上即可。它具有通用性强、性能可靠、结构简单、使用方便的特点。该电路使用了电源监测和可编程的看门狗监测定时器,使转换器具有较强的抗干扰能力。该转换器可广泛应用于主从式多机通讯系统。

   参考文献

1. 吴秀清等,微型计算机原理与接口技术,中国科学技术大学出版社,1999.02

2. 李勋,耿德根,AVR单片机应用技术,北京航空航天大学出版社,2002.6

继续阅读
51单片机、AVR单片机和PIC单片机IO口的操作

51单片机、AVR单片机和PIC单片机IO口结构的均不同,导致了IO口操作也不同。操作单片机IO口的目的是让单片机的管脚输出逻辑电平和读取单片机管脚的逻辑电平。下面我们来看看51单片机、AVR单片机和PIC单片机IO口的操作的方法。

一个小经验,让你的AVR单片机功耗超低

休眠电流要最小:掉电模式必须的,然后能关闭的功能全部关闭,关闭BOD检测,关闭看门狗,电压越低越好,1.8V,频率越低越好。

51、AVR与PIC,三种单片机IO口的操作

51单片机、AVR单片机和PIC单片机IO口结构的均不同,导致了IO口操作也不同。操作单片机IO口的目的是让单片机的管脚输出逻辑电平和读取单片机管脚的逻辑电平。下面我们来看看51单片机、AVR单片机和PIC单片机IO口的操作的方法。

14个官方视频教程,助您学习AVR系列单片机

AVR® Insights — 第1集 — AVR存储器 AVR® Insights — 第2集 — 边写边读存储器 AVR® Insights — 第3集 — 端口 AVR® Insights — 第4集 — 休眠模式 AVR® Insights — 第5集 &mdash

关于AVR单片机,你了解多少?

什么是AVR单片机?AVR单片机有什么优点?为什么要选择AVR单片机?

©2019 Microchip Corporation
facebook google plus twitter linkedin youku weibo rss