智能手机如何使用AT命令和数据连接? gsm 多路复用器?多个串口?

问题描述 投票:0回答:1

我参与了一个我们拥有某种物联网设备的项目。 PCB 上带有 LTE 调制解调器的 nxp 处理器。其上运行的软件通过单个 uart 接口连接到调制解调器。它将通过 AT 命令初始化调制解调器,最后向提供商 (PPP) 进行数据调用。 然后,它使用 lwIP(轻量级 IP)打开一些 mqtt 订阅,并允许用户代码向我们的服务器发出 http get/post 请求。

我们希望每 15 分钟从调制解调器检索信号强度并将其报告回服务器。我现在要做的是将调制解调器重新置于命令模式,检索信号强度信息,返回数据模式,然后恢复正常运行。

从数据模式到突击队模式再回到数据模式的往返需要几秒钟(4-5 岁左右)。这很烦人,因为在那段时间我们不接受命令。

我读过 gsm mux 07.10。通过遵循一些定义的协议,它允许在一个物理 uart 上创建虚拟串行端口。这听起来不错,虽然我意识到这会以性能为代价(字节将添加到我们发送到命令模式/数据模式的每个帧中)。

gsm mux 07.10 规格可追溯到 1999 年。我远不是移动解决方案方面的专家。我在想:沐星还有办法吗?例如,典型的智能手机如何处理这个问题?它们是否包含具有多个 uart 的调制解调器以并行访问 AT 命令和实时互联网连接?或者他们实际上仍然依赖 gsm mux?

如果有人愿意提供一些见解。还有关于实现 gsm mux 07.10 的潜在 C 库吗? TinyGSM 似乎实现了它(虽然我似乎无法找到它),而且我也可以找到实现 gsm mux 07.10 的 linux 内核驱动程序。但是那个驱动程序是写在 linux 中的 tty 接口之上的,所以这意味着我必须对内核驱动程序进行逆向工程并剥离 tty 的东西并用我自己的 uart 实现替换它。

gsm at-command modem multiplexing
1个回答
1
投票

首先,规格编号是旧的GSM规格编号,所以那些旧的规格永远不会更新,新的规格会有新的编号方案。我不记得转换是什么时候进行的,但我确实记得有人在 07.10 上做演示,大概是在 1998/1999 年左右,所以可能在那之后几年或大约那个时候(肯定是 2009 年之前)。

较新的规格编号方案在第一部分使用三位数字。 因此,例如旧的 AT 命令规范 07.07 现在是 27.007,而当前的 07.10 多路复用规范是 27.010.


以下是我记得的07.10.

开发 07.10 的动机是为了准确支持您描述的那种场景。回想一下 90 年代中期,如果手机有串行接口,那就是 RS-232,每个制造商在手机底部都有专有连接器。一个串行接口。

但是,为了在串行通信中使用 07.10 mux,您需要在 Windows 中安装一些支持 07.10 的特定串行驱动程序(我认为它们可能存在一些可靠性问题?),因此 07.10 从未采用并且不仅仅是一个很少使用的解决方案。

同样在 90 年代末,蓝牙和 IrDA 等额外的串行接口在许多手机上可用,后来的 USB 也可用,它们都添加了额外的物理接口以及每个协议中的本地多路复用。

因此,通过物理 RS-232 进行多路复用的需求不再是一个问题,无论 07.10 的流行程度如何,都已经减少到几乎没有。

快进几十年,突然有人在 stackoverflow 上询问它。你真好 :) 据我所知,我看不出将它用于你提出的目的有任何基本问题。

支持 AT 命令的现代智能手机很可能有一个 AT 命令解析的代码库,其起源于 90 年代,其中很可能包括

AT+CMUX
命令。当然,今天的制造商对支持它的明确愿望为零,但当它已经存在时,它只会与他们支持的所有其他遗留 AT 命令的集合一起出现。

所以,如果调制解调器支持

AT+CMUX
,你就可以开始了。我没有关于客户端协议库的经验或建议。

© www.soinside.com 2019 - 2024. All rights reserved.