首页>>科技 >>内容

gprs无线传输终端单元,GPRS无线数传模块编程方法解析

发布时间:2023-08-02 21:36:30编辑:温柔的背包来源:

很多朋友对gprs无线传输终端单元,GPRS无线数传模块编程方法解析不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。

gprs无线传输终端单元,GPRS无线数传模块编程方法解析

GPRS无线数据传输模块简介GPRS无线数据传输模块是一款内嵌GSM/GPRS核心单元的无线调制解调器,具有完整的电源管理系统和标准的串行数据接口。外观小巧,软件界面简洁。它可以广泛应用于许多工业和民用领域,如工业短信收发、彩信收发图片文件、GPRS实时数据传输等。

GPRS无线数据模块是针对工业用户,以GSM/GPRS网络为传输介质,基于移动GSM短消息平台和GPRS数据业务的工业通信终端。它利用GSM移动通信网络的短消息和GPRS业务为用户搭建了一个超远距离的数据传输平台。标准工业规范设计,提供RS232标准接口,直接连接用户设备,实现中英文短信功能、彩信功能、GPRS数据传输功能。

GPRS无线数据传输模块的特点具有短信功能,支持中英文短信对于GPRS数据业务,内嵌TCP/IP协议栈支持域名解析,无需固定IP即可收发彩信可传输图片和文件标准RS-232串口。简单的AT命令操作为单片机和计算机编程提供源代码频段为双频900MHz和1800MHz工作温度:-35~ 75工业标准设计,可在各种恶劣环境下工作天线接口50/SMA(母头)。

DC 5~12V电源、电流待机40mA、300mAGPRS无线数据传输模块应用工业短信收发、彩信收发图片文件 GPRS实时数据传输银行、证券、保险行业税务、公安、交警、交通稽查行业交通监控工业控制、遥感、遥测移动办公。

GPRS无线数据传输模块编程方法分析一、不同组网方式下的具体设置一般有三种方式可以让一台PC成为数据中心:(中心使用Intranet公网连接,中心使用专线接入和拨号Intelnet接入)无论哪种方式,PC都需要一个固定的IP。公网或专线的IP是网卡的IP;拨号上网模式的IP是无线调制解调器GPRS卡绑定的IP。1、公共网络模式:

由于PC有固定的IP,使用时不需要做任何特殊设置,只需将模块的APN名设置为CMNET即可。2、专线模式:PC可以通过网卡登录到数据服务器所在的网络。具体实现方法:设置PC的本地连接(主要是IP地址和网关,网关是数据服务器的网关),然后用Ping命令测试网络是否连接。

步骤:点击“开始”-“运行”,在“打开”中输入Ping数据服务器的IP(如莱芜李闯的数据服务器IP为192.168.0.164,输入Ping 192.168.0.164),回车。模块的APN名称被设置为李闯。LW。SD3、拨号上网方式:PC可以通过无线调制解调器登录到数据服务器所在的网络。有多少种无线调制解调器?一般我们用两种,一种是USB连接,一种是串口连接。

b、如何设置无线调制解调器登录数据服务器所在的网络?首先将调制解调器正确连接到计算机。安装调制解调器:控制面板-添加新硬件-从列表中选择“调制解调器”-选择此调制解调器使用的端口-在区号中输入“086”,选择音频,拨打外部区号,无需输入。

安装调制解调器后,您还应该诊断它是否安装正确,以及安装的调制解调器是否可用。步骤是:控制面板-调制解调器-属性-诊断。配置调制解调器:控制面板-调制解调器-属性-高级。在附加初始化命令中,如果使用的是东瀛的GPRS卡,在附加设置中输入("AT CGDCONT=1","IP","DYSHL。SD”)。

如果使用李闯的GPRS卡,在附加设置中输入("AT CGDCONT=1,"IP","lichuang.lw.sd") c,如何建立拨号连接?正确连接调制解调器后,您需要建立拨号连接。具体步骤如下:右键点击‘网上邻居’——属性——建立新连接——选择拨到专网——输入电话号码时输入' * 99 * * * 1 # '默认点击'下一步'd .如何获取拨号上网的IP?

判断数据中心(无线调制解调器)IP的方法有很多:先拨号连接。拨号连接成功后,右击任务栏中的“拨号连接”图标,选择“状态”,在弹出的屏幕中选择“信息”,只需看“客户端IP”即可。选择开始-运行(输入cmd回车)-输入ipconfig回车,就可以看到拨号连接的IP。e .如何让无线调制解调器在断线后自动重拨?

无线调制解调器在使用过程中会断开连接,因为此时用户无法一直注意无线调制解调器是否断开。为了使无线调制解调器不延迟数据传输,可以将其设置为断开连接后自动重拨的功能。具体操作如下:先找到'拨号连接'(拨号网络中)-属性-选项,去掉'拨号选项'中的所有选项,选择断开重拨选项进行重拨。

设置时,还可以将重拨次数设置得大一些,比如10次,也可以不设置。用户可以根据实际情况决定。其中一个‘重拨选项’是‘挂机前空闲时间’,我们通常设置为‘从不’。如果设置为某个时间,当连接时间达到这个值时就会断开连接。图为图1:图1二、通用控件的编写控件实际上是一个类的封装,一个类可以定义自己的结构、属性、方法和事件。

1、 Structure: private type structure name parameters in MyName structure in string form My age is an integer type2、 Attribute: Dim m _ GPRSLong As public attribute let GPRS long (byval newgprslong as long). Assign the value of an expression to a variable or property m _ GPRS long=newgprslongpropertychanged"GPRS long"Property changed method is to notify that the value of the property has changed End Property Public Property Get GPRS long () As long Read the property value GPRSLong=m_GPRSLongEnd property.

3、 method (function): the Public function StartServer(Ip is a string and Port is a long integer) is a boolean value. This method can be used by users to use the end function private TCP server _ close (index is an integer) as a boolean value. This method cannot be used by users. The control itself uses the terminal connector4、 Event: The public event GetUserID(ByVal User_Id is a string, ByVal UserDeal_Id is a string) uses the RaiseEvent statement RaiseEvent GetUserID(m_Id, Deal_Id) when activating the event.

5、用户使用的一些常见事件:UserControl_Resize发生在第一次显示控件或其状态发生变化,并且控件被调整大小时。例如,您可以在其中设置控件的高度和宽度。用户控制。高度=525用户控件。Width=525,这样,当用户使用该控件时,将该控件添加到窗体时,其大小不能更改。

三、GPRS控制的主要属性、方法和事件:结合前面介绍的通用控制的知识,下面主要根据GPRS的工作原理介绍其控制的编程1、属性:GPRS控制的主要属性是IP地址、端口号和接收数据长度。LocalIP属性/Localport属性/GPRSLong属性2、方法:A. StartServer(Ip为String,port为Long)启动服务方法。

该方法用于启动GPRS服务,系统初始化时必须调用该方法完成GPRS服务的初始化,否则GPRS模块将无法正确登录网络并进行通信。IP参数是服务器Ip地址,string Port参数是服务器通信端口,是长整数,通常是2020端口。成功返回Ture,失败返回False。示例:start server ("192.168.0.1",2020)B,StopServer()停止服务方法。

服务停止方法用于停止GPRS服务,当系统退出时调用该方法来停止GPRS服务。成功返回True,失败返回False。示例:StopServer()C,senddataggprs(DtuId为String,CmdData为Variant)发送数据方法该方法用于与GPRS模块通信,核心方法和参数比较复杂。DtuID,Gprs模块识别号,用于指示与该模块的通信。CmdData,要传输的数据,variant变量,可接受的字符串或数组类型。

示例: SendDataGPRS(“6900000196”,Cmd)

3、 事件:

A、 GetUserID(ByVal User_Id As String, ByVal UserDeal_Id As String)

’’收到GPRS模块的ID号或者是上线的ID的时触发的事件

User_Id 为所有在线GPRS模块ID号所组成的字符串。

UserDeal_Id为所有离线GPRS模块ID号所组成的字符串。

如果下面的GPRS模块上传ID号时,系统会以事件的方式进行接收,用户可以在事件中对ID号做处理,想以什么格式显示ID的信息有用户自己做决定。

B、ReceiveData(ByVal User_Id As String, ByVal User_GetDataASC As Variant, ByVal User_GetDataHEX As Variant) ’’ 收到数据时触发的事件

如果下面的设备有数据上传时,就会触发该事件,该事件包括3个参数:

User_Id 为设备的ID号;

User_GetDataASC 为以ASCII方式显示的数据;

User_GetDataHEX 为以HEX方式显示的数据。

下面的设备在上传数据的时候,会将ID号一块传上来,这样用户能够分辨出是哪个设备传上来的,而且上传数据时,会将ASCII方式的数据和HEX方式的数据一块传上来,用户想用什么数据自己决定。

四、 具体的内部编程思路:GPRS控件的编写,我们用到的是Winsock控件,所以首先要先了解一下Winsock控件的使用。

1、Winsock控件的使用:

Winsock控件对用户来说是不可见的,我们在编写客户端或服务器程序时,通过设置控件的属性并调用其方法即可实现数据的双向交换。

如果创建客户应用程序,就必须知道服务器计算机名或者IP 地址(RemoteHost 属性),还要知道进行“侦听”的端口(RemotePort 属性),然后调用Connect 方法。

如果创建服务器应用程序,就应设置一个收听端口(LocalPort 属性)并调用Listen 方法。当客户计算机需要连接时就会发生ConnectionRequest 事件。为了完成连接,可调用ConnectionRequest 事件内的Accept 方法。

建立连接后,任何一方计算机都可以收发数据。为了发送数据,可调用SendData 方法。当接收数据时会发生DataArrival 事件。调用DataArrival 事件内的GetData 方法就可获取数据。

2、Winsock控件的常用属性:

a、协议

在使用Winsock控件时,首先需要考虑使用什么协议。可以使用的协议包括TCP 和UDP。两种协议之间的重要区别在于它们的连接状态:

• TCP 协议控件是基于连接的协议,可以将它同电话系统相比。在开始数据传输之前,用户必须先建立连接。

• UDP 协议是一种无连接协议,两台计算机之间的传输类似于传递邮件:消息从一台计算机发送到另一台计算机,但是两者之间没有明确的连接。另外,单次传输的最大数据量取决于具体的网络。

在设计时,可以按如下方式设置应用程序使用的协议:在“属性”窗口中单击“协议”,然后选择sckTCPProtocol 或者sckUDPProtocol。也可以使用程序代码来设置Protocol 属性,如下所示:

Winsock1.Protocol=sckTCPProtocol

b、IP地址(计算机名称)

客户应用程序在与远程计算机相连接的时候,需要知道远程计算机的IP 地址或者计算机名称。

我们连接计算机时可以将其作为RemoteHost 属性的值。代码如下:

Winsock1.RemoteHost=计算机名称或者为Winsock1.RemoteHost=IP地址

服务器程序用到LocalIP 属性,它返回本地机器的IP 地址,格式是IP 地址加点字符串(xxx.xxx.xxx.xxx)。

用RemoteHostIP属性返回远程计算机的IP。

c、端口号

对于客户应用程序来说,RemotePort 属性最重要,它设置要连接的远程端口号。

对于服务器程序来说,LocalPort 属性最重要,它设置所用到的本地端口。这是用于侦听的本地端口。如果指定的是端口0,就使用一个随机端口。在调用了Listen 方法后,属性就包含了已选定的实际端口。

3、Winsock控件的常用事件

a、Connect 事件

该事件是在到服务器的连接建立之后发生。

b、ConnectionRequest 事件

当远程计算机请求连接时出现。

如果有连接请求时,可以用Accept 方法接受新连接。

c、DataArrival 事件

当新数据到达时出现。

如果有新数据到达时,可以用GetData方法接收数据。如果没有获取一个GetData 调用中的全部数据,则事件不会出现。只有存在新数据时才激活事件。可随时用BytesReceived 属性检查可用的数据量。

4、Winsock控件的常用方法

a、Accept 方法

接受新连接。

仅适用于TCP 服务器应用程序。在处理ConnectionRequest 事件时用这个方法接受新连接。在ConnectionRequest 事件中使用Accept 方法。ConnectionRequest 事件有一个对应的参数,即RequestID 参数(新连接请求标识),该参数应该传给Accept 方法。

b、Bind 方法

指定用于TCP 连接的LocalPort(端口号) 和LocalIP。(IP 地址)

在调用Listen 方法之前必须调用Bind 方法。

c、Close 方法

关闭连接。

d、GetData 方法

获取当前的数据块并将其存储在变体类型的变量中。

通常总是将GetData 方法与DataArrival 事件并用。

e、Listen 方法

侦听模式。该方法仅适用于TCP 连接。

当有新连接时就会出现ConnectionRequest 事件。处理ConnectionRequest 事件时,应用程序应该(在一个新的控件示例上)用Accept 方法接受连接。

f、SendData 方法

将数据发送给远程计算机。

大体了解了Winsock控件的使用之后,对理解GPRS通讯的原理来说,有一定的帮助。

接下来我们将根据Winsock控件的使用来大体理解GPRS通讯的原理。

1、启动服务

原理为建立一个Tcp的连接,首先设定数据业务中心的IP地址及监听端口号,将其赋给Winsock控件,并用该控件进行连接,连接成功后,进行监听。

代码如下:

myLocalIP=tcpServer(0).LocalIP‘本地机器的IP 地址(局域网方式)

myLocalIP=“10.14.87.102”‘无线Modem的IP地址(拨号上网方式)

PlngTCPLocalPort=2020 ‘Tcp服务器的监听端口号

Winsock.Bind (Port ,IP)

Winsock.Listen

需要注意的是如果计算机上既有本地连接又有无线Modem,在运行程序(启动服务)时有可能失败,所以,在编写代码的时候一定要注意自己使用的是哪种方式。因为LocalIP属性获取的是本地连接的IP,用无线Modem的时候IP最好是直接赋值。

再者就是两者同时使用的时候,如果用的是无线Modem的拨号连接,则本地连接只能是同一个网段内使用。

2、GPRS模块连接请求处理

代码如下:

Public Sub Winsock_ConnectionRequest(ByVal RequestID As Long)

Winsock.Accept Requested‘接收新连接

End Sub

原理为如果现在有连接请求,先把请求连接的GPRS模块的IP地址记录下来(用的是Winsock控件的RemoteHostIP属性),再判断保存所有GPRS模块信息的数组中是否出现过,如果没有出现过,保存该信息;如果出现过,先卸载该控件,然后重新加载该控件,保存信息。

3、GPRS模块数据通讯处理

代码如下:

Public Sub Winsock_DataArrival(ByVal bytesTotal As Long)

GprsLong=Winsock.BytesReceived‘返回接收到的(当前在接收端缓冲区内的)数据的数量

Winsock.GetData TempArr, vbByte‘用GetData 方法来获取数据,取得的数据存放在TempArr中。

End Sub

原理为如果下面的GPRS模块向数据业务中心发送数据,数据业务中心用GetData方法将数据从接收缓冲区中读出来,然后根据条件进行判断所收到的数据是否正确。

在用GetData方法进行数据接收时需要注意是用哪种方式进行通讯的,收到的数是Hex还是Ascii,这里接收的方式不一样。如果是Ascii方式,接收的数据要赋给一个字符串变量,方式为:Winsock.GetData TempStr, vbString;如果是Hex方式,接收的数据要赋给一个以Byte 数据类型的数组,方式为:Winsock.GetData TempArr, vbByte 。

在接收数据之后,必须先要进行数据编译,如果碰到‘80H和90H’在一块的将其转换成为‘1AH’,碰到‘8AH和9AH’在一块的将其转换成为‘8AH’。

将接收到的数据进行编译之后,就可根据条件进行数据处理了。

4、数据中心发送数据

代码如下:

以十六进制发送数据时为:

Dim Cmd(1 to 7) As Byte

Cmd(1)=H4C

Cmd(2)=H57

Cmd(3)=H01

Cmd(4)=H00

Cmd(5)=H20

Cmd(6)=H21

Cmd(7)=H0D

Winsock.SendData Cmd

以Ascii方式发送数据为:

dim Cmd as string

Cmd=”#01A”+chr(13)

Winsock.SendData Cmd

原理为发送数据时,要知道该GPRS模块的ID号和发送的数据。程序在发送时,先判断该ID号是否收到过,如果没有收到过,程序就不向外发送数据;如果收到过,在发送的时候还要判断GPRS模块当前的状态(是否在线),只有所有条件都符合,才进行发送数据命令。否则程序会出现错误,提示网络连接失败,不能发送数据。

5、停止服务

代码如下:

Winsock.Close

原理为如果用户要关闭服务的话,先关闭所有控件的连接,并把所有加载的控件卸载掉,清空存放GPRS模块的信息,将数据返回长度置为0。

五、在TCP/UDP两种方式下的数据通讯方法1、TCP:

数据传输协议允许创建和维护与远程计算机的连接。连接两台计算机就可彼此进行数据传输。

TCP方式下客户端的连接为:

Winsock.RemoteHost=IP ‘’指定服务器端的IP和端口号

Winsock.RemotePort=Port

Winsock.Connect ‘’’连接

如果连接成功后会响应Winsock 的Connect事件。

TCP方式下服务器端的监听为:

Dim LocalPort as Long

Dim LocalIP as String

LocalPort=Winsock.LocalPort

LocalIP=Winsock.LocalIP

Winsock.Bind LocalPort, LocalIP ‘’指定连接

Winsock.Listen ‘’’侦听

如果此时下面的终端有连接请求时,会响应Winsock 的ConnectionRequest 事件。

2、UDP:

用户数据文报协议(UDP) 是一个无连接协议。跟TCP 的操作不同,计算机并不建立连接。

UDP方式下客户端通讯为:

Winsock.RemoteHost=IP ‘’指定服务器端的IP和端口号

Winsock.RemotePort=Port

Winsock. LocalPort=LocalPort ‘’本地端口

如果有两个终端(A/B)之间通讯,则为:

A: B:

Winsock.RemoteHost=B_IP Winsock.RemoteHost=A_IP

Winsock.RemotePort=B_Port Winsock.RemotePort=A_Port

Winsock. LocalPort=A_Port Winsock. LocalPort=B_Port

UDP方式下服务器端监听为:

Winsock. LocalPort=Port

以上知识分享希望能够帮助到大家!