今回使っている「CANdino」は前回の記事CAN搭載Arduino互換ボード「CANdino」作った話をご覧ください。
CANを搭載したArduino互換機なら動作するはずです。
##目的
直接CAN通信を行えるセンサってなかなか販売してないし、販売していたとしてもとても高価になってしまいます。
なら、センサ値を読んでCANにデータを流してくれるインターフェイスを開発すればいいじゃん!ってなったので開発しました。
##I2CtoCANinterfaceのI2Cとは?
I2Cというのは、安価で一般的に使われる通信です。秋月電子でセンサを調べてみるとI2C通信センサが見つかると思います。
####I2C通信は二本の線だけで複数のセンサと通信できます。
マイコンに取り付ける線が少なくて済むので便利な通信方式です。
##I2CtoCANinterfaceのCANとは?
車載関係でよく使われる通信です。
二本の線で通信ができます。
二本の線の電位差で0と1を表しているので、ノイズに強いという特徴があります。
##I2CtoCANinterfaceメリット
直接CANを使用できるセンサがあまり無いため、電子制御ユニットに直接線を繋げる必要が出てきます。
I2C通信とCAN通信を接続することで接続する線を少なくできます。
##EEPROMからI2CとCAN設定を読み込む
CANdinoには決まったフォーマットで書き込まれたDIPのEEPROMが搭載されていて、EEPROMからI2Cセンサ用の設定とCAN通信用の設定を読み込むことで接続されているI2Cセンサと通信し、CAN BUSにI2Cのセンサデータを流すことが出来ます。
##ソースコード
https://github.com/Yu-Tomo/I2CtoCANinterface
##詳しくは、別の資料.pdfを用意しています。