CANopenプロトコル

迎撃住所:https://www.e-learn.cn/content/qita/715699

CANopenの契約とは何ですか

CANopenのプロトコルアプリケーション層プロトコルが確立CANバスプロトコルに基づいています。

CANopenのプロトコルである「マスタ - スレーブプロトコル」、CANopenネットワークは、一つのマスターと複数のスレーブを有しています。

各サイト、データ・ディクショナリと4の動作状態からID番号を持っています。

CANopenプロトコルのCAN通信バスフレームプロトコルおよびカプセル化は、より高いレベルの通信のニーズを満たすためにさらに分類されました。

CANopenのデータディクショナリ

CANopenネットワークの各スレーブデバイスは、データ・ディクショナリ、実際にはデータ辞書を持っている必要があり、この翻訳は、それが呼ばれるべき、正確ではありません「コマンドと機能IDテーブル。」

例えば、ネットワークトラフィックライト装置を有し、デバイスは、データ・ディクショナリを有していてもよいです。

指数 サブインデックス データ 機能
0x400 0 0 ライトをオンにします
  0 1 明かりを消します

ここで、インデックスは、「コマンドID」と解釈することができ、サブインデックスは、「サブID」として理解することができます。

「辞書」であれば0にデータが、ライトが点灯した場合、他のデバイスは、0x400のIDと0のコマンドIDのサブコマンドを含む信号灯を送信するように、示し、データが1の場合、光が出て行きました。以上のように、「データ辞書」だから「と、機能IDテーブルコマンドを実行します。」

実際には、CANopenの契約は、デバイスのデータ・ディクショナリのフォーマットを提供し、コマンドのID番号と分類規定(特定の規定は複雑であり、仕様を参照してください必要とします)。

コマンドIDが固定されているいくつかの機能は、それが一部の機器メーカー自身によって決定することができます。ID機能に対応するコマンドが常にデバイスを操作しない場合、この情報は、デバイス名など、デバイスを読み取ることができます。

次の質問は、デバイスID、それにコマンドを送信する方法ですか?この点で、CANopenの契約はまた、以下に紹介することを規定しています。

共通の通信対象デバイスID

CANopenのプロトコルである - 「スレーブ」デバイスは、自身のデバイスIDを持つようにバスの各々に提供する「マスタースレーブプロトコル」(マスタデバイスは必須ではありません)。

このIDは、ノードIDと呼ばれる、英語名は、1から127までの範囲内の多くの記事で(0特別な目的ではなく、デバイスに割り当てられたIDなど)がより一般的です。

バス上の2つの同じIDは、スレーブデバイスの同じ数を表示することはできません。したがって、127台のスレーブ・デバイスへのバス・プロトコルのCANopenアップに基づきます。

では、なぜそれが問題を説明するために、我々は最初のオブジェクトに指定のCANopen通信プロトコルを理解する必要があり、127です。

基本ユニットのようなバス通信プロトコルは、(SO仮にそれを翻訳し、オブジェクトとしての英語)「通信オブジェクト」と呼ばれる基本単位のCANopen通信プロトコルとして「フレーム」と呼ばれることができます。

共通の通信オブジェクトは、PDO、NMT、SYNC、緊急、タイムスタンプ、SDOを持っています。

彼らは、4つの部分のコード、ノードID、DLC(データ長)、DATA(データ)funcitonを含む、同一の構造を有しています。

基本的に実装されたデータフレームをカプセル化することにより、CANバスプロトコルです。

その違いは、このセクションデータ、いくつかのオブジェクトに完全にデータを送信するために使用することができ、さらに分割および要件へのデータセクションのために作られたいくつかのオブジェクトのデータ部分に反映しました。

上述したように、アービトレーションフレームセグメント11を含むCANデータバスプロトコルは、フロントフレームIDです。CANopenの契約さらにフレームIDと2つの部分にノードID FunctionCode、次のように

機能コード ノードID
4 7

ノードID 7のみのため、最大値は127なので、バスCANopenプロトコルで最大127台のスレーブデバイスがあります。functionCodeと一緒にまたCOB-IDとして知られているノードID。

制御セグメント4に対応するDLCデータフレームの後には、後続のペイロードデータの長さを示します。

同じ長さのデータフレームDATAセクションは、どのような目的のためとして、異なるオブジェクトは異なる要件を持っています。

機能コード ノードID DLC データ
4ビット 7ビット 4ビット 8 * 8ビット

見られる、通信プロトコルは、オブジェクトのCANopenフレームであるが、アプリケーション層プロトコルは、CANバスプロトコルに基づいて、CANopenのプロトコルであるように、さらに、フレームのコンテンツのデータ形式を指定します。

PDOオブジェクト

上述した従来の通信対象ではNMT、SYNC、EMERGENCY、タイムスタンプ、SDO、PDOは、各オブジェクトは、独自の通信目的を有しています。この章では、PDOオブジェクトに焦点を当てて、このオブジェクトの仕組みを理解し、他のオブジェクトが消化することができます。

1 PDOは、概要オブジェクト

応答の受信の肯定応答を待たずに、「プロセス・データ・オブジェクト」と呼ばれるPDOオブジェクト、データ伝送のための接続なし、局B局、B局へ、すなわち、送信データAが与えられます。もちろん、応答ビットUDPプロトコル通信ネットワークのような、ステーション情報をB局の数であってもよい、すなわち、応答が必須ではなく、B局に答えるか、応答してもしなくてもよいです。

データセクションPDOオブジェクトは完全にデータを送信するために使用され得る、進歩を行う必要はありません。

上記の知見によれば、CANバスは、本質的にステーションBにブロードキャストされ、それは(仮定局Bがマスターである)は、3つの問題に直面しました。

  1. 異なるオブジェクトのデータ部分の意味は解決するために、異なる、さまざまな方法があるので、通信先は、バスPDOオブジェクト上ではありません。
  2. 私たちは、PDOオブジェクトがステーションAによって発行された方法を知っていますか。
  3. どのように答えるために、すなわち、局Aは、PDOを送信します。

問題1の場合、B局は、現在functionCodeを読み出すことによって、バスPDOオブジェクト上にないと判断されます。上記functionCodeの4ビットのビットを有する、すなわち16の異なるfunctionCode。

CANopenプロトコルは、PDOオブジェクトが使用されなければならないことは必須ではない(または複数)functionCode、A及び局Bは、規則を所有することができます。

あなたが続くことができるか、従わないかもしれませんが、実際には、そうでない場合は特殊なケースを使用することが示唆されているのでしかし、「勧告」の区分へのCANopen契約、(タイトル番号を持つだけではない、本当に本が勧告と呼ばれる、強調するため)次のように人々は、「勧告」に準拠しています。

オブジェクト 機能コード ノードID COB-ID
NMT(モデル制御) 0x0の 0x0の 0x0の
SYNC 0x1の 0x0の 0x80を
タイムスタンプ 0x2の 0x0の 0x100を
緊急 0x1の 0x1-0x7F 0x81-0xFF
PDO 0x3-0xA 0x1-0x7F 0x181-0x57F
SDO 0xB-から0xC 0x1-0x7F 0x581-0x67F
NMT(ERROR) 0xDの 0x1-0x7F 0x701-0x77F

質問2と質問3のために、私たちは局Node-IDが1であり、さらにTPDOとRPDOの概念を導入する必要性を解決できることを前提としています。

表から、我々はすなわち、PDO functionCode 8の範囲であることに注意、この範囲内の全ての通信functionCodeオブジェクトは、PDOオブジェクトです。ただ、PDOはさらに細分化された「提案」を述べました。PDO次の表に例として駅:

オブジェクト 機能コード ノードID COB-ID
TPDO1 0x3の 0x1の 0x181
RPDO1 0x4の 0x1の 0x201です
TPDO2 0x5 0x1の 0x281
RPDO2 0x6に 0x1の しました0x301
TPDO3 0x7 0x1の 0x381
RPDO3 0x8の 0x1の 0x401でし
TPDO4 0x9 0x1の 0x481
RPDO4 0xAが 0x1の 0x501

上記の表によって、我々は、ステーションAはRPDO用TPDO 4、4、8 PDOオブジェクトから有することができる見ることができます。以下の質問2、B駅、答えるために「私はPDOがステーションに送信される知っているどのように?。」その答えは、オブジェクトA PDO局TPDO、即ち等しい0x181,0x281,0x381 COB-IDまたは0x481かどうかを検出することです。

質問3のために、答えは(マスター)局B局であり、AはRPDOが属する送信します。RPDO自身のデータを知るために、バス上のステーションチェックは、独自に送信されます。

拡張質問2 PDOオブジェクト

スポークオン - コミュニケーション論「マスター・スレーブ」局間PDOオブジェクト。しかし、我々は、次の2つの質問の出てくる「提案」を、続く前提があります:

  1. 各スレーブへの「勧告」は、つまり、各マスタはスレーブのみにデータ4 * 8バイト(64バイト)を送信することができます4つのRPDOオブジェクトを割り当てられ、どのように行いますか?
  2. 駅からの局と通信する方法?から

質問1の場合、答えは、彼がそのような0x281も、限り、マスターとスレーブがライン上でこの要件を満たすことができますようRPDOを提供などの規定を、必要なことを「勧告」に従うことではありません。「提案」自体は明らかに、ほとんどのアプリケーションを満たすために、議論する多くのメーカーの結果であるので、しかし、これは、まれです。

契約は、CANopenの「マスタ - スレーブ」であるため、質問2のために、実際には、アプリケーションのCANopen契約の範囲を超えて、プロトコル、契約のこのタイプの特徴は、スレーブ間の通信のないチャネルが存在しないことです。あなたは、だけでなく、メインの中継局を介して通信する必要がある場合。親局Aから送信され、例えば、その後、ステーションBからステーションAとの通信を実現するために、マスタ局Bから送信されました 工業的な観点での私の経験から、局間の通信で発生したそのような状況はありません。

SDOオブジェクト

基礎PDOオブジェクトを使用すると、示すSDOは、はるかに簡単にオブジェクト。

  1. SDOオブジェクトは、TSDOとRSDO 2種類に分けることができます。(「勧告」をフォロー)
  2. SDOオブジェクトデータ・ディクショナリは、スレーブデバイスを動作させるために使用されます。
  3. SDOオブジェクトはすなわち、マスタは、局から受信した場合、応答は、スレーブからマスタにTSDOを送らなければならないためにRSDOを送信し、応答通信先です。
  4. データSDOの更なるセグメントのオブジェクトと所定の分割。

以下は、オブジェクトの構造であり、SDO

機能コード ノードID DLC 制御コード 指数 サブインデックス データ
4ビット 7ビット 4ビット 8ビット 16ビット 8ビット 32ビット

制御コード、インデックス、サブインデックスとデータ部分データであり、SDOオブジェクトは、所定の区間を行いました。インデックス、サブインデックスとセマフォの前述の例のデータを意味することは、データ辞書部を参照することができます。

RSDOでの制御コードは、多くの場合、操作が書き込みであるか、データ・ディクショナリデータ・ディクショナリを読んで、書き込みのためTSDO、エラーコードまたはクラスの成功であることを示します。唯一の8ビットは、それは非常に複雑構成するが、ここでは詳細に説明されていない、あなたは、インターネット上の文書でより詳細な外観を見つけることができます。

おすすめ

転載: www.cnblogs.com/real-bert/p/11728083.html