« 自粛 | トップページ | STM32F4のDMA »

2020年4月22日 (水)

ロケットの制御系の通信....

えー、CANなんて使ってるの?

CANて、スペックはいいことばっかりだけど、
実際に難しい環境で使うと、
全然ダメっていう印象なんだけど。

クロックの品質で謎のバスエラーなんて
割と定番だ。(スペックは守っていてもね!)

なんだよ、CAN BUSってエラーに
強いんじゃないのかよ!
と叫んだことは数知れず。

------

CANバスの通信エラー って、
組み込み系の、どうにもならないもの
(本質的に対策できないもの)
ランキングのかなり上位だと思っている。
(その次辺りにI2Cがくる)

いったん止まると、復旧のために
全ノードのリセットが必要だったり、
(動作状態で、原因が特定できない。
動き続けている!ノードが原因を
作っていたりする)

なんか止まったときは
近くにいる人(運転手とか)
に電源スイッチ、入れなおしてみて!
って頼めるくらいな
ところで使う印象。

絶対に止めたくない物には
使わない覚悟で臨んでるけど。

------

現実には使わざるを得ない状況
もあるので(確率的に)トラブルを
回避するために、
CAN BUSの規約にはない、
経験則からの、かなりきつい
設計ルールが有ったりする。

例えば、1:1しか使っちゃダメとか。
その結果、各ユニットが
ものすごい数のCANポート持って
個別のケーブルで繋がってたりする。
(これ通信にせず直接、信号
乗せた方が...?とか)
こんな(アホな)ものが設計
推奨されるくらいだから、
みんな苦労してるのは
間違いないんだけど。

確かに、机上でちょっと試す分には
無理させても動くように
見えたりするのが、またなんとも...

------

あとね、障碍時の原因特定が
すごく難しいのもCANの特長かな。

プロトコルの構造にも起因するから
根本的に回避できない。

誰かがヘマこくと、全然関係ない
ノードが突然落ちたりする。
現象から原因を特定するのは
ほぼ不可能。

------

でね....原因特定、対策できた、と思うでしょ...
実は、問題が他に行ってるだけでさ
(注目してないから別レイヤの問題に気づかない)

とかの怖い話ネタもいくつもあるしね。


”精度のいいオシレーター”も、
本当に使う環境で精度を保ってるか
ちゃんと試験した方がいいと思うよ。

発振器もすごく奥が深い。



まったく、CANなんてもんが無かったら、
もうちょっと仕事楽なんだけどなあ。

多分、ロケットも落ちなかったと
思うよ。(無責任な同情)

|

« 自粛 | トップページ | STM32F4のDMA »

コメント

まさにCAN で1:5 とか1Mbps やろうと思っているんですが……。
相手方が持っているインターフェースがCAN, UART, EtherCAT で、できればデイジーチェーンで繋げたいなぁと。配線長は全て15cm 前後だから、なんとかなるかなと楽観視していました。
経験談、CAN は初めてです。

投稿: ぶらざー | 2020年4月24日 (金) 23時19分

規約を完全に守ってない、とか
本当はバスタイミング、バスの状態見てから調整すべきなのに、製品として変更できないとか、
やっちゃいけない組み方してあるとか、
電源落ちると、勝手にバスをショートさせるとか
勝手に自分だけエラーカウンタリセットしながら動いてるとか...
まあ、ありとあらゆる適当な実装を見ましたね。
相当高価な代物でも、です。

全部自分で組めるなら、それなりにいいんですが、出来合いのCAN I/Fは、CANを理解してないまま作られたようなのも結構います。

知らないならCAN使うなよ...と言いたい

個人的にはバスエラーで、バスが勝手に止まるのが(逆に)致命的な仕様だと思っています。

投稿: w谷 | 2020年4月25日 (土) 00時42分

”自由度が高い”のは設計時の話だけで、運用時に後付けでカジュアルにつけたり外したりすると、怪しい動きするのも定番
これが全然関係ないところでひっそり起きてたりするから、ものすごく迷惑...
ダメなものは、つけた瞬間全部落ちる、とかにしてくれたら分かりやすくて安心して使えるんだけど。

構成触るとどこに影響出てくるか、全然予測がつかないのは扱いにくいですね。
このあたりが1:1で使え、という処かなと。
(切り分けが可能になる)

Ethernetみたいな構造になってれば、物理的に1本の線に複数のネットワークが共存できるけど、CANはプロトコルの構造上、どうやっても無理ですね。

投稿: w谷 | 2020年4月25日 (土) 11時39分

コメントを書く



(ウェブ上には掲載しません)




« 自粛 | トップページ | STM32F4のDMA »