自動車産業では現在、殆どすべての車内の各機器の通信をCAN通信によっています。 工具のボッシュ社の提案による方法で、通信のやり取りに関する複雑な殆どの部分をIC内部の物理層で解決する方法です。
「連枝」(れんり)では、PIC18F458・4585・4680にこのCAN通信機能が内蔵されているのを利用して、接点(Bリレー)とメモリ(W)を、各機器相互に通信して共通の値いとして利用できるようにしました
「連枝」ではI2CもCANも同じ仕様です。
I2CとCANは通信規格が全く別のもので、一般的には前者は同一制御盤内で、後者は制御盤外の長距離の通信をします。
しかし、「連枝」(れんり)にとっては接点(Bリレー)とメモリ(W)の変化を各CPU間に通信して、共通の値いとする仕様は全く同じです。
◎ユーザーはBリレーとWメモリを回路上で使用し、どちらの通信かを設定するだけでプロトコルについて何も考える必要はありません
目安としては、I2Cが50cM以内、CANが15M以内が考えれますが、その仕様はについては使用状況やそれぞれの規格が基準になります。
CAN通信にはシリアル通信のMAX232にあたる周辺素子MCP2551の接続が必要ですが、I2C通信は各CPUのピンどうしの接続のみで、外部周辺素子は不要です。
ラインで複数箇所で操作しする場合、従来は押し釦やパイロットランプ等を実配線で配線していましたが、この従来方法だと配線が複雑かつ冗長になります。
マイコンの発達により、シリアル通信の方法がとられるようになりましたが、このためには高価なシステムを組み込むか、自ら複雑なプロトコルを組んで動作させなくてはなりませんでした。
「連枝」(れんり)のI2C通信やCAN通信によれば、Bが頭につくBリレーを使用すればその変化値が、自動的に他の連結CPUに送られます。複雑なプロトコルは全て「連枝」側でコンパイルしてくれます。
◎CANでは通信失敗の場合はPIC18F458の持つCAN機能の物理層によって自動的にリトライがなされるとともに、「連枝」(れんり)のソフトによってもACKが確認されます。
◎I2CではこのCPUの物理層の持つリトライの機能や、「連枝」(れんり)のソフトによるACKの確認はありませんが、ACKの発行や2つのCPUによる通信衝突の際のアービトレーション(振り分け調整)等の多くの機能が物理的に内蔵されていて自動的に実行されます。
つまり、ユーザーとしてはBリレーを使用するだけの仕様です。他に16ビットのWメモリーもそれを回路中に使用するだけで送信されます。
例として荷物用3階エレベータを、「連枝」(れんり)のCAN通信で操作する場合の回路の一部を次に示します(通常の回路は、DL版のサンプル中にあります)。
この時、6行目の出力のB07による3階ランプ点灯は各階で行わなくてはなりませんから、従来は実配線で各階に持っていかなくてはなりませんでした。
また7行目の1階行き押しボタンも各階に置かなくてはならないので、これも実配線で各階の押しボタンからの実配線が必要でした。
連枝ではそれらをすべて、接点Bとして制御盤において、あとは2本のCAN通信で各階の制御部分から持って来ればよいことになります。
3階の制御部の回路は以下のようになります。
以上で全回路です。単純なI/Oだけの回路になります。
入力情報についてはI/Oの結果を接点Bに変えるだけで、その結果が各階に通信されます。
2階も同様な回路になります。
本体制御盤と各階の通信によって、エレベータは動作します。2階と3階も通信を行っていますがこの場合、意味はありません。
「連枝」はその他、Wメモリー16ワードも相互に通信します。
これによって、各部所のアナログセンサーの値等を、本体を始めとする各制御部に送ることができます。
通信のプロトコル等はすべて「連枝」の変換ライブラリー(別売り)が構成してくれます。
ハード回路構成上、PIC18F458(258)とMCP2551がメインのICになります。両方ともマイクロチップ社製ですが、後者はRS232C通信回路のMAX232にあたります。