
极物科技 | KNX协议 - CEMI报文帧格式详解前言KNX 之所以能成为全球楼宇自动化的“通用语言”靠的是严谨到字节级的协议设计——它既是国际标准 ISO/IEC 14543-3也意味着任何厂商按规范实现的设备都能在同一总线上精确协作。极物科技的研发团队对 KNX 协议栈做了深度自主研发从 CEMI 帧解析到 KNXnet/IP 双通道实现全部内置于自研 KNX 主机自主可控配合鸿蒙、苹果、安卓三端原生 APP、Apple HomeKit 与小度生态接入及主机远程调试能力这正是极物主机稳定对接全球上万种 KNX 设备的技术底气。一句话概述本文回答CEMI帧每个字节是什么含义CEMICommon External Message Interface是KNX报文在IP通道上传输的标准封装格式看懂它就等于拿到了KNX报文的解剖图。1. CEMI在协议栈中的位置KNXnet/IP隧道/组播通道上传输的每一帧外层是KNXnet/IP报文头内层载荷就是CEMI帧knxd的Socket接口吐出的同样是CEMI。可以说CEMI 总线L_Data帧在IP世界的化身。KNXnet/IP帧RoutingIndication ┌──────────────────────────┬─────────────────────┐ │ KNXnet/IP Header (6字节) │ CEMI帧本文主角 │ └──────────────────────────┴─────────────────────┘2. CEMI帧整体结构┌────────┬──────────┬──────────┬──────────┬─────────────┬───────┬───────────┐ │ 消息码 │ 附加信息长度│ 附加信息区 │ 控制域1/2 │ 源地址目的地址│ NPDU长度│ TPCI/APCI数据│ │ 1字节 │ 1字节 │ 0~N字节 │ 2字节 │ 22字节 │ 1字节 │ 1~16字节 │ └────────┴──────────┴──────────┴──────────┴─────────────┴───────┴───────────┘3. 逐字段详解3.1 消息码Message Code值含义0x11L_Data.req请求发送0x2EL_Data.con发送确认含成功/失败状态0x29L_Data.ind接收指示总线收到帧时上报3.2 附加信息区Additional Information常见于隧道与路由通道用于携带占用通道、射频中继等信息。组播路由帧附加信息长度为0隧道帧常见4字节附加信息L_Data.con使用。3.3 控制域Control Field 1 / 2控制域1如0xBC/0xB4承载帧类型、重复标志、优先级低优先级为主、广播标志等控制域2如0xE0承载目的地址类型0x80组地址与跳数计数。3.4 源地址与目的地址均为2字节大端。源地址是个体地址如1.1.0目的地址通常是组地址如0/0/37高字节 00 25 → 组地址 0/0/37 高字节 09 01 → 组地址 1/1/13.5 NPDU长度与TPCI/APCINPDU长度为0表示无数据或仅6bit以内数据1bit开关等TPCI 2bitAPCI 8bit共同组成指令字段APCI高6位是操作码、低2位与后续数据字节拼装数值TPCI/APCI字节指令0x00GroupValueRead读请求0x40GroupValueResponse读响应0x80GroupValueWrite低2bit值1bit开关4. L_Data帧逐字节示例4.1 1bit开关写入帧开灯11 00 B4 E0 11 00 00 25 00 81 │ │ │ │ └┬┘ └┬┘ │ └┬┘ │ │ │ │ 源地址 目的 │ APCI0x80写 │ │ │ │ 1.1.0 0/0/37│ 低2bit01 → 开 │ │ │ └ 控制域2组地址 │ │ └ 控制域1 │ └ 附加信息长度0 └ 消息码 L_Data.req NPDU长度00数据不足1字节值直接放在APCI字节低2位4.2 1byte百分比写入帧窗帘行程50%11 00 B4 E0 11 00 00 25 01 80 32 └─ 数据 0x32 50%对比可见NPDU长度变为1数据跟随在APCI字节之后。4.3 读请求帧状态查询11 00 B4 E0 11 00 00 25 00 00 └─ APCI0x00 读无数据5. 代码级解析片段极物主机收发层解析CEMI的核心逻辑脱敏示意typedefstruct{uint8_tmsg_code;/* 0x11 req / 0x29 ind */uint8_tctrl1,ctrl2;uint16_tsrc_ia;/* 源个体地址 */uint16_tdst_ga;/* 目的组地址 */uint8_tnpdu_len;uint8_tapci;/* 低2bit与首数据字节拼接 */uint8_tdata[16];}cemi_frame_t;intcemi_parse(constuint8_t*buf,intlen,cemi_frame_t*out){constuint8_t*pbuf1buf[1];/* 跳过消息码附加信息 */out-ctrl1*p;out-ctrl2*p;out-src_ia(p[0]8)|p[1];p2;out-dst_ga(p[0]8)|p[1];p2;out-npdu_len*p;out-apci(*p)0x03?(*p0xC0):(*p0xC0);/* 取APCI高2位 *//* 1bit值在apci字节低2位多字节数据从下一字节起 */...}6. 解析实战建议先看第1字节0x11是本机发出、0x29是总线收到方向立判再看目的地址换算成三级组地址后直接对照ETS工程核查最后看APCI与数据0x80/0x00/0x40三类指令覆盖90%日常报文配合Wireshark的KNXnet/IP解析器可自动完成上述拆解见系列第44篇。7. 相关文档《极物科技 | KNXnet/IP - 报文结构逐字节解析》《极物科技 | KNX协议 - APCI指令与数据点类型解析》《极物科技 | knxd - Wireshark抓包与总线监控》《极物科技 | KNX协议栈 - 系统架构与分层设计》关于极物科技ZEEWO极物科技Zeewo致力于为用户提供智能控制系统及硬件产品。我们以总线系统为技术底座以**“稳定、可靠、快速响应”**为产品底线是国内少有的拥有 KNX、DALI 全套软硬件自主研发能力的厂商之一。我们的核心能力系统架构自研极物 OS支持多协议无界融合KNX/DALI/CAN/RS485/IP。核心硬件带双路 DALI 的 KNX 主机、超薄全金属定制面板、各类智选传感器及网关。生态互联深度融入 Apple HomeKit、Matter、小度、HomeAssistant 及纯血鸿蒙生态。调试交付独家支持 ETS 导出 XML 直接导入进行 APP 免编程调试支持远程 WEB 运维。我们的市场覆盖服务网点已覆盖全国核心城市含长三角、珠三角、成渝等并以高品质的方案深耕家居生活、酒店民宿、企业办公、疗愈康养、餐馆会所等多个细分领域。(如果您在开发或落地中遇到技术问题欢迎通过官网或后台私信与我交流探讨)