はじめに

写真1: 200mのケーブル相当の配線でCAN通信した場合の信号波形
前回、CANの終端抵抗の有無で波形を確認したところ、次のように終端抵抗なしのときに顕著に波形のなまりが発生しました。かなり方形波が崩れています
終端抵抗有無の計測データ
| 終端抵抗 | 終端両方あり | 終端片側あり | 終端両方なし |
|---|---|---|---|
| 波形 | ![]() |
![]() |
![]() |
| 通信可否 | 通信可能 | 通信可能 | 通信不可 |
(今回トライした内容) 距離を延ばしたら、どうなる?
今度は、配線が長くなった場合はどうなるのか?と思い、配線が長くなったときに発生する線の容量をコンデンサを使って擬似的に確認してみました
疑似環境
ケーブルの浮遊容量を100pF/mと仮定して、次のようなコンデンサを使った疑似環境を準備しました
| 距離区分 | 距離の目安 | コンデンサ容量 | 予測 |
|---|---|---|---|
| 近距離 | 0m | 無し(0pF) | きれいな波形のはず |
| 長距離 | 100m | 10,000pF (103を1個) | 100mぐらいは現実使いそう(500kbps) |
| 超長距離 | 200m | 20,000pF (103を2個) | 200mは、かなり厳しいのでは? |
計測結果
| 距離 | 近距離 | 長距離 | 超長距離 |
|---|---|---|---|
| コンデンサ | 無し | 103 を 1個 | 103 を 2個 |
| 波形 | ![]() |
![]() |
![]() |
| 通信可否 | 通信可能 | 通信可能 | 通信不可 |
計測メモ: 全て終端両方あり
動画
| 秒 | 内容 | 補足 |
|---|---|---|
| 0〜10秒 | コンデンサ無し | LEDのゆっくりした点滅は、受信データが有ることを示しています |
| 10〜20秒 | コンデンサ 103を1個 | (同上) |
| 20〜30秒 | コンデンサ 103を2個 | LEDが一瞬だけ点灯しているのは、受信データが無い事を示しています |
考察
100m程度(コンデンサ103を1個)にすると、波形がなまっているが、十分ON/OFFを判断できる方形波に見えます
200m程度(コンデンサ103を2個)にすると、波形がかなりなまり、1bitのデータ間隔内で方形波がON/OFFできていません
感想
距離を延ばすと通信ができなくなる加減を何となくですが、確認することが出来ました
距離を延ばして通信ができない状態は、前回の終端抵抗が無いときと似た波形となりました
実際に通信ができないときは、原因の特定にオシロを使い波形を確認して、終端抵抗や配線・距離を見直すことで通信できる状態に改善できると思いました
コード
GitHubへのリンク
このコードは、Waveshareのサンプルコードを使いました
LEDを制御するロジックなどを追加しました。この追加は全てCopilotに指示をして作りました
私は一行もコードを実装しませんでした
補足
通信不可の判定方法
1秒周期で受信データの有無を確認しています。
LEDが一瞬だけ点灯している場合は、受信データが無い事を、
LEDがゆっくり点滅している場合は、受信データが有ることを示しています
計測メモ
Trigger=Auto, 無限残像 (10秒間手動)
ケーブルについて
特性インピーダンスが120Ωの配線を準備できなかったので、ツイストケーブルで手に入りやすく、特性インピーダンスが100Ωと120Ωに近いLANケーブルを利用しました
関連Qiita記事
感想
次は、CAN FD用のハードウェアを使って波形を確認してみたいです
(例: Amazon)






