图片素材来自免费商用图库(pixabay),非本站项目实拍。

前言

zstack协议栈是TI公司发布的针对CC2530开发的工具,使zigbee的开发变得简单高效。本文着重介绍zstack使用的技巧,适合有一定基础的作为参考。


基于zstack协议栈开发的步骤

基于zstack协议栈的开发可以遵循OSAL操作系统配置->硬件功能配置->通信配置。其中OSAL操作系统配置主要实现创建任务和事件;硬件功能配置主要是根据自己的开发板添加或修改协议栈的硬件操作代码;通信配置主要完成组网及数据收发。

一、OSAL操作系统

OSAL(Operating System Abstraction Layer),能够实现任务调度的微操作系统,在OSAL操作系统中非常重要的两个概念是任务和事件,还有消息也比较重要。

1、操作系统工作流程

2、OSAL初始化函数

  // Initialize the operating system
  osal_init_system();

其中包含的任务初始化函数完成系统任务和用户自定义任务

  // Initialize the system tasks.
  osalInitTasks();

3、系统启动函数

  osal_start_system(); // No Return from here

其中包含了一个无限循环的系统运行函数

void osal_start_system( void )
{
   
   
#if !defined ( ZBIT ) && !defined ( UBIT )
  for(;;)  // Forever Loop
#endif
  {
   
   
    osal_run_system();
  }
}

(1)任务

(2)事件

事件是系统需要处理的事情,必须有对应的任务进行处理。
事件采用16位独热码,即有16种事件(event_flag),其中系统事件已被定义,其编码为0x8000

一、2.4GHz 与 5GHz/6GHz 频段的工程取舍

无线局域网真正可稳定使用的 2.4GHz 信道只有 1、6、11 三条互不重叠信道——每条 802.11 信道占用约 22MHz 带宽,而 2.4GHz 总可用带宽仅 83.5MHz,相邻信道频域重叠会直接引发邻频干扰。办公、酒店、公寓等 AP 密集场景,手动把相邻 AP 错开到 1/6/11 比”自动信道”更能避免同频踩踏。5GHz 信道多、干扰少、速率高,但穿墙衰减大;6GHz(Wi-Fi 6E/7)进一步打开连续频谱,适合高密场馆。工程上低密度家用优先走 5GHz,高密度公共区域再用 2.4GHz 做覆盖补充。

二、干扰定位的实测方法

  • 同频干扰:多个 AP 用同一信道,CSMA/CA 退避加剧,表现为 ping 抖动、吞吐腰斩。用 WiFi Analyzer、InSSIDer 或 AC 自带频谱图看同信道 AP 数量。
  • 邻频干扰:信道 1 与 2、6 与 7 相邻重叠,必须严格按 1/6/11 规划。
  • 非 Wi-Fi 干扰:蓝牙、Zigbee、无绳电话、微波炉、无线图传都可能污染空口。普通 Wi-Fi 嗅探看不到非 802.11 能量,需频谱仪或支持频谱扫描的 AP。
  • 多径干扰:信号经墙体多次反射叠加引起深衰落,典型症状就是”信号满格却卡顿”,可通过调整 AP 位置、降低发射功率、启用波束成形缓解。

三、商用场景的信道与功率规划

酒店/宿舍按楼层错开信道组;仓库/车间用 5GHz 定向天线做回传;会议室投屏卡顿多为 2.4G 拥堵,建议给投屏终端单独开 5G SSID。AP 发射功率并非越大越好——过大会造成跨区同频、过小留覆盖空洞,需结合场强仿真(Ekahau、AirMagnet)做 AP 点位与功率联合优化。Wi-Fi 6 的 OFDMA、MU-MIMO、TWT 从调度层面提升多用户效率,但前提是物理层干扰已先控制住。

相关阅读