RS-485多從機(jī)競(jìng)爭(zhēng)的解決方案
波仕電子的DIZ485地址串口轉(zhuǎn)換器用于實(shí)現(xiàn)串口(同時(shí)支持RS-232和RS-485)之間的帶地址的轉(zhuǎn)換。通過(guò)跳線設(shè)置地址編碼,DIZ485可以將串口接收到的數(shù)據(jù)附加上地址編碼發(fā)送出去,也可以將帶地址編碼的串口數(shù)據(jù)送到對(duì)應(yīng)地址的轉(zhuǎn)換器的串口。 DIZ485與其它同類(lèi)產(chǎn)品相比的特點(diǎn)是可以識(shí)別下位機(jī)的地址、下位機(jī)可以主動(dòng)發(fā)送帶地址的數(shù)據(jù)。波仕DIZ485地址串口轉(zhuǎn)換器的外形為DB-9/DB-9轉(zhuǎn)接盒大小,如圖,產(chǎn)品左邊為主串口,包括DB-9孔的RS-232口,和標(biāo)明為A1、B1的RS-485口。右邊為從串口,包括DB-9針的RS-232口,和標(biāo)明為A2、B2的RS-485口。左上側(cè)J2、J1、J0為波特率設(shè)置的跳線,右上側(cè)K2、K1、K0為地址編碼設(shè)置的跳線,下面中間為5V電源接線端子。
DIZ485 使用非常方便。首先根據(jù)波特率進(jìn)行波特率跳線設(shè)置,然后跳線設(shè)置本產(chǎn)品的地址。通信規(guī)則:主串口數(shù)據(jù)=地址碼+從串口數(shù)據(jù)如果主串口收到 ###1:1234567,那么地址為1的產(chǎn)品的從串口發(fā)送出 1234567(地址不是1的產(chǎn)品的從串口不發(fā)送任何數(shù)據(jù)),就是去幀頭。地址碼就是在K2、K1、K0跳線設(shè)置值的前面加3個(gè)井號(hào)(###)和后面加一個(gè)冒號(hào)(:)的英文字符。如果地址為1的產(chǎn)品的從串口收到abcdefg ,則主串口發(fā)送出###1:abcdefg就是加幀頭。
加入RS-485地址轉(zhuǎn)換器可以使得RS-485從機(jī)可以隨時(shí)主動(dòng)向上位機(jī)發(fā)送消息,因?yàn)樾盘?hào)中自動(dòng)加上了從機(jī)地址信息,這樣主機(jī)就可以識(shí)別下位機(jī)。
3、在RS-485總線中接入串口波特率轉(zhuǎn)換器
RS-485多機(jī)通信,本來(lái)是要求通信的雙方波特率等通信格式一樣才可以通信成功??墒菫榱私鉀Q在這種情況下出現(xiàn)RS-485多從機(jī)競(jìng)爭(zhēng)的問(wèn)題,波仕電子在世界上首次提出了一種多波特率的多機(jī)通信方式。本來(lái)是相同波特率的RS-485從機(jī)設(shè)備,我們?nèi)藶榈貙臋C(jī)進(jìn)行串口波特率的轉(zhuǎn)換。當(dāng)多個(gè)從機(jī)都轉(zhuǎn)換為不同的波特率后,由于每個(gè)RS-485從機(jī)發(fā)送信號(hào)的波特率不同,而主機(jī)同一時(shí)間只能夠收到某一種波特率的信號(hào),這樣就自然避免了多從機(jī)同時(shí)發(fā)送的競(jìng)爭(zhēng)問(wèn)題。本節(jié)介紹如何實(shí)現(xiàn)串口波特率的轉(zhuǎn)換。
串口波特率轉(zhuǎn)換器用于實(shí)現(xiàn)不同波特率的RS-485/RS-232口的通信轉(zhuǎn)換,純硬件跳線設(shè)置,無(wú)需任何軟件設(shè)置。串口波特率轉(zhuǎn)換器的外形為DB-9/DB-9轉(zhuǎn)接盒大小,如圖4。串口波特率轉(zhuǎn)換器的內(nèi)部有一個(gè)帶雙串口的單片機(jī)。單片機(jī)自動(dòng)完成兩個(gè)串口之間的數(shù)據(jù)交換。單片機(jī)程序用C語(yǔ)言編寫(xiě),核心功能就是先將兩個(gè)串口UART1和UART2根據(jù)跳線設(shè)置的狀態(tài)進(jìn)行波特率等初始化設(shè)置,然后隨時(shí)將UART1接收的數(shù)據(jù)立即送到UART2的發(fā)送區(qū)、以及將UART2接收的數(shù)據(jù)立即送到UART1的發(fā)送區(qū)。
位機(jī)串口A的波特率通過(guò)產(chǎn)品的J2、J1、J0來(lái)設(shè)置,下位機(jī)串口B的波特率通過(guò)產(chǎn)品的K2、K1、K0來(lái)設(shè)置,見(jiàn)表格。波特率轉(zhuǎn)換器的兩邊的串口可以分別獨(dú)立設(shè)置波特率,見(jiàn)下表。
DB-9孔R(shí)S-232口波特率設(shè)置 | DB-9針RS-232口波特率設(shè)置 | |||||||
J2 | J1 | J0 | 波特率 | K2 | K1 | K0 | 波特率 | |
0 | 0 | 0 | 1200 | 0 | 0 | 0 | 1200 | |
0 | 0 | 1 | 2400 | 0 | 0 | 1 | 2400 | |
0 | 1 | 0 | 4800 | 0 | 1 | 0 | 4800 | |
0 | 1 | 1 | 9600 | 0 | 1 | 1 | 9600 | |
1 | 0 | 0 | 19200 | 1 | 0 | 0 | 19200 | |
1 | 0 | 1 | 38400 | 1 | 0 | 1 | 38400 | |
1 | 1 | 0 | 57600 | 1 | 1 | 0 | 57600 | |
1 | 1 | 1 | 115200 | 1 | 1 | 1 | 115200 |
由串口波特率轉(zhuǎn)換器實(shí)現(xiàn)的RS-485多機(jī)通信圖與圖3所示的“為RS-485下位機(jī)加上地址”的布線結(jié)構(gòu)完全相同。由于每次主機(jī)通信程序只能夠設(shè)置為某一種波特率,所以也就每次只能給與某一個(gè)從機(jī)進(jìn)行通信,其它從機(jī)即使同時(shí)發(fā)送信號(hào)但由于波特率不一樣所以也不會(huì)對(duì)主機(jī)產(chǎn)生影響。這種方案的優(yōu)點(diǎn)之一在于完全無(wú)競(jìng)爭(zhēng),缺點(diǎn)是最多8個(gè)下位機(jī),因?yàn)檫@種串口波特率轉(zhuǎn)換器只能夠提供8種不同的波特率。這種方案的優(yōu)點(diǎn)之二在于如果用戶自己可以修改從機(jī)的波特率,那么可以實(shí)現(xiàn)零成本的解決方案。
本文介紹的3種解決RS-485多從機(jī)競(jìng)爭(zhēng)的方案可以形象地稱(chēng)為搶答、報(bào)名和調(diào)頻。這3種方案各有特色,也各有局限性,但是互不排斥。也就是說(shuō),這3種方案還可以組合使用。
關(guān)鍵詞:
RS-485
多從機(jī)競(jìng)爭(zhēng)
多機(jī)通信
相關(guān)推薦
技術(shù)專(zhuān)區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線
- 開(kāi)關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車(chē)電子
- 轉(zhuǎn)換器
- 電源管理
- 信號(hào)放大器
評(píng)論