標(biāo)題: 當(dāng)需要用到RS232和RS485兩個模塊時?如何才能自動切換? [打印本頁]
作者: xiao_yp2014 時間: 2015-6-10 22:40
標(biāo)題: 當(dāng)需要用到RS232和RS485兩個模塊時?如何才能自動切換?
最近做了一個項目,需要用到RS232和RS485(單片機只用一個串口),一般情況下,都是用兩個跳線冒或者是撥碼開關(guān)作硬件切換就可以了,但是,不能打兩個芯片的輸出接在一起,所以這次這個比較特殊,板子是放在一個盒子里面,手動切換就不方便,只有想辦法要么通過軟件,要么通過硬件切換。我還是打算在硬件上面動手,就實現(xiàn)一個簡單的功能,硬件自動切換。后來就想起我當(dāng)初在做電視機維修用到的音視頻通道切換芯片74HC4052。
功能:當(dāng)DB9端口有線連接時,這個時候選擇用RS232。
當(dāng)RS485端口有連接時,選擇用RS485。
所用到的主要器件:
1、RS3232(3.3V芯片)
2、RS3485(3.3V芯片)
3、74HC4052
上面1,2兩種基本上都使用過了,就不需要說了,主要說明一下74HC4052。
74HC4052:是一個雙刀四擲模擬雙向開關(guān)。
引 腳 圖
74HC4052.PNG (38.85 KB, 下載次數(shù): 192)
下載附件
2015-6-10 22:40 上傳
引腳功能:
A0~A3:A通道通道輸入/輸出端
B0~B3:B通道通道輸入/輸出端
AN: A通道公共輸出/輸入端
BN: B通道公共輸出/輸入端
S0,S1:地址端
E:使能端(低電平有效,一般和地接在一起)
VEE:模擬信號接地端(一般和數(shù)字地接在一起)
GND:數(shù)字信號接地端
VCC:電源+
74HC4052相當(dāng)于一個雙刀四擲開關(guān),具體接通哪一通道,由輸入地址碼S0,S1地址端來決定。其真值表如下
電路圖如下:
串口—RS485自動切換.PNG (61.5 KB, 下載次數(shù): 249)
下載附件
2015-6-10 22:40 上傳
工作原理:高電平接通RS232,低電平接通RS485。
RS232的輸出接在74HC4052的A3和B3,因為當(dāng)S0和S1是高電平的時候就接通這兩路。
RS485的輸出接在74HC4052的A0和B0,因為當(dāng)S0和S1是低電平的時候就接通這兩路。
這里需要注意的是,一定不要把串口通信的兩根線弄反了,也就是RXD和TXD兩根線。
S0和S1我是接在DB9針的4腳,因為我的串口線這個引腳是高電平,當(dāng)這個線接上后,4腳會有一個5V的電平(ON_RS232),經(jīng)過R97下拉電阻,提供74HC4052開關(guān)地址選擇信號。就能夠進行通道選擇。
限于能力和水平有限,如有不對之處,請大家指出。。。。。。
作者: hkccd 時間: 2015-6-10 23:37
又長見識了,樓主這個方法非常好。應(yīng)該比用繼電器要穩(wěn)定得多。我以前做類似的都是用繼電器來實現(xiàn)的,結(jié)果壽命普遍不長。不過有個問題請教一下。樓主這樣用4052做波特率最高能支持到多少呢!
作者: xiao_yp2014 時間: 2015-6-11 18:53
具體是多少,沒有測過,項目中是可以用的。
作者: 明白 時間: 2015-6-11 20:26
市面上有RS485轉(zhuǎn)RS232的轉(zhuǎn)換器賣
作者: xuwei 時間: 2015-6-12 01:12
485 232轉(zhuǎn)換器是不能解決樓主大師的問題的。他這個是需要 在程序中判斷以后再轉(zhuǎn)換.
作者: woaidpj 時間: 2015-6-12 13:33
很強大,但是這個4052開關(guān)在接通時,肯定是沒有繼電器般純物理連接那么可靠,不知道穩(wěn)定不。
作者: 明白 時間: 2015-6-12 22:25
74HC4052不在485的電壓范圍內(nèi)
作者: xiao_yp2014 時間: 2015-6-13 21:00
什么意思?
作者: 熾熱灬的心 時間: 2017-7-15 15:45
反過來試試 不知道能不能用 輸出只有兩個端子 通過74HC4052選擇232或485
作者: qing0516 時間: 2022-5-13 09:35
我只想說你5V的電哪里來?常規(guī)的485或者232接口根本沒5V的供電輸出,難道你要讓客戶用你特定的485或者232?
作者: sh1900 時間: 2022-5-14 21:05
只要動作次數(shù)不多,明顯是繼電器更好,雖然壽命短,但不用考慮電壓范圍。
| 歡迎光臨 (http://www.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |