Linux 中调制解调器的数据和控制通道?

Linux 中调制解调器的数据和控制通道?

我有一个 USB 调制解调器被检测为设备设备文件 ( /dev/ttyACM0)。将 AT 命令重定向到设备文件似乎可以在调制解调器响应时起作用。

我遵循以下假设,上部代表控制通道。通过它,人们可以拨号、设置调制解调器、取消连接……一般来说,可以执行与控制调制解调器相关的操作,而无需实际处理data.我的data意思是所有不受控制的东西(例如 HTTP 数据包)。

数据流发生在哪里?如果是通过同一个文件,那么它是如何多路复用的?

同样理想的情况是,人们希望调制解调器只是一种底层“服务”,提供带有 IP 的网络接口,这样人们就可以将其抽象出来并使用 TCP/IP 套接字。套接字在内核中实现。

一旦调制解调器暴露/dev/ttyACM0在用户空间中,这将如何适应图片

答案1

使用 AT 型调制解调器“接口”的设备可以在多种状态下运行:

  • 命令模式
  • 拨号方式
  • 握手模式
  • 数据模式

调制解调器以命令模式启动,并响应AT- 前缀的命令。一旦它们建立连接(ATD例如,在经历拨号和握手模式之后),它们就会切换到数据模式,并且发送给它们的任何数据都会传输到它们所连接的设备。要切换回命令模式,发送方需要暂停数据流一定时间,发送+++,然后再次暂停;调制解调器切换回命令模式并AT再次开始响应命令(并且数据流被中断)。

有些调制解调器不需要暂停,这意味着如果数据包含命令序列,它将被解释为命令序列+++(因此+++ATH0在 IRC 上开玩笑)。

要在调制解调器数据连接之上提供另一个协议,您需要使用另一个工具。使用哪种工具取决于另一端期望的协议(SLIP、PPP、PPPoE...);例如,你会使用ppp对于 PPP(最好集成到您的发行版中,因此设置最终基本上是透明的)。这将提供某种形式的 IP 封装,然后您可以照常使用 IP。所涉及的工具将使用与调制解调器通信所需的任何设备(/dev/ttyACM0在您的情况下),并公开另一个接口,系统的其余部分可以将其用于网络目的(一般来说,网络接口,例如 ppp0)。

相关内容