RS232转RS485电路图分析
在电子发烧友网站上,看到RS232转RS485的一个电路图,如下图所示。元件主要是HN232CP和MAX485CPA,也就是TTL转232电路和TTL转485电路的结合体。可是这个电路却不好分析,几经查找与思考,才得到一点觉悟。

此电路在使用时,PC机RS232公口或者标准串口接“直连串口通讯线”的一端,串口线的另一端接接该电路最左端的RS232接口上;右端就是RS485输出端。注意串口通讯线分为“直连线”和“交叉线”,这里用的是“直连线”。这是因为标准串口的2脚、3脚分别为“接收端”和“发送端”。该电路的发送端(T1OUT)和接收端(R1IN)分别接的是3脚和2脚,已经对发送端和接收端进行了交叉调换,所以用直连线就可以了。
在正式分析之前,先看一下HIN232的结构框图,有助于我们接下来的分析。当然此结构图也就是电平转换,但需要注意的是信号的流向,从哪儿进来,又从哪儿出去。此外,RS232是负逻辑电平,我们可以认为逻辑“1”的时候,RS232对应的是-12V;逻辑“0”,RS232对应的是+12V。


以RS232端作为参考端,在接收时,数据从RS485端向左通过转换电路中绿线所示的通路流向RS232端。处于接收状态的接收端,不会发送数据,也就是处于等待状态,此时TX管脚输出逻辑1(协议规定)。TX在串口公口上对应的引脚是管脚3,RS232是负逻辑,所以输出-12V,经过反相调整后输出TTL高电平,约4.6V。再经过三极管的Q1反相,输出低电平,RE、DE都为低电平的时候,MAX485处于接收状态。

发送的情况有些复杂,需要耐心分析。数据从RS232端向右通过转换电路中蓝线所示的通路流向RS485端。当输出逻辑低电平,TX(3管脚)对应输出+12V,经过反向调整输出TTL低电平,约0.4V。再经过三极管的Q1反相,输出高电平,RE、DE都为高电平的时候,MAX485处于发送状态,可以正确的将逻辑低电平发送。

倘若输出逻辑高电平的时候,TX(3管脚)对应输出-12V,经过反向调整输出TTL高电平,约4.6V。再经过三极管的Q1反相,输出低电平,RE、DE都为低电平的时候,MAX485处于接收状态,如何会将1发送出去呢?


MAX485发送和接收逻辑电平转换关系表

从转换关系表--左图中,可以看出当RE、DE都为低电平的时候,输出为高阻态,也就是说此时485总线是处于高阻态。当232转485电路发送的时候,最右边的总线节点处于接收状态,意味着此节点上的max485cpa的RE、DE都为低电平(通常我们把RE、DE短接)。从转换关系表--右图中可以看出,485总线高阻态的时候,它接收的结果是1。这不正是我们要发送的数据吗。
或许人提出这样的疑问:既然转换电路中的max485都已经处于接收状态了(RE、DE都为低电平),为何又说它在发送数据1?这是由于一帧数据的发送,包括起始位0、有效数据区、停止位等。从左边向右边传输1帧数据的时候,肯定会先发起始位0以同步右边的接收器。紧接着,加入发送数据1,虽然转换电路中的max485处于接收状态,虽然此时的总线为高组态,但是右边的接收器仍然要把这个高组态翻译成1,并且保存起来,只是因为这个传送已经启动,要把一帧数据完全接收。
所以,可见这样的发送,是从最右端接收数据的角度来说。整个发送过程,转换电路中的max485可能不断的切换发送与接收的状态,但是从接收端来讲,始终是在接收数据,这是行的通的。
参考网页:RS232转RS485电路图
RS232转RS485电路图分析的更多相关文章
- RS-232, RS-422, RS-485 Serial Communication General Concepts(转载)
前面转载的几篇文章重点介绍了UART及RS-232.在工控领域除了RS-232以外,常用的串行通信还有RS-485.本文转载的文章重点介绍了RS-232.RS-422和RS-485. Overview ...
- TTL、RS232、RS485、串口
Point: 1.串口.COM口是指的物理接口形式(硬件).而TTL.RS-232.RS-485是指的电平标准(电信号). 2.接设备的时候,一般只接GND RX TX.不会接Vcc或者+3.3v的电 ...
- RS232与RS485时序分析
转载于:RS232,RS485波形分析 经常遇到初学者,对单片机串行通讯出了问题不知道如何办的情况.其实最有效的调试方法是用示波器观察收发数据的波形.通过观察波形可以确定以下情况: 是否有数据接收或发 ...
- 无源RS232转RS485(转)
源:无源RS232转RS485 RS232 -485转换器主要包括了电源.232电平转换.485电路三部分.本电路的232电平转换电路采用了NIH232或者也可以直接使用MAX232集成电路,485 ...
- UART\RS232与RS485的关系
https://blog.csdn.net/lhl161123/article/details/53510593 串口通讯是电子工程师面对的最基本的一个通讯方式,RS-232是其中最简单的一种.然而, ...
- 串口、COM口、TTL、RS-232、RS-485区别详解
1.串口.COM口是指的物理接口形式(硬件).而TTL.RS-232.RS-485是指的电平标准(电信号). 2.接设备的时候,一般只接GND RX TX.不会接Vcc或者+3.3v的电源线,避 ...
- 【转】RS232、RS485、TTL电平、CMOS电平
原文网址:http://blog.sina.com.cn/s/blog_63a0638101018grc.html RS232.RS485.TTL电平.CMOS电平 什么是TTL电平.CMOS电平.R ...
- UART和RS232/RS485的关系,RS232与RS485编程
http://wpp9977777.blog.163.com/blog/static/4625100720138495943540/ 串口通讯是电子工程师和嵌入式开发工程师面对的最基本问题,RS232 ...
- RS232、RS485和TTL电平与串行通信
RS232.RS485和TTL 作为一个底层软件开发工程师,经常会碰到RS232.RS485和TTL这一类的问题. 之前总是碰到问题之后Google一下,把当下的问题解决了之后就不管了,过个一两天就忘 ...
随机推荐
- Bleed Brake Master Cylinder with Intelligent Tester IT2
When the brake fluid level drops too low in the master cylinder reservoir, air bubbles can get caugh ...
- focus on these tools
http://www.oschina.net/p/dubbo http://www.blogjava.net/hispark/archive/2008/12/01/243310.html http:/ ...
- [置顶] 运算符重载,浅拷贝(logical copy) ,vs, 深拷贝(physical copy),三大件(bigthree problem)
一般的我们喜欢这样对对象赋值: Person p1;Person p2=p1; classT object(another_object), or A a(b); classT object = ...
- Chomp!游戏 (组合游戏Combinatorial Games)
http://blog.csdn.net/acdreamers/article/details/17021095 有一个n*m的棋盘,每次可以取走一个方格并拿掉它右边和上面的所有方格.拿到左下角的格子 ...
- 【转】The content of element type "configuration" must match "(properties?,settings?,typeAliases?,typeHandlers?,objectFactory?...
[转]The content of element type "configuration" must match "(properties?,settings?,typ ...
- arguments 函数内部属性
1.arguments 是在function方法里面的,是实参数组,用法是挺多的,下面来记录一下 2.利用arguments实现方法的重载 //01.使用argument模拟方法重载 function ...
- sqlserver 理解数据集
数据集分四类: 1.A∩B,既是所求数据集既在A中,又在B中 2.A∪B,既所求数据在数据集A中,或在数据集B中 3.A-B,既所求数据在数据集A中,不在数据集B中 4.B-A,既所求数据在数据集B中 ...
- sQL语言分类 DML、DDL、DCL区别
总体解释:DML(data manipulation language): 它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据 ...
- Android Metro风格的Launcher开发系列第一篇
前言:从毕业到现在已经三年多了,回忆一下这三年基本上没有写过博客,总是觉得忙,没时间写,也觉得写博客没什么大用.但是看到很多大牛们都在写博客,分享自己的东西,所以嘛本着向大牛看齐,分享第一,记录第二的 ...
- ios code style
注释 建议使用VVDocumenter插件 多行注释 格式: /** 注释内容 */ 单行注释 格式: ///在对文件.类.函数进行注释时推荐使用多行注释,在函数体内对代码块进行注释时,使用单行注释 ...