CAN通信ツール on Raspberry Pi

CAN tool pi

CAN通信を観測するツールを製作する。ログの取得や通信の再生などを行いたい。

Plan

Block diagram

全体の構成を計画する。

graph LR
subgraph Raspberry Pi
    pipwr((Power))
    gpio((GPIO))
    spi((SPI))
    i2c((I2C))
    bt((Bluetooth))
    wifi((Wi-Fi))
end
subgraph CAN IF
    canctrl[MCP2515]
    cantr[Transceiver]
end
canctrl --- cantr
cantr --- canbus((CAN))
pwr((5V))
pctrl[Power<br>switch control]
sound[Piezo sounder]
lcd[LCD]
rtc[RTC]
ap[Access point]
pc[PC or Mac]
sw[Switch<br>Left, Enter, Right]
pwr --- pctrl
pctrl --- pipwr
spi --- canctrl
gpio --- sound
i2c --- lcd
i2c --- rtc
gpio --- sw
bt -.- pc
wifi -.- ap
ap -.- pc

Componets

各構成要素の概要は下記の通り。

  1. Raspberry Pi
    全体の動作を統括するコントローラ。Raspberry Pi zero WH を使用した。
  2. Power control
    Raspberry Pi の電源を安全に切断する目的でshutdownコマンドを発行するトリガを生成する。
  3. Piezoelectric sounder
    ユーザーの操作をフィードバックするためにピポ音(Beep)を発生させる。
  4. Switch
    ユーザーが動作メニューの選択などを操作するスイッチ。3つ程度用意する。
  5. CAN IF
    MCP2515が搭載されたCAN通信インターフェイスボード。SPIバスへ接続する。
  6. LCD
    キャラクタ表示の液晶表示器。動作選択メニューや現在のステータスを表示する。I2Cバスへ接続する。
  7. RTC
    Real time clock オフラインでもバッテリバックアップにより時刻を維持する。I2Cバスへ接続する。
  8. Bluetooth
    PCとSPPで接続しコンソールから操作可能とする。
  9. Wi-Fi
    アクセスポイント経由でPCとSSH接続し操作可能とする。ソフトウェアの開発はSSH接続した各種ツールにより行なう。