5-1.全体回路図
下記にモニタユニットの全回路図を示します。
・マイコンRX621を使ったモニタユニットの回路図
5-2.電源ノイズ対策
車にはエンジン以外にもノイズ源となる多くの電装品があり、電源ノイズは非常に多いといわれています。電源の入力段に入っているチョークコイルは、そのノイズの影響を抑えるためです。
電源以外にも、温度センサーやキースイッチの配線に誘導してくるノイズもあるので、チョークコイルなどで対策していますが、十分に対応しきれていないのが現状です。
5-3.電源ON時の時間確保
車は、キーを回して(またはスタートボタンを押して)エンジンを起動するとき、まずACC電源(アクセサリー電源)がONし、次にエンジンスターターがONして起動します。数秒間ではありますが、エンジンスターターがON中は、ACC電源はOFFまたは低電圧になり使用できません。つまりエンジンスタート時、ACC電源は一瞬ONになり、数秒間OFFの後、再びONになるという電源です。
ACC電源を使うモニタユニットでこの電源の挙動を考慮しないと、起動時に不自然に表示が点滅したり、起動時刻の記録や起動回数のカウントに支障が出ます。
そこでソフトウェアにより、電源ON後の数秒間※1は何もせず待ち合わせるようにしています。LCDユニットも異常な表示が出るのを防ぐため、電源をONにするのは数秒間経過した後です(電源はリレーでON/OFFできるようになっています)。
※1.この時間は、適当と思われる時間を想定して組み込んでいるので、エンジン起動でそれ以上に時間がかかると支障があります。
5-4.電源OFF時の処理時間確保
データをメモリに書き込み中に電源が落ちると、書き込みに失敗するだけでなく、管理領域が壊れて次回の読み込みや書き込みできなくなる可能性もあります。通信クロックを遅くしていることもありますが、フラッシュメモリーは書き込み時間が長いため何らかの対策が必要です。
そこで、車の電源がOFFになっても、ある程度の時間はロジック電源(5V,3.3V)を維持できるよう、電源回路に大容量コンデンサ(3300μF×2個)を取り付けました。さらに、電源入力側にダイオードを入れ、コンデンサに蓄えた電荷が入力側から外部に流出しないようにしています。
車の電源がOFFになると、電源入力付近にあるリセットIC M51957Bが電圧低下を検知して、マイコンにNMI(NonMaskable Interrupt)信号が入力されます。マイコンは、NMIが入力されたら即時にLCDユニットの電源をOFFして消費電流を抑え、データ書き込み中であれば書き込みが終わり次第停止します。
下記の写真は、電源OFFを検知して3.3V電源が落ちるまでと、リセットが発生するまでを測定したものです(NMIは立下りで有効)。リセットが発生するまで約640mSあり、この間にデータ書き込みを終了して動作停止します。
電源OFF検知後3.3V電源が落ちるまで 電源OFF検知後マイコンリセットするまで
5-5.I2Cデバイスのアクセス
ひとつのI2Cバスに、リアルタイムクロック(RTC-5864NB),EEPROM(AT24C04A)※2,温度・湿度センサー(AM2321),大気圧センサー(MPL115A2)の4つのデバイスを接続しています。
この中で最も通信速度が遅いのが温度・湿度センサー(AM2321)で、そのクロック(SCL)はmax100KHzです。
デバイスごとにクロックを変更するのも面倒なので、最も遅いこの温度・湿度センサーに合わせて通信を行っています。
※2.EEPROMの“AT24C04A”は4Kbit(=512B)の容量があります。主に、設定値の保存に使用しています。
5-6.シリアルフラッシュメモリのアクセス
使用したフラッシュメモリは、SPI通信で接続するタイプで、8Mbitのものを4個(計4MB)実装しています。
具体的には、マイコンのRSPI1インタフェースと、そのSSLB0~SSLB3のスレーブセレクト端子を使用してアクセスしています。
通信クロックは、ノイズの影響を抑えるため8Mbpsとしています。
フラッシュメモリの容量の半分は電源ON/OFFの日時記録に、残りはトレンドグラフ表示のため各データ(外気温度,上部温度,下部温度,モニタユニット内部温度,大気圧,標高,車内湿度)の記録に使用しています。
6.組み立て
ケースはタカチのアルミケース“YM-200”(200mm×150mm×40mm)で、マイコンH8SX/1657を使った旧モニタユニットで使ったものを利用しています。
基板は、電源基板とメイン基板の2つになっていて、共に1/10インチピッチの片面ユニバーサル基板を使っています。
下の写真がモニタユニット本体の内部です。センサーの取り付け位置・方法に関しては省略します。
7.問題点
7-1.誤動作
このモニタユニットは、机上で動かす限りでは正常に動作しますが、車に搭載すると時々下記のような誤動作が起きます。
(1)EEPROMの書き込み異常
(2)シリアルフラッシュメモリの書き込み異常
実際に測定できる装置を持っていないため未確認ではありますが、状況からみて電源や信号線を伝って入ってくるノイズが影響していると思われます。
また、メイン基板自体の配線も、引き回しがノイズに弱い状態になっているとも考えられます。
車の電源や車内はノイズが多いと予想していましたが、対策が不十分だったと言わざるを得ません。
7-2.圧電振動ジャイロの誤差
圧電振動ジャイロの角度誤差については、電気的なノイズの他に車の振動もノイズになっています。
圧電振動ジャイロによる角度計測は、ジャイロからの角速度を積算(積分)して得ているので、計測値にノイズが含まれると直接角度計算に影響します。
そもそも積分により角速度から角度を得るのは、ノイズの問題から極めて困難という話も見聞きします。
現状より電源ノイズを抑え、ハードおよびソフト的なフィルタをさらに強化したとしても、実用できるレベルに達するのは容易ではないと思います。
7-3.未実装の機能
測定したデータは、現状ではLCDユニットで表示するだけで、取り出すことができません。従って、集計も印刷も加工もできず、測定したデータを利用することができません。
ハード的には、マイコンボード上のUSBポートのほか、マイクロSDカードスロットとRS-232通信ポート※3を装備していますが、どれも現在使用できる状態にありません。
※3.開発段階での音声合成のチェック用に、PCから文字列を受信してそれを読み上げることができます。