串口通讯,便是RS-232/RS-485通讯,要求通讯的两边波特率等通讯格局相同才能够通讯成功。可是在许多情况下,两种不同格局比方不同波特率的串口也要彼此通讯,这就有必要进行串口波特率等格局的转化。本文介绍了如何用纯软件完成串口波特率的转化。
假如串口设备1与串口设备2之间需求通讯,可是它们之间的通讯波特率不相同。纯软件完成串口波特率的转化的原理便是使用计算机的两个串口,称为串口A和串口B,别离设置为不同的波特率、不同的校验位、不同的数据位和不同的中止位。其间串口A依照串口A设置的波特率等格局接纳数据当即从串口B依照串口B设置的波特率等格局发送出去,相同串口B以串口B设置波特率等格局收到的数据当即从串口A以串口A设置的波特率等格局发送出去。
将计算机的串口A接设备1,串口A的通讯波特率设置为设备1的波特率、校验位、数据位和中止位。将计算机的串口B接设备2,串口B的通讯波特率设置为设备2的波特率、校验位、数据位和中止位。计算机有必要至少有两个RS-232串口,扩展串口能够选用USB-串口转化器等。这样就完成了串口设备1与串口设备2之间的通讯。
串口波特率转化软件的界面如图。左面别离是两个串口的设置框,别离能够设置COM口的号码、波特率、校验位、数据位、中止位,默许的格局为(9600,N,8,1)。能够挑选的COM标语码为1到16号。COM串标语能够从操作系统的“设备管理器”只能够的“端口”看到。波特率的可挑选规模为:256000、128000、115200、57600、38400、28800、19200、14400、9600、4800、2400、1200、600。校验位可挑选:n(无)、o(偶)、e(奇)。数据位可挑选:8、7、6、5、4。中止位可挑选1和0。
设置好串口格局后,按“翻开串口”。留意A和B两个串口都要翻开。成功翻开串口后会在“翻开串口”按钮的周围显现赤色的圆圈。“翻开串口”按钮下面为“清空计数”按钮和本串口接纳和发送数据的个数。正常情况下,因为串口A接纳到的数据都当即发送给了串口B,所以串口A接纳的计数与串口B发送的计数时相同的。同理串口B接纳的计数与串口A发送的计数时相同的。
串口波特率转化软件的界面右边为测验和检测部分,正常作业时不需求操作。按“手动发送A串口”能够测验串口A的设置是否收效,是否能够正确与设备1通讯,接纳到的数据显现在“接纳区A”框内。串口B的部分是相同的功用。右下角有“字符格局”和“十六进制”的选项,默许为“字符格局”。当挑选“十六进制”时,本软件能够完成16进制数据的格局转化,特别合适MODBUS等工控软件。
假如在软件界面上只翻开一个串口,比方串口A或许串口B,那么本软件便是一个功用完全的串口调试帮手软件,能够进行每个串口的设置、数据收发等。
本软件用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 = 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
本文介绍的串口波特率转化的纯软件办法和程序,对不同格局之间的串口通讯具有必定的使用价值。本软件不仅仅完成了波特率的转化,还一起完成了校验位、数据位和中止位的转化。文中介绍的软件能够从波仕电子的网站下载。纯软件波特率转化的不足之处在于占用了一台计算机,而且有必要配有两个专门用于波特率转化的串口。假如要完成便利简略的波特率转化,仍是要用具有双串口的单片机或许FPGA。经过对单片机或许FPGA的两个串口进行波特率等格局的设置,而两个串口在内部进行数据通明传输。这种产品便是硬件波特率转化器,咱们将以别的文章《串口波特率转化的纯硬件完成》予以介绍。