一、前言
在开发zigbee产品之前首先需要确定产品的类型,这样可以根据类型选择开发的一个模式,从而在SDK中选择相应的参考例程及资料。
二、官方参考资料
1、soc模式
简单来说SOC模式就是把所有程序都集成到了一个zigbee芯片中,包括了物理层、网络层、应用层的程序。比如想要实现数据的发送,只需要使用官方封装的库函数直接发送就行,底层的数据发送过程无需关心。官方API文档
2、NCP模式
跟SOC模式不一样的地方是开发时需要使用两个芯片,一个是zigbee芯片一个是主控可以是MCU也可以是CPU这个根据项目需求。zigbee芯片中主要需要编写的是除了应用层的所有程序,MCU或者CPU中编写的就是应用层的程序,包括但不限于一些组网的策略等。这两个设备可以通过UART或者SPI接口进行通信交互。例如想要实现一个创建网络的功能,只需要通过MCU发送相应的CLI指令或者自己实现的协议功能,就可以在zigbee芯片一侧实现一个创建网络的功能。这个具体的过程其实就是zigbee接收到cli或者自定义指令后调用网络层的网络创建函数,最终实现网络创建的功能。
其实zigbee联盟和芯片厂商就已经把这些物理层、网络层的策略就已经封装成了函数的形式了。我们在实际开发中,只需要知道哪些功能需要调用哪些函数然后实现自己所需的功能就行了。像一些创建网络、加入网络等的功能都是封装好的,可以直接调用。
3、RCP模式
这个与NCP模式比较相似,都是使用两个芯片进行项目开发。不一样的是zigbee芯片只作为无线电的发送和接收器。上层的那些协议放到主控中去实现。与我们常用的以太网芯片+主控方案是一样的。以太网芯片仅仅作为数据发送接收器。主控中使用lwip协议栈,协议栈管理着网络的数据传输策略等。各层之间有相应的数据传输接口函数。