|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
串口多機通信,請教大家一個問題 |
| 作者:remex2005 欄目:單片機 |
我的串口通過MAX232與外面的儀器相連,連接的方法是: MASTER PROCESS RX與Slave1 PROCESS TX,Slave2 PROCESS Tx直接相連(沒有加上拉電阻,由于MAX232是正負9伏輸出,也不知道該如何加。) MASTER PROCESS Tx與Slave1 PROCESS Rx,Slave2 PROCESS Rx直接相連,工作在模式3(非固定波特率9位) 現(xiàn)在的問題是,當外只接一個從機的時候,通信正常,接上兩個從機后,主機發(fā)送的數(shù)據(jù),從機能正確接收,而從機往主機發(fā)的數(shù)據(jù),主機卻收不到。:( 后來自己分析了一下,估計是兩個Tx直接相連,輸出沖突了,不知道我的分析對不,另外該如何修正,原來都是作軟件,第一次搞硬件,還請大家多多指教,我知道這里有很多牛人,呵呵。 |
| 2樓: | >>參與討論 |
| 作者: computer00 于 2005/7/25 19:11:00 發(fā)布:
你直接在RS232輸出那里并聯(lián)?RS232兩個輸出不可以并聯(lián)的 你可以改為在單片機的兩個TX并聯(lián)后,再送入到RS232中。 |
|
| 3樓: | >>參與討論 |
| 作者: isoar 于 2005/7/25 19:12:00 發(fā)布:
對你說對了,必須改電路才能解決 輸出口各串一個500歐的電阻,通過線與邏輯;不過最好還是加門電路 |
|
| 4樓: | >>參與討論 |
| 作者: remex2005 于 2005/7/25 19:20:00 發(fā)布:
非常感謝兩位大蝦的回復(fù),大家的回復(fù)好快啊,不過我還有疑問。 to computer00大蝦,我的多機通信都是在不同的儀器之間(也就是各自的機箱)。所以先并聯(lián)后再輸出不現(xiàn)實啊。 to isoar大蝦,如果不加門電路,直接加500歐電阻可以嗎?這個“通過線與邏輯”能不能詳細些,不太明白。還請兩位能再指導(dǎo)一下。 萬分感謝。。。。。。。。。。。。! |
|
| 5樓: | >>參與討論 |
| 作者: isoar 于 2005/7/25 19:41:00 發(fā)布:
232電平,最好別并,理論上就過不去啊 我的也是在TTL電平下并的,232電平什么都不加,理論上是會燒接口芯片的。 建議改方案 |
|
| 6樓: | >>參與討論 |
| 作者: remex2005 于 2005/7/25 19:46:00 發(fā)布:
還有些疑問。!懇請大蝦們再指點一二。 再請教isoar大蝦,你說你是在TTL電平下并的,是不是說直接把RX與TX并聯(lián)嗎?因為我的儀器之間是通過線連的,這樣可靠性怎么樣???如果要使用232的話,方案該怎么改呢?多謝了。。! |
|
| 7樓: | >>參與討論 |
| 作者: computer00 于 2005/7/25 19:50:00 發(fā)布:
您去試試看看這樣的辦法行不行: 兩路232進來,各接一個二極管的正極。 兩二極管的負極接在一起。然后把這負極通過一個10K(阻值可能不對)的電阻下拉到-9V。然后二極管的負極做為兩路信號返回的輸出。 |
|
| 8樓: | >>參與討論 |
| 作者: remex2005 于 2005/7/26 8:35:00 發(fā)布:
多謝computer00大蝦指點,我找了點資料也是這樣說的。 只是下拉電阻用4.7K,我先試試,有結(jié)果給大家反饋! |
|
| 9樓: | >>參與討論 |
| 作者: computer00 于 2005/7/26 9:17:00 發(fā)布:
樓上的兄弟言重了,不用那么客氣 這個是利用兩個二極管實現(xiàn)的一個或門的功能。那個電阻的取值主要由你所需要的 驅(qū)動能力及232的驅(qū)動能力來決定了,跟波特率也有一定的關(guān)系。 因為232是負邏輯,所以在TTL端的與關(guān)系到了232之后就變成或關(guān)系了。 只要你的兩個從機不同時發(fā)數(shù)據(jù),應(yīng)該就不會有什么問題的。 祝你好運,阿門。。。。。 |
|
| 10樓: | >>參與討論 |
| 作者: remex2005 于 2005/7/26 17:09:00 發(fā)布:
終于能正常通信了,再次感謝兩位大蝦的熱情指導(dǎo)! 我把主機沒改動(因為主機已經(jīng)做了幾十塊板子了。),在一個從機上加一個二極管,另一個從機上加二極管和4.7K的下拉電阻。通信速率大概在200kpbs左右,通信正常。computer00大蝦說得對,能夠這樣做的原因,是232芯片把單片機輸出的電平進行了翻轉(zhuǎn)。不知道232芯片這樣做就是為了使多機通信更容易,呵呵。 |
|
| 11樓: | >>參與討論 |
| 作者: computer00 于 2005/7/26 17:25:00 發(fā)布:
恭喜樓主了,呵呵。 RS232做成負邏輯,估計跟你說的那個沒什么關(guān)系。 如果RS232不是負邏輯,那么也可以用這樣的方法的。就是把二極管的正極并聯(lián),接上拉電阻拉到+9V。二極管的兩個負極分別接返回的數(shù)據(jù)線。二極管并聯(lián) 的正極做為共同的輸出。這樣就變成與的關(guān)系了。 我把下拉電阻放在主機側(cè),主要是考慮到下拉電阻驅(qū)動能力有限。 我不太清楚你的線是怎樣分布的,不過通常都是主機和從機之間的距離 比較遠。那么如果把電阻放在從機端,這個下拉電阻就要驅(qū)動很長的這條 數(shù)據(jù)線?赡茉谒俾矢邥r,驅(qū)不動了。而放在主機側(cè)就不會有這個問題, 因為那邊的232芯片驅(qū)動到主機側(cè)后,才接下拉的。這樣下拉所需要驅(qū)動的只是 主機側(cè)那段較短的線,而長的線則由那邊的232芯片來驅(qū)動,232的驅(qū)動能力 比下拉電阻的要強。 不過既然你現(xiàn)在放在從機側(cè)可以正常通信了,應(yīng)該也沒什么問題。 200kbps速率算比較高的了。 |
|
| 12樓: | >>參與討論 |
| 作者: 陳雙君 于 2005/7/26 22:11:00 發(fā)布:
你用那么多做什么? 你用那么多做什么? |
|
| 13樓: | >>參與討論 |
| 作者: liudewei 于 2005/7/27 3:48:00 發(fā)布:
RS232想并聯(lián)?改RS485或CAN吧 |
|
| 14樓: | >>參與討論 |
| 作者: wwwzhang 于 2005/7/27 8:50:00 發(fā)布:
沒有看太懂,請樓主說的詳細一點好嗎 線是怎么接的啊,怎么下拉到-9V啊,能否畫一個示意圖看一下。多謝 |
|
| 15樓: | >>參與討論 |
| 作者: liumsn 于 2005/7/28 12:51:00 發(fā)布:
開玩笑 串口通信要應(yīng)答的,并聯(lián)上去怎么搞,亂套了。 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |