【源码、文档、软件、硬件、技术交流、技术支持,入口见文末】
前言
本篇主要讲述如何从零开始从零开始入门 ZigBee 3.0,此处以 TI 的 ZigBee 方案为例。
ZIgBee的学习本应分为“理论”和“实践”两部分,这里着重讲述大部分人主要的关注点,也就是实践部分。关于理论部分的学习,请参考后续博客(待更新)。
做ZigBee开发和一般的蓝牙、WiFi等开发类似,一定都是需要用到硬件的。那关于硬件该怎么选,具体请参考我的另外一篇博客《ZigBee Z-Stack 2.06 选择开发板和下载器》。
总体的学习思路是,先基于裸机编程,了解了所用芯片的各个底层外设是非常重要的,尤其是一些基本的、关键的外设,如:普通IO口的输入输出、外部中断、串口等等。当自己对所用ZigBee芯片非常熟悉之后,就可以不再裸机编程了,而是基于ZigBee协议栈去进行开发。
一、基于裸机编程
如果有单片机(如51单片机、STM32等)编程基础的话,学起来可能会轻松不少。如果没有,也不用担心,因为这部分并不是很难,只要细心、耐心,花点时间肯定是能学好的。
基于裸机编程的话,就意味着要去直接操作芯片的寄存器。这里是使用的是TI公司的一款基于8051内核的CC2530芯片,所以大家在学习该芯片的裸机编程的时候,完全把它当作是一款51单片机去操作和学习就是了。
这里着重强调需要完全掌握的几点,不一定难,但很重要,因为后面会经常涉及到。
1、普通IO口的输出配置与使用
在实际项目开发中,会经常需要使用到普通IO口作输出使用,比如用来控制LED、继电器、蜂鸣器等。
2、普通IO口的输入配置与使用
普通IO口作输出使用也经常需要用到,比较典型的就是使用轮询模式去作按键检测,其实就是周期性地去读取IO口的电平到底是高还是低。
3、外部中断的配置与检测
外部中断检测的使用可能比普通IO口作输入检测用得要更多一些,因为中断检测要比轮询检测灵敏的多,且功耗要低得多,可用作按键检测、运动传感检测等。
4、系统时钟的配置
TI的ZigBee芯片(如CC2530)可以工作在不同的系统时钟下,可以根据项目需求的不同去选择不同的时钟配置。
5、串口数据的收发
ZigBee网络如果需要和外部网络连接,串口是芯片的基本外设,也是与外部数据通信的最佳选择之一。通过串口数据输出,可以向上层提供系统调试日志、用于显示网络设备信息等;通过串口接收不同的数据或指令,可以用于获取整个的信息,或是实现对整个网络的控制。
二、基于协议栈开发
这个开发过程和自己从零开始去搭建一个工程不同,而是在ZigBee芯片厂商提供的ZigBee协议栈的基础之后去进行修改、开发。如果没有类似的开发经验的话,刚开始可能会有些不适应,但是只要坚持一段时间,自然会发现这种方式其实非常高效,比自己去从零开始搭建整套系统要高效得多!
ZigBee 3.0的协议栈比老版的协议栈新增了很多东西,所以在学习的时候,一定要理清思路,边学习、边思考、边总结、边调整。
ZigBee 3.0学习资料很多人说ZigBee学起来很难,有没有好一点的学习资料,最好是中文的
【源码、文档、软件、硬件、技术交流、技术支持,入口见文末】