Sahara's WebLog

日記のような、備忘録のような、うらみつらみのような、自慢のような…。

RS-232Cってどんなの

シリアル通信をBit Bangingでやるのはいいんだが、いったいシリアル通信って何?
それほどまじめに取り組む気もないのだが、多少のことは知っててもいいだろうというので、まずはお決まりのロジック・アナライザーで信号を眺めてみた。
ずっと小文字の「v」を送り続けると、こんなのの繰り返しとなる。
rs-232c-01
通信条件はこう。
rs-232c-02
小文字の「v」のASCIIコードは0x76で0b01110110なので、どうやらこういう感じらしい。
rs-232c-03
Highの状態だった信号がLowになるとそれ以降データが送られてくることをあらわし、このきっかけの1ビットをスタート・ビットと言うそうな。
データ長が8ビットに設定してあるので8つ読んだら9番目がもう一度Highになってこれをストップ・ビットと呼び、データの終了を表すのだそうだ。
今回の設定ではパリティー無しなのでパリティー・ビットは無い。
なるほど、としか言いようが無いが…。

通信速度は1200baudに設定してあり、1秒間に1200ビット送るということだ。
計算すると1ビット分は833μsとなり、8ビット分なら6.6666msなわけだが、実際に8ビット分を測ってみると、下のように6.6505msだった。
rs-232c-04
以上を踏まえてBit Bangingのコードを眺めると

すらすらと頭に入ってきて理解できる。

この例ではキーボードからの入力を送ってるので、データとデータの間が十分に開いているが、下のように、PICでフル回転で送信したような場合は、どれがスタート・ビットだかどうやって分かるんだろう。
rs-232c-05

このエントリーをはてなブックマークに追加

Posted under: 電子工作その他


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.