概述
AT命令(Attention)在手机中,用于对modem(也就是移动模块)通过串口命令进行操作,处理与语音电话、短信和数据。
AT命令的用途
在N年前的一个涉及MeeGo的项目,MeeGo采用ofono开源项目进行移动通信,ofono通过AT命令来提供GSM的通信,但是不支持CDMA。这也从侧面论证了CDMA手机可能并不采用AT命令作为标准接口。当时请OEM根据高通芯片的API和参考,参照GSM的AT命令进行封装,在拨号应用中通过AT命令对modem进行操作,并通过DBus允许其他应用调用拨号软件。无论ofono还是我们的处理,架构层次如下:
OS(系统或系统级应用)→ AT命令(OEM封装)→ 芯片API
Android系统与AT命令
对于智能手机,AP和BP分离的情况,在AP上的系统通过串口和BP通信是个不错方式。在Android的源码中有一个内部包com.android.internal.telephony中有对AT命令的封装和解析,但这种internal的包开发者不能调用的SDK部分,可以用来封装ROM。这说明Android对AT command的方式是支持的。
网上信息,对于Android如何调用AT command,用root登录命令行,直接对串口进行操作,如
echo -e "ATr" > /dev/smd0
具体的串口,不同设备会有不同,甚至不一定会提供。这种方式,开发者是可以调用的,通过Runtime.exec直接执行命令行命令,但要求是root,例如echo -e "ATD123456789;r" > /dev/smd0,拨打123456789的号码。
衍生Android系统
关于ROM,国内有很多Android的衍生分支,最著名的是小米,但实际上包括华为手机,中兴手机,他们对UI和用户体验,以及部分的系统应用都进行了更改,另外还有百度云ROM等等。架构如下:
Android衍生系统→ Android OS→ AT command → 芯片API,我个人估计是Android衍生系统不会直接处理AT command,需要AT命令的应该是新OS。
但我有下面的疑问
以前OS很多,Modem的厂家也很多,OEM通过中间规范的AT命令来适配。现在OS已经高度统一,芯片厂家的数目也减少了很多,原则上芯片厂商可以提供直接适配OS,不一定需要中间标准的AT命令,芯片平台完全可以直接对接OS。
对于SoC芯片,AP和BP是继承在一起的,中间并没有什么串口,如果放在一起还需要通过串口的方式调用,看起来有点傻,估计是内存共享或别的什么方式。
我的看法是:AT命令很可能即将完成其使命。
我上3GPP的网站上去查,目前最新的AT命令标准发布与2014.6.27,似乎还活得挺滋润的。但是给出的keywords是
UMTS, GSM, command, terminal, LTE
这说明CDMA确实很可能不是采用AT命令的方式。
最后
以上就是魔幻鸭子为你收集整理的随笔:关于AT命令的全部内容,希望文章能够帮你解决随笔:关于AT命令所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复