文档
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 供电设计
- 必须使用3.3V供电。CC2530的VCC最大3.9V,5V直供会烧毁模块。
- 去耦电容不可省略。RF发射瞬间电流从24mA跳变到28mA以上,100nF+10μF是底线配置。
- 若使用ESP32开发板的3.3V输出,需确认其3.3V LDO有足够余量(至少200mA裕量)。
7.2 通信稳定性
- 帧间延迟:连续发送时,帧之间至少留2ms间隙。DL-20的CC2530在接收一帧后会短暂占用CPU处理,来不及接收下一帧。
- 字节间延迟:高速连续发送时,推荐字节间延迟100μs(通过
delayMicroseconds(100)实现),避免UART FIFO溢出。 - 天线布局:PCB板载天线区域下方不要铺铜,远离金属外壳和大面积地平面。
- 同频干扰:WiFi(2.4GHz)和Zigbee共享频段,建议Zigbee使用信道15/20/25来避开WiFi信道1/6/11。
7.3 防冲突与调度
- 交错上报:多个节点同时上报会造成Zigbee网络拥塞。使用基于节点ID哈希的时隙偏移(Staggering)来分散上报时间。
- 重试与退避:ACK超时后使用指数退避+随机抖动重试。
7.4 门锁控制安全
- 上电保护:ESP32 GPIO在上电瞬间可能输出不确定电平。若继电器为低电平触发,必须在
pinMode(OUTPUT)之前先将输出寄存器设为高电平(digitalWrite(pin, HIGH))。 - 启动守卫:上电后N秒内忽略解锁指令,防止MCU复位时误触发开锁。
- 脉冲限幅:解锁脉冲宽度限制在合理范围(如500ms~30s),防止软件Bug导致长时间开锁。
7.5 固件兼容性
DL-20不同批次固件可能存在差异:
- AT指令格式可能不同(部分版本需要
\r\n结尾,部分只需要\r)。 - 透明传输模式下的最大帧长可能不同(常见512字节)。
- 建议在量产前对固件版本进行锁定和验证。