MONOist 初期段階の構想では、CXPIを“待ち時間”がなく応答性の良いLINとすることを考えたと聞いている。
金子氏 LINの課題になっていたアクセスの順番待ちを解決するために、バスへのアクアセスがなければ送信でき、また複数が同時に送信したらメッセージを調停する仕組みが必要となる。この仕組みをマイコンに汎用的に搭載されている通信インタフェースの「UART」を活用して実現した。
UARTは通信メッセージを伝達し終えるまで送信を停止しないという特徴がある。このマイコンのUARTインタフェースと接続されるのがCXPIのトランシーバICだ。このトランシーバICはマイコンからクロックを入力され、クロックを波形を成形し、バス上にクロックを常時出力する。クロックを出力する側がクロックマスターだ。
クロックを受ける側は、スレーブと呼ぶ。送信する場合は、クロックと送信データを重畳した波形がトランシーバICから出力される。CXPIのネットワーク内では、クロックマスターがバスに出力するクロックに同期する。通信メッセージが同時に送信された場合は、このトランシーバICが調停役となる。
この調停は送信データの最小単位で行われる。調停を実施し、調停負けをした優先順位の低いデータが、優先順位の高いデータを破壊しないようにトランシーバICで出力を停止するのである。マイコン側のUARTは通信メッセージを送信し続けることに専念するので、「CXPIコントローラー」のような専用回路を使用しなくても成立する。どんなマイコンにも搭載されているUARTで実現できることがCXPI開発のカギになった。
CXPIのネットワークは、マイコンとトランシーバIC、発振器で構成されるマスターノードと、マスターノードからの調停に従うスレーブノードから構成される。ネットワーク構成だけを見ればLINと大きくは変わらない。ただし、CAN並みの応答性を確保する上で、CXPIネットワーク内のマスターノードとスレーブノード間、スレーブノード間がいつでも“話せる”ようにした。LINでは全てのスレーブノードに発振器を持たせなければ、このような機能を実現できない。
MONOist CXPIは高コストにならないのか。
金子氏 マスターノードは、クロックマスターとして精度の高いクロックが必要なのでマイコンと発振器が必要だが、スレーブノードはマイコンなしでも実現できるし、極端にいえば発振器も不要だ。CXPIのトランシーバICがあればスレーブノードとしての要件を満たすことができる。既にLIN並みにコストを抑えられる見通しも立っている。LINのようなスケジューリングも可能なので、LINを使ったシステムの置き換えにも対応できる。
金子氏 CXPIは“応答性の高いLIN”ということだけが特徴ではない。LINの最大転送データ容量は1フレーム当たり8バイトだが、CXPIは1フレーム当たり255バイトまで送ることができる。
この最大転送データ容量の大きさによって、次世代CANといわれるCAN-FD(Flexible Data Rate)との高い親和性を確保しやすい。CAN-FDでは、最大転送データ容量が、CANの1フレーム当たり8バイトから8倍の64バイトに増える。つまり、もしCAN-FD の1フレーム当たり64バイトのデータを、CANを使って送受信するには8フレームに分けなければならないことになる。LINも1フレーム当たり8バイトなので同様のことが起こる。これに対して、CXPIは1フレーム当たり255バイトなので、CAN-FDとのそういった問題はない。CAN-FDとの組み合わせ利用に最適だと考えている。
また、CXPIの最大転送データ容量の大きさはセキュリティ向上にも有効だ。CANデータに暗号化のためのメッセージ認証コードを付けると8バイトを超えてしまうが、CXPIの255バイトなら十分対応できる。
CXPIの通信速度20kbpsだ。走る/曲がる/止まるといった制御には足りないが、HMIなど操作系では十分だと考えている。
Copyright © ITmedia, Inc. All Rights Reserved.