純chun軟ruan件jian實shi現xian串chuan口kou地di址zhi轉zhuan換huan的de最zui大da優you勢shi就jiu在zai於yu通tong用yong性xing。由you於yu不bu同tong廠chang家jia對dui地di址zhi碼ma的de定ding義yi不bu一yi樣yang,軟ruan件jian的de實shi現xian可ke以yi非fei常chang方fang便bian地di設she置zhi各ge種zhong不bu同tong的de地di址zhi編bian碼ma方fang案an。比bi如ru有you以yi$開頭,以!開頭的地址編碼,隻要在本軟件界麵的地址碼前綴填寫$或者!,後綴空著即可。
在同一個RS-232/RS-485總zong線xian中zhong可ke以yi同tong時shi接jie入ru的de地di址zhi轉zhuan換huan軟ruan件jian的de數shu量liang理li論lun上shang無wu限xian。甚shen至zhi可ke以yi將jiang不bu同tong地di址zhi編bian碼ma方fang案an的de軟ruan件jian一yi起qi使shi用yong。使shi用yong時shi將jiang這zhe地di址zhi分fen別bie設she置zhi為wei不bu同tong的de值zhi即ji可ke。將jiang所suo有you地di址zhi轉zhuan換huan軟ruan件jian的de上shang位wei機ji串chuan口kou共gong同tong接jie入ru到dao一yi個ge總zong線xian並bing接jie到dao上shang位wei機ji的deRS-232或RS-485口。 計算機必須至少有兩個RS-232或者RS-485串口,擴展串口可以采用USB-串口轉換器等。這樣就實現了兩個串口之間的地址轉換。
本軟件用Visual Basic軟件編寫,串口用MSCOMM控件實現。核心功能就是將Mscomm1接收的數據立即送到Mscomm2的發送區。難點在於對16進製數據的轉換處理。
Mscomm的核心代碼如下:
Private Sub MSComm1_OnComm()
Dim BytReceived() As Byte
Dim strBuff As String
Dim i As Integer
Select Case MSComm1.CommEvent '事件發生
Case 2
MSComm1.InputLen = 0 '讀入緩衝區全部內容
strBuff = MSComm1.Input '讀入到緩衝區
If MSComm1.InputMode = comInputModeBinary Then
BytReceived() = strBuff '如果是二進製接收模式則進行數據處理,否則直接顯示字符串
For i = 0 To UBound(BytReceived)
If Len(Hex(BytReceived(i))) = 1 Then
strData = strData & "0" & Hex(BytReceived(i)) & " "
'如果隻有一個字符,則前補0,如F顯示0F,最後補空格
Else '方便顯示觀察如: 00 0F FE
strData = AdressCode+strData & Hex(BytReceived(i)) & " "
End If
Next
Text1 = strData
Call hexSend2 ' '發送一個16進製
strData = ""
Else
Text1 = Text1 & strBuff
If MSComm2.PortOpen = False Then
MsgBox "請打開串口B"
End If
On Error GoTo uerror3
MSComm2.Output = strBuff
Label14.Caption = Label14.Caption + Len(strBuff) '發送計數
End If
End Select
uerror3:
End Sub
本ben文wen介jie紹shao的de串chuan口kou地di址zhi轉zhuan換huan的de純chun軟ruan件jian方fang法fa和he程cheng序xu,對dui不bu帶dai地di址zhi的de串chuan口kou多duo機ji通tong信xin具ju有you一yi定ding的de使shi用yong價jia值zhi。本ben軟ruan件jian不bu僅jin僅jin實shi現xian了le地di址zhi的de轉zhuan換huan,還hai同tong時shi實shi現xian了le波bo特te率lv、校驗位、數(shu)據(ju)位(wei)和(he)停(ting)止(zhi)位(wei)的(de)轉(zhuan)換(huan)。文(wen)中(zhong)介(jie)紹(shao)的(de)軟(ruan)件(jian)可(ke)以(yi)從(cong)波(bo)仕(shi)電(dian)子(zi)的(de)網(wang)站(zhan)下(xia)載(zai)。純(chun)軟(ruan)件(jian)地(di)址(zhi)轉(zhuan)換(huan)的(de)不(bu)足(zu)之(zhi)處(chu)在(zai)於(yu)占(zhan)用(yong)了(le)一(yi)台(tai)計(ji)算(suan)機(ji),並(bing)且(qie)必(bi)須(xu)配(pei)有(you)兩(liang)個(ge)專(zhuan)門(men)用(yong)於(yu)地(di)址(zhi)轉(zhuan)換(huan)的(de)串(chuan)口(kou)。如(ru)果(guo)要(yao)實(shi)現(xian)方(fang)便(bian)簡(jian)單(dan)的(de)地(di)址(zhi)轉(zhuan)換(huan),還(hai)是(shi)要(yao)用(yong)具(ju)有(you)雙(shuang)串(chuan)口(kou)的(de)單(dan)片(pian)機(ji)或(huo)者(zhe)FPGA。通過對單片機或者FPGA的兩個串口進行地址等格式的設置,而兩個串口在內部進行數據地址幀的加減。這種產品就是硬件串口地址轉換器,我們將以另外文章《串口地址轉換的純硬件實現》予以介紹。