機能概要
Simma Software社から提供されるCANopenプロトコルスタックは、CANopenメッセージを送受信するためのシンプルなアプリケーションプログラムインターフェイス(API)を提供します。当社のCANopenプロトコルスタックソフトウェアは、メッセージのタイミングとCANopenネットワークへのインターフェースに関連する技術的な詳細と多くの複雑さを抽象化します。これにより、アプリケーションソフトウェアのシンプルさが向上し、信頼性が向上し、製品の市場投入までの時間が短縮されます。
CANopen ソフトウェアは ROM/RAM フットプリントが小さく、最大 512 個の TPDO および RPDO を備えた複数の CAN チャネルをサポートします。 高速 SDO 転送、NMT メッセージ、ハートビート生成、および PDO イベント/禁止タイマーもサポートされています。このプロトコル スタック、デバイス ドライバー、ブートローダーは、主要な自動車 OEM によって 100 万を超える組み込みシステム、および 200 を超えるリアルタイム設計で使用されています。
CANopenソフトウェアプロトコルスタックの詳細:
・ MISRA C 準拠
・ ANSI Cソース コード
・ RTOSの有無にかかわらず使用可能
・ 8、16、32、または 64 ビット CPU で使用可能
・ フラッシュブートローダーで使用して製品をアップデート
・ CANopenユーザーズマニュアル
CANopenとは
◆CANopenの紹介
この記事は、CiA 301で指定され、自動化でCANによって維持されるCANopenプロトコルの概要をエンジニアに提供することを目的としています。仕様自体の詳細については、CAN in Automation(CiA)をご覧ください。これは、このCANopenイントロダクションの印刷可能なバージョンです。
CANopenは、オートメーション、自動車、医療機器で使用されるリアルタイムプロトコルです。CANopenは、データリンク、トランスポートプロトコル、ネットワーク管理、およびアプリケーションレイヤーを処理します。通常、CANopenは物理層としてCANを使用し、ボーレートは125 Kbpsから1 Mbpsの範囲です。
いくつかの異なるアプリケーション層が存在し、デバイスプロファイルと呼ばれます。たとえば、CiA 401は汎用I/Oデバイスのアプリケーション層(デバイスプロファイル)を定義し、CiA 402はサーボドライブ、周波数インバータ、ステッピングモータの動作を定義します。全部で50以上の個別の定義されたデバイスプロファイルがあります。
◆CANopenの概要
CANopenは、コントローラエリアネットワーク(CAN)バス上で動作する高レベルの通信プロトコルです。CiA 301とデバイスプロファイル(CiA 401など)を組み合わせることで、電子制御ユニット(ECU)間で情報(サーボモータRPMなど)を交換する方法を正確に指定する完全な仕様が形成されます。
この標準では、メッセージのタイムアウト、メッセージの断片化と再構成のサイズ、ネットワーク速度、物理層、ノード ID など、他の多くの側面が定義されています。
◆CANopenオブジェクトディクショナリ
CANopenの中心にあるのは、すべてのノードに含める必要があるオブジェクトディクショナリ(OD)です。OD には、ノードのすべてのセットアップ項目と構成項目が含まれます。CANopenプロトコルスタックは、設定可能なODを提供するのが標準です。ODは通常、CANopenソフトウェアを介してオブジェクトの配列として実装されます。仕様に従って、各オブジェクトには16ビットのインデックスと8ビットのサブインデックスが割り当てられています。これにより、各インデックスで最大 255 個のサブエントリを使用できます。
すべてのデータは、オブジェクトディクショナリの事前定義された場所にエントリとして格納されます。エントリインデックスとサブインデックスは、CiA 301とそれに対応するデバイスプロファイルに記載されています。OD 項目には、索引、オブジェクト名、説明、タイプ、属性、およびオプション・フィールドがあります。
◆プロセス データ オブジェクト (PDO)
プロセスデータオブジェクトプロトコルは、オーバーヘッドをほとんど伴わずに効率的な方法で情報を送信するために使用されます。PDOは軽量であるため、CANopenはPDOを使用してリアルタイムの診断および制御情報を送信します。すべてのPDOはシングルフレームであるため、ノードはPDOごとに最大8バイトのデータを転送できます。ただし、つのPDOに複数のデータオブジェクトを含めることができます。単一PDO内の複数のオブジェクトは、オブジェクトディクショナリを介してマップされます。
PDO には、受信 PDO と送信 PDO (RPDO と TPDO) の 301 種類があります。RPDOは、ノードがデータを受信(つまりデータを読み取る)する必要がある場合に使用され、TPDOはノードがデータを送信する(つまり、データの書き込み)必要がある場合に使用されます。CiA は、RPDO用につ、TPDO用につのつの識別子を定義しています。
PDOは、外部イベントによって定期的に送信されるか、使用時にノードがSYNCメッセージを受信します。SYNC PDO の受信時に送信される PDO は同期 PDO と呼ばれ、定期的な PDO は非同期と呼ばれます。
◆サービス データ オブジェクト (SDO)
SDO(サービスデータオブジェクト)は、オブジェクトディクショナリ内の値の読み取りと書き込みに使用されます。CANopenでは、ODへの書き込みをSDOダウンロードとして定義し、ODからの読み取りをSDOアップロードと定義しています。SDOは単一のフレーム(つまり8バイト)よりも大きくなる可能性があるため、SDOの実装にはフラグメンテーションと再構成(つまりトランスポートプロトコル)が必要です。
SDO 読み取りの例としては、ノードが別ノードの製造元のデバイス名やデバイス・タイプを要求する場合が挙げられます。
サポートマイコン等
CANオープンポート
当社のリアルタイムCANopenプロトコルスタックは、プラットフォームに完全に依存せず、ANSI Cプログラミング言語で記述されています。これはCANデバイスドライバssCANであり、ターゲット固有であり、特定のマイクロコントローラの詳細を組み込んでいます。
ssCANopenとssCANを組み合わせることで、完全な移植システムを形成し、お客様はほぼ即座に稼働させることができます。当社のssCANデバイスドライバは、40種類以上のマイクロコントローラに移植されています。以下は、使用可能なポートのリストです。一覧にないハードウェア プラットフォーム用のポートまたはデバイス ドライバーに関心がある場合は、お問い合わせください。
Linux
Windows XP/7/Embedded
テキサスインスツルメンツRM4x(DCAN)
テキサスインスツルメンツLM3Sx
テキサス・インスツルメンツ TMS470x
テキサス・インスツルメンツ TMS470Mx
テキサス・インスツルメンツ TMS570x
テキサスインスツルメンツF28M35xx
テキサスインスツルメンツティバTM4C
テキサス・インスツルメンツ TMS320F280x
テキサス・インスツルメンツ TMS320F281x
テキサス・インスツルメンツ TMS320F283x
テキサス・インスツルメンツ TMS320F283x
テキサスインスツルメンツAM3x - シターラ
テキサスインスツルメンツDM8x - ダヴィンチ
インフィニオンC16x
インフィニオントライコア
インテル 82527
NXP LPC11xx
NXP LPC17xx
NXP LPC21xx
NXP LPC23xx
NXP LPC55xx
NXP i.MX RT10xx
NXP HCS08
NXP HCS12
NXP HCS12X
NXP MC68xxx
NXP MCF5xxx
NXP MPC5xxx
NXP キネティス Kxx
NXP SJA1000
マイクロチップ PIC18
マイクロチップ PIC24
マイクロチップ PIC32
マイクロチップ dsPIC30
マイクロチップ dsPIC33
マイクロチップ MCP2515
マイクロチップ SAM7
マイクロチップ AT90
シリコンラボC8051
STマイクロST7
STマイクロST10
STマイクロ STR7
STマイクロSTM8
STマイクロSTM32L4x
STマイクロ STM32G0x
STマイクロ STM32G4x
STマイクロSTM32F0x
STマイクロSTM32F1x
STマイクロSTM32F2x
STマイクロSTM32F3x
STマイクロSTM32F4x
STマイクロSTM32F7x
ザイリンクス ロジコア AXI (axi_can)