datasheet

采用C8051F020的RS485串行通信电路设计

2016-10-07来源: eefocus关键字:C8051F020  RS485  串行通信
  随着计算机技术和测控技术的不断发展,在以单片机为核心的数据采集系统中,需要实现单片机和计算机之间的数据交换,并以此来发挥单片机和计算机各自的长处,提升整个系统的性能价格比。在计算机网络和工业控制系统中,经常需要采用串行通信来实现远程数据传输。

    目前,有多种接口标准可用于串行通信,包括RS232、RS422、RS485等。RS232是最早的串行接口标准,在短距离、较低波特率串行通信中得到了广泛应用。但是,RS232 通信存在着传输速度慢、传输距离短、信号容易受到干扰等不足,其应用局限性已日益突出。而RS485 通信采用差分方式来消除噪声,即信号在发送前会分解为正负2 条线路,当到达接收端时将信号相减,使噪声相互抵消,还原成原来的信号,这种方式对共模干扰抑制能力较强,已广泛应用于工业控制等领域。

  要实现单片机与计算机之间的RS485通信,一般可以采用2 种方法:一种方法是在单片机与计算机两端分别采用RS232与RS485 电平转换装置;另一种方法是采用RS485通信卡,并将其插在计算机主板上。采用前一种方法的优点是硬件装置安装简便,软件编程相对简单;缺点是通信速率被限制在20 kb/s以内。第二种方法的优点是通信距离较远,速率较高,可达10 Mb/s;缺点是需要安装通讯卡和驱动程序,并进行必要的设置。本文采用第二种方法。

  电路设计

  采用UART 串行总线进行通信,因为UART 是一种广泛应用于远距离、低速率、低成本通信的串行传输接口,由于其具有数据线少的特点,在数字系统设计中得到了大量应用。基本的UART 通信只需要两根数据线(RXD、TXD)即可完成数据的相互通信,接收和发送都是全双工形式,其中RXD 是接收端,TXD 是发送端。

  采用C8051F020的RS485串行通信电路设计

  C8051F020单片机有2 个UART(UART0 和UARTl),以UART0 为例,它的TxD 和RXD 分别与数字I/0 引脚PO.O 和PO.1 复用,通过交叉开关配置寄存器进行选择。由于MAX485工作在半双工状态,它与单片机连接时的接线比较简单,只需要用单片机某一个引脚(如PO.2)来控制RE 和DE 这2 个引脚。PCL-846B 通信卡有4 个通道,选择通道1 与单片机进行通信,另外将通道2 和通道4 进行连接,以自发自收的方式实现通信卡的自检。单片机与外部电路的连接关系如图2 所示。

  在使用RS485通信卡进行通信时,当信号传递到通信线路两端时,如果阻抗不匹配,可能会产生信号反射问题。信号反射会造成信号的失真和变形,从而导致通信错误。其解决方法就是在通信线路的两端各连接一个终端匹配电阻,保证阻抗匹配。当通信距离较短, 一般在小于300 m 时,可不使用终端电阻。当通信距离大于300 m 时,应当使用终端电阻,其阻值必须与通信线路的线性阻抗相同。电阻值一般选取120 Ω左右,当通信距离较长时,可以选用300 Ω。

关键字:C8051F020  RS485  串行通信

编辑:什么鱼 引用地址:http://www.eeworld.com.cn/mcu/article_2016100730183.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于DS18B20和nRF2401的库区测温网络无线传输系统
下一篇:基于单片机的血压远程诊断系统的设计

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM32F103RC硬件I2C从入坑到出坑

第一天手上有啥资源可利用的?1.一块MPU60502.一块stm32f103rc最小系统版,上面移植了ucos3,跑了几个任务,包括一个LCD任务(优先级最低)3.st的固件库4.ALIENTEK的MPU6050例程5.stm32各种数据手册文档,ucos各种资料好,开工。先阅读stm32数据手册了解研究I2C模块原理架构,懵懵懂懂,若有所知的样子,行了不看了。然后看看ALIENTEK的MPU6050例程。咦?怎么是用软件模拟I2C?stm32集成了I2C控制器都不用,这么浪费,不看了。。。还是再看一下,看看MPU6050大致是怎么操作的。大概就是有个设备地址0x68,有很多寄存器,数据通信通的就是寄存器的数据,每次传输数据都是
发表于 2019-04-08
STM32F103RC硬件I2C从入坑到出坑

stm32f3的i2c使用小结

这几天拿到了stm32f3discovery,拿到手的第一件事就是测试了硬件i2c,使用stm32cube生成库,测试对象为AD5934与ADG715。经过两天的调试,完美调通。中间也碰到了些问题。1、一开始用的I2C1,一仿真就会出现死机的情况。        由于I2C1与swd接口重合,所以调用HAL_I2C_Init()函数后就死机,改成I2C2后问题解决。2、无法访问指定地址的设备        库函数中的入口地址并不是7bit地址,需要输入8bit。我的设备地址为13,始终无法访问设备,改为26后解决。3、可以读写单个地址的数据
发表于 2019-04-02

stm32F103模拟I2C读写24c02

/*********文件名:i2c_ee.h**********//* Define to prevent recursive inclusion ------------------------------------ */#ifndef __I2C_EE_H#define __I2C_EE_H/* Includes ------------------------------------------------------------------*/#include "stm32f10x.h"/* Exported macro
发表于 2019-04-02

STM32F030 I2C 从模式中断编程

第一次用I2C的从模式,之前用的是主模式,用的IO模拟的,在很多设备都用上了,没什么问题。在使用I2C从模式之前,也在网上看到很多人说这个是坑。自己花了几天的时间,终于跳过了这个坑,再次总结下:1. 最困难的地方:因为需要两个平台对接,主端用的是LINUX系统,芯片是TI335X,从端是STM32F030,我两端的程序都没写过,所以出现问题了,无法判定是哪一边的问题,这个很痛苦。2. 例子。虽然“拿来主义”不太厚道”,但是站在巨人的肩膀上,往往是最快的。1) STM32F030的代码:http://www.openedv.com/forum.php?mod=attachment&aid
发表于 2019-04-02

stm32f1xx i2c通讯故障可能原因

在做i2c通讯时,总时出现一些故障,现在对故障进行总结:1.程序停在while (I2C_GetFlagStatus(I2C1, I2C_FLAG_BUSY)) ,是i2c总线忙碌。当我们 要是用i2c总线时,i2c的时钟线和数据线都应该为高电平,stm32默认的i2c引脚自带了高电平,如果是重映射的就需要我们 自己确认引脚是否是高电平,还有一个原因是i2c的gpio模式选择不对,应该选择复用开漏输出。2.程序停在while (!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED))时,是主模式发送选择不正确。我们先要确认硬件的i2c总线上的所有地线是否
发表于 2019-04-02

STM32F103C8T6驱动ov2640拍照串口传输到上位机

使用环境(蓝色粗体字为特别注意内容)1、软件环境:Keil MDK 5.152、硬件环境:STM32F103C8T6最小系统,OV2640摄像头模块最近想玩玩摄像头,于是在网上找找性价比比较高的摄像头,之前用过OV7670这款摄像头,不过这款摄像头对单片机要求较高,一般的单片机驱动起来非常费劲,除非ARM级别的微处理器才能够胜任。要想使用低端单片机驱动的话需要加上FIFO模块,一加上这玩意价格就翻了3倍。。。。原来20块钱的东西涨到了70+,我的天。。。。于是找了大半天,终于找到OV2640这款摄像头,这摄像头是我目前遇到的性价比最高的摄像头了,竟然支持直接输出JPG格式的图片,最高支持1600*1200(200W)像素!!!价格
发表于 2019-03-18
STM32F103C8T6驱动ov2640拍照串口传输到上位机

小广播

何立民专栏

单片机及嵌入式宝典

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

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved