KNXメッセージ形式と解析例

無料無料技术资料

这篇内容可直接阅读,适合用于基础学习和検索引流。

KNXメッセージ形式と解析例

1. KNXプロトコル階層化(OSIモデルの簡素化)

KNXプロトコルは主にOSIモデルの簡略版4つのレベルに分かれている。

OSIレイヤKNXの実装機能の説明
物理層はTP(ツイストペア)、RF、IP物理メディア(KNX TP1バス、無線周波数、KNXnet/IPトンネルなど)を定義します。
データリンク層KNX Data Link Layerバス調停、衝突検出、フレーム検証(チェックサムなど)を管理します。
ネットワーク層KNX Network Layerルーティング(マルチキャスト/ブロードキャスト)、アドレスフィルタリング(物理アドレスとグループアドレス)を処理します。
アプリケーション層KNX Application Layerデータセマンティクス(DPTタイプなど)、デバイス間の相互作用ロジック(読み取り/書き込み/応答)を定義します。

2.通信モード

(1)マルチキャスト(グループコミュニケーション)

  • 目的はデバイスはグループアドレスにデータを送信し、そのグループアドレスに加入しているすべてのデバイスが受信して処理します。
  • 特徴は照明制御、シーントリガーなどに適した効率的な1対多通信。
  • 例:例:グループアドレス1/2/3ライトコマンドを受信し、このアドレスにバインドされたすべてのライトが動作します。

(2)ポイントツーポイントPoint-to-Point

  • 目的はデバイスは物理アドレスを介して直接通信します(構成、診断など)。
  • 特徴はデバイスの初期化または保守に使用するターゲット物理アドレスを明示的に指定する必要があります。
  • 例:例::中央設備0.0.1センサーに向かって1.1.10温度データの要求

3.メッセージの種類

KNXメッセージの分割標準フレームL_Dataそして、“フレームの拡張”L_Data Extended:

タイプの種類制御フィールド値データ長の制限適用可能なシーン
標準フレーム0xBC<15バイト一般制御命令(スイッチ、パーセント)
拡張フレーム0xBF25 5バイトビッグデータ転送(ログ、構成など)

4.アドレス構造

(1)物理アドレス

  • フォーマット形式:エリア4bit.ライン4bit。デバイス8 bit→ 2バイト。
  • 例:例:1.2.3→0x12 0x03(バイナリ)0001 0010 0000 0011)。
  • 目的は:ポイントツーポイント通信またはデバイス構成に使用されるデバイスを一意に識別します。

(2)グループアドレス

  • フォーマット形式:主グループ5bit/中間グループ3 bit/サブグループ8 bitまたはメイングループ5bit/サブグループ11 bit→ 2バイト。
  • 例:例:
  • 3/2/1→0xE3 0x21(バイナリ)1110 0011 0010 0001)。
  • 5/2047→0xA5 0xFF(バイナリ)1010 0101 1111 1111)。
  • 目的は:論理グループ化、デバイスサブスクリプショングループアドレスは、1対多通信を実現します。

5.データ表現APDU

(1) DPT(Data Point Type)

KNXの採用DPTの標準データ·セマンティクスの定義形式主なタイプ。サブタイプ(例えば、DPT 1.001ブールスイッチ):

DPTの例データ長さ説明書は
DPT 1.0011 bitboolean(0=オフ、1(オープン)。
DPT 5.0011バイト目パーセンテージ(0x00=0%,0xFF=100%)。
DPT 9.0012バイト。温度(浮動小数点など)0x0C00=24°C)。
DPT 16.00114バイト文字列ASCIIエンコードなど"KNX")。

(2)APDU構造

  • TPCI(Transport Control)メッセージの種類(データ要求、確認など)をマークする1バイト。
  • APCI(Application Control)操作タイプ(読み取り、書き込み、応答)を定義する1バイト。
  • データ負荷:DPT符号化による実データ。

例:例:

  • スイッチ書き込みコマンド:TPCI= 0 x 00书き込み,APCI=0x80(DPT 1.001)データ=0 x 0 1(オープン)。
  • 温度読み取りリクエスト:TPCI= 0 x 40読み取り,APCI= 0 x 00データなし。

6.通信サービス

(1)ポーリング

  • マスターデバイスは、スレーブデバイスにデータを積極的に要求します(センサーの状態を照会するなど)。
  • メッセージの例:制御フィールド= 0 xBC,宛先アドレス=センサーの物理アドレス,APCI= Read Request。

(2) 確認(Acknowledge)

  • 受信側は、信頼性を確保するためにACK(肯定応答フレーム)を返信する必要があります。
  • 例:例制御コマンドを受信して戻るACKメッセージ(0 x B 0)。

(3)再試行メカニズム

  • ACKが受信されない場合、送信者は指定されたタイムアウト後にメッセージを再送信します(通常は最大3回)。

7.セキュリティメカニズム

  • 伝統的なモデル:暗号化なし、物理層セキュリティ(バスアクセス制御など)に依存します。
  • KNX Secureデータ暗号化(AES-128)と認証を追加し、改ざんや盗聴を防止します。
  • セキュリティメッセージの例:標準フレームに暗号化負荷とMAC(メッセージ認証コード)を追加します。

8.実際のデバッグの推奨事項

  1. バッグ·ツール。Wireshark +の使い方KNXプラグインバストラフィックを分析し、特定のグループアドレスをフィルタリングします。
  2. エラーチェック。:
  • チェックサムエラー:メッセージの不一致または結果をチェックします。
  • アドレス競合物理アドレスとグループアドレスが一意であることを確認します。
  1. ETSの構成:ETSプロジェクトでDPT型をバインドし、データ解析エラーを回避します。

KNXプロトコルでは、メッセージタイプは主にコントロールフィールドそして、TPCI(Transport Control Information)異なるメッセージタイプは、異なるシナリオ(制御命令、データ要求、応答など)に適しています。一般的なKNXメッセージタイプの詳細な説明と例を以下に示します。


1.標準フレームL_Data Standard

  • コントロールフィールド:0xBC
  • データ長さ<<15バイト
  • 適用可能なシーン:通常の制御命令(スイッチ、パーセンテージ、状態読み取りなど)。

例:スイッチ制御

BC 11 0A E1 03 01 01 80
  • コントロールフィールド0xBC標準フレーム、通常の優先度。
  • ソース·アドレス0x110A(1.1.10)。
  • 宛先アドレス0xE103(1/2/3のグループアドレス)
  • データは0x01スイッチ状態(オン)。
  • チェックサム0x80異なるか計算された結果。

2.“フレームの拡張”L_Data Extended

  • コントロールフィールド:0xBF
  • データ長さ>> 25 5バイト
  • 適用可能なシーンビッグデータ転送(文字列、ログ、複雑な構成など)。

例文字列の送信

BF 23 05 E2 51 0E 10 4B 4E 58 20 54 65 73 74 00 00 00 5C
  • コントロールフィールド0xBF優先度の低い拡張フレーム。
  • ソース·アドレス0x2305(2.3.5)。
  • 宛先アドレス0xE251(2/5/1)
  • データ長さ0x0E14バイトのデータです
  • データは0x10 4B 4E 58 20 54 65 73 74 00 00 00:
  • DPT 16.001文字列、内容は"KNX Test"(ASCIIコード)
  • チェックサム0x5C計算してください。

3.確認応答フレーム(ACK/NACK)

  • コントロールフィールド:0xB0(ACK)または0xB1(NACK)
  • 構造は:データ部分なし、制御フィールドとチェックサムのみ。
  • 適用可能なシーン:受信者が確認または拒否を返す。

例:ACK確認

B0 00 00 00 00 00 00 B0
  • コントロールフィールド0xB0:確認フレーム(ACK)。
  • チェックサム0xB0自分だけの違いや結果は0xB0。

4.ポーリングリクエスト

  • コントロールフィールド:0xBC(標準フレーム)
  • TPCI:0x40(リクエストを読む)
  • 適用可能なシーン:マスターデバイスがスレーブデバイスのデータをアクティブに要求します。

例温度センサデータの読み取り

BC 00 01 12 34 01 40 00 2D
  • ソース·アドレス0x0001(ユニット0.0.1)。
  • 宛先アドレス0x1234(センサーの物理アドレスは1.2.5 2)
  • データ長さ0x01データの1バイト。
  • TPCI+APCI0x40:読み取り要求(データ負荷なし)。
  • チェックサム0x2D計算してください。

5.レスポンスフレーム

  • TPCI:0x80(回答を書く)0xC0(回答を読む)
  • 適用可能なシーン:デバイスが要求に応答するデータまたはステータス。

例温度センサーがデータを返す

BC 12 34 00 01 02 06 00 5C
  • ソース·アドレス0x1234(センサーアドレス1.2.5 2)
  • 宛先アドレス0x0001(ユニット0.0.1)。
  • データ長さ0x022バイトのデータ。
  • データは0x0600温度値(DPT 9.0 01、24.0°C)。
  • チェックサム0x5C計算してください。

6.ブロードキャストフレーム

  • 宛先アドレス:0x0000(アドレスゼロ)
  • 適用可能なシーン:デバイスは、バスのすべてのノードにグローバルコマンドを送信します(システムリセットなど)。

例グローバルリセット命令

BC 00 01 00 00 01 FF 01
  • ソース·アドレス0x0001(中央設備)。
  • 宛先アドレス0x0000放送アドレス。
  • データは0xFFリセット命令(カスタム符号化)。

7.セキュリティメッセージ

  • コントロールフィールド:0xBCまたは0xBF(暗号化マークと組み合わせる)
  • 構造は:標準フレームに暗号化負荷とMAC(メッセージ認証コード)を追加します。
  • 適用可能なシーンデータの改ざんや盗聴を防止する。

例(簡略化された暗号メッセージ)

BC 11 0A E1 03 10 01 80暗号化] MAC] 2A
  • データのセクション:平文データ0x01より長いバイトに暗号化される。
  • MAC:データの整合性を検証するために使用されます(AES-128計算など)。

主な比較表

メッセージの種類コントロールフィールドデータ長さTPCI典型的なシーン
標準フレーム0xBC<15バイト0x00スイッチ制御、パーセンテージ調整
拡張フレーム0xBF25 5バイト0x00長いテキスト、複雑な構成
ACKの確認0xB0なしなし。-成功応答の受信
NACKリジェクト0xB1なしなし。-受信失敗応答
リクエストを読む。0xBC1バイト目0x40センサデータのアクティブな要求
応答を書く。0xBCVariableシングル0x80デバイスステータス更新の確認
ブロードキャストフレーム0xBCVariableシングル0x00システムレベルの命令(リセットなど)

注意事項について

  1. TPCIとAPCI:
  • TPCI(トランスポート制御)は、メッセージタイプ(読み取り、書き込み、応答)をマークします。
  • APCI(アプリケーション制御)は、特定の操作(DPTタイプなど)を定義します。
  1. アドレスフィルタリングデバイスは、宛先アドレス(物理アドレスまたはサブスクライブグループアドレス)に一致するメッセージのみを処理します。
  2. チェックサム常に先頭のすべてのバイトの排他的和

これらの例が、KNXの異なるメッセージタイプの書き方を理解するのに役立つことを願っています。公式プロトコル文書とETSツール検証の組み合わせを推奨します。

次の例を示します。

例1スイッチ制御標準フレーム

シーンはこちら物理的な住所1.1.10のデバイス宛グループアドレス1/2/3照明の指示を出す。
メッセージメッセージ:

BC 11 0A E1 03 01 01 80
  • コントロールフィールド0xBC標準フレーム、通常の優先度。
  • ソース·アドレス0x110A:機器のアドレス1.1.10。
  • 宛先アドレス0xE103:グループのアドレス1/2/3(E1グループアドレスタイプを表します。
  • データ長さ0x01データの1バイト。
  • データは0x01スイッチの状態(0x01=オープン、0x00=オフ)。
  • チェックサム0x80:BC XOR 11 XOR 0A XOR E1 XOR 03 XOR 01 XOR 01 = 80。

例2温度センサーデータ拡张フレーム

シーンはこちら::センサー2.3.5温度の報告22.5°Cグループアドレスへ2/5/1。
メッセージメッセージ:

BF 23 05 E2 51 02 06 00 5C
  • コントロールフィールド0xBF優先度の低い拡張フレーム。
  • ソース·アドレス0x2305:機器のアドレス2.3.5。
  • 宛先アドレス0xE251:グループのアドレス2/5/1。
  • データ長さ0x022バイトのデータ。
  • データは0x0600:
  • DPT 9.0 01(温度)コードは0x0600→22.5°C(浮動小数点形式)
  • チェックサム0x5C計算してください。

例3シーンコントロールマルチバイトデータ

シーンはこちら::中央設備0.0.1トリガーシーン3(グループアドレス)5/0/3)。
メッセージメッセージ:

BC 00 01 E5 03 03 03 00 00 6F
  • コントロールフィールド0xBC標準フレームです。
  • ソース·アドレス0x0001センターアドレス:中央アドレス0.0.1。
  • 宛先アドレス0xE503:グループのアドレス5/0/3。
  • データ長さ0x03データの3バイト。
  • データは0x030000:シーン番号3、追加パラメータ。
  • チェックサム0x6F計算してください。

キーポイントKey Point

  1. アドレスコードアドレス:
  • 物理アドレス:エリア4bit.ライン4bit。デバイス8 bit2バイト(例えば)1.1.10→0x11 0x0A)。
  • グループアドレス:主グループ5bit/中間グループ3 bit/サブグループ8 bit2バイト(例えば)1/2/3→0xE1 0x03高さです。1110グループアドレス)。
  1. データ符号化:
  • スイッチ:1バイト(0x00=オフ、0x01(オープン)。
  • 温度:2バイト浮動小数点(DPT 9.0 01など)。
  • 1バイト(1バイト)0x00=0%,0xFF=100%)。
  1. チェックサム前のすべてのバイトに対して排他的ORを実行する(例)BC XOR 11 XOR 0A XOR E1 XOR 03 XOR 01 XOR 01 = 80)。

実用的な提案

  • ETS KNX Engineering Tools Softwareを使用してデバイスを設定します。手動でパッケージ化する必要はありません。
  • メッセージサンプルは主に基礎となるプロトコルを理解するために使用され、パッケージスクラッチツール(Wireshark + KNXプラグインなど)を使用してデバッグできます。
  • 詳細な学習は、KNXの公式ドキュメント“KNX Standard”または書籍“KNX for IoT”を参照してください。

この資料を実際のプロジェクトに活用しませんか?

ツールセンターで電文解析、CRCチェック、デバイスデバッグを行うか、要件を送信して選定と接続のアドバイスを受けましょう。

エンジニア会員

この記事を実行可能なデバッグ資料に

登録すると、高度な電文解析、資料パックのダウンロード、コード例、エンジニアリングケース、優先技術サポートが利用可能に。実際のプロジェクト納品に最適です。

高度なツール無制限
資料パックとコードパック
完全なエンジニアリングケースライブラリ
優先技術サポート窓口

发表回复

あなたのメールアドレスアドレス不会被公开。 必須項目已用 * 标注