STM32开发 | 移远4G-Cat.1模组EC200N-CN开发
一、硬件说明
1、引脚分配图
2、常用引脚说明
模块输入电源
引脚名 描述 VBAT_BB 模块基带电源(Vnom = 3.8 V) VBAT_RF 模块射频电源(Vnom = 3.8 V) GND 接地引脚 模块输出电源
引脚名 描述 VDD_EXT 外部电路 1.8 V 供电(Vnom = 1.8 V) 开/关机
引脚名 描述 RESET_N 模块复位(低电平有效,1.8 V 电压域,不用则悬空。) PWRKEY 模块开/关机 (VBAT 电压域) SIM 接口
引脚名 描述 USIM_VDD (U)SIM 供电电源(模块自动识别 1.8 V或 3.0 V (U)SIM 卡。) USIM_DATA (U)SIM 数据 USIM_CLK (U)SIM 时钟 USIM_RST (U)SIM 复位 主串口
引脚名 描述 MAIN_TXD 主串口发送(1.8 V 电压域) MAIN_RXD 主串口接收(1.8 V 电压域) 天线接口
引脚名 描述 ANT_MAIN 主天线接口(50 Ω 特性阻抗)
二、常用AT指令说明
1、AT
- 说明: 检测AT指令收发是否正常
- 模组收到指令回复:
AT OK
2、AT+CPIN?
- 说明: 查询SIM卡状态(是否插入SIM卡、锁定SIM卡、解锁SIM卡),返回 READY则表示模组正常
- 模组收到指令回复:
AT+CPIN? +CPIN: READYOK
3、AT+CREG?
- 说明: 查询当前网络注册状态,正常则回复
+CREG: 0,1
- 模组收到指令回复:
AT+CREG? +CREG: 0,1OK
4、AT+CEREG?
- 说明: 查询当前EPS网络注册状态,正常则回复
+CEREG: 0,1
- 模组收到指令回复:
AT+CEREG? +CEREG: 0,1OK
5、AT+QICSGP=1,1,“CMNET”,"","",0
说明: 配置 TCP/IP 场景1参数,指令原型为
AT+QICSGP=<contextID>,<context_type>,<apn>,<username>,<password>,<authentication>;
模组收到指令回复:
AT+QICSGP=1,1,"CMNET","","",0 OK
参数说明:
参数 说明 contextID 整型。移动场景 ID。范围:1~15。 context_type 整型。协议类型。(1 IPv4 \ 2 IPv6 \ 3 IPv4v6) APN 字符串类型。接入点名称。(CMNET 中国移动 \ CTNET 中国电信 \ UNINET 中国联通) username 字符串类型。用户名。最大长度:127 字节。 password 字符串类型。密码。最大长度:127 字节。 authentication 整型。APN 鉴权方式。(0 None \ 1 PAP \ 2 CHAP \ 3 PAP 或 CHAP)
6、AT+QIACT=1
- 说明: 激活移动场景1配置,正常则回复 OK,指令原型为
AT+QIACT=<contextID>;
- 模组收到指令回复:
AT+QIACT=1 OK
7、AT+QIOPEN=1,0,“TCP”,“112.168.19.12”,28014,0,2
说明: 打开socket建立TCP连接并进入透传模式,指令原型为
AT+QIOPEN=<contextID>,<connectI D>,<service_type>,"<IP_address>/<domain_name>",<remote_port>[,<local_port>[,<access_mode>]]
模组收到指令回复:
AT+QIOPEN=1,0,"TCP","112.168.19.12",28014,0,2 CONNECT
参数说明:
参数 说明 contextID 整型。移动场景 ID。范围:1~15。 connectID 整型。Socket ID。范围:0~11。 service_type 字符串类型。Socket 服务类型。(“TCP” \ “UDP” \ “TCP LISTENER” \ “UDP SERVICE”) IP_address 字符串类型。(如果 service_type 是 “TCP” 或者 “UDP”, 则为远程服务器的IP地址,例如112.168.19.12。如果service_type是"TCP LISTENER"或者"UDP SERVICE",请输入 127.0.0.1。) domain_name 字符串类型。远程服务器的域名地址。 remote_port 整型。远程服务器端口。范围:0~65535。仅当service_type是"TCP"或者"UDP"时才有效。 local_port 整型。本地端口。范围:0~65535。(如果service_type是"TCP LISTENER"或者"UDPSERVICE",该参数必须指定。如果service_type是 “TCP” 或者 “UDP”,且local_port是 0,那么将会自动分配本地端口;否则本地端口会被指定。) access_mode 整型。Socket 服务的数据访问模式。(0 缓存模式 \ 1 直吐模式 \ 2 透传模式) 透传模式说明
透传模式下,相对应的串口(比如 UART 口、USB Modem 口等)会进入独占模式,通过 COM 口接收的数据会直接发送到网络端,从网络接收到的数据会从 COM 口直接输出。
+++
可以用来退出透传模式:当输入+++
返回 OK 后,访问模式就会切换到缓存模式,如需切换回透传模式,可使用AT+QISWTMD
命令。退出透传模式
用户可以通过
+++
或者 DTR(需先设置 AT&D1)两种方式退出透传模式,为了防止+++
被当成数据发送,实际操作时必须遵循以下步骤:+++
输入前 1 秒或更长时间内不能输入其它任何数据;- 必须在 1 秒内输入
+++
,并且不能输入其它任何数据; +++
输入后 1 秒内不能输入其它任何数据;- 通过
+++
或者 DTR(设置 AT&D1)方式使模块退出透传模式,直到模块返回 OK;此时模块成功退出透传模式。
在透传模式下,不可执行 AT 命令。 若因网络错误或者其他原因导致 Socket 连接断开,模块会上报
NO CARRIER
,并退出透传模式,在这种情况下可以执行AT+QICLOSE
来关闭 Socket 服务。
三、实现流程
四、程序代码
串口发送代码
#include "stm32f10x.h" #include "stm32f10x_conf.h"/*** @brief 串口1发送字符串* @param pStr: 字符串指针* @retval None*/ void USART1_SendStr(char *pStr) {uint8_t tx_str;while(1){tx_str = *pStr++;if(tx_str == 0) break;USART_ClearFlag(USART1, USART_FLAG_TC);USART_SendData(USART1, tx_str);while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);} }/*** @brief 串口2发送字符串* @param pStr: 字符串指针* @retval None*/ void USART2_SendStr(char *pStr) {uint8_t tx_str;while(1){tx_str = *pStr++;if(tx_str == 0) break;USART_ClearFlag(USART2, USART_FLAG_TC);USART_SendData(USART2, tx_str);while(USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET);} }/*** @brief 串口1发送命令帧* @param pcmd: 命令帧指针* count: 命令帧长度* @retval None*/ void USART1_SendCmd(uint8_t *pcmd, uint16_t count) {uint8_t tx_cmd;uint16_t i;for(i=0; i < count; i++){tx_cmd = *pcmd++;USART_ClearFlag(USART1, USART_FLAG_TC);USART_SendData(USART1, tx_cmd);while(USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);} }
EC200N-CN驱动程序
/*** @brief EC200N-CN初始化* @param step: 步骤* @retval step: 步骤值*/ uint16_t LTEUECat1Init(uint16_t step) {switch(step){case 0://查询AT指令是否正常SendCmd("AT\r\n", "OK", "Error: AT\r\n", 10, step);if(step == 0) break;case 1://检测SIM卡状态SendCmd("AT+CPIN?\r\n", "+CPIN: READY", "Error: AT+CPIN?\r\n", 2, step);if(step == 1) break;case 2://查询当前网络注册状态SendCmd("AT+CREG?\r\n", "+CREG: 0,1", "Error: AT+CREG?\r\n", 1, step);if(step == 2) break;case 3://查询当前EPS网络注册状态SendCmd("AT+CEREG?\r\n", "OK", "Error: AT+CEREG?\r\n", 1, step);if(step == 3) break;case 4://配置移动场景参数SendCmd("AT+QICSGP=1,1,\"CMNET\",\"\",\"\",0\r\n", "OK", "Error: AT+QICSGP\r\n", 1, step);if(step == 4) break;default: break;}if(step == 4){//激活移动场景USART2_SendStr("AT+QIACT=1\r\n");//等待30swhile(3000--){if(strstr((const char*)com2_rx_buffer, "OK") != NULL){step = 5;break;}else delay_ms(100);}}return step; }/*** @brief 发送AT指令进行初始化* @param cmd: 命令帧指针* echo: 判断字收到的数据中所出现的字符* num: 发送命令帧的次数* count: 返回值* @retval None*/ uint16_t SendCmd(char *cmd, char *echo, char *error, uint16_t num, uint16_t count) {for(int i = 0; i < num; i++){USART2_SendStr(cmd);//延时1秒delay_ms(1000);//判断接收到的数据中是否存在指定字符if(strstr((const char*)com2_rx_buffer, echo) != NULL) {//向串口输出USART2接收到的数据USART1_SendStr(echo);//初始化缓存memset(com2_rx_buffer, 0, sizeof(com2_rx_buffer));count++;return count;}else{USART1_SendStr(error);}}return 0; }/*** @brief 连接网络* @param None* @retval None*/ void LTEUECat1Connect(void) {USART2_SendStr("AT+QIOPEN=1,0,\"TCP\",\"112.168.19.12\",28014,0,2\r\n");while(3000--){if(strstr((const char*)com2_rx_buffer, "CONNECT") != NULL){USART1_SendStr("Connect OK!\r\n");break;}else delay_ms(100);} }
五、例程说明
- STM32芯片串口USART2与EC200N-CN串口MAIN_TXD跟MAIN_RXD
- 串口通讯采用DMA中断模式
- ECC200N-CN默认串口通讯速率为115200
STM32开发 | 移远4G-Cat.1模组EC200N-CN开发相关推荐
- QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之01物联网模组简介
本系列博文将系统性讲解物联网模组系列的实际使用和调试指南,以移远4G模组EC20为例(其他厂家模组的调试方法大同小异),加快嵌入式软硬件工程师对物联网模组调试和使用的上手速度,让你们的项目进度尽可能快 ...
- QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之03【EC20模组基础串口指令说明】
QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之03[EC20模组基础串口指令说明] 一.准备工作 二.硬件环境的搭建 三.基础AT指令的说明和测试 STM32F103学 ...
- QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之02EC20模组硬件供电和开关机复位操作
本系列博文将系统性讲解物联网模组系列的实际使用和调试指南,以移远4G模组EC20为例(其他厂家模组的调试方法大同小异),加快嵌入式软.硬件工程师对物联网模组调试和使用的上手速度. 一.模组硬件知识 1 ...
- QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之04【EC20模组SIM卡和驻网模组指令说明】
QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之04[EC20模组SIM卡和驻网模组指令说明] 一.准备工作 二.硬件环境的搭建 三.基础AT指令的说明和测试 关于SIM ...
- QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之03EC20模组基础串口指令说明
本系列博文将系统性讲解物联网模组系列的实际使用和调试指南,以移远4G模组EC20为例(其他厂家模组的调试方法大同小异),加快嵌入式软.硬件工程师对物联网模组调试和使用的上手速度. 一.准备工作 1.软 ...
- QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之05【EC20模组TCP/IP模块AT指令说明】
QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之05[EC20模组TCP/IP模块AT指令说明] Socket长连接 一.准备工作 二.针对TCP/IP协议 关于TCP/ ...
- QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之02【EC20模组硬件供电和开关机复位操作】
QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之02[EC20模组硬件供电和开关机复位操作] 一.模组硬件知识 1.背景知识:网络制式 2.模组的供电 3.模组的开机 4 ...
- QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之【05EC20模组TCP/IP模块AT指令说明】
本系列博文将系统性讲解物联网模组系列的实际使用和调试指南,以移远4G模组EC20为例(其他厂家模组的调试方法大同小异),加快嵌入式软.硬件工程师对物联网模组调试和使用的上手速度. 一.准备工作 1.软 ...
- QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之04EC20模组SIM卡和驻网模组指令说明
本系列博文将系统性讲解物联网模组系列的实际使用和调试指南,以移远4G模组EC20为例(其他厂家模组的调试方法大同小异),加快嵌入式软.硬件工程师对物联网模组调试和使用的上手速度. 一.准备工作 1.软 ...
- 移远通信RM502Q-AE 5G模组率先获得T-Mobile认证证书
近日,移远通信RM502Q-AE 5G无线通信模组率先通过北美运营商T-Mobile的认证测试并于4月底获得认证证书,这表明该款5G NR模组可以在T-Mobile的5G和LTE网络下稳定运行,为5G ...
最新文章
- GARFIELD@12-10-2004
- pytorch多标签分类交叉熵loss
- option:contains后面加变量_什么是配置环境变量,配置以后有什么作用呢?
- 给FlvDownloader加了一个视频预览的功能
- Typesetting Engine_Gecko
- Laravel 启动流程分析 (代码全流程)
- eslint 设置目录_Nuxt项目添加自定义ESLint规则
- 盘点2017年热度很高的编程语言
- 读《财务就是IT 企业财务信息系统》
- IC卡(智能卡)APDU通讯总结
- 如何基于TwinCAT3实现伺服电机控制(一)
- Nacos注册中心AP架构源码(Distro)上篇
- 编译原理基本概念和术语
- FoxMail邮箱配置
- excel 自动换行后批量设置单元格上下边距
- 物联网信息安全复习笔记
- OpenStack-M版(Mitaka)搭建基于(Centos7.2)+++十、Openstack对象存储服务(swift)中
- ZZ-今天比较烦,贴上比较喜欢的让子弹飞的两篇评论吧。
- 斯坦福大学《机器人学》-运动学Kinematics
- winPE的PXE引导,大批量维护和安装系统
热门文章
- playwright安装及脚本录制
- mysql有rollup函数吗_MySQL-with rollup函数运用
- 7216:Minecraft题解
- hashmap按值排序
- Juniper 210 密码清不掉_iPhone 11 每次下载应用都需要输入密码怎么办?
- fanuc换刀宏程序详解_FANUC宏程序入门到精通,新手必看
- 数据包络分析方法与maxdea软件_Ecoatmaster软件辅助电泳工艺评审的应用
- 初学者学习opengl是用红宝书好还是蓝宝书好?
- 红帆参加HiMSS 2010(2010亚太区卫生信息大会)
- 欧姆龙nj与nx哪个高端_没想到还有比三菱更垃圾的PLC,欧姆龙隆重登场