0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于AT89C52单片机和LT8030实现套接字规范的计算机通信设计

电子设计 来源:电子技术应用 作者:电子技术应用 2021-06-24 16:56 次阅读

网络设置中有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 接口,用户可以通过单片机或其他CPUUART口,使用相应的AT命令对模块进行控制,达到使其产品可以轻松进入GPRS网络的目的。

③ 服务器。建立SOCKET连接必须具有公网的IP地址,故应保证服务器中心计算机连接到Internet并且取得公网IP地址。在单片机对GPRS模块控制之前,服务器端需运行SOCKET端口*程序(此*程序一般是现成的),并且设为*状态,端口号也要设定,例如port:1024。

2 单片机与GPRS模块的连接

单片机与GPRS模块一般采用串行异步通信接口,通信速度可设定,通常为9600 bps。采用RS232电缆方式进行连接时,数据传输的可靠性较好。单片机通过电平转换电路与GPRS模块连接,电路比较简单,电路原理图如图2所示。所涉及的芯片MAX232用于串行通信接口与232通信接口之间的电平转换。

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 基本设置

① GPRS ISP 码。

AT+IISP1=*99***1# //全国通用

② 登录用户名。

AT+IUSRN=WAP//GPRS网络登录名

③ 登录密码。

AT+IPWD=WAP// GPRS网络登录密码

④ MODEM 类型。

AT+IMTYP=2 //定义GPRS MODEM

⑤ 初始化命令。

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,波特率为9 600 bps,8位UART,1位起始位,1位停止位,无奇偶校验。上电后,首先向GPRS模块发送基本设置命令,即ISP码、用户名及用户密码帧等,其中ISP码必须为“*99***1#”,用户名和用户密码可以任意设置,但不能为空。在使用LT8030 GPRS 上网功能之前,必须正确设置这些参数。参数一旦设置后,即永久保存,以后无需重新再设( 以上设定为LT8030C出厂时的默认参数)。然后向GPRS模块发送SOCKET设置帧,如成功,则点和点通信环境已建立,接着就调用发送数据帧。

开机上电后,程序在主函数中运行,单片机进行初始化。初始化包括设置串口工作方式、波特率,并初始化变量参数和标志位。

结语

随着计算机和通信技术的进步,当今社会的生产正朝着高效、准确和稳定的方向发展,这对数据传输的实时性、可靠性、信息量提出了更高的要求,为此介绍利用GPRS模块实现SOCKET通信的系统。本文采用内嵌TCP/IP协议的GPRS模块LT8030,在8位微控制器AT89C52上实现了对LT8030的控制,并实现了基于GPRS的SOCKET通信功能,具有外围器件少、电路简单、系统成本低等优点。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43970

    浏览量

    620784
  • 计算机
    +关注

    关注

    19

    文章

    6646

    浏览量

    84489
  • 操作系统
    +关注

    关注

    37

    文章

    6280

    浏览量

    121870
收藏 人收藏

    评论

    相关推荐

    基于AT89C52单片机的SD卡的读写设计

      应用AT89C52读写SD卡有两点需要注意。首先,需要寻找一个实现AT89C52单片机与SD卡通讯的解决方案;其次,SD卡所能接受的逻辑电平与A
    发表于 08-18 10:49

    AT89C52 8位高性能单片机

      AT89C52 8位高性能单片机  兼容标准MCS-51指令系统的AT89C52单片机是一个低电压,高性能CMOS 8位单片机,片内含8
    发表于 03-28 14:23

    AT89C52单片机概述

    AT89C52芯片是51单片机典型芯片型号。AT89C52是一个低功耗,高性能CMOS 8位单片机,片内含8k字节Flash可擦写存储器(PEROM)。
    发表于 08-30 11:07

    急!急!急!基于AT89C52单片机语音录放系统的实现

    基于AT89C52单片机语音录放系统的实现,,求proteus仿真啊。拜托各位高人了
    发表于 11-10 15:54

    STC单片机计算机通信

    各位大佬,本人最近刚开始学习用STC89C516单片机,想用它与计算机通信,可以直接利用单片机上USB转232模块
    发表于 04-28 09:35

    基于GPRS模块LT8030的SOCKET通信应用实现设计

    规范,它定义两台计算机间进行通信规范(也是一种编程规范)。如果说两台计算机是利用一个通道进行
    发表于 07-16 07:48

    如何利用GPRS模块实现SOCKET通信的系统?

    本文采用内嵌TCP/IP协议的GPRS模块LT8030,在8位微控制器AT89C52实现了对LT8030的控制,并实现了基于GPRS的SO
    发表于 05-31 07:00

    滑稽AT89C52表情实现

    滑稽AT89C52表情实现,【单片机】滑稽AT89C52表情实现零、原因在群里看到了这样一个表情:这是用51做的,刚好开发板上有8个小灯,想
    发表于 07-21 08:19

    基于AT89C52芯片的寻迹小车论文 精选资料分享

    单片机的应用与开发智能循迹避障小车摘 要:利用红外对管检测黑线与障碍物,并以STC89C52单片机为控制芯片控制电动小汽车的转向,从而实现自动循迹避障的功能。关键词:智能小车 STC
    发表于 07-26 06:17

    基于AT89C52单片机的数字电压表的设计资料分享

    一、系统组成及工作原理1.1 系统组成该基于AT89C52单片机的数字电压表设计由AT89C51单片机,ADC0809芯片(A/D转换器),LED数码管显示电路以及蜂鸣器电路等几部分组
    发表于 12-02 08:30

    STC89C52是什么意思呢?

    STC89C52单片机,STC89C52STC89C52看到涛哥这篇文章了,纪念一下还在搞嵌入式的我们!硬件实物图实物抽象化的图为:这个STC89C52
    发表于 12-02 07:43

    基于AT89C52单片机的步进电机控制系统设计

    基于AT89C52单片机的步进电机控制系统设计 摘 要: 提出了一个由AT89C52单片机控制
    发表于 04-20 09:31 418次下载

    at89c52单片机引脚说明,AT89C52高性能8位单片机

    at89c52单片机引脚说明,AT89C52高性能8位单片机
    发表于 04-29 22:05 2.4w次阅读
    <b class='flag-5'>at89c52</b><b class='flag-5'>单片机</b>引脚说明,<b class='flag-5'>AT89C52</b>高性能8位<b class='flag-5'>单片机</b>

    AT89C52单片机的SD卡读写设计

    应用AT89C52读写SD卡有两点需要注意。首先,需要寻找一个实现AT89C52 单片机与SD卡通讯的解决方案;其次,SD卡所能接受的逻辑电平与AT
    的头像 发表于 02-16 11:23 4102次阅读
    <b class='flag-5'>AT89C52</b><b class='flag-5'>单片机</b>的SD卡读写设计

    AT89C52单片机实现喇叭驱动的设计

    AT89C52单片机实现喇叭驱动的设计
    发表于 11-23 17:06 48次下载
    <b class='flag-5'>AT89C52</b><b class='flag-5'>单片机</b><b class='flag-5'>实现</b>喇叭驱动的设计