RS485/RS232转换器实现PC机和单片机之间的串行通信

发布者:TranquilMind最新更新时间:2012-02-15 来源: 电子元器件应用关键字:RS485  RS232  转换器  串行通信 手机看文章 扫描二维码
随时随地手机看文章

1、RS485串行通信接口电路的总体设计

  在电参数仪的设计中,数据采集由单片机AT89C52负责,上位PC机主要负责通信(包括与单片机之间的串行通信和数据的远程通信),以及数据处理等工作。在工作中,单片机需要定时向上位PC机传送大批量的采样数据。通常,主控PC机和由单片机构成的现场数据采集系统相距较远,近则几十米,远则上百米,并且数据传输通道环境比较恶劣,经常有大容量的电器(如电动机,电焊机等)启动或切断。为了保证下位机的数据能高速及时、安全地传送至上位PC 机,单片机和PC机之间采用RS485协议的串行通信方式较为合理。

  实际应用中,由于大多数普通PC机只有常用的RS232串行通信口,而不具备RS485通信接口。因此,为了实现RS485协议的串行通信,必须在PC机侧配置RS485/RS232转换器,或者购买适合PC机的RS485卡。这些附加设备的价格一般较贵,尤其是一些RS485卡具有自己独特的驱动程序,上位PC机的通信一般不能直接采用WINDOW95/98环境下有关串口的WIN32通信API函数,程序员还必须熟悉RS485卡的应用函数。为了避开采用RS485通信协议的上述问题,我们决定自制RS485/RS232转换器来实现单片机和PC机之间的通信。

  单片机和PC机之间的RS485通信硬件接口电路的框图,如图1所示。

  从图1可看出,单片机的通信信号首先通过光隔,然后经过RS485接口芯片,将电平信号转换成电流环信号。经过长距离传输后,再通过另一个RS485接口芯片,将电流环信号转换成电平信号。

  该电平信号再经过光电隔离,最后由SR232接口芯片,将该电平信号转换成与PC机RS232端口相兼容的RS232电平。由于整个传输通道的两端均有光电隔离,故无论是PC机还是单片机都不会因数据传输线上可能遭受到的高压静电等的干扰而出现“死机”现象。

2、接口电路的具体设计

2.1单片机侧RS485接口电路的设计

  单片机侧RS485接口电路如图2所示。

  AT89C52单片机的串行通信口P30(RXD)和P31(TXD)的电平符合TTL/CMOS标准(逻辑“0”的电平范围为 0V~0.8V,逻辑“1”的电平为24V~VCC),它们首先通过光电隔离器件6N137隔离,以保护单片机不受传输通道的干扰影响,其中T01和 T02是为了增加光隔输入端的驱动能力。光隔6N137的左侧电源与单片机相同,右侧必须采用另一组独立的+5V电源,且两组电源不能供电。

 

图2单片机侧RS485接口电路

图3MAX490的内部结构

  MAX490[4]是MAXIM公司的RS485接口芯片,其内部结构如图3所示。MAX490支持单电源+5V工作,传输速率最高可达25MBPS,可实现全 双工通信。其RO、DI端的逻辑“0”的电平在 -0.5V~0.8V之间,逻辑“1”的电平在20V~VCC之间。输出电流环的电流在150μA~500μA之间。其工作状态为:当A 端电压比B端电压高200mV以上,RO输出逻辑“1”,当A端电压比B端电压低200mV,RO输出逻辑“0”;当DI为逻辑“0”,输出Y低、Z高,当DI为逻辑“1”,输出Y高、Z低。图2中的电阻器RRS为MAX490的终端匹配电阻器。

2.2PC机侧RS485/RS232转换器的设计

  RC机侧RS485/RS232转换器的电路如图4所示。

  该电路首先通过MAX490芯片将单片机侧经远距离传输的电流环信号转换成TTL/CMOS标准的电平信号,然后通过光隔6N137隔离,得到两个同样是与TTL/CMOS电平相兼容的电平信号;最后,经RS232芯片转换成 RS232电平:其中RS232电平的逻辑“0”的电平范围为-5V~-15V,逻辑“1”的电平范围为+5V~+15V。这里RS232电平转换芯片选用MAXIM公司的MAX232A[4],该芯片采用单电源(+5V)供电,RS232电平由内部电荷泵产生,其内部结构如图5所示。

 

 

图5MAX232A的内部结构

 

  在RS485/RS232转换器的设计过程中需要特别注意的是电源的设计。单片机侧和PC机侧的RS485芯片理论上可共用一个电源。实际上,如果稳压电路安装在单片机侧,同时又将此电源直接拉至PC侧的RS485/RS232转换器中,由于电源线可能长达上百米,电源线的线径又不可能选得很粗。如此远距离的传输将会导致电源电压在PC机侧有一个很大的落差,这样,有可能造成PC机侧的MAX490或光隔IC702工作不正常。一个比较好的解决办法是首先直接将单片机侧变压器输出的交流信号经长距离传输至RS485/RS232转换器,然后经整流和稳压,作为PC机侧MAX490和光隔 IC702的供电电源。此外,RS232和光隔左侧的供电电源PCVCC可以利用PC机内部开关电源的+5V输出,或者由外部稳压电源提供。

3、通信软件的设计

  利用上述硬件通信电路,可以实现符合RS485协议的串行通信,同时又对软件的编写没有任何额外要求,因为本电路改变了传输通道的信号传输方式。单片机侧的通信可以采用查询方式或串行中断方式。在电参数测试仪中,为了保证上位机和下位机之间时序的严格一致,我们采用了查询方式,这部分程序的编写较简单,具体可参阅文献[1][3]。PC机侧WINDOWS环境下的通信程序,可直接利用VC++提供的相应于串口的API函数完成RS232 通信编程,具体可参阅文献[2][3]。

  由于数据传输是在强干扰的环境中进行的,而且传输距离又较远,为了保证数据能高速、准确传输,软件编程时可以考虑对大批量的数据进行分组传送,同时对每组数据进行和校验,检查其传输的准确性。在实际使用中,设定每组数据的数据头为单字节0AAH,中间为256个字节的采样数据,数据最后一个字节为和校验结果。PC机每接收到一组数据,均要进行再次和校验,,然后将PC机的校验结果和单片机的校验结果(该组数据的最后一个字节)相比较,若两者不等则校验失败,PC机给单片机发重传命令,要求单片机重传本组数据;若两者相等则校验正常,PC机给单片机发确认认号,并准备接收下一组采样数据,单片机则开始新一轮采样。

4、实际应用

  在电参数测试仪的工作过程中,大约每隔一分钟单片机和上位PC机之间就要经过多次命令和数据的双向传递,其数据量较大,每次约有7k字节左右。本系统单片机选用ATMEL公司的AT89C52,晶振频率为110592MHz,串行通信方式为模式1,通信速率为57.6kBPS。上位机的通信和数据处理程序采用VC++6.0编写。单片机和PC机之间的距离约100米左右,传输线由普通的多芯电源线替代,且经过有电焊机、电动机、高压静电发生器等频繁起动的场合。采用上述硬件通信电路,同时考虑编程时的软件纠错,该仪器经过多次24小时的不间断运行,都没有发生过死机现象,工作一切正常。调试时,通过观察上位PC机中设置的数据重传计数器,发现数据重传次数极少。

  实践证明本文设计符合RS485协议的串行通信电路,可以满足高速率、高可靠、远距离的串行通信,同时价格又比较便宜,不失为一种较为理想的串行通信方案。

关键字:RS485  RS232  转换器  串行通信 引用地址:RS485/RS232转换器实现PC机和单片机之间的串行通信

上一篇:采用单片机设计温湿度控制仪
下一篇:编制单片机应用程序的步骤和难点

推荐阅读最新更新时间:2024-03-16 12:53

便携产品用新型电源DC-DC转换器
为了减小体积和重量,低功耗便携产品如PDA、掌上电脑、寻呼机和便携式测量仪表等大多采用数量有限的电池供电。这就存在两个重要问题:首先是随着电池放电,其端电压会明显降低;其次是电池具有一定内阻,而且随着放电内阻逐渐增大,在负载发生变化时造成输出电压的变化。为保证系统稳定、可靠地工作,需要一个稳定的电源电压。 由于大多数情况需要提升电池电压,简单的三端线性稳压器无法满足要求,只能采用升压型开关稳压器。但是传统的开关电源设计电路复杂、体积庞大、自身功耗较大,无法在体积和功耗要求严格的便携式产品中使用。针对这个问题,Maxim公司研制了一系列高集成度电源管理方案。其中,新近推出的MAX1678、MAX1674/MAX1675/M
[电源管理]
PIC的A/D转换器
PIC16C7X (除710/71/711以外) 当ADCON1配置为将所有模拟引脚设置为数字I/O时,VREF内部接地。这将导致每次执行模拟转换时, ADRES寄存器均读出0xFF值,这是由于每个输入电压均高于VREF的缘故。 PIC16C7X系列器件之一,发现模拟数字转换结果并不总是准确的。如何才能改善精确度呢? 1. 确信所有定时规范均得到满足。如果您将ADC关闭后打开,应至少等待一个最小延时时间后才可采样;如果您改变输入通道,也应等待一个最小延时;最后是Tad,即为每个位转换所选择的时间。这一时间在ADCON0内做出选择,应在2到6us之间。如果Tad太短,转换结束时,结果尚未被完全转换,而如果Tad太长,转换结束前采样电
[单片机]
Flex Power Modules BMR492 系列添新品
Flex Power Modules BMR492 系列添新品,1/8砖模块可提供高达1100W峰值功率 • 1/8砖封装10.4V/700W和12V/800W新产品 • 高达950W和1100W的额定峰值功率 • 40~60V输入 • 1500VDC 隔离电压 • 非常高的效率 Flex Power Modules 宣布,已经发布的通孔式数字稳压隔离总线转换器BMR492 系列,新增两种更高功率产品BMR4920100/001 和 BMR4920300/864。其中BMR4920100/001 在 40~60V输入 (80V/100 ms) 时的额定输出为10.4V/67.4A,并可以在不到 1 秒的时间内提供高达950
[电源管理]
PIC单片机与PC机串行通信模块的程序设计
串口通信程序设计   (1)PC机串口中断响应函数。 (2)单片机中串口的调试程序 (1)包含必要的头文件及定义程序需要到全局变量。
[单片机]
PIC单片机与PC机<font color='red'>串行通信</font>模块的程序设计
传感器与转换器谁匹配谁?
就模拟转换器系统而言,您会选择的初始设计方法可能是查看需要的精度,然后使用一个能够获得相应精度的ADC。为了达到要求的准确度或精度,需要给系统加装一些必要的增益模块,以便让有效模拟范围覆盖ADC的动态范围。 但是,我们还可以选择另一种方法。您可以使用一个24位转换器来消除增益模块及其产生的补偿、漂移和噪声(您会在12位到16位系统中找到他们)。24位转换器是一款更为简单的解决方案。另外,您还可以在相同或者更低成本的情况下获得更高的性能。 您或许可以只使用24位ADC范围的一部分便能够完成设计。是的,没错,您可能会去掉一些位!在这种情况下,您仍然能够达到或者提高原始12或16位系统的分辨率和精度。相比12位ADC,24位转换器拥
[传感器]
关于STM32串口调试RS485时自动进入接收中断
先说一下软硬件: 硬件:主控stm32c8t6、485芯片为隔离型芯片ADM2483,调试工具是usb转485接到PC端。 软件:采用库函数开发,开发工具为IAR 7.10,485接的是stm32的串口1(收发都是用中断方式),半双工模式, 协议是MODBUS RTU。 先说明本人是菜鸟,在不断得学习中,欢迎指出错误。 最近在调试RS485时发现一个问题,如果在串口初始化时就使能了发送中断和接收的话,那么在发送一个字节后就会自动进入接收中断。可能是收发的机制没有定好,所以后面采用的方式是在初始化时使能了接收中断,关闭发送中断,在需要发送数据的时候再开启发送中断,发送的时候关闭接收中断,发送完一帧再使能接收中断。这样就可以完整地发送
[单片机]
真有效值AC/DC转换器AD736及其在RMS仪表电路中的应用
    摘要: 随着集成电路的迅速发展,近年来出现了各种真有效值AC/DC转换器。美国AD公司的AD736是其中非常典型的一种。它具有准确性高、灵敏度好、测量速率快、频率特性好、输入阻抗高、输出阻抗低、电源范围宽以及功耗低等特点。本文介绍了AD736的工作原理及使用要点,给出了以该芯片为核心构成的RMS仪表设计电路。     关键词: 真有效值 RMS AC/DC转换器 测量 AD736 1 概述 在科学实际和生产实践中,会遇到大量的非正弦波。传统测量仪表采用的是平均值转换法来对其进行测量,但这种方法存在着较大的理论误差。为了实现对交流信号电压有效值的精密测量,并使之不受被测波形的限制,可以采用真有效值转
[应用]
用于便携设备闪光灯与白光LED驱动的智能直流/直流转换器
   引语   PDA、手机等便携设备集成多种功能是最新的发展趋势,而且这些设想目前已经变成了现实。   今天,很难再找到一个只有接打电话功能的手机。通话功能是手机原始的“史前”目标。MP3/MP4播放器、有线互连(USB和USB-OTG)、无线互连(IrDA、蓝牙和Wi-Fi)、GPS导航,以及最近推出的数字视频广播,这些都是手机配备的最新、最有吸引力的功能。   不过,一个能够照相和召开视频电话会议的优质相机模块才是今天每款手机最常见的功能。   相机模块过去因为图像分辨率不好,价值只比简单的玩具高点有限,但是,今天的相机模块变得越来越复杂,图像质量接近了最先进的数码相机的水平。因为相机模块在低光条件下拍照必需有光源,再加高
[电源管理]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved