DL-20 CC2530 UART Zigbee模块技术文档

知识库
知识库文档
/firmware/通信模块/DL-20 CC2530 UART Zigbee模块/DL-20 CC2530 UART Zigbee模块技术文档.md

文档

DL-20 CC2530 UART Zigbee模块 技术文档

一、概述

DL-20是基于TI CC2530F256 SoC的UART串口Zigbee无线透传模块。CC2530内部集成8051 MCU + 2.4GHz RF收发器,运行Z-Stack协议栈。模块通过UART与宿主MCU(如ESP32/STM32/Arduino)通信,支持AT指令配置和透明传输两种工作模式,适用于宿舍物联网、智能家居传感器网络、工业无线采集等场景。

核心特性

项目 参数
主芯片 TI CC2530F256 (256KB Flash + 8KB RAM)
协议栈 Zigbee / Z-Stack
频段 2.4GHz ISM (2405MHz ~ 2480MHz)
网络拓扑 点对点 / 点对多点 / 广播
UART接口 TXD + RXD, TTL 3.3V
典型距离 空旷约250m

二、引脚定义

DL-20模块常见引脚排列(正面朝上,天线在上,引脚从左到右):

          ┌──────────────────┐
          │   ○  ANTENNA     │
          │                  │
  VCC ───┤1                8├─── GND
  TXD ───┤2                7├─── RXD
  RST ───┤3       DL-20    6├─── NC/GPIO
  KEY ───┤4                5├─── LED
          │                  │
          └──────────────────┘
引脚 名称 方向 功能 说明
1 VCC Power 电源正极 2.0V ~ 3.6V,典型3.3V,需加去耦电容
2 TXD Output UART发送 接宿主MCU的RXD,TTL 3.3V电平
3 RST Input 复位引脚 低电平复位,内部上拉,可悬空
4 KEY Input 配置/唤醒 AT指令配置模式进入引脚,内部上拉
5 LED Output 状态指示 网络状态指示,可外接LED(需限流)
6 NC/GPIO I/O 预留 部分版本为通用GPIO,可悬空
7 RXD Input UART接收 接宿主MCU的TXD,TTL 3.3V电平
8 GND Power 电源地 与宿主MCU共地

三、电气特性

3.1 极限参数

参数 最小值 最大值 单位
VCC供电电压 -0.3 3.9 V
I/O引脚电压 -0.3 VCC+0.3 (≤3.9) V
工作温度 -40 +85 °C
存储温度 -50 +125 °C

3.2 工作参数 (VCC=3.3V, 25°C)

参数 典型值 单位
发射电流 (+4.5dBm) 28 mA
接收电流 24 mA
休眠电流 (PM2) <1 μA
发射功率 (最大) +4.5 dBm
发射功率 (最小) -24 dBm
接收灵敏度 -97 dBm
UART高电平 ≥2.4 V
UART低电平 ≤0.6 V

3.3 UART时序

参数 典型值
默认波特率 115200 bps
数据位 8
停止位 1
校验位 无 (N)
帧间隔 (模块发送) ≥2ms
字节间延迟 ≥50μs (实际推荐100μs)

重要:DL-20在连续发送时,帧与帧之间需要至少2ms间隔,字节间建议100μs延迟。某些固件版本在快速连续发送时会出现丢帧或数据错乱。


四、AT指令集

DL-20通过UART发送AT指令进行配置。进入AT模式需拉低KEY引脚或上电时发送特定序列(视固件版本而定)。

4.1 基础指令

指令 功能 响应
AT 测试连接 OK
AT+VER 查询固件版本 版本号字符串
AT+RST 软件复位 OK 后模块重启

4.2 网络配置

指令 功能 示例
AT+PANID=? 查询/设置PAN ID AT+PANID=0x1234
AT+CH=? 查询/设置信道(11-26) AT+CH=15
AT+BAUD=? 查询/设置波特率 AT+BAUD=115200
AT+ROLE=? 设置角色 (COORD/ROUTER/ENDDEV) AT+ROLE=ROUTER
AT+DEST=? 设置目标地址(广播=0xFFFF) AT+DEST=0x0001

4.3 测试示例

// 发送
AT\r\n
// 响应
OK

// 设置PAN ID
AT+PANID=0x2010\r\n
// 响应
OK

// 设置信道15
AT+CH=15\r\n
// 响应
OK

五、典型应用电路

5.1 ESP32 + DL-20 宿舍物联网节点

        ESP32                       DL-20
    ┌──────────┐              ┌──────────┐
    │          │              │          │
    │   3.3V ──┼──────────────┼── VCC    │
    │   GND  ──┼──────────────┼── GND    │
    │ GPIO16 ──┼── RXD ───────┼── TXD    │
    │ GPIO17 ──┼── TXD ───────┼── RXD    │
    │          │              │          │
    │          │     100nF    │          │
    │          │   ┌──┤├──┐   │          │
    │   3.3V ──┼───┤     ├───┼── VCC    │
    │          │   └─────┘   │          │
    │          │    10μF     │          │
    │          │   ┌──┤├──┐   │          │
    │   3.3V ──┼───┤     ├───┼── VCC    │
    │          │   └─────┘   │          │
    └──────────┘              └──────────┘

去耦要求:VCC引脚附近放置100nF + 10μF去耦电容。CC2530在RF发射瞬间电流变化大,去耦不良会导致通信不稳定。

5.2 电平匹配注意事项

DL-20的UART是3.3V TTL电平:

  • ESP32:原生3.3V IO,可直接连接。
  • STM32:需确认IO容忍5V,多数STM32F1引脚支持5V容忍但输出为3.3V,可直接连接。
  • Arduino Uno (5V):需要电平转换(如2路MOS管转换模块),不可直连。

六、透明传输协议设计

在透明传输模式下,DL-20将UART收到的数据原封不动地通过Zigbee无线发送到目标节点。开发者需自行设计上层帧协议。

6.1 推荐的帧格式

┌──────┬─────────┬──────────┬─────────┬──────┐
│ 帧头  │  长度   │   JSON   │   CRC   │ 帧尾 │
│ 0x0A │ 1 Byte  │  N Bytes │ 2 Bytes │ 0x0D │
└──────┴─────────┴──────────┴─────────┴──────┘

6.2 JSON遥测载荷示例

{
  "v": 1,
  "n": "NODE_101",
  "d": "DORM_A301",
  "h": 0,
  "t": 26.5,
  "u": 58.0,
  "s": 120,
  "l": 1,
  "m": 1703001234567,
  "g": "periodic",
  "q": 42
}
字段 含义 类型
v 协议版本 int
n 节点ID string
d 宿舍号 string
h 人体检测 (0/1) int
t 温度 (°C) float
u 湿度 (%) float
s 烟雾ADC值 int
l 门锁状态 (0=锁/1=开) int
m 毫秒时间戳 uint32
g 上报触发器 string
q 序列号 uint32

6.3 下行命令格式

{
  "type": "lock_control",
  "nodeId": "NODE_101",
  "dormNo": "DORM_A301",
  "action": "unlock",
  "durationMs": 5000
}

6.4 ACK确认机制

{
  "type": "ack",
  "nodeId": "NODE_101",
  "seq": 42
}

七、使用注意事项

7.1 供电设计

  1. 必须使用3.3V供电。CC2530的VCC最大3.9V,5V直供会烧毁模块。
  2. 去耦电容不可省略。RF发射瞬间电流从24mA跳变到28mA以上,100nF+10μF是底线配置。
  3. 若使用ESP32开发板的3.3V输出,需确认其3.3V LDO有足够余量(至少200mA裕量)。

7.2 通信稳定性

  1. 帧间延迟:连续发送时,帧之间至少留2ms间隙。DL-20的CC2530在接收一帧后会短暂占用CPU处理,来不及接收下一帧。
  2. 字节间延迟:高速连续发送时,推荐字节间延迟100μs(通过delayMicroseconds(100)实现),避免UART FIFO溢出。
  3. 天线布局:PCB板载天线区域下方不要铺铜,远离金属外壳和大面积地平面。
  4. 同频干扰:WiFi(2.4GHz)和Zigbee共享频段,建议Zigbee使用信道15/20/25来避开WiFi信道1/6/11。

7.3 防冲突与调度

  1. 交错上报:多个节点同时上报会造成Zigbee网络拥塞。使用基于节点ID哈希的时隙偏移(Staggering)来分散上报时间。
  2. 重试与退避:ACK超时后使用指数退避+随机抖动重试。

7.4 门锁控制安全

  1. 上电保护:ESP32 GPIO在上电瞬间可能输出不确定电平。若继电器为低电平触发,必须在pinMode(OUTPUT)之前先将输出寄存器设为高电平(digitalWrite(pin, HIGH))。
  2. 启动守卫:上电后N秒内忽略解锁指令,防止MCU复位时误触发开锁。
  3. 脉冲限幅:解锁脉冲宽度限制在合理范围(如500ms~30s),防止软件Bug导致长时间开锁。

7.5 固件兼容性

DL-20不同批次固件可能存在差异:

  • AT指令格式可能不同(部分版本需要\r\n结尾,部分只需要\r)。
  • 透明传输模式下的最大帧长可能不同(常见512字节)。
  • 建议在量产前对固件版本进行锁定和验证。

信息

路径
/firmware/通信模块/DL-20 CC2530 UART Zigbee模块/DL-20 CC2530 UART Zigbee模块技术文档.md
更新时间
2026/5/26