RS-485收发的零延时转换电路
转自:http://www.dzsc.com/data/html/2007-5-28/41097.html
RS-485是一种基于差分信号传送的串行通信链路层协议。它解决了RS-232协议传输距离太近(15m)的缺陷,是工业上广泛采用的较长距离数据通信链路层协议。
由于它使用一对双绞线传送差分信号,属半双工通信,所以需要进行接收和发送状态的转换。一般的8脚TTL电平到RS-485电平转换芯片的引脚定义如图1所示。
![]() |
其中,引脚意义如下:
RO——接收数据的 TTL电平输出;
——低电平有效的接收允许;
DE——高电平有效的发送允许;
DI——发送数据的TTL电平输入;
A——485差分信号的正向端;
B——485差分信号的反向端。
在RS-485电路设计中,通常将和DE短接,用1根信号线来控制,这样可以做到收发的切换。
RS-485芯片通常处于接收状态。当要发送数据时,由程序控制/DE 变为高电平,然后UART单元发送数据,程序要等待发送完毕后,再将RS-485芯片转换到接收状态。发送完毕的标志一般由UART的特定寄存器提供状态指示,程序需要去查询。
在单片机电路中,一般用1根I/O线来控制RS-485芯片的接收和发送状态的转换。这样需要由软件来控制 I/O引脚的电平,以达到控制RS-485收发转换的目的。
这样的控制方法造成RS-485通信存在以下问题:
鉴于以上情况,笔者经过探索和参照其它相关电路,设计了一种可以实现RS-485接收和发送零延时转换的电路,如图2所示。
![]() |
当不发送数据时,TTL电平的Tx信号为高电平,经V1反向为低电平,RS-485芯片处于接收状态。
当发送数据时,① 若Tx为低电平,经V1反向后,DE/为高电平,发送允许。此时由于DI 接地,所以RS-485芯片的输出端A、B产生表示低电平的差分信号,低电平的Tx被送出。② 若Tx为高电平,经V1反向后,DE/为低电平,RS-485芯片的A、B端处于高阻态。此时靠电阻R1和R2的下拉和上拉作用,使总线上产生正的差分信号,从而将Tx的高电平信号送出。
由以上分析看出,在使用这个电路时,只要程序能保证不同时进行接收和发送的操作,即保证是半双工传送数据,程序不必用指令控制DE/进行接收和发送的转换。转换由硬件本身完成。
发送高电平的过程中,由于RS-485芯片处于接收状态,此时的发送信号必须是在总线上其它节点发送数据时,才能将高电平信号送出。所以,仍需要软件设计中做好总线仲裁。
经过在没有严重干扰的实验室中的实验,在使用0.5mm2屏蔽平行线时,此电路的传送距离可达1200m。
RS-485收发的零延时转换电路的更多相关文章
- 【转载】 Jointwave零延时视频传输for FPGA/ASIC进入军工领域
半导体知识产权H.264/H.265 硅IP核供应商Jointwave公司的发布了一系列视频编解码RTL IP核,已经成功应用于军事工业领域的指挥作战,无人机UAV控制,航空和航天摄像机,视频记录黑匣 ...
- 单片机电平转换电路5V 3.3V串口通讯等(转)
源: 单片机电平转换电路5V 3.3V串口通讯等
- 实用的4~20mA输入/0~5V输出的I/V转换电路(转)
源: 实用的4~20mA输入/0~5V输出的I/V转换电路
- 一种简单实用的双向电平转换电路3.3V-5V
当你使用3.3V的单片机的时候,电平转换就在所难免了,经常会遇到3.3转5V或者5V转3.3V的情况,这里介绍一个简单的电路,他可以实现两个电平的相互转换(注意是相互哦,双向的,不是单向的!).电路十 ...
- 简单实用的双向电平转换电路(3.3v-5v)
当你使用3.3V的单片机的时候,电平转换就在所难免了,经常会遇到3.3转5V或者5V转3.3V的情况,这里介绍一个简单的电路,他可以实现两个电平的相互转换(注意是相互哦,双向的,不是单向的!).电路十 ...
- RS485模块(485与TTL信号的转换)
1 综述 MAX3483, MAX3485, MAX3486, MAX3488, MAX3490以及MAX3491是用于RS-485与RS-422通信的3.3V,低功耗收发器,每个器件中都具有一个驱动 ...
- 泓格WINPAC主机与第三方模块rs 485 modbus rtu通信测试
开发语言:C# 开发环境:VS2008(支持WINCE开发的最后一个版本) 运行环境:Windows CE 5.0~7.0 项目说明:多台涨格winpac系列的主机,原来使用泓格SDK开发的程序,采集 ...
- RS-485半双工延时问题
学习485总线时,遇到延时问题,困扰很久.通过学习知道了485半双工收发时必须延时,以保证系统的稳定性.可靠性.好多资料都介绍了485 防静电.抗干扰电路.惟独没提 每一帧收发停止位(或第9位)的延时 ...
- TTL和COMS电平匹配以及电平转换的方法
一.TTL TTL集成电路的主要型式为晶体管-晶体管逻辑门(transistor-transistor logic gate),TTL大部分都采用5V电源.1.输出高电平Uoh和输出低电平UolUoh ...
随机推荐
- Django 基于Ajax & form 简单实现文件上传
前端实现 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="U ...
- Android系统移植与调试之------->如何修改Android设备添加重启、飞行模式、静音模式等功能(二)
今天要说的是为Android设备添加重启.飞行模式.静音模式按钮,客户需求中需要添加这项功能,在长按电源键弹出的菜单中没有这些选项,谨以此文记录自己添加这个功能的过程. 首先找到长按电源键弹出的对话框 ...
- 正则表达式 匹配符合A表达式切不符合B表达式的字符串
有一道这样的面试题 写一个Java方法,利用正则表达式判断输入str中包含字符串”ios“或”apple“(大小写不敏感),但不包括”mediaplayer“.如果满足条件,返回所包含的字符串”ios ...
- Android LockScreen (锁屏弹窗)
在要弹窗的Activity需要进行以下设置,才可以在锁屏状态下弹窗 @Override protected void onCreate(Bundle savedInstanceState) { fin ...
- Redis QPS测试
1.计算qps: 1)redis发布版本中自带了redis-benchmark性能测试工具,可以使用它计算qps.示例:使用50个并发连接,发出100000个请求,每个请求的数据为2kb,测试host ...
- Docker alpine 设置东八时区
FROM alpine:3.8 RUN echo 'http://mirrors.ustc.edu.cn/alpine/v3.5/main' > /etc/apk/repositories &a ...
- import from 'xxx'是如何找到node_modules目录下的
起初我认为这是ES6或者Webpack的语法,但查阅相关API后并没有相关说明,通过进一步地搜索,才知道这是Node模块系统的约定和实现(Webpack打包工具是兼容node模块系统的,自然遵守相关规 ...
- 第六篇 javascript面向对象
一.闭包 闭包是指可以包含自由(未绑定到特定对象)变量的代码块. 「闭包」,是指拥有多个变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分. 闭包是个函数,而它「记 ...
- stack-铁轨问题
每辆火车都从A方向驶入车站,再从B方向驶出车站,同时它的车厢可以进行某种形式的重新组合.假设从A方向驶来的火车有n节车厢(n<1000),分别按顺序编号为1,2,...,n.假定在进入车站之前每 ...
- Havel-Hakimi定理 POJ1659
对于图的所有顶点,计算出每个顶点的度,度序列.给定一个序列判断序列是否可图. #include<cstdio> #include<algorithm> #include< ...

