Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

シリアル通信

これがこれから使うものです。あなたのコンピューターにも付いているといいですね!

いえ、心配しないでください。このコネクタである DE-9 は、かなり前に PC では廃れ、Universal Serial Bus(USB)に置き換えられました。私たちが扱うのは DE-9 コネクタそのものではなく、このケーブルで通常使われている、あるいは使われていた通信プロトコルです。

では、このシリアル通信とは何でしょうか? これは 非同期 通信プロトコルで、2 つのデバイスが 2 本のデータ線(に加えて共通のグラウンド)を使って、データを シリアルに、つまり一度に 1 ビットずつやり取りします。このプロトコルが非同期であるというのは、共有されるどちらの線にもクロック信号が流れないという意味です。その代わり、通信が行われる 前に、両者がワイヤ上でどの速さでデータを送るかについて合意しておく必要があります。このプロトコルでは、データを A から B にも、B から A にも同時に送れるため、全二重 通信が可能です。

このプロトコルを使って、マイクロコントローラとあなたのコンピューターの間でデータをやり取りします。ここで、なぜ以前のように RTT を使わないのかと思うかもしれません。RTT は、デバッグ専用に使うことを意図したプロトコルです。本番環境で、実際に RTT を使って別のデバイスと通信するデバイスを見つけることは、まず間違いなくできないでしょう。一方で、シリアル通信はかなりよく使われています。たとえば、一部の GPS 受信機は、受信した測位情報をシリアル通信で送信します。

次に実際的な疑問としておそらく浮かぶのは、このプロトコルでどれくらいの速さでデータを送れるのか、ということです。

このプロトコルはフレーム単位で動作します。各フレームには 1 つの スタート ビット、5〜9 ビットのペイロード(データ)、そして 1〜2 個の ストップ ビットが含まれます。このプロトコルの速度は ボーレート と呼ばれ、ビット毎秒(bps)で表されます。一般的なボーレートは 9600、19200、38400、57600、115200 bps です。

実際にこの問いに答えると、1 スタートビット、8 データビット、1 ストップビット、ボーレート 115200 bps という一般的な構成では、理論上、1 秒あたり 11,520 フレームを送信できます。各フレームは 1 バイトのデータを運ぶため、データレートは 11.52 KB/s になります。実際には、通信の遅い側(マイクロコントローラ)での処理時間のため、データレートはこれより低くなる可能性があります。

今日のコンピューターは、シリアル通信プロトコルを直接サポートしていません。そのため、コンピューターをマイクロコントローラに直接接続することはできません。しかし幸いなことに、micro:bit 上のデバッグプローブには、いわゆる USB-to-serial コンバーターがあります。これは、このコンバーターが両者の間に入り、マイクロコントローラにはシリアルインターフェースを、コンピューターには USB インターフェースを提供することを意味します。マイクロコントローラからは、あなたのコンピューターは別のシリアルデバイスとして見え、あなたのコンピューターからは、マイクロコントローラは仮想シリアルデバイスとして見えます。

それでは、serial モジュールと、OS が提供するシリアル通信ツールに慣れていきましょう。進むルートを選んでください: