透传模式(透明传输SeriaNet)详解

1.简介

        SerialNet模式将本地异步串口通信转换成基于TCP/UDP协议的网络通信。其主要目是将串行通信的简单设备实现在网络上的通信,而这些设备不需要做任何改变,为此,SerialNet模式定义了一系列相关的操作参数,这些参数的定义实现了网络连接所需要的属性。当DTU工作在SerialNet模式时,在设备串口与网络之间他的工作方式就象路由器的路由过程。

         SerialNet模式的工作方式不同于客户端或服务端设备(客户端设备通常指PLC、RTU等数据采集设备,服务端设备指系统中心服务器),当客户端发起通讯请求时,在两设备之间数据传输之前,DTU必须与远端服务中心建立网络连接,也就是说,客户端设备(例如PLC)要与数据中心进行数据传输时,首先客户端设备与DTU设备的串口连接,DTU在进入SerialNet模式后,自动被调用去与服务器中心设备建立网络连接。

        DTU进入SerialNet模式后,既可以作为客户端模式也可作为服务端模式。工作在SerialNet模式下的DTU将自动完成串口到网络通信的转换,所有数据可透明的在两设备之间双向传输。

2SerialNet模式

        SerialNet模式的建立首先要用AT+I命令定义所有相关的参数,然后再用一特殊AT+I命令进入SerialNet模式。

        DTU一旦进入SerialNet模式,将不再接收任何AT+I命令,通过与主机串口的连接,DTU专注于处理本地设备串口的数据,DTU不对数据做任何处理(即透明传输)。在这种模式下,自动波特率不起作用,在进入SerialNet模式之前,固定波特率必须设置。

       SerialNet模式可通过以下两种方法来终止:

a)        通过k1k2k3三个跳线监控数据流,通过不同的组合可实现多种方案来触发复位机制。

b)        通过串口连续输入3个“+”号,间隔在半秒以内

    只要有其中一个事件发生,DTU将退出SerialNet模式然后重启,此时DTU切换到命令模式并可再次响应AT+I命令。

3.服务器模式

      DTU作为服务器时,DTU将一直处于等待状态,监听由远程客户端发起的连接。远程客户端要建立通讯必须要知道服务器设备的IP地址和监听端口号,如果DTU设备处于离线状态时,通过拨号可使其被唤醒上线(振铃2次后挂机,处于SerialNet模式的DTU此时拨号接入ISP然后联入互联网),设备一旦接入网络,它将被分配一个动态IP地址,为实现网络连接,这个地址必须传给客户端设备。上线后服务端设备根据RRSV参数中包含的服务器IP地址和端口号,自动执行IP注册过程,DTU将通过Socket注册模式注册它的IP地址和监听端口号到注册服务器上。远程客户端可通过注册服务器获取服务端设备的动态IP地址和监听端口号,根据这个IP地址,远程客户端就可与服务端设备建立连接,一旦连接被建立,在两设备之间就可实现双向数据通信,直到终止信号发生,此时连接才被断开。

4.客户端模式

        DTU作为客户端时,DTU设备首先要与服务端建立连接。通过串口与DTU相连的设备首先向串口发送数据,DTU(处于SerialNet模式)接收并缓存这些数据,如果DTU没有与远程服务器建立连接,则DTU首先要建立这个连接。(DTU上线之后,DTU根据RRSV和RRWS参数去执行IP注册过程(如果参数为空,则不执行注册过程)),一旦socket连接建立成功,在连接期间传输所有缓存中存储的数据。MBTB参数分配了最大缓存区,如果在连接建立之前,串口接收到超过最大缓存区的数据,这些数据将被丢弃。远程服务器的IP地址和监听端口号是SerialNet模式要配置的参数。一但连接被建立,数据就可以在客户端与服务端之间双向传输。如果这个连接最终没有被建立,客户端的数据将被丢弃(此种情况类似于数据发送到串口,但串口没有连接串口线)。数据可随时进行传输,直到有终止连接的信号发生,此时连接才被断开。

5.自动SerialNet唤醒过程

    当DTU处于离线状态时,无论是作为客户端还是作为服务端,都不能进行有效的数据传输,为实现数据传输必须使其上线,但设备一般都不在本地,不能直接通过串口进行设置,为解决此问题,DTU内嵌了自动唤醒机制,此时在DTU设备中SIM/UIM卡必须开通语音功能,可通过任意一部电话向其拨号,拨号成功并振铃2次后挂机,处于SerialNet模式的DTU此时拨号接入ISP然后联入互联网,接入网络后,DTU根据参数的设置进入相应的工作模式,既可实现数据的传输。

6.数据包传输

        DTU可将接收到的数据缓存起来,打包然后通过网络传输到远端系统。当遇到下列条件之一时数据将被打包发送。

a)        从串口接收到最大字节数,数据将被发送,参数由MCBF设置

b)        可设置最大传输单元,DTU可按照最大传输单元大包进行数据传输,参数有MPS设置。

c)        当遇到特定字符时,发送数据,参数由FCHR设置。

d)        发送数据间隔时间超时时,发送数据,即每隔间隔时间,设备就发送数据,参数由MTTF设置。

    上诉4个条件只要有一个条件成立,数据就会被发送,这些参数可通过AT+I命令设置。

    当为UDP传输时,数据包的大小是根据一次性写入串口数据包的大小有关。当为TCP通信时,数据包在传输之前要被合并,这个遵循TCP协议的相关规定。

7.结束SerialNet任务

   断开SerialNet任务可通过如下方式:

a)        通过串口向DTU传输断开连接的字符串,这个字符串在DSTR参数中设置。

b)        等待非激活时间超时,超市时间在IATO参数中设置。

   这两种情况产生,DTU将离线,SerialNet任务将被中断,此时DTU处于等待重新建立连接的触发条件的发生。

8SerialNet连接失败

    如果DTU建立SerialNet连接失败,此时SerialNet模式处于非激活状态SerialNet将等待一个超时后再重新与服务中心建立连接,这个超时时间在SNRD参数中设置。

9.本地串口设置

   针对SerialNet模式,通过设置SNSI参数,串口参数配置如下:

波特率:240048009600192003840056K115K,单位bit/秒,

数据位:78

校验位:无,偶校验,奇校验

停止位:12

流控:无(0)或硬件(1

10.激活命令

    通过如下命令,DTU将强制进入SerialNet模式:

        AT+I[!]SNMD(“!”代表自动重连),如果这个参数被设置,DTU将回复“I/OK”,后面跟着“I/DONE”。当这个命令被执行后,如果DTU登录GPRS网络成功,它将关闭所有打开的socket连接,并断开与ISP的连接,进入重新启动阶段。当DTU重启后工作在SerialNet模式时,它将设置串口为固定波特率,同时串口参数的设置根据SNSI参数中定义而定。当DTU处于等待拨号上线的状态时,modem将检测“RING”字符串, DTU将等待“RING”字符串,一旦检测到该字符串,DTU将连到互联网中。上线后,如果RRSV包含值,它将根据RRSV的定义创建socket,发送注册信息,注册信息包含从ISP得到的动态IP地址、监听端口号,这个监听端口号等待远端库户端的连接。

    在下列情况发生时,DTU将断开socket连接:

a)        远端服务器关闭了SeiralNetsocket

b)        IATO设置的时间超时

c)        设备从串口接收到由DSTR设置的字符串

   “!”是特殊的标志,DTU根据这个标志,一旦响应AT+ISNMD命令,它将立即上线。在这种情况下,DTU不将下线,即使SerialNet socket被关闭DTU仍将保持在线。通过输入“+++”可退出SerialNet模式,退出后BDRF设置的波特率参数将是控制DTU的波特率。

你可能感兴趣的:(单片机开发)