分享

透传模式实战.

 戴维图书馆 2013-05-30

透传模式实战.

      

1.原理及应用

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

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

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

透传模式的建立首先要用AT+I命令定义所有相关的参数(后面详细叙述索要设定的相关参数),然后再用一特殊AT+ISNMD命令进入透传模式。

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

通过串口连续输入3个“+”号,间隔在半秒以内输入,DTU将退出透传模式进入命令模式,此时DTU切换到命令模式并可再次响应AT+I命令。

2.透传模式的配置及创建

2.1本地串口设置

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

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

数据位:78

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

停止位:12

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

2.2激活命令

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

AT+I[!]SNMD(“!”代表自动重连),如果这个参数被设置,DTU将回复“I/OK”,后面跟着“I/DONE”。当这个命令被执行后,如果DTU登录GPRS网络成功,它将关闭所有打开的socket连接,并断开与ISP的连接,进入重新启动阶段。当DTU重启后工作在透传模式时,它将设置串口为固定波特率,同时串口参数的设置根据SNSI参数中定义而定。

当命令中不含有“!”时,DTU只有第一次接收到该命令后直接拨号上线,之后一旦下线,DTU不能自动拨号再次上线,此时DTU处于等待拨号上线的状态时,modem将检测“RING”字符串, DTU将等待“RING”字符串,一旦检测到该字符串,DTU将连到互联网中。上线后,如果RRSV包含值,它将根据RRSV的定义创建socket,发送注册信息,注册信息包含从ISP得到的动态IP地址、监听端口号,这个监听端口号一旦设置,此时设备工作在服务器模式,DTU将等待远程客户端设备的连接。

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

a)    远端服务器关闭了透传模式的socket连接。

b)    IATO设置的时间超时。

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

“!”是特殊的标志,DTU根据这个标志,一旦响应AT+ISNMD命令,它将立即上线。在通信过程中,假如网络出现异常导致设备下线(从GPRS/CDMA网络中退出),此时设备会自动拨号再次建立PPP连接,同时与数据中心再次建立TCP连接,在这种情况下,DTU不将下线,即使透传模式下 的socket被关闭DTU仍将保持在线。只能通过输入“+++”可退出透传模式,退出后BDRF设置的波特率参数将是控制DTU的波特率

2.3断线重连

这里的断线重连机制包含两部分,一个是DTU拨号与移动/联通建立PPP连接的重新建立过程,一旦DTU在接入GPRS/CDMA网络出现异常,此时DTU将自动检测网络,重新拨号上线;另一个是DTU上线后,DTU与数据中心建立的TCP连接的重连过程,在无线网络通信环境里,网络连接的断线是不可避免的,因此在DTU内部设置自动重连机制,一旦网络通信链路断开(即TCP连接断开),DTU自动重新建立与数据中心的TCP连接。断线重连涉及到如下参数的设置SNRDRTORDLIATO

2.4数据包传输

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

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

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

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

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

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

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

2.5结束透传任务

结束透传任务可通过如下方式:

a)  通过串口向DTU传输断开连接的字符串,这个字符串在DSTR参数中设置,针对短连接有效,如果是长连接,此时DTU根据SNRD参数设置的时间间隔重新与数据中心建立TCP的连接。

b)  等待非激活时间超时,超市时间在IATO参数中设置,在这个时间范围内假如没有数据传输,DTU将断开此连接。

这两个条件中只有有一个条件产生,DTU将离线,透传任务将被结束,此时DTU处于等待重新建立连接的触发条件的发生。

 

3.服务器模式

DTU作为服务器模式使用时,DTU将一直处于监听等待状态,监听由远程客户端发起的连接。远程客户端要建立通讯必须要知道服务器设备的IP地址和监听端口号。

做为服务器模式使用时,存在两种可能性,一种是DTU本身具有固定IP地址;另一种是DTU是动态分配的IP地址,下面将分别阐述。

DTU具有固定IP地址:DTU具有的固定IP地址是移动APN网或联通的VPDN网络内的IP地址,这个地址是移动/联通分配的内网地址,这项业务需要跟运营商的数据部联系,以开通此项业务。具有固定IP地址的DTU上线后,其地址就被固定,其他设备可根据这个IP地址就可与其建立数据链路,实现网络通信,此时客户端设备也必须是APNVPDN网络内的设备,客户端设备可以使数据中心服务器(该服务器必须与移动/联通的数据中心通过专线相连)也可以是DTU设备。

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

4.客户端模式

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

工作与客户端模式的DTU,其与数据中心通过TCP建立连接,此时连接又可以分为长连接和短连接模式。

工作于长连接模式的DTU,当链路被建立后,DTU将一直维护这条链路,一旦检测到链路断开的状态,DTU将自动重新建立连接,在长连接模式下,通过DTU可随时收发数据,在对数据实时性要求较高的场合使用此种模式,此时服务器端可通过这个连接向设备端发送数据请求命令,设备端接收到命令后作出相应的回应。

工作与短连接模式的DTU,当链路被建立后,DTU并不维持这个链路,断开链路有如下2种方法:

a)    DTU根据IATO设置的时间监测数据流量,如果在这个时间周期内没有数据,DTU将自动断开这个连接,同时DTU将下线;

b)    DTU根据DSTR参数设置的特殊字符,DTU检测到串口传来该字符,DTU将自动断开连接,同时DTU将下线;

在短连接模式下,DTU离线后,无论是客户端还是服务端都不能进行有效的数据传输,为实现数据传必须使其上线,但设备一般都不在本地,不能直接通过串口进行设置,为解决此问题,DTU内嵌了自动唤醒机制,可通过如下2种方式使其上线:

a)    可通过任意一部电话向其拨号,拨号成功并振铃2次后挂机,处于透传模式的DTU此时拨号接入ISP然后联入互联网,此时在DTU设备中SIM/UIM卡必须开通语音功能;

b)    DTU相连的主机向串口写数据时,DTU检测到有数据写入,会自动上线;

接入网络后,DTU根据参数的设置会与设置好的数据中心建立连接,从而实现数据的传输。

5.     相关AT+I命令介绍

AT+IHSRV:设置远端主机的IP地址和监听端口号。

AT+ILPRT:DTU在作为服务器使用时,该参数设置了本级的监听端口号。

AT+IMIS:设置拨号建立PPP连接时的初始化信息, DTU要进入Internet还是进入APN/VPDN网络,通过该参数可以设置,具体的参数由移动/联通分配给用户。

AT+IIATO:数据通信超时时间,在长连接模式下,超过该参数设置的时间没有数据通信时,DTU断开TCP连接,并等待由SNRD参数设置的时间后,DTU重新建立与数据服务中心的连接。

AT+ISNRD:设置了TCP重新建立连接的超时时间。

AT+IMCBF:最大传输字符长度设置,该参数定义了当接收到该长度的字符后,DTU将发送接收到的数据,因此每次发送的数据长度都一样,当缓冲区内的数据没有达到这个长度时,DTU将等待直到接收到的数据达到这个长度为止。

AT+IMTTF:发送时间间隔设置,该参数定义每个这个时间就发送一次数据,因此每次发送数据长度存在不一致的情况。

AT+IFCHR:特殊字符触发发送,该参数定义了特定的字符,当DTU接收到该字符后,就发送数据,否则一直等待。

AT+IFLW:设置透传模式下是否采用流控,他设置了主机到DTU和DTU内部互联网控制器到Modem的流控。

AT+ISNSI:设置的透传模式下主机到DTU的串口参数,包含波特率、起始位、数据位、停止位、校验位、是否有流控。

AT+IBDRF:设置命令模式下主机到DTU的串口参数的设置,仅包含波特率。

AT+IBDRM:设置DTU内部互联网控制器到Modem的串口参数,仅包含波特率。

AT+IRTO:设置重新建立PPP连接的时间周期。

AT+IRDL:设置重新建立PPP连接的连接次数。

AT+IDSTR:设置断开连接的特殊字符。

AT+ISTYP:设置建立连接的连接协议,是TCP还是UDP。

AT+IMBTB:设置DTU内部最大缓冲区大小,最大值为2048字节。

AT+IISP1/2:设置接入GPRS/CDMA网络的特服号,可设置2个。

AT+IUSRN:设置接入GPRS/CDMA网络的用户名。

AT+IPWD:设置接入GPRS/CDMA网络的密码。

AT+ITUP:是否跟踪网络连接状态,=2表示时时在线,一旦TCP连接断开,DTU将自动重连。

AT+I!SNMD:进入透传模式,自动重连,适用于长连接模式。

AT+ISNMD:进入透传模式,不自动重连,适用于短连接模式。

6.应用场合及特点

应用场合:

1)      下位机是一个简单的不具备IP通信能力的串口设备(RS232/422/485/TTL电平可选),通过串口与上位机实现通信;

2)      上位机软件通过IP通信或通过串口通信,上位机通过串口通信时,在上位机环境中需增加虚拟串口软件;

3)      数据中心服务器要具有一个互联网上真实的IP地址,这个地址可以是固定的也可以是不固定的,中心IP不固定的情况下,在实际应用环境中,中心服务器还需增加一个动态域名客户端软件;或者数据中心服务器具有移动或联通内网的IP地址,此时中心需与移动或联通通过专线建立连接;

4)      DTU参数的设置

基本参数设置:

a.      AT+IISP1=*99***1#AT+IISP1=#777,接入网络的特服号,通过特服号可分别接入GPRSCDMA网络;

b.      AT+IUSRN=WAPAT+IUSRN=CARD,接入网络的用户名;

c.      AT+IPWD=WAPAT+IPWD=CARD,接入网络的密码;

d.      AT+IMIS=AT+CGDCONT=1IP****”或AT+IMIS=AT&D2,接入点名称。接入GPRS网络时,如果接入internet,此参数的****部分设置为cmnet,如果接入APN专网,则****部分设置为移动分配的特殊连接点名称,同时用户名和密码也有移动分配;接入CDMA网络时,接入点名称固定不变,如果接入INTERNET,则用户名和密码都是CARD,如果接入VPDN网络,联通会给这张卡分配一个特定的用户名和密码,根据用户名和密码的认证就可进入不同的网络;

e.      AT+IHSRV=<IP或域名>:端口号,此时DTU作为客户端使用,该参数设置了远端服务器的IP地址和监听端口号,通过这两个参数,DTU就可以与远端服务器建立连接,实现数据通信,IP地址部分也可以为域名,此时在服务中心需增加动态域名客户端软件,详见4.1.2

f.      AT+ILPRT=端口号,此时DTU作为服务端使用,该参数设置了DTU的监听端口,用来等待监听远端客户端跟其建立连接,从而实现数据通信;

g.      AT+ISTYP=0/10TCP1UDP),该参数设置了通信协议类型,即在通信过程中是采用UDP还是TCP,这个参数被设置后,在上位机软件上也要作相应的调整;TCP协议应用于对数据传输可靠性要求较高的情况,UDP协议则对数据传输的可靠性不高,但要求数据要快速传到中心的情况;

h.      AT+ISNMD(!:标志自动重连),不加“!”为短连接模式,IATO参数设置了超时时间,超过这个时间没有数据传输时,TCPPPP(即接入GPRS/CDMA网络的连接)连接同时断开;加上“!”为长连接模式,超过IATO参数设置的超时时间没有数据传输时,此时仅断开TCP连接,然后根据SNRD参数设置的时间间隔重新与中心建立连接;

波特率的设置:

a.      AT+ISNSI=串口参数的设置,该参数设置了DTU在透传模式下与主机串口的属性设置,包含波特率、起始位、数据位、停止位、校验位、流控,该参数只在透传模式有效;

b.      AT+IBDRF=波特率,该参数设置了DTU在命令模式下与主机串口的属性设置,参数仅包含波特率,该参数只在命令模式下有效;

c.      AT+IBDRM=波特率,该参数设置了DTU内部互联网控制器到Modem的波特率设置,这个波特率要等于MODEM的波特率;

d.      AT+IMCM,模式切换命令,通过该命令可将控制权切换到Modem上,返回I/OK后,此时控制权已转移到modem,输入AT命令即可执行相应的功能,如果要将控制权切换到互联网控制器上,输入AT+I命令即可;

e.      AT+IPR=波特率,该命令是Modem上的AT命令,他设置了modem的串口波特率,这个波特率要等于BDRM的波特率,否则主机将不能控制Modem

流控的设置:

a.      AT+IFLW=一个字节数,通过第01位来表示不同的流控,

0

1

描述

0

0

主机到DTU为软件流控

DTU内部互联网控制到MODEM无流控

1

0

主机到DTU为硬件流控

DTU内部互联网控制到MODEM无流控

0

1

主机到DTU为软件流控

DTU内部互联网控制到MODEM为硬件流控

1

1

主机到DTU为硬件流控

DTU内部互联网控制到MODEM硬件流控

流控设置后,相应的SNSI参数的流控标志设置为1,进入透传模式后,流控才起作用;

链路保障机制参数设置:

a.      AT+ISNRD=时间值,在透传模式下,如果DTU与数据中心的TCP连接因异常而断开,经过这个超时时间之后,DTU自动恢复与数据中心的TCP连接;

b.      AT+IRDL=重播次数,DTU在透传模式下,如果DTUISP的连接产生异常而断开,此时DTU判断重播次数是否超过该参数这是的值,如果没超过,DTU自动拨号重新建立与ISPPPP连接

c.      AT+IRTO=时间值,DTU在透传模式下,如果DTUISP的连接产生异常而断开,此时DTU将等待这个超时时间间隔,超过这个时间,DTU自动拨号,重新建立与ISPPPP连接;

特殊参数设置:

a.      AT+IIATO=时间值(单位:秒),设置了没有数据流的超时时间间隔,在这个时间范围内没有数据传输时,DTU将自动断开TCP的连接

b.      AT+IMBTB=缓冲区大小(单位:字节),设置了DTU内部最大缓冲区大小,最大为2048字节

c.      AT+IMCBF=发送缓冲区大小(单位:字节),当DTU接收到这个长度的数据量之后,DTU将发送数据,否则等待接收,直到接收到的数据量达到这个长度为止;

d.      AT+IMTTF=发送时间间隔(单位:毫秒),DTU每隔这个时间就发送一次数据;

e.      AT+IFCHR=特殊字符,DTU接收到该字符时,就发送数据

f.      AT+IDSTR=特殊断开连接字符,DTU接收到该字符时将断开TCP的连接,建议不要设置该参数,因为在实际发送的数据过程中,任何数据都可能被发送,尤其发送16进制数据时更是如此,这样易产生误操作;

特点:

a.      DTU在整个环境中是一个即插即用的设备,上位机与下位机均不用作改动,接上DTU设备,在DTU设备上简单的设置参数即可实现上位机与下位机的通信;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多