前回の続きです。
「3軸加速度センサモジュール」を用いた衝撃検出と、逆関数を用いたバッテリー電圧の推定ができたところで、いよいよ「ドップラーセンサモジュール」を用いた人体検知の本題に入ります。
以前に、超小型ドップラーセンサモジュール、「NJR4265 J1」(JRC(新日本無線)製)の動作確認をしましたが、この「NJR4265 J1」の通信方式は、以下のようになっています。
項 目 | 仕 様 |
ボーレート | 9,600bps |
データビット長 | 8bit |
パリティビット | 奇数 |
ストップビット | 1bit |
ハンドシェイク | なし |
なんと、ややこしいことに、「奇数パリティ」が採用されています。
ここで、“ややこしい”と書いたのは、PIC(18Fシリーズ)のUSARTは、パリティビットも含めた9ビット通信に、ハード的には対応していますが、パリティビットの生成まではしてくれないため、自分で(ソフト的に)解決しなければならないためです。
注) 本回路で使用する「PIC18F26K22」には、2つの「EUSART」(Enhanced Universal Synchronous and Asynchronous Receiver-Transmitter)が搭載されていますが、ここでは「USART」と記します。
具体的には、送信の際には、8ビットデータからパリティビットを生成し、9ビット目に付加します。受信の際には、8ビットデータからパリティビットを生成し、9ビット目と比較し、エラー処理(誤り検出)を行います。
その前に、PICにおけるシリアル通信の復習をします。
上記に、PIC(18Fシリーズ)における、パリティビットの有効化と、書き込み/読み出しに関連する制御ビットをまとめます。
パリティビットの生成(Parity Bit Generator)は、奇数パリティの場合には、バリティビットも含め、1が奇数になるよう調整し、偶数パリティの場合には、バリティビットも含め、1が偶数になるよう調整します。
この、「バリティビットも含め」の部分が、ミソとなります。