由于一些偶然因素,我碰到了Zigbee,到现在对于Zigbee协议栈已经了解了一部分,但因为性格的原因,一直在排斥。我在学习Zigbee之前,做过51单片机的开发,也学习过STM32(但没有深入,以后可能会,因为就目前所做的功能来说,51单片机已经够用了,而且开发简单,还有一个原因就是我一直在排斥使用库函数。。。可能是因为51底层写习惯了,对别人定义的函数总是感觉不安全),所以对于C语言开发和单片机这一块还是有一定了解的,我相信这个世界上和我一样的人有很多,都是对单片机开发有一定的基础才转过来的(如果没有还是建议学习一下然后再做Zigbee,不然“莫名其妙的”Bug会让你失去活下去的信心。。。开个玩笑),所以很可能着急做出一点什么来防止自己失去兴趣(好吧说的就是我),但是很坑的是如果开发板是你自己做的或者是第三方的,那么你从官网上下载的协议栈里面所包含的demo是没有办法直接使用的,因为它是按照他们公司出的开发板写的程序,可以说是测试程序吧(我认为这点很讨厌,又不是卖开发板的)这就导致你得改,而且我是用的2.5.1a版本,这个版本很乱!但又没办法,具体的下面会说。开头就这样草草的写一下吧。
那么万事皆有因果,要用Zigbee做什么,为什么要用Zigbee呢。我想做的就是简单的万物互联,也就是笼统概念上的物联网,然而实现物联网的方法有很多,但就无线通信协议而言,有Wifi、蓝牙、Zigbee、UWB、NFC等等,但Zigbee仅仅就低功耗这一点就已经比其他的更有优势了,当然还有其他的具体看链接:http://m.elecfans.com/article/599455.html
据介绍说Zigbee终端节点在使用干电池供电的情况下可以工作两个月至半年的时间,这个是什么概念,假设你有20个节点,你只需要过一两个月或者半年去给所有的换一下电池即可,但如果是其他设备,最多也就十几天二十天,如果是Wifi使用电池供电,估计两三天就得换,一个还好说,二十个,如果有上百个,而且都不在同一个地方,换电池得换到什么时候。。。
在开始学习的时候建议大家百度一下什么是Zigbee,了解了解一些概念,比如协议和协议栈分别是什么等等一些基础的东西,这里贴一个链接,里面的内容相对很全,大概看下吧,希望对你们有帮助,看不懂也没关系,有个概念就行
https://blog.csdn.net/u013162035/article/details/81047474
Zigbee官网:https://zigbee.org
今天是2019年10月,Zigbee协议栈已经更新到3.0.2的版本了,这个版本结构要比我使用的2.5.1a要完善,而且结构也比较清晰,但同时也更复杂。对于强迫症的我早就应该升级了,但是一些问题压制着我没有办法升级,问题是:
• 3.0版本协议栈工作占据的数据内存很大,cc2530单片机是8KBRAM,就算什么都不添加,都是很可能不够用,而且协议栈本身也很大,256KB也能占用90%以上,所以如果要使用cc2530,对自己的开发就得考虑内存问题了,还可能因为内存的原因导致无法继续扩展
• 当然可以不使用CC2530,TI官方人员推荐使用CC2652R,但是这又出现一个问题,CC2652R的模块价格高出CC2530好几倍,作为个人开发的我而言根本无法开销,并且CC2652都是ARM架构的,不是简单的单片机,所以会更复杂
所以还是打算CC2530上2.5.1a的协议栈,这里最后再说一下如果要学习Zigbee CC2530,你需要准备哪些东西
硬件:
1.CC2530开发板(买的做的都可以,只要你有能力)
2.CCDebugger下载器,用来下载和调试程序使用,必须要有的
3.2531 dongle抓包工具,用来抓取并分析数据使用
软件:
IAR for 8051开发环境,因为CC2530是增强型51单片机,所以使用这个版本,没见过有人使用Keil开发。
协议栈:https://download.csdn.net/download/dreamer282/11914027