公開日:2024/07/17
現在、私たちが日常的に利用する通信技術といえば、「モバイル」「Wi-Fi」「Ethernet」といった言葉が挙がるでしょう。
また、スマートフォンやパソコンと周辺機器を接続するための「USB」もよく知られています。
これらは、私たちの生活に欠かせない通信技術ですが、ほんの一部に過ぎません。
例えば、自動車の内部では「CAN」という通信技術が広く使われています。これは社会インフラを支える重要な技術でありながら、「Ethernet」や「USB」に比べると一般の人が直接目にする機会は少なく、日常的には意識されにくいものです。
今回は、「CAN」について詳しく見ていきたいと思います。
1. CANの概要
(1) CANの概要
CANとは「Controller Area Network」の略で、1986年にドイツのボッシュ社によって仕様が公開され、後に国際標準化された通信プロトコルです。ほぼすべての自動車で採用されており、現在では鉄道、船舶、航空などの物流システムに加え、産業機器や医療機器など広範囲にわたって利用されています。
CAN自体は40年近い歴史があり、その間に内容は進化してきました。現在では単に「CAN」と言う場合、1991年から規格が整理・拡張され続けている「CAN 2.0」の中で、特に「高速CAN」を指すことが一般的です。本コラムでも「CAN」と記載した場合は「高速CAN」を指すこととします。
項目 | CAN(CAN 2.0) | |
---|---|---|
高速CAN | 低速CAN | |
データリンク層 | ISO 11898-1 | |
物理層 | ISO 11898-2 | ISO 11519(ISO 11898-3) |
通信速度 | 125kbps~1Mbps | 10kbps~125kbps |
最大データ長 | 8Byte | |
最大バス長 | 40m(1Mbpsの場合) | 1km(40kbpsの場合) |
最大接続ノード数 | 30台 | 20台 |
また、2012年にはCANと互換性のある「CAN FD(CAN with Flexible Data rate)」が公開され、従来のCANに比べて高速で大容量の通信が可能になりました。例えば、CANの場合は「通信の調停を行うアービトレーションフェーズ」と「データ送信を行うデータフェーズ」が同一の通信速度ですが、CAN FDの場合は異なるビットレートを設定できます。また、CAN FDではデータフェーズにおいて、最大5Mbpsの通信速度が規定されています。
項目 | CAN | CAN FD |
---|---|---|
データリンク層 | ISO 11898-1 | ISO 11898-1:2015 |
物理層 | ISO 11898-2 | ISO 11898-2:2016 |
通信速度 | 125kbps~1Mbps | 1Mbps以上 (規格上はデータフェーズが5Mbpsまで) |
データ長 | 0~8Byte | 0~8, 12, 16, 20, 24, 32, 48, 64Byte |
(2) CANの特徴
① 省配線のライン型ネットワーク
- ※ECU:Electronic Control Unit。ブレーキやエンジンのような運転制御に関わるものから、ライトやドアのような車体設備に至る自動車を構成する各電子制御機器を指す。現在市販されている自動車には100超ものECUが搭載されている。
② ノイズに耐性のある2線式差動信号
CANは、少ない通信線でありながら、自動車の走行中などに発生するすべてのノイズにも耐性が求められるため、ツイストペアケーブルを用いた差動伝送方式の半二重通信を採用しています。2本の信号線はそれぞれCAN High信号(CANH)とCAN Low信号(CANL)と呼ばれています。
CANでは、CANHとCANLの差分の有無によって通信の状態を判断します。差分がない状態をレセシブ(劣勢)、差分がある状態をドミナント(優勢)とし、それぞれが論理値として1と0を表します。
バスの状態 | レセシブ(1) | ドミナント(0) | ||||
---|---|---|---|---|---|---|
min | typ | max | min | typ | max | |
CANH | 2.00 | 2.50 | 3.00 | 2.75 | 3.50 | 4.50 |
CANL | 2.00 | 2.50 | 3.00 | 0.50 | 1.50 | 2.25 |
電位差 | -0.50 | 0.00 | 0.05 | 1.50 | 2.00 | 3.00 |
CANは信号差分の有無で論理値を定義しているため、外界ノイズの影響を受けた場合は2本の信号線が同時に同じ影響を受けることになり、差分の状態が変わらないことからノイズ耐性が強くなります。
③ マルチマスター(CSMA/CR方式による送信データ優先度)
各システムが通信を行う際には、まずバスの空き状況を確認し、空いていればすべてのシステムから送信が可能です。
しかし、複数のシステムが同時に通信を開始した場合、通信データ(フレーム)がバス上で衝突することがあります。 このとき、各フレームのID情報を使ってアービトレーション(通信調停)が行われます。
アービトレーションによって、優先度の高いフレームが通信を続行し、優先度の低いフレームは通信を中断する仕組み(CSMA/CR方式※)によって、マルチマスターの構成が実現されています。
- ※CSMA/CR:Carrier Sense Multiple Access with Collision Resolution。バスを監視して複数ノードからの送信アクセスが可能で、衝突の際は優先度付けによる解決を行う。
2. CAN通信の波形を見てみよう
(1) CANサンプルプロジェクトについて
当社のCPUボードの多くは、CANトランシーバアダプタ「PC-CAN-01/02」「PC-CAN-03」を使用することで簡単にCAN搭載機器と通信することができるようになっています。
CPUボードシリーズ | CPU | CPUボード |
---|---|---|
RZシリーズ | RZ/A1H | AP-RZA-0A |
RZ/A3UL | AP-RZA3-0A | |
RZ/T2M | AP-RZT2-0A | |
RZ/G1E-PF | AP-RZG-0A | |
RXシリーズ | RX651 | AP-RX651-0A |
RX71M | AP-RX71M-0A | |
RX72M | AP-RX72M-0A | |
RX72T | AP-RX72T-0A | |
RAシリーズ | RA6M3 | AP-RA6M-0A |
RA6M5 | AP-RA6M-1A | |
RA8M1 | AP-RA8M-0A | |
RA8D1 | AP-RA8D-0A |
- ※PC-CAN-01はCPUボードからの電源供給が5Vである場合に使用してください
当社では、各CPUボードの通信インタフェースのサンプルプログラムを公開しており、CANの機能確認が行えるサンプルも用意しています。ユーザーはハードウェアの準備を整えればすぐにCAN通信を体験することができます。
本コラムでは、USB-CAN変換アダプタを利用して、PCとRA8D1搭載のCPUボード「AP-RA8D-0A」を接続し、CAN通信のサンプルプログラムを動作させて、CAN通信の内容をモニタリングしてみます。
(2) CAN通信
サンプルプログラムは以下のような動作をします:
- 1. 外部から送信されたすべてのフレームを、IDに関係なく受信します。
- 2. 受信したフレームをそのままエコーバック(再送信)します。
つまり、CPUボードがCAN通信を行う様子を観察するためには、まずCANalyzerを使用してフレームを送信することが必要です。
通信を行う前に、CANalyzerの通信設定をCPUボードのサンプルプログラムと同じ設定にしておく必要があります。
項目 | 設定値 |
---|---|
IDフォーマット | スタンダードフォーマット |
通信(フレーム)種類 | データフレーム |
データ長 | 8Byte |
通信速度 | 500kbps |
上記の準備が完了した状態で、実際に通信をした際のCANH・CANLの信号波形をオシロスコープで測定してみました。
CANのデータフレームの構成は以下となっています。
SOF | ID | RTR | IDE | FDF | DLC | Data | CRC | CRC デリミタ |
ACK スロット |
ACK デリミタ |
EOF | ITM |
---|---|---|---|---|---|---|---|---|---|---|---|---|
bit | 11bit | 1bit | 1bit | 1bit | 4bit | 0~64bit (0~8Byte) |
1bit | 1bit | 1bit | 1bit | 7bit | 3bit |
先頭の数ビットに注目して見てみると、レセシブが続いている状態からドミナントに変化するタイミングがCAN通信の開始を示すSOF(1bit)となります。
その後の11bitは送信先IDを指し示し、値(0x555=0b10101010101)通り、0と1を1bitずつ小刻みに変化する波形が正しく表れていることが分かります。
さらに波形を読み進めていくと、フレームで送信したペイロードデータ(0x01, 0x02, 0x03, …)も表れてくるのですが、ビットスタッフィングと呼ばれる同期用ルールによって素直に読み解くことはできません。
データフレーム構成の各要素や「ビットスタッフィングルール」については皆さんでお調べいただき、残るデータをぜひ読み解いてみてください。
3. まとめ
今回は、私たちの生活を支える通信技術の一つである「CAN」の概要と特徴を紹介し、CPUボードのサンプルプログラムを使用して実際の信号波形を確認しました。
元々は車載ネットワーク向けに設計されたCANですが、その省配線とノイズ耐性という特性から、他の分野でも広く利用されています。例えば以下のようなオープンネットワークがあります:
- FA分野:DeviceNet
- 建設機械・商用車分野:SAE J1939
- 航空機分野:CANaerospace
- 汎用:CANopen
しかし最新の車載ネットワークの分野においては、コネクテッドカーなどで各システム間での大量通信が求められるようになっており、次世代の車載ネットワーク(車載Ethernet)への注目も高まっています。
その一方で、EthernetやUSBと比べて通信速度や通信量には劣るものの、CANは省配線のバス型ネットワークという利点から製造コストを低減するメリットがあり、依然として重要な通信技術として使用されています。
本コラムで紹介したCAN通信のサンプルプログラムはCPUボードに付属しておりますので、CANの教育や評価用途などでも、ぜひ当社のCPUボードをご利用ください。
製品のご案内
本コラム以外にも開発にお役立ていただける技術情報をアプリケーションノートとして公開しております。
ご興味のある方は、ぜひ製品をご利用ください。
- ※Arm, TrustZone, HeliumおよびCortexは、米国および/またはその他の地域におけるArm Limited(またはその子会社)の登録商標です。
- ※記載されている会社名、製品名は、各社の商標または登録商標です。
- ※記載の内容は改良のため、予告なく変更する場合がございます。