デバイス(デバイスファイル/dev/ttyACM0
)として検出されるUSBモデムがあります。モデムが応答すると、ATコマンドをデバイスファイルにリダイレクトすることが機能しているようです。
上部が制御チャネルを表すという仮定に従います。これにより、ダイヤルアップ、モデムの設定、切断などができます。通常、実際にはモデムを処理せずにモデム制御に関連する操作を実行できますdata
。これはdata
、制御されていないすべての操作(HTTPパケットなど)を意味します。
データフローはどこで発生しますか?同じファイルを介して転送された場合、どのように多重化されますか?
また、理想的には、モデムがIPを持つネットワークインターフェイスを提供する低レベルの「サービス」になり、モデムを抽象化し、TCP / IPソケットを使用できることを願っています。ソケットはカーネルで実装されます。
/dev/ttyACM0
モデムがユーザースペースにさらされると、これは写真にどのように当てはまりますか??
答え1
ATタイプモデム「インターフェース」を使用するデバイスは、さまざまな状態で動作できます。
- コマンドモード
- ダイヤルモード
- 握手モード
- データスキーマ
モデムはコマンドモードで起動し、AT
プレフィックスが - のコマンドに応答します。接続が確立されると(ATD
たとえば、ダイヤルアップおよびハンドシェイクモードの後)、データモードに切り替わり、送信されたすべてのデータは接続されたデバイスに送信されます。コマンドモードに戻すには、送信者は一定時間データフローを一時停止し、sendを+++
一時停止する必要があります。モデムはコマンドモードに戻り、AT
コマンドに再び応答を開始します(データフローが中断されます)。 。
一部のモデムは一時停止を必要としません。つまり、データにコマンドシーケンスが含まれている場合は、コマンドシーケンスとして解釈されます+++
(したがって+++ATH0
IRCの冗談)。
モデムデータ接続に加えて異なるプロトコルを提供するには、他のツールを使用する必要があります。使用するツールは、相手が期待するプロトコル(SLIP、PPP、PPPoE...)によって異なります。ppp
PPPの場合(配布プレートに組み込むことが望ましいため、設定はほとんど透明になります)。これは一種のIPカプセル化を提供し、IPを正常に使用できます。問題のツールは、モデムと通信するために必要なすべてを使用し(/dev/ttyACM0
あなたの場合)、システムの残りの部分がネットワーキング目的で使用できる他のインターフェース(通常はネットワークインターフェース、例えば ppp0
)。