背景

在某个新基线上移植AT指令,发现有问题,因此收集了这个系列的 文章 作为 这方面的知识补充。

原文作者:laozhuxinlu,本文有删改。

AT指令在产线中是一类比较重要的问题, 一天没来得及解决,则会拖延生产的有关进度。

入门基础

以Q&A的形式的一些基本概念的介绍,让大家能够初步的认识什么是ATCommand,知道它是干嘛的,包括涉及到的一些相关知识。

什么是AT Commands

AT 即Attention。AT命令集是从TE(TerminalEquipment:终端设备)或DTE(DataTerminal Equipment:数据终端设备)向TA(Terminal Adapter:终端适配器)或DCE(DataCircuit Terminating Equipment:数据电路终端设备)发送的。通过TA,TE发送AT命令来控制MS(Mobile Station:移动台)的功能与GSM网络业务进行交互。

总结来说,ATCommand是一种调制解调器的命令语言,由计算机(超级终端)发出的被用来控制和执行模块功能,通过uart串口进行通讯的命令操作方式,通过串口将命令集发送到设备端,然后设备端(手机)自有一套处理框架流程对不同的AT命令进行解析,判断,然后进行相对应的处理,并返回其对应的处理结果。

AT Commands的功能

ATCommand在手机通讯中,主要是提供给用户AT控制指令控制手机行为,比如说呼叫、短信、电话本、数据业务、补充业务、传真、GPRS等;同时包括对手机的一些参数的获取、设置及上层UI的改变等等……

在这里介绍的架构主要是针对高通平台的Android设备,高通平台提供了自有的一套流程框架(ATCoP)处理ATCommand。

ATCoP(AT Command Process)接收串口(SerialPort)处传来的AT Command,进行解析(Parse),根据解析的结果到AT Command Tables中寻找相应的表项,若匹配,则执行对应的处理函数;或者如果处于ap侧处理的列表命令,会发送到ap侧进行处理返回(AP测需要实现相应的AT Client)。

后面针对于AtCoP会有更加具体的讲解,包括modem中对APSide的ATCommand的具体处理流程,会以一个单个模块来具体讲述。

AT 指令的构成

一般而言,命令主要分为下列3部分。

  • 前缀:由字符AT构成,他来源于单词立正attention的头字母。

  • 主体:主体由命令,参数和可用到的数值组成。

  • 终止字符

ATCommands的语法格式其实就是AT Commands的输入格式,总体上说AT命令有四种形式:

1)无参数指令(基本命令语法)。 一种简洁的指令,格式:AT[+|&]<command>举例:显示本机号码“AT+CNUM”,恢复出厂设置命令“AT&F”。

2)查询指令(读命令语法)。 查询该指令当前设置的值,格式:AT[+|&]<command>?。举例:电话本存储区可选择的值“AT+CPBS?”。

3)帮助指令(测试命令语法)。用来列出该命令各参数的所有的可能值(并非各个组合都可能支持),格式:AT[+|&]<command>=?。举例:AT+CMGL=?

4)带参数指令(扩展命令语法)。用于设置相应的参数值, 比较常用的一种格式,它为指令提供了强大的灵活性,格式:AT[+|&]<command>=<par1>,<par2>,<par3>„针对不同的AT Commands测试的输入格式是不一样的。甚至大部分都是多种测试的输入格式,具体格式在相应的AT Commands的协议介绍中有详细说明。

不同的命令其大致的语法格式是差不多的,当然也有一些自定义的AT命令,但其基本格式还是需要按照标准来定义。

注意:对于上面所说的四种格式,对某个命令而言并不是都存在四种格式,有些命令就一种格式,有些支持两种或者三种四种格式,具体的需要查询协议介绍。

AT Commands的大致分类:

具体可参见AT命令手册

  • 一般命令

  • 呼叫控制命令、网络业务命令

  • 安全性命令

  • 电话本命令、短消息命令

  • 补充数据命令、数据命令

  • 传真命令

  • 串口控制命令

  • 自定义的一些AT命令

  • …………

AP侧、BP侧的AT 指令

注意:这里所谓的AP Side和BP Side的AT命令是根据最终在哪处理来区分的

  • 如果是在modem下对命令进行处理的称为BP Side相关命令
  • 如果针对一些命令,在modem之上(AP侧)进行处理的,可称之为AP相关命令。

对于大部分的AT命令几乎都是BP侧的,但是有一些特别的命令(比如说自定义的命令,或者在AP侧才有接口或者处理更加方便的),对于这些命令我们会发到AP侧,在AP侧有专门的AT Client对其进行处理并返回处理结果。

后面章节中对AP Side的AT命令会有更加详细的介绍。

ATCoP

ATCoP(AT Command Processor) 这是一套AT命令的处理框架,位于BP侧中。

注意:由于我没有拿到modem的代码,因此下面的文章关于BP的大部分是无法修改的。

ATFWD

ATFWD?或许很多人看到这个词会觉得很陌生,的确,因为这一块属不属于AT模块,都不好说。

所有的AT命令都是通过串口到modem的,而ATFWD是高通就AP Side的AT命令的实现所做的一套框架:

  • 主要是从modem那边接收到AT命令(QMI通讯方式),再处理,最后返回到modem
  • 可以理解成这就是之前说的AT Client,也可以理解成实现AT命令在BP之间的交互方式。

术语

TE:Terminal Equipment,终端设备,与DTE等价。比如一个计算机它是和信息网络的一端相接的可提供必要功能的设备这些功能使得用户通过接入协议能接入网络 如发送信息和接收信息也可指由线路 电路 信道 数据链路的终端或起点组成的设备。

TA:Terminal Adapter,终端适配器,与DCE等价。提供终端适配功能的物理实体是一种接口设备。

DCE: Data Circuit terminating Equipment,数据电路终接设备。一种接口设备在线路之间进行代码或信号转换 同数据终端设备实现接口能够建立保持和释放数据终端设备与数据传输线之间的连接。

DTE: Data Terminal Equipment,数据终端设备。它具有向计算机输入和接收计算机输出的能力与数据通信线路连接的通信控制能力以及一定的数据处理能力。

ME:Mobile Equipment,移动设备。比如GSM话机就属于ME移动台中的一种发射机或接收机或发射机与接收机二者的组合

高通与At指令:基础概念的更多相关文章

  1. 高通camera结构(摄像头基础介绍)

    摄像头基础介绍 一.摄像头结构和工作原理. 拍摄景物通过镜头,将生成的光学图像投射到传感器上,然后光学图像被转换成电信号,电信号再经过模数转换变为数字信号,数字信号经过DSP加工处理,再被送到电脑中进 ...

  2. [转帖]从0开始的高并发(一)--- Zookeeper的基础概念

    从0开始的高并发(一)--- Zookeeper的基础概念 https://juejin.im/post/5d0bd358e51d45105e0212db 前言 前面几篇以spring作为主题也是有些 ...

  3. 基础:高通bring up camera【转】

    本文转载自:http://blog.csdn.net/liwei16611/article/details/53056710 bring UP 需要做的工作   1.kernelspace senso ...

  4. 【转】高通平台android 环境配置编译及开发经验总结

    原文网址:http://blog.csdn.net/dongwuming/article/details/12784535 1.高通平台android开发总结 1.1 搭建高通平台环境开发环境 在高通 ...

  5. Docker 基础概念科普 和 常用操作介绍

    Docker 基础概念 Docker是什么?         Docker的思想来自于集装箱,集装箱解决了:在一艘大船上,可以把货物规整的摆放起来.并且各种各样的货物被集装箱标准化了,集装箱和集装箱之 ...

  6. 计算机系统4-> 计组与体系结构1 | 基础概念介绍

    在大二上学期学习数字逻辑的过程中,我对计算机如何运作产生了兴趣,因此开了这个系列来记录自己在这方面的学习过程,此前三篇分别是: 计算机系统->Hello World的一生 | 程序如何运行,从大 ...

  7. GJM : Unity3D 高通Vuforia SDK AR 开发

    一.AR概念: 增强现实(Augmented Reality,简称AR),是在虚拟现实的基础上发展起来的新技术,也被称之为混合现实.是通过计算机系统提供的信息增加用户对现实世界感知的技术,将虚拟的信息 ...

  8. Android图形合成和显示系统---基于高通MSM8k MDP4平台

    介绍了Android SurfaceFlinger层次以下的图形合成和显示系统,主要基于高通MSM8k MDP4x平台. 做为Android Display专题.SurfaceFlinger的详细介绍 ...

  9. JavaWeb开发技术基础概念回顾篇

    JavaWeb开发技术基础概念回顾篇 第一章 动态网页开发技术概述 1.JSP技术:JSP是Java Server Page的缩写,指的是基于Java服务器端动态网页. 2.JSP的运行原理:当用户第 ...

  10. vue初学:基础概念

    一.vue使用步骤: 1.引包vue.js 2.html中写要操作的DOM节点 3.创建vue对象:new Vue({options}); 4.配置options:el:(要操作的对象,用选择器,同j ...

随机推荐

  1. ChatGPT,我的 .NET 应用该选择哪种日志框架?

    When using .NET 6, compare different main stream third-party logging packages, and give suggestions ...

  2. Selenium使用总结:加载Flash、禁用JS、滚动页面至元素、缩放页面

    前言 前几周做了个使用Selenium的项目,踩了好多好多好多的Selenium的坑,越来越感觉他作为一个第三方库,对于Chrome的操作实在是有局限.另外,推荐大家一个Selenium之外的操作浏览 ...

  3. Git/SourceTree版本管理

    目录 视频课程: 工作区: 文件状态: 回退版本: 合并分支 合并提交 冲突 删除分支 忽略文件 汉英对照表 多端同步 添加远程仓库 推送代码到远程仓库 拉取代码 视频课程: https://www. ...

  4. linux定时任务crontab 周期执行任务

    目录 1. crontab主要作用 2. 如何添加crontab 定时任务 3. 计划任务,crontab命令选项: 4. cron文件语法: 5. 查看计划任务 1 创建脚本文件test.py,在文 ...

  5. 鸿蒙stage模型

    app.json5全局的配置文件 icon和label是应用列表的 module.json5模块配置文件 中有一个abilities其中的icon和label才是桌面的图标和名称 日志的话就是hail ...

  6. PageOffice调用本地office实现多人在线同时编辑Word文档

    说明:多人同时在线编辑文件大多数会出现文档相互覆盖的问题,后保存的文档会覆盖先保存的文档.pageoffice的这个功能可以用程序控制不同用户打开文件后,编辑Word文档中属于自己的区域,并且不会互相 ...

  7. Java面试题:SpringBoot异常捕获,让程序“免疫”一切错误!

    在Spring Boot应用程序中,捕获全局异常是一个重要的方面,它可以帮助我们处理在应用程序运行时可能发生的各种错误情况.通过适当地捕获和处理这些异常,我们可以改善用户体验并及时采取必要的措施. 使 ...

  8. 关于sass(scss)、less、postcss、stylus的简介与区别

    为什么会出现css预处理器 ​ CSS不是一种编程语言,仅仅只能用来编写网站样式,在web初期时,网站的搭建还比较基础,所需要的样式往往也很简单.但是随着用户需求的增加以及网站技术的升级,css一成不 ...

  9. 平衡树 Treap & Splay [学习笔记]

    平衡树 \(\tt{Treap}\) & \(\tt{Splay}\) 壹.单旋 \(\tt{Treap}\) 首先了解 \(\tt{BST}\) 非常好用的东西,但是数据可以把它卡成一条链 ...

  10. Swoole 源码分析之 TCP Server 模块

    首发原文链接:https://mp.weixin.qq.com/s/KxgxseLEz84wxUPjzSUd3w 大家好,我是码农先森. 今天我们来分析 TCP Server 模块 的实现原理,下面这 ...