迎撃住所: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つの問題に直面しました。
- 異なるオブジェクトのデータ部分の意味は解決するために、異なる、さまざまな方法があるので、通信先は、バスPDOオブジェクト上ではありません。
- 私たちは、PDOオブジェクトがステーションAによって発行された方法を知っていますか。
- どのように答えるために、すなわち、局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つの質問の出てくる「提案」を、続く前提があります:
- 各スレーブへの「勧告」は、つまり、各マスタはスレーブのみにデータ4 * 8バイト(64バイト)を送信することができます4つのRPDOオブジェクトを割り当てられ、どのように行いますか?
- 駅からの局と通信する方法?から
質問1の場合、答えは、彼がそのような0x281も、限り、マスターとスレーブがライン上でこの要件を満たすことができますようRPDOを提供などの規定を、必要なことを「勧告」に従うことではありません。「提案」自体は明らかに、ほとんどのアプリケーションを満たすために、議論する多くのメーカーの結果であるので、しかし、これは、まれです。
契約は、CANopenの「マスタ - スレーブ」であるため、質問2のために、実際には、アプリケーションのCANopen契約の範囲を超えて、プロトコル、契約のこのタイプの特徴は、スレーブ間の通信のないチャネルが存在しないことです。あなたは、だけでなく、メインの中継局を介して通信する必要がある場合。親局Aから送信され、例えば、その後、ステーションBからステーションAとの通信を実現するために、マスタ局Bから送信されました 工業的な観点での私の経験から、局間の通信で発生したそのような状況はありません。
SDOオブジェクト
基礎PDOオブジェクトを使用すると、示すSDOは、はるかに簡単にオブジェクト。
- SDOオブジェクトは、TSDOとRSDO 2種類に分けることができます。(「勧告」をフォロー)
- SDOオブジェクトデータ・ディクショナリは、スレーブデバイスを動作させるために使用されます。
- SDOオブジェクトはすなわち、マスタは、局から受信した場合、応答は、スレーブからマスタにTSDOを送らなければならないためにRSDOを送信し、応答通信先です。
- データSDOの更なるセグメントのオブジェクトと所定の分割。
以下は、オブジェクトの構造であり、SDO
機能コード | ノードID | DLC | 制御コード | 指数 | サブインデックス | データ |
---|---|---|---|---|---|---|
4ビット | 7ビット | 4ビット | 8ビット | 16ビット | 8ビット | 32ビット |
制御コード、インデックス、サブインデックスとデータ部分データであり、SDOオブジェクトは、所定の区間を行いました。インデックス、サブインデックスとセマフォの前述の例のデータを意味することは、データ辞書部を参照することができます。
RSDOでの制御コードは、多くの場合、操作が書き込みであるか、データ・ディクショナリデータ・ディクショナリを読んで、書き込みのためTSDO、エラーコードまたはクラスの成功であることを示します。唯一の8ビットは、それは非常に複雑構成するが、ここでは詳細に説明されていない、あなたは、インターネット上の文書でより詳細な外観を見つけることができます。