TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能,用户数据报协议(UDP)是同一层内另一个重要的传输协议。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层之下的中间层。
不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元( MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。
TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的包发回一个相应的确认(ACK);如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。这篇文章就是和大家一起了解SIM900A与网络调试助手进行TCP收发通信的。
1.设置网络因为我这里是通过路由器上网,所以要先进行一些设置。先查看自己本机IP,这里是192.168.1.103,如图1.
图1
通过自己的路由器,查看本机对外的IP,如图2.
图2
路由器的设置里面有一项“转发规则”,如图3,选择“DMZ主机”。
图3
在“DMZ主机”中,启动DMZ主机状态,将DMZ主机IP设置为前面查到的192.168.1.103,然后保存,如图4.
图4
这样就把本机的IP映射到外网上,就可以从外网直接访问自己的电脑。
2.打开网络调试工具,选择协议类型为“TCP Server”,本地端口号可以设置为“8000”,点击连接,如图5所示。
图5
3.发送AT指令进行GPRS测试
在连接好硬件后,可以先发送ATE0指令关掉回显。
1)AT+CGCLASS=”B”
设置GPRS移动台类型为B.
收到回复OK,表示设置成功。
2)AT+CGDCONT=1,”IP”,”CMNET”
定义PDP上下文,设置PDP上下文标志为1,IP协议,接入点为CMNET.
收到OK,表示成功。
3)AT+CGATT=1
附着GPRS
收到OK,表示成功。
4)AT+CIPCSGP=1,”CMNET”
设置GPRS连接,接入点为CMNET.
收到OK,表示成功。
5)AT+CLPORT=”TCP”,”2000”
设置本地TCP端口为2000.
收到OK,表示成功。
6)AT+CIPSTART=”TCP”,”112.87.243.40”,”8000”
启动连接到PC,IP和端口为前文所述。
等待一会儿,收到CONNECT OK,这时,表明开发板已经通过GPRS与PC建立连接。如图6所示。
图6
7)在串口工具中通过下面的指令发送数据
首先发送AT+CIPSEND
这时收到回复 》
发送一组字符(不发送新行):Hello SIM900A!
然后,以16进制方式发送1A,即发送0x1A
收到回复SEND OK,表示发送成功,如图7所示。
图7
这时网络调试工具收到刚发送那串字符,如图8,【Receive from 117.136.19.111 : 30549】这是由网络调试工具自动加上的信息,表示开发板上SIM900A模块的IP为117.136.19.111,端口为30549.
图8
这时通过网络调试工具发送一串字符 Hello EDNChina
接着在串口调试工具端可以收到这组字符,如图9所示。
图9
最后关闭TCP连接,先发送AT+CIPCLOSE=1,再发送AT+CIPSHUT,如图10所示。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)