电路研究9.3——合宙Air780EP中的AT开发指南(含TCP 示例)

news2025/2/11 9:32:30

       根据合宙的AT研发推荐, AT指令基本上也简单看完了,这里开始转到AT的开发了。

        AT 命令采用标准串口进行数据收发,将以前复杂的设备通讯方式转换成简单的串口编程, 大大简化了产品的硬件设计和软件开发成本,这使得几乎所有的网络模组如 GPRS3G/4G 、 NB-IoT、蓝牙、WiFi GPS 等模组都采用 AT 命令。 随着物联网时代的发展,AT 命令被广泛的用于单片机(MCU+ 网络模块这样的物联网开发模式。但这种开发模式单片机是必不可少的部分,因而会使产品的成本相应的高些。 AT 固件是标准固件,所以能支持的驱动也比较少,只有模块状态灯、摄像头扫码、SD 卡等外设驱动功能。要想要支持更多的外设建议用 LuatOS 二次开发固件进行二次开发。        

        根据介绍AT指令需要MCU+GPRS的配合,我们这里也考虑到是否使用到stm32了。根据我们这里使用的GPRS模块本身具备的功能,具备了我们需要的功能了,所以我们这里考虑直接使用AT指令了。

        AT 命令语法介绍:

        本手册中所有命令行必须以"AT""at"作为开头,以回车(<CR>)作为结尾。响应通常紧随命令之后,它的样式是“<回车><新行><响应内容><回车><新行>”(<CR><LF><响应内 容><CR><LF>) 。整本手册里,只有<响应内容>被自始至终介绍,而<回车><新行>被有意省略了。合宙无线模块提供的 AT 命令包含符合 GSM07.05GSM07.07 ITU-T Recommendation V.25ter 的命令。

        之前也在AT指令学习中提到过下面这些:所有 AT 命令从语法上可以分为三类:基础类“S 参数类以及扩展类,分别介绍如下:

        基础类 AT 命令 :这类 AT 命令具有“AT<x><n>”或者“AT&<x><n>”格式,其中“<x>”是命令;“<n>” 可以是一个或者多个参数。例如:“ATE<n>”,该命令用于为 DCE 开关回显功能,即 DCE 会依据“<n>”值决定是否把接收的字符回显给 DTE“<n>”是选配参数,若没有 赋值,模块将使用默认值。

        参数类 AT 命令:这类 AT 命令格式为“ATS<n>=<m>”,其中“<n>”S 寄存器的索引;“<m>”是赋予 的值。“<m>” 是选配参数,若没有赋值,模块将使用默认值。

        扩展类 AT 命令 一般来讲,扩展类命令依据功能可以分为以下几种类型:
        
AT 开发基本架构
        
        
         AT 开发优缺点
         AT 开发的优势 AT 指令作为单片机和通信模块的桥梁,很好的兼顾了单片机开发的特点,
又满足了产品联网的需求。 AT 指令是一种通用的使用方式,在无线模块领域也流行了 20
年。
        AT 开发的缺点 :成本相应的高些,能支持的驱动也比较少。
        确实这个,感觉上选用AT指令的会少一些,不过以前到是用过AT指令来着,不过是构建在stm32的基础之上的。我们这里因为用到了GPRS,所以只能是通过STM32控制GPRS或者直接写到GPRS里面,这个因为GPRS的功能可能够了吧。
         9.2 AT 固件
        这个需要购买GPRS器件,应该附带了固件库吧。
        9.3 AT 命令手册
        之前研究的就是这个手册,之后使用会用到之前研究的,或许需要调整更改吧。
        9.4 AT 开发环境搭建
        这个暂时我们没有Air780EP 开发板,所以先学习一下使用,不做测试了。好像虚拟串口,所以我们研究一下虚拟串口:
        下面是我在网上找的一个虚拟串口工具,我试了试,没有深入研究,不过可以虚拟出来串口,放在了百度网盘的分享里面,不大也就5M左右,供大家研究。
        通过网盘分享的文件:VSPD6.9虚拟串口破解汉化版.zip
链接: https://pan.baidu.com/s/1E-bh5_l38KReuUdLlvNR1g?pwd=4iqg 提取码: 4iqg
        9.5 AT 开发应用指南
        9.5.1 TCP(SSL) 应用指南
        TCP 示例
        开机:这个之前也讲过怎么开机,这里再列出来: 通过拉低 powerkey2 秒进行开机,开机以后通过串口循环发送 AT 直到收到 OK ,如果 90 没有收到 OK 请拉低 RESET_IN_N 引脚 150ms 以上。这个也就是模块的开机了,我当时设计时候没有接触RESET_IN_N 引脚,所以这里就断电试试吧,如果不行我再飞线拉低RESET_IN_N 引脚好了。
         查询 SIM 卡状态: 发送 AT+CPIN? 查询 SIM 卡状态【看起来是已多次发送AT+CPIN?】,直到收到+CPIN: READY ,模块主动上报 SIM REMOVED 和查询返回 +CME ERROR: 10 是模块没有检测到 SIM 卡,如果 10s 内没有收到建议重启模块,如果重启问题依旧需要检查卡是否有插好,或者排查板子的硬件连接。
         查询模块信号强度: 一般信号强度 18 以上才能稳定通讯; 11-17 能连接,会有断网的可能, 10 以下基本连接不 上,在不能联网的情况下,可以先参考一下信号强度如何。
         5.1 查询信号质量: AT+CSQ
        
        使用这个指令查询一下是否满足通腾讯条件。
         查询网络注册情况: AT+CGATT? 查询是否注册网络收到 +CGATT: 1 值是 1 即为注册成功,正常情况下注册时间不会超过两分钟,如果超过两分钟没有注册可以 进入飞行模式五秒后退出再查询,或者直接重启模块。 值是 0 则没有注册成功。                 
        8.2 GPRS 附着分离: AT+CGATT
        设置命令用于将 MT 附着 GPRS 业务,或将 MT 从 GPRS 业务分离。查询命令返回当前的 GPRS 附着状态。
        这个 GPRS 附着分离,之前觉得没所谓了,所以并没深入关注,只是点到了,折现查询就不太清楚了。
        激活网络:
         AT+CSTT 配置网络,非私有 APN 以外 Cat1 的固件支持根据卡自动配置 APN ,直接输入
AT+CSTT 即可,模块会按照自动获取的 APN 设置 CSTT APN AT+CIICR 激活网络,在 IP START 的状态使用 AT+CIICR 激活网络 AT+CIFSR 查询是否获取 IP ,如果成功就可以开始配置 TCP 连接了,如果不成功使用 AT+CIPSHUT 关闭移动网络,从 AT+CSTT 重新进行。一定要查询一次再进行服务器连接。
         12.2 启动任务并设置接入点 APN 、用户名、密码: AT+CSTT
        
         12.4 激活移动场景 ( 或发起 GPRS CSD 无线连接 ) AT+CIICR
         12.5 查询本地 IP 地址: AT+CIFSR
        这个几个AT指令不知道是否使用过,之前举例,不过没记在心里呢。
         连接 TCP: 此处使用的是非 SSL 连接, TCP/UDP 测试网页 TCP/UDP 测试网页 使用 AT+CIPSTART 来建立连接。
         12.9 建立 TCP 连接或注册 UDP 端口号: AT+CIPSTART
        根据 AT+CIPSTART 建立了连接。
         发送数据: AT+CIPSEND 可以发送定长或不定长数据,收到 > 以后就可以发送数据(最大 1460 字节)。 如果是定长数据,输入数据达到长度会向服务器自动发送数据。 如果是不定长数据,输入数据后发送十六进制 1A 结束发送,发送完 1A 以后设备会向服务器 发送 1A 之前的所有数据。 定长数据,假设这里发送 10 个字节数据AT+CIPSEND=10
         12.14 发送数据: AT+CIPSEND
        这里是发送数据的了。
         不定长数据 直接发送 AT+CIPSEND ,会返回一个 > 符号,之后可以输入数据,数据输入完毕后,发送十 六进制的 1A ,结束发送,模块会将输入的数据发送到服务器 发送 AT+CIPSEND 后,可以看到返回了一个 >,后续输入的内容没有返回值,此时再发送十六进制的 1A 来结束发送,才会收到返的  SEND OK
         其他说明: 最新的 AT 固件支持开机直接发送 AT+CIPSTART 联网,不过不推荐使用,推荐根据状态机一 步一步实现。
        这个可以考虑使用,毕竟我们打算不采用MCU单片机来控制呢。
        补:今天先这样,之后再把 TCP 使用 SSL 示例贴出来。
        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2295386.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Reqable使用实践

一、背景 日常开发中&#xff0c;难免要抓取请求数据&#xff0c;查看接口数据&#xff0c;从而更好定位问题&#xff0c;基于这个原因&#xff0c;查找了一些抓包工具&#xff0c;例如&#xff1a; HttpCanary、 Steam 、Fiddler等&#xff0c;不是要钱&#xff0c;就是只对苹…

【蓝桥杯嵌入式】2_LED

全部代码网盘自取 链接&#xff1a;https://pan.baidu.com/s/1PX2NCQxnADxYBQx5CsOgPA?pwd3ii2 提取码&#xff1a;3ii2 1、电路图 74HC573是八位锁存器&#xff0c;当控制端LE脚为高电平时&#xff0c;芯片“导通”&#xff0c;LE为低电平时芯片“截止”即将输出状态“锁存”…

B树详解及其C语言实现

目录 一、B树的基本原理 二、B树操作过程图形化演示 三、B树的应用场景 四、C语言实现B树及示例 五、代码执行结果说明 六、应用实例&#xff1a;文件系统目录索引 七、总结 一、B树的基本原理 B树&#xff08;B-Tree&#xff09; 是一种自平衡的树数据结构&#xff0c;…

ARM64 Linux 内核学习指南:从基础到实践

前言 ARM64 作为当今主流的处理器架构&#xff0c;被广泛应用于移动设备、嵌入式系统和服务器领域。学习 ARM64 在 Linux 内核中的实现&#xff0c;不仅有助于深入理解操作系统底层机制&#xff0c;还能提升在内核开发、驱动编写、虚拟化等领域的专业能力。 本指南面向对 Lin…

零基础都可以本地部署Deepseek R1

文章目录 一、硬件配置需求二、详细部署步骤1. 安装 Ollama 工具2. 部署 DeepSeek-R1 模型3. API使用4. 配置图形化交互界面&#xff08;可选&#xff09;5. 使用与注意事项 一、硬件配置需求 不同版本的 DeepSeek-R1 模型参数量不同&#xff0c;对硬件资源的要求也不尽相同。…

掌握Spring @SessionAttribute:跨请求数据共享的艺术

SessionAttribute注解在Spring中的作用&#xff0c;就像是一个“数据中转站”。 在Web应用中&#xff0c;我们经常需要在多个请求之间共享数据。比如&#xff0c;用户登录后&#xff0c;我们需要在多个页面或请求中保持用户的登录状态。这时&#xff0c;SessionAttribute注解就…

视频采集卡接口

采集卡的正面有MIC IN、LINE IN以及AUDIO OUT三个接口&#xff0c; MIC IN为麦克风输入&#xff0c;我们如果要给采集到的视频实时配音或者是在直播的时候进行讲解&#xff0c;就可以在这里插入一个麦克风&#xff0c; LINE IN为音频线路输入&#xff0c;可以外接播放背景音乐…

64【32与64位程序的区别】

很多人可能有一个观念&#xff0c;那就是64位的程序NB&#xff0c;有技术含量&#xff0c;但是要说nb在哪&#xff0c;很多人又说不上来&#xff0c;本节来对这个问题做一个探讨 下图中左边的是加载的64程序&#xff0c;右边的是32位程序&#xff0c; 在上一节课我们已经理解…

ai智能DeepSeek 在 Cursor 中的配置与应用实践

DeepSeek 是一款高效的深度搜索引擎&#xff0c;能够为开发者提供更智能、更精准的搜索体验。在数据量大、查询复杂的场景中&#xff0c;DeepSeek 能够帮助提升查询的响应速度和精确度。本文将介绍 DeepSeek 在 Cursor 中的配置与应用&#xff0c;帮助开发者理解如何在实际开发…

Deepseek的起源与发展

文章目录 前言一、Deepseek的起源二、DeepSeek的发展脉络三、Deepseek的突破与优势(1)功能强大:核心能力与应用场景(2)性能优势:效率与效果的革命性提升四、Deepseek开源引发关注前言 DeepSeek 在网络安全领域带来的新机遇,DeepSeek 从崭露头角到引领 AI 领域的重大变革,已…

【如何掌握CSP-J 信奥赛中的深搜算法】

CSP-J 信奥赛中的深搜&#xff08;深度优先搜索&#xff09;算法是一个重要知识点&#xff0c;以下是一些学习深搜算法的建议&#xff1a; 理解基础概念 定义与原理&#xff1a;深度优先搜索是一种用于遍历或搜索图、树等数据结构的算法。它从起始节点开始&#xff0c;沿着一条…

Unity笔试常考

线程同步的几种方式 1.信号量pv操作 2.互斥加锁 3.条件变量 五层网络协议指的是哪五层 1.应用层 2.运输层 3.网络层 4.链路层 5.物理层 TCP和UDP区别 tcp 面向连接&#xff0c;保证发送顺序&#xff0c;速度慢&#xff0c;必须在线&#xff0c;三次握手&#xff0c;4次挥手…

Qt:Qt基础介绍

目录 Qt背景介绍 什么是Qt Qt的发展史 Qt支持的平台 Qt版本 Qt的优点 Qt的应用场景 Qt的成功案例 Qt的发展前景及就业分析 Qt背景介绍 什么是Qt Qt是⼀个跨平台的C图形用户界面应用程序框架。它为应用程序开发者提供了建立艺术级图形界面所需的所有功能。它是完全面向…

【deepSeek R1】Ollama 更改模型安装位置 以及应用安装位置

【deepSeek R1】Ollama 更改模型安装位置 以及应用安装位置 本地版部署deepSeek R1 可以参考文章 3分钟教你搭建属于自己的本地大模型 DeepSeek R1 Ollama 是一个开源工具&#xff0c;旨在帮助用户轻松在本地计算机上运行、部署和管理大型语言模型&#xff08;LLMs&#xff09;…

让office集成deepseek,支持office和WPS办公软件!(体验感受)

导读 AIGC:AIGC是一种新的人工智能技术&#xff0c;它的全称是Artificial Intelligence Generative Content&#xff0c;即人工智能生成内容。 它是一种基于机器学习和自然语言处理的技术&#xff0c;能够自动产生文本、图像、音频等多种类型的内容。这些内容可以是新闻文章、…

动态规划问题——青蛙跳台阶案例分析

问题描述&#xff1a; 一只青蛙要跳上n级台阶&#xff0c;它每次可以跳 1级或者2级。问&#xff1a;青蛙有多少种不同的跳法可以跳完这些台阶&#xff1f; 举个例子&#xff1a; 假设台阶数 n 3 &#xff0c;我们来看看青蛙有多少种跳法。 可能的跳法&#xff1a; 1. 跳1级…

MySQL 数据库编程-C++

目录 1 数据库基本知识 1.1 MYSQL常见命令 1.2 SQL注入 1.3 ORM框架 1 数据库基本知识 MySQL 为关系型数据库(Relational Database Management System), 这种所谓的"关系型"可以理解为"表格"的概念, 一个关系型数据库由一个或数个表格组成&#xff1a…

【大数据技术】搭建完全分布式高可用大数据集群(Flume)

搭建完全分布式高可用大数据集群(Flume) apache-flume-1.11.0-bin.tar.gz注:请在阅读本篇文章前,将以上资源下载下来。 写在前面 本文主要介绍搭建完全分布式高可用集群 Flume 的详细步骤。 注意: 统一约定将软件安装包存放于虚拟机的/software目录下,软件安装至/opt目…

kafka专栏解读

kafka专栏文章的编写将根据kafka架构进行编写&#xff0c;即先编辑kafka生产者相关的内容&#xff0c;再编写kafka服务端的内容&#xff08;这部分是核心&#xff0c;内容较多&#xff0c;包含kafka分区管理、日志存储、延时操作、控制器、可靠性等&#xff09;&#xff0c;最后…

深入探究 C++17 std::is_invocable

文章目录 一、引言二、std::is_invocable 概述代码示例输出结果 三、std::is_invocable 的工作原理简化实现示例 四、std::is_invocable 的相关变体1. std::is_invocable_r2. std::is_nothrow_invocable 和 std::is_nothrow_invocable_r 五、使用场景1. 模板元编程2. 泛型算法 …