再版: CAN の知識

著者:プラトン
リンク:https://www.zhihu.com/question/35630289/answer/650086824
出典:Zhihu
著作権は著者に属します。商業的転載の場合は著者に連絡して承認を求め、非商業的転載の場合は出典を明記してください。
 

1 自動車エレクトロニクス エンジニアのあるところには CAN があります

インテリジェントネットワーク化車両の波が世界的に押し寄せ、ビッグデータ、クラウドプラットフォーム、人工知能、自動運転などは、カーエレクトロニクスの専門家にとって長い間馴染みのある言葉になっています。しかし、 1986 年に誕生したCAN バス技術は耐久性があり、活力に満ちています。CAN バスは今後も長期間にわたって車両ネットワークの主力の 1 つであり続けることが予想されます。

CAN バスの使用は、自動車エレクトロニクス ハードウェア エンジニア、ソフトウェア エンジニア、システムエンジニア、テスト エンジニア、ロード テスト エンジニア、キャリブレーション エンジニアなど、自動車エレクトロニクス エンジニアリングのすべての初心者にとって必須のコースであると言っても過言ではありません。いずれにせよ、自動車エレクトロニクスの「レンガ移動」エンジニアである限り、車内の CAN データを収集し、さまざまな難病を分析するためにオシロスコープや CAN OE (車両スパイ) を使用することから逃れることできませCAN OE や Vehicle spy をプレイしたことがない場合、自動車エレクトロニクス開発を行ったことがあると言うのは恥ずかしいことです

ベクター VN1640 CAN ツール

OEインターフェイスが可能

車両スパイCANツール

車両スパイインターフェース


2 CAN の基礎知識

カーエレクトロニクス技術者の必修科目なのでしっかりと勉強する必要がありますが、開発・普及から数十年が経ち、インターネット上にはCANに関する資料が無数にあり、インターネットで検索することができますので、私が勉強中によく読んだおすすめの本をご紹介します。

CAN 入門 - グラフィック - Baidu ライブラリ Wenku.baidu.com/view/7701528a6529647d2728520f.html

車載用チップメーカーとして有名なルネサス社の入門書ですが、個人的にはこの教材の特性が実戦で非常に意味があり、学習して実戦開発に活用するのに適していると感じました。

この本のキーワードと知識ポイントの簡単な要約は次のとおりです。

(1) CANネットワーク

図に示すように、CAN ネットワークは通常 N 個のノードで構成され、各ノードはバスで接続されており、各ノードには CANトランシーバーCAN コントローラー、メイン制御 CPU が含まれている必要があります (通常、CAN コントローラーとメイン制御 CPU は統合ソリューションです)より一般的な CAN 通信速度は 500Kbps と 125kbps、つまり業界ではいわゆる低速フォールトトレラント CAN と高速 CAN であり、物理的特性が異なります。

CAN接続図

低速フォールトトレラント CAN : CAN_H または CAN_L のどちらか一方が切断されても正常に通信でき、主にボディ制御 CANネットワーク チャネルなど、高い信頼性が要求される場面で使用されます。

高速CAN : より高いデータスループット容量に使用され、主に自動車電源システムのCANチャネルなど、リアルタイム性能と大量のデータ送信量を必要とする場合に使用されます。

高速 CAN VS 低速 CAN blog.csdn.net/ppdyhappy/article/details/71498688

(2) CAN フレームの分類

CAN フレームは、データ フレーム、リモート コントロール フレーム、エラー フレーム、オーバーロード フレーム、およびフレーム間隔に分類できますさまざまなフレーム タイプの用途は次の表に示されていますが、データ伝送のキャリアとして最も重要なのはデータ フレームであり、通常の制御コマンド、ステータス情報、診断データ、リフレッシュ データはすべてデータ フレームを通じて伝送されます。

(3) CANデータフレームの構成

CAN を理解するには、データ フレームの構成を絶対に知っておく必要があります。特にアービトレーション セグメントとデータ セグメントに注意してください。次の図は、標準フレームのフレーム フォーマットを示しています (アービトレーション セグメントは 11 ビットです)。ID 値の範囲は 0x000 ~ 0x7FF です。メーカーによっては、データ セグメントを次のような領域に分割します (ほんの一例です)

0x00~0xFF : 高優先度のイベントメッセージ送信に使用されます。

0x100~0x4FF : 定期的なメッセージ送信に使用されます。

0x500~0x5FF : ネットワーク管理メッセージの送信に使用されます。

0x600~0x6FF : デバッグ、開発、およびキャリブレーション関連メッセージの送信に使用されます。

0x700~0x7FF : 診断関連メッセージの送信に使用されます。

標準フレームの構成

拡張フレーム:

上図の標準データ フレームと比較すると、拡張 CAN データ フレームもあり、CAN データ フレームの SOF ビットは 32 ビットの調停フィールドです。調停フィールドの最初の 11 ビットは、29 ビットの識別子 (ベース ID) の最上位ビット (最上位ビット、MSb) です。これらの 11 ビットに続くのは、劣性状態として定義される代替リモート要求 (SRR) ビットです。SRR ビットの次は lDE ビットです。これは、これがリセッシブ状態にある場合の拡張 CAN フレームであることを意味します。


3 自動車開発におけるCAN開発の主な内容

入門書を読んで CAN の概念について予備的な理解ができたので、CAN の開発について簡単に説明しましょう。

私はソフトウェア開発に多く携わっているため、ここではハードウェア開発についてはあまり説明しません。

(1) CANドライバー開発

CAN トランシーバーを実現するには、最初に CAN ドライバー開発を実装する必要があります。CAN ドライバー開発には主に、CAN コントローラー ドライバー開発とCAN トランシーバー ドライバー、より古典的な NXP TJA104X シリーズ CAN トランシーバー、およびほとんどの NXP MCU 統合 flexCAN コントローラーが含まれます。開発のこの部分では、CPU とコントローラの対応するモデルのチップ マニュアルを読み、サンプル コードと組み合わせて、一文ずつ掘り出し、一行ずつ入力し、オシロスコープ (ロジック アナライザ) やさまざまな CAN ツールと連携して探索を繰り返します

NXPの特定チップのFlexCanに関連する主なレジスタ

TJA1043T の回路図 (NXP 公式 Web サイトからのスクリーンショット)

CAN トランシーバー ドライバーの開発で最も重要な部分は、トランシーバーのさまざまな動作モードの切り替え方法を理解することです。下の図に示すように、TJA1043T トランシーバーの状態切り替え図は、NORMALモード、STADBY モード、GO-TO-SLEEP モード、および SLEEP モードに分かれています。

TJA1043T トランシーバー状態切り替えの概略図 (NXP 公式 Web サイトのスクリーンショットより)

(2) CAN通信マトリックス

CAN 通信マトリックスは通常、車両メーカーによって定義され、車両ネットワーク内の各ノードは情報のやり取りと共有を完了するために通信マトリックスに従う必要があります。

図に示すように、ベクトル ツールは、XXX.dbc ファイル (一般的に通信マトリックス ファイル形式を保存するために使用されます) を開きます。CAN メッセージ Message1 が一度に 8 バイト、つまり 64 ビットの情報を送信できることがわかります。64 ビットは複数の信号で構成され、各信号はメッセージの異なる位置に分散されます。(例) 青い openwindow は、ウィンドウを開く制御コマンドとして表現できます

好き:

①openwindow=0の場合はウィンドウを開くことを意味し、openwindow=1の場合はウィンドウを閉じることを意味します。

②vehiclespeedは車速情報を示し、vehiclespeed=5は5km/hを示します。

ここでは簡単な例を示しますが、実際の自動車開発では、特定の物理値と論理値の変換も必要になります

このようにして、Message1 が CAN バスに送信されると、CAN ノードを受信した側は、この時点での CAN 制御コマンドやステータス値を取得することができます。

dbc ファイル内の message1 の概略図

通信マトリックスを定義する場合、製造元によって選択肢が異なる場合があることに注意してください。たとえば、モトローラ フォーマットとインテル フォーマットのどちらを選択するかについては、製造元ごとに独自の優先順位があります。

Intel 形式と Motorola 形式の違い blog.csdn.net/bingdianlanxin/article/details/41522373

(3) CANベースの車両診断

百科事典 -車の診断:分解しない(または個々の部品を取り外すだけ)という条件で、車の技術的な状態を判断し、故障の場所と原因を見つけます。自動車エンジンの検出と診断、自動車シャシーの検出と診断、自動車車体と付属品の検出と診断、自動車の排気汚染物質と騒音の検出と検出などが含まれます。CAN は上記の要件を十分に満たすことができます。

自動車診断の開発は自動車電子機器の開発において非常に重要な部分であり、CAN 診断で最も一般的なのは UDS です。UDS プロトコルは、統合診断サービスである Unified Diagnostic Services であり、診断サービスの標準規格であり、自動車の診断で広く使用されており、図に示すように、診断ニーズに応えるため、一連のサービスが UDS で定義されています。

もちろん、診断メッセージの安定した送信を保証するために、CAN バス上の診断プロトコルである ISO 15765 プロトコルもあります。

の:

ISO 15765-1 には物理層とデータリンク層が含まれます。

ISO 15765-2 はネットワーク層について説明しています。

ISO 15765-3 は、アプリケーション層での特定のサービスを指定します。

上記の規格の内容は比較的複雑なので、ここでは詳しく説明しませんが、CAN 開発、特に CAN 診断で良い仕事をしようと決意している学生にとって、ISO14229 と ISO 15765 に精通していることは避けられません。

CAN診断に基づくプロトコルの概略図

(4) CANベースのリフレッシュ

設計上の欠陥や機能のアップグレードにより、オンボード コントローラにはライフ サイクル中にソフトウェア リフレッシュが必要になります。コントローラと外部の間のほぼ唯一のデータ チャネルとして、オンボード コントローラのソフトウェア リフレッシュは通常 CAN チャネルによって実装され、CAN ベースのリフレッシュは CAN ベースの診断と密接に関連しています。

(5) CANネットワーク管理

今後、主にOSEKネットワーク管理とAUTOSARネットワーク管理に分けて詳しく説明していきます。


4 上級段階 - AUTOSAR について言及する必要がある

自動車エレクトロニクス業界における AUTOSAR の人気は、中国の香水業界における「リューシェン」の人気に劣るものではありません。簡単に言えば、AUTOSAR は世界的な自動車メーカー (BMW、ダイムラー、フォード...)、部品サプライヤーおよびその他の電子機器 (コンチネンタル、ボッシュ...)、半導体およびソフトウェア システム会社によって共同設立され、各メンバーは開発パートナーシップを維持しています2003 年以来、パートナー企業は協力して、自動車業界向けのオープンで標準化されたソフトウェア アーキテクチャを開発してきました。

AUTOSAR Alliance の創設メンバー

CAN は自動車エレクトロニクスの分野で最も重要な通信形式です。AUTOSAR が CAN を定義および標準化しないのはなぜですか? AUTOSAR のアーキテクチャは今日のソフトウェア アーキテクチャに重要な影響を与えていると言えます。図は AUTOSAR における CAN 関連モジュールとアーキテクチャの初期配置を示しています。CAN ドライバ、インターフェイス層、トランスポート層、CAN 診断、CAN ネットワーク管理などが下から上に体系的に定義されていることがよくわかります。

現在、国内の大手OEMや部品サプライヤーもAUTOSARを積極的に推進しており、CANの上級者になるためにはAUTOSARをよく理解することが絶対に必要です。

----ただ、AUTOSARは本当に奥が深いので、今後一緒に深く勉強させていただく機会があります。


5 やって、やって、やって

初心者からマスターまでの○○の技術」「○○の遊び方を教える実践編」「 ○○をマスターする10日間」 この手の本は誰でも聞いたことがあると思いますし、運が良い人は一度や二度は読んだことがあるかもしれませんが、読んだ後に本当に上達できるのか、楽しめるのか本に頼るだけで道を達成できる人は非常に少ないと思いますし、張無忌のように『宇宙大瞬間移動』を一冊手に取って数時間で実践できる人はいないでしょう

本当の知識は実践から得られ、実践が真実を試す唯一の基準であり、これらはすべて永遠の真実です。CAN を上手に学ぶには、次のことが必要だと思います。

(1) CAN 開発バージョンのセット。淘宝網にはこのタイプの開発バージョンが多数あり、価格は数十から数百の範囲です。

(2) CAN データの読み書きツールは数百元で簡単に入手できますが、もちろん、プロジェクトの条件や家にある鉱山シリーズがあれば、Vector の VN1640 やInterpezの Vehicle Spy を直接使用することもできます。

(3) ロジック アナライザー (オプション) : CAN フレームの理解を紙の上だけで保持したくない学生は、CAN の理解レベルが低い学生向けにロジック アナライザーを用意できます。

次に、実際に真実をテストし、実際に経験を総括することです。


要約:

個人的には、CANの学習は以下のレベル(段階)に分けられるのではないかと考えています。

CAN の理解と使用: CAN の入門書を読み、CAN ツールについて学びます。基本的に、CAN メッセージを収集して更新 (使用) できるようになります。

★★

CAN の動作原理をさらにマスターします。1 に基づいて開発バージョンを構築し、チップのマニュアルを読み、コードを入力し、オシロスコープで波形を測定します。

★★★

車載用CAN開発に従事:上記を踏まえ、各種CAN規格(ISO14229、ISO11898、ISO15765)に精通し、CAN駆動、CAN診断、CANネットワーク管理等の知識を体系的に学び、継続的に認識力を向上させ、実戦経験を積みます。

★★★★★

CAN のマスターになる: AUTOSAR アーキテクチャをマスターし、autosar で定義されている各 CAN モジュールの機能、動作原理、および実装方法に精通します。

余談: CAN は数十年にわたって開発、普及してきた技術であり、その技術標準やツールは非常に完成度が高いですが、CAN は今後も長く存続しますが、将来性が乏しいのは避けられませんし、車載ネットワーク技術には新星がたくさんありますが、その中でも最も可能性を秘めているのが車載 Ethernet であるため、より注目してよいでしょ

おすすめ

転載: blog.csdn.net/gonggong11qqqww/article/details/123703460