四川农业大学ZigBee复习重点


Zigbee概述
1、	Zigbee是一种近距离、低复杂度、低功耗、低成本的双向无线通信技术
2、	Zigbee的特点是功耗低、成本低、时延短、网络容量大、可靠安全。
3、	常见的Zigbee芯片有CC243X系列、MC1322X系列和CC253X系列。
4、	常见的Zigbee协议栈有非开源协议栈、开源协议栈和半开源协议栈。
5、	Zigbee软件开发平台包括IAR、Zigbee Sniffer、物理地址修改软件以及其它辅助软件
6、	Zigbee硬件开发平台采用Altium Designer进行设计。
7、	简述Zigbee的定义。
答:Zigbee是一种近距离、低复杂度、低功耗、低成本的双向无线通讯技术。主要用于距离短、功耗低且传输速率不高的各种电子设备之间,进行数据传输(包括典型的周期性数据、间歇性数据和低反应时间数据)的应用。( Zigbee的基础是IEEE802.15.4,但是IEEE802.15.4仅处理低级的MAC(媒体接入控制协议)层和物理层协议,Zigbee联盟对网络层协议和应用层进行了标准化。)
8、	简述无线传感器网络与Zigbee之间的关系。
答:
从协议标准来讲:
目前大多数无线传感器网络的物理层和MAC层都采用IEEE802.15.4协议标准。IEEE802.15.4描述了低速率无线个人局域网的物理层和媒体接入控制协议(MAC层),属于IEEE802.15.4工作组。而Zigbee技术是基于IEEE802.15.4标准的无线技术。
从应用上来讲:
Zigbee适用于通信数据量不大,数据传输速率相对较低,成本较低的便携或移动设备。这些设备只需要很少的能量,以接力的方式通过无线电波将数据从一个传感器传到另外一个传感器,并能实现传感器之间的组网,实现无线传感器网络分布式、自组织和低功耗的特点。
9、	Zigbee技术特点:低功耗 、低成本 、大容量 、可靠 、时延短 、灵活的网络拓扑结构。

Zigbee技术原理
1、	Zigbee协议分为物理层、MAC层、网络层和应用层,其中物理层和MAC层由IEEE802.15.4定义。
2、	Zigbee有三种网络拓扑结构,分别是星型、树型和网状型。
3、	物理层定义了物理无线信道和与MAC层之间的接口,提供物理层数据服务和物理层管理服务。
4、	MAC层提供MAC层数据服务和MAC层管理服务,并负责数据成帧。
5、	网络层负责拓扑结构的建立和维护网络连接。
6、	Zigbee的应用层由应用支持子层(APS)、Zigbee设备对象、Zigbee应用框架(AF)、Zigbee设备模板和制造商定义的应用对象等组成。
7、	简述MAC层帧的一般结构
a)	答:MAC帧,即MAC协议数据单元(MPDU),是由一系列字段按照特定的顺序排列而成的。设计目标是在保持低复杂度的前提下实现在噪声信道上的可靠数据传输。MAC层帧结构分为一般格式和特定格式。
b)	一般格式:三部分,MAC帧头(MHR)、MAC有效载荷、MAC帧尾(MFR)。
c)	特定格式:信标帧、数据帧、确认帧和命令帧。
d)	(MAC帧头部分由帧控制字段和帧序号字段组成;MAC有效载荷由地址信息和特定帧的有效载荷组成,MAC有效载荷的有效长度与特定帧类型有关;MAC帧尾是校验序列FCS)。
8、	简述Zigbee网络层的功能。
答:Zigbee网络层主要实现网络的建立、路由的实现以及网络地址的分配。Zigbee网络层不同功能由不同的设备完成。其中Zigbee网络中的设备有三种类型:协调器、路由器和终端节点,分别实现不同的功能 :协调器具有建立新网络的能力 ;协调器或路由器具备允许设备加入网络或者离开网络、为设备分配网络内部的逻辑地址、建立和维护邻居表等功能 ;终端节点只需要有加入或离开网络的能力即可。
9、	Zigbee技术是一种低速数据传输速率的无线个域网,网络的基本成员称为设备。按照各自作用分为:协调器节点、路由器节点和终端节点。
a)	协调器:整个网络的中心 功能为建立、维持和管理网络,分配网络地址。
b)	路由器:路由发现、消息传输、允许其他节点通过它接入到网络 。
c)	终端节点:数据采集或控制,不允许其他节点通过它加入到网络中 。
10、	Zigbee网络分为4层,从下向上分别为物理层、MAC层、网络层和应用层。其中物理层和MAC层由IEEE802.15.4标准定义,合称IEEE802.15.4通信层;网络层和应用层由Zigbee联盟定义。
11、	Zigbee网络协议体系结构:应用层包括三部分:应用支持子层、Zigbee设备对象和厂商定义的应用对象。网络层提供保证IEEE802.15.4 MAC层正确工作的能力,并为应用层提供合适的服务接口,包括数据服务接口和管理服务接口。IEEE802.15.4 通信层(MAC层和物理层)。
12、	数据服务接口的作用:一是为应用支持子层的数据添加适当的协议头以便产生网络协议数据单元;而是根据路由拓扑结构,把网络数据单元发送到通信链路的目的地址设备或通信链路的下一跳地址。
13、	管理服务接口的作用:提供的服务包括配置新设备、常建新网络、设备请求加入或者离开网络;允许Zigbee协调器或路由器请求设备离开网络、寻址、路由发现等功能。
14、	IEEE802.15.4规范满足国际标准组织(ISO)开放系统互联(OSI)参考模式,它定义了Zigbee的物理层和MAC层。
15、	物理层所负责的功能:工作频段的分配、信道的分配、为MAC层提供数据服务和为MAC层提供管理服务。
16、	物理层功能:数据的发送与接收、物理信道的能量检测、射频收发器的激活与关闭、空闲信道评估、链路质量指示、物理层属性参数的获取与设置。
17、	MAC层负责无线信道的使用方式,它们是构建Zigbee协议底层的基础。其功能如下:
CSMA/CA访问信道 ;
PAN的建立和维护;
支持PAN网络的关联和解除关联;
协调器产生网络信标帧普通设备根据信标帧与协调器同步 ;
处理和维护保证GTS;
在两个对等MAC实体间提供可靠链路。
18、	MAC层服务规范,MAC层包括MAC层管理服务(MLME)和数据服务(MCPS)。
19、	MAC管理服务可以提供调用MAC层管理功能的服务接口,同时还负责维护MAC PAN信息库;MAC数据服务可以提供调用MAC公共部分子层(MCPS)提供的的数据服务接口,为网络层数据添加协议头,从而实现MAC层帧数据 。
20、	CSMA/CA机制实际是在发送数据帧之前对信道进行预约,以免造成信道碰撞问题。CSMA/CA提供两种方式来对无线信道共享访问,其工作流程如下:送出数据前,监听信道的使用情况,维持一段时间后,再等待一段随机的时间后信道依然空闲,送出数据 ;送出数据前,先送一段小小的请求传送RTS报文给目标端,等待目标端回应CTS报文后才开始传送 。
21、	MAC子层具体功能:CSMA/CA机制、PAN的建立和维护、关联和解除关联、信标帧。
22、	Zigbee网络层的主要作用:负责网络的建立、允许设备加入或离开网络、路由的发现和维护 。
23、	网络层内部由两部分组成,分别是网络层数据实体(NLDE)和网络层管理实体(NLME)。
24、	网络层数据实体通过访问服务接口NLDE-SAP为上层提供数据服务 ;网络层管理实体通过访问服务接口NLME-SAP为上层提供网络层的管理服务,另外还负责维护网络层信息库。
25、	网络层协议数据单元(NPDU)即网络层帧的结构 ,在Zigbee网络协议中定义了两种类型的帧结构,即网络层数据帧和网络层命令帧。

26、	Zigbee的应用层由应用支持子层(APS)、Zigbee设备对象、Zigbee应用框架(AF)、Zigbee设备模板和制造商定义的应用对象等组成。
27、	Zigbee设备中应用对象驻留的环境称为应用框架(Application Framework,英文简称AF)。在应用框架中,应用程序可以通过APSDE-SAP发送、接收数据,通过“设备对象公共接口”实现应用对象的控制与管理。应用支持子层数据服务接口(APSDE-SAP)提供的数据服务包括数据传输请求、确认、指示等原语 。
28、	每个Zigbee设备都与一个特定的模板有关,这些模板定义了设备的应用环境、设备类型以及用于设备间通信的簇,比如应用环境为智能家居,那么就可以建立一个智能家居的模板。不过Zigbee模板不是随意定义的,它们的定义,由Zigbee联盟负责。Zigbee联盟定义了三种模板分别为Zigbee协议栈模板、ZigbeePRO模板以及特定网络模板,在Zstack协议栈中使用了这三种模板 。
29、	协议模板 Zigbee有三种类型的模板可以按使用限制分为:私有、公开和共用。每个模板都有一个模板标识符,此标识符必须是唯一的 
30、	单个的Zigbee设备可以支持多个模板,提供定义的簇标识符和设备描述符。这些簇标识符和端点标识符通过设备地址和端点地址来实现实现:设备地址:包含有IEEE地址和短地址的无线收发装置 ;端点地址:设备中的不同应用端点号代表。一个设备中最多可以有240个端点 。
31、	功能描述 :Zigbee应用框架的功能可以简单概括为组合事务、接收和拒绝 。
32、	Zigbee设备对象(ZDO)使用应用支持子层(APS)和网络层提供的服务实现Zigbee协调器、路由器和终端设备的功能。ZDO的功能包括:初始化应用支持子层、网络层和其他Zigbee设备层;汇聚来自端点应用的信息,以实现设备和服务发现、网络管理、绑定管理、安全管理、节点管理等功能。
33、	Zigbee网络中的设备类型有三种:协调器、路由器和终端节点,每一种的设备的设备对象行为都不同。

Zigbee硬件设计
1、	原理图设计基本要求:规范、清晰、准确、易读。
2、	在硬件设计过程中根据功能和性能需求制定合适的方案,选取合适的CPU及外围元件
3、	Zigbee硬件分为三部分,即CC2530核心板、协调器底板和路由器底板。
4、	协调器底板集成了LED、LCD、RS232、电源接口、JTAG接口、蜂鸣器、时钟模块、按键以及传感器模块。
5、	路由器底板集成了LED、电源接口、JTAG接口、蜂鸣器、按键以及传感器模块。
6、	简述对CPU进行选型时需要注意的事项。
答:1性价比高;2容易开发;3可扩展性好 。
7、	简述低功耗设计的注意事项。
答:选择低功耗器件;去除不必要的器件;选择合适的电源;综合考虑所以器件的工作电压范围;利用器件本身特性降低功耗。
8、	Zigbee的硬件设计,主要内容包括硬件设计规则及注意事项、Zigbee节点硬件总体设计、Zigbee节点低功耗设计,其中: 硬件设计规则及注意事项主要包括需求分析、元器件选型以及设计的基本原则 ;硬件总体设计分别介绍Zigbee核心板、Zigbee协调器底板和路由器底板;主要讲解在低功耗设计过程中所要考虑的问题以及需要注意的事项。 
9、	原理图设计的一般过程包括以下几个方面:确定需求、确定核心CPU、参考成功案例、对外围器件的选型、设计基本原则。
10、	在PCB设计中,布线是完成产品设计的重要步骤 。
11、	路由器底板的电源有两种供电方式,外接电源供电和电池供电。外接电源供电和协调器底板完全相同,不同的是电池供电,电池采用两节1.5V的五号电池串联得到3.0V电压为路由器底板进行供电。

CC2530基础开发
1、	CC2530外设包括I/O引脚、ADC、DMA、串口等。
2、	CC2530包括3个8位输入/输出(I/O)端口,分别是P0、P1和P2。
3、	CC2530的ADC支持多达14位的模拟数字转换,具有多达12位的有效数字位。它包括一个模拟多路转换器,具有多达8个各自可配置的通道,一个参考电压发生器。
4、	CC2530的8051CPU有四个不同的存储空间,分别为CODE、DATA、XDATA和SFR
5、	CC2530内置一个存储器直接存取(DMA)控制器,可以用来减轻8051CPU内核传送数据操作的负担,从而实现在高校利用电源的条件下的高性能。
6、	CC2530具有USART0和USART1串行通信接口,能够分别运行于异步URAT模式或者同步SPI模式。
7、	定时器1是一个独立的16位定时器,支持典型的定时/计数功能,五个独立的捕获/比较通道。
8、	定时器3和定时器4是两个8位定时器。每个定时器有两个独立的比较通道,每个通道上使用一个I/O引脚。
9、	MAC定时器即定时器2,主要用于802.15.4CSMA/CA算法定时,为IEEE802.15.4MAC层提供一般的计时功能。
10、	睡眠定时器用于设置系统进入和退出低功耗睡眠模式之间的周期。

11、	简述CC2530de增强型8051内核与标准的8051微控制器相比有什么不同。
答:CC2530的“增强型8051内核”与“标准的8051微控制器”相比,除了速度改进之外,使用时要注意以下两点:
内核代码:CC2530的“增强型8051”内核的“目标代码”兼容“标准8051”内核的“目标代码”,即CC2530的8051内核的“目标代码”可以使用“标准8051”的编译器或汇编器进行编译。
微控制器:由于CC2530的“增强型8051”内核使用了不同于“标准8051”的指令时钟,因此“增强型8051”在编译时与“标准8051”代码编译时略有不同,例如“标准8051”的微控制器包含的“外设单元寄存器”的指令代码在CC2530的“增强型8051”不能正确运行。
12、	CC2530芯片特征:
高性能、低功耗的8051微控制器内核。
适应2.4GHz IEEE802.15.4的RF收发器。
极高的接收灵敏度和抗干扰性。
32KB/64KB/128KB/256KB闪存。
8KB SRAM,具备各种供电方式下的数据保持能力。
强大的DMA功能。
只需极少的外接元件,即可形成一个简单应用系统。
只需一个晶振,即可满足网状型网络系统的需要。
低功耗,主动模式RX(CPU空闲);主动模式TX(CPU空闲);供电模式1(4us唤醒);供电模式2(睡眠定时器运行);供电模式3(外部中断);宽电源电压范围(2V-3.6V)。
硬件支持CSMA/CA。
支持数字化的接收信号强度指示器/链路质量指示(RSSI/LQI)。
具有8路输入8位~14位ADC。高级加密标准AES协处理器。
具有看门狗和2个支持多种串行通信协议的USART。
1个通用的16位定时器和2个8位定时器,1个IEEE802.15.4 MAC定时器。
21个通用I/O引脚。
13、	CC2530内部模块大致分为三种类型:CPU和内存相关的模块;外设、时钟和电源管理模块;射频相关模块。
14、	CPU和内存相关的模块:CC2530CPU;存储器以及映射(CC2530的物理存储器、存储空间、映射和存储器仲裁)。
15、	映射就是将CC2530的物理存储器映射到其存储空间上,有两个作用:方便DMA访问存储设备;可在CODE区执行FLASH或SRAM中的代码。
16、	映射的两种形式:
CODE存储器映射(功能:一是将FLASH映射至CODE存储空间;二是执行来自SRAM的代码(将SRAM映射至CODE存储空间));
XDATA存储器映射。
17、	首先要解决存储空间不对称的问题 :CC2530将FLASH存储器分为几个bank,每个bank的大小是32KB。对于CC2530F256设备来说,它有8个bank,分别为bank0~bank7。通过操作寄存器FMAP.MAP[2:0]来控制将哪个编号的bank映射到CODE区域。
18、	XDATA包含了所有物理存储器的映射,包括8KB的SRAM存储器、XREG、SFR、信息页面和FLASH存储器 。
19、	存储器仲裁 :主要功能是解决CPU与DMA访问所有物理存储器(除了CPU内部寄存器)之间的冲突问题。当CPU和DMA之间发生冲突时,“存储器仲裁”停止CPU或DMA的总线 。
20、	存储器仲裁主要有两个寄存器:存储器仲裁控制寄存器MEMCTR和闪存区映射寄存器FMAP,这两个寄存器用于控制存储器子系统的各个方面 。
21、	CC2530软件开发平台使用IAR;IAR对CC2530编程操作提供了良好的C语言支持 ;CC2530编程包括头文件、运行库以及中断编程等。 
22、	CC2530的CPU寄存器与标准的8051的CPU寄存器相同,都包括8组寄存器R0~R7、程序状态字PSW、累加器ACC、B寄存器和堆栈指针SP等 。CC2530的CPU指令与标准的8051的指令集相同 。
23、	CC2530的中断系统是为了让CPU对内部或外部的突发事件及时地作出响应,并执行相应的中断程序。中断由中断源引起,中断源由相应的寄存器来控制。当需要使用中断时,需配置相应的中断寄存器来开启中断,当中断发生时将跳入中断服务函数中执行此中断所需要处理的事件 。
24、	CC2530有18个中断源,每个中断源都可以产生中断请求,中断请求可以通过设置中断使能SFR寄存器的中断使能位IEN0、IEN1或IEN2使能或禁止中断。
25、	中断优先级将决定中断响应的先后顺序,在CC2530中分为六个中断优先组,即IPG0~IPG5,每一组中断优先组中有三个中断源 。中断优先组的优先级设定由寄存器IP0和IP1来设置。CC2530的优先级有4级,即0~3级,其中0级的优先级最低,3级的优先级最高。如果同时收到相同优先级或同一优先级组中的中断请求时,将采用轮流检测顺序来判断中断优先级别的响应 。
26、	中断处理过程 :中断发生时,CC2530硬件自动完成以下处理:
中断申请:中断源向CPU发出中断请求信号(中断申请一般需要在程序初始化中配置相应的中断寄存器开启中断) ;
中断响应:CPU检测中断申请,把主程序中断的地址保存到堆栈,转入中断向量入口地址 ;
中断处理:按照中断向量中设定好的地址,转入相应的中断服务程序 ;
中断返回:中断服务程序执行完毕后,CPU执行中断返回指令,把堆栈中保存的数据从堆栈弹出,返回原来程序 。
27、	在中断函数编写中,当程序进入中断服务程序之后,需要执行以下几个步骤 :将对应的中断关掉(不是必须的,需要根据具体情况来处理);如果需要判断具体的中断源,则根据中断标志位进行判断(例如所有I/O中断共用1个中断向量,需要通过中断标志区分是哪个引脚引起的中断);清中断标志(不是必须的,CC2530中中断发生后由硬件自动清中断标志位);处理中断事件,此过程要尽可能的少耗时;最后如果在第一步中关闭了相应的中断源,需要在退出中断服务程序之前打开对应的中断。
28、	CC2530包括3个8位输入/输出(I/O)端口,分别是P0、P1和P2。其中P0和P1有8个引脚,P2有5个引脚,共21个数字I/O引脚 ,具有以下功能:通用I/O;外设I/O;外部中断源输入口;弱上拉输入或推拉输出 。
29、	在设置I/O口的中断时必须要将其设置为输入状态,通过外部信号的上升或下降沿触发中断。通用I/O的所有的外部中断共用一个中断向量,根据中断标志位来判断是哪个引脚发生中断。
30、	通用I/O中断寄存器有三类:中断使能寄存器、中断状态标志寄存器和中断控制寄存器 
中断使能寄存器IENx(其中x为0,1,2)	。IENx寄存器包括三个八位寄存器:IEN0、IEN1和IEN2。IENx中断主要是配置总中断和P0~2端口的使能 。(IEN1.P0 IE:P0端口中断使能。IEN2.P1 IE:P1端口中断使能。IEN2.P2 IE:P2端口中断使能。)
中断配置,为了使能任一中断,应该采取以下步骤:设置需要发生中断的I/O口为输入方式。
清除中断标志,即将需要设置中断的引脚所对应的寄存器PxIFG状态标志位置0。
设置具体的I/O引脚中断使能,即设置中断的引脚所对应的寄存器PxIEN的中断使能位为1。
设置I/O口的中断触发方式。
设置寄存器IEN1和IEN2中对应引脚的端口的中断使能位为1。
设置IEN0中的EA位为1使能全局中断。
编写中断服务程序。
整个P0口可作为ADC使用,因此可以使用多达8个ADC输入引脚。此时P0引脚必须配置为ADC输入。APCFG寄存器(ADC模拟外设I/O配置寄存器)可以配置P0的某个引脚为一个ADC输入,且相应的位必须设置为1 。
31、	串口:USART0和USART1均有两种模式,分别是异步UART模式或同步SPI模式,并且每种模式下所对应的外设引脚有两种,即外设位置1和外设位置2 。P2SEL.PRI3P1和P2SEL.PRI0P1为端口1指派外设优先顺序,当两者都设置为0时,USART0优先 。
32、	定时器1:PERCFG.T1CFG用于设置定时器1是使用外设位置1还是外设位置2,定时器1的外设信息对应如下 :0:通道0捕获/比较引脚。1:通道1捕获/比较引脚;2:通道2捕获/比较引脚;3:通道3捕获/比较引脚;4:通道4捕获/比较引脚。
33、	定时器 3:PERCFG.T3CFG用于设置定时器3是使用外设位置1还是外设位置2。
(0:通道0比较引脚;1:通道1比较引脚。)
34、	CC2530共有四个振荡器,它们为系统时钟提供时钟源 。(2MHz外部晶振、16MHz内部RC振荡器、32KHz外部晶振和32KHz内部RC振荡器。其中32MHz晶振和16MHz内部RC振荡器是两个高频振荡器;32KHz晶振和32KHz内部RC振荡器是两个低频振荡器 )
35、	CC2530内部有一个内部系统时钟和一个主时钟。
36、	CC2530的供电模式有五种:主动模式、空闲模式、PM1、PM2和PM3。
37、	CC2530的复位源有5个,这5个复位源分别是:强制RESET_N输入引脚为低电平复位,这一复位经常用于复位按键;上电复位,在设备上电期间提供正确的初始化值。
38、	布朗输出复位,只能运行在1.8V数字电压,此复位是通过布朗输出探测器来进行的。布朗输出探测器在电压变化期间检测到的电压低于布朗输出探测器所规定的最低电压电压时,导致复位;看门狗定时复位,当使能看门狗定时器,且定时器溢出时产生复位;时钟丢失复位,此复位条件是通过时钟丢失探测器来进行的。时钟丢失探测器用于检测时钟源,当时钟源损坏时,系统自动使能时钟丢失探测器,导致复位。
39、	CC2530在复位之后初始状态如下 :I/O引脚配置为带上拉的输入;CPU程序计数器在0x0000,并且程序从这个地址开始;所有外设寄存器初始化为各自复位值;看门狗定时器禁用;时钟丢失探测器禁用。
40、	USART0和USART1是串行通信接口,两个USART具有同样的功能,可以分别运行于异步UART模式和同步SPI模式 。
异步UART模式: UART模式提供异步串行接口,在UART模式中,有2种接口选择方式:2线接口和4线接口。(2线接口,即使用RXD、TXD 。4线接口,即使用引脚RXD、TXD、RTS和CTS)
41、	UART模式的操作具有以下特点:8位或者9位负载数据。奇校验、偶校验或者无奇偶校验。配置起始位和停止位。配置LSB(最低有效位)或者MSB(最高有效位)首先传送。独立收发中断。独立收发DMA触发。奇偶校验和帧校验出错状态。
42、	串口初始化:选择工作时钟。选择串口外设备用位置。初始化I/O口。设置波特率。
43、	SPI模式:在SPI模式中,USART通过3线接口或者4线接口与外部系统通信。接口包含引脚MOSI、MISO、SCK和SS_N。当UxCSR.MODE设置为0时,选中SPI模式。SPI模式包含下列特征:3线或者4线SPI接口。主和从模式。可配置的SCK极性和相位。可配置的LSB或MSB传送。
44、	每个USART都有两个中断:RX完成中断和TX完成中断。
45、	DMA:CC2530内置一个存储器直接存取(DMA)控制器。该控制器可以用来减轻8051CPU内核传送数据时的负担,有效降低功耗。CPU做初始化工作后,DMA控制器就可以将数据从相关外设传送到存储器。
46、	CC2530的DMA控制器协调所有的DMA传送,确保DMA请求和CPU访问存储器之间按照优先等级协调合理的进行。
47、	DMA控制器含有若干个可编程的DMA通道,用来实现存储器与存储器之间的数据传送,即DMA控制器通过访问整个XDATA存储空间来进行存储器与外设之间的数据传输。 
48、	使用DMA可以在CPU在休眠状态下使外部设备之间传送数据,从而降低各系统的能耗,因此DMA的操作能够减轻CPU的负担。DMA控制器的主要特点如下: 具有5个独立的DMA通道。具有3个可以配置的DMA通道优先级。具有31个可以配置的传送触发事件。数据传输的源地址和目标地址可独立控制。具有单独传送、数据块传送和重复传送3种数据传送模式。数据传输长度可变。既可以工作在字模式,又可以工作在字节模式。 
49、	DMA有5个通道,即DMA通道0~4。每个DMA通道能够从DMA存储器空间的一个位置传送数据到另一个位置,比如从XDATA的XREG到RAM。 
50、	DMA配置参数:源地址、目标地址、传送地址、可变长度设置、优先级、DMA优先级、触发事件、源地址和目标增量、传送模式、字节传送或字传送、中断屏蔽、模式8设置。
51、	ADC:CC2530的ADC支持多达14位的模拟数字转换,具有多达12位的有效数字位。它包括一个模拟多路转换器,具有多达8个各自可配置的通道,一个参考电压发生器。转换结果通过DMA写入存储器。
52、	ADC特征:可选的抽取率,设置了7~12位的分辨率。8个独立的输入通道,可接收单端或差分信号。参考电压可选为内部单端、外部单端、外部差分或AVDD5。产生中断请求。转换结束时的DMA触发。温度传感器输入。电池测量功能。
53、	ADC的输入是通过端口0来实现的。输入引脚AIN0-AIN7是连接到ADC的。ADC输入有两种配置:单端输入和差分输入 。
54、	ATEST寄存器ADC的转换分为ADC序列转换和ADC单个转换。ADC执行一系列的转换,并把转换结果通过DMA移动到存储器,不需要任何CPU的干预 
55、	定时器:CC2530有4个定时器:定时器1~4,另外还有一个睡眠定时器,和定时器2配合使用,可以使CC2530进入低功耗模式。
56、	定时器1是一个独立的16位定时器,支持典型的定时/计数功能,有5个独立的捕获/比较通道。每个通道使用一个I/O引脚。定时器1的功能 :5个捕获/比较通道。上升沿、下降沿或任何边沿的输入捕获。设置、清除或切换输出比较。自由运行、模计数或正计数/倒计数操作。可被1,8,32或128整除的时钟分频器。在每个捕获/比较和最终计数上生成中断请求。DMA触发功能。
57、	时器2主要用于为IEEE802.15.4 CSAM/CA算法提供定时,并且为IEEE802.15.4 MAC层提供一般的计时功能。当定时器2和睡眠定时器一起使用时,即使系统进入低功耗模式也会提供定时功能,此时时钟速度必须设置为32MHz,并且必须使用一个外部32KHz XOSC获得精确结果。定时器2的主要特征如下 :16位定时器正计数提供的符号/帧周期。可变周期可精确到31.25ns。2*16位定时器比较功能。24位溢出计数。2*24位溢出计数比较功能。
58、	帧开始界定符(英文简称SFD)捕捉功能,即在无线模块的帧开始界定符的状态变高时捕获。定时器启动/停止同步于外部32KHz时钟,并且由睡眠定时器提供定时。比较和溢出产生中断。具有DMA触发功能。通过引入延迟可调整定时器值。
59、	定时器3和定时器4是是两个8位定时器,每个定时器有两个独立的比较通道。每个通道上使用一个I/O引脚。定时器3和定时器4的特征如下 :两个捕获/比较通道。设置、清除或切换输出比较。时钟分频器,可以被1,2,4,8,16,32,64,128整除。在每次捕获/比较和最终计数时间发生时产生中断请求。DMA触发功能。

60、	计数器有三种操作模式:自由运行计数器、模计数器或正计数/倒计数运行。通过两个8位的SFR读取16位的计数器值:T1CNTH和T1CNTL,分别包含高位字节和低位字节 。
61、	睡眠定时器用于设置系统进入和退出低功耗休眠模式之间的周期。睡眠定时器还用于当进入低功耗模式时,维持定时器2的定时。睡眠定时器的主要功能如下:24位的正计数定时器,运行在32KHz的时钟频率。24位的比较器,具有中断和DMA触发功能。24位捕获。 
62、	定时器2包括一个16位定时器,在每个时钟周期递增。计数器值可从寄存器T2M1:T2M0中读,当读T2M0寄存器时,T2M1的内容是锁定的。因此必须总是首先读T2M0。
63、	定时器2中断:六个中断源;定时器溢出。定时器比较1。定时器比较2。溢出计数溢出。溢出计数比较1。溢出计数比较2。
64、	定时器3有4种操作模式:自由运行模式。倒计数模式。模计数器模式。正/倒计数模式。
无线射频与MAC层
1、	RF内核控制无线电模块,在MCU和无线电之间提供一个接口,可以发出命令、读取状态和自动对无线电事件排序。
2、	可以通过SFR寄存器RFD访问TXFIFO和RXFIFO,当写入RFD寄存器时,数据被写入TXFIFO;当读取RFD寄存器时,数据从RXFIFO中读出。
3、	CC2530数据帧的基本结构由三部分构成:同步头、需要传输的数据以及帧尾。
4、	IEEE802.15.4采用CSMA/CA机制来避免数据冲突。
5、	IEEE802.15.4的数字高频调制使用2.4G直接序列扩频技术。
6、	简述RF内核各部分的功能。
答:RF内核控制无线射频模块,并且在MCU和无线电之间提供一个接口,可以发出命令,读取状态和自动对无线电事件排序。RF内核包括以下几部分:无线电控制状态模块(FSM)、调制器,解调器、帧过滤和源匹配、频率合成器(FS)、命令选通处理器,定时器2(MAC定时器) 。
1)	FSM模块的主要功能包括控制RF收发器的状态、发送和接收FIFO,以及大部分动态受控的模拟信号,比如模拟模块的上电/掉电 
2)	调制器:将原始数据转换为I/Q(同相/正交)信号发送到发送器DAC,并且遵守IEEE802.15.4标准 
3)	解调器:负责从收到的信号中检索无线数据。解调器的振幅信息由自动增益控制使用,自动增益控制调整模拟LAN的增益,使接收器内的信号水平大约是个常量。
4)	帧过滤和源匹配:其功能是支持RF内核中的FSM模块来执行帧过滤和源地址匹配。
5)	频率合成器:其功能是为RF信号产生载波。
6)	命令选通处理器:处理CPU所发出的命令。它包含一个24字节的程序存储器,可以自动执行CSMA/CA机制。
7)	无线电RAM:为发送TXFIFO和接收RXFIFO分别分配128字节的FIFO,为帧过滤和源匹配存储参数保留128字节。
8)	定时器2(MAC定时器):用于为无线电事件计时,以捕获输入数据包的时间戳,这一定时器在睡眠模式下也保持计数。
7、	直接操作寄存器实现数据的发送和接受的弊端。
答:1)不能指定接收者,即一个接收设备可以接收任何一个发送者发来的数据。
2)当发送者比较多时会出现信道碰撞问题。
3)不能建立个域网。
8、	CC2530无线射频的工作涉及到CPU两个中断向量:RFERR中断和RF中断。
RFERR中断其功能是表示无线射频的错误情况,无线射频内核错误表现为RF TX RFIO下溢或RX FIFO溢出,通过控制SFR寄存器的IEN0.RFERRIE位使能。并且在TCON.RFERRIF保存了RFERR中断标志位(即是否发生中断);
RF中断其功能是数据发送和接收中断。RF中断是上升沿触发的,通过控制SFR寄存器的IEN2.RFIE位使能,并且在S1CON.RFIF保存了RFIF中断标志位。
RF内核的两个中断源(RFERR和RF),是RF内核中若干中断源的组合,其中每个单独的中断源在RF内核中有自己的中断屏蔽寄存器(RF中断屏蔽寄存器RFIRQM0、RF中断屏蔽寄存器RFIRQM1、RF错误中断屏蔽寄存器RFERRM )和中断标志寄存器(RFIRQF0、RFIRQF1、错误中断标志寄存器RFIERRF)。

9、	FIFO访问:CC2530发送或接收数据是通过FIFO操作来进行的。FIFO访问可以分为TXFIFO访问和RXFIFO访问,其操作都是通过SFR寄存器的RFD操作进行。当写入RFD寄存器时,数据被写入到TXFIFO,当读取数据RFD寄存器时,数据从RXFIFO中读出。
10、	RXFIFO访问:RXFIFO存储器区域位于地址0x6000到0x607F,一共128字节,在XREG存储区域中是可以访问的。RXFIFO可以保存一个或多个收到的帧,只要总字节数不大于128字节。有两种方式确定RXFIFO中的字节数:读RFD寄存器 、读RXFIFOCNT寄存器 。
11、	TXFIFO访问:TXFIFO存储区域位于地址0x6080~0x60FF,一共128个字节。
12、	CC2530射频的发送过程:发送器的控制、帧的处理。
13、	TX控制:在帧处理和报告状态下,无线电有许多内置的功能,这些功能可精确控制输出帧的时序。在设置TX和RX的过程中可以通过寄存器来设置,且必须在TX和RX中同时设置 。
14、	CC2530数据帧的基本结构如下:同步头、需要传输的数据、帧尾。
需要传输的数据:
1)LEN(帧长度域):帧长度域用于确定要发送多少个字节。
2)MAC帧:MAC帧包括MHR(MAC帧头)和MAC负载两部分,是来自与MAC层的数据。
3)当发送了SFD,调制器开始从TXFIFO读数据,首先读帧长度域,然后是MHR(MAC帧头)和MAC负载。 
数据帧的产生:
1)CC2530射频部分产生并自动传输物理层的同步头,包括帧引导序列和帧开始界定符(SFD)。
2)通过射频部分传输帧长度域和指定的字节数,包括MAC帧头和MAC负载。
3)通过操作寄存器计算并自动传输帧尾(FSC)。
15、	RX控制:一般接收数据是通过接收中断来处理的,在发送数据完成之后,首先要打开接收中断,接收中断是通过寄存器RFIRQM0的第6位RXPKTDONE和IEN2寄存器的第0位来控制的 。
16、	当CC2530的射频模块接收到一个数据帧时执行以下操作 :
1)移除同步头:由CC2530射频硬件部分检测和移除收到的PHY同步头(帧引导序列和SFD)。
2)接收数据帧:通过操作寄存器接收帧长度域规定的字节数,(包括MHR和MAC负载)。
3)帧过滤:通过操作寄存器可以实现帧过滤功能,拒绝接收目标不明确的数据帧。
4)匹配源地址:包括多达24个短地址的表,或12个扩展IEEE地址。源地址存储在无线电RAM中。
5)自动FCS检查:通过操作寄存器可以选择把自动检查的结果和其它状态值(RSSI、LQI和源匹配结果)填入接收到的帧中。
6)具有正确时序的自动确认传输:可以通过操作寄存器且正确设置帧未决位,基于源地址匹配和FCS校验的结果 。
17、	CSMA/CA选通处理器提供控制CPU和无线射频模块之间的通信。CSMA/CA选通处理器通过SFR寄存器RFST以及XREG寄存器和CPU通信。本书中采用RFST寄存器和CPU进行通信。
18、	IEEE802.15.4的数字高频调制使用2.4G直接序列扩频技术。 直接序列扩频(Direct Sequence Spread Spectrum)工作方式,简称直扩方式(DSSS方式)。
DSSS是直接用伪噪声序列对载波进行调制,要传送的数据信息需要经过信道编码后,进行调制。在接收机收到发射信号后,首先通过解调以便能够及时恢复出数据信息,完成整个直扩通信系统的信号接收。
19、	采用直接序列扩频系统的优点如下:
1)抗干扰能力强,且具有强的抗多径干扰能力。
2)对其他电台干扰小,抗截获能力强。
3)可以同频工作。
4)便于实现多址通信。
20、	IEEE802.15.4数据格式:IEEE802.15.4定义了MAC层以及物理层的通信数据格式。其中,物理层的数据格式是在MAC协议数据单元格式前加上同步头以及物理头两部分。
同步头包括帧引导序列和帧开始界定符。
物理头即帧长度域。
21、	物理层服务数据单元(PSDU)即MAC协议数据单元(MPDU),包括以下几部分:MAC头、MAC载荷以及帧尾。
22、	IEEE802.15.4射频程序主要分为发送和接收两部分。


Zstack协议栈
1、	Zstack协议栈代码文件夹包括HAL、MAC、NWK、OSAL、ZDO和APP以及配置文件等。
2、	HAL层是硬件驱动层,提供定时器、I/O口、UART以及ADC等API接口。
3、	Zstack的NWK层负责的功能有:节点地址类型的分配、协议栈模板、网络拓扑结构、网络地址的分配的选择等。
4、	Tools文件为工程设置文件目录,比如信道、PANID、设备类型的设置。
5、	Profile对应Zigbee软件架构中的应用程序框架AF层。
6、	ZDO(The Zigbee Device Objects,即Zigbee设备对象)层提供了Zigbee设备管理功能,包括:网络建立,发现网络、加入网络、应用端点的绑定和安全管理服务。
7、	Zstack协议栈依靠协议栈内部的OS(即OSAL)才能运行起来,OSAL提供以下服务和管理:信息管理、任务同步、时间管理、中断管理、任务管理、内存管理、电源管理以及非易失存储管理。
8、	APP层为Zstack协议栈的应用层,是面向用户开发的。在这一层用户可以根据自己的需求建立所需要的项目,添加用户任务,并通过调用API函数实现项目所需要的功能。
9、	简述端点的主要作用。
答:端点的主要作用可以总结为以下两个方面:数据的发送和接收:当一个设备发送数据时,必须指定发送目的节点的长地址或短地址以及端点来进行数据的发送和接收,并且发送方和接收方所使用的端点号必须一致。
绑定:如果设备之间需要绑定,那么在Zigbee的网络层必须注册一个或者多个端点来进行数据的发送和接收以及绑定表的建立。
10、	在Zigbee协议中每个设备都被看作一个节点,每个节点都有物理地址(长地址)和网络地址(短地址),长地址或短地址用来作为其他节点发送数据的目的地址。另外每一个节点都有241个端点,其中端点0预留,端点1-240被应用层分配,每个端点是可寻址的。
11、	Zstack协议栈符合Zigbee协议结构,由物理层、MAC层、网络层和应用层组成。
物理层和MAC层由IEEE802.15.4定义,网络层和应用层由Zigbee联盟来定义。
12、	Zigbee联盟将应用层又详细划分为应用支持子层、应用设备框架以及Zigbee设备对象等。
13、	Zigbee协议栈结构,包括物理层、MAC层、NWK(网络层)、APL(应用层)、应用支持子层APS、应用程序框架AF、设备对象ZDO层。
a)	物理层内容:物理层定义了物理无线信道和MAC子层之间的接口,提供物理层数据服务单元(PD-SAP)和物理层管理服务(MLME-SAP)。
b)	MAC(介质接入控制子层):MAC层负责处理所有物理无线信道的访问,并产生网络信号、同步信号;支持PAN连接和分离,提供两个对等的MAC实体之间可靠链路。
c)	NWK(网络层):网络层是Zigbee协议栈的核心部分,网络层主要实现节点加入或者离开网络、接收或抛弃其它节点、路由查找及维护等功能。
d)	APL(应用层):Zigbee应用层包括应用支持子层APS、应用程序框架AF、Zigbee设备对象ZDO等。
e)	应用支持子层APS:APS层在NWK层和APL层之间,提供APSDE-SAP和APSME-SAP两个接口,两个接口的主要功能如下:
f)	APSDE-SAP提供在同一个网络中的两个或者更多的应用实体之间(即端点)的数据通信。
g)	APSME-SAP提供多种服务给应用对象ZDO,这些服务包括安全服务和绑定设备服务,并维护管理对象的数据库(即AIB)。
h)	应用程序框架AF:运行在Zigbee协议栈上的应用程序实际是厂商自定义的应用对象,并且遵循规范(Profile)运行在端点1~240上。
i)	设备对象层ZDO:远程设备通过ZDO请求描述信息,接收到这些请求时,ZDO会调用配置对象获取相应的描述符值。ZDO通过APSME-SAP接口提供绑定服务。 
14、	Zstack协议栈部分层的功能:
APP:为应用层目录,用户可以根据需求添加自己的任务。这个目录中包含了应用层和这个项目的主要内容,在协议栈里面一般是以操作任务实现的。
HAL:硬件驱动层,包括硬件相关的配置、驱动以及操作函数。
OSAL:协议栈的操作系统。
Profile:AF层目录,包含AF层处理函数。
Security&Services:安全服务层目录,安全层和服务层处理函数,比如加密。
Tools:工程配置目录,包括空间划分及ZStack相关配置信息。
ZDO:ZDO设备对象目录。
ZMac:MAC层目录,包括MAC层参数及MAC层的LIB库函数回调处理函数。
Zmain:主函数目录,包括入口函数及硬件配置文件。
Output:输出文件目录,由IAR自动生成。

Zstack协议栈是一个半开源的协议栈,其中MAC层和ZMAC层的源码没有全部开源。
15、	Zigbee的HAL层提供了开发板所有硬件设备(例如LED、LCD、KEY、UART等)的驱动函数及接口。HAL文件夹为硬件平台的抽象层,包含common(目录下包含有hal_assert.c和hal_dirvers.c两个文件。其中hal_assert.c是声明文件,用于调试。hal_dirvers.c是驱动文件 )、include(各个硬件模块的头文件,主要内容是与硬件相关的常量定义以及函数声明)和target(Config、Drivers、Includes)三个文件夹 
16、	hal_drivers.c :hal_drivers.c文件中包含了与硬件相关初始化和事件处理函数。此文件中有4个比较重要的函数:硬件初始化函数、硬件驱动初始化函数、硬件事件处理函数、询检函数。
17、	节点地址类型的选择:Zstack中地址类型有两种:64位IEEE地址和16位网络地址(Zstack中也称短地址或网络短地址)。
1)64位IEEE地址:即MAC地址(也称“长地址”或“扩展地址”),是一个全球唯一的地址,一经分配将跟随设备一生。通常由制造商在设备出厂或被安装时设置。这些地址由IEEE组织来维护和分配。
2)16位网络地址:是设备加入网络后,由网络中的协调器分配给设备的地址(也称“短地址”),它在网络中是唯一的,用来在网络中鉴别设备和发送数据。对于协调器,网络地址固定为0x0000。 
18、	stack协议栈模板由Zigbee联盟定义,在同一个网络中的设备必须符合同一个协议栈模板。Zstack协议栈使用了Zigbee联盟定义的三种模板:Zigbee协议栈模板、ZigbeePRO协议栈模板、特定网络模板。
19、	网络类型参数和网络深度的设置 :
a)	在Zstack协议栈中星型网络、树型网络和网状型网络三种网络类型的定义在nwk_globals.h文件中 。
20、	网络深度即路由级别,协调器位于深度0,协调器的一级子节点位于深度1,协调器二级子节点位于深度2......以此类推,在Zstack协议栈中定义MAX_NODE_DEPTH为网络最大深度。
21、	网络中每一级可以容纳的结点个数,即在Zstack协议栈中规定的每一极路由可以挂载的路由器或终端节点的个数。
22、	每一级可以容纳的节点个数的配置:一个路由器或者一个协调器可以连接的子节点的最大个数;一个路由器或者一个协调器可以连接的具有路由功能的节点的最大个数。 
23、	Profile对应Zigbee软件架构中的应用程序框架AF层。Profile文件夹下面包含两个文件:AF.c和AF.h。(AF层提供应用支持子层APS到应用层的接口,AF层主要提供两种功能:端点的管理和数据的发送和接收。)
端点的管理:端点描述符、简单描述符、端点的注册。
24、	addrMode被定义为枚举类型afAddrMode_t,afAddrMode_t成员定义了发送信息的四种地址模式,afAddrMode_t在AF.h中定义typedef enum
{//间接寻址afAddrNotPresent = AddrNotPresent,
//单点寻址,指定短地址afAddr16Bit      = Addr16Bit,
//单点寻址,指定长地址afAddr64Bit      = Addr64Bit,
//组寻址 afAddrGroup      = AddrGroup,
//广播寻址afAddrBroadcast  = AddrBroadcast
} afAddrMode_t;

25、	ZDP(Zigbee Device Profile,即Zigbee设备规范)描述了ZDO内部一般性的Zigbee设备功能是如何实现的。其定义了相关的命令和相应的函数。ZDP为ZDO和应用程序提供如下功能:设备网络启动;设备和服务发现;终端设备绑定、绑定和取消绑定服务;网络管理服务。 

26、	绑定的API函数在ZDO层定义,绑定服务包括终端设备绑定、绑定和取消绑定。
27、	Zstack协议栈依靠协议栈内部的OS(即OSAL)才能运行起来,OSAL提供以下服务和管理:信息管理、任务同步、时间管理、中断管理、任务管理、内存管理、电源管理以及非易失存储管理。
28、	中断管理API可以使一个任务与外部中断相互交流。API中的函数允许和每个中断去联络一个具体的服务流程。中断可以启用或禁用。在服务例程内部,可以为其它任务设置事件 
29、	Zigbee的应用层是面向用户的,Zstack是一个半开源的Zigbee协议栈,但是它提供了各层的API函数供用户在应用层调用,从而实现用户所需要的功能。APP层为Zstack协议栈的应用层,是面向用户开发的。在这一层用户可以根据自己的需求建立所需要的项目,添加用户任务,并通过调用API函数实现项目所需要的功能。
30、	SampleApp.c文件做了两件事情:一是对用户的任务进行初始化。二是调用事件处理函数使协调器控制路由器和终端设备进行LED闪烁。 
31、	事件的处理 ,SampleApp_ProcessEvent( )函数是对应用户任务的事件处理函数。当应用层接收到消息时,先判断消息类型,分为两类:一是系统消息事件;二是用户自定义事件。 其中系统消息事件分为以下几种:按键事件、接收消息事件、消息接收确认事件、网络状态改变事件、绑定确认事件、匹配响应事件。
32、	OSAL是Zsatck协议栈的操作系统,主要作用是实现任务的注册、初始化以及任务的开始;任务间的消息交换;任务同步和中断处理。 
33、	Zsatck协议栈包含了Zigbee协议所规定的基本功能,这些功能大部分是通过函数的形式(即模块化)实现的。为了便于管理这些函数集,Zstack协议栈中加入了实时操作系统,称为OSAL(操作系统抽象层)。OSAL主要提供以下功能:任务注册、初始化和启动;任务间的同步、互斥;中断处理;存储器分配和管理。

Zstack系统移植
1、	Zstack应用开发中需要建立自己的工程模板,在新建的工程模板中根据项目的需求建立自己的任务和任务处理函数。并且需要用户根据自己的开发板资源修改官方Zstack协议栈。
2、	建立一个新的工程需要以下三个步骤:工程的建立以及命名;添加文件;编译选项的设置。
3、	修改App目录需要以下几个步骤:建立新的源文件、子目录的建立和子目录文件的建立。
4、	LED、按键、LCD的移植等在Zstack中的HAL层目录中。
5、	用户任务的添加需要以下几个步骤:函数的声明:在OSAL_DongheCooder.h和OSAL_DongheRouter.h文件中声明用户自定义的任务初始化函数和与其相对应的事件处理函数。
6、	任务的添加:在OSAL_DongheAppCooder.c和OSAL_DongheAppRouter.c文件中添加任务初始化函数和与其相对应的事件处理函数。
7、	任务初始化及事件的处理:在DongheAppCooder.c和DongheAppRouter.c文件中对用户任务进行初始化,并且对与用户任务相对应的事件进行处理,即完善事件处理函数。
8、	LED移植需要几个步骤:LED基本配置,即配置LED的I/O口。
9、	LED状态配置,即配置LED的打开、关闭或状态改变。
10、	I/O的初始化,对LED的I/O口进行初始化。 
11、	进行按键的移植。需要以下三个步骤: 用户按键的定义,即定义按键名称;按键模式配置,即配置与按键相关的寄存器; 按键相关的函数的修改。
Zstack应用开发
1、	Zigbee程序开发和其他的嵌入式开发设计基本上是相同的,都需要以下几个步骤:需求分析;体系结构设计;应用程序的编写;程序的调试和测试。
2、	在智能家居数据采集系统中,协调器的主要功能包括网络的建立、数据的接收和发送、按键控制和串口控制。
3、	路由器的主要功能是网络加入、数据的发送和接收、中继路由传输其他节点的数据,数据采集。
4、	Zigbee程序体系结构设计包括应用环境的分析、协调器功能设计、路由器功能设计和终端设备功能设计。
5、	程序的编写部分按照功能设计的不同分为协调器部分程序编写、路由器部分程序编写和终端设备程序编写。
6、	协调器和路由器,根据应用的需求,协调器与路由器的通信分为两种情况:一是路由器每经过一段时间后,主动向协调器发送数据,然后协调器将数据发送至PC机;二是协调器通过串口接收到PC机的指令后向路由器索要数据。 
7、	按键命令的响应是通过系统消息事件中的按键事件来触发的。其中系统消息事件包括网络状态改变事件、接收数据消息事件、按键事件、绑定事件等。按键事件的实现是通过以下几个步骤:当有按键按下时,将会触发按键事件;按键事件将会调用按键处理函数;在按键处理函数中实现用户自定义的定时事件;当定时事件会调用数据采集发送函数,将采集的数据发送至协调器。

 

你可能感兴趣的:(zigbee)