KNX 协议深度解析(从原理到实战,嵌入式工程师必看)
·
0. 前言
在智能楼宇、智能家居、酒店照明、暖通控制领域,KNX 是事实上的国际标准总线。它和 DALI 不同:DALI 是专用照明总线,而 KNX 是全能型分布式楼宇总线。本文从协议栈、拓扑、寻址、帧结构、实战要点完整梳理,适合做网关、驱动、二次开发的同学直接使用。
1. KNX 是什么?
KNX(Konnex)
- 国际标准:ISO/IEC 14543、国内标准 GB/Z 20965
- 前身:EIB + BatiBus + EHS 合并而来
- 架构:无主机、分布式、对等通信
- 特点:多厂商互通、稳定、抗干扰、长寿命
- 速率(TP1 双绞线):9600bps
适用系统:
- 照明控制
- 窗帘 / 遮阳
- 空调 / 地暖 / 新风
- 安防、传感器、能耗监测
- 大型楼宇跨区域联动
2. KNX 协议栈(5 层精简 OSI)
KNX 不使用完整 OSI,只保留最必要的 5 层,非常适合嵌入式实现。
- 物理层(PHY)
- 电气信号、介质、编码
- 数据链路层(MAC)
- 帧结构、CSMA/CA、优先级、CRC
- 网络层(Network)
- 地址、路由、跨线路转发
- 传输层(Transport)
- 连接模式、确认、重传
- 应用层(Application)
- 组对象、DPT 类型、ETS 配置
3. 物理层(最常用:TP1 双绞线)
3.1 介质与电气
- 两线无极性,总线供电 + 通信同线
- 电压:29V 左右
- 编码:曼彻斯特编码
- 单段长度:≤1000m
- 单段设备:≤64 个
3.2 常见物理类型
- TP1:双绞线(99% 项目都用这个)
- PL110:电力线(不用布线,但不稳定)
- RF(868MHz):无线
- KNXnet/IP:以太网隧道 / 路由(现代大屏、网关主流)
4. 数据链路层(核心:帧 + 防冲突)
4.1 CSMA/CA 冲突避免
- 先监听总线是否空闲
- 空闲才发送
- 多优先级机制,保证报警 / 紧急命令优先
4.2 4 级优先级
- 系统命令(最高)
- 报警 / 紧急
- 普通控制
- 低优先级(如能耗上报)
4.3 标准 KNX 帧结构(简化版)
[控制字节] + [源地址] + [目标地址] + [数据长度+数据] + [校验码]
- 控制:优先级、帧类型、重复标志
- 源地址:物理地址
- 目标地址:组地址 / 物理地址
- 数据:1~6 字节(常见 1 字节开关、2 字节调光)
- CRC:保证传输可靠
5. 网络层:两级地址体系(必须懂)
KNX 最核心的设计:物理地址 + 组地址分离。
5.1 物理地址(PA):设备身份证
格式:
区域.线路.设备
- 区域:0~15
- 线路:0~15
- 设备:0~255
- 例子:
1.2.10→ 1 区、2 线、10 号设备
作用:
- 设备唯一标识
- 用于 ETS 配置、诊断、点对点通信
5.2 组地址(GA):功能逻辑地址
三级格式(最常用):
主组 / 中间组 / 子组
例子:
1/1/1:1F 客厅主灯1/2/1:1F 空调开关2/3/4:2F 走廊场景
特点:
- 多对多、发布 / 订阅模式
- 一个报文可以控制所有同组设备
- 与物理位置无关,只和功能有关
6. 三层树形拓扑(大型楼宇必备)
骨干线(Backbone)
↓
区域(Area)×15
↓
线路(Line)×15
↓
设备 ×64
- 一条线路:≤64 设备、≤1000m
- 线路耦合器:隔离、路由、限流
- 骨干耦合器:跨区域
- 理论最大设备:15×15×256 = 57375
7. 应用层:组对象 + DPT(互操作关键)
7.1 组对象 Group Object
每个 KNX 设备对外暴露的通信接口,例如:
- 开关 1 路
- 调光亮度值
- 窗帘开度
- 温度值
- 场景调用
7.2 DPT(数据点类型)
KNX 规定了标准数据格式,保证不同厂商设备互通。
常用 DPT:
- DPT 1.001:开关(1bit:0 = 关,1 = 开)
- DPT 1.003:启停
- DPT 5.001:百分比(0~100%)
- DPT 9.001:温度(2 字节 float)
- DPT 18.001:场景调用
只要 DPT 一致,A 厂开关就能控制 B 厂灯具。
8. KNX 与 DALI 的区别(面试 / 实战高频)
表格
| 项 | KNX | DALI |
|---|---|---|
| 定位 | 全能楼宇总线 | 专用照明总线 |
| 架构 | 分布式对等 | 主从(1 主 64 从) |
| 速率 | 9600bps | 1200bps |
| 设备数量 | 最大≈5 万 | 单条总线 64 |
| 布线 | 29V 两线 | 12V 两线 |
| 功能 | 照明 + 暖通 + 窗帘 + 安防 | 仅照明(调光 / 场景 / 反馈) |
| 实战关系 | 上层主控系统 | 照明子系统 |
真实项目结构:
中控/大屏 <---> KNX 网关 <---> DALI 网关 <---> DALI 灯具
9. 嵌入式开发实战要点
9.1 硬件
- 常用 PHY:TP-UART / NCN5153 / TPUART2
- 必须带:总线滤波、TVS、磁珠
- 主控:STM32 / ESP32 均可
9.2 软件
- 可以用:
- 开源栈:knxd、Calimero
- 厂商 SDK
- 关键点:
- 严格时序
- 组对象 + DPT 必须标准
- ETS 是唯一配置工具
9.3 布线
- 两芯屏蔽线
- 远离强电
- 无极性,不用区分正负
10. 总结
- KNX 是楼宇自动化的标准级总线,稳定、跨厂商、大型项目必选。
- 核心是:物理地址定位设备 + 组地址实现逻辑控制。
- DALI 只管灯,KNX 管整栋楼。
- 做智能楼宇、网关、中控,KNX 是必须掌握的协议。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)