ローカル(ループバック)シリアルポートを使用するには?

ローカル(ループバック)シリアルポートを使用するには?

ではLinux使用できますか?地元のシリアルポート?これに似たもの:

ssh user@localhost

これを試しましたが、うまくいきませRaspbianん(私のシェルに入れる必要がありますが、うまくいきません)。

microcom -d /dev/ttyAMA0

私も/dev/ttyS0これを試しましたが、成功しませんでした。

もちろん、Raspberry Piシリアルコンソールからアクセスすることもできます。その他マシン。

この質問に対する具体的なユースケースはありません。シリアルが実際にどのように機能するのか理解できません。 localhostに接続できる場合、sshシリアルポートも利用可能である必要はありませんか?

答え1

マイクロコントローラが互いに通信するために一般的に使用する双方向2線通信プロトコル(通常、2つのデバイス間でテキストを転送するため)を参照しているようです。これはほとんどの人が意味するものserialですが、さまざまなシリアルプロトコルがあります。

/dev/ttyAMA0Raspberry PiのUARTシリアルポートデバイスです。このデバイスファイルは、Raspberry Piヘッダーのrx(10)ピンとtx(8)ピンを制御します。すべてのプログラムはシリアルポートを開いてデータを読み書きできますが、何も追加しないと送信されたすべてのデータが失われ、データは再送信されません。

/dev/ttyACM0ほとんどのRaspberry Pi Linuxディストリビューションには、ログインプロンプトとシェルを提供するプログラムであるgettyリスナーがあります。開始すると、minicomgettyは/dev/ttyAMA0txピンからデータを送信し、rxピンからデータを受け取ります。リンクされたアイテムがある場合、リンクされたすべてのアイテムは難読化されます。

シリアルデバイスが有用なタスクを実行するには、シリアルデバイスと通信する必要があります。次のいずれかを取得すると、コンピュータと通信できます。USB-UARTアダプタrxをtxピンに、txをrxピンに、gndピンをgndに接続し、コンピュータに接続します。接続すると、コンピュータ(ほとんどのLinuxディストリビューション)にシリアルデバイスが作成され、送信されたすべてのデータがpi/dev/ttyUSB0に表示され、piから送信されたすべてのデータがPCに表示されます。/dev/ttyAMA0/dev/ttyAMA0

piにすでにgetty listeningがあると仮定すると、コンピュータで実行するか、同様のプログラムを実行するだけでログインプロンプトが表示されminicomます(Enterを数回押す必要があるかもしれません)。もちろん、gettyを停止してシリアルラインと通信できる他のプログラムを実行することもできます。

答え2

localhostへのSSH接続を開くと、2つのエンドポイントを持つ接続が作成されます。そのうちの1つはサーバー、1つはクライアントです。一人の人が送ったら、他の人は受け取り、その逆の場合も同じです。 SSHでは、接続はTCPを介して行われ、エンドポイントはIPアドレスとTCPポートによって識別されます。ネットワーク接続はほとんどソフトウェアで実装されているため、単純なので、デフォルトで新しいTCPポートを開く番号を決定するだけです。ハードウェアであるシリアルポートの場合はそうではありません。

シリアルポートを介して有用な双方向通信を得るには、2つのエンドポイント、すなわち2つのシリアルポートが必要である。互いに接続すると、一方の側でサーバー(例:)を実行し、gettyもう一方の側でクライアント(例:)を実行できます。minicom同じシステムにあるのか、それとも2つの別々のシステムにあるのかは重要ではありません。ただし、ハードウェアなので、実際のワイヤを接続する必要があります。

通常、コンピュータ内でデータを移動するより高速な方法があるため、2つのデバイス間でケーブルを引きます。ただし、1つのシステム上の2つのシリアルポート間のシリアル接続の確立を妨げることはありません。

シリアルポートが1つしかない場合、最善の方法は送信ラインを受信ラインに接続することですが、この場合、ポートを使用するプログラムは独自の出力をポートへの入力として扱います。これは通信にはあまり役に立ちませんが、テストには役立ちます。

関連情報