完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
在网络设置中有HTTP、SOCKET等类型。SOCKET是建立在传输层协议(主要是TCP和UDP)上的一种套接字规范,它定义两台计算机间进行通信的规范(也是一种编程规范)。如果说两台计算机是利用一个通道进行通信,那么这个通道的两端就是两个套接字。套接字屏蔽了底层通信软件和具体操作系统的差异,使得任何两台安装了TCP协议软件和实现了套接字规范的计算机之间的通信成为可能。
1 系统组成 系统的组成如图1所示。该系统利用现有的GPRS网络,单片机通过串口对GPRS模块进行收发控制,实现SOCKET通信。 系统各部分的说明如下: ①单片机采用了AT89C52,它带有一个串口; ②GPRS模块。本文以利事达信息技术有限公司开发的GPRS模块LT8030为例。LT8030内嵌了完整的TCP/IP协议栈,包括TCP、UDP、FTP、SOCKET、Telnet、POP3、SMTP、HTTP等,为用户提供了更简单的网络接口。LT8030采用的GPRS技术,无缝覆盖、永远在线且按流量计费,紧密结合产品应用领域所遇到的实际问题,进行全面的优化和升级,使产品开发变得更容易、更快捷。它采用标准的RS232接口,用户可以通过单片机或其他CPU的UART口,使用相应的AT命令对模块进行控制,达到使其产品可以轻松进入GPRS网络的目的。 ③服务器。建立SOCKET连接必须具有公网的IP地址,故应保证服务器中心计算机连接到Internet并且取得公网IP地址。在单片机对GPRS模块控制之前,服务器端需运行SOCKET端口监听程序(此监听程序一般是现成的),并且设为监听状态,端口号也要设定,例如port:1024。 2 单片机与GPRS模块的连接 单片机与GPRS模块一般采用串行异步通信接口,通信速度可设定,通常为9600bps。采用RS232电缆方式进行连接时,数据传输的可靠性较好。单片机通过电平转换电路与GPRS模块连接,电路比较简单,电路原理图如图2所示。所涉及的芯片MAX232用于串行通信接口与232通信接口之间的电平转换。 图1系统组成框图 图2单片机与GPRS模拟连接的电路原理图 MAX232的T1IN、T2IN、R1OUT、R2OUT为接TTL/CMOS电平的引脚;T1OUT、T2OUT、R1IN、R2IN为接RS232电平的引脚。TTL/CMOS电平的T1IN、T2IN引脚应接AT89C52的串行发送引脚TXD;R1OUT、R2OUT应接AT89C52的串行接收引脚RXD。与之对应,RS232电平的T1OUT、T2OUT应接GPRS模块的接收端RXD;R1IN、R2IN应接GPRS模块的发送端TXD。 现选用其中一路发送/接收,R1OUT接AT89C52的RXD,T1IN接AT89C52的TXD,T1OUT接GPRS模块的RXD,R1IN接GPRS模块的发送端TXD。因为MAX232具有驱动能力,所以不需要外加驱动电路。 3 建立SOCKET连接的命令 下面对SOCKET通信中要用到的一些AT命令进行说明。 3.1 基本设置 ①GPRSISP码。 AT+IISP1=*99***1#//全国通用 ②登录用户名。 AT+IUSRN=WAP//GPRS网络登录名 ③登录密码。 AT+IPWD=WAP//GPRS网络登录密码 ④MODEM类型。 AT+IMTYP=2//定义GPRSMODEM ⑤初始化命令。 AT+IMIS=“AT+CGDCONT=1,ip,CMNET” ⑥域名服务器。 AT+IDNS1=211.136.18.171 //DNS服务器地址,全国通用 ⑦扩展码(XRC)。 AT+IXRC=0 3.2 SOCKET设置 ①建立一个TCP通信。 AT+ISTCP:218.66.16.173,1024 建立SOCKET连接,218.66.16.173为应用服务中心计算机端IP地址(实际地址由实际情况决定),1024为端口号(端口号由中心SOCKET端口监听程序设置决定)。如果连接成功,LT8030返回I/xxx。xxx为LT8030中本次SOCKET连接的句柄号。中心监听程序会显示连接的终端IP地址。如果连接失败,LT8030返回I/ERROR(xxx)。xxx为错误代码。 ②发送数据。 AT+ISSND%:xxx 发送数据,xxx为句柄,为要发送的字符长度,为要发送的数据。发送成功后,在中心端可看到终端发送的数据。最多一次能够发送5K以下的数据。 ③查询SOCKET状态。 AT+ISST:xxx 查询SOCKET状态,xxx为句柄。LT8030返回I/。如果=000,表示该端口连接正常;如果≥1,LT8030通过该端口从中心接收存在Buffer里的字节数;如果《0,则SOCKET错误。 ④接收数据。 AT+ISRCV:xxx xxx为句柄。该指令会读取LT8030通过该句柄从中心接收到的,存在Buffer里的数据;Buffer最大可存储30K的数据。 ⑤关闭SOCKET通道。 AT+ISCLS:xxx 关闭SOCKET通道,xxx为句柄。 4 程序的设计 根据单片机与GPRS模块通信协议的约定,单片机串行口设为方式1,波特率为9600bps,8位UART,1位起始位,1位停止位,无奇偶校验。上电后,首先向GPRS模块发送基本设置命令,即ISP码、用户名及用户密码帧等,其中ISP码必须为“*99***1#”,用户名和用户密码可以任意设置,但不能为空。在使用LT8030GPRS上网功能之前,必须正确设置这些参数。参数一旦设置后,即永久保存,以后无需重新再设(以上设定为LT8030C出厂时的默认参数)。然后向GPRS模块发送SOCKET设置帧,如成功,则点和点通信环境已建立,接着就调用发送数据帧。 开机上电后,程序在主函数中运行,单片机进行初始化。初始化包括设置串口工作方式、波特率,并初始化变量参数和标志位。 结语 随着计算机和通信技术的进步,当今社会的生产正朝着高效、准确和稳定的方向发展,这对数据传输的实时性、可靠性、信息量提出了更高的要求,为此介绍利用GPRS模块实现SOCKET通信的系统。本文采用内嵌TCP/IP协议的GPRS模块LT8030,在8位微控制器AT89C52上实现了对LT8030的控制,并实现了基于GPRS的SOCKET通信功能,具有外围器件少、电路简单、系统成本低等优点。 |
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2547 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2332 浏览 5 评论
3159 浏览 3 评论
2804 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2762 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
610浏览 1评论
855浏览 0评论
970浏览 0评论
623浏览 0评论
449浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 21:12 , Processed in 1.084491 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号