摘要:本文通过对无线通讯系统基本工作原理的分析,阐明了采用Visual Basic 5.0中的控件MSCOMM.VBX进行无线数据采集程序开发的基本方法。并结合900M频率无线通讯电台的特点,给出了基本通讯接口源程序代码。
在无线的通讯方式中,数据传输的基本原理可以认为是通过调制解调器进行工作的,而这种调制解调器是无线方式工作的,它不含有拨号功能,而且和它直接连接的是无线电台。无线电台的作用就相当于有线传输中的电话线,它是通过无线电波进行发送和接受信号的。而无线调制解调器的作用是将二进制的信号调制成可以在无线电台之间传输的无线电波。
信号转换过程的属性取决于调制解调器所接收到的源信号和目的信号。一般来说,调制解调器从终端或计算机接以串行方式收到二进制信号后,将它们转换成了音频信号。然后调制解调器将这些声音通过无线电台传输出去。在接受端,另一个兼容的调制解调器将这些声音信号转换成了二进制信号,并把这些二进制信号发送给终端或计算机。
项目
指标
含义
传输速率
每秒的字节数
数据的控制
透明传输
发射功率
3W
接受灵敏度
-105dBm
工作频率
915—917MHZ
信道
158个
由无线通讯的基本原理可以看出,无线的数据采集和传输主要包括以下几个过程,从带处理器的传感器或计算机终端发送二进制信号到无线调制解调器;无线电台之间建立连接并传输数据;从另外一端的电台接受二进制数据;将数据传输到计算机。因此,要建立无线设备之间的通讯必须在两端进行编程。
1 从串口读入电台数据程序GetStringFromComm()
功能:(1) 主要完成从端口获得数据,将二进制的数据转换为ASCII码数据
Public Function GetStringFromComm() As String
定义变量(略)
If frmTerminal.MSComm1.InBufferCount < 7 Then
GetStringFromComm = ""
Exit Function
End If
'//读入标志码
frmTerminal.MSComm1.InputLen = 6
ReDim Preserve BinDataarr(6) As Byte
BinData = frmTerminal.MSComm1.Input
BinDataarr = BinData
UserDataLenth = BinDataarr(5) '用户数据的长度
Wait1:
If BinDataarr(5) > frmTerminal.MSComm1.InBufferCount Then '未接受完数据
delay 6 '延时6s
GoTo Wait1
End If
frmTerminal.MSComm1.InputLen = UserDataLenth
BinData = frmTerminal.MSComm1.Input
ReDim Preserve BinDataarr(UserDataLenth)
BinDataarr = BinData
GetStringFromComm = BinTotext(UserDataLenth, 0)
frmTerminal.MSComm1.InBufferCount = 0 '清空接受缓冲区
End Function
2 从串口向电台发送数据程序SendStringToComm()
Public Sub SendStringToComm(ByVal TransCommand As Integer, ByVal TransString As String)
ReDim BinDataarr(5)
frmTerminal.MSComm1.OutBufferCount = 0 '//清空发送缓冲区
'TransString = makestring(Val(mc.txtdesstation.Text), 4) + TransString
'//设置标志码
(略)
Select Case TransCommand
Case 0:transmit text
ReDim Preserve BinDataarr(6 + Len(TransString))
TextTobin (TransString)
BinData = BinDataarr
frmTerminal.MSComm1.Output = BinData '发送
Case 1:transmit binary data
ReDim Preserve BinDataArr(5 + Len(TransString) + UserDataLenth) As Byte
TextTobin (TransString)
BinDataArr(5) = UserDataLenth + Len(TransString)
Dim i As Integer
For i = 1 To UserDataLenth
BinDataArr(5 + Len(TransString) + i) = userDataarr(i - 1)
Next i
BinData = BinDataArr
MSComm1.Output = BinData
End Select
binDatalenth = 0
End Sub
参考文献:
,信捷职称论文写作发表网