串口地址轉(zhuǎn)換的實(shí)現(xiàn)
武漢波仕電子有限公司 __向媛
串口多機(jī)通信,就是RS-232/RS-485多機(jī)通信,要求通信的下位機(jī)必須帶地址。通信時(shí)由上位機(jī)先發(fā)送某個(gè)下位機(jī)的地址,位于同一個(gè)網(wǎng)絡(luò)中的所有下位機(jī)都同時(shí)讀取這個(gè)地址的值,然后與自己的地址進(jìn)行比較,如果地址相同則接收后面的數(shù)據(jù),如果地址不同則不讀取后面的數(shù)據(jù)。某些情況下,下位機(jī)也可以主動(dòng)向上位機(jī)發(fā)送數(shù)據(jù),但是必須按照預(yù)先設(shè)置的格式在數(shù)據(jù)**加上下位機(jī)的地址,這樣上位機(jī)才可以知道是哪一個(gè)下位機(jī)發(fā)來的數(shù)據(jù)。可是在許多情況下,下位機(jī)沒有設(shè)置地址的功能,或者地址的格式不同,這就必須進(jìn)行串口地址的轉(zhuǎn)換。本文介紹了如何實(shí)現(xiàn)串口地址的轉(zhuǎn)換。
如果上位機(jī)與多個(gè)下位機(jī)之間需要通信,但是下位機(jī)卻不帶地址。串口地址轉(zhuǎn)換器的原理就是利用轉(zhuǎn)換器兩個(gè)串口,稱為上位機(jī)串口和下位機(jī)串口,自動(dòng)添加人為設(shè)置的地址。地址哦處理包括兩部分:1、將上位機(jī)串口接收到的數(shù)據(jù)去掉地址后從下位機(jī)串口發(fā)送出去;2、將下位機(jī)串口接收到的數(shù)據(jù)加上地址后從上位機(jī)串口發(fā)送出去。
DIZ485串口地址轉(zhuǎn)換器用于實(shí)現(xiàn)不同地址的RS-232/RS-485口的通信轉(zhuǎn)換,純硬件跳線設(shè)置,*任何軟件設(shè)置。串口地址轉(zhuǎn)換器的外形為DB-9/DB-9轉(zhuǎn)接盒大小,如圖的產(chǎn)品左邊為上位機(jī)的RS-232以及RS-485口,右邊為下位機(jī)的RS-232以及RS-485口,上邊為波特率設(shè)置和地址設(shè)置的跳線,下面為5V電源接線端子。DIZ485通過跳線J2、J1、J0設(shè)置波特率,通過跳線K2、K1、K0設(shè)置地址。見下表。0-斷開,1-短路。注意每次更改跳線新設(shè)置后必須重新加電源才能生效。
串口通信波特率設(shè)置 |
|
地址設(shè)置 |
||||||
J2 |
J1 |
J0 |
波特率 |
K2 |
K1 |
K0 |
地址 |
|
0 |
0 |
0 |
1200 |
0 |
0 |
0 |
0 |
|
0 |
0 |
1 |
2400 |
0 |
0 |
1 |
1 |
|
0 |
1 |
0 |
4800 |
0 |
1 |
0 |
2 |
|
0 |
1 |
1 |
9600 |
0 |
1 |
1 |
3 |
|
1 |
0 |
0 |
19200 |
1 |
0 |
0 |
4 |
|
1 |
0 |
1 |
38400 |
1 |
0 |
1 |
5 |
|
1 |
1 |
0 |
57600 |
1 |
1 |
0 |
6 |
|
1 |
1 |
1 |
115200 |
1 |
1 |
1 |
7 |
DIZ485 使用非常方便。首先根據(jù)用戶通信程序的波特率進(jìn)行波特率設(shè)置,比如9600bps,則將J2斷開、J1短接、J0短接。然后設(shè)置本產(chǎn)品的地址,比如設(shè)置地址為1,則將K2斷開、K1斷開、K0短接。
左側(cè)的A1、B1的RS-485以及DB-9孔RS-232稱為“主串口”;右側(cè)A2、B2的RS-485以及DB-9針RS-232稱為“從串口”。通信規(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 就是加幀頭。
在同一個(gè)RS-232/RS-485總線中可以同時(shí)接入一般較多8個(gè)DIZ485產(chǎn)品,定制較多可以到32個(gè)。使用時(shí)將這8個(gè)產(chǎn)品的地址分別設(shè)置為0、1、2、……、7不同的值。將所有DIZ485產(chǎn)品的主串口共同接入到一個(gè)總線并接到上位機(jī)的RS-232或RS-485口。DIZ485接受定制開發(fā)。**過8個(gè)地址要求的可以定制擴(kuò)展地址編碼,較多可以達(dá)到32個(gè)。默認(rèn)地址為0、1、2、3、4、5、6、7、8、9、a、b、……、t、u、v。
如果上位機(jī)要向某個(gè)下位機(jī)(比如地址為1的DIZ485的從機(jī))發(fā)送數(shù)據(jù),只需要在數(shù)據(jù)**加上###1:即可。地址為1的DIZ485發(fā)送給上位機(jī)的數(shù)據(jù)都是加上了###1:再發(fā)送給主機(jī)的;地址為2的DIZ485發(fā)送給上位機(jī)的數(shù)據(jù)都是加上了###2:再發(fā)送給主機(jī)的,都帶有地址,所以主機(jī)可以識(shí)別從哪個(gè)下位機(jī)(即從機(jī))發(fā)來的。
地址轉(zhuǎn)換器的內(nèi)部有一個(gè)帶雙串口的單片機(jī)。單片機(jī)自動(dòng)完成兩個(gè)串口之間的數(shù)據(jù)交換。單片機(jī)程序用C語言編寫,**功能就是先將兩個(gè)串口UART1和UART2根據(jù)跳線設(shè)置的狀態(tài)進(jìn)行地址等初始化設(shè)置,然后隨時(shí)將UART1接收的數(shù)據(jù)去掉地址幀頭之后立即送到UART2的發(fā)送區(qū)、以及將UART2接收的數(shù)據(jù)加上地址幀頭后立即送到UART1的發(fā)送區(qū)。
本文介紹的串口地址轉(zhuǎn)換的硬件方法和單片機(jī)代碼,對(duì)不同地址之間的串口通信具有一定的使用**。地址轉(zhuǎn)換器的優(yōu)點(diǎn)在于使用簡單方便,不足之處在于只能夠轉(zhuǎn)換地址而沒有對(duì)數(shù)據(jù)位、停止位、校驗(yàn)位進(jìn)行轉(zhuǎn)換,而且對(duì)于不常見的地址的轉(zhuǎn)換還需要定做。如果要實(shí)現(xiàn)功能全面的地址等各種格式的全面轉(zhuǎn)換,還是要用計(jì)算機(jī)加上專門的地址轉(zhuǎn)換軟件,通過對(duì)計(jì)算機(jī)的兩個(gè)串口進(jìn)行地址等格式的設(shè)置,而兩個(gè)串口在計(jì)算機(jī)內(nèi)部進(jìn)行數(shù)據(jù)透明傳輸。我們已經(jīng)以另外文章《串口地址轉(zhuǎn)換的純軟件實(shí)現(xiàn)》予以了介紹。
詳細(xì)參數(shù)請(qǐng)到www.查看。咨詢訂購電話:027-59708940/51518046 15102729700向小姐 QQ咨詢訂購:2360190989
MSN:bosicomcn@
詞條
詞條說明
RS-485多主機(jī)通信方式 ??????????????????????? ?武漢波仕電子有限公司 向媛 ??? 傳統(tǒng)的RS-4
以太網(wǎng)串口轉(zhuǎn)換器進(jìn)入千兆時(shí)代
??????????????????????? ?以太網(wǎng)串口轉(zhuǎn)換器進(jìn)入千兆時(shí)代 ??????&nb
?? RS-485的三向高速隔離? ???????????????????????????&nbs
如何實(shí)現(xiàn)互聯(lián)網(wǎng)的云串口通信
?????????? 如何實(shí)現(xiàn)互聯(lián)網(wǎng)的云串口通信 ????????????????????&nbs
公司名: 武漢波仕卡科技有限公司
聯(lián)系人: 向小姐
電 話: 18995634129
手 機(jī): 15102729700
微 信: 15102729700
地 址: 湖北武漢洪山區(qū)洪山區(qū)關(guān)東科技園
郵 編: 430074
網(wǎng) 址: bosicomcn.cn.b2b168.com
公司名: 武漢波仕卡科技有限公司
聯(lián)系人: 向小姐
手 機(jī): 15102729700
電 話: 18995634129
地 址: 湖北武漢洪山區(qū)洪山區(qū)關(guān)東科技園
郵 編: 430074
網(wǎng) 址: bosicomcn.cn.b2b168.com
¥1350.00
¥1400.00
¥1.00
¥360.00
BAUER電源轉(zhuǎn)換器 SR-A-G-230-004
¥2006.00