MIDDLEWARE · ミドルウェア/プロトコルスタックCANopen Master & Slave Stack (CiA 301)
概要
CANopen Master & Slave Stack(SO-877)は、CiA 301 仕様の完全な機能を ANSI-C ソースコードで提供する CANopen プロトコルスタックです。NMT マスタ(ネットワークマネージャ)・LSS マスタ(Layer Setting Services)・SDO クライアントを含む、フル機能の CANopen マスタ/スレーブ機器を標準準拠のまま短期間で実装できます。多くの産業アプリケーションで標準適合が実証されており、開発元 SYS TEC electronic は25年以上 CANopen を継続開発してきた CiA メンバーです。
性能面では、アプリケーションレベルまで直接イベントを通知するイベント指向設計と「ゼロコピー」戦略により、リアルタイムアプリケーション/RTOSでの使用に最適です。ソースはモジュール化・スケーラブルで、多数の構成オプションにより速度とメモリ消費を最適化できます。体系的なAPI・サンプルプログラム・ターゲット別デモプロジェクト・充実したドキュメントが段階的な導入を支援します。
プラットフォームは、ベアメタルから FreeRTOS・SafeRTOS・ThreadX・Keil-RTX・SEGGER embOS・Linux・Windows まで幅広く対応。8/16/32bit の主要MCU(STM32全シリーズ・NXP S32K1xx(CAN FD)・TI・Renesas Synergy/RX・Infineon XMC/TriCore/T2G・Microchip PIC32/dsPIC33 等)でデモプロジェクトが提供されます(V5.71 対応表)。未対応プロセッサへの適応やCANドライバ移植は SYS TEC が数日で対応可能です。
ライセンスはバイアウト方式:製品ロイヤリティもランタイムライセンスも不要です。1年間の無償サポート+アップデート、テスト・ネットワーク構成用ツールチェーンが付属します(Value Pack「SO-877-VP」には CANopen DeviceExplorer・CANバスモニタ・USB/CANインターフェースも同梱)。CiA 402 や CiA 304 SRDO 等のアドオンで産業別要件にも対応できます。
主要仕様
| 規格 | CiA 301(CANopen) |
|---|---|
| 提供形態 | ANSI-C ソースコード(買い切り/サイト単位) |
| 対応OS | ベアメタル / FreeRTOS / SafeRTOS / ThreadX / Keil-RTX / embOS / Linux / Windows |
| 対応機能 | NMT Master、LSS Master、SDO Client |
| ライセンス | 製品開発のランタイム料は不要 |
| 設計 | Zero-Copy 実装・モジュール構成(CCM 中央層) |
準拠規格
| プロファイル | CiA 301 v4.2(CANopen アプリケーション層) |
|---|---|
| 物理層 | CAN 2.0A/B(Classical CAN) |
| 伝送速度 | 10 kbit/s〜1 Mbit/s(CiA 301 標準ビットレート) |
スタック機能(CiA 301 フル実装)
| PDO | 受信512/送信512。静的・動的・ビット単位マッピング、MPDO(アドオン) |
|---|---|
| SDO | サーバ127/クライアント127。セグメント転送・ブロック転送、SRDクライアント |
| NMT/監視 | NMTスレーブ状態機械・ブートアップ・ノード/エラー制御、ハートビート(プロデューサ+コンシューマ127)、ライフ/ノードガーディング |
| 同期・緊急 | SYNC・EMCY 各プロデューサ/コンシューマ、タイムスタンプ(高精度対応) |
| その他 | LSSマスタ/スレーブ、パラメータ保存/復元、CiA 303-3、マルチインスタンス、CANドライバソース同梱・イベント駆動API |
対応プラットフォーム(V5.71 対応表より)
| 8/16bit | Infineon・Philips・80x51・Atmel AVR・Silabs/Renesas・Fujitsu・Microchip・TI |
|---|---|
| 32bit | STM32 F0〜H7/G4/H5(bxCAN/FDCAN)、NXP S32K1xx(CAN FD)・LPC・Kinetis・MPC56xx、TI TMS570/Hercules/TMS320/AM335x、Renesas Synergy(ThreadX)・RX72、Infineon XMC4000・TriCore・T2G、Microchip PIC32/dsPIC33、GigaDevice GD32、x86/x64、Raspberry Pi(SocketCAN) |
| RTOS/OS | ベアメタル・FreeRTOS・SafeRTOS・ThreadX・Keil-RTX・SEGGER embOS・eCos・PxROS/Windows・Linux・DOS |
| 外部CANコントローラ | SJA1000・TouCAN・TwinCAN・82527・MCP2515・TDRV011 |
| 未対応ターゲット | SYS TEC の適応サービス(ドライバ移植・デモ作成を数日で対応) |
| 対応表(PDF) | PDF対応ターゲット一覧をダウンロードSO-877 のソースコードに標準付属するデモプロジェクトの対応表(CANopen Stack V5.71)↓ |
アドオンパッケージ
| CiA 402(SO-1081) | サーボ・インバータ等ドライブ/モーション制御プロファイル |
|---|---|
| MPDO(SO-1066) | CiA 301 多重化PDO |
| SRDO/CiA 304(SO-1059) | 安全関連CANopenデバイス開発(SRDO) |
| Dynamic OD(SO-1074) | 実行時のオブジェクトディクショナリ変更(CiA 302) |
| SDO Gateway(SO-1078) | ネットワーク間SDO転送 |
| Flying Master(SO-1114) | マルチマスタ系の動的マスタ決定(CiA 302) |
| Bootloader(SO-1089) | CANopen経由のバイナリ転送・実行(CiA 302) |
CANopen Safety(CiA 304/SRDO)の基礎
| 規格 | CiA DS304 → EN 50325-5(CANopen EN 50325-4 の安全拡張) |
|---|---|
| SRDO構造 | 1 SRDO=2 CANメッセージ。データは2通目でビット反転して冗長送信、IDは奇数/偶数ペア |
| 受信監視 | SCT(Safeguard Cycle Time)と SRVT(2メッセージ間隔)を監視。無効SRDOで安全状態へ |
| 原理 | ブラックチャネル+安全通信層(SCL)で改ざん・喪失・遅延・なりすまし等を制御 |
| 実装 | SRDOアドオン(SO-1059)で対応。IEC 61508 の 1oo1(Lockstep)/1oo2(二重化)設計指針あり |
対応サービス
| PDO | TPDO/RPDO(イベント・同期・インヒビット/イベントタイマ) |
|---|---|
| SDO | Expedited / Segmented / Block 転送 |
| NMT | スレーブ(ステートマシン)/ハートビート・ノードガーディング |
| 特殊機能 | EMCY(緊急)、SYNC、TIME、LSS(CiA 305) |
| オブジェクト辞書 | EDS/XDD/DCF 対応、静的・動的構成 |
実装・対応OS
| 実装言語 | ANSI-C ソースコード(HAL 分離・Zero-Copy 設計) |
|---|---|
| ベアメタル | 対応(中央層 CCM + ドライバ層) |
| RTOS | FreeRTOS / SafeRTOS / ThreadX / Keil-RTX / SEGGER embOS |
| OS | Linux / Windows |
| CANチャネル | 複数チャネル構成に対応 |
提供・ライセンス
| 提供形態 | ソースコード(買い切り/サイトライセンス) |
|---|---|
| ランタイム料 | 不要(製品出荷数に依存しない) |
| ツール | CANopen DeviceExplorer で診断・テスト |
通信スタックの構成・対応仕様
通信スタックは「ドライバ層 → スタック層 → 関連機能層」の3層で構成されます。この製品の位置づけと対応仕様を示します。
デバイス(スレーブ)スタック。OD/PDO/SDO/NMT/EMCY を実装。
CiA 仕様番号別の機能 ― 何ができて、何ができないか
CANopen は CiA 301 が基本(通信プロファイル)。その上に番号別の追加機能・デバイスプロファイルが積み上がります。製品がどの番号に対応するかで、できることが決まります。
| CiA番号 | 機能 | 対応すると | 制約・できないこと |
|---|---|---|---|
| CiA 301 ✓対応 | アプリケーション層・通信プロファイル(基本) | OD(オブジェクト辞書)・PDO・SDO・NMT・SYNC・EMCY・TIME・Heartbeat。SDOブロック転送・MPDO(v4.x)。これがすべての土台。 | 単体ではI/Oやモーション等のデバイス機能は規定しない(プロファイルが別途必要)。 |
| CiA 1301 | CANopen FD アプリケーション層 | CAN FD 上の CANopen。最大64バイトPDO・FD対応SDO。大容量・高速ペイロード。 | Classic CAN ノードとは直接相互運用不可(FD対応機器同士)。 |
| CiA 302 | 追加機能:マネージャ・設定・ブート | NMTマスタ/フライングマスタ、設定マネージャ、SDOマネージャ(動的SDO)、プログラムダウンロード、マルチレベルネットワーキング。 | デバイス側の入出力定義は含まない(デバイスプロファイル側)。 |
| CiA 305 | LSS(レイヤ設定サービス) | ノードID未設定機器のID割当・ビットレート変更を2フレームで実施。Fastscanで未設定機器を識別。プラグ&プレイ構成に必須。 | LSS構成はマスタ側実装が前提。スレーブのみではID自己設定不可。 |
| CiA 306 / 311 | EDS / DCF / XDD(電子データシート) | 機器のOD記述(CiA306=INI形式EDS、CiA311=XML形式XDD/ISO 15745)。適合試験に必須、ツールでの自動構成を可能に。 | 記述ファイルであり、実行コードそのものではない。 |
| CiA 401 | デバイスプロファイル:汎用I/O | デジタル/アナログI/Oの標準化(最大64点デジタル・12点アナログ、FD版で512点)。同プロファイル機器は相互運用・交換可能。 | モーション制御やセンサ固有機能は対象外(402/404)。 |
| CiA 402 | デバイスプロファイル:モーション/ドライブ | サーボ・インバータ・ステッパの制御(FSA状態機械、各動作モード、PDO/SDO)。IEC 61800-7-201/301準拠。FD版64バイトPDO。 | オプション機能が多く、ベンダ間の完全互換は保証されない(要EDS確認)。 |
| CiA 404 / 417 / 447… | その他デバイス/アプリプロファイル | 404=計測/閉ループ制御、417=エレベータ、447=特装車、422=塵芥車 など業界別の標準機能。 | 対象業界以外には不適。実装は該当プロファイル対応製品が必要。 |
主な用途
- 産業オートメーションのセンサ・アクチュエータ・I/O
- CANopen マスター/スレーブ機器の量産
- ネットワーク診断・構成・サービス
導入メリット
- ランタイムライセンス料が不要
- Zero-Copy 実装・モジュール構成で高効率
- 新ターゲットへの移植が容易(HW層を分離)
対応環境
- 対応OS:ベアメタル / FreeRTOS / SafeRTOS / ThreadX / Keil-RTX / embOS / Linux / Windows
- 規格:CiA 301(Device)/ CiA 302(Manager)
- 提供:ANSI-C ソース(買い切り・サイト単位)
よくある質問
CANopen Master & Slave Stack(SO-877)はどのような製品ですか?
ライセンス費用はどのようにかかりますか?
使用したいMCUが対応表にない場合は?
この製品が含まれるソリューション
この製品は、複数製品を組み合わせた次の構成の要素です。構成全体での位置づけは各ソリューションページをご覧ください。
- 産業ネットワーク(CANopen)機器開発 — この製品の役割: 中核CiA 301 / 302 — デバイス実装 × マスタ実装 × 解析 × 量産書込み
関連製品
お問い合わせ
対象MCU・数量・安全要件などをお聞かせください。最適な構成と概算をご提案します。
CANopen スタック・I/Oモジュールの専業ベンダー
SYS TEC electronic の全製品を見る →
