• STM32物联网通讯GPRS


    一、GPRS相关概念介绍  

      智能家居和物联网都是目前的新兴产业,智能家居和物联网都是通过无线通讯模块与服务端进行数据通讯。其中GPRS通讯是一种常见的方式。GPRS(通用分组无线业务)的简称,是在现有的GSM系统上新增新GGSM(网络支持节点)和SGSN(服务支持节点)节点发展出来的一种新的分组数据承载业务。GPRS网络传输的主要优点:永远在线、按流量计费、快速登陆、高速传输、覆盖范围内不受限制、数据传输可靠等。

      使用GPRS,一般会选择使用GPRS模块,在这里我选择的是广和通厂商的G510模块。GPRS安装到控制器中,主要功能为通过GPRS网络连接到Internet网络,并主动与监听中心建立通信链路,进行双向数据通讯。GPRS模块主要是由G510模块、天线、SIM卡、相关电平转换电路等组成,GPRS模块通过串口与STM32单片机进行数据通讯。

    二、基本初始化流程

      (1)考虑到模块外围电路电容充电效应,建议上电5s后发送开机初始化在命令。

      (2)常用指令

         AT+MRST    OK           -------------  重启模块,应答

         AT+CPIN?         READY  -------------  检查SIM卡是否插好

         AT+CGREG?    OK    -------------  检查网络注册状态

           AT+CSQ     OK           -------------  信号查询

          AT+MIPCALL?         : 0            -------------- 查询网络连接状态(0:未连接;1:连接)

          AT+MIPCALL=1,"cmnet"    OK    ----------------连接网络

          AT+MIPOPEN=1,,"47.105.162.0",1883,0   -------------- 连接服务器

      (3)数据链路层数据处理:实现GPRS数据接收/发送控制,存储串口中断接收到的数据,发送GPRS数据长度和GPRS数据内容。串口收到数据之后会将数据存储到MIPRTCP_DataStreaming()中,这个函数会将接收到的数据进行解析处理。串口接收数据流程如下:

    void USART1_IRQHandler(void) //串口1中断服务程序
    {
      u8 Res;

      if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中断(接收到的数据必须是0x0d 0x0a结尾)
      {
        Res =USART_ReceiveData(USART1); //读取接收到的数据
        MIPRTCP_DataStreaming(Res);

        if((USART1_RX_STA&(1<<15))==0)//接收完的一批数据,还没有被处理,则不再接收其他数据
        {
          if(USART1_RX_STA<USART1_MAX_RECV_LEN) //还可以接收数据
          {
            TIM_SetCounter(TIM4,0); //计数器清空
            if(USART1_RX_STA==0) //使能定时器7的中断
            {
              TIM_Cmd(TIM4,ENABLE); //使能定时器7
            }
            USART1_RX_BUF[USART1_RX_STA++]=Res; //记录接收到的值
          }
          else
          {
            USART1_RX_STA|=1<<15; //强制标记接收完成
          }  
        }

        // USART_ClearITPendingBit(USART1,USART_IT_RXNE);
      }
    }

  • 相关阅读:
    【SQL注入技巧拓展】————11、PostgreSQL渗透测试指南
    【SQL注入技巧拓展】————10、postgresql数据库利用方式
    【XXE技巧拓展】————3、XML实体注入漏洞攻与防
    【XXE技巧拓展】————2、未知攻焉知防之XXE漏洞攻防
    【XXE技巧拓展】————1、浅谈XXE漏洞攻击与防御
    S2-032 远程代码执行漏洞检测与利用
    S2-029 远程代码执行漏洞检测与利用
    Rendering Paths
    IOS: 模型面数控制
    IOS: 账号,证书 好文整理
  • 原文地址:https://www.cnblogs.com/gzqblogs/p/10638377.html
Copyright © 2020-2023  润新知