NMEA 2000バスを分割する:スイッチひとつの簡単な裏技
このページは機械翻訳されています。 原文を読む (English)
Merrimacには NMEA 2000 機器がたくさん載っています。バックボーンは船の端から端まで通っていて、物理的なデバイスはおよそ二十数台。オートパイロットのコンピューターとコントローラー、大きなチャートプロッターが2台、計器ディスプレイ、H5000 Hercules CPU、風向風速・水深・ヘディング・GPSの各センサー、AIS、そして船のコンピューター。合わせるとバス上のアドレスを50個も占有しています。
これだけの機器が1本のケーブルにぶら下がっているのは、うまく動いているときは素晴らしいのですが、そうでないときは悲惨です。たった1台の不調なノード(ノイズを出し続けるトランシーバー、腐食したコネクター、バスをデータで溢れさせる機器など)が、すべてを不安定にしたり、まるごと落としたりしかねません。しかも犯人を探すには、機器をひとつずつ切り離していくしかない。そして、それがいつ起きるかを決めるのはマーフィーの法則です。晴れた土曜日の桟橋ではなく、海の上、夜、悪天候のとき、つまり計器とオートパイロットがいちばん必要で、テスターを持ってロッカーに潜り込むなんて絶対にやりたくないときに限って起きるのです。
このことについてさんざん考えた末、たどり着いたのが簡単な裏技です。トグルスイッチを2つ付けて、バックボーンを独立した部分に分割できるようにしました。バスのどこかで故障が起きたら、スイッチをパチンと切り替えて、まだ生きている側で航海を続ければいいのです。しかもスイッチの位置を工夫してあるので、どの部分にも必ず操作できる機器がひとつは残ります。船のコンピューター、チャートプロッター、あるいはコックピットのオートパイロットコントローラーです。
ネットワーク構成
構成はこんな感じです。バックボーンは船尾から船首まで3つのセグメントに分かれていて、その間に2つのアイソレータースイッチがあります。各列がバックボーンから分岐するドロップケーブルで、船尾側と船首側の機器群は Actisense QNB-1 ジャンクションブロックに集約しています。いくつかの機器は専用のドロップを持たず、Ethernet や NMEA 0183 経由で横からぶら下がっています。

セグメントの分け方は、船での役割分担としても理にかなっています。船尾セグメントには船のコンピューター、ZEUSチャートプロッター1台、Hercules CPU。コックピット/デッキハウスセグメントにはAP48オートパイロットコントローラー、Tritonディスプレイ、2台目のZEUS。船首セグメントにはNAC-3オートパイロットコンピューター、コンパス、AISなど。故障のあとにどのセグメントが生き残っても、データを見られるし、船を操舵できます。
バスにスイッチを入れるだけではダメな理由
すぐ思いつくのは、バックボーンに普通のオン/オフスイッチを入れるというアイデアですが、これはうまくいきません。NMEA 2000はCANバスで、CANバスは両端を120 Ωの抵抗で終端しなければなりません。2つのターミネーターはバックボーンの一番端にあります。途中でバスを切ると、片側にだけターミネーターがあって反対側には何もない、という切れ端が2本できます。結果は信号の反射、エラーフレーム、そして下手をすると、ちゃんと動くネットワーク1つの代わりに、死んだ半分のネットワークが2つ。スイッチは回路を切るだけではなく、切ったばかりの端にそれぞれ正しいターミネーターを与えなければならないのです。
裏技:DPDTスイッチ1個と抵抗2本
実は、双極双投(DPDT)トグルスイッチ1個と120 Ωの抵抗2本で、全部まかなえます。切り替えるのはデータ線の2本、CAN-HとCAN-Lだけ。電源(とシールド)はそのまま通しておけるので、スイッチがどちらに倒れていても両側に電源は供給されたままです。あるいはMerrimacのように、各部分に個別の電源を持たせておけば、消費電力を抑えられるうえ、壊れた部品をさらに「焼いてしまう」こともありません。
肝心なのは配線です。極1のコモン端子には左側のCAN-Hを、極2のコモン端子には右側のCAN-Lをつなぎます。通常位置では、連動する2枚の接点がすべてをそのまま直結します。

スイッチを倒すと、2枚の接点が両方とも反対側の接点に切り替わります。すると極1は、左側のCAN-Hを120 Ω抵抗の1本を介して左側のCAN-Lにつなぎます。そして極2は、右側のCAN-Hをもう1本の抵抗を介して右側のCAN-Lにつなぎます。つまり、バスが切断されるのとまったく同時に、切れた両端にそれぞれ終端抵抗が付くわけです。両側とも瞬時に、正しく終端された完全なCANバスとなり、それぞれ独立して動作します。

接続すべきものが4つあるように見えるのに、なぜDPDTで足りるのか。それは、どちらの位置でも必要な接続はちょうど2つで、しかも各側の1本の線をスイッチのコモンとして兼用できるからです。左側のCAN-Hは「左Hと右Hをつなぐ」と「左側を終端する」の両方に関わり、右側のCAN-Lは「左Lと右Lをつなぐ」と「右側を終端する」の両方に関わります。この2本を2つのコモンに割り当てれば、すべてがぴたりと収まります。おまけに物理的な配線もすっきりします。各ケーブルの線は、自分の側からまっすぐスイッチ中央のコモン端子に来るのです。
実際の運用
このアイソレーターが2つあれば、バックボーンを3通りに分けられます。船尾セグメントを切り離す、船首セグメントを切り離す、あるいは普段どおり3つ全部つなげて使う。海上での故障探しは、ナビステーションに座ったまま、スイッチ2回の二分探索になります。スイッチを1つ切り替えて、残ったバスが復活すれば、故障は今切り離した側にあるということ。そして桟橋に着いてきちんと修理するまでは、健全なセグメントがそのまま動き続け、チャートプロッターかコックピットのコントローラーが引き続き仕事をしてくれます。
部品の合計はトグルスイッチ2個と抵抗4本。暗い嵐の夜に備える保険としては、安いものです。
コメント