2021年4月10日土曜日

CAN送受信...3ノード

今回は

前回M5stackとM5stcickC plusを使って送受信試験をしました。今回は、更にesp32をCAN BUSに加えて3ノードの送受信試験をしてみました。

CAN BUSに3ノード

準備

CAN BUSに以下の3つのノードを接続します。IDは、標準の11bit、BUS速度は500kbpsです。

  • M5stack+commuモジュール[受信]
  • M5StickC Plus+mcp2562[送信] 送信ID=1
  • esp32+mcp2562[送受信] 送信ID=5

図で書くと以下のようになります。

実際の構成は、写真のとおりです。

試験結果

送受信結果をesp32+mcp2562ノードをPCにUSB接続してシリアル出力を確認します。

> Executing task: C:\\Users\\kaji\\.platformio\\penv\\Scripts\\platformio.exe device monitor <

--- Available filters and text transformations: colorize, debug, default, direct, esp32_exception_decoder, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at <http://bit.ly/pio-monitor-filters>
--- Miniterm on COM7  115200,8,N,1 ---
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
send frame:e    s       p       3       2       c       a       n
send frame:e    s       p       3       2       c       a       n
send frame:e    s       p       3       2       c       a       n
send frame:e    s       p       3       2       c       a       n
New standard frame from 0x00000001, DLC 8
H       e       l       l       o       C       A       N
send frame:e    s       p       3       2       c       a       n
send frame:e    s       p       3       2       c       a       n
send frame:e    s       p       3       2       c       a       n
send frame:e    s       p       3       2       c       a       n
send frame:e    s       p       3       2       c       a       n
send frame:e    s       p       3       2       c       a       n
New standard frame from 0x00000001, DLC 8
M       5       S       T       A       C       K
send frame:e    s       p       3       2       c       a       n
send frame:e    s       p       3       2       c       a       n

受信専用のM5StackのTFT画面の動画はこちら。


 https://youtu.be/_ZjJ3LRkQ8s

2ノードから送信されたメッセージは、それぞれ受信されていることが確認できました。CAN BUSは共通なのでethernetと同じくCSMA/CD方式にてデータの衝突は回避しているようです。と、思ってましたがさらに調べてみると、データの衝突回避は「無損失ビット単位アービトレーション方式」が採用されています。CANデータは、500kbps程度ですが、各コントローラが更に高い周波数でデータをサンプリングして同期をとっているようです。なるほど、CAN BUS上にクロック線がないのにどうやって同期しているのかと思っていました。ノイズの多い車の中で安く確実にという観点でよく考えられています。細部はWikipediaに詳しく書いてあります。

今日のまとめ

CAN BUSに3ノード接続して送受信試験をやってみました。2ノードから送信されたデータが受信できていることを確認しました。M5シリーズを使ってCAN送受信できることがわかりました。

引き続き、実機データの吸出し、SDカードにデータの書き込みや6軸センサーとの同時記録等進めていきたいと思います。

参考リンク

【M5Stack】CommuモジュールでCAN通信

M5Stack Commuモジュール - スイッチサイエンス

Controller Area Network - Wikipedia

0 件のコメント:

コメントを投稿

ページ引っ越しました

このページは、以下に引っ越しました。内容も逐次移行中です。引き続きよろしくお願いします。  https://hkaji.github.io →こちら