互联网数据传输使用手册
摘要
在基于TCP/IP协议的基础之上,可以实现在互联网上的数据传输,这包括电脑到电脑以及电脑与带有TCP/IP协议的GPRS通讯模块的之间的通讯。将传感器野外的数据返回至计算机,即可用于实时监控。野外的传感器可用串口通讯将数据发送至GPRS通讯模块。本次通讯系统是基于LabView的编程环境下实现的。
关键词:TCP/IP 数据传输 GPRS通讯模块 LabView
原理介绍
TCP/IP及互联网数据传输部分
TCP/IP协议是一个点对点的互联网数据传输协议,两点之间的TCP连接的建立需要其中一点的IP地址,以及一个端口(0--65535),端口号需要两边都设置为同一个端口号。建立连接后,通过TCP发送的数据均为字符串,需要知道数据长度来读取数据(否则会出现数据读取错位,
例如本应读取4位数据,但是设置读取5位数据长度,那么第一次读取的数据则是第一次发送的数据加上第二次发送的数据的第一位,其他情况以此类推)。
在物理构架上,采用了野外传感器由串口通信将数据发送至GPRS模块,GPRS模块将数据通过互联网发送到服务器(服务器带有固定IP),再由本地电脑登陆服务器查询数据。
传感器与GPRS模块之间的通讯及MODBUS通讯协议简介
在野外的传感器与用于将数据上传至服务器的GPRS通讯模块之间还存在着一个基于串口的通讯协议。基于串口的数据通讯方式可以大致分为两类,查询方式与自动发送方式,前者需要发送一个特定的查询指令,才会返回串口数据,后者则是一旦有了数据会自动发送。
本次使用的是RS232串口,基于MODBUS串口通讯协议,该串口通讯下所发送的数据均为十六进制该通讯协议是工作在查询方式,需要向对方发送一个查询指令(附带有MODBUS-CRC校验码)才会将数据返回,该查询指令计算方法可见于本手册附录。而通过MODBUS协议返回的数据,长度固定为9位,其中第4位到第7位为数据位,截取该部分数据并将其从十六进制转换为单精度浮点数,即可得到所需要的数据。
本地计算与服务器
    本地计算与服务器之间可采用Windows自带的远程桌面控制软件mstsc,可在运行中输入mstsc调用。
系统的结构及流程
本系统在基于上述两个通讯协议之下工作的,流程图如下:
1.将GPRS通讯模块可以理解成是透明的,起到一个中转的作用;
2.先发出查询指令,才能接收返回数据;
传感器接到查询指令后返回数据
通过mstsc控制服务器
模块将接收到的查询指令发送给传感器
服务器接收模块发送的数据
服务器向模块发送查询指令
                 
服务器上的程序原理及流程
服务器上的程序实现两个主要功能:对查询指令添加MODBUS-CRC校验码并发送该查询指令、接收返回的数据并且对该数据进行字符串截取和数制转换。
流程图见于下方:
GPRS通讯模块部分
GPRS通讯模块是用于在服务器与传感器之间中转的桥梁,可以理解为是一个透明的部分。
该GPRS通讯模块与传感器之间基于RS232传输,而在本次所使用到的传感器的数据输出的表头是基于MODBUS协议下的工作方式,那么GPRS模块想要获取该表头的数据则需要向表头发送一个添加了MODBUS-CRC校验码的查询指令,该查询指令模块则是从服务器接收而来的,GPRS模块在获得了返回的数据后,继而将该数据转发给服务器。
GPRS模块在通电的之后会自动向服务器发起连接,成功建立连接后会首相向服务器发送一个注册包,之后进入透明传输工作模式,所以在之前的流程图中会看到服务器有个接收注册包的部分。
使用介绍
远程桌面
Windows自带有一个远程桌面控制软件,点击开始-》运行-》输入mstsc-》确定-》跳出输入框-》输入IP地址61.160.211.202-》确定。
之后可见远程桌面界面,默认用户名administrator,密码为qwer7410,区分大小写。
软件介绍
进入远程桌面后,在桌面的左下方可以看见一个程序(红圈出)与文件夹(黑圈出),其中程序即为服务器上用于接收数据的软件,文件夹则是存储接收到的数据。
打开“程序”后,即显示其前面板,点击红圈出部分即可运行程序,蓝圈出部分用于停止程序,黑圈出部分用于显示实时的返回数据,黄圈出部分用于停止某一个循环(其排列顺序为横向换行,1-2-3,4-5-6以此类推)非特殊需要请勿点击此部分停止。字符串截取前2位
如果要查看已经返回的存储的数据,则点开之前黑圈出的文件夹,即可查询对应编号的传感器返回的数据。
附录
MODBUS-CRC协议校验码的算法
1.预置16位寄存器为十六进制FFFF(即全为1)。称此寄存器为CRC寄存器。
  2.把第一个8位数据与16CRC寄存器的低位相异或运算,把结果放于CRC寄存器。
  3.把寄存器的内容右移一位,用0填补最高位,检查最低位。
  4.如果最低位为0:重复第3步,再次右移一位;如果最低位为1CRC寄存器与多项式A001(1010 0000 0000 0001)进行异或运算。
  5.重复步骤34,直到右移8次,这样整个8位数据全部进行了处理。
  6.重复步骤25,进行下个8位数据的处理。
  7.最后得到的CRC寄存器的值即为CRC码。
  8.CRC码分成高8位和低8位,按低位在先,高位在后,将它们加到传送数据之后。
MODBUS协议下的三个通道的查询指令
      010400000002  读第1通道
      010400020002  读第2通道
      010400040002  读第3通道
在服务器上的程序预先设置的是读取第一通道的数据,若在使用的时候有实际使用需要可根据下述方法修改:
1.打开黄圈出部分VI
2.选择红圈出部分显示程序框图
3.在红箭头处输入对应通道的查询指令后关闭并保存
注意事项
1.模块使用需插入SIM卡。
2.服务器因为远程桌面控制,在网络环境不好的时候,远程桌面偶尔会出现卡顿。
3.远程桌面打开时如果长时间没有使用(移动鼠标或者敲击键盘等),服务器会自动待机黑屏,此时移动下鼠标或者敲击键盘后等待片刻即可,若还未恢复正常可重新连接服务器,此
次重新连接需要少许等待黑屏时间即可恢复正常。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。