IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Cat.1模块使用总结(EC600N) -> 正文阅读

[系统运维]Cat.1模块使用总结(EC600N)

由于Cat.4模块(EC20)功耗大,考虑到NB网络覆盖问题(设备在野外工作场景),因此项目上用选择了Cat.1(EC600N)模块,现在把调试过程总结下,希望能够帮助到大家。EC20使用总结请看:单片机和4G模块通信总结(EC20)

一、电源

手册说供电电压≥3.4V,峰值电流3A。

二、通信口

UART和IO口都是1.8V,需要做电平准换。

三、开机顺序

我是上电1s后复位,复位低电平600ms,然后100ms后开机,开机等待10s后进行操作。

四、AT指令

采用消息地体原理,具体请看

《AT指令的一种解析想法》

《编程学习笔记之消息地图》

?指令和Cat.4还是有些区别:

const static msg_t c_tMSGMap[]  =  {
    {"ATE0\r\n",                lte_4g_protocol_default_send},
    {"ATE0\r\n",                lte_4g_protocol_default_send},
    {"ATE0\r\n",                lte_4g_protocol_default_send},
    {"ATE0\r\n",                lte_4g_protocol_default_send},
    {"AT+CPIN?\r\n",            lte_4g_protocol_CPIN},
    {"AT+CSQ\r\n",              lte_4g_protocol_CSQ},
    {"AT+CREG?\r\n",            lte_4g_protocol_CREG},
    //{"AT+CGREG?\r\n",           lte_4g_protocol_CGREG},
//    {"AT$MYNETCON",             lte_4g_protocol_MYNETCON},          //设置APN
//    {"AT$MYNETCON1",            lte_4g_protocol_MYNETCON1},         //设置用户名和密码
    {"AT+QICSGP",               lte_4g_protocol_QICSGP},            //设置APN,用户名和密码
//    {"AT$MYNETACT=0,0\r\n",     lte_4g_protocol_MYNETACT},          //去激活
//    {"AT$MYNETACT=0,1\r\n",     lte_4g_protocol_default_send},      //激活
//    {"AT$MYNETACT?\r\n",        lte_4g_protocol_default_send},      //是否激活成功
    {"AT+QIDEACT=1\r\n",        lte_4g_protocol_MYNETACT},          //去激活
    {"AT\r\n",                  lte_4g_protocol_default_send},
    {"AT\r\n",                  lte_4g_protocol_default_send},
    {"AT+QIACT=1\r\n",          lte_4g_protocol_default_send},      //激活
    {"AT+QIACT?\r\n",           lte_4g_protocol_default_send},      //是否激活成功
//    {"AT$MYNETSRV",             lte_4g_protocol_MYNETSRV},          //配置服务器IP和端口号
    {"AT+QICLOSE=0\r\n",        lte_4g_protocol_MYNETCLOSE},        //关闭socket
    {"AT+QIOPEN",               lte_4g_protocol_QIOPEN},            //创建socket
//    {"AT+QISTATE=1,0\r\n",      lte_4g_protocol_default_send},      //查询连接状态
};

?五、socket客户端操作

5.1通信模式

有三种通信模式:

5.2创建TCP客户端

指令执行流程如消息地图所示,其中AT+QIOPEN 打开Socket 服务

六、数据发送与接收

6.1AT+QISEND 发送数据

说明:

1、此命令只有在缓存模式和直吐模式才有效;

2、此命令发送的是文本格式;

3、此命令需要等待响应‘>’后,再发送用户数据,然后发送<Ctrl+Z>?,发送数据;

6.2AT+QISENDEX 发送16 进制字符串数据

说明:

1、此命令在缓存模式下测试OK,其它模式未测试;

2、此命令支持16进制字符,即:

AT+QISENDEX=0,\"123456ABCDEFTG\"\r\n 返回错误

AT+QISENDEX=0,\"123456ABCDEF\"\r\n 正确,并且服务器收到0x12 0x34 0x56 0xAB 0xCD 0xEF

6.3AT+QIRD 读取收到的TCP/IP 数据

?此模式只在缓存模式有用。

由于我的项目需要支持多种协议,既有RTU(16进制)协议,又有MQTT(文本)协议,因此我配置模块为透传模式。

接收处理如下:

//透明传输出错怎么处理?
static fsm_rt_t lte_4g_protocol_transparent_transmission_ack(uint8_t* pchBuffer,uint16_t hwSize)
{
    uint16_t    n=0;

    if(NULL == pchBuffer || !hwSize){
        return fsm_rt_err;
    }

    if(NULL != strstr((const char*)pchBuffer,"ERROR")){
        POST_MAIL(&s_tLte4gAppBuffer.tMailBoxTemp,(void*)LTE_4G_MAIL_ERROR);
        //printf("mail=%d\r\n",LTE_4G_MAIL_ERROR);
        return fsm_rt_err;
    }else if(NULL != strstr((const char*)pchBuffer,"CARRIER")){//检查到服务器断开
        POST_MAIL(&s_tLte4gAppBuffer.tMailBoxTemp,(void*)LTE_4G_MAIL_ERROR);
        return fsm_rt_err;
    }

    n=(s_tLte4gAppBuffer.hwAPPRxBufferSize+hwSize > UART_BUFFER_SIZE)? (UART_BUFFER_SIZE - s_tLte4gAppBuffer.hwAPPRxBufferSize): hwSize;
    memcpy(s_tLte4gAppBuffer.chAPPRxBuffer+s_tLte4gAppBuffer.hwAPPRxBufferSize,pchBuffer,n);
    if(eeprom_4g_rx_log_is_activate()){
        uint16_t i=0;
        for(i=0;i<n;i++){
            log_in_hex(s_tLte4gAppBuffer.chAPPRxBuffer[s_tLte4gAppBuffer.hwAPPRxBufferSize+i]);
        }
    }            
    s_tLte4gAppBuffer.hwAPPRxBufferSize+=n;

    POST_MAIL(&s_tLte4gAppBuffer.tMailBoxTemp,(void*)LTE_4G_MAIL_OK);
    return fsm_rt_cpl;
}

?

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-13 22:13:16  更:2022-03-13 22:13:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:49:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码