标题: 当需要用到RS232和RS485两个模块时?如何才能自动切换? [打印本页]
作者: xiao_yp2014 时间: 2015-6-10 22:40
标题: 当需要用到RS232和RS485两个模块时?如何才能自动切换?
最近做了一个项目,需要用到RS232和RS485(单片机只用一个串口),一般情况下,都是用两个跳线冒或者是拨码开关作硬件切换就可以了,但是,不能打两个芯片的输出接在一起,所以这次这个比较特殊,板子是放在一个盒子里面,手动切换就不方便,只有想办法要么通过软件,要么通过硬件切换。我还是打算在硬件上面动手,就实现一个简单的功能,硬件自动切换。后来就想起我当初在做电视机维修用到的音视频通道切换芯片74HC4052。
功能:当DB9端口有线连接时,这个时候选择用RS232。
当RS485端口有连接时,选择用RS485。
所用到的主要器件:
1、RS3232(3.3V芯片)
2、RS3485(3.3V芯片)
3、74HC4052
上面1,2两种基本上都使用过了,就不需要说了,主要说明一下74HC4052。
74HC4052:是一个双刀四掷模拟双向开关。
引 脚 图
引脚功能:
A0~A3:A通道通道输入/输出端
B0~B3:B通道通道输入/输出端
AN: A通道公共输出/输入端
BN: B通道公共输出/输入端
S0,S1:地址端
E:使能端(低电平有效,一般和地接在一起)
VEE:模拟信号接地端(一般和数字地接在一起)
GND:数字信号接地端
VCC:电源+
74HC4052相当于一个双刀四掷开关,具体接通哪一通道,由输入地址码S0,S1地址端来决定。其真值表如下
电路图如下:
工作原理:高电平接通RS232,低电平接通RS485。
RS232的输出接在74HC4052的A3和B3,因为当S0和S1是高电平的时候就接通这两路。
RS485的输出接在74HC4052的A0和B0,因为当S0和S1是低电平的时候就接通这两路。
这里需要注意的是,一定不要把串口通信的两根线弄反了,也就是RXD和TXD两根线。
S0和S1我是接在DB9针的4脚,因为我的串口线这个引脚是高电平,当这个线接上后,4脚会有一个5V的电平(ON_RS232),经过R97下拉电阻,提供74HC4052开关地址选择信号。就能够进行通道选择。
限于能力和水平有限,如有不对之处,请大家指出。。。。。。
作者: hkccd 时间: 2015-6-10 23:37
又长见识了,楼主这个方法非常好。应该比用继电器要稳定得多。我以前做类似的都是用继电器来实现的,结果寿命普遍不长。不过有个问题请教一下。楼主这样用4052做波特率最高能支持到多少呢!
作者: xiao_yp2014 时间: 2015-6-11 18:53
具体是多少,没有测过,项目中是可以用的。
作者: 明白 时间: 2015-6-11 20:26
市面上有RS485转RS232的转换器卖
作者: xuwei 时间: 2015-6-12 01:12
485 232转换器是不能解决楼主大师的问题的。他这个是需要 在程序中判断以后再转换.
作者: woaidpj 时间: 2015-6-12 13:33
很强大,但是这个4052开关在接通时,肯定是没有继电器般纯物理连接那么可靠,不知道稳定不。
作者: 明白 时间: 2015-6-12 22:25
74HC4052不在485的电压范围内
作者: xiao_yp2014 时间: 2015-6-13 21:00
什么意思?
作者: 炽热灬的心 时间: 2017-7-15 15:45
反过来试试 不知道能不能用 输出只有两个端子 通过74HC4052选择232或485
作者: qing0516 时间: 2022-5-13 09:35
我只想说你5V的电哪里来?常规的485或者232接口根本没5V的供电输出,难道你要让客户用你特定的485或者232?
作者: sh1900 时间: 2022-5-14 21:05
只要动作次数不多,明显是继电器更好,虽然寿命短,但不用考虑电压范围。
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |