1

私は最近、純粋な Java での「シリアル通信」用のパッケージであるJava Communication APIに出くわしました。javaxシリアル通信という言葉は以前からよく耳にしていましたが、「シリアル通信」が何を意味するのか、何を意味するのか、よくわかっていません。

ウィキペディアによると:

電気通信およびコンピュータ サイエンスでは、シリアル通信は、通信チャネルまたはコンピュータ バスを介して、一度に 1 ビットずつ順番にデータを送信するプロセスです。

OK...Java Communication API を使用すると、一度に 1 ビットずつデータを読み書きできます。しかし、それはどういう意味ですか?!? 自分でそれを行うことはできませんか (疑似コードはこちら)?:

String str = "I want to send this bit by bit.";
byte[] strAsBytes = str.getBytes();
byte[] bits = new byte[strAsBytes.length * 8]; // For each byte we need 8 bits.
for(int i = 0; i < strAsBytes.length; i++) {
    for(int j = 0; j < 8; j++) {
        // Something like this (again this is just pseudo-code).
        // Regardless, populate all elements in the bits array with the
        // bit in the position of the current byte.
        bits[i*j + j] = getBit(strAsBytes[i], j);
    }
}

// Sends the array of bits over a network, maybe using Netty and TCP,
// or something. Sends each bit one by one.
networkManager.sendBitByBit(bits);

// Retrieves the value of a bit at any position in a byte (theByte).
public byte getBit(byte theByte, int position) {
    return (theByte) & (0x01 << pos) ;
}

「シリアル通信」という言葉には、「1 ビットずつ送信する」以上の意味があるように感じます。マシンのシリアルポートから読み書きするために使用できるということですか? 他に何か?!?

私は、「シリアル通信」というより広い用語とは何か、およびそれを使用してどのようなことができるかについて、平易な英語の素人の説明を探していると思います。そして、それを Java Communications API のコンテキストに入れます。また、API を使用して達成できることの例を 1 つまたは 2 つ用意していただければ幸いです。

4

2 に答える 2

2

この場合、シリアルはシリアル ポートを指します。これは、シリアル通信を可能にする (ほとんど時代遅れの) コネクタです (実際には、1 本の専用線を介して一度に 1 ビットを送信するプロトコル以上のものを意味するものではありません)。 . これは、送受信用に複数のワイヤがあるパラレル ポートとは対照的です。ピンの数に惑わされないでください。このピン配置図に示されているように、シリアル ワイヤのうち 2 本のみがデータ転送に使用され、それぞれが一方向 (送信用と受信用) に使用されます。

このドキュメンテーション ページからすぐにわかるように、Java Communications API は、基礎となるシステムのシリアル ポートだけでなく、パラレル ポートとも通信する方法を提供します。最近のほとんどのコンピューターにはこれらのポートがもうないため、この API は、これらのポートを外部接続にまだ使用している特定の組み込みデバイスで実行する場合にのみ役立つ場合があります。

この HowStuffWorksの記事では、シリアル ポートのほとんどの側面を素人の言葉で説明しています。

「シリアルポート」と「シリアルプロトコル」をさらに明確にしましょう。シリアル ポートはシリアル プロトコルを使用しますが、USB と Firewire も同様です。また、転送ワイヤは 1 方向 (送受信) ごとに 1 つしかありませんが、プロトコルとテクノロジにより、データをはるかに高速に転送できます。対照的に、パラレル プロトコルはより多くの電力を必要とし、2013 年の時点で、同期のオーバーヘッドのために、シリアル プロトコルの速度に匹敵するものはほとんどありません (何も考えられませんが、貢献を歓迎します)。

于 2013-12-01T12:03:12.423 に答える