|
串口多機通信,就是RS-232/RS-485多(duo)機(ji)通(tong)信(xin),要(yao)求(qiu)通(tong)信(xin)的(de)下(xia)位(wei)機(ji)必(bi)須(xu)帶(dai)地(di)址(zhi)。通(tong)信(xin)時(shi)由(you)上(shang)位(wei)機(ji)先(xian)發(fa)送(song)某(mou)個(ge)下(xia)位(wei)機(ji)的(de)地(di)址(zhi),位(wei)於(yu)同(tong)一(yi)個(ge)網(wang)絡(luo)中(zhong)的(de)所(suo)有(you)下(xia)位(wei)機(ji)都(dou)同(tong)時(shi)讀(du)取(qu)這(zhe)個(ge)地(di)址(zhi)的(de)值(zhi),然(ran)後(hou)與(yu)自(zi)己(ji)的(de)地(di)址(zhi)進(jin)行(xing)比(bi)較(jiao),如(ru)果(guo)地(di)址(zhi)相(xiang)同(tong)則(ze)接(jie)收(shou)後(hou)麵(mian)的(de)數(shu)據(ju),如(ru)果(guo)地(di)址(zhi)不(bu)同(tong)則(ze)不(bu)讀(du)取(qu)後(hou)麵(mian)的(de)數(shu)據(ju)。某(mou)些(xie)情(qing)況(kuang)下(xia),下(xia)位(wei)機(ji)也(ye)可(ke)以(yi)主(zhu)動(dong)向(xiang)上(shang)位(wei)機(ji)發(fa)送(song)數(shu)據(ju),但(dan)是(shi)必(bi)須(xu)按(an)照(zhao)預(yu)先(xian)設(she)置(zhi)的(de)格(ge)式(shi)在(zai)數(shu)據(ju)前(qian)麵(mian)加(jia)上(shang)下(xia)位(wei)機(ji)的(de)地(di)址(zhi),這(zhe)樣(yang)上(shang)位(wei)機(ji)才(cai)可(ke)以(yi)知(zhi)道(dao)是(shi)哪(na)一(yi)個(ge)下(xia)位(wei)機(ji)發(fa)來(lai)的(de)數(shu)據(ju)。可(ke)是(shi)在(zai)許(xu)多(duo)情(qing)況(kuang)下(xia),下(xia)位(wei)機(ji)沒(mei)有(you)設(she)置(zhi)地(di)址(zhi)的(de)功(gong)能(neng),或(huo)者(zhe)地(di)址(zhi)的(de)格(ge)式(shi)不(bu)同(tong),這(zhe)就(jiu)必(bi)須(xu)進(jin)行(xing)串(chuan)口(kou)地(di)址(zhi)的(de)轉(zhuan)換(huan)。本(ben)文(wen)介(jie)紹(shao)了(le)如(ru)何(he)實(shi)現(xian)串(chuan)口(kou)地(di)址(zhi)的(de)轉(zhuan)換(huan)。
如(ru)果(guo)上(shang)位(wei)機(ji)與(yu)多(duo)個(ge)下(xia)位(wei)機(ji)之(zhi)間(jian)需(xu)要(yao)通(tong)信(xin),但(dan)是(shi)下(xia)位(wei)機(ji)卻(que)不(bu)帶(dai)地(di)址(zhi)。串(chuan)口(kou)地(di)址(zhi)轉(zhuan)換(huan)器(qi)的(de)原(yuan)理(li)就(jiu)是(shi)利(li)用(yong)轉(zhuan)換(huan)器(qi)兩(liang)個(ge)串(chuan)口(kou),稱(cheng)為(wei)上(shang)位(wei)機(ji)串(chuan)口(kou)和(he)下(xia)位(wei)機(ji)串(chuan)口(kou),自(zi)動(dong)添(tian)加(jia)人(ren)為(wei)設(she)置(zhi)的(de)地(di)址(zhi)。地(di)址(zhi)哦(o)處(chu)理(li)包(bao)括(kuo)兩(liang)部(bu)分(fen):1、將上位機串口接收到的數據去掉地址後從下位機串口發送出去;2、將下位機串口接收到的數據加上地址後從上位機串口發送出去。

DIZ485串口地址轉換器用於實現不同地址的RS-232/RS-485口的通信轉換,純硬件跳線設置,無需任何軟件設置。串口地址轉換器的外形為DB-9/DB-9轉接盒大小,如圖的產品左邊為上位機的RS-232以及RS-485口,右邊為下位機的RS-232以及RS-485口,上邊為波特率設置和地址設置的跳線,下麵為5V電源接線端子。DIZ485通過跳線J2、J1、J0設置波特率,通過跳線K2、K1、K0設置地址。見下表。0-斷開,1-短路。注意每次更改跳線新設置後必須重新加電源才能生效。
|
串口通信波特率設置
|
|
地址設置
|
|
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 使用非常方便。首先根據用戶通信程序的波特率進行波特率設置,比如9600bps,則將J2斷開、J1短接、J0短接。然後設置本產品的地址,比如設置地址為1,則將K2斷開、K1斷開、K0短接。
左側的A1、B1的RS-485以及DB-9孔RS-232稱為“主串口”;右側A2、B2的RS-485以及DB-9針RS-232稱為“從串口”。通信規則:主串口數據=地址碼+從串口數據 比如:如果主串口收到 ###1:1234567,那麼地址為1的產品的從串口發送出 1234567(地址不是1的產品的從串口不發送任何數據),就是去幀頭。地址碼就是在K2、K1、K0跳線設置值的前麵加3個井號(###)和後麵加一個冒號(:)的英文字符。如果地址為1的產品的從串口收到abcdefg ,則主串口發送出###1:abcdefg 就是加幀頭。
在同一個RS-232/RS-485總線中可以同時接入一般最多8個DIZ485產品,定製最多可以到32個。使用時將這8個產品的地址分別設置為0、1、2、……、7不同的值。將所有DIZ485產品的主串口共同接入到一個總線並接到上位機的RS-232或RS-485口。DIZ485接受定製開發。超過8個地址要求的可以定製擴展地址編碼,最多可以達到32個。默認地址為0、1、2、3、4、5、6、7、8、9、a、b、……、t、u、v。

如果上位機要向某個下位機(比如地址為1的DIZ485的從機)發送數據,隻需要在數據前麵加上###1:即可。地址為1的DIZ485發送給上位機的數據都是加上了###1:再發送給主機的;地址為2的DIZ485發送給上位機的數據都是加上了###2:再發送給主機的,都帶有地址,所以主機可以識別從哪個下位機(即從機)發來的。

地址轉換器的內部有一個帶雙串口的單片機。單片機自動完成兩個串口之間的數據交換。單片機程序用C語言編寫,核心功能就是先將兩個串口UART1和UART2根據跳線設置的狀態進行地址等初始化設置,然後隨時將UART1接收的數據去掉地址幀頭之後立即送到UART2的發送區、以及將UART2接收的數據加上地址幀頭後立即送到UART1的發送區。
本ben文wen介jie紹shao的de串chuan口kou地di址zhi轉zhuan換huan的de硬ying件jian方fang法fa和he單dan片pian機ji代dai碼ma,對dui不bu同tong地di址zhi之zhi間jian的de串chuan口kou通tong信xin具ju有you一yi定ding的de使shi用yong價jia值zhi。地di址zhi轉zhuan換huan器qi的de優you點dian在zai於yu使shi用yong簡jian單dan方fang便bian,不bu足zu之zhi處chu在zai於yu隻zhi能neng夠gou轉zhuan換huan地di址zhi而er沒mei有you對dui數shu據ju位wei、停止位、校(xiao)驗(yan)位(wei)進(jin)行(xing)轉(zhuan)換(huan),而(er)且(qie)對(dui)於(yu)不(bu)常(chang)見(jian)的(de)地(di)址(zhi)的(de)轉(zhuan)換(huan)還(hai)需(xu)要(yao)定(ding)做(zuo)。如(ru)果(guo)要(yao)實(shi)現(xian)功(gong)能(neng)全(quan)麵(mian)的(de)地(di)址(zhi)等(deng)各(ge)種(zhong)格(ge)式(shi)的(de)全(quan)麵(mian)轉(zhuan)換(huan),還(hai)是(shi)要(yao)用(yong)計(ji)算(suan)機(ji)加(jia)上(shang)專(zhuan)門(men)的(de)地(di)址(zhi)轉(zhuan)換(huan)軟(ruan)件(jian),通(tong)過(guo)對(dui)計(ji)算(suan)機(ji)的(de)兩(liang)個(ge)串(chuan)口(kou)進(jin)行(xing)地(di)址(zhi)等(deng)格(ge)式(shi)的(de)設(she)置(zhi),而(er)兩(liang)個(ge)串(chuan)口(kou)在(zai)計(ji)算(suan)機(ji)內(nei)部(bu)進(jin)行(xing)數(shu)據(ju)透(tou)明(ming)傳(chuan)輸(shu)。我(wo)們(men)已(yi)經(jing)以(yi)另(ling)外(wai)文(wen)章(zhang)《串口地址轉換的純軟件實現》予以了介紹。
|