ZigBee
小帅比simon
热爱学习,想参与到改变世界的组织中!!
展开
-
08 ZStack初步接触
版本说明Zstack 0.0.1 .. Zstack 1.5.1amesh:之前版本的升级版 HA: 专门给智能家庭 SE: 智能能源 .. 在应用部分作了规定!新建工程模板复制ZStack协议栈整个文件夹到一个合适的位置,比如E盘根目录,尽量不含中文以及路径不要太长!在复制好的协议栈文件夹中删除多余的文件夹及文件!其中包括: (1)Documents (2)Tools (3)原创 2017-02-16 19:48:27 · 1030 阅读 · 0 评论 -
07 抓包分析
1、很多朋友学完Zigbee之后,对它的印象仅仅是能够做单播 广播实验而已,对Zigbee无线局域网脑子里还是没有太多的概念? 这些朋友对Zigbee网络的组建过程 网络工作时 Zigbee无线模块在空气中数据交换过程没有太多了解。2、在Zigbee无线局域网里,节点(无线模块)按照在网络里的功能来划分, 协调器 路由器 终端 他们的硬件可以一模一样,之所以在网络里表现不同的功转载 2017-02-15 18:58:01 · 996 阅读 · 0 评论 -
06 无线通信概念
一.基本概念:1.射频通信:(1)发送:必须将数据脱载在高频载波上发送出去,才能提高发送效率。(2)接收:和发送端在同一个高频载波频段,将高频信号去掉,抽离出数据。(3)ZigBee工作在2.4G频段。由于是频段,所以引出了信道的概念。这个频段是16个信道,每增加5MHz是一个信道。从2405,对应11信道,依次增加,一直到2480,对应26信道。收发信道要一致。2.网原创 2017-02-15 18:47:22 · 940 阅读 · 1 评论 -
05 单片机串口
1.2530有两个串口UART0和UART1。2.他们都有两组备用位置。UART0:一般是P0_2,P0_3,另一组是P1_4和P1_5;UART1:一般是P0_4,P0_5,另一组是P1_2和P1_3;3.可以通过PERCGF寄存器选择备用位置。4.当选择好备用位置以后,要将相应的IO口设置为外设功能,而不是通用IO口功能。5.关于流控,奇原创 2017-02-15 17:20:32 · 1261 阅读 · 0 评论 -
04 单片机时钟
1.ZigBee内部有两个RC晶振,分别是低速的32k和高速的16MB。外部也有两个晶振,低速的32.768k和高速的32MB晶振。无线通信的时候要选择高速的32MB晶振,那样会比较精确。两个高频时钟源可以同时起震,产生时钟信号,而低频时钟源只能有一个起震。2.涉及到时钟控制的主要是两个寄存器(1)命令寄存器:主要控制时钟源的选择。-----》第七位:选择低频时钟(内部VS外部原创 2017-02-15 17:16:29 · 560 阅读 · 0 评论 -
03 单片机外部中断
中断初始化:1、 CPU中断开关打开 EA=1;(IEN0)2、 自己所在的组开关打开P0组的中断开关在IEN1的第5位,或者P0IEP1组的中断开关在IEN2的第4位P2组的中断开关在IEN2的第1位3、 自己的那个脚的开关也要打开4、 P0IEN 8 例如:如果我们要把P0_2这个脚的开关打开那么我们就必须要把P0IN原创 2017-02-15 17:03:25 · 1359 阅读 · 0 评论 -
02单片机IO口操作
其实真的不能再简单了哦,就是三个寄存器。1.PxSEL:设置某一个的IO口是作为基本的IO口还是作为第二功能的接口来使用。(0:基本IO,1:外设功能)2.PxDIR:设置作为基本功能的IO口到底是作为输入还是输出使用。(0:输入,1:输出)3.PxINP:设置某一个IO口的输入模式,上下拉还是三态模式,如果要具体指明上拉还是下拉,需要配合P2INP【5:7】这三位分别对应P0---P原创 2017-02-15 16:57:24 · 1671 阅读 · 0 评论 -
01ZigBee简介
学习要领1、学习Zigbee,不仅仅是学习单片机芯片本身,还要掌握一堆叫做协议栈的代码,学习的任务比较大。 2、互联网上Zigbee相关的实用、深入的资料比较少,而Zigbee厂商TI提供的技术文档很多不是按照逻辑上的关系列出来,而且都是英文,初学的朋友学起来非常费劲,效果不理想。 3、Zigbee初学的朋友,不知道去利用一些软件和硬件上的工具帮助学习,学习效率比较低,事倍功半。常见问题1、什么原创 2017-02-15 16:49:08 · 1443 阅读 · 0 评论 -
SmartMesh WireLess HART 资料总结
SmartMesh WireLess HART 资料总结 --刘振君 2017.01.09 23:00:00IEEE 802.15是一个工作组98年成立,专门从事WPAN标准化工作。它的任务是开发一套适用于短程无线通信的标准,通常我们称之为无线个人局域网(WPANs)。原创 2017-02-15 15:22:24 · 7892 阅读 · 1 评论 -
17 ZigBee小项目 终于完结了 day05
QT的串口 1. 多线程 2. 子线程每隔2ms给主线程发送一个信号让主线程读取串口 3. 对重复读取的串口数据包进行了容错处理main.cpp#include "mainwindow.h"#include <QApplication>int main(int argc, char *argv[]){ QApplication a(argc, argv); MainWind原创 2017-02-22 20:04:42 · 2315 阅读 · 0 评论 -
16 ZigBee小项目笔记 day04
qt 串口 #ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QSerialPort>#include <QSerialPortInfo>#include <QDebug>#include <QFile>#include <QDataStream>#include <QByteArray>#i原创 2017-02-21 23:52:13 · 499 阅读 · 0 评论 -
15 ZigBee小项目笔记 day02
协议栈串口在启动以后会打印一堆数据,是由于MT封装的取消掉对LCD的支持(宏定义)不会打印出Energy以及Network ID等信息在MT_TASK.c文件中可以注释掉 //HalUARTWrite(MT_UART_DEFAULT_PORT, msgPtr, dataLen + SPI_0DATA_MSG_LEN);可以避免打印FE开头的数据也可以在MT_TransportSend函数中将原创 2017-02-19 22:24:31 · 494 阅读 · 0 评论 -
14 ZigBee小项目笔记day01
终端节点:/************************************************************************************************** Filename: SimonApp.c Revised: $Date: 2009-03-18 15:56:27 -0700 (Wed, 18 Mar 20原创 2017-02-18 23:04:59 · 676 阅读 · 0 评论 -
13 关于端点和簇以及规范的补充
心理学专家告诉我们,一个贴子不能写得太长,否则会让读者有疲劳感。。。(背景音:哪个专家说的?--自己百度去,肯定不是奥特曼~~~)按照专家的指点,我们把设备“对话”专题,又分了个part 2,就这样,还不知道能不能把这部分说得清楚呢,汗自己一个。。。 在第一部分中,我们只是做了下基础的工作,从“壹”开始,搭建了一个属于自己的工作平台,虽然和主题有点相去甚远,但我认为这对我们后面的理解很有转载 2017-02-17 18:35:16 · 767 阅读 · 0 评论 -
12 关于端点(Endpoint)、簇(clusterId)以及规范(ProfileID)
Endpoint1、他是一个字节编号的,数据收和发送的基本单元,在模块通信的时候,发送模块必须指定收发双方模块的网络地址和端点。2、端点要使用必须要和模块里的某个任务挂钩定义;首先每一个端点可以看成是一个1个字节数字编号的开有一扇门的房间,数据最终的目标是进入到无线数据包指定的目标端点房间,而取无线数据这个相关的代码在任务事件处理函数里,TI协议栈有那么多的任务事件处理函数,所以必须要指定在哪个任务原创 2017-02-17 18:31:21 · 4105 阅读 · 0 评论 -
11 单播初体验
1、刚开始,我们确实需要借助官方模板,添加简单的代码,做出通信基本收发实验,建立感性的认识。2、然后,在官方代码基本实验基础上,了解相关的概念,掌握通信过程中原理,结合自己的理解,自己动手做一个个性化实验,验证我们的理解。单播在Zigbee网络里,模块之间要进行通信,发射模块非常明确知道接收模块的网络地址,以这个地址发送数据给接收模块,叫单播。Zigbee模块的地址特点:模块在入网的时候,父节点随机原创 2017-02-17 12:45:35 · 339 阅读 · 0 评论 -
10 OSAL分析补充
I协议栈所用系统框架探讨。51的系统往往不是太大,但是几十K的程序,也足以让一个初学者望而却步。我们首先忽略C语言本身的难度,光是系统框架也让生手读起来很吃力,再加上这种到处是API跟"define"的程序,还没有正式学习协议部分就已经让人在丛林中“迷路”了。在接下来的一段时间内,我会以TI所用的系统框架为主线进行学习,希望大家共同探讨。。。[注:本文源自www.feibit.转载 2017-02-17 10:13:38 · 314 阅读 · 0 评论 -
09 事件驱动的OSAL简要分析
1、应用层是一个任务,它有一个系统分配给他的数值唯一的编号叫任务ID 2、任务可以处理事件,处理事件的这些代码都在一个函数里,这个函数叫任务事件处理函数 3、应用层任务还有一个 2个字节的变量 —任务事件变量4、应用层任务事件变量 和 应用层定义的事件的关系,如果事件变量和某个事件的宏值(该宏定义事先定义好)与操作为1,那么表示应用层任务将要处理这个事件。对应SimonApp_Process原创 2017-02-17 10:09:03 · 583 阅读 · 0 评论 -
Go语言插入排序(包括shell希尔排序)
package mainimport ( "fmt")/*插入排序不适合对于数据量比较大的排序应用。但是,如果需要排序的数据量很小,比如量级小于千,那么插入排序还是一个不错的选择。 插入排序在工业级库中也有着广泛的应用,在STL的sort算法和stdlib的qsort算法中,都将插入排序作为快速排序的补充,用于少量元素的排序(通常为8个或以下)*/func insert_s...原创 2018-06-21 18:26:49 · 668 阅读 · 0 评论