性能特点 ・全集成 700/800/900MHz 频段收发器 -中国 WPAN 频段 779 至 787MHz -欧洲 SRD 频段 863 至 870MHz -北美 ISM 频段 902 至 928MHz ・配有多个不同调制制式与数据传输速率的直接时序扩展频谱 -数据传输速率为 20kbit/s 与 40kbit/s 的 BPSK 调制制式(符合 IEEE802.15.4-2006 标准) - 数 据 传 输 速 率 为 100kbit/s 与 250kbit/s 的 O-QPSK 调 制 制 式 ( 符 合 IEEE802.15.4-2006 标准) -数据传输速率为 250kbit/s 的 O-QPSK 调制制式(符合 IEEE P802.15.4c 标准) -PSDU 数据传输速率为 200kbit/s、400kbit/s、500kbit/s 及 1000kbit/s 的 O-QPSK AT86RF212 调制制式 ・多频谱与数据传输速率的灵活组合 适用于 IEEE802.15.4 与 ・业界领先的链路预算 P802.15.4c 标准草拟修订本标 -接受灵敏度可达-110dBm 准,采用 Zigbee,6LoWPAN 及 -可编程发送输出频率可达+10dBm ISM 技术频段应用的 ・低电源电压:1.8V 至 3.6V 700/800/900MHz 频段低功耗 -内置电压调节器及电池监视器 ・低电流消耗 收发器 -睡眠(SLEEP)=0.2µA -收发器关闭(TRX_OFF)=0.4mA -接收状态(RX_ON)=9.0mA -占用状态(BUSY_TX)=18mA (于发送功率=5dBm 时) 初级 ・数字接口 -寄存器、帧缓冲及通过 SPI(状态包检测)实现 AES(高级加密标准) -可设置速率的时钟输出 ・无线电收发器性能特点 -可调节接受灵敏度 -内置发送/接收开关,LNA 及 PLL 环路滤波器 -快速建立 PLL 支持频率 -自动压控振荡器(VCO)及滤波器校准 -内置 16MHz 晶体振荡器 -128 字节发送/接收“先入先出”(FIFO)功能 ・IEEE802.15.4-2006 标准硬件支持 -帧校验时序(FCS)的计算与检查 -空信道检测 -接收信号强度指示器,能量检测及链路质量指示 ・MAC 协议硬件加速器 -自动确认及重传 -CSMA-CA 及 LBT 协议 -自动帧滤波 ・AES(高级加密标准)128 位硬件加速器(ECB 与 CBC 模式) ・扩展功能包硬件支持功能 -安全应用的真随机数生成 -发送/接收指示(外置 RF 前端控制) 8168B-MCU Wireless-03/09 -基于 MAC 协议的天线分集 ・优化设计旨在降低材料成本并简化生产过程 -低外置部件成本:天线,参照晶体及旁路电容 -卓越的抗静电放电(ESD)保护性能 ・作业温度范围为-40ºC 至+85ºC ・32 针塑料方形扁平无引线(QFN)封装,尺寸为 5.0x5.0x0.9mm³ ・符合 IEEE802.15.4-2003、IEEE802.15.4-2006 及 IEEE P802.15.4c/D6, ETSI EN 300 220-1 及 FCC 47 CFR 第 15.247 节的标准要求 免责声明 本数据手册中所含值乃基于以类似处理技术制造的其他收发器的模拟与特性表征。待设备特性设 置确定之后将提供最终值。 1. 概览 AT86RF212 是一款专为低成本的 IEEE802.15.4 标准 ZigBee™技术、6LoWPAN 技术与高数据传输 速率的 ISM 应用而设计的低功耗、低电压 700/800/900MHz 频段收发器。为了支持 sub-1 GHz 频 段,设备可支持 IEEE 802.15.4-2003 标准[2]低数据传输速率(20 和 40kbit/s)并通过 O-QPSK 调 制制式分别支持符合 IEEE 802.15.4-2006[1]和 IEEE P802.15.4c 草拟修订本[3]标准的选用数据传输 速率(100 和 250kbit/s) 。此外,还可实现特有的高达 1000 kbit/s 的高数据传输速率模式。 AT86RF212 是真正的 SPI 到天线的解决方案。除了天线,晶体振荡器和去耦电容外,所有的 RF 主要 元件都集成在单一芯片内。MAC 及 AES 硬件加速改善整个系统的功耗利用率和时效性。 1.1 基本电路说明 单片无线电收发器 AT86RF212 提供了在天线和微控制器接口之间的完整无线电接口。它包括了模 拟无线电器件和数字调制器与解调器,包括时间和频率同步以及数据缓冲器。将外置器件的数量尽 可能地减少,只须将天线、一个滤波器(用于高输出功率电平)、晶体和四个旁路电容外置。而 双向差分天线引脚通常用于发送和接收,因此无需外部天线开关。通过两个数字控制信号(差分 操作)实现对外置功率放大器的控制。收发器结构图如图 1-1 所示。 2 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 发送功率 TX Power XTAL2 XTAL1 图 1-1 AT86RF212 结构图 Voltage 电压调节器 Regulator XOSC 混 合 Mixer 器 PA RFP RFN LPF Frequency FTN,FTN, 电池监 测器 频率合成 Synthesis LNA PPF 混 合 器 Mixer DAC BATMON BPF ADC AGC 模拟域 Analog Domain 配置寄存器 Configuration Registers TX BBP SPI (Slave) (从器件) 收发器缓存器 TRX Buffer RX BBP 逻辑控制单元 Control Logic /SEL MISO MOSI SCLK AES IRQ CLKM DIG1 DIG2 /RST SLP_TR DIG3/4 Digital Domain 数字域 接收器通路以低中频结构为基础。在经过信道化滤波与下变频处理之后,对低中频信号取样并经 数字信号处理器件处理。发送器与接收器之间的通信基于配有多个不同调制制式及扩展编码的直 接时序扩展频谱。AT86RF212 支持 IEEE802.15.4-2006 标准的强制性 BPSK 调制制式及可选用的 868.3MHz 及 915MHz 频段 O-QPSK 调制制式。此外,它还支持在 IEEE P802.15.4c 标准下对 780MHz 中国频段规定的 O-QPSK 调制制式。 一个 128 字节收发器缓存器负责存储接收或发射的数据。 AT86RF212 无线电收发器具有硬件支持的 128 位安全操作特色功能。可在平行于所有 PHY 操作 模式的情况下,访问完全独立的 AES 加解密引擎。AT86RF212 的配置,数据存储器读取与写入 及 AES 硬件引擎均由 SPI 接口及附加控制信号控制。 单芯片低压差电压调节器可为模拟域与数字域提供 1.8V 电源。当调节器关闭时,控制寄存器将 保持其在睡眠模式下的设置。发送与接收信号处理通路均经过高度集成与优化,以实现低功耗的 目的。 8168B-MCU Wireless-03/09 3 2. 引脚配置 2.1 引脚排列原理图 XTAL2 XTAL1 AVSS EVDD AVDD AVSS AVSS AVSS 图 2-1 AT86RF212 引脚排列原理图 IRQ DIG4 2 23 /SEL AVSS 3 22 MOSI RFP 4 21 DVSS RFN 5 20 MISO AVSS 6 19 SCLK DVSS 7 18 DVSS /RST 8 17 9 10 11 12 13 14 15 16 CLKM AVSS DEVDD DVDD DVDD DVSS SLP_TR DIG2 DIG1 AT86RF212 DVSS DIG3 32 31 30 29 28 27 26 25 1 24 exposed paddle 附注:裸露焊盘电路与封装内垫板连接。应将其焊接至电路板上以保证电接触与热接触正常和良 好的机械稳定性。 2.2 引脚说明 表 2-1 引脚说明 引脚 4 1 名称 DIG3 类型 数字输出 2 DIG4 数字输出 3 4 5 6 7 8 9 AVSS RFP RFN AVSS DVSS /RST DIG1 接地端 RF I/O RF I/O 接地端 接地端 数字输入 数字输出 AT86RF212 说明 接收/发送指示,参见 9.4 小节; 如不可用,则内拉至 AVSS 接收/发送(DIG3 转换)指示,参见 9.4 小节; 如不可用,内拉至 AVSS RF 信号接地端 差分 RF 信号 差分 RF 信号 RF 信号接地端 数字接地端 芯片低可用复位 天线分集 RF 开关控制,参看 9.3 小节; 如不可用,则内拉至 DVSS 8168B-MCU Wireless-03/09 AT86RF212 引脚 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 名称 DIG2 类型 数字输出 SLP_TR DVSS DVDD DVDD DEVDD DVSS CLKM DVSS SCLK MISO DVSS MOSI /SEL IRQ 数字输入 接地端 模拟 模拟 电源 接地端 数字输出 接地端 数字输入 数字输出 接地端 数字输入 数字输入 数字输出 25 XTAL2 模拟 26 XTAL1 模拟 27 AVSS 接地端 28 EVDD 电源 29 AVDD 模拟 30 AVSS 接地端 31 AVSS 接地端 32 AVSS 接地端 AVSS 焊盘 接地端 2.2.1 模拟引脚与 RF 引脚 2.2.1.1 电源引脚与接地引脚 说明 1.天线分集 RF 开关控制(DIG1 转换),参看 9.3 小节 2.发送器帧时间戳信号 IRQ_2(发送器_启动),参看 9.5 小节。 如不可用,则内拉至 DVSS 控制睡眠,发送启动,接收状态;高有效,参看 4.6 小节 数字接地端 1.8V 内置稳压电源;数字域,参看 7.5 小节 1.8V 内置稳压电源;数字域,参看 7.5 小节 外置电源电压;数字域 数字接地端 主时钟信号输出;如不可用则下拉,参看 7.7 小节 数字接地端 SPI 时钟 SPI 数据输出(主输入从输出) 数字接地端 SPI 数据输出(主输出从输入) SPI 选择,低可用 1. 中断请求信号;高可用或低可用,参看 4.7 小节 2. 缓存电平模式指示器;高可用 晶体引脚,参看 2.2.1.3 和 7.7 小节 晶体引脚或外置时钟电源,参看 2.2.1.3 和 7.7 小节 模拟接地端 外置电源,模拟域 1.8V 内置稳压电源;模拟域,参看 7.5 小节 模拟接地端 模拟接地端 模拟接地端 模拟接地端;QFN 封装裸露焊盘 EVDD,DEVDD EVDD 与 DEVDD 为 AT86RF212 无线电收发器的模拟与数字电源电压引脚。 AVDD,DVDD AVDD 与 DVDD 为内置电压调节器,为保证稳定操作须使用旁路电容。电压调节器由无线电收发器状 态机独立控制,其可用性取决于当前的无线电收发器状态。可为外部电源配置电压调节器。详情参看 7.5 小节。 AVSS,DVSS AVSS 和 DVSS 分别为模拟与数字接地引脚。 8168B-MCU Wireless-03/09 5 2.2.1.2RF 引脚 RFN,RFP 差分 RF 端口(RFP/RFN)提供同相抑制以便抑制内置数字信号处理模块的开关噪声。差分 RF 布线通过减少由微控制器等其他数字集成电路发出的散杂发射保证电路板电平的高度接收器灵 敏度。 RF 端口设计用于 100Ω差分负荷。允许 RF 引脚间的直流通路。不允许将直流通路截至接地端或 电源电压。因此,当连接 RF 负荷时,若将直流通路截至电源或接地端,则需要交流耦合(如表 2-2 所示)。 图 2-2 中显示了 RF 前端的简要原理图。 图 2-2 PCB RF 前端简要原理图 AT86RF212 LNA RX PA TX RFP RFN MC 0.9V M0 RXTX CM Feedback 集成反馈 RF 接口直流电压值取决于操作状态,请参考第 5 章。在收发器关闭状态下,当模拟前端不可用 时(参看 5.1.2.3 小节),RF 引脚被拉至接地端,以避免发生内部电路不允许的浮动电压超过 1.8V 的情况。 在发送模式中,控制环路提供同相 0.9V 电压。晶体管 M0 关闭,可将 PA 设置为同相电压。每个 引脚的接地同相电容将<100pF,以保证同相反馈环路的稳定性。 在接收模式中,当晶体管 M0(参看图 2-2)将电感中心抽头引至接地端,RF 接口为接地端提供低阻 抗通路。可在 RF 引脚测量片上电感间 20mV 的直流电压降。 通过各个 RF 引脚(如图 2-2 所示)上的接地可调节电容执行匹配控制(MC)。可通过设置 4 位 控制字(寄存器 0x19,RF_CTRL_1)以 15 个步骤更改输入电容。 6 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 2.2.1 .3 晶体振荡器引脚 XTAL1,XTAL2 XTAL1 引脚是参考振荡器放大器(XOSC)输入,XTAL2 为输出。关于晶体振荡器装置及有关 XTAL1/XTAL2 引脚配置的详细介绍详见 7.7 小节. 当使用外置时钟参看信号,XTAL1 将用作输入引脚. 更多详情参看 7.7.3 小节。 2.2.1.4 模拟引脚概览 表 2-2 模拟引脚性能-直流电压值 引脚 电压值与条件 RFP/RFN XTAL1/XTAL2 DVDD AVDD 附注 VDC=0.9V(BUSY_TX) VDC=20mV(接收状态) VDC=0mV(其他) VDC=0.9V 于两个针脚 CPAR=3pF VAC ≤1.0Vpp VDC=1.8V(所有状态,P_ON、睡眠 和复位除外) VDC=0mV(其他) VDC=1.8V(所有状态,P_ON、睡眠、 复位和 TRX_OFF 除外) VDC=0mV(其他) 各接收器状态的 RFP/RFN 引脚直流电平 若使用带有直流通路接地的天线,则需交流耦合。串联 电容与各引脚接地电容必须<100pF。 各接收器状态的 XTAL1/XTAL2 引脚直流电平 引脚寄生电容(Cpar)须被视为晶体的附加符合电容。 各接收器状态的 DVDD 引脚直流电平 1.8V 电压数字域电源引脚(电压调节器输出)。输出由 1µF 旁路转流。 各接收器状态的 AVDD 引脚直流电平 1.8V 电压模拟域电源引脚(电压调节器输出)。输出由 1µF 旁路转流。 2.2.2 数字引脚 AT86RF212 提供数字微处理接口,包括一个 SPI 从器件(/SEL、SCLK、MOSI 和 MISO)和附加 控制信号(CLKM、IRQ、SLP_TR、/RST 和 DIG2)。微处理接口于第 4 章详细介绍。 附加数字输出信号 DIG1......DIG4 用于控制外部模块,即用于天线分集 RF 开关控制或接收/发送 指示器,分别参看 9.3 和 9.4 小节。复位之后,针脚连接至数字接地端(DIG1/DIG2)或数字接地 端(DIG3/DIG4)。 2.2.2.1 驱动强度设置 可使用寄存器 0x03(TRX_CTRL_0)设置所有数字输出引脚(MISO、IRQ、DIG1、……、DIG4) 和 CLKM 引脚的驱动强度,参看表 2-3。 表 2-3 数字输出驱动配置 引脚 MISO、IRQ、DIG1、……、DIG4 CLKM 默认驱动强度 2mA 4mA 附注 可调节至 2mA, 4mA,6mA 和 8mA 可调节至 2mA, 4mA,6mA 和 8mA 当使用 2mA 的最低驱动强度配置时,电容负荷应尽可能降低,且不大于 50pF。通常输出驱动强 度应调节至可能的最低值,以便保持低电流消耗和低数字信号谐波发射。 8168B-MCU Wireless-03/09 7 2.2.2.2 上拉与下拉配置 拉动电阻内部连接至所有无线电接收器中 P_ON 状态下的数字输入引脚,参看 5.1.2.1.表 2-4 综述 了上拉与下拉配置。 表 2-4 P_ON 状态下的数字输入引脚上拉/下拉配置 引脚 H /RST /SEL SCLK MOSI SLP_TR 上拉,L H H L L L 下拉 在包括复位在内的所有其他状态下,均不在数字输入引脚连接上拉或下拉电阻. 2.2.2.3 寄存器说明 寄存器 0x03(TRX_CTRL_0) TRX_CTRL_0 寄存器控制数字输出焊盘的驱动电流和 CLKM 时钟速率。 表 2-5 位数 寄存器 0x03(TRX_CTRL_0) 7 6 5 4 名称 PAD_IO PAD_IO PAD_IO_CLKM PAD_IO_CLKM 读取/写入 R/W R/W R/W R/W 复位值 0 0 0 1 位数 3 2 1 0 名称 CLKM_SHA_SEL CLKM_CTRL CLKM_CTRL CLKM_CTRL 读取/写入 R/W R/W R/W R/W 复位值 1 0 0 1 ・7:6 位-PAD_IO 寄存器位数设定数字输出焊盘的输出驱动电流,CLKM 除外。 表 2-6 数字输出驱动强度 寄存器位数 值 PAD_IO 0(1) 1 2 3 说明 2mA 4mA 6mA 8mA 附注:1.加下划线值为复位设置。 8 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 ・5: 4 位-PAD_IO_CLKM 寄存器位数设定 CLKM 的输出驱动电流。也请参考 7.7 小节。 表 2-7 CLKM 驱动强度 寄存器位数 值 PAD_IO_CLKM 0 1 说明 2mA 4mA 2 6mA 3 8mA ・3 位-CLKM_SHA_SEL 参考 7.7 小节。 ・2:0 位-CLKM_CTRL 参考 7.7 小节。 8168B-MCU Wireless-03/09 9 3. 应用电路 3.1 基本应用原理图 图 3-1 显示了带有单端 RF 连接器的 AT86RF212 基本应用原理图。使用平衡不平衡转换器 B1 将 50Ω单端 RF 输入被转换为 100Ω差分 RF 端口阻抗。电容器 C1 和 C2 为 RF 端口提供 RF 输入的 交流电藕。视使用的发送功率电平而定,依 FCC47 第 15.247 小节、ERC/REC70-03 或 ETSI EN 300 220 等规范规则的要求可能需要一个外置滤波器 F1。 图 3-1 基本应用原理图 VDD CB2 CX1 CX2 XTAL 30 29 28 27 26 25 AVSS AVDD EVDD AVSS XTAL1 XTAL2 2 DIG4 /SEL 23 3 AVSS MOSI 22 DVSS 21 4 RFP AT86RF212 5 RFN DVDD DEVDD DVSS DVSS 18 DVDD 7 DVSS DVSS SCLK 19 SLP_TR 6 AVSS DIG2 C2 MISO 20 DIG1 F1 B1 数 字 接 口 IRQ 24 Digital Interface C1 RF 31 AVSS 1 DIG3 32 AVSS CB1 9 10 11 12 13 14 15 16 8 /RST CB3 CLKM 17 R1 C3 CB4 电源旁路电容(CB2,CB4)连接至外置模拟电源引脚(EVDD,引脚 28)和外置数字电源引脚 (DEVDD,引脚 15)。电容 CB1 和 CB3 是集成模拟和数字电源调节器的旁路电容器,用以保证 稳定操作。所有旁路电容应安置于尽可能 10 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 靠近引脚的位置,并应有低电阻、低电感接地连接,以实现最佳性能。 晶体(XTAL),两个负荷电容(CX1,CX2)和与引脚 XTAL1 和 XTAL2 连接的内部电路形成晶体 振荡器。为了实现 RF 的最佳精度与稳定性,应避免较大的寄生电容产生。晶体导线路径应尽可 能缩短,且不得靠近数字 I/O 信号。高数据传输速率模式特别要注意此点,参看 7.1.4 小节。晶体 引脚或 RF 引脚上的数字信号发出的串扰可能减弱系统性能。因此,低通滤波器(C3,R1)置于靠 近 CLKM 输出引脚的位置,以减少 CLKM 信号的谐波发射。若 CLKM 引脚不用作微处理时钟源, 则不需依从此要求。在这种情况下,在装置初始化的过程中应关闭输出。 应用板地发面应被分为 4 个独立的部分,模拟,数字,天线和 XTAL 地发面。裸露焊盘将被用作 独立接地端参考点。 表 3-1 基本应用原理图物料清单(BoM)范例 元件名称 说明 值 制造商 B1 900MHz CB2, CB4 SMD 平 衡 不 平衡转换器 SMD 低 通 滤 波器 平衡不平衡转 换器/滤波器 组合 LDO VREG 旁路电容 电源旁路电容 CX1, CX2 晶体负荷电容 C1, C2 型号 附注 900MHz Wuerth JTI Wuerth JTI JTI 748431090 0900BL18B100 748131009 0915LP15A026 0892FB15A0100 1μF AVX Murata 0603YD105KAT2A GRM188R61C105KA12D X5R 10% (0603) 12 pF AVX Murata COG 5% 50V (0603) RF 耦合电容 68 pF C3 CLKM 低 通 滤波器电容 2.2 pF Epcos Epcos AVX AVX Murata 06035A120JA GRP1886C1H120JA01 B37930 B37920 06035A680JAT2A 06035A229DA GRP1886C1H2R0DA01 R1 CLKM 低 通 滤波器电阻 晶体 680Ω F1 B1+F1 CB1, CB3 XTAL 900MHz 16V 1μF Cx-4025 16 MHz SX-4025 16 MHz ACAL Siward Taitien COG 5% 50V (0402 or 0603) COG ±5 pF 50V (0603) 设 计 用 于 fCLKM=1MHz 设 计 用 于 fCLKM=1MHz XWBBPL-F-1 A207-011 3.2 扩展功能组应用原理图 用于使用扩展功能 ・天线分集 ・接收/发送指示器 ・接收器帧时间戳 需要扩展应用原理图。 8168B-MCU Wireless-03/09 使用 DIG1/DIG2 引脚 1 使用 DIG3/DIG4 引脚 使用 DIG2 引脚 ( ) 第 9.3 小节 第 9.4 小节 第 9.5 小节 11 所有其他扩展功能(参看第 9 小节)无须扩展原理图。 扩展功能组应用原理图说明了 AT86RF212 的扩展功能组,如图 3-2 所示。虽然此例显示了所有附 加硬件功能组合,但是仍可单独使用各个功能或将几项不同的功能结合使用。 图 3-2 扩展功能应用原理图 VDD CB2 CX1 CX2 XTAL AVDD EVDD AVSS XTAL1 XTAL2 /SEL 23 3 AVSS MOSI 22 4 RFP B1 DVSS 21 AT86RF212 5 RFN DVSS DVSS 18 DEVDD SCLK 19 7 DVSS DVDD 6 AVSS 9 10 11 12 13 14 15 16 8 /RST ANT1 MISO 20 DVDD C2 数 字 接 口 IRQ 24 2 DIG4 DVSS SW1 25 SLP_TR N1 26 DIG2 F1 C1 27 DIG1 PA 射频 开关 RFSwitch 射频 开关 RFSwitch SW2 28 Digital Interface N2 LNA 30 29 AVSS 1 DIG3 31 AVSS ANT0 32 AVSS CB1 CB3 CLKM 17 R1 C3 CB4 在此例中,与基本应用原理图类似,平衡不平衡转换器(B1)将差分无线电收发器 RF 引脚 (RFP/RFN)转换为单端 RF 信号;参看图 3-1。RF 开关(SW1,SW2)分离外置 RF 前端的发送 与接收通路。 通过接收/发送指示器,由差分引脚对 DIG3/DIG4 表示,负责控制上述开关,参看 9.4 小节。 在接收过程中,相应微控制器可运用天线分集算法或已存储的链路信号质量统计数据搜索可靠的 RF 信号通路。天线分集 RF 开关(SW2)控制引脚 DIG1(1) 选定天线,RF 信号经选配低噪声放 大器(N2)放大,然后通过第二接收/发送开关(SW1)送至无线电收发器。 在发送过程中,AT86RF212 发送信号经外置 PA(N1)扩大及低通滤波后,抑制散杂谐波发射并 通过 RF 开关(SW2)发送至天线。在此例中,RF 开关 SW2 还可通过引脚 DIG1(1) 支持受控的 天线分集。 12 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 附注:1.若未使用接收帧时间戳,则 DIG1/DIG2 可用作控制 RF 开关的差分引脚对,请分别参看 9.3 小节和 9.5 小节。 8168B-MCU Wireless-03/09 13 4. 微控制器接口 4.1 概览 本节介绍了 AT86RF212 的微控制器接口。接口由 SPI 从器件和附加控制信号组成;参看图 4-1.SPI 时序与协议将在下文进行介绍。 截至 AT86RF212 接口的处理器 图 4-1 微控制器 Microcontroller /SEL /SEL /SEL MOSI MOSI MOSI MISO MISO MISO SCLK SCLK SCLK GPIO1/CLK CLKM CLKM GPIO2/IRQ IRQ SPI-从器件 SPI - Slave AT86RF212 SPI-主器件 SPI - Master SPI IRQ SLP_TR GPIO3 SLP_TR GPIO4 /RST /RST GPIO5 DIG2 DIG2 ATMEL AVR 系列产品等带有主 SPI 的微控制器可直接与 AT86RF212 连接。SPI 接口用于连接寄 存器、帧缓冲、SRAM 及 AES 接口。附加控制信号由微控制器的接口 GPIO/IRQ 控制。 表 4-1 列出了各个无线电收发器 I/O 信号及其功能。 表 4-1 微控制器接口信号说明 信号 说明 /SEL SPI 信号选择,低可用 MOSI SPI 数据(主输出从输入)信号 MISO SPI 数据(主输入从输出)信号 SCLK SPI 时钟信号 CLKM 时钟输出,参看 7.7.4 小节,可用作: -微控制器时钟源 -高精度时序参考 -MAC 计时器参考 中断请求信号,还可用作: -帧缓冲空余空间指示器,参看 9.6 小节 多功能控制信号,参看 4.6 小节: -睡眠/唤醒 -发送启动 -禁用/启用 CLKM IRQ SLP_TR 14 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 信号 /RST 说明 DIG2 多功能控制信号,其中包括一个帧接收信号,参考图 9.5。 AT86RF212 复位信号,低可用 4.2 SPI时序介绍 引脚 17(CLKM)可用作微控制器主时钟源。若微控制器自 CLKM 直接获得 SPI 主时钟(SCLK), 则 SPI 以同步模式运行,反之,则将以异步模式运行。 在同步模式下,SCLK 最高频率为 8MHz。 在异步模式下,SCLK 最高频率仅限 7.5MHz。引脚 CLKM 的信号无须获得 SCLK,并可将其禁 用,以降低功耗和散杂发射。 图 4-2 和图 4-3 显示了 SPI 时序并列出其参数。在第 10.4 小节中,对相应时序参数定义 t1-t9 进行 了设定。 图 4-2 SPI 时序,总图及时序参数 t5,t6,t8 及 t9 定义。 t8 t9 /SEL SCLK MOSI 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 t5 MISO Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 t6 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 图 4-3 SPI 时序,时序参数 t1-t4 详细图 /SEL SCLK t3 MOSI t4 Bit 7 Bit 6 t1 MISO Bit 5 t2 Bit 7 Bit 6 Bit 5 SPI 基于面向字节协议,是在主器件和从器件之间的双向通信。SPI 主器件确定/SEL=L,启动传 输。然后,主器件生成 8 轮 SPI 时钟循环,以便将一个字节传输至无线电收发器(通过 MOSI)。 与此同时,从器件(通过 MISO)向主器件发送一个字节。当主器件要自从器件接收一字节数据 时,必须也向从器件发送一字节。所有字节传输均先经 MSB 进行。发出/SEL=H 的指令即可终止 SPI 传输。 8168B-MCU Wireless-03/09 15 /SEL=L 启用 AT86RF212 的 MISO 输出驱动。MISO 的 MSB 在 t1 后生效(参看 10.4 小节,参数 10.4.3)并于 SCLK 的各个下降沿更新。若驱动不可用,则无内置上拉电阻与之连接。 必须在主器件或外置上拉电阻的保证下,方可驱动适当的信号电平。请注意,当/SEL 和/RST 均 可用时时,MISO 输出驱动器也被激活。 于 SCLK 信号上升沿进行 MOSI 抽样,并将输出设置于 SCLK 下降沿,参看图 4-2 和图 4-3。在 SCLK 上升沿前后(即,t3 和 t4 设定的时间)的信号须保持稳定,参看 10.4 小节,参数 10.4.5 和 10.4.6。 SPI 操作模式通常称作“SPI 模式 0”。 4.3 SPI协议 SPI 时序从通过带有 MSB 的 MOSI(参看表 4-2)由 SPI 主器件传输第一个命令字节开始。命令 字节决定了 SPI 的访问模式和其他模式附属信息。 表 4-2 SPI 命令字节定义 第7位 第6位 第5位 1 0 1 1 0 0 1 0 1 1 0 0 0 0 1 0 第4位 第3位 第2位 第1位 寄存器地址[5:0] 寄存器地址[5:0] 预留 预留 预留 预留 第0位 访问模式 访问类型 寄存器访 问 读取访问 写入访问 读取访问 写入访问 读取访问 写入访问 帧缓冲访 问 SRAM 访 问 各 SPI 将复位字节送回 MISO 上的 SPI 主器件。首字节的内容为 PHY_STATUS 字段,参看 4.4 小 节。 在图 4.4 至图 4.14 及以下各章中以 XX 开头的 MOSI 逻辑值被无线电收发器忽略,但需要一个有 效逻辑电平。微控制器忽略 MISO 上以 XX 开头的复位值。 下列各节介绍了不同的访问模式。 4.3.1 寄存器访问模式 寄存器访问模式是以/SEL=L 起始的双字节读取/写入操作。MOSI 上的第一个传输字节是由一个 标示位(第 7 位=1),一个读取/写入选择位(第 6 位)和一个 6 位寄存器地址组成的命令字节。 在读取访问中,所选寄存器地址内容将于 MISO 的第二个字节内复位(参看图 4-4)。 图 4-4 寄存器访问模式-读取访问 字节 1 (命令字节 MOSI MISO 16 AT86RF212 1 0 地址 PHY_STATUS ) 字节 2 ( 数据字节 ) [5:0] XX (1) 读取数据 [7:0] 8168B-MCU Wireless-03/09 AT86RF212 附注: 1.可为各 SPI 访问指定 MISO 上的复位 PHY 状态信息(PHY_STATUS),参看 4.4 小节。 在写入访问中,传输至 MOSI 的第二个字节含有发送至所选地址的写入数据(参看图 4-5) 。 图 4-5 寄存器访问模式-写入访问 byte 1 (命令字节 MOSI MISO 1 1 地址 ) [5:0] PHY_STATUS byte 2 (数据字节 ) 读取数据 [7:0] XX 各寄存器访问必须以/SEL=H 结尾。 图 4-6 分别显示了寄存器访问时序的典型 SPI 时序。 图 4-6 SPI 时序举例——寄存器访问模式 寄存器读取访问 寄存器写入访问 /SEL SCLK MOSI MISO 写入命令 写入数据 PHY _ STATUS XX 读取命令 PHY _STATUS XX 读取数据 4.3.2 帧缓冲访问模式 128 字节帧缓冲可一次容纳一个符合 IEEE802.15.4 标准规定的最长接收或发送帧的 PHY 服务数 据单元(PSDU)数据。有关帧缓冲的详细介绍见于 7.4 小节。有关 IEEE802.15.4 标准的帧格式 介绍见于 6.1 小节。 帧缓冲读取和写入模式用于从/向帧缓冲读取或写入帧数据(PSDU 和其他信息)。访问均以/SEL=L 起始,加 MOSI 命令字节。若字节指定了帧读取或写入访问,则下一个 PHR 字节指出帧长度及 PSDU 数据,参看图 4-7 和图 4-8。 在帧缓冲读取访问中,PHY 字节头(PHR)和 PSDU 经 MISO 从第二个字节开始传输。在 PSDU 数据之后,还将传输三条字节,其内容分别为接收帧的链路质量指示(LQI)值,能量监测(ED) 值和状态信息(RX_STATUS)。图 4-7 列出了帧缓冲读取访问的数据包结构。RX_STATUS 结构 如表 4-3 所示。 8168B-MCU Wireless-03/09 17 图 4-7 数据包结构-帧读取访问 字节 1 (命令字节 MOSI MISO 0 0 1 预留 ) 字节 2 (数据字节 ) 字节 3 (数据字节 ) 字节 n-1 (数据字节 ) 字节 n (数据字节 ) [5:0] XX XX XX XX PHR[7:0] PSDU[7:0] ED[7:0] RX_STATUS[7:0] PHY_STATUS 表 4-3 位 RX_STATUS 7 6 5 寄存器 0x06, PHY_RSSI[7] 0x02, TRX_STATE[7:5] 名称 小节 RX_CRC_VALID 6.3.5 TRAC_STATUS 5.2.6 位 3 2 寄存器 预留 名称 预留 4 1 0 请注意,帧缓冲读取访问可随时终止无须任何/SEL=H 的设置,例如,可在读取帧长度字节之后 立即终止。后续的帧缓冲读取操作由 PHR 字段重新开始。 在帧缓冲写入访问中,MOSI 上传输的第二个字节由帧长度(PHR 字段),加有效载荷数据(PSDU) 组成,如图 4-8 所示。 图 4-8 数据包结构-帧写入访问 ) 字节 2 (数据字节 ) 字节 3 (数据字节 ) 字节 n-1 (数据字节 ) 字节 n (数据字节 ) [5 :0 ] PHR [7:0 ] PSDU [7:0] PSDU [7:0 ] PSDU [7:0] XX XX XX XX 字节 1 (命令字节 MOSI MISO 0 1 1 预留 PHY _ STATUS 以下列方法计算一个帧缓冲访问的 n 字节数: 读取访问:n=5+帧_长度 [PHY_STATUS,PHR,PSDU 数据,LQI,ED 及 RX_STATUS] 写入访问:n=2+帧_长度 [命令字节 PHR,及 PSDU 数据] 帧_长度最大值为 127 字节。这意味着 帧缓冲读取访问的 n≤132,而帧缓冲写入访问的 n≤129。 每次数据字节的读取或写入均会使帧缓冲的地址计数器自动增长,直至访问由/SEL=H 结束。 图 4-9 和图 4-10 列出了读取一个 2 字节 PSDU 帧和写入一个 4 字节 PSDU 帧的缓存器访问 SPI 序列示例。 18 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 图 4-9 SPI 时序示例-2 字节 PSDU 帧的缓存器读取 /SEL SCLK MOSI COMMAND XX MISO PHY_STATUS PHR 图 4-10 XX PSDU 1 XX XX XX PSDU 2 LQI ED PSDU 2 PSDU 3 PSDU 4 XX RX_STATUS SPI 时序示例-4 字节 PSDU 帧的缓存器写入 /SEL SCLK MOSI COMMAND MISO PHY_STATUS PHR XX PSDU 1 XX XX XX XX 中断请求 IRQ_6(TRX_UR)指出在帧缓冲读取或写入访问过程中发生的访问冲突。更多详情参看 7.4 小节。 附注 ・发送和接收共用帧缓冲;因此,新输入帧会将帧数据覆盖。若发送帧数据须重传,必须保证与 此同时未收到任何帧。 ・为了避免接收将其覆盖,可启用动态帧缓冲保护功能,参看 9.7 小节。 ・扩展操作模式下(TX_ARET)的接收确认帧等例外情况参看 5.2.4 小节。 4.3.3 SRAM 访问模式 SRAM 模式可访问帧缓冲内的指定字节,从而降低 SPI 流量。 在执行 IRQ_2(RX_START)进入帧接收状态之后,SRAM 访问可用于在保留动态帧缓冲保护功能 的同时,上载 PHR 字段,参看 9.7。 SRAM 访问均以/SEL=L 开头。在 MOSI 上传输的第一个字节为命令字节,须按照表 4-2 的定义 指出 SRAM 访问模式。后面的字节指出了写入或读取访问的起始地址。无线电收发器或发送操作 的地址空间为 0x00 至 0x7F。安全模块(AES)使用的地址空间为 0x82 至 0x94,参看 9.1 小节。 在 SRAM 读取访问中,在 MISO 上从访问时序的第三个字节开始传输一个或多个字节的读取数据 (参看图 4-11)。 8168B-MCU Wireless-03/09 19 图 4-11 数据包结构-SRAM 读取访问 ) byte 1 (使他字节 MOSI MISO 0 0 0 预留 字节 2 (数据字节) [5 :0 ] 字节 n (数据字节 ) XX XX XX DATA [7:0] 数据 [7 :0 ] 数据 [7:0] [7 :0 ] 地址 PHY _ STATUS 字节 n-1 (数据字节 ) 字 节 XX 3 (数据字节 ) 在 SRAM 写入访问中,在 MOSI 上从访问时序的第三个字节开始传输一个或多个字节的写入数据 (参看图 4-12)。请勿试图读取或写入超出 SRAM 缓存器容量的字节。 图 4-12 数据包结构-SRAM 写入访问 字节 1 (命令字节 MOSI MISO 0 1 0 预留 ) 字节 2 (地址 [5 :0 ] 地址 PHY _ STATUS ) 字节 3 (数据字节 ) 字节 n-1 (数据字节 ) 字节 n (数据字节 ) [7 : 0 ] 数据 [7:0] 数据 [7 :0 ] 数据 [7:0] XX XX XX XX 在/SEL=L 的情况下,各后附字节读取或字节写入均会使帧缓冲的地址计数器增长直至 SRAM 访 问由/SEL=H 终止。 图 4-13 和图 4-14 列出了 SRAM 访问长度为 5 字节的数据包读取和写入分别对应的 SPI 时序示例。 图 4-13 SPI 时序示例-SRAM 的 5 字节数据包读取访问 /SEL SCLK MOSI MISO 命令 地址 PHY_STATUS XX XX 数据 XX 1 XX XX XX 数据 2 数据 3 数据 4 数据 5 数据 2 数据 3 数据 4 数据 5 图 4-14 SPI 时序示例-SRAM 的 5 字节数据包写入访问 /SEL SCLK MOSI MISO 命令 地址 PHY_STATUS XX 数据 XX 1 XX XX XX XX 附注 ・SRAM 访问模式并非设计用作帧缓冲访问模式(参看 4.3.2 小节)的代替模式。 ・当使用 SRAM 访问模式时,帧缓冲访问冲突并无 TRX_UR 中断指示,更多详尽资料见于 7.4.3 小节。 20 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 4.4 PHY 状态信息 可通过经 MISO 传输的数据的第一个字节,将各 SPI 访问设置为从无线电收发器(PHY_STATUS) 到微控制器的返回状态信息。 可通过 SPI_CMD_MODE 位寄存器(寄存器 0x04,TRX_CTRL_1)设置无线电收发器状态信息的 内容。复位之后,MISO 发送至微控制器的首字节内容被设为 0x00。 4.4.1 寄存器介绍-SPI 控制 寄存器 0x04(TRX_CTRL_1): TRX_CTRL_1 寄存器是用于控制不同操作模式和无线电收发器设置的多功能寄存器。 表 4-4 寄存器 0x04(TRX_CTRL_1) : 7 6 位 PA_EXT_EN IRQ_2_EXT_EN 名称 5 4 TX_AUTO_CRC_ON RX_BL_CTRL 读取/写入 R/W R/W R/W R/W 复位值 0 0 1 0 位 3 2 1 0 名称 SPI_CMD_MODE SPI_CMD_MODE IRQ_MASK_MODE IRQ_POLARITY 读取/写入 R/W R/W R/W R/W 复位值 0 0 0 0 ・第 7 位-PA_EXT_EN 参看 9.4.3 小节。 ・第 6 位-IRQ2_EXT_EN 参看 9.5.2 小节。 ・第 5 为-TX_AUTO_CRC_ON 参看 6.3.5 小节。 ・第 4 位-RX_BL_CTRL 参看 9.6.2 小节。 ・第 3:2 位-SPI_CMD_MODE 各 SPI 将返回字节回传至 SPI 主器件。可使用寄存器 SPI_CMD_MODE 位设置第一个字节的内容。 下列状态信息的传输设置如下: 表 4-5 PHY 状态信息 寄存器数位 SPI_CMD_MODE 值 说明 0 默认值(空白,所有位均为 0x00) 1 监控器 TRX_STATUS 寄存器 2 监控器 PHY_RSSI 寄存器 3 监控器 IRQ_STATUS 寄存器 中断并未清除。 参看 5.1.5 参看 6.4 参看 4.7 ・第 1 位-IRQ_MASK_MODE 8168B-MCU Wireless-03/09 21 参看 4.7.2 小节。 ・第 0 位-IRQ_POLARITY 参看 4.7.2 小节。 4.5 无线电收发器识别 可通过四个寄存器识别 AT86RF212。一个寄存器含有唯一的型号,一个寄存器为对应版本号。其 他两个寄存器的内容为 JEDEC 制造商 ID。 4.5.1 寄存器介绍 寄存器 0x1C(PART_NUM): 表 4-6 寄存器 0x1C(PART_NUM) 7 6 5 位 4 3 0 1 1 1 1 0 0 1 R 读取/写入 0 0 0 0 0 ・第 7:0 位- PART_NUM 本寄存器含有无线电收发器型号。 表 4-7 无线电收发器型号 寄存器位数 值 PART_NUM 7 呈列说明 AT86RF212 的型号 寄存器 0x1D (VERSION_NUM): 表 4-8 寄存器 0x1D (VERSION_NUM) 7 6 5 4 位 3 R 读取/写入 复位值 0 0 0 0 ・第 7:0 位- VERSION_NUM 本寄存器含有无线电收发器版本号。 表 4-9 无线电收发器版本号 寄存器位数 值 VERSION _NUM 1 寄存器 0x1E (MAN_ID_0): 表 4-10 寄存器 0x1E (MAN_ID_0) 7 6 5 位 4 0 3 2 1 0 1 1 1 MAN_ID_0 [7:0] R 读取/写入 AT86RF212 0 呈列说明 修订版 A 名称 复位值 2 VERSION_NUM [7:0] 名称 22 1 PART_NUM [7:0] 名称 复位值 2 0 0 0 1 1 8168B-MCU Wireless-03/09 AT86RF212 ・第 7:0 位- MAN_ID_0 32 位 JEDEC 制造商 ID 的[7:0]位存储在 MAN_ID_0 位寄存器中。[15:8]位存储在寄存器 0x1F (MAN_ID_1)中。ID 的最后 16 位不保存在寄存器中。 表 4-11 JEDEC 制造商 ID-位数[7:0] 寄存器位数 值 呈列说明 MAN_ID_0 1x1F Atmel JEDEC 制造商 ID。 32 位制造商 ID 的[7:0 位]:00 00 00 1F 寄存器 0x1E (MAN_ID_1): 表 4-12 寄存器 0x1F(MAN_ID_1) 7 6 5 位 4 2 1 0 0 0 0 MAN_ID_1 [7:0] 名称 R 读取/写入 复位值 3 0 0 0 0 0 ・第 7:0 位- MAN_ID_1 32 位 JEDEC 制造商 ID 的[15:8]位存储在 MAN_ID_1 位寄存器中。[7:0]位存储在寄存器 0x1E (MAN_ID_0)中。ID 的最后 16 位不保存在寄存器中。 表 4-13 JEDEC 制造商 ID-位数[15:8] 寄存器位数 值 呈列说明 MAN_ID_1 0x00 Atmel JEDEC 制造商 ID。 32 位制造商 ID 的[15:8 位]:00 00 00 1F 4.6 睡眠/唤醒与发送信号(SLP_TR) 引脚 11 (SLP_TR)为多功能引脚。其功能与 AT86RF212 当前状态相关,总结参看表 4-14。 关于无线电收发器的详细介绍参看第 5 节。 表 4-14 SLP_TR 多功能引脚 收发器状态 PLL_ON TX_ARET_ON BUSY_RX_AACK TRX_OFF SLEEP RX_ON RX_ON_NOCLK RX_AACK_ON RX_AACK_ON_NOCLK 8168B-MCU Wireless-03/09 功能 发送开始 发送开始 发送开始 转换 L→H L→H L→H 睡眠 唤醒 不 使 用 CLKM 使用 CLKM 不 使 用 CLKM 使用 CLKM L→H H→L L→H H→L L→H H→L 说明 开始帧发送 开始 TX_ARET 转换 在 RX_AACK 卡槽操作的过程中,开始 ACK 发送, 参看 5.2.3.5。 将无线电收发器调至睡眠状态,CLKM 不可用 将无线电收发器调至 TRX_OFF 状态,电平敏感 将无线电收发器调至 RX_ON_NOCLK 状态,CLKM 不可用 将无线电收发器调至 RX_ON 状态,启用 CLKM 将无线电收发器调至 RX_AACK_ON_NOCLK 状态, CLKM 不可用 将 无 线 电 收 发 器 调 至 RX_AACK_ON 状 态 , 启 用 CLKM 23 在 PLL_ON 和 TX_ARET_ON 状态下,引脚 SLP_TR 用作开始发送传输的触发输入。此时,SLP_TR 引脚仅在上升沿敏感。 在无线电收发器的 TRX_OFF,RX_ON 或 RX_AACK_ON 状态下,经过 SLP_TR 引脚上升沿的状 态变化开始之后,无线电收发器仍保持新状态直至引脚逻辑值升高并由下降沿返回至先前状态。 睡眠状态 当无须无线电收发器功能时,使用睡眠状态,因此 AT86RF212 掉电,进而降低总功耗。 掉电模式如图 4-15 所示。 当无线电收发器处于 TRX_OFF 的状态时,微控制器通过设置 SLP_TR=H 强制 AT86RF212 进入睡眠状态。若引脚 17(CLKM)为微控制器提供时钟,则在 35 轮时钟周期 之后关闭该时钟,从而使微控制器可以同步模式完成掉电程序并避免死锁状态。当微控制器发出 引脚 SLP_TR 的指令时,AT86RF212 唤醒。这一设计在可能的条件下将功耗降到最低。 CLKM_CTRL 的 CLKM 时钟频率设置的值 6 和 7 并非为微控制器直接时钟设计。当使用上述时 钟频率时,在进入睡眠状态时,CLKM 立即关闭。 图 4-15 异步微控制器定时器启动睡眠与唤醒模式 SLP_TR tTR2 CLKM 35 CLKM 时钟周期 CLKM 闭 关 异步定时器时间耗用 (微控制器 ) 附注:时序图 tTR2 请参看表 5-1. RX_ON 与 RX_AACK_ON 状态 在同步系统中,如将 CLKM 用作微控制器时钟源,且 SPI 主时钟(SCLK)直接源自 CLKM,那 么 AT86RF212 可支持接收运行状态的其他掉电模式(RX_ON 及 RX_AACK_ON)。 如果输入帧已预知,且没有其他应用在微控制器上运行,则可在不丢失输入帧的同时实施掉电模 式。 可通过 SLP_TR 引脚的上升沿关闭 CLKM。然后无线电收发器状态分别由 RX_ON 变为 RX_AACK_ON(扩展操作模式),RX_ON_NOCLK 或 RX_AACK_ON_NOCLK。 在接收帧时(如,IRQ_2(RX_START)指示的中断)时钟输出 CLKM 将自动重新启动。 此场景如图 4-16 所示。在 RX_ON 状态中,当设置为引脚 SLP_TR=H,引脚 17(CLKM)的时钟 在 35 轮时钟周期后关闭。 24 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 CLKM_CTRL 的 CLKM 时钟频率设置的值 6 和 7 并非为微控制器直接时钟设计。当使用上述时 钟频率时,在分别进入 RX_ON_NOCLK 和 RX_AACK_ON_NOCLK 状态之后,CLKM 立即关闭。 在 RX_(AACK)_ON_NOCLK 和 RX_(AACK)_ON 状态中,无线电收发器电流消耗相等。但是,驱 动引脚 17(CLKM)要求的电流可降低 RX_(AACK)_ON_NOCLK 的电流消耗。 图 4-16 无线电收发器中断启动唤醒模式 无线电收发器 radio transceiver IRQ issued 中断请求发出 IRQ typ. 5 µs SLP_TR CLKM 35 CLKM clock 时钟周期 cycles CLKM CLKM关闭 off 4.7 中断逻辑 4.7.1 概览 AT86RF212 支持在表 4-15 中列出的 8 种中断请求。通过在中断屏蔽寄存器 0x0E(IRQ_MASK)帧 相应位进行设置激活各个中断。在单片机内部,每个待定中断均存储在一个单独的中断状态寄存 器位上。所有中断事件均或合并至一个单独的外部中断信号(IRQ,引脚 24)。如果发出中断请 求(pin IRQ=H),微控制器将读取中断状态寄存器 0x0F(IRQ_STATUS)以判断中断源。对该寄 存器的读取访问将清除中断状态寄存器和 IRQ 引脚。 当事件使中断归零时,将不再自动清除中断。IRQ_0(PLL_LOCK)和 IRQ_1(PLL_UNLOCK)例外, 因为其中一个的发生事件会将另一个清除。 基本操作模式支持的中断总结参见表 4-15。 中断请求名称 说明 小节 IRQ_7 (BAT_LOW) 显示程序设定极限下的电源电压。 7.6.4 IRQ_6 (TRX_UR) 显示帧缓冲的访问冲突。 7.4.3 IRQ_5 (AMI) 显示地址匹配。 6.2 IRQ_4 (CCA_ED_DONE) 多功能中断: 1. AWAKE_END: ・指示无线电收发器由在 P_ON 结束时进入 TRX_OFF 状态ÖTRX_OFF 及由睡眠状态ÖTRX_OFF 状态的转 换 2. CCA_ED_DONE: ・指示 CCA 或 ED 测量结束 8168B-MCU Wireless-03/09 5.1.2.3 6.6.4 25 IRQ_3 (TRX_END) IRQ_2 (RX_START) IRQ_1 (PLL_UNLOCK) IRQ_0 (PLL_ LOCK) RX:指示帧接收完成。 TX:指示帧发送完成。 指示 PSDU 接收的开始。状态由 TRX_STATE 变为 BUSY_RX,PHR 可用于读取帧缓冲。 指 示 PLL 未 锁 定 。 如 果 无 线 电 收 发 器 处 于 BUSY_TX/BUSY_TX_ARET 状态时,PA 立即关闭。 指示 PLL 锁定。 5.1.3 5.1.3 7.8.5 7.8.5 表 4-15 基本操作模式中的中断描述 中断请求 IRQ_4 在不同的当前无线电收发器状态下有两重不同的含义,请参看寄存器 0x01(TRX_STAT 在 P_ON , 睡 眠 , 或 复 位 之 后 , 无 线 电 收 发 器 在 进 入 TRX_OFF 状 态 时 发 出 中 断 请 求 IRQ_4(AWAKE_END)。 第二重含义仅适用于接收状态。如果微控制器启动 ED 或 CCA 测量,那么 IRQ_4(CCA_ED_DONE) 中断请求将指示测量完成,详情请参看 6.5.4 和 6.6.4 小节。 在 P_ON 或复位之后,所有中断请求均不可用。在无线电收发器初始化的过程中,建议启用 IRQ_4(AWAKE_END) 以 便 在 进 入 TRX_OFF 状 态 时 , 获 得 通 知 。 请 注 意 由 于 寄 存 器 0x0E(IRQ_MASK) 复 原 将 屏 蔽 所 有 中 断 请 求 , 在 收 发 器 复 位 后 进 入 TRX_OFF 状 态 时 , AWAKE_END 中断请求通常不可见。 在此情况下, 通常在微控制器修改寄存器之前进入 TRX_OFF 状态。 关于扩展操作模式中的中断处理详见于 5.2.5 小节。 如果设置了寄存器 IRQ_MASK_MODE 位(寄存器 0x04,TRX_CTRL_1),那么即使中断请求本身 被屏蔽,也可以从 IRQ_STATUS 寄存器读取中断事件,参看图 4-18。但是,在此情况下不能提供 该中断请求的时序信息。 可通过 IRQ_POLARITY 寄存器(寄存器 0x04,TRX_CTRL_1)设置 IRQ 引脚极性。默认行为的 可用性高,这意味着引脚 IRQ=H 发出了中断请求。 如果“帧缓冲空闲指示器”在帧缓冲读取访问的过程中被激活,那么 IRQ 引脚将有另一种功能, 详情参看 9.6 小节。 有关监控寄存器 IRQ_STATUS 的解决方案(不清除该寄存器)敬请参看 4.4 小节。 4.7.2 寄存器介绍 寄存器 0x0E(IRQ_MASK): IRQ_MASK 寄存器用于激活或禁用单独的中断请求。如果相应位被设置为 1,则一个中断请求被 激活。在上电程序(P_ON 状态)或复位(RESET 状态)之后所有中断均被禁用。 表 4-16 寄存器 0x0E(IRQ_MASK): 7 6 5 4 位 MASK_BAT_LOW MASK_TRX_UR MASK_AMI MASK_CCA_ED_DONE 名称 R/W R/W R/W R/W 读取/写入 0 0 0 0 复位值 26 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 位 名称 3 MASK_TRX_END 2 MASK_RX_START 1 MASK_PLL_UNLOCK 读取/写 入 复位值 R/W R/W R/W 0 MASK_PLL_ LOCK R/W 0 0 0 0 如果启用中断请求,则建议在清除寄存器 0x0F(IRQ_STATUS)的历史记录之前读取该中断状态寄 存器。 寄存器 0x0F(IRQ_STATUS): IRQ_STATUS 寄存器储存待定中断请求的状态。 表 4-17 寄存器 0x0F(IRQ_STATUS) 7 6 位 BAT_LOW TRX_UR 名称 R R 读取/写入 0 0 复位值 5 AMI R 0 4 CCA_ED_ DONE R 0 3 2 1 0 位 TRX_END RX_START PLL_UNLOCK PLL_LOCK 名称 R R R R 读取/写入 0 0 0 0 复位值 在引脚 24(IRQ)获得中断请求信号之后,可通过读取该寄存器识别发出中断请求的来源。对该 寄存器的读取访问会复原所有中断位,并清除 IRQ_STATUS 寄存器。 如果设置了寄存器 IRQ_MASK_MODE 位(寄存器 0x04,TRX_CTRL_1),那么即使中断请求本身 被屏蔽,也可以从 IRQ_STATUS 寄存器读取中断事件,参看图 4-18。但是,在此情况下不能提 供该中断请求的时序信息。 如果设置了寄存器 IRQ_MASK_MODE 位,建议在清除寄存器 0x0F(IRQ_STATUS)的历史记录之 前读取该中断状态寄存器。 寄存器 0x04(TRX_CTRL_1): TRX_CTRL_1 寄存器是用于控制不同运行状态和无线电收发器设置的多功能寄存器。 表 4-18 寄存器 0x04(TRX_CTRL_1) 7 6 5 4 位 PA_EXT_EN IRQ_2_EXT_EN TX_AUTO_CRC_ON RX_BL_CTRL 名称 R/W R/W R/W 读取/写入 R/W 0 0 1 0 复位值 位 名称 读取/写入 复位值 8168B-MCU Wireless-03/09 3 SPI_CMD_MODE R/W 0 2 SPI_CMD_MODE R/W 0 1 IRQ_MASK_MODE R/W 0 0 IRQ_POLARTITY R/W 0 27 ・第 7 位-PA_EXT_EN 接收/发送指示器,参看 9.4.3 小节 ・第 6 位-IRQ2_EXT_EN 可由一个引脚单独决定接收帧的时序。如果寄存器位 IRQ_2_EXT_EN 设置为 1,那么与中断请求 IRQ_2(RX_START)相同,PHR 字段的接收直接在引脚 10(DIG2)上发出。请注意即使在寄存器 0x0E(IRQ_MASK)上的相应中断事件 IRQ_2(RX_START)屏蔽位被设置为 0 时,该引脚仍然 可用。引脚保持高电平直至帧接收流程结束。 更多详情请参看 9.5 小节。 ・第 5 位—TX_AUTO_CRC_ON 参看 6.3.5 小节。 ・第 4 位—RX_BL_CTRL 参看 9.6.2 小节。 ・第 3:2 位—SPI_CMD_MODE 参看 4.4.1 小节 ・第 1 位—IRQ_MASK_MODE AT86RF212 支持中断事件的轮流检测。可通过寄存器 IRQ_MASK_MODE 位激活中断轮流检测。 即使中断请求被寄存器 0x0E(IRQ_MASK)相应位屏蔽,寄存器 0x0F(IRQ_STATUS)仍会指示该事 件。 表 4-19 IRQ Mask 设置 IRQ_MASK_MODE IRQ_MASK 值 说明 0 0 完全禁用中断轮流检测而 且在 IRQ_STATUS 寄存器 中未显示任何中断原因。 0 1 完全禁用中断轮流检测但 是在 IRQ_STATUS 寄存器 中显示所有中断原因。 0 ≠0 向 IRQ 引脚发送所有已激 活的中断信号并显示在 IRQ_STATUS 寄存器中。 1 ≠0 向 IRQ 引脚发送所有已激 活的中断信号而且在 IRQ_STATUS 寄存器中显 示所有中断原因。 Interrupt Sources 图 4-17 IRQ_MASK_MODE=0 中 断 源 28 AT86RF212 . . . IRQ_MASK IRQ_MASK( (register 寄 存0x0E) 器 0x0E) IRQ_STATUS( IRQ_STATUS 寄存器 0x0F) (register 0x0F) OR 或 IRQ 8168B-MCU Wireless-03/09 AT86RF212 Interrupt Sources 图 4-18 IRQ_MASK_MODE=1 中 断 源 . . . IRQ_STATUS IRQ_STATUS( (register 0x0F) 寄存器 0x0F) IRQ_MASK( IRQ_MASK 寄 存 器 OR或 IRQ (register 0x0E) 0x0E) ・第 0 位—IRQ_POLARITY IRQ 引脚的默认极性为高可用性。可通过寄存器 IRQ_ POLARITY 位将其设置为低可用性,参看 表 4-20. 表 4-20 引脚 24(IRQ)设置 寄存器位 值 说明 IRQ_POLARITY 0 1 引脚 IRQ 高可用性 引脚 IRQ 低可用性 此设置不影响帧缓冲空闲指示器的极性,请参看 9.6 小节。帧缓冲空闲指示器总为高可用性。 8168B-MCU Wireless-03/09 29 5. 操作模式 5.1 基本操作模式 图 5-1 本节总结提供 AT86RF212 所有基本功能的状态,包括接收帧,发送帧,上电程序和睡眠。基本 操作模式为 IEEE802.15.4 和 ISM 的应用而设计。相应的无线电收发器状态如图 5-1 所示。 基本操作模式状态示意图(时序参看表 5-1) P _ ON SLEEP (睡眠状态 ( 连接 EVDD 后通电 ) XOSC =OFF Pull=OFF XOSC =ON Pull =ON = R T _ P SL TR X _O FF (除睡眠以外的所有状态 TRX_OFF (时钟状态 ) F OF _ X R T 6 BUSY _ RX ) 8 RX_ ON (RX 收听状态 帧结束 检 R H测 S 到 ) 7 3 (从所有状态 ) /RST = L /RST = H 13 ) 5 H RESET (除 P_ON 以外的所有状态 _ ) TR X _O FF P LL _O N 4 11 RX_ON 帧结束 BUSY _TX PLL_ON (发送状态 (PLL 状态 ) ) ) 10 SLP _ TR = H or TX_ START H = TR _ P SL (Rx 收听状态 = R T _ P SL PLL_ON 9 = R _T P SL RX_ ON_ NOCLK L XOSC =ON Pull=OFF N O X_ R (接收状态 2 1 12 FORCE_TRX_ OFF 检测到 SHR ) L FORCE_PLL_ON 14 (除睡眠,P_OM,TR_OFF, 和 RX_on_NOCLK 以外的所有状态 ) 图例 : _ 蓝色 : SPI 写入寄存器 TRX_XTATE(0X02) 红色: 经过集杨电路引脚的控制信号 绿色 : 事件 基本操作状态 CLKM=OFF X , 状态转换编号,参看表 7-1 7 1 5.1.1 状态控制 可通过在寄存器 TRX_CMD 位(寄存器 0x02,TRX_STATE)写入命令,或直接由引脚 11(SLP_TR) 和引脚 8(/RST)控制无线电收发器状态。可通过在寄存器 0x01(TRX_STATUS)读取无线电收发 器状态开检测状态转换是否成功。 30 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 如果 TRX_STATUS=0x01F(STATE_TRANSITION_IN_PROGRESS),则 AT86RF212 处于状态转 换的过程中。在无线电收发器处于 STATE_TRANSITION_IN_PROGRESS 状态时,请勿试图开始 其他状态转换。 引脚 SLP_TR 是一个多功能引脚,请参看 4.6 小节。在不同的无线电收发器状态下,SLP_TR 引 脚上升沿可引起以下状态转换: • TRX_OFF → SLEEP • RX_ON → RX_ON_NOCLK • PLL_ON → BUSY_TX 而引脚 SLP_TR 的下降沿可引起下列状态转换: • SLEEP → TRX_OFF • RX_ON_NOCLK → RX_ON 引脚 8(/RST)将所有寄存器(寄存器位 CLKM_CTRL 被屏蔽,详情参看 7.7.4 小节)和删除的 SRAM 内容复原。它迫使无线电收发器处于 TRX_OFF 状态。但是,如果设备处于 P_ON 状态,则将保 持 P_ON 状态。 在除睡眠状态以外的所有状态下,状态转换命令 FORCE_TRX_OFF 或 TRX_OFF 将导致转换至 TRX_OFF 状态。若无线电收发器处于可用接收或发送状态时(BUSY_*),FORCE_TRX_OFF 命 令将中断这些可用处理,并强制立即转换为 TRX_OFF 状态。TRX_OFF 命令由对比存储至可用 状态(接收或发送)结束。此后执行 TRX_OFF 状态的转换。 可使用 FORCE_PLL_ON 命令,由接收或有效发送状态开始转换为 PLL_ON 状态。可用处理即被 中断。与 FORCE_TRX_OFF 命令相反,此命令不禁用 PLL 和数字电压调节器 AVREG。在睡眠, 复位和所有*_NOCLK 状态下不可使用此命令。 在 每 个 要 求 的 状 态 转 换 完 成 之 后 , 均 需 读 取 寄 存 器 的 TRX_STATUS 位 ( 寄 存 器 0x01,TRX_STATUS)进行确认。 5.1.2 说明 5.1.2.1 P_ON—连接 EVDD 后通电 当外部电源电压(EVDD)接至 AT86RF212 后,无线电收发器进入 P_ON 状态,执行片内复位。 晶体振荡器被激活,待晶体振荡器稳定后,引脚 17(CLKM)出现默认为 1MHz 的主时钟。CLKM 可用作微控制器的时钟源。SPI 接口和数字电压调节器被启用。 片内上电服务将所有寄存器设为其默认值。引脚 8(/RST)上的微控制器专用服务信号不是必须 的,但由于硬件/软件同步化因素仍建议使用。 所有数字输入在 P_ON 状态中均有上拉或下拉电阻,请参看 2.2.2.2 小节。在通电或服务后如果有 GPIO 信号正在浮动,则必须支持微控制器。当无线电收发器推出 P_ON 状态时,输入上拉和下 拉电阻不可用。在推出 P_ON 状态后,输出引脚 DIG1/DIG2 内部连接至数字接地端,但如无配置 变更,引脚 DIG3/DIG4 则内部连接至模拟接地端。引脚 8(/RST)的复位不能启用上拉或下拉电 阻。 8168B-MCU Wireless-03/09 31 在推出 P_ON 状态之前,微控制器必须将输入引脚设置为默认运行值:SLP_TR=L,/RST=H 及 /SEL=H。 默认禁用所有中断请求。 因此,首先应启用状态转换控制的中断命令,如启用 IRQ_4(AWAKE_END) 以指示状态转换为 TRX_OFF。在 P_ON 状态中,在引脚 17(CLKM)出现默认为 1MHz 的主时 钟后可先访问无线电收发器寄存器,参看表格 5-1 中的 tTR1。 在电源电压稳定,晶体振荡器建立之后(参看 10.5 小节参数 tXTAL),应为 AWAKE_END 设置中 断屏蔽。有效的 SPI 对寄存器 TRX_CMD 位(寄存器 0x02,TRX_STATE)进行写入访问,TRX_OFF 或 FORCE_TRX_OFF 命令启动从 P_ON 到 TRX_OFF 的专题转换,然后由 AWAKE_END 中断请 求指示此状态转换(如果可用)。 5.1.2.2 SLEEP—睡眠状态 在睡眠状态中,整个无线电收发器均不可用。无电路运行。无线电收发器电流消耗仅剩泄露电流 和一个低功耗电压调节器的电流(100nA),以便为内容仍有效的寄存器提供电源电压。只能在 TRX_OFF 中,通过设置 SLP_TR=H 进入此状态。 若启用 CLKM,那么在引脚 11(SLP_TR)上升沿之后 35 轮 CLKM 周期后进入睡眠状态。如果 CLKM 输出已关闭(寄存器 0x03 中的 CLKM_CTRL 位=0),则会立即进入睡眠状态。 在 250kHz 的时钟频率和符号时钟频率下(寄存器 0x03,TRX_CTRL_0 的 CLKM_CTRL 值为 6 和 7),引脚 17(CLKM)上的主时钟立即关闭。 SLP_TR=L 的设置使无线电收发器返回 TRX_OFF 状态。在睡眠状态下,寄存器内容仍保持有效, 而帧缓冲和安全引擎(AES)则被清空。 /RST=L 在睡眠状态下将无线电收发器恢复为 TRX_OFF 的状态,并将所有寄存器设置回默认值。 但寄存器 CLKM_CTRL 位除外(寄存器 0x03,TRX_CTRL_0)。上述寄存器位须特殊处理,详情 参看 7.7.4 小节。 5.1.2.3 TRX_OFF-时钟状态 在 TRX_OFF 的状态下,晶体振荡器运行,且引脚 17(CLKM)上有主时钟可用。SPI 接口和数 字电压调节器被启用,因此可访问无线电收发器寄存器,帧缓冲和安全引擎(AES)(参看 7.4 和 9.1 小节)。 与 P_ON 状态相反,上拉和下拉电阻不可用。 请 注 意 在 TRX_OFF 状 态 下 数 字 前 端 不 可 用 。 如 果 设 置 为 TRX_OFF_AVDD_EN ( 寄 存 器 0x0C,TRX_CTRL_2),则数字电压调节器开启,可以更快速地切换至任意发送/接收状态。 从 P_ON,睡眠或服务状态进入 TRX_OFF 状态的状态转换有 IRQ_4(AWAKE_END)中断命令指示 (如果可用) 。 32 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 5.1.2.4 PLL_ON—PLL 状态 除非 AVREG 已经开启(寄存器 0x0C,TRX_OFF_AVDD_EN),否则从 TRX_OFF 状态进入 PLL_ON 状态将先开启数字电压调节器(AVREG)。电压调节器建立之后(参看表 5.2),PLL 频率合成器 启动。当 PLL 被建立为寄存器 CHANNEL 位(寄存器 0x08,PHY_CC_CCA),CC_NUMBER 位(寄 存器 0x013,CC_CTRL_0),和 CC_BAND 位(寄存器 0x014,CC_CTRL_1)定义的信道接收频率时, 发出的 IRQ_0(PLL_LOCK)中断请求将指示 PLL 成功锁定。 。 在 PLL_ON 状态下发出 RX_ON 命令之后,寄存器 TRX_STATUS 位(寄存器 0x01,TRX_STATUS) 立即指出无线电处于 RX_ON 状态。但是,只有在 PLL 已锁定之后,才能开始帧接收。 PLL_ON 状态与 IEEE802.15.4 标准中规定的 TX_ON 状态相对应。 5.1.2.5 RX_ON 与 BUSY_RX—RX 收听和接收状态 AT86RF212 在内部将接收模式分为 RX_ON 状态和 BUSY_RX 状态。这两种状态在无线电收发器 数字电路方面没有区别,均打开该电路。在两种状态下均可启用接收器和 PLL 频率合成器。 在 RX_ON 状态中,接收器收听输入帧。在检测到有效的同步标头(SHR)后,AT86RF212 自动 进入 BUSY_RX 状态。非零 PHR 字段接收会生成 IRQ_2(RX_START)(如果可用)。 在 PSDU 接收的过程中,接收帧数据被连续存储在帧缓冲中直至收到最后一个字节。中断请求 IRQ_3(TRX_END) 指 示 帧 接 收 完 成 , 无 线 电 收 发 器 返 回 RX_ON 状 态 。 同 时 , 寄 存 器 RX_CRC_VALID 位(寄存器 0x06,PHY_RSSI)更新为 FCS 检测的结果(参看 6.3 小节)。 收到的帧被传送至地址匹配滤波器,参看 6.2 小节。如果帧的 MAC 寻址字段内容(参看 7.2.1 小 节的 IEEE802.15.4 标准)与寻址模式设定要求的寻址匹配,那么将发出 IRQ_5(AMI)地址匹配中 断请求,参看 4.7 小节。要求的地址值存储于寄存器 0x20-0x2B 中(短地址,PAN ID 和 IEEE 地址)。 在基本操作模式和扩展操作模式中均可使用帧过滤功能,参看 6.2 小节。 只能通过在寄存器 0x02(TRX_STATE)的 TRX_CMD 位写入状态转换命令推出 RX_ON。 5.1.2.6 RX_ON_NOCLK— 无 CLKM 的 RX 收听状态 如果无线电收发器正在收听一个输入帧,且微控制器并未运行任何应用,那么微控制器可能掉电 以减少系统的总功耗。这种时钟同步模式(参看第 4 节)下的系统运行特殊掉电情况是由 AT86RF212 的 RX_ON_NOCLK 状态支持实现的。 只能在无线电收发器的 RX_ON 状态下,通过设置引脚 11(SLP_TR)=H 进入此状态,参看第 0 章。引脚 17(CLKM)在 SLP_TR 引脚上升沿后的 35 轮时钟周期后失效,参看图 4-16。这样, 微控制器才能完成其掉电程序。 8168B-MCU Wireless-03/09 33 请注意在 250kHz 的时钟频率和符号时钟频率下(寄存器 0x03,TRX_CTRL_0 的 CLKM_CTRL 值为 6 和 7) ,在 SLP_TR 上升沿之后,主时钟信号 CLKM 立即关闭。 由指示接收状态的中断请求向微控制器发出帧接收指示。CLKM 在此打开,无线电收发器进入 BUSY_RX 状态(参看 4.6 小节和图 4-16)。当使用 RX_ON_NOCLK 时,应至少有一个指示接收 状态的中断请求可用。 在接收交易完成之后,无线电收发器进入 RX_ON 状态。当 SLP_TR 的引脚的下一个上升沿出现 时,无线电收发器只能重新进入 RX_ON_NOCLK 状态。 如果 AT86RF212 处于 RX_ON_NOCLK 状态,且引脚 SLP_TR 复位为低逻辑值,那么单片机将进 入 RX_ON 状态,并再次开始在 CLKM 引脚上提供时钟。 在 RX_ON_NOCLK 状态下进行复位还需要将引脚 SLP_TR 复位到低逻辑值,否则无线电收发器 将直接进入睡眠状态。 附注 ・在 RX_ON_NOCLK 状态下进行复位还需要将引脚 SLP_TR 复位到低逻辑值,否则无线电收发 器将直接进入睡眠状态。 5.1.2.7 BUSY_TX—发送状态 只能在 PLL_ON 状态下开始发送。可通过两种方法开始发送: ・引脚 11(SLP_TR)的上升沿 ・TX_START 命令写入寄存器 TRX_CMD 位(寄存器 0x02,TRX_STATE)。 上述方法均可使无线电收发器进入 BUSY_TX 状态。 在转换到 BUSY_TX 状态的过程中,PLL 频率变为发送频率。在 1 个符号周期之后(参看 7.1.3 小节)开始 SHR 的第一数据芯片实际发送,以保证 PLL 建立和 PA 上斜坡,参看图 5-6.在 SHR 发送之后,帧缓冲内容被发送。如果 PHR 指出帧长度为零,则在 PHR 字段之后立即终止发送。 在帧发送完成之后,AT86RF212 自动关闭功率放大器,生成 IRQ_3(TRX_END)中断请求,并返 回 PLL_ON 状态。 5.1.2.8 复位状态 复位状态用于将设备的状态复原并将 AT86RF212 的所有寄存器恢复到默认值,除寄存器 CLKM_CTRL 位(寄存器 0x03,TRX_CTRL_0)除外。上述寄存器位须特殊处理,详情参看 7.7.4 小节。 复位使无线电收发器进入 TRX_OFF 状态。但是,如果装置处于 P_ON 状态中,则将保持该状态。 通过将引脚/RST 设置为=L 启动复位,并在/RST=H 之后,返回状态。复位脉冲的最小长度如 10.4 小节参数 10.4.13 所述。 34 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 在复位状态中,微控制器须将无线电收发器的控制引脚 SLP_TR 和/SEL 设置为其默认值。 寄存器默认值概览见于表 11.2。 5.1.3 中断处理 基本操作模式支持所有 AT86RF212 可用的中断请求(参看表 4-15)。 例如,有中断请求用于查看无线电收发器 RX 和 TX 操作的状态。 当处于接收模式时,IRQ_2(RX_START)指示检测到第一个非零 PHR,IRQ_5(AMI)指示地址匹配, IRQ_3(TRX_END)指示帧接收完成。 在发送的过程中,IRQ_3(TRX_END)指示帧发送完成。 图 5-2 列出了两台装置间的发送/接收转换示例,以及在基本操作模式中的相关中断事件。装置 1 发生了一个由 MAC 标头,MAC 有效载荷和有效 FCS 组成的帧。IRQ_3(TRX_END)指示帧发送 结束。 装置 2 接收此帧,中断请求 IRQ_2(RX_START)指示检测到有效 PHR 字段,IRQ_3(TRX_END)指 示帧接收完成。如果帧通过帧滤波器,(参看 6.2 小节)则在 MAC 标头(MHR)接收之后发出 IRQ_5(AMI)中断请求,指示地址匹配。 处理延时 tIRQ 是标准值,参看第 10.4 小节。 图 5-2 RX_START,AMI 和 TRX_END 中断请求在 O-QPSK 250kbit/s 的基本操作模式下的微调 128 160 时 192+(m+n+2)*32 Time 间 [µs] 192 PLL_ON BUSY_TX PLL_ON SLP_TR IRQ 八位字节数 Number of Octets Frame Content 帧内容 TRX_STATE IRQ 中断等待时间 Interrupt latency IRQ_3 (TRX_END) tTR10 4 1 1 m n 2 前导位 Preamble SFD PHR MHR MSDU FCS RX_ON BUSY_RX IRQ_2 (RX_START) tIRQ IRQ_5 (AMI) tIRQ 广 播 帧 Frame on Air Processing 处理时延 Delay 装 置 1 RX_ON TRX_END tIRQ RX (Device 2) TRX_STATE 0 TX (Device1) -tTR10 装 置 2 5.1.4 时序 下列各段介绍了状态转换机器时序属性。关于时序的介绍见于表 5-1 和 10.4 小节。 8168B-MCU Wireless-03/09 35 5.1.4.1 通电程序 P_ON 状态下的通电程序如图 5-3 所示。 图 5-3 P_ON 状态下的通电程序 100 0 事件 EVDD on 状态 P_ON 模块 XOSC, DVREG 时间 [µs] 400 CLKM on 时间 tTR1 当 AT86RF212 接通外部电源电压(EVDD)时,无线电收发器为数字域(DVREG)启动晶体振 荡器(XOSC)和 1.8V 的内置电压调节器。在 tTR1 之后,引脚 17(CLKM)上出现主时钟信号, 默认频率为 1MHz。如果 CLKM 可用,则 SPI 已启动且可用于控制收发器。 5.1.4.2 唤醒程序 从睡眠状态中唤醒的程序如图 5-4 所示。 图 5-4 睡眠模式唤醒程序 0 事件 100 SLP_TR = L 400 200 IRQ_4 (AWAKE_END) CLKM on TRX_OFF 状态 模块 时间 [µs] XOSC, DVREG 时间 FTN XOSC, DVREG tTR2 通过将引脚 SLP_TR 设为低逻辑值使无线电收发器推出睡眠状态,重新启动 XOSC 和 DVREG。 (如果启用)上有可用内部时 在 tTR2 之后,无线电收发器进入 TRX_OFF 状态。引脚 17(CLKM) 钟信号。 该程序与通电程序相似,但无线电收发器会自动进入 TRX_OFF 状态。在滤波器调谐网络(FTN) 中执行校准。IRQ_4(AWAKE_END)中断请求指示已进入 TRX_OFF 状态,如果适当的屏蔽寄存器 位启用该中断请求。 5.1.4.3 由 TRX_OFF 到 PLL_ON/RX_ON 的状态转换 由 TRX_OFF 到 PLL_ON/RX_ON 状态,再到 RX_ON 或 PLL_ON 的状态转换见于图 5-5. 36 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 图 5-5 由 TRX_OFF 到 PLL_ON/RX_ON 状态,再到 RX_ON 或 PLL_ON 的状态转换 0 IRQ_0 (PLL_LOCK) 事件 状态 时间 [µs] 100 RX_ON / PLL_ON PLL_ON / RX_ON TRX_OFF 模块 AVREG 命令 PLL_ON / RX_ON 时间 PLL RX_ON / PLL_ON tTR8/tTR9 tTR4 / tTR6 附注:如果在 TRX_OFF 的状态下 TRX_CMD=RX_ON,即使 PLL 尚未建立也将立即进入 RX_ON 状态。 在 TRX_OFF 的状态下,录入命令 PLL_ON 或 RX_ON 将开始数字域(AVREG)1.8V 的内置电 压调节器的上斜坡时序。无论 PLL 是否已锁定,均可随时从 PLL_ON 状态进入 RX_ON 状态, IRQ_0(PLL_LOCK)指示该状态转换。同样地,可随时从 RX_ON 状态进入 PLL_ON 状态。 当已在 TRX_OFF 状态下设置 TRX_OFF_AVDD_EN(寄存器 0x0c,TRX_CTRL_2)时,将立即启 动数字电压调节器并进行转换为 PLL_ON 或 RX_ON 的上斜坡时序。 5.1.4.4 从经 BUSY_TX 从 PLL_ON 到 RX_ON 的状态转换 从 PLL_ON 到 BUSY_TX,再到 RX_ON 状态的转换见于图 5-6。 图 5-6 O-QPSK 250 kbit/s 模式下从经 BUSY_TX 从 PLL_ON 到 RX_ON 的状态转换时序 16 0 SLP_TR=H or TRX_CMD =TX_START 事件 状态 PLL_ON 时间 TRX_CMD=RX_ON BUSY_TX 模块 IRQ_3 (TRX_END) RX_ON TX tTR10 x + 32 时间 [µs] x PLL RX tTR11 假设 PLL 已被锁定,在 PLL_ON 状态下,可提供引脚 11(SLP_TR)的上升沿或命令 TX_START 开始发送。PLL 建立为发送频率,PA 被启用。 在 tTR10 之后(1 符号周期),AT86RF212 转入 BUSY_TX 状态,发送内部生成的 SHR 和帧缓冲的 PSDU 数据。 在完成帧发送之后,IRQ_3(TRX_END)中断请求指示其完成,PLL 在 tTR11 内恢复为接收频率并返 回 PLL_ON 状态。 8168B-MCU Wireless-03/09 37 如果在 BUSY_TX 状态下,要求无线电收发器转换至接收状态,则将在完成发送之后自动进入 RX_ON 状态,参看图 5-6。 5.1.4.5 复位程序 无线电收发器服务流程如图 5-7 所示。 图 5-7 复位程序 x 0 x + 10 x + 40 [IRQ_4 (AWAKE_END)] 事件 状态 时间 [µs] 任意 TRX_OFF 未定义 模块 FTN Pin /RST 时间 t10 t11 tTR13 /RST=L 将所有寄存器设为默认值,但寄存器位 CLKM_CTRL(寄存器 0x03,TRX_CTRL_0)除外, 参看 7.7.4 小节。 在复位引脚(/RST=L)发出之后,执行带有 FTN 校准周期的唤醒时序,参看 7.9 小节。此后进 入 TRX_OFF 状态。 图 5-7 显示了在离开 P_ON 状态之后,且无线电收发器不在睡眠状态时的复位程序 。 除 P_ON 和睡眠状态以外的所有无线电收发器原状态复位程序都是相同的。但必须遵照 5.1.2.1 小 节和 5.1.2.2 小节中所述的程序方可进入 TRX_OFF 状态。 如果无线电收发器处于睡眠状态,应在进入 TRX_OFF 状态之前启动 XOSC 和 DVREG。 附注: ・如 10.4 小节所规定的,复位脉冲长度不得低于 t10,参看参数 10.4.13。 ・引脚/RST 发出之后,不得在 t11 过去之前对设备进行访问;参看 10.4 小节,10.4.14 参数。 5.1.4.6 状态转换时序概览 转换时序列于表 5-1 中,如无其他说明,则不包括 SPI 访问时间。参看图 3-1 中所示的测量设置。 38 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 表 5-1 状态转换时序 序号 符号 转换 1 tTR1 P_ON 直到 CLKM 可用 2 tTR2 睡眠状态 TRX_OFF 3 tTR3 TRX_OFF 睡眠状态 4 tTR4 TRX_OFF PLL_ON 5 6 tTR5 tTR6 PLL_ON TRX_OFF TRX_OFF RX_ON 标准时间 380μs 710μs 35 轮 CLKM 周 期 110μs 20μs 1μs 110μs 20μs 7 8 9 tTR7 tTR8 tTR9 RX_ON PLL_ON RX_ON TRX_OFF RX_ON PLL_ON 备注 取决于晶体振荡器的设置(CL=10pF)及 DVDD 的外置电容(通常为 1μF) 取决于晶体振荡器的设置(CL=10pF)及 DVDD 的外置电容(通常为 1μF) 由 IRQ_4(AWAKE_END)指示 TRX_OFF 状态 适用于 fCLKM>250kHz 如果未设置寄存器 TRX_OFF_AVDD_EN 位(寄 存器 0x0c,TRX_CTRL_2) ,取决于 AVDD 的外置 电容(通常为 1μF)。 如 果 在 某 个 状 态 下 设 置 了 寄 存 器 TRX_OFF_AVDD_EN 位,则 PLL 被锁定为同一 频率 如果未设置寄存器 TRX_OFF_AVDD_EN 位(寄 存器 0x0c,TRX_CTRL_2) ,取决于 AVDD 的外置 电容(通常为 1μF)。 若寄存器 TRX_OFF_AVDD_EN 位被设为与 PLL 锁定为相同频率 1μs 1μs 1μs 转换时间对 TX_ARET_ON 和 RX_AACK_ON 也 有效 10 tTR10 PLL_ON BUSY_TX 1 符号 当 设 定 引 脚 11 ( SLP_TR ) 或 TRX_CMD=TX_START 时,第一个符号发送延时 1 个符号周期(PLL 建立和 PA 上斜坡),参看 7.1.3 小节。 11 tTR11 BUSY_TX PLL_ON 32μs PLL 建立时间 12 tTR12 所有模式 TRX_OFF 1μs 使用 TRX_CMD=FORCE_TRX_OFF(参看寄存器 0x02,TRX_STATE);在睡眠状态无效 13 tTR13 复位状态 TRX_OFF 26μs 在 P_ON 或睡眠状态无效 14 tTR14 多种状态 1μs 使用 TRX_CMD=FORCE_PLL_ON(参看寄存器 PLL_ON 0x02,TRX_STATE);在睡眠状态,P_ON,复位状态, TRX_OFF 和*_NO_CLK 状态无效 依据图 5-3 至图 5-7 中所示的独立模块时序,对状态转换时序进行计算。最差值包括最高运行温 度,最低电源电压和设备参数变化见于表 5-2。 表 5-2 模拟模块初始化与建立时间 符号 tTR15 模块 XOSC 时间[µs],标准值 215 时间[µs],最大值 1000 tTR16 tTR17 FTN DVREG 60 25 1000 tTR18 AVREG 60 1000 8168B-MCU Wireless-03/09 备注 退出睡眠状态,取决于晶体 Q 因数和载荷电 容 滤波器调整时间 取决于 DVDD 的外置旁路电容(CB3=1µF (正常值),10µF(最差值)),其 EVDD 电 压 取决于 AVDD 的外置旁路电容(CB1=1µF (正常值),10µF(最差值)),其 EVDD 电 压 39 符号 tTR19 模块 PLL,初始 tTR20 tTR21 PLL,建立 PLL,CF 校准 tTR22 tTR23 tTR24 tTR25 PLL,DCU 校准 PLL,RX TX PLL,TX RX RSSI tTR26 ED tTR28 tTR29 CCA 随机值 时间[µs],标准值 96 时间[µs],最大值 276 11 8 42 270 10 16 32 BPSK-20:32 BPSK-40:24 O-QPSK:8 8 个符号 备注 PLL 建 立 时 间 TRX_OFF PLL_ON,包括 60µs 的 AVREG 建立时间 频段内信道切换持续时间 PLL 中心频率校准,参看第 7.8.4 小节 PLL DCU 校准,参看第 7.8.4 小节 PLL 建立时间 RX TX PLL 建立时间 TX RX RSSI 接收状态更新期,参看第 6.4.2 小节 ED 测量期,参看第 6.5 小节 高数据传输速率模式不同时序, 参看第 6.5.5 及 7.1.4.3 小节 CCA 测量期,参看第 6.6.2 小节 随机值更新期,参看第 9.2.1 小节 8 个符号 1 5.1.5 寄存器介绍 寄存器 0x01(TRX_STATUS): 对 TRX_STATUS 寄存器的读取访问可发出当前无线电收发器状态信号。要改变状态,应先在寄 存器 TRX_CMD 位(寄存器 0x02,TRX_STATE)写入状态转换命令。或者,也可以在适当的状 态下由引脚 11(SLP_TR)的上升沿开始状态转换。 此寄存器用于基本操作模式与扩展操作模式,参看 5.2 小节。 表 5-3 寄存器 0x01(TRX_STATUS) 7 6 位 CCA_DONE CCA_STATUS 名称 R 读取/写入 R 0 0 复位值 5 预留 R 0 4 TRX_STATUS R 0 3 2 1 0 位 TRX_STATUS TRX_STATUS TRX_STATUS TRX_STATUS 名称 R R R R 读取/写入 0 0 0 0 复位值 ・第 7 位-CCA_DONE 参看 6.6 小节 ・第 6 位-CCA_STATUS 参看 6.6 小节 ・第 5 位-预留 ・4:0 位-TRX_STATUS 寄存器 TRX_STATUS 位发出当前无线电收发器状态信号。如果尚未完成要求的状态转换, TRX_STATUS 返回 STATE_TRANSITION_IN_PROGRESS(状态转换处理中)。请勿试图在无线 电收发器处于 STATE_TRANSITION_IN_PROGRESS(状态转换处理中)的情况下开始另一个状 态转换。状态转换时序定义见于表 5-1。 40 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 表 5-4 无线电收发器状态,寄存器 TRX_STATUS 位 寄存器位 值 状态说明 TRX_STATUS 0x00 P_ON 0x01 BUSY_RX 0x02 BUSY_TX 0x06 RX_ON 0x08 TRX_OFF(CLK 模式) 0x09 PLL_ON (TX_ON) (3) 0x0F 睡眠 0x11(1) BUSY_RX_AACK (1) 0x12 BUSY_TX_ARET 0x16(1) RX_AACK_ON (1) 0x19 TX_ARET_ON 0x1C RX_ON_NOCLK 0x1D(1) RX_AACK_ON_NOCLK (1) 0x1E BUSY_RX_AACK_NOCLK 0x1F(2) STATE_TRANSITION_IN_PROGRESS 所有其他值均为预留值 附注:1.仅限扩展操作模式,参看 5.2 小节。 2.请勿试图在无线电收发器处于 STATE_TRANSITION_IN_PROGRESS(状态转换处理中)的情 况下开始另一个状态转换。 3.在睡眠状态下不可访问寄存器。 寄存器 0x02(TRX_STATE): 可通过写入寄存器 TRX_CMD 位开始无线电收发器状态转换。此寄存器用于基本操作模式和扩展 操作模式,参看 5.2 小节。 表 5-5 寄存器 0x02 (TRX_STATE) 7 位 TRAC_STATUS 名称 R 读取/写入 0 复位值 位 名称 读取/写入 复位值 3 TRX_CMD R/W 0 6 TRAC_STATUS R 0 5 TRAC_STATUS R 0 4 TRX_CMD R/W 0 2 TRX_CMD R/W 0 1 TRX_CMD R/W 0 0 TRX_CMD R/W 0 ・7:5 位-TRAC_STATUS 参看 5.2.6 小节。 ・4:0 位-TRX_CMD 对寄存器 TRX_CMD 位的写入访问将开始无线电收发器的状态转换。 8168B-MCU Wireless-03/09 41 表 5-6 状态控制命令,寄存器 TRX_CMD 位 寄存器位 值 状态转换至 TRX_CMD 0x00 NOP 0x02 TX_START 0x03 FORCE_TRX_OFF 0x04(1) FORCE_PLL_ON 0x06 RX_ON 0x08 TRX_OFF(CLK 模式) 0x09 PLL_ON(TX_ON) 0x16(2) 0x19(2) RX_AACK_ON TX_ARET_ON 所有其他值均为预留值,设计为 NOP。 附 注 : 1.FORCE_PLL_ON 在 睡 眠 状 态 , 复 位 状 态 和 所 有 的 *_NOCLK 状 态 , 以 及 由 STATE_TRANSITION_IN_PROGRESS(状态转换处理中)转换为上述状态时无效。 2.仅限于扩展操作模式,参看 5.2.6 小节。 5.2 扩展操作模式 扩展操作模式是一个硬件 MAC 加速器,而且其功能超越了基本操作模式提供的无线电收发器基 本功能。它负责处理 IEEE802.15.4-2003/2006 要求的 MAC 时序攸关任务,如自动应答、自动 CSMA-CA 和重传,从而实现了更有效的 IEEE802.15.4-2003/2006 软件 MAC 执行,包括代码缩减 及可使用更小的微控制器。 扩展运行模式设计用于支持 IEEE 802.15.4-2003/2006 的标准合规帧并由以下步骤组成: 自动应答(RX_AACK 处理)分为下列任务: ・帧接收与自动 FCS 校验 ・可设置寻址字段校验 ・中断指示地址匹配 ・中断指示帧接收(若通过帧过滤处理与 FCS 校验) ・自动应答(ACK)帧发送(如可用) ・通过 SLP_TR 引脚支持开槽应答(用于信标使能操作) 自动 CSMA-CA 和重传(TX_ARET 处理)分为下列任务: ・CSMA-CA 包括自动 CCA 和随机避退 ・帧发送及自动 FCS 字段生成 ・ACK 帧接收(如要求 ACK) ・自动重试发送,如要求 ACK 但未接收或收到 ・含转换状态的中断信号发出 42 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 AT86RF212 状态原理图包括图 5-8 中所示的扩展操作模式状态。黄色标示的状态代码基本操作模 式;蓝色标示状态代码扩展操作模式。 8168B-MCU Wireless-03/09 43 图 5-8 扩展操作模式状态原理图 P_ ON SLEEP ( 连接 -EVDD 后通电 (睡眠状态 ) XOSC = ON Pull = ON ) XOSC =OFF Pull =OFF TR X _O FF FORCE _ TRX_ OFF 12 (除睡眠以外的所有状态 ) 1 L R= H T P_ R= L T S P_ L S 2 TRX_OFF (时钟状态 3 13 ) (从所有状态 ) /RST = L /RST = H (除 P_ON 以外的所有状态 _ ) RESET XOSC =ON Pull =OFF N O _ X R F 7 OF X_ R T 6 检测到 SHR 8 BUSY_ RX (接收状态 RX_ ON ) (RX 收听状态 帧结束 =L TR _ P SL ) N O _ K C A A _ X R CLKM = OFF 来自 TRX_OFF 检测到 SHR BUSY _ RX_ AACK 发送状态 RX_ AACK_ON L = R T _ P L S e 检 m p a c rF 测 到 A BUSY_ RX_ AACK_ NOCLK 44 RX_ON PLL_ON P LL _O N 4 SLP _ TR= H or TX_ START PLL_ON 11 (PLL 状态 ) 10 9 BUSY_TX (发送状态 ) 帧结束 14 RX_ ON_ NOCLK CLKM = OFF TR X _O FF =H TR _ P SL 检 R e测 H S 到 (RX 收听状态 ) 5 检测到 SHR 拒绝的帧 AT86RF212 H = R T _ P L S RX_ AACK_ ON_ NOCLK CLKM = OFF N N O O _ _ L K L C P A A _ X R N O _ L L P N O _ T E R A _ X T FORCE _ PLL_ ON 见附注 自来 N TRX_OFF O _ T E R A _ X T SLP _ TR= H 或 TX_ START TX_ARET_ON BUSY_TX_ARET 帧结束 : 图例 蓝色 : SPI 写入寄存器 TRX_XTATE(0X02) 红色: 经过集杨电路引脚的控制信号 Green : 事件 基本操作状态 扩展操作模式状态 8168B-MCU Wireless-03/09 AT86RF212 5.2.1 状态控制 扩展操作模式 RX_AACK 及 TX_ARET 由寄存器 TRX_CMD 位控制(寄存器 0x02,TRX_STATE), 可接收状态转换命令。如图 5-8 所示可分别由 TRX_OFF 或 PLL_ON 状态转换至相应状态 RX_AACK_ON 和 TX_ARET_ON。读取寄存器 0x01(TRX_STATUS)对成功的状态转换进行确 认。 RX_AACK-接收及自动 ACK 通过在寄存器 TRX_CMD 位(寄存器 0x02,TRX_STATE)写入 RX_AACK_ON 命令开始从 PLL_ON 或 TRX_OFF 状态转换至 RX_AACK_ON 状态。在成功读取寄存器 0x01(TRX_STATUS)返回 RX_AACK_ON 或 BUSY_RX_AACK。如果目前正准备接收帧,将返回后者。 由在寄存器 TRX_CMD 位写入 PLL_ON 命令结束 RX_AACK 扩展操作模式。若 AT86RF212 处于 帧接收或应答程序(BUSY_RX_AACK)中,则在完成之后执行主题转换。或者,可使 用 FORCE_TRX_OFF 或 FORCE_PLL_ON 取消 RX_AACK 处理并分别转换为收发器状态 TRX_OFF 或 PLL_ON。 TX_ARET—发送及自动重传及 CSMA-CA 重试 相似的,通过在寄存器 TRX_CMD 位(寄存器 0x02,TRX_STATUS)写入 TX_ARET_ON 命令 开始由 PLL_ON 或 TRX_OFF 状态转换至 TX_ARET_ON 状态。当寄存器 0x01(TRX_STATUS) 返回 TX_ARET_ON,无线电收发器处于 TX_ARET_ON。实际上,是通过引脚 11(SLP_TR)上 升沿或在寄存器 TRX_CMD 位写入 TX_START 命令开始 TX_ARET 处理。 通过在寄存器 TRX_CMD 位写入 PLL_ON 命令结束 TX_ARET 扩展操作模式。如果 AT86RF212 处于 CSMA-CA 中,则在结束之后执行帧发送或应答程序(BUSY_TX_ARET)的状态转换。或 者,可使用 FORCE_PLL_ON 命令立即结束 TX_ARET 处理并转换至收发器 PLL_ON 状态。 附注 ・从 TRX_OFF 状态转换至 RX_AACK_ON 或 TX_ARET_ON 的要求在单片机内部由 PLL_ON 转 换至开启无线电收发器前端。因此,接收或发送数据的准备相应延后(见表 5-1) 。在此情况下, 建议使用中断请求 IRQ_0(PLL_LOCK)作为指示符。 5.2.2 配置 由于扩展操作模式的应用是基于基本操作模式功能的,因此在以下章节中仅介绍基本无线电收发 器功能。欲了解基本操作模式的详细信息,请参考 5.1 小节。 当使用 RX_AACK 或 TX_ARET 模式的时候,需要配置下列寄存器。 RX_AACK 配置步骤: ・设置帧滤波器: 寄存器 0x02-0x2B 8168B-MCU Wireless-03/09 45 短地址,PAN ID 和 IEEE 地址 ・应答生成配置 寄存器 0x2C,0x2E 帧版本子字段处理 未完成数据处理 自动或开槽 ACK 生成 ・附加帧滤波属性 寄存器 0x17 帧滤波器版本控制 将设备特性设为 PAN 网络协调器,如果需要 混杂模式 预留帧类型处理 帧滤波器配置如 6.2.1 小节所述。地址匹配算法的地址存储在适当的地址寄存器。其他 RX_AACK 模式控制由寄存器 0x17(XAH_CTRL_1)和寄存器 0x2E(CSMA_SEED_1)。 不同设备操作模式和不同帧类型处理的配置示例见于 5.2.3.1 小节。 TX_ARET 配置步骤: ・必要时,激活自动 FCS 处理 ・CSMA-CA 配置 MAX_FRAME_RETRIES MAX_CSMA_RETRIES CSMA_SEED MAX_BE,MIN_BE ・CCA 配置(参看 6.6 小节) 寄存器 0x04 寄存器 0x2C 寄存器 0x2C 寄存器 0x2D,0x2E 寄存器 0x2F MAX_FRAME_RETRIES(寄存器 0x2C,XAH_CTRL_0)定义帧重传的最大数。 寄存器 MAX_CSMA_RETRIES 位(寄存器 0x2C)设置在检测到信道被占用之后设置 CSMA-CA 的最大数。 寄存器 CSMA_SEED_0 和 CSMA_SEED_1 位(寄存器 0x2D,0x2E)定义 AT86RF212 的避退时间 随机数发生器的随机数种子。 寄存器 MAX_BE 和 MIN_BE 位(寄存器 0x2F)分别定义 CSMA 避退指数的最大值和最小值。 5.2.3 RX_AACK_ON—接收及自动 ACK RX_AACK 扩展操作模式处理 IEEE802.15.4 合规帧的接收与自动应答。 RX_AACK 算法的一般流见于图 5-9。图中灰色阴影部分为 IEEE802.15.4 合规帧的 RX_AACK 处 理标准流,参看 5.2.3.2 小节。所有其他程序均为特别操作模式或帧结构例外情况,请参考 5.2.3.3 小节。 在 RX_AACK_ON 状态中,AT86RF212 收听输入帧。在检测非零 PHR 时,AT86RF212 转换为 BUSY_RX_AACK 状态并对 MAC 头(MHR)的帧内容进行解析,参看 6.1.2 小节。 46 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 如果收到帧的 MAC 寻址自动内容(参考 IEEE802.15.4 帧结构,见 7.2.1 小节)经过帧滤波器, 则发出地址匹配中断请求 IRQ_5(AMI)。参考地址值将存储在寄存器 0x20-0x2B(短地址,PAN ID 和 IEEE 地址)。帧滤波器操作详细介绍见于 6.2 小节。 通常,在节点设置为普通设备或 PAN 网络协调器,如果帧经过帧滤波器且 FCS 有效,那么中断 请求 IRQ_3(TRX_END)将指示帧。在完成帧接收之后,发出中断请求。然后,微控制器可读取帧 数据。如果启用混杂模式,将应用例外情况;参看 5.2.3.2 小节。在此情况下,对所有帧发出中断 请求 IRQ_3。 在接收过程中,AT86RF212 解析接收数据或 MAC 命令帧的帧控制字段第 5 位(ACK 要求)以便 校验是否要求应答(ACK)回应。在此情况下,如果帧符合三级滤波规则(见 IEEE802.15.4-2006, 参看 7.5.6.2 小节),那么无线电发送器自动生成并发送 ACK 帧并返回 RX_AACK_ON 状态。 默认设定为,在接收数据或 MAC 命令帧的最后一个符号之后,在一个周转周期后(12 个符号, 见 IEEE 802.15.4, 参看 6.4.1 小节)发送应答帧。或者,在非合规网络中,寄存器 AACK_ACK_TIME 位(寄存器 0x2E,XAH_CTRL_1)可将此延时缩短至 2 个符号。 ACK 应答帧未完成子字段的内容依寄存器 AACK_SET_PD 位设置(寄存器 0x2E,CSMA_SEED_1)。 从相应地接收帧复制序列数。 如果设置了寄存器 AACK_DIS_ACK 位(寄存器 0x2E, CSMA_SEED_1),即使要求也不会发送应 答帧。 在卡槽操作中,由引脚 11(SLP_TR)控制应答帧发送的开始,参考 5.2.3.5 小节。 RX_AACK 处理状态由寄存器子字段 TRAC_STATUS(寄存器 0x02,TRX_STATE)指示。表 5-7 列 出了相应值。 表 5-7 值 TRAC_STATUS 寄存器位的 RX_AACK 中断请求 名称 说明 0 成功 成功完成处理 2 等待应答成功 7 无效 处理等待一个周转周期符号直至发送 应答或要求引脚 11(SLP_TR)上升沿 开始发送(卡槽操作) 当请求 RX_AACK 处理时,为默认值 请注意通常 AT86RF212 的 PHY 模式及扩展特性设置独立于 RX_AACK 扩展操作模式工作。 8168B-MCU Wireless-03/09 47 图 5-9 RX_AACK 流程图 TRX_ STATE = RX_ AACK_ON, TRAC _ STATUS = 无效 检测 SHR TRX_ STATE = BUSY _ RX_ AACK 发出 _2 (RX_ START ) 查找 Note 1 : 附注 1: Address match 混杂模式 MHR 预留帧 , Promiscuous Mode and Reserved Frames : 地址匹配,混杂模式与预留帧: - A radio transceiver in promiscuous -无线电收发器处于混杂模式或设 mode or configured to receive reserved frames handles received frames passing 置为预留帧将处理通过第三级 the third level of filtering - for details refer to the descritption of 滤波的接收帧, Promiscuous Mode and Reserved -详情请参看混杂模式或预留帧类 Frame Types 型 ? 地址是否匹配? 否 是 AACK_PROM _MODE == 1 ? 发出 IRQ_5 (AMI) N FCF [2 :0 ] >3? Y 接收 N Y Receive PSDU PSDU FCS 有效 || AACK_ PROM _ MODE ? Receive PSDU N Y Y _3 I 发出 IRQ (TRX_ END) N Note 2 : 附注 2: conditions Additional : - ACK requested & 其他条件: - ACK _ DIS _ ACK == 0 & - frame _ version < = AACK _ FVN _ MODE -请求应答,与 -ACK_DIS_ACK= =0, 与 -frame_version<=AACK_FVN_MODE AACK_ UPLD_ RES _ FT == 1 ? N ? FCS 有效? Y 请求 ACK?? ( 2) (参看附注 2) 发出 IRQ _3 (TRX_END) Y Issue IRQ _ 3 (TRX_ END ) TRAC _ STATUS = 应答等待成功 N 非卡槽操作? Y 等待 等待 (AACK_ ACK_ TIME) (AACK_ ACK_ TIME) 等待 (SLP _ TR ((pin引11 , 脚 11) , , (SPL_TR),上升沿) rising edge ) 发送应答 TRX_ STATE = RX_ AACK_ ON , TRAC _ STATUS = 48 AT86RF212 成功 8168B-MCU Wireless-03/09 AT86RF212 5.2.3.1 寄存器配置 概述 如下文所述, 应在将 AT86RF212 切换至 RX_AACK_ON 之前进行 RX_AACK 配置,参看 5.2.1。 表 5-8 综述了所有影响 RX_AACK 处理功能的寄存器位。要进行帧过滤处理,则还须设置地 址寄存器以便匹配要求的地址。 表 5-8 RX_AACK 配置位概述 寄存器地址 寄存器位 0x20,0x21 0x22,0x23 0x24 … 0x2B 寄存器名称 SHORT_ADDR_0/1 PAN_ADDR_0/1 IEEE_ADDR_0 … IEEE_ADDR_7 0x0C RX_SAFE_MODE 7 说明 设置帧滤波器,参看 6.2.1 动态帧缓冲保护,参看 9.7 小节 0x17 1 AACK_PROM_MODE 激活混杂模式 0x17 2 AACK_ACK_TIME 修改自动应答开始时间 0x17 4 AACK_UPLD_RES_FT 激活预留帧类型接收,须接 收非标准合规帧,参看 5.2.3.3 0x17 5 AACK_FLTR_RES_FT 滤波器预留帧类型和数据 帧类型相同,须进行非标准 合规帧滤波,参看 5.2.3.3 0x2C 0 SLOTTED_OPERATION 如果设置,则须由引脚 11 (SLP_TR)触发应答发出, 参看 4.6 小节 0x2E 3 AACK_I_AM_COORD 将设备定义为 PAN 网络协 调器,参看 5.2.3.2 0x2E 4 AACK_DIS_ACK 禁用应答生成 0x2E 5 AACK_SET_PD 应答帧控制字段(FCF)中 的未完成数据信号发出 0x2E 7:6 AACK_FVN_MODE 控制 ACK 生成,由 FCF 帧 版本号决定 不同设备类型或操作模式的 RX_AACK 配置位使用介绍见于以下各章节。在以下两节未提及 的配置位应按照表 12-2 设置为其复位值。 表 5-8 中所述的所有寄存器介绍见于 5.2.6 小节。 5.2.3.2 IEEE 合规场景配置 设备未作为 PAN 网络协调器操作 表 5-9 列出了典型 IEEE 802.15.4 合规设备设置要求的 RX_AACK 寄存器配置。 8168B-MCU Wireless-03/09 49 表 5-9 IEEE 802.15.4 设备配置 寄存器地址 寄存器位 0x20,0x21 0x22,0x23 0x24 … 0x2B 寄存器名称 SHORT_ADDR_0/1 PAN_ADDR_0/1 IEEE_ADDR_0 … IEEE_ADDR_7 说明 设置帧滤波器,参看 6.2.1 小节 0:禁用帧保护 1:启用帧保护 0:收发器在非卡槽模式中 操作 1:收发器在卡槽模式中操 作,操作 5.2.3.5 小节 依 照 FCF 帧 版 本 数 控 制 ACK 操作 b00:只对版本号带 0 的帧 进 行 应 答 , 即 符 合 IEEE 802.15.4-2003 帧 b01: 只对版本号带 0 或 1 的帧进行应答,即符合 IEEE 802.15.4-2003/2006 b10:只对版本号带 0 或 1 或 2 的帧进行应答 b11:应答所有帧,无论 FCF 帧版本号是什么 0x0C 7 RX_SAFE_MODE 0x2C 0 SLOTTED_OPERATION 0x2E 7:6 AACK_FVN_MODE 附注 ・短地址默认值为 0xFFFF。因此,如果段地址已设置,则帧滤波器只接收带有广播地址或 IEEE 地址的帧。 ・在 IEEE802.15.4-2003 标准中,帧版本子字段仍不存在,但标记为预留。依此标准,预留 字段必须设置为零。同时,IEEE802.15.4-2003 标准要求在接收后忽视已接收位。因此,标 准中存在矛盾,可通过两种方式中断: 1. 如 果 按 照 IEEE802.15.4-2003 的 规 定 , 网 络 只 允 许 访 问 节 点 , 那 么 AACK_FVN_MODE 应设置为 0。 2. 如果设备应不计帧版本,应答所有帧,那么 AACK_FVN_MODE 应设置为 3。但是, 这回导致与并存的 IEEE 802.15.4-2006 标准的合规网络冲突。 PAN 网络协调器的情况相同,详见下文。 PAN 网络协调器 表 5-10 列出了设置 PAN 网络协调器设备所需的 RX_AACK 寄存器配置。 50 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 表 5-10 PAN 网络协调器配置 寄存器地址 寄存器位 寄存器名称 0x20,0x21 SHORT_ADDR_0/1 0x22,0x23 PAN_ADDR_0/1 0x24 IEEE_ADDR_0 … … 0x2B IEEE_ADDR_7 0x0C 7 RX_SAFE_MODE 0x2C 0 SLOTTED_OPERATION 0x2E 0x2E 3 5 AACK_I_AM_COORD AACK_SET_PD 0x2E 7:6 AACK_FVN_MODE 说明 设置帧滤波器,参看 6.2.1 小节 0:禁用帧保护 1:启用帧保护 0:收发器在非开槽模式中操作 1:收发器在开槽模式中操作,操 作 5.2.3.5 小节 1:设备为 PAN 网络协调器 0:帧未完成子字段为 FCF 中的 0 1:帧未完成子字段为 FCF 中的 1 依照 FCF 帧版本数控制 ACK 操作 b00:只对版本号带 0 的帧进行应 答,即符合 IEEE 802.15.4-2003 帧 b01: 只对版本号带 0 或 1 的帧进 行 应 答 , 即 符 合 IEEE 802.15.4-2003/2006 b10:只对版本号带 0 或 1 或 2 的 帧进行应答 b11:应答所有帧,无论 FCF 帧版本 号是什么 混杂模式或嗅探器 混杂模式介绍见于 IEEE802.15.4-2006,第 7.5.6.5 小节。在图 5-9 中,也列出了此模式。按照混杂 模式中的 IEEE 802.15.4-2006,MAC 子层将经过带有正确的 FCS 的接收帧达到下一个更高级层, 且未经处理。这表示接收帧不应自动应答。 为了支持嗅探器和混杂模式的应用,只将 IEEE802.15.4-2006,第 7.5.6.2 小节定义的第二级滤波 器规则应用于接收帧。 表 5-11 列出了在混杂模式中操作的设置典型 IEEE802.15.4 合规设备所需的 RX_AACK 寄存器配 置。 8168B-MCU Wireless-03/09 51 表 5-11 混杂模式的配置 寄存器地址 寄存器位 0x20,0x21 0x22,0x23 0x24 … 0x2B 0x17 1 0x2E 4 寄存器名称 SHORT_ADDR_0/1 PAN_ADDR_0/1 IEEE_ADDR_0 … IEEE_ADDR_7 AACK_PROM_MODE AACK_DIS_ACK 说明 各个地址均被设置为: 0x00 1:激活混杂模式 1:禁用应答生成 为了发出数据帧可用性信号,即使 FCS 不可用,也会发出 IRQ_3(TRX_END)。因此,必须 在 IRQ_3(TRX_END)之后读取寄存器 RX_CRC_VALID 位(寄存器 0x06,PHY_RSSI)以便 验证带有有效 FCS 帧的接收。另外,可对 RX_STATUS 的第 7 字节位进行评估,参看第 4.3.2 小节。 如 果 在 混 杂 模 式 中 操 作 的 设 备 接 收 到 带 有 通 过 三 级 滤 波 的 有 效 FCS 帧 ( 依 IEEE802.15.4-2006,第 7.5.6.2 小节),将发送应答(ACK)帧。但是,按照混杂模式的定义, 即使请求应答,也不能应答接收到的帧。因此,寄存器 AACK_DIS_ACK 位(寄存器 0x2E, CSMA_SEED_1)必须设置为 1,以便禁用 ACK 生成。 在所有接收模式中,按照 6.2 小节中所示的滤波器规则,如果接收帧匹配节点地址,发出中 断请求 IRQ_5(AMI)。 也可使用 RX_ON 状态(基本操作模式)执行混杂模式,参看 5.1 小节。但是,RX_AACK 处理也会启用自动应答和非破坏性帧过滤处理等扩展功能。 5.2.3.3 非 IEEE 合规场景配置 预留帧类型 在 RX_AACK 模式中,也可处理带有预留帧类型的帧,参看 6.1.2.2 小节,表 6-2。当执行 所有权非标准合规协议时,可能有此要求。预留帧类型接收为 AT86RF212 帧滤波器的一项 扩展功能,参看 6.2 小节。可将预留帧作为数据帧处理,或允许完全由帧滤波器旁路处理。 图 5-9 中的流程图列出了相应的单品机状态。 除了表 5-9 或表 5-10,下表 5-12 列出了接收预留帧类型节点设置所需的 RX_AACK 寄存器 配置。 表 5-12 接收预留帧类型的 RX_AACK 配置 寄存器地址 寄存器位 寄存器名称 说明 0x17 4 AACK_UPLD_RES_FT 1:启用预留帧类型接收 0x17 5 AACK_FLTR_RES_FT 滤波器预留帧类型与数据 帧类型相同,参看以下附 注 0:禁用 1:启用 52 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 可选择两张不同的方式以处理预留帧类型: 1. AACK_UPLD_RES_FT=1,AACK_FLTR_RES_FT=0 中断请求 IRQ_3(TRX_END)将指示含有预留帧类型的任何未破坏帧。不对这些帧应用其他帧 过滤处理。一直不生成中断请求 IRQ_5(AMI),且不发送应答。 2. AACK_UPLD_RES_FT=1,AACK_FLTR_RES_FT=1 将任何带有预留帧类型的帧作为 IEEE802.15.4 合规数据帧处理。这意味着在地址匹配之后, 生成中断请求 IRQ_5(AMI)。如果地址匹配且帧正确(FCS 有效),则只会生成中断请求 IRQ_3(TRX_END)。那么,如果接收帧的应答(ACK)请求子字段做出相应设置,则发送应 答。 短应答帧(ACK)开始时序 寄存器 AACK_ACK_TIME 位(寄存器 0x17,XAH_CTRL_1) ,参看表 5-13,定义了帧接收结束 与应答帧发送开始之间的延时。 表 5-13 非卡槽操作的 ACK 开始时序 寄存器名称 说明 寄 存 寄 器 地 存 器 址 位 0x17 2 AACK_ACK_TIME 0:12 符号周期的标准合规应答延时 1:2 符号周期(BPSK-20,O-QPSK-{100,200,400})或 3 符 号周期的(BPSK-40,O-QPSK-{250,500,1000})缩短应答延 时。 请注意无论其他配置如何,均可在各个场景中使用此功能。但是,当使用高数据传输速率时,特 别使用较短的应答时序以便提高电池的使用寿命并提高总数据吞吐量;参看 7.1.4.3 小节。 在卡槽操作模式中,实际上是通过引脚 11(SLP_TR)开始应答发送。表 5-14 列出了 AT86RF212 可使用的带有适当延时的触发引脚。因此不能提早开始发送。 表 5-14. ACK 卡槽操作开始时序 寄存器地址 寄存器位 寄存器名称 0x17 2 AACK_ACK_TIME 说明 0:在 6 个符号周期之后,可 触发应答帧发送 1:在 3 个符号周期之后,可 触发应答帧发送 5.2.3.4 RX_AACK_NOCLK—RX_AACK_ON 无 CLKM 如果 AT86RF212 正在收听一个输入帧且微控制器并无运行应用,则可使微控制器掉电以便减少 总系统功耗。AT86RF212 通过 RX_AACK_NOCLK 和 BUSY_ RX_AACK_NOCLK 状态支持在时 钟同步模式中(参看 4.2 小节)运行这种特殊的系统掉电模式,参看图 5-8。上述功能实现了与引 脚 17(CLKM)禁用的 RX_AACK_ON 和 BUSY_RX_AACK 状态相同的功能。 8168B-MCU Wireless-03/09 53 通过引脚 11(SLP_TR)的上升沿,由 RX_AACK_ON 状态进入 RX_AACK_NOCLK 状态。中断 请求 IRQ_3(TRX_END)指示的有效帧接收,或引脚 SLP_TR 的下降沿均会导致自动返回 RX_AACK_ON 状态。 如果接收帧通过帧过滤处理且带有正确的 FCS,则该接收帧被视为有效。如果请求 ACK,无线 电收发器将进入 BUSY_RX_AACK 状态并继续 5.2.3 小节中所述的程序。 在 RX_AACK 处理完成之后,无线电收发器仍处于 RX_AACK_ON 状态中。AT86RF212 只有在 引脚 11(SLP_TR)的下一个上升沿才会再次进入 RX_AACK_NOCLK 状态。 在 CLKM 禁用/启用的情况下的时序和性能如 4.6 小节所述。 请注意 RX_AACK_NOCLK 不适用于卡槽操作模式(参看 5.2.3.5)。 5.2.3.5 卡槽操作-开槽应答 在使用卡槽操作的网络中,应答帧的开始及其确切时序,必须由微控制器提供。信标网络中的应 答发送确切时序要求介绍见于 IEEE802.15.4-2006,第 7.5.6.4.2 小节。AT86RF212 与微控制器配合 使 用 可 支 持 开 槽 应 答 操 作 。 通 过 将 寄 存 器 SLOTTED_OPERATION 位 ( 寄 存 器 0x2C , XAH_CTRL_0)设置为 1,启用此模式。 如果在 RX_AACK 模式中发送应答(ACK)帧,无线电收发器要求在引脚 11(SLP_TR)的上升 沿实际开始发送。在此等待期间,收发器提供寄存器 TRAC_STATUS 位(寄存器 0x02, XAH_CTRL_0)报告 SUCCESS_WAIT_FOR_ACK(应答等待成功),参看图 5-9。在卡槽操作中, 中断请求 IRQ_3(TRX_END)的发出和应答帧引脚的启动之间的最小延时为 3 个符号期间。 图 5-10 列出了卡槽操作中的 RX_AACK 处理时序。应答帧在接收了最后一个数据符号或 MAC 命 令帧(由中断请求 IRQ_3 指示)3 个符号周期之后准备好进行发送。由微控制器通过引脚 11 (SLP_TR)的上升沿开始应答帧发送,然后开始 tTR10. 54 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 图 5-10 卡槽操作的 RX_AACK 处理时序示例 时序 SFD 帧类型 TRX_ STATE ( 数据帧(ACK=1) RX_AACK_ON BUSY_RX_AACK BUSY_RX_AACK RX/TX 帧传输 应答帧(帧未完成=0) RX TX IRQ RX_AACK_ON RX TRX_END tIRQ _ SLP_TR 已收到 3 个符号 SLP _TR tTR 10 TRAC_STATUS ... SUCCESS _WAIT_FOR _ACK SUCCESS 5.2.3.6 时序 RX_AACK 处理的一般时序示例如图 5-11 所示。在此示例中,接收的是带应答请求的数据帧。 AT86RF212 在 SFD 检测之后转换为 BUSY_RX_AACK 状态。TRX_END 中断请求指示帧接收完 成。此例禁用 IRQ_2(TX_START) 和 IRQ_5(AMI)中断请求。在默认应答帧开始时序下,在一 个周转周期(12 个符号)之后自动发送应答帧。中断延期 t9 的规定见于 10.4 小节。 图 5-11 RX_AACK 处理时序示例 TRX_ STATE (ACK=1) 数据帧 SFD 帧类型 RX_AACK_ON RX/TX 帧传输 应答帧(帧未完成=0) RX_AACK_ON BUSY_RX_AACK RX TX RX TRX_END IRQ tIRQ 一个周转周期 (AACK_ACK_TIME) TRAC_STATUS ... SUCCESS _WAIT_FOR _ACK SUCCESS 5.2.4 TX_ARET_ON—带自动重传及 CSMA-CA 重试的发送 TX_ARET 控制操作模式支持 IEEE802.15.4-2006 所规定的帧发送处理。如 5.2.1 小节所述,通 过在寄存器子字段 TRX_CMD(寄存器 0x02,TRX_STATE)写入 TX_ARET_ON 开始此处理。 如果在 TX_ARET 模式中开始发送,那么如 IEEE802.15.4-2006,第 7.5.1.4 小节所定义的, AT86RF212 将执行 CSMA-CA 算法。如果 CCA 报告 IDLE,则由帧缓冲发送帧, 8168B-MCU Wireless-03/09 55 如果请求应答帧,那么无线电收发器将自动校验应答回复。只要未收到有效应答或已超过帧重传 数量(MAX_FRAME_RETRIES)则重复基于 CSMA-CA 的发送处理。 中断请求 IRQ_3(TRX_END)指出 TX_ARET 处理的完成,参看 5.2.5 小节。 56 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 图 5-12 TX_ARET 流程图 TRX_STATE = TX_ARET_ON 帧开始 Frame start TX_START or 或 SLP_TR=H TRX_STATE = BUSY_TX_ARET TRAC_STATUS = INVALID 无效 是Y frm_ctr = 7 否 N MAX_CSMA_RETRIES == 7 ? frm_ctr = 0 csma_ctr = 0 CSMA-CA, csma_ctr++ 否 N CCA 结果 CCA Result Failure 失败 csma_ctr > MAX_CSMA_RETRIES ? Y Success 成功 是 帧发送 Frame transmit, frm_ctr++ 要求 ACK? ? ACK requested 否N Y ACK receive ACK 接收单元暂停 until timeout 是Y 否N frm_ctr > MAX_FRAME_RETRIES ? 否N ACK 是否有 ACK valid? 效? 是Y 是Y Data 据 Pending 数 未 ?完 成? N 否 TRAC_STATUS = NO_ACK TRAC_STATUS = SUCCESS_DATA_PENDING TRAC_STATUS = SUCCESS TRAC_STATUS = CHANNEL_ACCESS_FAILURE Issue IRQ_3 (TRX_END) TRX_STATE = TX_ARET_ON 8168B-MCU Wireless-03/09 57 说明 执行的 TX_ARET 算法如图 5-12 所示。 在启用 TX_ARET 模式之前(参看 5.2.1 小节),应执行 5.2.2 中所述的基本配置步骤。此外,建 议先在帧缓冲中写入 PSDU 发送数据。 可通过引脚 11(SLP_TR)上升沿或在寄存器子字段 TRX_CMD(寄存器 0x02,TRX_STATE)写 入 TX_START 命令开始执行发送。 若 CSMA-CA 算法发现信道被占有,将重复此步骤直至 MAX_CSMA_RETRIES(寄存器, 0x2C,XAH_CTRL_0)。如果 CSMA-CA 在 MAX_CSMA_RETRIES 之后未发现净信道,将取消 TX_ARET 操作,发出中断请求 IRQ_3(TRX_END)并在寄存器 TRAC_STATUS 位(寄存器 0x02, TRX_STATE)回复 CHANNEL_ACCESS_FAILURE。 在帧发送过程中,无线电收发器会解析 MAC 头(MHR)帧第 5 位以便校验是否要求 ACK 回复。 若 未 要 求 ACK , 无 线 电 收 发 器 将 在 帧 发 送 完 成 后 直 接 发 出 IRQ_3(TRX_END) 。 寄 存 器 TRAC_STATUS 为(寄存器 0x02,TRX_STATE)设置为 SUCCESS。 若要求 ACK,那么无线电收发器将在发送之后自动切换至接收模式,等待有效的 ACK 回复(即, 匹配序列号和正确的 FCS)。在收到有效的 ACK 帧之后,将对此帧的未完成子字段进行解析,状 态寄存器的 TRAC_STATUS 位相应地更新为 SUCCESS 或 SUCCESS_DATA_PENDING,参看表 5-15。同时,结束整个 TX_ARET 处理,并发出中断请求 IRQ_3(TRX_END)。 如果在暂停时限内未收到有效 ACK(参看 5.2.4.1 小节),无线电收发器将重试整个处理,(基于 CSMA-CA 的帧传输)直至帧重传次数上限已满,见寄存器 MAX_FRAME_RETRIES 位(寄存器 0x2C,XAH_CTRL_0)。在此情况下,TRAC_STATUS 变为 NO_ACK,TX_ARET 处理完成,并发 出中断请求 IRQ_3(TRX_END)。 表 5-15 总 结 了 与 TX_ARET 处 理 对 于 的 在 寄 存 器 子 字 段 TRAC_STATUS 中 ( 寄 存 器 0x02,TRX_STATE)的扩展操作模式结果代码。 表 5-15 寄存器 TRAC_STATUS 位的 TX_ARET 处理结果代码注释。 值 名称 说明 0 SUCCESS 处理收到有效 ACK 回复,或,在未要 求 ACK 的情况下,在成功发送帧之 后,显示此代码。 1 SUCCESS_DATA_PENDING 等同于 SUCCESS,并指示已设定接收 帧的未完成位(见 6.1.2.2 小节)。 58 3 CHANNEL_ACCESS_FAILURE 5 NO_ACK 7 INVALID AT86RF212 在 CSMA-CA 达 到 MAX_CSMA_RETRIES 之后信道仍 被占用。 在所有重传尝试中均为收到应答帧。 进 入 TX_ARET 模 式 直 至 发 出 IRQ_3(TRX_END) 8168B-MCU Wireless-03/09 AT86RF212 若 MAX_CSMA_RETRIES=7,则在不执行的 CSMA-CA 的情况下开始及时 TX_ARET 处理,此 时可支持信标使能网络操作。而且,若不设定 MAX_CSMA_RETRIES 的值,则只执行一次帧发 送。 请注意应答接收程序不会覆盖帧缓冲内容。在整个 TX_ARET 过程中均不会改动帧缓冲内的发送 数据。自动删除接收帧,只保留应答帧。 5.2.4.1 应答暂停 若在帧发送之后须收到应答(ACK)帧,那么 AT86RF212 将设置一个暂停直至有效 ACK 帧到达。 此暂停时限(macAckWaitDuration)的设置如[1]所述: macAckWaitDuration[符号周期]= aUnitBackoffPeriod+aTurnaroundTime+phySHRDuration+6・phySymbolsPerOctet, 在此公式中,6 代表应答帧中的 PHY 标头八位字节加 PSDU 的八位字节。 特别是执行 PHY 模式(参看 7.1 小节)的时候,此公式会产生下述值: ・BPSK: macAckWaitDuration=120 符号周期 ・O-QPSK: macAckWaitDuration=54 符号周期 请注意在 PHY 模式中,所谓的[符号周期]指的都是相应同步标头的符号长度,有关符号周期的详 细信息参看 7.1.3 小节。 5.2.4.2 时序 TX_ARET 处理的时序示例见图 5-13。在此示例中,发送的是带有应答请求的数据帧。引脚 11 (SLP_TR)启动帧传输。由于 MIN_BE 被设置为零,原 CSMA-CA 的避退周期长度也为零。因 此,CSMA-CA 持续时间 tCAMA-CA 只有 8 个 CCA 测量周期符号。若 CCA 返回 IDLE(此例假设), 则表示帧已发送。 此后,AT86RF212 切换至接收模式并等待应答回复,即寄存器 TRAC_STATUS 子字段(寄存器 0x02,TRX_STATE)显示 SUCCESS_WAIT_FOR_ACK。在 a TurnaroundTime+aUnitBackoff(一 个周转周期+一个单元避退周期)之后,必须开始 ACK 帧的传输。在包括帧发送的整个处理过程 中 , 等 待 ACK 及 ACK 接 收 时 , 无 线 电 收 发 器 状 态 寄 存 器 TRX_STATUS ( 寄 存 器 0x01,TRX_STATUS)将发送 BUSY_TX_ARET 信号。 中 断 请 求 IRQ_3(TRX_END) 指 示 应 答 帧 的 成 功 接 收 。 状 态 寄 存 器 TRX_STATUS ( 寄 存 器 0x01,TRX_STATUS)转换为 TX_ARET_ON。同时,寄存器 TRAC_STATUS 转化为 SUCCESS 或 SUCCESS_DATA_PENDING。当应答帧的未完成子字段设置为 1 时,转换为后者。 8168B-MCU Wireless-03/09 59 图 5-13 TX_ARET 处理时序示例(无待 ACK 帧待处理数据位设置) 应答帧 ACK Frame 数据帧(应答=1) Data Frame (ACK=1) FrameType 帧类型 Frame on Air time 时序 帧传输 应答暂停开始 ACK start timeout 20 symbols 20 符号 TRX_STATE TX_ARET_ON RX/TX BUSY_TX_ARET RX RX TX CSMA-CA TX_ARET_ON 32 µs SLP_TR IRQ TRX_END tCSMA-CA (8 symbols) Typ. Delays 标准延时 TRAC_STATUS aTurnaroundTime 一个周转周期 (12 symbols) 16 µs (8 符号) SUCC. / INVALID 成功/无效 Register settings: 寄存器设置 0x2C: MAX_FRAME_RETRIES=0 tIRQ 12 符号 INVALID SUCCESS 无效 0x2C: MAX_CSMA_RETRIES=0 成功 0x2E: MIN_BE=0 : 5.2.5 中断处理 扩展操作模式中的中断处理与基本操作模式中的相似,通过设置寄存器 0x0E(IRQ_MASK)位 的相应位激活中断。 在 RX_AACK 和 TX_ARET 模式中,存在下列指示帧接收与发送状态的中断请求: ・IRQ_2(RX_START) ・IRQ_3(TRX_END) ・IRQ_5(AMI) 在 RX_AACK 模式中,建议只激活中断请求 IRQ_3(TRX_END)。只在帧滤波器(见 6.2 小节)报 告匹配地址及 FCS 有效(见 6.3 小节)时发出此中断请求。其他中断请求的使用可供备选。 在接收帧之后,RX_START 中断请求指示已找到正确的同步标头。随 PHR 之后发出此中断请求。 中断请求 AMI 指示地址匹配,参看 6.2 小节中的滤波器规则。 在接收帧之后,RX_START 中断指示检测到正确的同步标头(SHR)与非零 PHY 标头(PHR)。 在 PHR 之后发出此中断信号。 在 TX_ARET 处理过程中,无线电收发器会自动禁用多个中断请求。与 6.6 小节所述内容相反, CCA 算法(CSMA-CA 的一部分)不生成中断请求 IRQ_4(CCA_ED_READY)。而且,在 TX_ARET 应答接收的过程中不会生成中断请求 RX_START 和 AMI。 5.2.6 寄存器说明 寄存器概览 下列寄存器用于控制控制操作模式: 60 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 表 5-16 寄存器概览 寄存器地址 0x01 0x02 0x04 0x08 0x09 0x17 0x20 – 0x2B 寄存器名称 TRX_STATUS TRX_STATE TRX_CTRL_1 PHY_CC_CCA CCA_THRES XAH_CTRL_1 说明 无线电收发器状态,CCA 结果 无线电收发器状态控制,TX_ARET 状态 TX_AUTO_CRC_ON CCA 模式控制,见 6.6.6 小节 CCA ED 阈值设置,见 6.6.6 小节 RX_AACK 控制 帧滤波器配置 -短地址,PAN ID 及 IEEE 地址 -参看 6.2.3 小节 TX_ARET 控制,重传赋值控制 CSMA-CA 种子值 CSMA-CA 种子值,RX_AACK 控制 CSMA-CA 避退指数控制 0x2C XAH_CTRL_0 0x2D CSMA_SEED_0 0x2E CSMA_SEED_1 0x2F CSMA_BE 寄存器 0x01(TRX_STATUS): 只读寄存器 TRX_STATUS 显示无线电收发器的当前状态。通过在寄存器 TRX_CMD 位(寄存器 0x02,TRX_STATE)写入状态转换命令启动状态转换。 表 5-17 寄存器 0x01(TRX_STATUS) 7 6 5 4 位 CCA_DONE CCA_STATUS TRX_STATUS 名称 预留 R R R R 读取/写入 0 0 0 0 复位值 位 名称 读取/写入 复位值 3 TRX_STATUS R 0 2 TRX_STATUS R 0 1 TRX_STATUS R 0 0 TRX_STATUS R 0 ・第 7 位-CCA_DONE 参看 6.6 小节,在扩展操作模式中不做更新 ・第 6 位-CCA_STATUS 参看 6.6 小节,在扩展操作模式中不做更新 ・第 5 位-预留 ・4:0 位-TRX_STATUS 寄存器 TRX_STATUS 位发出当前无线电收发器状态信号。 表 5-18 无线电收发器状态 寄存器位 值 TRX_STATUS 0x00 0x01 0x02 0x06 0x08 0x09 0x0F(1) 0x11 0x12 0x16 0x19 0x1C 8168B-MCU Wireless-03/09 状态说明 P_ON BUSY_RX BUSY_TX RX_ON TRX_OFF(CLK 模式) PLL_ON (TX_ON) 睡眠 BUSY_RX_AACK BUSY_TX_ARET RX_AACK_ON TX_ARET_ON RX_ON_NOCLK 61 0x1D 0x1E 0x1F(2) RX_AACK_ON_NOCLK BUSY_RX_AACK_NOCLK STATE_TRANSITION_IN_PROGRESS 所有其他值均为预留值 附注:1. 在睡眠状态下不可访问寄存器。 2. 请勿试图在无线电收发器处于 STATE_TRANSITION_IN_PROGRESS(状态转换处理 中)的情况下开始另一个状态转换。 寄存器 0x02(TRX_STATE): AT86RF212 无线电收发器状态由寄存器 TRX_STATE 通过寄存器 TRX_CMD 位控制。通过读取 寄存器 TRX_STATUS 位(寄存器 0x01,TRX_STATUS)对成功的状态转换进行确认。 只读寄存器 TRAC_STATUS 位指示扩展操作模式处理的状态或结果。 表 5-19 寄存器 0x02 (TRX_STATE) 7 位 TRAC_STATUS 名称 R 读取/写入 0 复位值 位 名称 读取/写入 复位值 3 TRX_CMD R/W 0 6 TRAC_STATUS R 0 2 TRX_CMD R/W 0 5 TRAC_STATUS R 0 1 TRX_CMD R/W 0 4 TRX_CMD R/W 0 0 TRX_CMD R/W 0 7:5 位-TRAC_STATUS 寄存器 TRAC_STATUS 位指示 RX_AACK 及 TX_ARET 程序的状态。算法详细介绍及状态信息 说明见于 5.2.3 小节和 5.2.4 小节。 表 5-20 TRAC_STATUS 处理状态 寄存器位 值 说明 (1) TRAC_STATUS 0 SUCCESS 1 SUCCESS_DATA_PENDING 2 SUCCESS_WAIT_FOR_ACK 3 CHANNEL_ACCESS_FAILURE 5 NO_ACK 7(1) INVALID 所有其他值均为预留值 62 AT86RF212 RX_AACK X TX_ARET X X X X X X X 8168B-MCU Wireless-03/09 AT86RF212 附注:1.即使寄存器 TRAC_STATUS 位的复位值为 0,当开始 RX_AACK 及 TX_ARET 程序时, 程序也会将寄存器 TRAC_STATUS 位设置为=7(无效)。 ・4:0 位—TRX_CMD 对寄存器 TRX_CMD 的写入访问启动无线电收发器的状态转换: 表 5-21 状态控制寄存器 寄存器位 值 TRX_CMD 0x00 0x02 0x03 0x04(1) 0x06 0x08 0x09 0x16 0x19 状态转换至 NOP TX_START FORCE_TRX_OFF FORCE_PLL_ON RX_ON TRX_OFF(CLK 模式) PLL_ON (TX_ON) RX_AACK_ON TX_ARET_ON 所有其他值均为预留值,设计为 NOP。 附注:1.FORCE_PLL_ON 在睡眠状态,P_ON 状态,复位状态,TRX_OFF 状态和所有的*_NOCLK 状态,以及由 STATE_TRANSITION_IN_PROGRESS(状态转换处理中)转换为上述状态时无效。 寄存器 0x04(TRX_CTRL_1) TRX_CTRL_1 寄存器为多功能寄存器,用于控制多个操作模式和无线电收发器的设置 表 5-22 寄存器 0x04(TRX_CTRL_1) 7 6 5 4 位 8168B-MCU Wireless-03/09 名称 PA_EXT_EN TX_AUTO_CRC_ON RX_BL_CTRL R/W IRQ_2_EXT_E N R/W 读取/写入 R/W R/W 复位值 0 0 1 0 位 3 2 1 0 名称 SPI_CMD_MODE SPI_CMD_MODE 读取/写入 R/W SPI_CMD_MO DE R/W R/W IRQ_POLARIT Y R/W 复位值 0 0 0 0 63 ・第 7 位-PA_EXT_EN 参看 9.4 小节。 ・第 6 位-IRQ_2_EXT_EN 参看 9.5 小节。 ・第 5 位-TX_AUTO_CRC_ON 如设置,则寄存器 TX_AUTO_CRC_ON 位将自动生成 FCS。详细信息请参看 6.3 小节。 ・第 4 位-RX_BL_CTRL 参看 9.6 小节。 ・第 3:2 位-SPI_CMD_MODE 参看 4.4.1 小节。 ・第 1 位-IRQ_MASK_MODE 参看 4.7 小节 ・第 0 位-IRQ_POLARITY 参看 4.7 小节 寄存器 0x17(XAH_CTRL_1): XAH_CTRL_1 寄存器是扩展操作模式的控制寄存器。 表 5-23 寄存器 0x17(XAH_CTRL_1): 7 6 位 CSMA_LBT_MODE 名称 预留 5 4 AACK_FLTR_RES_FT AACK_UPLD_RES_FT 读取/写入 R/W R/W R/W R/W 复位值 0 0 0 0 位 3 2 1 0 名称 AACK_ACK_TIME AACK_PROM_MODE 读取/写入 预留 R R/W R/W 预留 R 复位值 0 0 0 0 ・第 7 位-预留 ・第 6 位-CSMA_LBT_MODE 参看 6.7.3 小节。 ・第 5 位-AACK_FLTR_RES_FT 只在 AACK_UPLD_RES_FT=1 时,设置此寄存器位。 若 AACK_FLTR_RES_FT=1,将按照 IEEE 802.15.4-2006 标准,第 7.2.1.1.1 小节的规定,对预留 帧类型进行与数据帧类似的滤波处理。在通过帧滤波器之后,发出中断请求 IRQ_5(AMI),参看 6.2 小节。 若 AACK_FLTR_RES_FT=0,则只对接收的预留帧进行有效 FCS 校验。 ・第 4 位-AACK_UPLD_RES_FT 64 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 若 AACK_UPLD_RES_FT=1,将对预留帧进行进一步处理并屏蔽接收帧。若接收帧的 FCS 有效, 则生成中断请求 IRQ_3(TRX_END)。 若结合 AACK_FLTR_RES_FT 位的配置,则将在 RX_AACK 处理中将此等帧作为 IEEE802.15.4 的合规数据帧处理。 反之,若 AACK_UPLD_RES_FT=0,则会锁定带有预留帧类型的帧。 ・第 3 位-预留 ・第 2 位-AACK_ACK_TIME 按照 IEEE 802.15.4 标准,第 7.5.6.4.2 小节的规定,在收到数据或 MAC 命令帧的最后一个符号后 12 个符号周期(一个周转周期),开始应答帧发送。提供将寄存器 AACK_ACK_TIME 位的值复 位,执行此操作。 或者,在 AACK_ACK_TIME=1 时,可将应答回复时间相应缩短,如表 5-24 所示。 表 5-24 缩短 ACK 回复时间(AACK_ACK_TIME=1) PHY 模式 ACK 回复时间[符号周期] BPSK-20, OQPSK-{100,200,400} 2 BPSK-40, OQPSK-{250,500,1000} 3 缩短的 ACK 回复时间专门用于高数据传输速率模式,参看 7.1.4 小节。 ・第 1 位-AACK_PROM_MODE 寄存器 AACK_PROM_MODE 位激活 RX_AACK 模式中的混杂模式;参看 IEEE 802.15.4-2006 标 准,第 7.5.6.5 小节。 若设置此位,那么即使不符合第三级滤波器规则或 FCS 无效,含有效 PHR 的输入帧仍会生成中 断请求 IRQ_3(TRX_END)。但是,寄存器 RX_CRC_VALID 位(寄存器 0x06)应做相应设置。 若帧通过第三级滤波器规则,将生成并发送应答帧,但寄存器 AACK_DIS_ACK 位(寄存器 0x2E,CSMA_SEED_1)可取消此操作。 ・第 0 位-预留 寄存器 0x2C(XAH_CTRL_0): 寄存器 0x2C(XAH_CTRL_0)是扩展操作模式中的控制寄存器。 表 5-25 位 寄存器 0x2C(XAH_CTRL_0) 7 6 5 MAX_FRAME_RETRIES 名称 R/W 读取/写入 复位值 8168B-MCU Wireless-03/09 4 0 0 1 1 65 位 3 2 1 MAX_CSMA_RETRIES 名称 SLOTTED_OPERATION R/W 读取/写入 复位值 0 1 R/W 0 0 0 ・7:4 位-MAX_FRAME_RETRIES MAX_FRAME_RETRIES 的设置规定了在接收器未收到应答时,TX_ARET 模式中的帧自动重传 尝试次数。 ・3:1 位-MAX_CSMA_RETRIES MAX_CSMA_RETRIES 规定了在取消处理之前,在 TX_ARET 模式中重复 CSMA_CA 程序的次 数。按照 IEEE802.15.4 的规定,MAX_CSMA_RETRIES 的有效范围为[0,1,...,5]。 若 MAX_CSMA_RETRIES=7,则会开始即时帧发送,不执行 CSMA-CA。这可能需要特别的开槽 应答操作。MAX_CSMA_RETRIES=6 为预设值。 ・第 0 位-SLOTTED_OPERATION 如果设置此位,那么 SLOTTED_OPERATION 位将激活卡槽操作模式中的 RX_AACK 应答生成, 参看 5.2.3.5 小节。 如果在信标使能网络或开槽运行模式中使用 RX_AACK 模式,参看 IEEE802.15.4-2006,第 5.5.1 小 节,那边寄存器 SLOTTED_OPERATION 位会指示将在退避槽边界发送应答帧(卡槽应答)。 如果设置此寄存器位,那么微控制器将通过引脚 11(SLP_TR)的上升沿开始应答帧发送。 寄存器 0x2D(CSMA_SEED_0): CSMA_SEED_0 寄存器是 TX_ARET 控制寄存器,含有 CSMA-CA 算法的部分 CSMA 种子。 表 5-26 寄存器 0x2D(CSMA_SEED_0) 7 6 5 4 3 2 1 0 位 CSMA_SEED_0[7:0] 名称 R/W 读取/写入 复位值 1 1 1 0 1 0 1 0 ・7:0 位-CSMA_SEED_0 此寄存器含有 CSMA_SEED 的后八位,即[7:0]。前三位是寄存器 CSMA_SEED_1 位的一部分(寄 存器 0x2E,CSMA_SEED_1)。CSMA_SEED 是随机数生产的种子,用于决定 CSMA-CA 算法中的 退避周期长度。 建议使用随机值对寄存器 CSMA_SEED 进行初始化。可通过寄存器 RND_VALUE 位(寄存器 0x06,PHY_RSSI)执行此操作,参看 9.2 小节。 66 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 寄存器 0x2E(CSMA_SEED_1): 寄存器 CSMA_SEED_1 含有部分 CSMA-CA 算法的 CSMA 种子,以及帧滤波器和 RX_AACK 处 理的控制位。 表 5-27 寄存器 0x2E(CSMA_SEED_1) 7 6 5 4 位 名称 AACK_FVN_MODE AACK_FVN_MODE AACK_SET_PD 读取/写入 R/W R/W R/W AACK_DIS_ ACK R/W 复位值 0 1 0 0 位 3 2 1 0 名称 AACK_I_AM_COORD CSMA_SEED_1 CSMA_SEED_1 CSMA_SEED_1 读取/写入 R/W R/W R/W R/W 复位值 0 0 1 0 ・7:6 位-AACK_FVN_MODE MAC 标头(MHR)的帧控制字段含有一个帧版本子字段。AACK_FVN_MODE 设置规定了 AT86RF212 的帧过滤处理和应答操作。无线电收发器按照此等寄存器位的内容使带有指定帧版本 号,号组群的帧通过,或忽略帧版本号。 因此,寄存器 AACK_FVN_MODE 位负责设定可接受的帧版本号最大值。帧版本号超过设定值的 接收帧不能通过帧滤波器,因而不予应答。 表 5-28 帧版本子字段决定帧应答 寄存器位 值 AACK_FVN_MODE 说明 0 版本号为 0 的应答帧 1 版本号为 0 或 1 的应答帧 2 版本号为 0 或 1 或 2 的应答帧 3 所有帧版本号的应答 请注意按照 IEEE802.15.4-2006,第 7.2.2.3.1 小节——应答帧 MHR 字段的规定,应答帧的帧版本字 段被设置为 0x00。 ・第 5 位-AACK_SET_PD 若向数据请求 MAC 命令帧发出应答,则会将 AACK_SET_PD 位的内容复制到应答帧的帧未完成 子字段中。 此外,如果寄存器 AACK_FVN_MODE 位(寄存器 0x2E,CSMA_SEED_1)被设置为接受帧版本 号非 0 或 1 的帧,那么寄存器 AACK_SET_PD 位的内容也会复制到任何针对帧版本为 2 或 3 且 安全使能子字段为 1 的 MAC 命令帧的应答帧未完成子字段中。 此操作的假设前提是标准值[1]的将来版本会改变辅助安全标头的长度或结构,因此,无法安全地 检测 MAC 命令帧实际上是否是数据请求命令。 8168B-MCU Wireless-03/09 67 ・第 4 位-AACK_DIS_ACK 如果设置此位,则在 RX_AACK 扩展操作模式下不发送任何应答帧(即使请求应答) 。 ・第 3 位-AACK_I_AM_COORD 如果节点为 PAN 网络协调器,则必须设置此寄存器位。此位用于 RX_AACK 模式下的帧过滤处 理。 若 I_AM_COORD=1 且数据或 MAC 命令帧中含有源地址寻址字段,那么只接受 PAN 网络协调器 发出的源 PAN 标识符与 macPANId 匹配的帧,详情参看 IEEE802.15.4,第 7.5.6.2 小节(三级滤波 器规则 6)。 ・2:0 位—CSMA_SEED_1 此等寄存器位是 CSMA_SEED 的前 3 位,[10:8]。其后一部分在寄存器 0x2D(CSMA_SEED_0) 中,详情请参看寄存器 CSMA_SEED_0。 寄存器 0x2F(CSMA_BE): 表 5-29 寄存器 0x2F(CSMA_BE) 7 6 位 5 4 名称 MAX_BE MAX_BE MAX_BE MAX_BE 读取/写入 R/W R/W R/W R/W 复位值 0 1 0 1 位 3 2 1 0 名称 MIN_BE MIN_BE MIN_BE MIN_BE 读取/写入 R/W R/W R/W R/W 复位值 0 0 1 1 ・7:4 位-MAX_BE 寄存器 MAX_BE 位设定在 CSMA-CA 算法中的退避指数最大值,应等于 macMaxBE,(参看 7.5.1.4 小节的表 71-[1])。有效值为[4’d8,4’d7,...,4’d3]。 ・3:0 位-MIN_BE 寄存器 MIN_BE 位设定在 CSMA-CA 算法中的退避指数最小值,应等于 macMinBE,(参看 7.5.1.4 小节的表 71-[1])。 有效值为[MAX_BE,( MAX_BE-1),...,4’d0]。 附注 ・若 MIN_BE=0 且 MAX_BE=0,则 CCA 退避周期总为 0。 68 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 6. 功能介绍 6.1 序言-IEEE802.15.4-2006 帧结构 图 6-1 为 IEEE802.15.4-2006 标准定义的物理层(PHY)帧结构概览。图 6-2 为介质访问控制层 (MAC)帧结构。 IEEE802.15.4 帧结构-PHY 层帧结构 PHY 协议数据单元(PPDU) SFD 前导序列 帧长度 PHY 载荷 图 6-1 5 octets 同步标头(SHR) 1octet (PHR) 最大值 127 为 octets 的 PHY 载荷 PHY 服务数据单元(PSDU) MAC 协议数据单元(MPDU) 6.1.1 PHY 协议数据单元(PPDU) 6.1.1.1 同步化标头(SHR) SHR 由四个八位字节的导言字段(全为零),加一个八位字节的帧起始定界符(SFD)组成。在 发送过程中,AT86RF212 自动生成 SHR,因此帧缓冲只含有 PHR 和 PSDU,参看 4.3.2 小节。 SHR 的发送分别需要 40 个二相相移键控(BPSK)调制符号和 10 个偏移四相移相键控(O-QPSK) 调制符号。表 6-1 列出了所选数据传输速率决定的 SHR 持续时间,也可参看 10.5 小节。 由于 SPI 数据率通常高于无线数据传输速率,因此微控制器可以在帧缓冲写入访问完成之前开始 发送。 在帧接收过程中,SHR 用于实现同步化。匹配 SFD 设定 PHR 的开始和后来的 PSDU 载荷数据。 6.1.1.2 PHY 标头(PHR) PHY 标头是 SHR 后面的八位字节。较次要的 7 位用于标示后面的 PSDU 帧长度,八位中最主要 的一位为预留位,按照 IEEE802.15.4 的合规帧要求,应设置为 0。即使保存 MSB,AT86RF212 也能发送及收到该字节。 在发送模式中,当进行帧缓冲写入访问时,须将 PHR 作为发送的第一个八位字节,参看 4.3.2 小 节。 在接收模式中,当进行帧缓冲读取访问时,PHR 是返回的第一个八位字节,参看 4.3.2。 6.1.1.3 PHY 载荷(PHY 服务数据单元,PSDU) PSDU 的可变长度在 1 个八位字节至 127 八位字节之间。PSDU 含有 MAC 协议数据单元(MPDU), 其中最后两个八位字节用于帧校验序列(FCS),参看 6.3 小节。 8168B-MCU Wireless-03/09 69 6.1.1.4 时序总结 表 6-1 为所选数据传输速率决定的上述帧结构时序信息。 表 6-1 PPDU 时序 PHY 模式 PSDU 位 速 标 头 位 速 持续时间 率[kbit/s] 率[kbit/s] SHR[μs] PHR[μs] PSDU 最大值[ms] BPSK (1) 20 20 2000 400 50.8 40 40 1000 200 25.4 (1) O-QPSK 100 100 300 80 10.16 250 250 160 32 4.064 O-QPSK (2) 200 100 300 80 5.08 400 100 300 80 2.54 500 250 160 32 2.032 1000 250 160 32 1.016 附注: 1.依照 IEEE802.15.4-2006 标准,见[1] 2.高数据传输模式,见 7.1.4 小节。 MAC 协议数据单元(MPDU) 6.1.2 图 6-2 为 MAC 层的帧结构。 IEEE802.15.4-2006 标准帧结构-MAC 层帧结构 图 6-2 MAC 协议数控单元(MPDU) 序列号 FCF ( MAC 标头(MHR) 目的 源 源地址 PAN ID 1 2 帧类型位 6.1.2.1 3 安全 使能位 4 5 6 7 8 CRC -16 辅助安全标头 0/4 /6 /8/10 /12 /14 /16/18/20 octets 0 (MFR ) MAC 服务数据单元(MSDU) 目的地址 PAN ID FCS MAC 载荷 寻址字段 0/5/6/10/14 octets 9 帧未 应答 PAN ID 预留 . 完成位 请求位 请求位 帧控制字段 (2 octets) 10 目的寻 址模式位 11 2 octets 12 13 帧版本位 14 15 源寻址 模式位 MAC 标头(MHR) MAC 标头由帧控制字段(FCF),序列号和长度可变的寻址字段组成。 6.1.2.2 帧控制字段(FCF) FCF 为 MPDU 的前两个八位字节。 [2:0]位:表示“帧类型” 。表 6-2 列出了 7.2.1.1.1 小节的[1]规定的帧类型。 70 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 表 6-2 帧类型字段 帧类型值 说明 b2 b1 b0 值 000 0 信标 001 1 数据 010 2 应答 011 3 MAC 命令 100-111 4-7 预留 上述为用于第三级滤波器规则的帧过滤处理,参看 7.2.1.1.1 小节[1]。 第 3 位指示此帧是否应用安全处理。该字段由帧滤波器评估。 第 4 位是“帧未完成”子字段。可在应答帧中设置该字段以便通知接收应答帧的节点:应答帧发 送节点还有数据要发送。 第 5 位是“应答请求”子字段。如果在非广播数据或 MAC 命令帧中设定该字段,那么接收方须 在 IEEE802.15.4 标准规定的时间内发送帧接收应答(即,12 个非信标使能网络符号内)。 第 6 位“PAN ID 压缩”子字段表示在一个含有目的地址和源地址的帧内,省略源寻址字段的 PAN ID。AT86RF212 的帧滤波器负责对此位进行评估。 [9:7]位:预留 [11:10]位: “目的寻址模式”子字段描述的是帧的目的地址结构。IEEE802.15.4 规定的地址模式 值总结见于表 6-3: 表 6-3 目的寻址模式与源寻址模式 寻址模式值 说明 b11 b10 值 00 0 没有 PAN 标识符与地址字段。 01 1 预留 10 2 地址字段含 16 位短地址 11 3 地址自动含 64 位长地址 如果目的地址模式为 2 或 3,即目的地址存在,那么寻址字段应由 16 位 PAN ID 加 16/64 位(依 模式而定)的地址组成。 [13:12]位: “帧版本”子字段规定帧对应的版本号,见表 6-4。按照 IEEE-802.15.4-2003 标准的 规定,它们是预留位。 该子字段应设置为 0x00,以说明帧与 IEEE802.15.4-2003 标准相符,或设为 0x01,以表示该帧为 IEEE802.15.4 标准帧。其余各子字段值均预留为将来使用。关于帧兼容性的详细信息,请参看 7.2.3 小节[1]。 8168B-MCU Wireless-03/09 71 表 6-4 帧版本字段 帧版本值 说明 b13 b12 值 00 0 符合 IEEE-802.15.4-2003 标准的帧 01 1 符合 IEEE-802.15.4-2006 标准的帧 10 2 预留 11 3 预留 [15:14]位是“源寻址模式”子字段,意义与“目的寻址模式”相同。 FCF(0-2,3,6,10-15)的寻址字段描述位将影响 AT86RF212 的帧滤波器,参看 6.2 小节。 6.1.2.3 IEEE802.15.4 标准 2003 与 2006 修订版的帧兼容性 符合 IEEE802.15.4-2006 标准的所有非安全帧与符合 IEEE802.15.4-2003 标准的非安全帧兼任,但 以下两种情况除外:带有信道页字段的协调器重排命令帧(见 7.3.8 小节[1])和任何 MAC 载荷 字段大于 MAC 安全载荷长度最大值的帧。 安全帧兼容性见表 6-5,其中标出了 IEEE802.15.4-2003 和 IEEE802.15.4-2006 标准的安全操作模 式。 表 6-5 帧兼容性 帧控制字段位指定 说明 安全使能 b3 0 帧版本 b13b12 00 0 01 1 00 1 01 非安全。帧可兼容于 IEEE802.15.4-2003 和 IEEE802.15.4-2006 标准。 非安全。帧不可兼容于 IEEE802.15.4-2003 和 IEEE802.15.4-2006 标准。 符合 IEEE802.15.4-2003 标准规定结构的安全 帧。IEEE802.15.4-2006 标准不支持此帧类型。 符合 IEEE802.15.4-2006 标准规定结构的安全 帧 6.1.2.4 序列号 FCF 后面的八位字节长序列号为指定帧标示,以便检测重复的帧发送。在 RX_AACK 状态下,会 将接收帧该字段的内容复制到应答帧中。 6.1.2.5 寻址字段 寻址字段含有多个地址以便进行地址匹配指示。目的地址(如果有)总为第一个,其后是源地址 (如果有)。每个地址字段均由 PAN ID 和设备地址组成。若两个地址都有,那么 FCF 中的“PAN ID 压缩”子字段保留一个 PAN ID,源 PAN ID 被省略。 72 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 请注意除了上述基本规则,IEEE802.15.4 标准还规限了不同 MAC 帧类型的有效地址组合。例如, 只有应答帧可出现省略两个地址的情况(源寻址模式=0 且目的寻址模式=0) 。AT86RF212 的帧滤 波器被设计应用于 IEEE802.15.4 标准的合规帧。可对单片机进行配置以便处理其他帧结构和例外 情况。 6.1.2.6 辅助安全标头 辅助安全标头在 MHR 的最后。该字段长度不定,用于设定安全处理所需信息,包括帧的实际保 护方法(安全等级)和使用的 MAC 安全 PIB 关键要素(见 7.6.1 小节[1]) 。只有在安全使能字段 b3(见 6.1.2.3 小节)设置为 1 时,才会显示此字段。有关结构设置的详细信息,请参看 7.6.2 小 节[1]。 6.1.2.7 MAC 服务数据单元(MSDU) 此为实际 MAC 载荷。其结构通常符号 IEEE802.15.4 标准中规定的独立帧类型描述。 6.1.2.8 MAC 页脚(MFR) MAC 页脚由两个八位字节的帧校验和(FCS)组成,详情参看 6.3。 6.2 帧滤波器 帧过滤是评估接收的帧是否与预设标准相符的程序,如源地址,目的地址或帧类型。按照 IEEE802.15.4-2006 标准的 7.5.6.2 小节的规定(第三级过滤),过滤程序用于接收帧并生成地址匹 配中断请求 IRQ_5(AMI)。 AT86RF212 帧滤波器只允许符合下列所有要求/规则(引自 IEEE802.15.4-2006,7.5.6.2 小节)的帧 通过: 1. 帧类型子字段不得含有预留帧类型。 2. 帧版本子字段不得含有预留值。 3. 如果帧含有目的 PAN 标识符,那么 PAN 标识符应与 macPANId 匹配或为广播 PAN 标识符 (0xFFFF)。 4. 如果帧含有短目的地址,那么该地址应与 macShortAddress 或广播地址(0xFFFF)匹配。反 之,若帧含有长目的地址,则该地址应与 aExtendedAddress 匹配。 5. 如果帧类型为信标帧,那么源 PAN 标识符应与 macPANId 匹配,除非 macPANId 等于 0x ffff, 在此情况下,无论源 PAN 标识符是什么均应接收信标帧。 6. 如果只有数据或 MAC 命令帧含有源寻址字段,那么只能接受 PAN 网络协调器发出的源 PAN ID 与 macPANId 匹配的帧。 此外,AT86RF212 还有两项附加要求: 7. 帧类型不得为应答(ACK)帧。 8. 至少应设置一个地址字段。 8168B-MCU Wireless-03/09 73 此外,接收帧的 FCF 还按照以下规则控制地址匹配,(由中断请求 IRQ_5(AMI)指示): 如果目的寻址模式为 0/1,源寻址模式为 0(见 6.1.2.2 小节),那么将不生成中断请求 IRQ_5。这 样就不会发出任何应答帧。 为了与 IEEE802.15.4-2003 标准后向兼容,可通过寄存器 AACK_FVN_MODE 位(寄存器 0x2E,CSMA_SEED_1)取消第三级滤波器规则 2(帧版本)。 在 扩 展 操 作 模 式 和 基 本 操 作 模 式 中 均 可 使 用 帧 过 滤 。 通 过 帧 滤 波 器 的 帧 会 生 成 中 断 请求 IRQ_5(AMI)(如果未屏蔽)。 附注 ・滤波器规则 1 受寄存器 AACK_FLTR_RES_FT 位和 AACK_UPLD_RES_FT 位影响,见 6.2.3 小 节。 ・滤波器规则 2 受寄存器 AACK_FVN_MODE 位影响,见 6.2.3 小节。 6.2.1 配置 如表 6-6 所述,可通过适当的帧滤波器地址变量和附加属性设置进行帧滤波器配置。 表 6-6 帧滤波器配置 寄存器地址 寄存器位 74 名称 说明 0x20,0x21 0x22,0x23 0x24 … 0x2B 7:0 SHORT_ADDR_0/1 PAN_ADDR_0/1 IEEE_ADDR_0 … IEEE_ADDR_7 按 照 [1] 所 述 , 设 置 macShortAddress,macPANId 和 aExtendedAddress 0x17 1 AACK_PROM_MODE 0:禁用混杂模式 1:启用混杂模式 0x17 4 AACK_UPLD_RES_FT 0:禁用预留帧类型接收 1:启用预留帧类型接收 0x17 5 AACK_FLTR_RES_FT 0x2E 7:6 AACK_FVN_MODE 滤波器预留帧类型,与数据帧类 型相似,见 6.2.2 小节 0:禁用 1:启用 FCF 帧版本号决定的帧接受标 准 b00:只接受版本号为 0 的帧, 即符合 IEEE802.15.4-2003 的帧 b01:只接受版本号为 0 或 1 的帧, 即符合 IEEE802.15.4-2006 的帧 b10:只接受版本号为 0 或 1 或 2 的帧 b11:接受所有帧,忽略 FCF 帧版 本号 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 6.2.2 预留帧类型处理 如 5.2.3.3 小 节 所 述 , 应 按 照 寄 存 器 0x17(XAH_CTRL_1) 的 AACK_UPLD_RES_FT 位 和 AACK_FLTR_RES_FT 位对预留帧类型进行处理,共有三种选项: 1. AACK_UPLD_RES_FT=1,AACK_FLTR_RES_FT=0: 如果帧带有 FCS 正确的预留帧类型,将发出中断请求 IRQ_3(TRX_END)。不对这些帧应用其他 帧过滤。不生成 IRQ_5(AMI),也不发送应答。 2. AACK_UPLD_RES_FT=1, AACK_FLTR_RES_FT=1 如果 AACK_FLTR_RES_FT=1,那么 RX_AACK 帧滤波器将把所有含预留帧类型的帧当作 IEEE802.15.4 标准合规数据帧进行处理。这表示将在地址匹配之后生成 IRQ_5(AMI). 3. AACK_UPLD_RES_FT=0 锁定所有含预留帧类型的帧。 6.2.3 寄存器说明 寄存器(0x17)(XAH_CTRL_1): XAH_CTRL_1 寄存器是扩展操作模式的控制寄存器。 表 6-7 寄存器 0x17(XAH_CTRL_1): 7 6 5 位 4 名称 预留 CSMA_LBT_MODE AACK_FLTR_RES_FT 读取/写入 R/W R/W R/W AACK_UPLD_R ES_FT R/W 复位值 0 0 0 0 位 3 2 1 0 名称 AACK_ACK_TIME AACK_PROM_MODE 读取/写入 预留 R R/W R/W 预留 R 复位值 0 0 0 0 ・第 7 位-预留 ・第 6 位-CSMA_LBT_MODE 参看 6.7.3 小节。 ・第 5 位-AACK_FLTR_RES_FT 只在 AACK_UPLD_RES_FT=1 时,设置此寄存器位。 若 AACK_FLTR_RES_FT=1 , 那 么 RX_AACK 帧 滤 波 器 将 把 所 有 含 预 留 帧 类 型 的 帧 当 作 IEEE802.15.4 标准合规数据帧进行处理。 若 AACK_FLTR_RES_FT=0,则只对接收的预留帧进行有效 FCS 校验。 详情参看 6.2.2 小节。 ・第 4 位-AACK_UPLD_RES_FT 若 AACK_UPLD_RES_FT=1,则不锁定表示为预留帧的接收帧。 详情参看 6.2.2 小节。 ・第 3 位-预留 8168B-MCU Wireless-03/09 75 ・第 2 位-AACK_ACK_TIME 参看 5.2.3.3 小节 ・第 1 位-AACL_PROM_MODE 参看 5.2.6 小节。 ・第 0 位-预留 寄存器 0x20(SHORT_ADDR_0) 此寄存器含有帧滤波器地址识别的 16 位短地址的后 8 位,即[7:0]位。 表 6-8 寄存器 0x20(SHORT_ADDR_0) 位 7 6 5 4 3 2 1 名称 SHORT _ADDRESS_0[7:0] 读 取 / R/W 写入 1 1 1 1 1 1 复位值 1 寄存器 0x21(SHORT_ADDR_1): 此寄存器含有帧滤波器地址识别的 16 位短地址的前 8 位,即[15:8]位。 表 6-9 寄存器 0x21(SHORT_ADDR_1) 位 7 6 5 4 3 2 0 1 1 名称 SHORT _ADDRESS_1[7:0] 读取/写 R/W 入 1 1 1 1 1 1 1 复位值 寄存器 0x22(PAN_ID_0): 此寄存器含有帧滤波器地址识别的 MAC PAN ID 的后 8 位,即[7:0]位。 表 6-10 寄存器 0x22(PAN_ID_0) 位 7 6 5 4 3 2 1 名称 PAN_ID_0[7:0] 读取/写 R/W 入 1 1 1 1 1 1 1 复位值 寄存器 0x23(PAN_ID_1): 此寄存器含有帧滤波器地址识别的 MAC PAN ID 的前 8 位,即[15:8]位。 表 6-11 寄存器 0x23(PAN_ID_1) 位 7 6 5 4 3 2 1 名称 读取/写 入 复位值 76 AT86RF212 0 1 0 1 0 PAN_ID_1[7:0] R/W 1 1 1 1 1 1 1 1 8168B-MCU Wireless-03/09 AT86RF212 寄存器 0x24(IEEE_ADDR_0): 此寄存器含有帧滤波器地址识别的 64 位 IEEE 扩展地址的[7:0]位。 表 6-12 寄存器 0x24(IEEE_ADDR_0) 位 7 6 5 4 3 2 名称 IEEE _ADDR_0[7:0] 读 取 / R/W 写入 0 0 0 0 0 0 复位值 0 寄存器 0x25(IEEE_ADDR_1): 此寄存器含有帧滤波器地址识别的 64 位 IEEE 扩展地址的[15:8]位。 表 6-13 寄存器 0x25(IEEE_ADDR_1) 位 7 6 5 4 3 2 名称 IEEE _ADDR_1[7:0] 读 取 / R/W 写入 0 0 0 0 0 0 复位值 0 寄存器 0x26(IEEE_ADDR_2): 此寄存器含有帧滤波器地址识别的 64 位 IEEE 扩展地址的[23:16]位。 表 6-14 寄存器 0x26(IEEE_ADDR_2) 位 7 6 5 4 3 2 名称 IEEE _ADDR_2[7:0] 读 取 / R/W 写入 0 0 0 0 0 0 复位值 0 寄存器 0x27(IEEE_ADDR_3): 此寄存器含有帧滤波器地址识别的 64 位 IEEE 扩展地址的[31:24]位。 表 6-15 寄存器 0x27(IEEE_ADDR_3) 位 7 6 5 4 3 2 名称 IEEE _ADDR_3[7:0] 读 取 / R/W 写入 0 0 0 0 0 0 复位值 0 寄存器 0x28(IEEE_ADDR_4): 此寄存器含有帧滤波器地址识别的 64 位 IEEE 扩展地址的[39:32]位。 8168B-MCU Wireless-03/09 1 0 0 1 0 0 1 0 0 1 0 0 77 表 6-16 寄存器 0x28(IEEE_ADDR_4) 位 7 6 5 4 3 2 1 0 名称 IEEE _ADDR_4[7:0] 读取/ R/W 写入 0 0 0 0 0 0 0 复 位 0 值 寄存器 0x29(IEEE_ADDR_5): 此寄存器含有帧滤波器地址识别的 64 位 IEEE 扩展地址的[47:40]位。 表 6-17 寄存器 0x29(IEEE_ADDR_5) 位 7 6 5 4 3 2 1 0 名称 IEEE _ADDR_5[7:0] 读取/ R/W 写入 0 0 0 0 0 0 0 复位值 0 寄存器 0x2A(IEEE_ADDR_6): 此寄存器含有帧滤波器地址识别的 64 位 IEEE 扩展地址的[55:48]位。 表 6-18 寄存器 0x2A(IEEE_ADDR_6) 位 7 6 5 4 3 2 1 0 名称 IEEE _ADDR_6[7:0] 读 取 / R/W 写入 0 0 0 0 0 0 0 复位值 0 寄存器 0x2B(IEEE_ADDR_7): 此寄存器含有帧滤波器地址识别的 64 位 IEEE 扩展地址的[63:56]位。 表 6-19 寄存器 0x2B(IEEE_ADDR_7) 位 7 6 5 4 3 2 1 0 名称 IEEE _ADDR_7[7:0] 读取/ R/W 写入 0 0 0 0 0 0 0 复 位 0 值 寄存器 0x2E (CSMA_SEED_1) 寄存器 CSMA_SEED_1 是 RX_AACK 的控制寄存器,含有 CSMA-CA 算法的部分 CSMA 种子, 及帧滤波器和 RX_AACK 处理的控制位。 表 6-20 寄存器 0x2E (CSMA_SEED_1) 位 7 6 5 4 名称 AACK_FVN_MODE AACK_FVN_MODE AACK_SET_PD AACK_DIS_ACK 读取/ R/W R/W R/W R/W 写入 复 位 0 1 0 0 值 78 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 位 3 2 1 0 名称 AACK_I_AM_COORD CSMA_SEED_1 CSMA_SEED_1 CSMA_SEED_1 读取/ R/W R/W R/W R/W 写入 复 位 0 0 1 0 值 ・7:6 位-AACK_FVN_MODE MAC 标头(MHR)的帧控制字段含有一个帧版本子字段。AACK_FVN_MODE 设置规定了 AT86RF212 的帧过滤和应答操作。无线电收发器按照此等寄存器位的内容让带有指定帧版本号的 帧通过。 因此,寄存器 AACK_FVN_MODE 位定义了可接受帧版本的最大值。带有高于配置值的帧版本号 的接收帧不能通过帧滤波器,因此不予应答。 表 6-21 帧版本子字段决定帧应答 寄存器位 值 说明 AACK_FVN_MODE 0 版本号为 0 的应答帧 1 版本号为 0 或 1 的应答帧 2 版本号为 0 或 1 或 2 的应答帧 3 所有除了帧版本号以外的帧 ・第 5 位-AACK_SET_PD 参看 5.2.6 小节。 ・第 4 位-AACK_DIS_ACK 参看 5.2.6 小节。 ・第 3 位-AACK_I_AM_COORD 参看 5.2.6 小节。 ・2:0 位—CSMA_SEED_1 参看 5.2.6 小节。 6.3 帧校验序列(FCS) FCS 机制采用国际电信联盟-电信标准化部门(ITU-T)的循环冗余校验(CRC) ,可用于检测帧 中的错误。 6.3.1 概览 FCS 设计用于在 MAC 层中检测冲突帧。它的计算方法是将 ITU-T CRC 多项式应用到长度字节 (MHR 和 MSDU 字段)后的所有已发送/已接收字节。FCS 长度为 16 位,位于 PSDU 的最后 16 位。 默 认 为 AT86RF212 产 生 并 在 发 送 过 程 中 自 动 插 入 FCS 的 16 位 字 段 。 可 将 寄 存 器 TX_AUTO_CRC_ON 设置为=0(寄存器 0x04,TRX_CTRL_1)以便取消此操作。 在帧接收过程中,会一直执行自动 FCS 检验。 8168B-MCU Wireless-03/09 79 6.3.2 CRC 计算 在 IEEE802.15.4 网络中使用的 CRC 多项式定义为 G16(x)=x16+x12+x5+1 通过以下算法计算发送使用的 FCS: M ( x) = b0 x k −1 + b1 x k −2 + K + bk −2 x + bk −1 多项式代表要计算的校验和位的时序。M(x)乘以 x16,得出多项式: N(x)= M(x)・x16。 用 N(x)数模 2 除以发生器多项式,G16(x),得出余数多项式, R ( x) = r0 x15 + r1 x14 + ... + r14 x + r15 FCS 字段由余数多项式,R(x)的系数设定。 例如: 假设一个 5-octet 的 ACK 帧的 MHR 字段为: 0100 0000 0000 0000 0101 0110. 在时序上先发送最左边位(b0).FCS 应为 0010 0111 1001 1110. 在时序上先发送最左边位(r0)。 6.3.3 自动 FCS 生成 通过设置寄存器为 TX_AUTO_CRC_ON=1 计划自动 FCS 生成。这样,AT86RF212 就可以自动进 行 FCS 自动。FCS 会计算设定帧长度为 N(3≤N≤127)的帧在帧缓冲中的前 N-2 octet,并发送 FCS octet 代替帧缓冲的最后 2 octet。 6.3.4 自动 FCS 校验 可在基本和扩展操作模式中对接收帧使用自动 FCS 检验。若接收帧的 FCS 有效,则寄存器 RX_CRC_VALID 位(寄存器 0x06,PHY_RSSI)设置为 1。此外,RX_STATUS 的第 7 位字节也 做相应设置,参看第 4.3.2 小节。 在扩展操作模式中,如果相应的 FCS 无效,RX_AACK 程序不接受任何帧,也不发出 TRX_END 中断请求。在 TX_ARET 模式的操作中,会对接收应答的 FCS 进行自动校验。如果校验不正确, 则不接受应答,有关自动重试的内容请参看 5.2.4 小节。 6.3.5 寄存器说明 寄存器 0x04(TRX_CTRL_1) : TRX_CTRL_1 寄存器为控制不同操作模式和无线电收发器设置的多功能寄存器,见表 6-22。 80 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 表 6-22 寄存器 0x04(TRX_CTRL_1) 位 7 6 5 4 名称 PA_EXT_EN IRQ_2_EXT_EN TX_AUTO_CRC_ON RX_BL_CTRL 读 取 / R/W R/W R/W R/W 写入 复位值 0 0 1 0 位 3 2 1 0 SPI_CMD_M SPI_CMD_MOD IRQ_POLARI 名称 IRQ_MASK_MODE ODE E TY 读 取 / R/W R/W R/W R/W 写入 复位值 0 0 0 0 ・第 7 位-PA_EXT_EN 参看 9.4.3 小节。 ・第 6 位-IRQ_2_EXT_EN 参看 9.5.2 小节。 ・第 5 位-TX_AUTO_CRC_ON 当寄存器位 TX_AUTO_CRC_ON=1 时(即,默认值),将执行 FCS 自动生成。 ・第 4 位-RX_BL_CTRL 参看 9.6.2 小节。 ・第 3:2 位-SPI_CMD_MODE 参看 4.4.1 小节。 ・第 1 位-IRQ_MASK_MODE 参看 4.7.2 小节。 ・第 0 位-IRQ_POLARITY 参看 4.7.2 小节。 寄存器 0x06(PHY_RSSI): PHY_RSSI 寄存器为用于指示 FCS 有效性,提供随机数和 RSSI 值的多功能寄存器。 表 6-23 寄存器 0x06(PHY_RSSI) 位 7 6 5 4 名称 RX_CRC_VALID RND_VALUE RND_VALUE RSSI[4] 读取/写入 R R R R 复位值 0 0 0 0 位 3 2 1 0 名称 RSSI[3] RSSI[2] RSSI[1] RSSI[0] 读取/写入 R R R R 复位值 0 0 0 0 8168B-MCU Wireless-03/09 81 ・第 7 位- RX_CRC_VALID 此寄存 器位 读取指 示的 是最后 接收 的帧是 否带 有有效 FCS 。在更 新寄 存器位 的同 时 发 出 IRQ_3(TRX_END),并一直保持有效直至发现下一个 SHR,值“1”对应的是有效的 FCS,值“0” 对应的是无效 FCS。 ・6:5 位-RND_VALUE 参看 9.1.8 小节中的寄存器说明。 ・4:0 位-RSSI 参看 6.4.4 小节中的寄存器说明。 6.4 接收信号强度指示器(RSSI) 接收信号强度指示器特性为: ・动态范围:81dB ・RSSI 最小值为 0 ・RSSI 最大值为 28 6.4.1 概览 RSSI 为用于指示所选信道中接收信号强度的 5 位值,步长为 3dB。不是为了将 IEEE802.15.4 标 准信号与其他信号区分开,而是只对接收信号强度进行评估。RSSI 为 ED 测量提供了基准,见 6.5。 6.4.2 读取 RSSI 在基本操作模式中,任何接收状态中的 RSSI 值均为有效,并按照表 6-24 规定的时间间隔进行更 新。可通过读取寄存器 0x06(PHY_RSSI)的 RSSI 位访问当前 RSSI 值。 表 6-24 RSSI 更新间隔 PHY 模式 BPSK-20 BPSK-40 O-QPSK 更新间隔[µs] 32 24 8 不建议在使用扩展操作模式时读取 RSSI 值,而是应使用自动生成的 ED 值,见 6.5 小节。 6.4.3 数据解释 RSSI 值是一个 5 位值,用于指示接收器的输入功率,步长为 3dB,范围是 0-28。 RSSI 值为 0 表示接收器输入功率小于 RSSI_BASE_VAL[dBm]。RSSI_BASE_VAL 值自身取决于 PHY 模式,参看 7.1 小节。标准条件见于表 6-25。 由于环境条件(温度、电压、半导体参数,等等),RSSI_BASE_VAL 的公差最大值为±5dB。可 将此视为测量范围的恒定偏差。 82 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 表 6-25 RSSI_BASE_VAL RSSI_BASE_VAL[dBm] PHY 模式 最大公差[dB] ±5 码片速率为 300kchip/s 的二相 -100 相移键控(BPSK) ±5 码片速率为 600kchip/s 的二相 -99 相移键控(BPSK) ±5 码片速率为 400kchip/s 的偏移 -98 四相移相键控(O-QPSK) ±5 码片速率为 1000kchip/s 的正 -97 弦形(SIN)偏移四相移相键控 (O-QPSK) ±5 1000kchip/s 的 上 升 余 弦 形 -97 (RC-0.8)偏移四相移相键控 (O-QPSK) 当 RSSI 值在 1 至 28 范围内时,可按照以下公式计算接收器输入功率: PRF=RSSI_BASE_VAL[dBm]+3(RSSI-1) [dBm] 图 6-3 RSSI 值与接收器输入功率关系图 -5 -15 接收输入功率 PRF [dBm] -25 -35 -45 -55 -65 300kchip/s 的 BPSK 600kchip/s 的 BPSK 400kchip/s 的 O-QPSK 1000kchip/的 O-QPSK(SIN) 1000kchip/的 O-QPSK(RC-0.8) -75 -85 -95 -105 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 RSSI 6.4.4 寄存器说明 寄存器 0x06(PHY_RSSI) 表 6-26 寄存器 0x06 (PHY_RSSI) 位 7 名称 RX_CRC_VALID 读取/写入 R 复位值 0 8168B-MCU Wireless-03/09 6 RND_VALUE R 0 5 RND_VALUE R 0 4 RSSI R 0 83 位 3 2 1 0 名称 RSSI RSSI RSSI RSSI 读取/写入 R R R R 复位值 0 0 0 0 ・第 7 位—RX_CRC_VALID 参看 6.3.5 小节中的寄存器说明。 ・6:5 位—RND_VALUE 参看 9.1.8 小节中的寄存器说明。 ・4:0 为—RSSI 自动 RSSI 测量结果存储在寄存器的 RSSI 位。在任何接收状态中,均会按照表 6-24 所述的时间 间隔更新该值。 在 0 至 28 之间的值,指示的是由分辨率为 3dB 的输入功率(dBm)对数曲线表示的接收信号强 度。RSSI 值为 0 表示接收器输入功率小于 RSSI_BASE_VAL[dBm](见表 6-25),28 则表示输入 功率等于或大于(RSSI_BASE_VAL+81)[dBm]。 6.5 能量检测(ED) 能量检测(ED)模块的特性为: ・已设定的 85 个唯一能量电平 ・1dB 的分辨率 6.5.1 概览 接收器 ED 测量(ED 检测程序)可用作信道选择算法的一部分。在 IEEE802.15.4 标准信道的带 宽内预计接收信号功率,而不是用于识别信道中的解码信号。由 8 个符号周期的 RSSI 平均值计 算 ED 值,但高数据传输速率模式除外,参看 7.1.4 小节。 6.5.2 测量说明 可通过两种方式开始 ED 测量: ・手动,在寄存器 0x07(PHY_ED_LEVEL)写入任意值,或 ・自动,在检测到输入帧的有效 SHR 之后。 无线电收发器的手动开始 ED 测量须在 RX_ON 或 BUSY_RX 状态中执行。在 ED 测量时间的最 后(8 符号周期)由中断请求 IRQ_4(CCA_ED_DONE)指示结束,并将测量结果存储在寄存器 0x07(PHY_ED_LEVEL)中。 为了避免干扰自动开始的 ED 测量,可提供设置寄存器 RX_PDT_DIS 位(寄存器 0x15,RX_SYN) 取消 SHR 检测,参看 7.2 小节。 请注意不建议在使用扩展操作模式时,手动开始 ED 测量。 84 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 在 SHR 检测之后,开始自动 ED 测量。自动测量结束无中断信号指示。 当使用基本操作模式时, IRQ_2 (RX_START)之后的 8 个符号周期加 12μs 处理时间以内可访问 当前接收帧的有效 ED 值(寄存器 0x07,PHY_ED_LEVEL)并保持有效直至下一个输入帧生成 新的 RX_START 中断请求或开始其他 ED 测量。 ED 值保持有效直至下一个输入帧生成 RX_START 中断或其他 ED 测量开始。 当使用扩展操作模式时,建议屏蔽 IRQ_2 (RX_START),因此不能将中断作为时序参照。中断 IRQ_3 (TRX_END)发出成功帧接收信号。在此情况下,须在下一个 SHR 检测的时间范围加 ED 测量时间内读取该值,以避免覆盖当前 ED 值。 寄存器 0x07(PHY_ED_LEVEL)值为: 表 6-27 寄存器 PHY_ED_LEVEL 位解释 PHY_ED_LEVEL 0xFF 0x00… 0x54 说明 复位值 最后 ED 测量的结果 6.5.3 数据解释 PHY_ED_LEVEL 是一个 8 位的寄存器。AT86RF212 的 ED 值有效范围为 0x00 至 0x54 (0 至 84), 分辨率为 1dB。0x55 至 0xFE 的值不会发生,值 0xFF 表示复位值。PHY_ED_LEVEL=0 的值表示 测得的接收器输入功率小于或等于 RSSI_BASE_VAL[dBm](参看表 6-25)。 在 0 至 84 范围以内的 ED 值的接收器输入功率计算方法如下: PRF=RSSI_BASE_VAL[dBm]+ED[dBm] 8168B-MCU Wireless-03/09 85 接收器输入管理与 ED 值关系图 图 6-4 -5 -15 -25 接收输入功率 PRF [dBm] RF -35 -45 -55 -65 00kchip/s 的 BPSK 600kchip/s 的 BPSK 400kchip/s 的 O-QPSK 1000kchip/的 O-QPSK(SIN) 1000kchip/的 O-QPSK(RC-0.8) -75 -85 -95 -105 0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 PHY_ED_LEVEL(寄存器 0x07) 6.5.4 中断处理 在手动开始的 ED 测量结束时发送中断请求 IRQ_4(CCA_ED_DONE)。 请注意只能在 RX 状态中,而不是在 RX_AACK 状态中开始 ED 测量。反之,无线电收发器会在 未曾实际执行 ED 测量的情况下生成 IRQ_4(CCA_ED_DONE)。 6.5.5 寄存器说明 寄存器 0x07(PHY_ED_LEVEL) PHY_ED_LEVEL 寄存器含有 ED 测量结果。 表 6-28 寄存器 0x07(PHY_ED_LEVEL) 位 7 6 5 4 3 名称 ED_LEVEL[7:0] 读取/写 R(1) 入 复位值 1 1 1 1 1 附注:1.须通过写入访问开始手动 ED 测量。 2 1 0 1 1 1 7:0 位-ED_LEVEL ED 最小值(ED_LEVEL=0)表示接收器输入功率小于或等于 RSSI_BASE_VAL[dBm]。范围在 84dB 以内,分辨率为 1dB,精确度绝对值为±5dB。 可通过对寄存器进行写入访问来开始手动 ED 测量。0xFF 的值表示测量尚未开始(复位值)。 测量持续时间为 8 个符号周期,见 7.1.3 小节。 86 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 高数据传输速率模式的自动测量持续时间缩短为 2 个符号周期,参看 7.1.4。在此类模式中手动开 始的 ED 测量时,只要接收器处于 RX_ON 状态之中,测量时间仍为 8 个符号周期。 在{0x00,...,0x54}范围内的值指示最后 ED 测量的结果。 6.6 空闲信道评估(CCA) 空闲信道评估(CCA)模块的主要特点为: ・按照 IEEE802.15.4-2006 标准的定义,提供四个 CCA 模式 ・可调节能量检测算法阈值 6.6.1 概览 CCA 测量用于检测空闲信道。IEEE802.15.4-2006 表 6-29 CCA 模式概览 CCA 模式 说明 1 标准定义的四个 CCA 模式: 能量高于阈值 CCA 将在检测到高于 ED 阈值的能量时发送繁忙介质报告。 仅载波侦听 2 CCA 只在检测到有调制并显示出 IEEE802.15.4 标准的合规信号特点的信号之 后,发送繁忙介质报告。信号强度可能高于或低于 ED 阈值。 载波侦听及能量高于阈值 0,3 CCA 将通过下列逻辑组合发送繁忙介质报告 -检测到由调制且显示出标准特性的信号时,和/或 -能量高于 ED 阈值。 可将逻辑算子配置为或(模式 0)或与(模式 3) 。 6.6.2 配置与请求 可通过寄存器 0x08(PHY_CC_CCA)配置 CCA 模式。 在基本操作模式中,可通过在 AT86RF212 的任何 RX 状态中设置 CCA_REQUEST=1(寄存器 0x08, PHY_CC_CCA),手动开始 CCA 请求。可通过寄存器 0x01(TRX_STATUS)访问当前信道状态 (CCA_STATUS)和 CCA 完成状态(CCA_DONE)。 中断命令 IRQ_4 (CCA_ED_DONE)指示手动开始的 CCA 结束(8 个符号周期加 12μs 的处理延 时)。 寄存器 0x09(CCA_THRES)的子寄存器 CCA_ED_THRES 定义“能量高于阈值”算法的接收功率 阈值。阈值计算公式如下: V_THRES=(RSSI_BASE_VAL+2・CCA_ED_THRES)[dBm]。 任何在此电平以上的接收功率均被解释为繁忙信道。 8168B-MCU Wireless-03/09 87 请注意不建议在使用扩展操作模式时,手动开始 CCA 请求。 6.6.3 数据解释 可提供寄存器 0x01(TRX_STATUS)访问当前信道状态(CCA_STATUS)和 CCA 完成状态 (CCA_DONE)。请注意寄存器 CCA_DONE 位和 CCA_STATUS 位在响应 CCA_REQUEST 时清 空。 CCA_DONE=1 指示测量时间完成。若无线电收发器在 CCA 评估周期中未检测到任何信号(空闲 信道),CCA_STATUS 位被设置为 1,反之,则设置为 0。 当使用“能量高于阈值”算法时,高于 V_THRES 电平的接收功率被解释为繁忙信道。 当使用“载波侦听”算法时(即,CCA_MODE=0,2 和 3)时,AT86RF212 将在检测到高于 RSSI_BASE_VAL(见表 6-25)的 IEEE802.15.4 标准信号(PHY 模式指定信号)之后,发送繁忙信 道报告。AT86RF212 也能检测到此值以下的信号,但随着信号功率的下降,被检测到的可能性也 在下降,在无线电收发器的敏感电平上几乎为零(见第 0 章)。 6.6.4 中断处理 在手动开始的 CCA 测量结束时,发出中断 IRQ_4 (CCA_ED_DONE)。 附注 ・只能在基本操作模式的 RX 状态中开始 CCA 请求。否则,无线电收发器将生成 IRQ_4 (CCA_ED_ DONE)并在未曾执行 CCA 测量的情况下,将寄存器 CCA_DONE 设置为=1。 6.6.5 测量时间 手动开始的 CCA 测量响应时间取决于接收器状态。 在 RX_ON 状态中,在八个符号周期内执行 CCA 测量,并在 IRQ_4(CCA_ED_ DONE)事件后或 CCA_DONE=1(寄存器 0x01,TRX_STATUS)时,可以读取结果。 在 BUSY_RX 状态中,CCA 测量持续时间取决于 CCA 模式和与 SHR 检测相关的 CCA 请求。 IRQ_4(CCA_ED_ DONE)指示 CCA 测量完成。BUSY_RX 状态下的 CCA 测量周期变化见于表 6-30. 表 6-30 CCA 测量周期与 BUSY_RX 状态下的访问 ( ) CCA 模式 ED 测量中的请求 1 ED 测量后的请求 能量高于阈值。 1 2 在自动 ED 测量周期结束后可访问 CCA 结果。 仅载波侦听。 请求后即可范围 CCA 结果 请求后即可访问 CCA 结果。 载波侦听及能量高于阈值(与)。 3 在自动 ED 测量周期结束后可访问 CCA 结果。 请求后即可访问 CCA 结果。 载波侦听及能量高于阈值(或)。 0 88 AT86RF212 在自动 ED 测量周期结束后可访问 CCA 结果。 请求后即可访问 CCA 结果。 8168B-MCU Wireless-03/09 AT86RF212 附注 :1.在检测到 SHR 之后,将在 8 个符号周期内开始自动 ED 测量(高数据传输速率 PHY 模式 为 2 个符号周期),参看 7.1.3。必须完成此自动 ED 测量以便为 CCA 测量提供结果。每个帧只执 行一次自动 ED 测量。 建议只在 RX_ON 状态中执行 CCA 测量。为了避免意外切换至 BUSY_RX 状态,看通过设置寄 存器 RX_PDT_DIS(寄存器 0x15,RX_SYN)位,取消 SHR 检测,参看 7.2 小节。接收器一直处于 RX_ON 状态以便执行 CCA 测量,直至寄存器 RX_PDT_DIS 位被设置回到继续帧接收。在此情 况下,CCA 测量持续时间为 8 个符号周期。 6.6.6 寄存器说明 寄存器 0x01(TRX_STATUS): 寄存器 0x01(TRX_STATUS)的两个寄存器位指示了 CCA 测量的状态。 表 6-31. 寄存器 0x01(TRX_STATUS) 位 7 6 5 4 名称 CCA_DONE CCA_STATUS 预留 TRX_STATUS 读取/写入 R R R R 复位值 0 0 0 0 位 3 2 1 0 TRX_STATUS TRX_STATUS TRX_STATUS TRX_STATUS 名称 读取/写入 R R R R 复位值 0 0 0 0 ・第 7 位-CCA_DONE 此寄存器指示 CCA 测量完成,此外,中断请求 IRQ_4(CCA_ED_ DONE)也会指示 CCA 测量完成。 请注意寄存器 CCA_DONE 位在响应 CCA_REQUEST 时被清空。 表 6-32. CCA 算法状态 寄存器位 值 说明 CCA_DONE 0 CCA 计算未完成 1 CCA 计算已完成 ・第 6 位-CCA_STATUS 在完成 CCA 请求之后,可在寄存器 CCA_STATUS 位读取 CCA 测量结果。请注意寄存器 CCA_ STATUS 位在响应 CCA_REQUEST 时被清空。 8168B-MCU Wireless-03/09 89 表 6-33. CCA 状态结果 寄存器位 CCA_STATUS 值 0 1 说明 指示信道繁忙 指示信道空闲 ・第 5 位-预留 ・4:0 位-TRX_STATUS 参看 5.1.5 和 5.2.6 小节。 寄存器 0x08(PHY_CC_CCA): 此寄存器用于开始和控制 CCA 测量。 表 6-34 寄存器 0x08(PHY_CC_CCA) 位 7 6 5 4 名称 CCA_REQUEST CCA_MODE CCA_MODE CHANNEL R/W R/W R/W 读取/写入 W 复位值 0 0 1 0 位 3 2 1 0 CHANNEL CHANNEL CHANNEL CHANNEL 名称 读取/写入 R/W R/W R/W R/W 复位值 0 1 0 1 ・第 7 位-CCA_REQUEST 通过 CCA_REQUEST=1 的设置手动开始 CCA 测量。在通过 CCA_REQUEST=1 请求 CCA 测量后 自动清空该寄存器位。 ・6:5 位-CCA_MODE 可使用寄存器 CCA_MODE 位选择 CCA 模式。 表 6-35.CCA 模式 寄存器位 值 说明 CCA_MODE 0 载波侦听或能量高于阈值 1 能量高于阈值 2 仅载波侦听 3 载波侦听与能量高于阈值 请注意 IEEE802.15.4-2006 标准的 CCA 模式 3 使用逻辑算子与/或将 CCA 模式 1 和 2 进行逻辑组 合。可选择: ・CCA_MODE=0 用于逻辑运算或,及 ・CCA_MODE=3 用于逻辑运算与。 ・4:0 位-CHANNEL 参看 7.8 小节。 90 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 寄存器 0x09(CCA_THRES): 此寄存器设置 CCA 的 ED 阈值水平. 表 6-36.寄存器 0x09(CCA_THRES) 位 7 6 名称 预留 预留 读取/写入 R/W R/W 复位值 0 1 位 3 2 CCA_ED_THRES CCA_ED_THRES 名称 读取/写入 R/W R/W 复位值 0 1 5 预留 R/W 1 1 CCA_ED_THRES R/W 1 4 预留 R/W 1 0 CCA_ED_THRES R/W 1 ・7:5 位-预留 ・4:0 位-CCA_ED_THRES CCA 模式 1 请求在测量的接收功率高于(RSSI_BASE_VAL+2・CCA_ED_THRES)[dBm]时指示 繁忙信道。CCA 模式 0 和 3 与此结果逻辑相关。 6.7 说前先听(LBT) 6.7.1 概览 使用 AT86RF212 的设备符合已制定的各项规则。按照欧洲规则,IEEE802.15.4 标准规定的基于 CSMA-CA 的发送并不适用。原则上,发送受限于低占空比(0.1 至 1%) 。但是,按照[4]的规定, 应用说前先听(LBT)和自适应频率捷变(AFA)的设备无须符合占空条件。 因此,LBT 在降低网络延迟方面可能很有帮助。 最短收听时间 LBT 设备须符合最低收听时间的要求,请参看[4]的 9.1.1.2 小节。如果发送不要求应答,那么在 发送之前,设备必须收听一个等于或大于 LBT 阈值电平的接收信号,以便判定目标信道是否可 用。 使用 LBT 的设备须收听 5ms 的固定周期。如果在此周期之后,信道阈值,可立即开始发送(即, 无须 CSMA) 。反之,新收听周期则须在随机选择的 5 到 10ms 的时间范围内。时间分辨率约为 0.5ms。应重复最后一步,直至空闲信道可用。 LBT 阈值 依照[4]的规定,若信道间隔为 1MHz,那么 IEEE 802.15.4 标准信号的 LBT 最大阈值约为-82dBm。 8168B-MCU Wireless-03/09 91 6.7.2 LBT 模式 当在扩展操作模式中操作时,AT86RF212 支持上述 LBT 规定的收听模式。 特别是在 TX_ARET 状态下(见 5.2.4 小节),当设置寄存器 CSMA_LBT_MODE 位(寄存器 0x17, XAH_CTRL_1 )时 , LBT 收 听 模式可 代 替 CSMA-CA 算 法 。 但是 ,在 此 情况 下, 寄 存 器 MAX_CSMA_RETRIES 位(寄存器 0x2C,XAH_CTRL_0)和 MIN_BE 及 MAX_BE 位(寄存器 0x2F,CSMA_BE)被忽略,这意味着将一直维持收听模式直至发现空闲信道或 TX_ARET 处理 被取消 。可通过将 TRX_CMD 设置为 FORCE_PLL_ON 或 FORCE_TRX_OFF(寄存器 0x02, TRX_STATE)实现后者。TX_ARET 的其他各个方面均保持不变;参看 5.2.4 小节。 可按照 CCA 阈值配置的相同方法,配置 LBT 阈值,即,设置寄存器 CCA_MODE 位(寄存器 0x08, PHY_CC_CCA)和寄存器 CCA_ED_THRES 位(寄存器 0x09,CCA_THRES),参看 6.6 小节。 6.7.3 寄存器说明 寄存器(0x08,PHY_CC_CCA): 当使用 LBT 时,此寄存器与测量模式相关,即,选择能量高于阈值,或是载波侦听(CS)还是 二者结合。 表 6-37. 寄存器 0x08 (PHY_CC_CCA) 位 7 6 5 4 名称 CCA_REQUEST CCA_MODE CCA_MODE CHANNEL 读取/写入 W R/W R/W R/W 复位值 0 0 1 0 位 3 2 1 0 CHANNEL CHANNEL 名称 CHANNEL CHANNEL 读取/写入 R/W R/W R/W R/W 复位值 0 1 0 1 ・第 7 位-CCA_REQUEST 不适用于 LBT,见 6.6.6 小节。 ・6:5 位-CCA_MODE 可通过寄存器 CCA_MODE 位,使用 CCA 模式选择适当的 LBT 测量模式,参看 6.6 小节。 ・4:0 位-CHANNEL 参看 7.8 小节。 寄存器 0x09(CCA_THRES): 在使用 LBT 时,此寄存器与 ED 阈值对应。 92 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 表 6-38.寄存器 0x09(CCA_THRES) 位 7 6 5 4 名称 预留 预留 预留 预留 读取/写入 R/W R/W R/W R/W 复位值 0 1 1 1 位 3 2 1 0 CCA_ED_THRES CCA_ED_THRES CCA_ED_THRES CCA_ED_THRES 名称 读取/写入 R/W R/W R/W R/W 复位值 0 1 1 1 ・7:5 位-预留 ・4:0 位-CCA_ED_THRES 若 CCA_MODE=1,那么当测量的接收频率高于(RSSI_BASE_VAL+2・CCA_ED_THRES)[dBm] 时,表示信道繁忙。CCA_MODE=0 和 3 与此结果逻辑相关。 寄存器 0x17(XAH_CTRL_1): 此寄存器对应 LBT 模式的启用或禁用。 表 6-39. 寄存器 0x17(XAH_CTRL_1) 位 7 6 5 4 名称 预留 CSMA_LBT_MODE AACK_FLTR_RES_FT AACK_UPLD_RES_FT 读取/ R/W R/W R/W R/W 写入 复位 0 0 0 0 值 位 3 2 1 0 名称 预留 AACK_ACK_TIME AACK_PROM_MODE 预留 读取/ R R/W R/W R 写入 复位 0 0 0 0 值 ・第 7 位-预留 ・第 6 位-CSMA_LBT_MODE 若设置为 0(默认),则在 TX_ARET 状态下,将 CSMA_CA 算法用于空闲信道评估。反之,则 应用 LBT 指定收听模式。 ・第 5 位-AACK_FLTR_RES_FT 参看 5.2.6 小节。 ・第 4 位-AACK_UPLD_RES_FT 参看 5.2.6 小节。 ・第 3 位-预留 ・第 2 位-AACK_ACK_TIME 参看 5.2.6 小节。 8168B-MCU Wireless-03/09 93 ・第 1 位-AACK_PROM_MODE 参看 5.2.6 小节。 ・第 0 位-预留 6.8 链路质量显示(LQI) 6.8.1 要求 IEEE802.15.4 标准将 LQI 定义为接收帧的强度和/或质量特性表征。此标准未设定网络或应用层的 LQI 结果使用。LQI 值应为 0 到 255 范围内的一个整数,至少有 8 个唯一值。LQI 的最小值和最 大值(0 和 255)应分比与最低和最高质量的合规信号对应,而其间的 LQI 值应在两个阈值间均 匀分配。 6.8.2 执行 在帧接收的信号检测过程中,AT86RF212 使用多个符号的关联性结果以便计算 LQI 值的预计值。 关联性结果的平均值与检测错误概率成反比为这种处理提供了依据。 在检测到 SHR 之后,对每个接收帧自动执行 LQI 计算。按照 IEEE802.15.4 标准的规定,LQI 值 为 0 至 255 之间的一个整数。 6.8.3 获取 LQI 值 一旦完成相应的帧接收,即可读取 LQI 值。IRQ_3(TRX_END)指示可读取 LQI。只能通过读取 访问帧缓冲平均值获得此值,见 4.3.2 小节。 6.8.4 备注: 第 LQI 值的原因可能来自两个方面:低信号强度和/或严重信号失真,如,干扰和/或多径传播。 但是,高 LQI 值表明充分的信号强度和低信号失真。 请注意 LQI 值几乎在所有低信号失真和信号强度大大高于敏感电平的情景下均为 255。在此情况 下,数据包误差率趋近于零,且信号强度提高,也就是说,不能进一步通过提高发送功率降低误 差率。接收信号强度显示(RSSI)或能量检测(ED)可用于评估信号强度和链路极限。 ZigBee 网络通常要求识别两个节点间的“最佳”路径。可依据最优化标准,应用 LQI 和 RSSI/ED。 如果以低帧误差率(对应高流通量)为最优化标准,那么应考虑 LQI 值。但是,如果目标是降低 发送功率,那么 RSSI/ED 值也会有帮助。 不同的 LQI 和 RSSI/ED 组合可适用于多种路径设定。按照拇指规则,RSSI/ED 上的信息可用于按 照高 LQI 值区分不同的链路。但是,在确定路径时,即使链路的 RSSI/ED 值较高,但如果 LQI 值较低,也应排除此发送链路,这是由于 RSSI/ED 值仅能说明接收信号的强度,但信号源可能是 一个干扰源。 94 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 7. 模块说明 7.1 物理层模式 7.1.1 扩频,调制与频谱整型 AT86RF212 支持多种物理层(PHY)模式,与 RF 信道选择无关。符号映射及码片扩频,调制和 频谱整型是数字基带处理器的一个部分,见图 7-1。 图 7-1 基带发送器结构 PPDU 符号映射及码 片扩频 调制 BPSK /O-QPSK 频谱整型 DAC 扩频,调制和频谱整型的结合仅限于表 7-1 中列出的几种组合。 AT86RF212 完全符合 IEEE802.15.4 标准的 20kbit/s 和 40kbit/s 低数据传输速率模式,采用二相相 移键控(BPSK),分别按照 300kchip/s 或 600 kchip/s 的固定码片速率进行扩频。符号率分别为 20ksymbol/s 或 40 ksymbol/s。在两种情况下,频谱整型均近似于滚降系数为 1.0(RC-1.0)的升 余弦滤波器。 按照 IEEE802.15.4-2006 的规定的备选数据传输速率,AT86RF212 支持偏移四相移相键控 (O-QPSK),固定码片速率为 400kchip/s 或 1000kchip/s。 当码片速率为 400kchip/s 时,按照 IEEE802.15.4-2006 标准对 868.3MHZ 频段的规定。频谱整型常 为半正弦整型(SIN)和滚降系数为 0.2 升余弦滤波(RC-0.2)的组合。当码片速率为 1000 kchip/s 时,频谱正弦为半正弦滤波(SIN)(如 IEEE802.15.4-2006 [1]标准规定)或滚降系数为 0.8 的升 余弦滤波(RC-0.8)(如 IEEE P802.15.4c[3]标准规定)。 对于偏移四相移相键控(O-QPSK),AT86RF212 支持符合 IEEE802.15.4-2006 标准的扩频,数据 传输速率为 100 kbit/s 或 250kbit/s,依码片速率而定,其相应的符号率分别为 25ksymbol/s 或 62.5ksymbol/s。 此外,AT86RF212 还支持短码长度 O-QPSK 的另外两种扩频码,这样,可在 200,400,500 和 1000kbit/s 帧的 PSDU 部分产生更高的非 IEEE802.15.4-2006 标准数据传输速率。有关特有的高数 据传输速率模式的详细信息见于 7.1.4 小节。 表 7-1.调制与频谱整型 调制 码片率 支持的 PPDU 标 支持的 PSDU 数 频谱整型 [kchip/s] 头数据传输速率 据 传 输 速 率 [kbit/s] [kbit/s] BPSK 300 20 20 RC-1.0 600 40 40 RC-1.0 O-QPSK 400 100 100/200/400 SIN 加 RC-0.2 1000 250 250/500/1000 SIN 或 RC-0.8 8168B-MCU Wireless-03/09 95 7.1.2 配置 可通过设置寄存器 0x0C(TRX_CTRL_2)的适当寄存器位选择 PHY 模式,参看 7.1.5 小节。在配置 过程中,收发器须处于 TRX_OFF 状态中。 7.1.3 符号周期 在 IEEE802.15.4 标准及其相应文件中,设定的时间参照通常以符号周期为单位,因此,PHY 模 式须做单独说明。表 7-2 为符号周期持续时间。请注意独有的高数据传输速率模式的符号周期(定 义)与相应的基础模式符号周期相同。 表 7-2 符号周期持续时间 调制 PSDU 数据传输 符号周期持续时间[μs] 速率[kbit/s] BPSK 20 50 40 25 O-QPSK 100,200,400 40 250,500,1000 16 7.1.4 独有的高数据传输速率模式 主要特点有: ・高数据传输速率可达 1000 kbit/s ・基本操作模式和扩展操作模式均可支持 7.1.4.1 概览 AT86RF212 支持不以 IEEE802.15.4 合规网络为目标的应用中{200,400,500,1000}kbit/s 的其他 数据传输速率。 高数据传输速率模式与 IEEE802.15.4-2006 sub-1 GHz O-QPSK 模式使用相同的 RF 信道带宽。可 提供改变 O-QPSK 的扩频码,缩短码长度,实现更高的数据传输速率。可以 2 或 4 为系数缩短长 度。 这样,可将 400kchip/s 码片长度的 O-QPSK 的数据传输速率分别提高到 200kbit/s (2 倍)和 400kbit/s (4 倍)。 将 1000kchip/s 码片长度的 O-QPSK 的数据传输速率分别提高到 500kbit/s(2 倍)和 1000kbit/s(4 倍)。 由于扩频系数降低,接收灵敏度降低。10.7 小节的 10.7.1 参数列出了不同数据传输速率对应的灵 敏度标准值。请注意提供的高数据传输速率模式的灵敏度值是长度最大值为 127octet 的 PSDU 对 应值。 7.1.4.2 高数据传输速率帧结构 为了实现稳定的帧同步,高数据传输速率调制仅限于 PSDU 部分。PPDU 标头(前导,SFD 和 PHR 字段)以符合 IEEE802 .15.4 标准的 O-QPSK 下 100kbit/s 或 250kbit/s 的速率(基本速率)传输, 见图 7-2。 96 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 图 7-2 高数据传输速率帧结构 基本速率传输 : 高速率传输 100 kbit /s 250 kbit /s SFD 前导 : {200, 400} kbit /s {500, 1000 } kbit /s PHR PSDU 由于 PPDU 标头和 FCS 造成的负荷, 有效数据传输速率会低于所选数据传输速率,这取决于 PSDU 的长度。图 7-3 列出了有效数据传输速率的示意图。 图 7-3 O-QPSK 模式的有效数据传输速率 比特率净值 B 900 1000 kbit/s 800 700 600 500 kbit/s B [kbit/s] 500 400 kbit/s 250 kbit/s 400 200 kbit/s 300 100 kbit/s 200 100 0 0 20 40 60 80 100 120 PSDU 长度(单位:octet) 因此,高速率传输因其较高的有效数据传输速率被用于大 PSDU 长度的传输,以便降低系统功耗。 7.1.4.3 高数据传输速率模式选项 缩短应答时间 如果设置了寄存器 AACK_ACK_TIME 位(寄存器 0x17,XAH_CTRL_1),那么 200 和 400 kbit/s 速率的应答时间将被缩短至 2 个符号周期,500 和 1000 kbit/s 速率的应答时间则被缩短至 3 个应 答周期,参看表 5-24。反之,按照 IEEE802.15.4 标准的规定,应为 12 个符号周期。 接收器灵敏度控制 PPDU 标头(SHR 和 PHR)与 PHY 有效载荷(PSDU)之间不同的数据传输速率造成了标头和有效 载荷间的不同灵敏度。可通过设定接收器灵敏度极限电平对此进行调节。AT86RF212 在灵敏度极 限电平设置中不保持帧与限制以下的 RSSI 电平同步。有关寄存器 0x15(RX_SYN)的灵敏度阈值 配置方法,请参看 7.2.3 小节。 8168B-MCU Wireless-03/09 97 扰码器 默认为 1000kbit/s 和 400kbit/s 使用附加码片扰码,以便减少数据对频谱特性的依赖。可通过将 OQPSK_SCRAM_EN 位(寄存器 0x0C,TRX_CTRL_2)设置为 0,取消扰码。 能量检测 按照 IEEE802.15.4 标准的规定,ED 测量时间范围为 8 个符号周期,见 7.1.3 小节。在高数据传输 速率下操作的帧的 ED 测量周期被缩短为 2 个符号周期,其中包括缩短的帧持续时间。这意味着 200kbit/s 和 400kbit/s 的 ED 测量时间为 80μs,500kbit/s 和 1000kbit/s 的测量时间为 32μs。 载波侦听 IEEE802.15.4-2006 标准规定了空闲信道评估的多种方式,其中包括使用能量高于阈值或载波侦听 (CS)算法或将二者组合.因为高数据传输速率模式的信号不符合 IEEE802.15.4-2006 标准,所以, 当 AT86RF212 在此类模式下运行时,不支持 CS 算法。但是,支持“能量高于阈值”算法。 链路质量显示(LQI) 高数据传输速率模式的链路质量值不含有效信息,应将其取消。 7.1.5 寄存器说明 寄存器 0x0C(TRX_CTRL_2): 寄存器 TRX_CTRL_2 控制 PHY 模式设置。请注意在配置过程中,收发器须处于 TRX_OFF 状态 之中。 表 7-3 位 名称 寄存器 0x0C(TRX_CTRL_2) 7 读取/ 写入 复位 值 位 名称 读取/ 写入 复位 值 6 5 OQPSK_SCR AM_EN 4 RX_SAFE_MODE TRX_OFF_AVDD_EN R/W R/W R/W R/W 0 0 1 0 3 2 0 BPSK_OQPSK SUB_MODE 1 OQPSK_DAT A_RATE R/W R/W R/W R/W 0 1 0 0 OQPSK_SUB1_RC_EN QPSK_DATA_RATE ・第 7 位-RX_SAFE_MODE 参看 9.7.2 小节。 ・第 6 位- TRX_OFF_AVDD_EN 参看 5.1.4.3 小节。 ・第 5 位- OQPSK_SCRAM_EN 98 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 若设置为 1(复位值),那么扰码器可用于 OQPSK_DATA_RATE=2 和 BPSK_OQPSK=1(O-QPSK 可用)。反之,则将扰码器禁用。 请注意,在接收过程中,AT86RF212 对此位进行内部评估,因此严格要求按照 OQPSK_SCRAM_EN 对不同收发器进行排列以便保证其互用性。 ・第 4 位- OQPSK_SUB1_RC_EN 此位只与 SUB_MODE=1 和 BPSK_OQPSK=1 相关。 若设置为 0,则 O-QPSK 传输的频谱整型为半正弦滤波。 若设置为 1,则以 1000kchip/s 的 O-QPSK 传输的频谱整型为 RC-0.8 的余弦滤波。与半正弦滤波 和旁瓣相比,可降低上升峰值至平均比率(~1dB)的成本。此模式尤其适用于中国 780MHz 频段。 请 注 意 在 接 收 过 程 中 , AT86RF212 不 对 此 位 做 内 部 评 估 , 因 此 并 未 明 确 要 求 按 照 OQPSK_SUB1_RC_EN 对不同的收发器进行排列以保证其互用性。这很可能也适用于任何 IEEE802.15.4-2006 的 915MHz 合规 O-QPSK 收发器,因为两种整型均满足 IEEE802.15.4-2006 标 准的要求。 ・第 3 位- BPSK_OQPSK 若设置为 0(复位值),则应用 BPSK 发送和接收。 若设置为 1,则应用 O-QPSK 发送和接收。 请注意,在接收过程中,AT86RF212 对此位进行内部评估,因此严格要求按照 BPSK_OQPSK 对 不同收发器进行排列以便保证其互用性。 ・第 2 位- SUB_MODE 若设置为 1(复位值),则 BPSK_OQPSK=1 的码片速率为 1000kchip/s, BPSK_OQPSK=0 的码片速 率为 600kchip/s。分别可实现{250,500,1000}kbit/s 的数据传输速率,或 40kbit/s。此模式特别 适 用 于 915Mhz 频 段 。 O-QPSK 发 送 的 频 谱 整 型 可 为 半 正 弦 整 型 或 RC-0.8 整 型 , 依 OQPSK_SUB1_RC_EN 而定。 若设置为 0(复位值),则 BPSK_OQPSK=1 的码片速率为 400kchip/s, BPSK_OQPSK=0 的码片速 率为 300kchip/s。分别可实现{100,200,400}kbit/s 的数据传输速率,或 20kbit/s。此模式特别适 用于 868.3 MHz 频段。O-QPSK 发送的频谱整型总为半正弦整型与 RC-0.2 整型的组合。 请注意,在接收过程中,AT86RF212 对此位进行内部评估,因此严格要求按照 SUB_MODE 对不 同收发器进行排列以便保证其互用性。 ・1:0 位- OQPSK_DATA_RATE 此 等 寄 存 器 位 控 制 在 帧 的 PSDU 部 分 的 O-QPSK 数 据 传 输 速 率 , 详 见 表 7-4. 复 位 值 为 OQPSK_DATA_RATE=0. 请 注 意 , 在 接 收 过 程 中 , AT86RF212 对 此 位 进 行 内 部 评 估 , 因 此 严 格 要 求 按 照 OQPSK_DATA_RATE 对不同收发器进行排列以便保证其互用性。 8168B-MCU Wireless-03/09 99 表 7-4. PSDU 中的 O-QPSK 数据传输速率 寄存器位 值 O-QPSK 数据传输速率 [kbit/s] SUB_MODE=0 SUB_MODE=1 OQPSK_DATA_RATE 0 100 250 1 200 500 2,3 400 1000 在表 7-5 中, 总结了 AT86RF212 支持的所有 PHY 模式及其相应的寄存器 TRX_CTRL_2 各位设置。 字符‘-’表示位录入与具体的 PHY 模式不相关。 表 7-5 寄存器 0x0C(TRX_CTRL_2)位排列 PHY 模式 寄存器 0x0C,位 7 6 5 4 3 2 BPSK-20 - - - - 0 0 BPSK-40 - - - - 0 1 OQPSK-SIN-RC-100 - - - - 1 0 1 0 0 0 附注 IEEE 802.15.4 IEEE 802.15.4 IEEE 802.15.4-2006 OQPSK-SIN-RC-200 - - - - 1 0 0 1 特有 OQPSK-SIN-RC-400-SCR-ON - - 1 - 1 0 1 - 特有,启用扰码器 OQPSK-SIN-RC-400-SCR-OFF - - 0 - 1 0 1 - 特有,关闭扰码器 OQPSK-SIN-250 - - - 0 1 1 0 0 IEEE 802.15.4-2006 OQPSK-SIN-500 - - - 0 1 1 0 1 特有 OQPSK-SIN-1000-SCR-ON - - 1 0 1 1 1 - 特有,启用扰码器 OQPSK-SIN-1000-SCR-OFF - - 0 0 1 1 1 - 特有,关闭扰码器 OQPSK-RC-250 - - - 1 1 1 0 0 IEEE P802.15.4c (中国) OQPSK-RC-500 - - - 1 1 1 0 1 特有 OQPSK-RC-1000-SCR-ON - - 1 1 1 1 1 - 特有,启用扰码器 OQPSK-RC-1000-SCR-OFF - - 0 1 1 1 1 - 特有,关闭扰码器 附注:1.并非严格符合 IEE802.15.4-2006,但大致相似,可互用。 7.2 接收器(RX) 7.2.1 概览 AT86RF212 收发器分为模拟无线电前端和数字域,见图 1-1。 参照有关模拟接收器部分的章节,可知 RF 差分信号经低噪声放大器(LNA)放大,并由多相滤 波器(PPF)分为正交信号。两条混合器电路将正交信号降低至媒介频率。集成带通滤波器(BPF) 实现信道灵敏度。后面的模拟-数字转换器(ADC)对接收信号进行抽样并再生成数字 RSSI 信号, 见 6.4 小节。然后,再由数字域的数字基带接收器(RX BBP)对 ADC 输出进行处理。 BBP 执行进一步的过滤和信号处理。接收器在 RX_ON 状态中搜索同步标头。在制定同步标头并 发现 SFD 之后,接收信号解调并传输至帧缓冲。 100 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 寄存器 TRX_STATUS 位(寄存器 0x01,TRX_STATUS)指示寄存器状态转换为 BUSY_RX。在整 个帧接收完成后,接收器返回 RX_ON 以便收听信道。扩展操作模式应用的程序与此相似。 接收器设计用于处理±60ppm 以内的频率和符号率误差,参看 10.5 小节的参数 10.5.7。 在接收过程中,生成多种状态信息:LQI,ED 和 RX_STATUS。它们是在帧读取访问中自动附加的, 参看 4.3.2 小节。也可通过寄存器访问获取 ED 值(寄存器 0x07,PHY_ED_LEVEL)和 FCS 准确 性(寄存器 0x06,PHY_RSSI)等信息。 AT86RF212 的扩展操作模式支持帧过滤和未完成数据指示。 帧接收程序,包括无线电收发器的接收设置和帧缓冲 PSDU 数据读取,见于 8.1 小节。 7.2.2 配置 在基本操作模式中,通过在 TRX_OFF 或 PLL_ON 状态中在寄存器 TRX_CMD 位(寄存器 0x02,TRX_STATE)写入 RX_ON 命令启用接收器。在扩展操作模式中,可提供在 PLL_ON 状态 下中写入 RX_AACK_ON 命令启用 RX_AACK 操作的接收器。 当使用基本操作模式时,无须其他配置以接收 IEEE802.15.4 标准的合规帧。但是,在扩展模式中, 帧接收还需要更多的寄存器配置。详情参看 5.2.2 小节。 可配置接收器的具体应用,以便处理标准环境,简化与微控制器的相互关系或操作不同的数据传 输速率。 AT86RF212 接收器具有卓越的灵敏度性能。在某些条件下(参看 7.1.4 高数据传输速率模式,干 扰层),可手动降低灵敏度。可通过寄存器 RX_PDT_LEVEL 位(寄存器 0x15,RX_SYN)调节同 步标头检测器阈值来实现此操作。RSSI 值低于阈值的接收信号不能激活解调处理。 此外,保护接收帧避免被后来的接收帧覆盖也可能有用。寄存器 RX_SAFE_MODE 位(寄存器 0x0C,TRX_CTRL_2)的设置可启用动态帧缓冲保护,见 9.7 小节。在 SPI 帧接收模式中,接收器 一直处于 RX_ON 或 RX_AACK_ON 状态中,直至/SEL=H 指示微控制器已上载整个帧。只在 FCS 有效时对帧缓冲的内容进行保护。 可通过寄存器 RX_PDT_DIS 位(寄存器 0x15,RX_SYN)设置启用静态帧缓冲保护。接收器一 直处于 RX_ON 或 RX_AACK_ON 状态,且不再检测 SHR 直至寄存器 RX_PDT_DIS 位设置返回。 7.2.3 寄存器说明 表 7-6 寄存器 0x19(RF_CTRL_1) 位 7 6 名称 RF_MC RF_MC 读 取 / R/W R/W 写入 复位值 0 0 8168B-MCU Wireless-03/09 5 RF_MC 4 RF_MC R/W R/W 0 0 101 位 名称 读 取 / 写入 复位值 3 预留 2 预留 1 预留 0 预留 R/W R/W R/W R/W 0 0 0 0 ・7:4 位-RF_MC 此等寄存器位通过将电容切换至接地,对 RF 差分引脚(RFN,RFP)进行匹配控制,见图 2-2。此 步骤可将各引脚电容提高 36fF。RF 引脚的电容设置对 RX 和 TX 操作有效。 表 7-7 RF 引脚匹配控制 寄存器位 值 RF 引脚电容[fF] RF_MC 0 0 1 36 2 72 3 108 … 15 540 ・3:0 位-预留 寄存器 0x15(RX_SYN): 此寄存器控制接收器的灵敏度阈值。 表 7-8 寄存器 0x15(RX_SYN) 位 7 6 5 4 名称 RX_PDT_DIS 预留 预留 预留 读取/ R/W R R R 写入 复位 0 0 0 0 值 位 3 2 1 0 RX_PDT_LEVEL RX_PDT_LEVEL RX_PDT_LEVEL 名称 RX_PDT_LEVEL 读取/ R/W R/W R/W R/W 写入 复位 0 0 0 0 值 ・第 7 位-RX_PDT_DIS 若 RX_PDT_DIS=1,那么即使无线电收发器处于接收模式中,仍会禁止帧接收操作。但正在进行 中的帧接收不会受到影响。 ・6:4 位-预留 ・3:0 位-RX_PDT_LEVEL 可 通 过 此 等 寄 存 器 位 灵 敏 度 下 降 , 从 而 不 再 接 收 RSSI 电 平 低 于 阈 值 电 平 的 帧 ( 若 RX_PDT_LEVEL>0)。可按照以下格式计算阈值电平: 当 RX_PDT_LEVEL>0 时,RX_THRES=RSSI_BASE_VAL+RX_PDT_LEVEL*3 102 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 有关 RSSI_BASE_VAL 的说明见于 6.4.3 小节。 如果寄存器 RX_PDT_LEVEL 位=0(复位值),则此功能被禁用,灵敏度为最高。 如果寄存器 RX_PDT_LEVEL 位>0,则 RX_ON 及 RX_AACK_ON 状态中的接收器当前耗电量降 低 500μA。 7.3 发送器(TX) 7.3.1 概览 AT86RF212 发送器使用直接上变频拓扑。数字发送器(TX BBP)生成调制信号的相内(I)和正 交(Q)部分。数字-模拟转换器(DAC)形成模拟调制信号。正交混合器电耦将模拟调制信号转 换至 RF 域。功率放大器(PA)向差分天线引脚(RFP,RFN)输送信号功率。LNA 和 PA 均内部 连接至双向差分天线引脚,从而无需外置天线开关。 在默认设置下,PA 含有可改善线性的均衡器。经过改善的线性仍保持发送频谱的低频谱旁瓣, 以便符合欧洲 868.3MHz 频段的要求。 若启动 PA 快速模式,均衡器将失效。这样,可将发送功率的传输提高到 10dBm,同时频谱旁瓣 和谐波功率的消耗也更高。 在基本操作模式中,可通过在寄存器 TRX_CMD 位(寄存器 0x02,TRX_STATE)写入 TX_START 或引脚 SLP_TR 的上升沿从 PLL_ON 模式启动发送。 在扩展操作模式中,RX_AACK 或 TX_ARET 的处理相位可决定发送的自动启动,参看 5.2 小节。 7.3.2 帧发送程序 帧发送程序,包括在帧缓冲中写入 PSDU 数据及开始发送,详见于 8.2 小节。 7.3.3 频谱屏蔽 AT86RF212 可在不同的频段中,使用不同功率电平,调制方式,码片速率和频谱整型滤波器进行 操作。占用的发送信号带宽取决于所选操作模式,参看表 7-9。了解调制带宽,功率频谱和旁瓣 的信息对于进行适当的系统设置是至关重要的,这样才能避免信道空间重叠。 表 7-9 调制,频谱整型,及占用带宽 调制 码片速率 频谱整型 [kchip/s] BPSK 300 RC-1.0 600 RC-1.0 O-QPSK 400 SIN and RC-0.2 1000 SIN RC-0.8 8168B-MCU Wireless-03/09 占用带宽 99% [kHz] 385 750 370 1210 1210 20dB 带宽 [kHz] 430 825 400 1230 1300 103 图 7-4 至 图 7-8 列 出 表 7-9 中 的 不 同 参 数 组 合 的 功 率 谱 。 请 注 意 并 非 所 有 的 组 合 都 与 IEEE802.15.4-2006 标准相符。频谱是 AT86RF212 默认设置下获取的数值。频谱分析仪的带宽分 辨率被设置为 30kHz。视频带宽被设置为 10kHz。 图 7-4 BPSK 功率谱,码片速率为 300kchip/s 0 -10 [dBm] -30 功率 -20 -40 -50 -60 -70 912 913 914 频率 104 AT86RF212 915 916 [MHz] 8168B-MCU Wireless-03/09 AT86RF212 图 7-5 BPSK 功率谱,码片速率为 600kchip/s 0 -10 [dBm] -30 功率 -20 -40 -50 -60 -70 912 913 914 频率 915 916 915 916 [MHz] 图 7-6 O-QPSK 功率谱,码片速率为 400kchip/s 0 -10 功率 [dBm] Power [dBm] -20 -30 -40 -50 -60 -70 912 913 914 Frequency 频率 [MHz][MHz] 8168B-MCU Wireless-03/09 105 图 7-7 正弦波频谱整型 O-QPSK 功率谱,码片速率为 1000kchip/s 0 -10 功率 [dBm] Power [dBm] -20 -30 -40 -50 -60 -70 910 912 914 频率 [MHz][MHz] Frequency 916 918 图 7-8 升余弦频谱整型 O-QPSK 功率谱,码片速率为 1000kchip/s 0 -10 Power[dBm] [dBm] 功率 -20 -30 -40 -50 -60 -70 910 106 AT86RF212 912 914 频率 [MHz] Frequency [MHz] 916 918 8168B-MCU Wireless-03/09 AT86RF212 图 7-4 至图 7-8 列出了 AT86RF212 发送信号的典型频谱,无须任何限定。 关于功率谱密度掩码定义,杂散发射的定义,允许调制带宽,发送功率及其限制的更详细信息请 参详当地管理机构(FCC,ETSI,等等)。 7.3.4 TX 输出功率 在正常模式下,发送器的输出功率最大值通常为 5dBm,在加速模式下为 10 dBm。可通过寄存器 TX_PWR 位(寄存器 0x05,PHY_TX_PWR)设置发送器输出功率。发送器的输出功率可控制在 11dBm 以下,分辨率为 1dB。 为了满足欧洲 868.3MHz 频段的频谱要求,必须通过适当的 TX_PWR,GC_PA 位(寄存器 0x05,PHY_TX_PWR)和 GC_TX_OFFS 位(寄存器 0x16,TX_CTRL_0)设置限制发送器功率,见 表 7-15 和表 7-16。 7.3.5 TX 功率斜坡 为了优化输出功率谱密度(PSD),可先后单独启用各发送器模块。引脚 SLP_TR 的上升沿或寄存 器 0x02 中的 TX_START 命令写入均可开始发送操作。一个符号周期之后,即开始发送。在此时 间周期内,PLL 建立为发送使用的频率。在数据发送开始之前,启动 PA,以便可通过寄存器 0x16 (RF_CTRL_0)中的 PA_LT 值调节 PA 的前置时间。通常,在对应 GC_PA=0 的最低增益值启用 PA。然后 PA 增益自动上升至寄存器 0x16(RF_CTRL_0)的 GC_PA 位设定的值。在发送完成之 后,发送器功率斜坡沿反方向下降。 发送器管理斜坡的相关控制信号见于图 7-9。在此示例中,引脚 11(SLP_TR)的上升沿开始发送。 无线电收发器状态由 PLL_ON 转换至 BUSY_TX。 图 7-9 发送器管理斜坡示例(O-QPSK 250kbit/s 模式) 0 2 4 6 8 10 12 14 16 18 Length [µs] 长度 SLP_TR 状态 State PLL_ON PA MODULATION 调制 BUSY_TX PA_LT 1 1 0 1 1 0 0 1 1 在使用外置无线电频率(RF)前端时,(参看 9.4 小节)可能需要调节内部标准部件相应的外置 PA 的启动时间以便优化 PSD 整体。可通过寄存器 PA_LT 位(寄存器 0x16,RF_CTRL_0)实现此 功能。 8168B-MCU Wireless-03/09 107 7.3.6 寄存器说明 寄存器 0x16(RF_CTRL_0): 寄存器含有用于配置发送路径的控制信号。 表 7-10. 寄存器 0x16(RF_CTRL_0) 位 7 6 5 4 名称 PA_LT PA_LT 预留 预留 读取/写入 R/W R/W R/W R/W 复位值 0 0 1 1 位 3 2 1 0 GC_TX_OFFS GX_TX_OFFS 名称 预留 预留 读取/写入 R R R/W R/W 复位值 0 0 0 1 ・7:6 位—PA_LT 此等寄存器位控制 PA 启动信号相对于发送数据开始的前置时间,见图 7-9。可使 PA 在发送信号 开始前 2,4,6 或 8μs 启动。也可从引脚 DIG3/DIG4 输出 PA 启动信号,以便为外置无线电频 率(RF)前端提供控制信号,详情参看 9.4 小节。 表 7-11 PA 启动相对于 TX 开启的前置时间 寄存器位 值 PA 启动前置时间[μs] PA_LT 0 2 1 4 2 6 3 8 PA_LT 设置只在 TRX_OFF,PLL_ON 和 TX_ARET_ON 模式中有效。 ・5:2 位—预留 ・1:0 位—GC_TX_OFFS 此等寄存器位用于在 TX 功率控制字(TX_PWR,寄存器 0x05,PHY_TX_PWR)和实际 TX 功率 之间进行偏移。在将 TX 功率控制字应用于调节 TX 功率的电路块之前,在控制字上添加这两位 字,可用于弥补调制方式决定的平均 TX 功率差分。 表 7-12 TX 功率偏量 寄存器位 值 TX 功率偏量[dB] GC_TX_OFFS 0 -1 1 0 2 +1 3 +2 寄存器 0x05(PHY_TX_PWR): 此寄存器控制发送器输出功率。 108 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 表 7-13 寄存器 0x05(PHY_TX_PWR) 位 7 6 5 4 名称 PA_BOOST GC_PA GC_PA TX_PWR 读取/写入 R/W R/W R/W R/W 复位值 0 1 1 0 位 3 2 1 0 名称 TX_PWR TX_PWR TX_PWR TX_PWR 读取/写入 R/W R/W R/W R/W 复位值 0 0 0 0 ・第 7 位-PA_BOOST 此位可启动 PA 加速模式,当 PA_BOOST=1 时,TX 输出功率提高约 5 dB。在 PA 加速模式中, 较之 PA_BOOST=0 时的正态分布模式,PA 的线性降低。因此,TX 功率谱的频谱旁瓣升高,斜 坡功率升高。 因此,较高的 TX 功率设置不能满足欧洲 868.3MHz 频段的规管关于邻近频段杂散发射的要求(见 ETSI EN 300 220,ERC/REC70-03,和 ERC/DEC/(01)04)。 ・6:5 位—GC_PA 此等寄存器位通过改变 PA 的偏置电流,控制 PA 增益。只能在 TRX_OFF 模式中对 GC_PA 进行 设置。当通过 TX_PWR 控制字选择了一个低 TX 功率时,此位可用于降低 TX 模式中的电源电流。 PA 偏置电流的下降导致 RF 增益和 PA 的 1dB 压缩点降低。因此,建议只将 PA 的降低偏置电流 与 TX_PWR 的较低值结合使用。表 7-15 列出了 TX_PWR 和 GC_PA 之间的合理组合。 表 7-14 AT86RF212 相对于 GC_PA=3 的增益的 PA 增益下降 寄存器位 值 GC_PA 0 1 2 3 PA 增益[dB] -2.9 -1.3 -0.9 0 ・4:0 位-TX_PWR 此等寄存器位控制发送器输出功率。TX_PWR 值表示相对于输出管理最大值的功率下降。当 GC_TX=0 时,输出功率达到最大值。分辨率为 1dB/步长。因为 TX_PWR 调节 PA 之前的 TX 通 路中增益,所以就 PA 效率而言,PA 偏置设置并非适用于 TX_PWR 的最优化设置。 当 PA 偏置随着 TX 功率设置(TX_PWR 值上升)降低时(GC_PA 值减小),可提高 PA 功率效率。 表 7-15 为 TX 功率控制(TX_PWR) ,PA 偏置控制(GC_PA)和 PA 加速模式(PA_BOOST)的推 荐组合列表。列出了寄存器 0x05 中的 8 位字对应的 TX 功率建议对应。TX_PWR 值应在 0 至 12 的范围内,以便保证发送信号的质量。 8168B-MCU Wireless-03/09 109 TX 功率,频段与寄存器 0x05 值的推荐对应表 表 7-15 寄存器 0x05 十六进制赋值 915 MHz 北美频段 发射功 率 [dBm] PHY 模式: BPSK-40, OQPSK-SIN250/500/1000 868.3 MHz 欧洲频段 780 MHz 中国频段 PHY 模式: BPSK-20, OQPSK-SIN-RC-100/200/400 PHY 模式: OQPSK-RC250/500/1000 欧盟频段 1 欧盟频段 2 附注 1 10 0xc0 9 0xa1 8 0x81 7 0x82 6 0x83 5 0x60 4 0x61 3 0x41 2 0x42 0x63 1 0x22 0x64 附注 2 0xe7 附注 4 0xe8 附注 3 0xe9 0 0x23 0x65 -1 0x02 0x66 -2 0x03 -3 附注 4 0xe7 0xe8 附注 5 0xe9 0xea 0xea 0xcb 0xca 0xab 0xaa 0xac 0xab 0x46 0xad 0x45 0x04 0x26 0x48 0x25 -4 0x05 0x05 0x27 0x03 -5 0x06 0x06 0x06 0x04 -6 0x07 0x07 0x07 0x05 -7 0x08 0x08 0x08 0x06 -8 0x09 0x09 0x09 0x07 -9 0x0a 0x0a 0x0a 0x08 -10 0x0b 0x0b 0x0b 0x09 -11 0x0c 0x0c 0x0c 0x0a 附注 5 附注 1:功率设置可适用于 BPSK 40 kbit/s 模式及 O-QPSK 250 kbit/s 模式。由于与传播范围较大 的 250 kbit/s 模式相比,此等模式对非线性更为敏感,因此建议对 O-QPSK 500/1000 kbit/s 模式的 最高输出功率加以限制。. 附注 2:功率设置可适用于 BPSK 40 kbit/s 模式与 O-QPSK 250/500 kbit/s 模式。 附注 3:功率设置可适用于各种模式。 附注4:功率设置可用于BPSK 20 kbit/s模式。频谱旁瓣保持 < -40dBm。 附注 5:功率设置可用于 BPSK 20 kbit/s 模式和 O-QPSK 100/200/400 kbit/s 模式。频谱旁瓣保持 <-40dBm。 110 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 北美对应表适用于最低电源电流。符合较宽泛的 IEEE802.15.4 标准的频谱旁瓣要求。 欧盟 1 和欧盟 2 对应表考虑到线性须保持频段外杂散发射在 ETSI 要求以下。 对应欧盟 1 使用的电源电流高于北美对应,并使用正态(线性化)PA 模式以便将 O-QPSK 100/200/400kbit/s 模式的介质输出功率提高到-1dBm,并将 BPSK 20kbit/s 模式的介质输出功率提 高到 2dBm。 对应欧盟 2 使用加速模式以提高电源电流为代价提高 TX 功率电平。因此,100/200/400kbit/s 的 O-QPSK 的 TX 功率最大值为 3dBm,20kbit/s 的 BPSK 的 TX 功率最大值为 5dBm。 按照中华人民共和国无线电管理局对低功率(短波)无线电设备的技术要求规定,中国映射表所 含频谱旁瓣必须保持< -36 dBm。 表7-15值均依照GC_TX_OFFS (寄存器 0x16, RF_CTRL_0)状态设置而定,该状态参数详见表 7-16。 表 7-16 GC_TX_OFFS 设置决定的模式 BPSK 模式 GC_TX_OFFS 3 O-QPSK 2 图 7-10 TX 功率设置决定 O-QPSK 调制电源电流示意图 26 电源电流 [mA] Supply Current [mA] 24 22 20 18 16 North 北美America EU1 欧盟 1 EU2 欧盟 2 中国 China 14 12 10 -11 -9 -7 -5 -3 TX TX 8168B-MCU Wireless-03/09 -1 1 3 5 7 9 11 Power 功率 [dBm] [dBm] 111 7.4 帧缓冲 AT86RF212 带有一个 128 字节的双端口 SRAM。一个端口与 SPI 接口连接,另一个端口与内置发 送器和接收器模块连接。两个端口的数据通信互相独立,可同时访问两个端口。 帧缓冲使用 SRAM 地址空间 0x00 至 0x7F 进行无线电收发器的接收和发送操作,并可一次保留 一个 IEEE802.15.4 接收或一个最大长度的发送帧。 帧缓冲访问模式介绍见于 4.3.2 小节。欠载执行中断 IRQ_6(TRX_UR)指示帧缓冲访问冲突。请注 意此中断在试图在帧缓冲内写入长度超过 127octet 的帧(超值)时发生。在此情况下,帧缓冲内 容未定义。 若启动数字电源调节器,则只能访问帧缓冲。这在除睡眠状态以外的所有设备状态中都有效。只 有在引脚 17(CLKM)提供 1 MHz 的主时钟时,可在 P_ON 状态下执行访问。 7.4.1 数据管理 下列操作将更改帧缓冲内的数据(接收数据或待发送数据) : ・帧缓冲或 SRAM 对 SPI 的写入访问 ・在 BUSY_RX 或 BUSY_RX_AACK 状态中接收新帧 ・转换至睡眠模式 ・复位 默认设置并无帧缓冲防覆盖保护。因此,如果在帧缓冲读取访问先前收到的帧时进行帧接收,将 发出中断请求 IRQ_6(TRX_UR),而且存储的数据可能被覆盖。 尽管如此,如果 SPI 数据传输速率高于有效无线数据传输速率,则仍可读取帧数据。如果数据传 输速率为 250kbit/s,那么建议使用最小值为 1MHz 的 SPI 时钟速率。最后,微控制器应通过 FCS 校验来检查传输的帧数据完整性。 为了保护帧缓冲内容不被最新输入帧覆盖,应在接收之后将无线电收发器状态转换为 PLL_ON。 可在接收帧的同时或接收完成后立即在寄存器 TRX_CMD 位(寄存器 0x02,TRX_STATE)写入 PLL_ON 命令实现此目的。 或者,可使用动态帧缓冲保护以便保护接收帧不被覆盖,详细资料请参看 9.7 小节。 这两个程序都不能保护帧缓冲不被微控制器覆盖。 在扩展操作模式中的 TX_ARET 操作过程中,(见 5.2.4 小节),若先前发送的帧要求应答,则无 线电收发器会切换至接收状态。在此期间,对接收帧进行评估但不存储在帧缓冲内。这样,无线 电收发器就可以等待应答帧并在不重新写入帧的情况下进行帧重传。 除非转换到睡眠状态或复位状态,否则无线电收发器的状态改变并不影响帧缓冲的内容。如果无 线电收发器转换到睡眠状态,那么帧缓冲就会关闭并且已存的数据也会丢失。 112 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 7.4.2 帧内容 AT86RF212 支持 IEEE802.15.4 标准的合规帧结构,如图 7-11 所示。 图 7-11. AT86RF212 帧结构 0 帧 持续时间 访问 长度 [octets ] 前导时序 Sequence 4 5 SFD 4 octets 1 SHR 不可访问 PHY 已生成 SFD_VALUE 6 PHR n +3 n +5 FCS 有效载荷 n octets (n <= 128 ) n +6 LQI n +7 ED n +8 RX_STATUS 3 octets / 帧缓冲内容/帧写入访问 (1 ) 帧读取访问 附注:1.如果 TX_AUTO_CRC_ON=1(寄存器 0x04,TXR_CTRL_1),那么写入 FCS 可省略。 帧由两个部分组成,无线电收发器内部生成的 SHR 字段和存储在帧缓冲中的用户可访问部分。 SHR 包括前导和 SFD 字段。可变帧部分含有 PHR 和 PSDU(含 FCS),见 6.3 小节。 请按照 4.3.2 小节中介绍的程序进行数据访问。 帧长度信息(PHR 字段)和 PSDU 存储在帧缓冲中。在帧接收过程中,还会保持接收帧的链路 质量显示(LQI)值,能量检测(ED)值,和状态信息(RX_STATUS),分别参看 6.8,6.5 和 4.3.2 小节。无线电收发器在帧缓冲读取访问的过程中将上述值附加到帧数据上。 若使用 SRAM 读取访问读取 RX 帧,那么可在地址 0 访问帧长度字段(PHR)。微控制器不可读 取 SHR(除 SFD 值用于生成 SHR 以外)。 要发送帧,则须将 PHR 和 PSDU 存储在帧缓冲内。无线电收发器支持的帧缓冲最大容量为 128 字节。若在寄存器 0x05(PHY_TX_PWR)中设置了 TX_AUTO_CRC_ON 位,则会在帧发送过程中 用计算的 FCS 自动替换 PSDU 的 FCS 字段。当使用自动 FCS 生成时,无须写入 FCS 字段。 要对帧缓冲中的个别字节进行处理,则可使用 SRAM 写入访问。 非 IEEE802.15.4 标准合规帧的无线电收发器支持帧长度最小值为一字节(帧长度字段+1 字节的 数据)。 7.4.3 中断处理 当读取和写入数据在帧缓冲,TX/RX BBP 和 SPI 的各独立部分同时进行时,可能会发生访问冲突。 这些端口有自己的地址计数器,可指示帧缓冲的当前地址点位。 当 SPI 端口地址计数器值大于或等于 TX/RX BBP 端口时,在发生帧缓冲读取或写入访问的过程 中,会发生访问冲突。 8168B-MCU Wireless-03/09 113 在接收帧的同时,首先须在读取之前将数据存储在帧缓冲中。可通过在中断 IRQ_2(RX_START) 至少 8 个符号周期(BPSK)或 2 个符号周期(O-QPSK)以后,再访问帧缓冲来保证上述要求。 在连续读取帧数据时,SPI 数据传输速率将低于当前的 TRX 比特率,以避免欠载执行中断发生。 为了避免冲突并简化帧缓冲读取访问,可使用帧缓冲空闲指示,详情参看 9.6 小节。 在发送过程中,当 SPI 端口地址计数器值低于或等于 TX BBP 端口时,会在帧缓冲写入访问中发 生访问冲突。 两种访问冲突都可能造成数据损坏,在帧缓冲读取模式下,IRQ_6(TRX_UR)中断将指示冲突。请 注意,当使用 SRAM 访问模式时,不会指示任何访问冲突。 当在帧发送的过程在帧缓冲写入数据时,SPI 数据传输速率将高于 PHY 数据传输速率,以避免欠 载执行。必须在 SFD 发送完成之前,在帧缓冲中提供 PSDU 数据的第一个字节,自 SLP_TR 引 脚的上升沿开始(见图 5-2)BPSK 的 SFD 发送耗时 41 个符号周期(1 符号的 PA 上斜坡+40 个 符号的 SHR),而 O-QPSK 的 SFD 发送耗时为 11 个符号周期(1 符号的 PA 上斜坡+10 个符号的 SHR)(参看图 5-2) 。 附注 ・中断 IRQ_6(TRX_UR)在 IRQ_2(RX_START)之后 1 octet 内有效。当在 RX_START 中断之后的 第一个八位字节和第二个八位字节之间读取帧缓冲的第一个字节时,将忽略发生的中断。 ・如果帧缓冲读取访问在新帧接收时并未完成,那么将发生 TRX_UR 中断。然而,只要 SPI 数据 传输速率高于有效 PHY 数据传输速率,就可以读取老的帧数据。在此情况下建议使用最小值为 1MHz 的 SPI 时钟速率。最后,微控制器应通过计算 FCS 校验传输的帧数据的完整性。 7.5 电压调节器(AVREG, DVREG) 电压调节器模块的主要特点有: ・为模拟和数字域提供 1.8V 带隙稳压电源 ・低压差(LDO)电压调节器 ・配置为外置电压调节器使用 7.5.1 概览 内置电压调节器向 AT86RF212 输送稳定电压。AVREG 向模拟模块提供 1.8V 稳压电源,DVREG 向数字模块输送 1.8V 的电源电压。 内置模拟电压调节器的简要示意图如图 7-12 所示。 114 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 图 7-12 AVREG 简要示意图 EVDD 带隙电压 基准 1.25V AVDD 内置数字电压调节器的简要示意图如图 7-13 所示。 图 7-13. DVREG 简要示意图 DEVDD 带隙电压基准 p 1.25 V BIAS DVDD 低功率电压调节器 电压调节器 数字电压调节器 “数字电压调节器”中的“低功率电压调节器”模块在电压调节器不可用时继续维持 DVDD 的 电源电压,睡眠模式下的情况就是如此(参看图 7-13)。如果 AT86RF212 进入睡眠模式,DVDD 电压将下降至 1.5V(标准值),并存储所有配置寄存器值。 低功率电压调节器常开。因此其偏置电流即是睡眠模式中的泄露电流,约为 100nA(标准值)。 低功率电压调节器(AVREG.DVREG)需要旁路电容以便稳定操作。旁路电容值决定了电压调节 器建立时间。旁路电容应置于尽量靠近引脚的位置,并在最短的路径内接地(见表 3-1) 。 8168B-MCU Wireless-03/09 115 7.5.2 配置 可通过寄存器 0x10(VREG_CTRL)配置电压调节器。 建议使用内置电压调节器,但也可提供外置电源供应低电压域。在此配置中,须通过将寄存器 AVREG_EXT 设置为 1 并将 DVREG_EXT 位设置为 1 关闭内置调节器。须将 1.8V 外置稳压电源 连接到引脚 13,14(DVDD)和 29(AVDD)。当打开外部电源时,保证 AT86RF212 互相作用之 前有足够长的稳定时间。 7.5.3 数据解释 寄存器 0x10(VREG_CTRL)的状态位 AVDD_OK=1 和 DVDD_OK=1 表示已启用稳定的内置电源电 压。读取值 0 表示禁用电压调节器或未建立内置电源电压的最终值。设置 AVRED_EXT=1 和 DVREG_EXT=1 将 AVDD_OK 和 DVDD_OK 的信号强制设定为 1。 7.5.4 寄存器说明 寄存器 0x10(VREG_CTRL): 此寄存器控制电压调节器的使用并指示其状态。 表 7-17 寄存器 0x10(VREG_CTRL) 位 7 6 5 4 名称 AVREG_EXT AVDD_OK 预留 预留 读取/写 R/W R R/W R/W 入 复位值 0 0 0 0 位 3 2 1 0 名称 DVREG_EXT DVDD_OK 预留 预留 读取/写 R/W R R/W R/W 入 复位值 0 0 0 0 ・第 7 位-AVREG_EXT 如果设置此寄存器位,则会禁用内置模拟电压调节器,并对模拟电路模块使用 1.8V 外置稳压电 源。 表 7-18 模拟电路模块的稳压电源控制 寄存器位 值 说明 AVREG_EXT 0 模拟模块启用内置电压调节器 1 禁用内置模拟电压调节器,并对模拟 元件模块使用 1.8V 外置稳压电源 ・第 6 位-AVDD_OK 此寄存器位指示内置 1.8V 稳压电源 AVDD 是否已固定。若 AVREG_EXT=1,此位被建立为高电平 逻辑。 116 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 表 7-19 模拟电路模块的稳压电源控制 寄存器位 值 AVDD_OK 0 1 说明 模拟电源调节器禁用或电源电源不稳 定 模拟电源电压已建立 ・5:4 位-预留 ・第 3 位-DVREG_EXT 若设置此寄存器位,则将禁用内置数字电压调节器,并对数字电路模块应用 1.8V 的外置稳压电 源。 表 7-20. 数字电路模块的稳压电源 寄存器 值 说明 DVREG_EXT 0 内置电压调节器启用,数字模块 内置电压调节器禁用,为数字模块使用 1 外置 1.8V 稳压电源 ・第 2 位-DVDD_OK 此寄存器位指示内置 1.8V 稳压电源 DVDD 是否已建立。若 DVREG_EXT=1,此位被设置为高电平 逻辑。 表 7-21 数字电路模块的稳压电源 寄存器位 值 说明 DVDD_OK 0 数字电源调节器禁用或电源电源不稳定 1 数字电源电压已建立 附注 ・当此位复原值为 0 时,只有在 DVREG 可用的情况下,方可对寄存器进行实际访问。因此,此 位通常设置为 1. ・1:0 位-预留 寄存器 0x0C(TRX_CTRL_2) : 此寄存器控制 TRX 的操作。 表 7-22. 寄存器 0x0C(TRX_CTRL_2) 位 7 6 5 4 TRX_OFF_AVD 名称 RX_SAFE_ OQPSK_SCRAM_EN OQPSK_SUB1_RC_EN MODE D_EN 读取 / 写 R/W R/W R/W R/W 入 复位 0 0 1 0 值 位 3 2 1 0 名称 BPSK_OQP SUB_MODE OQPSK_DATA_RATE OQPSK_DATA_RATE SK 读取 / 写 R/W R/W R/W R/W 入 复位 0 1 0 0 值 8168B-MCU Wireless-03/09 117 ・第 6 位-TRX_OFF_AVDD_EN 如果设置此寄存器位,则在 TRX_OFF 的过程中,启动模拟电压调机器,以便使接收/发送在时间 上运转得更快。耗电量上升 100μA(标准值)。 7.6 电池监测器(BATMON) 电池监测器的主要特点有: ・可配置电压阈值范围:1.7V 至 3.675V ・当电源电压降至阈值以下时,生成中断 ・可在寄存器位中监测电流状态 7.6.1 概览 电池监测器(BATMON)检测并指示引脚 28(EVDD)处的外置电源电压的低电源电压。通过将 外置电源的引脚 28(EVDD)与可配置内置阈值电压比较实现检测与指示。图 7-14 为 BATMON 的简要示意图,并标出了最重要的输入和输出信号。 图 7-14 BATMON 简要示意图 EVDD BATMON_OK BATMON_HR + 4 DAC 阈值电压 BATMON_VTH 输 入 -输 出 对 应 参看寄存 器 0x11 (BATMON) - „1“ 空闲 D Q BATMON_IRQ 7.6.2 配置 可通过寄存器 0x11(BATMON)对 BATMON 进行配置。寄存器子字段 BATMON_VTH 设置阈 值电压。可在高电压范围(BATMON_HR=1)内,按 75 mV 的分辨率进行配置,并在低电压范 围内(BATMON_HR=0)按 50mV 的分辨率进行配置,详细信息请参看寄存器 0x11(BATMON). 7.6.3 数据解释 寄存器 BATMON_OK 位(寄存器 0x11,BATMON)代表电源电压的当前值: ・若 BATMON_OK=0,则电源电压低于阈值电压 ・若 BATMON_OK=1,则电源电压高于阈值电压 在设置新阈值之后,应读取 BATMON_OK 值以便检验当前电源电压值。 请注意,电池监测器在 P_ON 和睡眠状态中不可用,参看状态寄存器 0x01(TRX_STATUS). 118 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 7.6.4 中断处理 中 断 IRQ_7(BAT_LOW) 指 示 电 源 电 压 降 至 配 置 的 阈 值 以 下 , 见 4.7 小 节 。 请 注 意 只 在 BATMON_OK 从 1 变为 0 时,发出中断请求。 在下列情况下,将不生成任何中断: ・上电时,电源电压低于默认的 1.8V 阈值(BATMON_OK 总不为 1),或 ・设置新阈值,且该值仍高于当前电源电压(BATMON_OK 保持为 0)。 当电池电压接近设置的阈值电压时,噪声电压或电压暂降可能生成中断。为了避免这种情况的发 生: ・禁用寄存器 0x0E(IRQ_MASK)上的 IRQ_7(BAT_LOW)并将电池视为电量为空,或 ・设置更低的阈值电压 7.6.5 寄存器说明 寄存器 0x11(BATMON): 此寄存器配置用于将引脚 28 电源电压(EVDD)和阈值电压进行比较的电池监测器。此外,可依 据 BATMON 的实际设置,通过寄存器 BATMON_OK 位读取引脚 28 的电源电压状态(EVDD)。 表 7-23. 寄存器 0x11(BATMON) 位 7 6 5 4 名称 预留 预留 BATMON_OK BATMON_HR 读取/写入 R R/W R R/W 复位值 0 0 0 0 位 3 2 1 0 BATMON_VTH BATMON_VTH BATMON_VTH 名称 BATMON_VTH 读取/写入 R/W R/W R/W R/W 复位值 0 0 1 0 ・7:6 位-预留 ・第 5 位-BATMON_OK 寄存器 BATMON_OK 位依照程序设置的阈值 BATMON_VTH,指示外置电源电压电平。 表 7-24.电池监测器状态 寄存器位 值 说明 BATMON_OK 0 电池电压低于阈值。 1 电池电压高于阈值。 ・第 4 位-BATMON_HR 寄存器 BATMON_HR 位设置电池监测器的量程和分辨率。 8168B-MCU Wireless-03/09 119 表 7-25 电池监测器量程选择 寄存器位 BATMON_HR 值 0 1 说明 启用低电压量程,见 BATMON_VTH 启用高电压量程,见 BATMON_VTH ・3:0 位-BATMON_VTH 电池监测器阈值设置有寄存器 BATMON_VTH 位完成: 表 7-26.电池监测器阈值电压 赋值 电压[V] BATMON_VTH[3:0] BATMON_HR=1 0x0 2.550 0x1 2.625 0x2 2.700 0x3 2.775 0x4 2.850 0x5 2.925 0x6 3.000 0x7 3.075 0x8 3.150 0x9 3.225 0xA 3.300 0xB 3.375 0xC 3.450 0xD 3.525 0xE 3.600 0xF 3.675 电压[V] BATMON_HR=0 1.70 1.75 1.80 1.85 1.90 1.95 2.00 2.05 2.10 2.15 2.20 2.25 2.30 2.35 2.40 2.45 7.7 晶体振荡器(XOSC)及时钟输出(CLKM) 主要特点为: ・16MHz 幅度控制晶体振荡器 ・退出睡眠状态后迅速建立时间 ・可配置微调电容阵列 ・可配置时钟输出(CLKM) 7.7.1 概览 晶体振荡器为 AT86RF212 提供基准频率。无线电收发器生成的其他所有内部频率均出自此频率。 因此,整个系统的性能主要取决于晶体基准频率。应认真挑选晶体振荡器外置部件,并谨慎处理 在相关电路板的设计(见第 3 章)。 支持两种操作模式。推荐模式为如图 7-15 所述的集成振荡器结构。或者,也可通过外置时钟基准 为内部电路提供基准频率,如图 7-16 所示。寄存器 0x12(XOSC_CTRL)负责配置 XOSC 的操作模 式。 120 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 7.7.2 集成振荡器设置 当使用内置振荡器时,振荡频率取决于晶体引脚 XTAL1 和 XTAL2 之间的负载电容。总负载电容 CL 必须等于规定的晶体自身负载电容。它包括连接 XTAL 节点的外置电容 CX 和寄生电容。 图 7-15 列出了所有寄生电容,包括 PCB 杂散电容和引脚输入电容等,统称为 CPAR。 图 7-15 XOSC 及外置部件简要示意图 CPAR CX CX CPAR VDD XTAL1 EVDD 16MHz XTAL2 PCB AT86RF212 CTRIM XTAL_TRIM[3:0] CTRIM XTAL_TRIM[3:0] EVDD 还可使用其他内置微调电阻 CTRIM。可通过寄存器 0x12(XOSC_CTRL)的 XTAL_TRIM 位在 0pF 至 4.5pF 的范围内进行选择,分辨率为 0.3pF。使用以下公式计算总负载电容 CL =0.5・(CX+CTRIM +CPAR). 微调电容可减少因产生过程变化或外置部件公差而引起的频率偏差。请注意只能通过提高微调电 容来降低振荡频率。因 CTRIM 一步引起的频率偏差随着晶体负载电容值的升高而降低。 幅度控制电路用于保证在不同操作模式下和适用于不同晶体类型的稳定操作。在 P_ON 状态下及 退出睡眠状态后启动晶体振荡器时,会使幅度建立相的电流微微升高以便保证缩短启动时间。在 稳定操作中,电流降低到稳定操作所必需的值,并保持晶体的低激励功率。 通常而言,晶体的负载电容越高,对因外置部件变化或电路板及电流寄生变化而造成的寄生牵引 效应的敏感度越低。另一方面,晶体的负载电容越高,其启动时间就越长,稳定状态下的耗电量 也越大。 8168B-MCU Wireless-03/09 121 7.7.3 外置基准频率设置 当使用外置基准频率时,须将信号接至引脚 26(XTAL1) (如图 7-16 所示),寄存器 XTAL_MODE 位(寄存器 0x12,XOSC_CTRL)须设置为外置振荡器模式。振荡峰间幅度应在 100mV 至 500mV 之间,且最佳范围应在 400mV 至 500mV 之间。引脚 25(XTAL2)不应接线。请注意外置基准的 质量(即,相位噪声)决定了系统的性能。 图 7-16. 外置频率基准应用设置 16 MHz XTAL1 XTAL2 PCB AT86RF212 7.7.4 主时钟信号输出(CLKM) 可通过引脚 17(CLKM)将生成的基准时钟信号输送至微控制器。预分频器对内置 16MHz 原始 时钟进行分割。因此,引脚 CLKM 可发出 16MHz、8MHz、4MHz、2MHz、1MHz 和 250kHz,或 当前 SHR 符号率频率的时钟频率。 寄存器 0x03(TRX_CTRL_0)负责配置 CLKM 频率及引脚驱动强度。可通过两种方式实现 CLKM 频率变化。若 CLKM_SHA_SEL=0,则改变寄存器 CLKM_CTRL(寄存器 0x03,TRX_CTRL_0) 会立即对 CLKM 时钟速率产生影响。反之(CLKM_SHA_SEL=1) ,则在下一次退出睡眠状态时, 出现新的时钟速率。 为了降低功耗并减少杂散发射,建议在不使用时关闭 CLKM 时钟,或将驱动强度降至最低,参 看 2.2.2 小节。 CLKM 复位操作 在复位程序中(见 5.1.4.5 小节),寄存器 CLKM_CTRL 位变为灰色。虽然 CLKM 时钟设置在复 位后仍然保持不变,但对寄存器 CLKM_CTRL 位进行读取访问会发送复位值 1。因此,建议在复 位之前先将以前的配置写入寄存器 CLKM_CTRL 位,以便将无线电收发器的操作与寄存器配置 对应起来。反之,在下一个睡眠周期之后,CLKM 时钟速率会返回复位值(1MHz)。 例如,如果 CLKM 时钟速度配置为 16MHz。在复位之后,CLKM 时钟速率仍为 16MHz,但是, 寄存器 CLKM_CTRL 位则返回复位值 1。由于 CLKM_SHA_SEL 复位值为 1,如不更新 CLKM_CTRL 设置,那么在下一个睡眠周期之后,CLKM 时钟速率将变为 1MHz。 122 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 7.7.5 时钟振荡器 AT86RF212 的接收器敏感度可达-110dBm。检测这种低射频信号需要非常清净的场景,不得出现 噪音及干扰。如果它们干扰需要的射频信号,则可能破坏数字信号谐波的效果。数字信号的小时 钟振荡器可将谐波延展到更宽的频率范围,从而降低某些频谱线的强度。AT86RF212 提供此类时 钟振荡器作为选配功能。振荡器模块为接收器部分及所有输入/输出信号工作,如 CLKM(如果激 活)。发射器部分与射频频率的生成不会受到影响。 7.7.6 寄存器说明 寄存器 0x03(TRX_CTRL_0): 表 7-27 寄存器 0x03(TRX_CTRL_0) 位 7 6 名称 PAD_IO PAD_IO 读取/写入 R/W R/W 复位值 0 0 5 PAD_IO_CLKM R/W 0 4 PAD_IO_CLKM R/W 1 位 3 2 1 0 CLKM_CTRL CLKM_CTRL CLKM_CTRL 名称 CLKM_SHA_SEL 读取/写入 R/W R/W R/W R/W 复位值 1 0 0 1 TRX_CTRL_0 寄存器控制数字输出和 CLKM 时钟速率的驱动电流。建议使用驱动电流最小值以 便降低耗电量和信号谐波的发生。 ・7:6 位-PAD_IO 参看 2.2.2.3 小节。 ・5:6 位-PAD_IO_CLKM 此 等 寄 存 器 位 设 置 CLKM 引 脚 的 输 出 驱 动 强 度 。 如 果 可 能 , 建 议 将 驱 动 强 度 降 低 至 2mA(PAD_IO_CLKM=0),从而降低功耗和杂散发射。 表 7-28 CLKM 驱动强度 寄存器位 PAD_IO_CLKM 值 0 1 2 3 说明 2mA 4mA 6mA 8mA ・第 3 位—CLKM_SHA_SEL 寄存器 CLKM_SHA_SEL 位设定是否在下一个睡眠周期后立即设定由 CLKM_CTRL 定义的新时 钟速率或使之生效。 8168B-MCU Wireless-03/09 123 表 7-29.CLKM 时钟速率更新设置 寄存器位 值 CLKM_SHA_SEL 0 说明 立即执行 CLKM 时钟速率改变 1 在睡眠周期后执行 CLKM 时钟速率改变 ・2:0 位—CLKM_CTRL 此等寄存器位设置引脚 17(CLKM)的时钟速率。 表 7-30. 引脚 CLKM 的时钟速率设置 寄存器位 值 说明 CLKM_CTRL 引脚17(CLKM)无时钟,引脚置于为逻辑 0 低频位置 1 2 3 4 5 6 寄存器位 值 7 1MHz 2 MHz 4 MHz 8 MHz 16 MHz 250 kHz 说明 IEEE802.15.4 符号率频率 BPSK_OQPSK(1) SUB_MODE(1) 0 0 0 1 1 0 1 1 频率 20kHz 40 kHz 25 kHz 62.5 kHz 附注:1.参看 7.1.5 小节 寄存器 0x12(XOSC_CTRL): 寄存器 XOSC_CTRL 配置晶体寄存器。 表 7-31.寄存器 0x12(XOSC_CTRL) 位 7 6 XTAL_MODE 名称 XTAL_MODE 读取/写入 R/W R/W 复位值 1 1 位 3 2 XTAL_TRIM 名称 XTAL_TRIM 读取/写入 R/W R/W 复位值 0 0 ・7:4 位-XTAL_MODE 此等寄存器位设置晶体振荡器的操作模式,见表 7-32。 124 AT86RF212 5 XTAL_MODE R/W 1 1 XTAL_TRIM 4 XTAL_MODE R/W 1 0 XTAL_TRIM R/W R/W 0 0 8168B-MCU Wireless-03/09 AT86RF212 表 7-32. 晶体振荡器操作模式 寄存器位 值 XTAL_MODE 0x4 说明 禁用内置晶体振荡器,使用外置基准频率 启用内置晶体振荡器 0xF 其他 预留 ・3:0 位-XTAL_TRIM 寄存器 XTAL_TRIM 位控制与引脚 XTAL1 和 XTAL2 连接的两个内置电容阵列。可选择在 0pF 到 4.5pF 之间电容值,分辨率为 0.3pF。 表 7-33. 晶体振荡器微调电容 寄存器位 XTAL_TRIM 值 0x0 0x1 … 0xF 其他 说明 0.0 pF 0.3 pF 4.5 pF 预留 寄存器 0x0A(RX_CTRL): 寄存器 RX_CTRL 配置时钟振荡器寄存器。 表 7-34.寄存器 0x0A(RX_CTRL) 位 7 名称 预留 读取/写入 R/W 复位值 1 位 3 名称 预留 读取/写入 R/W 复位值 6 预留 R/W 0 2 预留 5 JCM_EN R/W 0 1 预留 4 预留 R/W 1 0 预留 R/W R/W R/W 1 1 1 0 ・7:6 位-预留 ・5 位-JCM_EN 若设置该位,则激活振荡器模块。 ・4:0 位-预留 7.8 频率合成器(PLL) PLL 的主要特点有: ・位所有支持信道生成 RX/TX 频率 ・保证操作范围内的稳定操作的自动校准环 ・两个 PLL 状态指示中断 ・支持跳频的快速 PLL 建立 8168B-MCU Wireless-03/09 125 7.8.1 概览 PLL 为 AT86RF212 生成 RF 频率。在接收和发送操作过程中,频率合成器用作本地振荡器,执行 N 分数锁相环的分相误差模拟补偿。VCO 以双倍的 RF 频率运行。 两个校准环保证了 PLL 功能在规定操作限值下的正确执行。 7.8.2 RF 信道选择 PLL 设计用于支持: ・4 个符合 IEEE802.15.4c 标准的中国 WPAN 频率范围在 779 至 787MHz 之间信道,信道间隔为 2MHz。中心频率为 780,782,784 和 786MHz。 ・一个符合 IEEE 802.15.4 标准的欧洲 SRD 频率范围在 863 至 870MHz 之间的 868.3MHz 信道(信 道 k=0) ・10 个符合 IEEE 802.15.4-2006 标准的北美 ISM 频率范围在 902 至 928MHz 之间信道,信道间隔 为 2MHz。这些信道的中心频率定义为 其中 k 为从 1 到 10 的信道数。 ・按照 IEEE P802.15.4c 标准的规定,中国 WPAN 频段中的 4 个信道为 779 至 787MHz,信道间 隔为 2MHz。中心频率为 780,782,784 及 786MHz。 此外,PLL 支持在 769-935MHz 范围内的所有频率,各频率间隔为 1MHz,还支持 3 个 100kHz 的在 769-794.5MHz, 857-882.5MHz 和 903-928.5MHz 之间的频段。 寄存器 0x13(CC_NUMBER,CC_CTRL_0[7:0])和 0x14(CC_BAND,CC_CTRL_1[2:0])选择频率。 表 7-35 列出了寄存器 CC_CTRL_0 和 CC_CTRL_1 的设置。 表 7-35 频率范围与信道数 CC_BAND, CC_NUMBER, CC_CTRL_1 CC_CTRL_0 0 不使用 1 2 3 4 5 6,7 0-255 0-255 0-255 0-94 0-102 0-255 说明 IEEE 802.15.4标准规定的欧盟及北美信道;由寄存器位 CHANNEL(寄存器0x08, PHY_CC_CCA)选择频率,参 见7.8.6小节。 769 – 794.5 MHz; Fc = 769 + 0.1 * CC_CTRL_0 [MHz] 857 – 882.5 MHz; Fc = 857 + 0.1 * CC_CTRL_0 [MHz] 903 – 928.5 MHz; Fc = 903 + 0.1 * CC_CTRL_0 [MHz] 769 – 863 MHz; Fc = 769 + CC_CTRL_0 [MHz] 833 – 935 MHz; Fc = 833 + CC_CTRL_0 [MHz] 预留 PLL_ON 和接收状态下的 PLL 频率比发送状态下的 PLL 频率低 1MHz。 126 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 7.8.3 PLL 建立时间与频率敏捷度 当启用 PLL 时,从 TRX_OFF 转换为 PLL_ON 的状态转换过程中的建立时间标准值 tTR4=110μs(50 μs 加 60μs 的 AVREG 调节器模拟电压建立时间),包括 PLL 自身校准,参看表 5-1 及第 7.8.4 小节。中断 IRQ_0(PLL_LOCK)指示 PLL 锁定。 在 PLL_ON 或 RX_ON 状态下的相同频段信道间切换通常使用 tTR20=11μs 进行。因此,无线电收 发器非常适合频率切换的应用。 在 PLL_ON 状态和接收状态中,PLL 建立为接收频率。 当开始发送程序时,PLL 频率在开始发送前 tTR23=16μs 以内转为发送频率。发送之后,PLL 在 tTR24=32 μ s 以 内 建 立 返 回 接 收 频 率 。 此 频 率 转 换 不 生 成 中 断 IRQ_0(PLL_LOCK) 或 IRQ_1(PLL_UNLOCK)。 7.8.4 校准环 由于温度,电源电压和中心频率的变化,VCO 特性可能发生变化。 为了保证稳定操作,单片机执行两个自动控制环:中心频率和延时元件校准。当在 TRX_OFF 至 PLL_ON 或 RX_ON 的状态转换过程中启用 PLL 时,两个校准环均自动开启。此外,当 PLL 变为 不同的频率设置时,也会自动开启两个校准环。 若长时间在同一信道操作 PLL 或工作环境温度急剧变化,应手动开启校准环。建议校准间隔期为 5 分钟或 5 分钟以下。 可通过 SPI 命令手动开启两个校准环。要开始校准,须将设备至于 PLL_ON 状态中。 可通过设置 PLL_CF_START=1(寄存器 0x1A,PLL_CF)开启中心频率校准。中心频率校准生成 (若启用)一个 PLL_UNLOCK 中断。当 PLL_LOCK 中断(若启用)发生时,校准环完成。中 心频率校准环的持续时间取决于当前 CF 值和最终 CF 值之间的差异。在校准过程中,CF 值会上 升和下降。每步耗时 8μs。时间最小值为 8μs,时间最大值为 270μs。建议通过读取寄存器 0x1A(PLL_CF),将寄存器 PLL_CF_START 位设置为 1 开始中心频率校准,并返回寄存器写入值。 可通过将寄存器 0x1B(PLL_DCU)的 PLL_DCU_START 位设置为 1 开始延时元件校准。将可编程 延时单元的延时时间调节至正确值。校准采用逐次近似算法进行,与寄存器 0x1B(PLL_DCU)的 赋值无关。校准持续时间为 10μs。 在两个校准过程中,不能进行任何正确的接收或发送操作。因此,建议在 PLL_ON 状态下进行校 准,但接收和发送状态下未锁定校准。 可同时执行这两项校准。 8168B-MCU Wireless-03/09 127 7.8.5 中断处理 两种不同的中断指示 PLL 状态。IRQ_0(PLL_LOCK)指示 PLL 已锁定。IRQ_1(PLL_UNLOCK)中 断指示未预料的解锁条件。PLL_LOCK 中断会自动清除先前的所有 PLL_UNLOCK 中断,反之亦 然。 在下列情况下发生 PLL_LOCK 中断: ・状态从 TRX_OFF 转换至 PLL_ON/RX_ON 状态 ・在状态 PLL_ON/RX_ON 中改变频率设置 ・手动开始的中心频率校准已完成 所有其他 PLL_LOCK 中断事件均指示 PLL 在先前发生解锁之后再次被锁定。 在下列情况下发生 PLL_UNLOCK 中断: ・在 PLL_ON/(RX_ON)状态中手动开始中心频率校准 ・在 PLL_ON/RX_ON 状态中改变频率设置 PLL_LOCK 和 PLL_UNLOCK 会影响收发器的性能: 在 BUSY_TX 和 BUSY_TX_ARET 状态下,会终止发送并使收发器返回 PLL_ON 状态。在 BUSY_RX 和 BUSY_RX_AACK 的状态下,在 PLL 被锁定之后,收发器分别返回 RX_ON 和 RX_AACK_ON 状态。 7.8.6 寄存器说明 寄存器 0x08(PHY_CC_CCA): 寄存器 PHY_CC_CCA 含有依 IEEE802.15.4 标准为欧洲和北美频段设置的信道中心频率的寄存器 位。对寄存器 CHANNEL 位的写入访问用于设置寄存器位 CHANNEL 的信道数。读取访问显示 当前信道数。必须将寄存器位 CC_BAND(寄存器 0x14,CC_CTRL_1)设置为 0,以便激活上述 信道选择,参看表 7-35。 表 7-36. 寄存器 0x08(PHY_CC_CCA) 位 7 6 CCA_MODE 名称 CCA_REQUEST 读取/写入 W R/W 复位值 0 0 位 3 2 CHANNEL[3] CHANNEL[2] 名称 读取/写入 R/W R/W 复位值 0 1 表 7-37. IEEE802.15.4 标准信道分配列表 寄存器位 值 CHANNEL 0x00 0x01 0x02 128 AT86RF212 信道数 k 0 1 2 5 CCA_MODE R/W 1 1 CHANNEL[1] R/W 0 4 CHANNEL[4] R/W 0 0 CHANNEL[0] R/W 1 频率[MHz] 868.3 906 908 8168B-MCU Wireless-03/09 AT86RF212 寄存器位 值 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B…0x0F 信道数 k 3 4 5 6 7 8 9 10 预留 频率[MHz] 910 912 914 916 918 920 922 924 寄存器 0x13(CC_CTRL_0): 此寄存器在不使用按信道数选择的情况下,控制频率选择。 表 7-38. 寄存器 0x13(CC_CTRL_0) 位 7 6 5 名称 读取/写入 复位值 0 0 0 4 3 CC_NUMBER[7:0] R/W 0 0 2 1 0 0 0 0 寄存器 0x14(CC_CTRL_1): 此寄存器选择频率范围。 表 7-39. 寄存器 0x14(CC_CTRL_1) 位 名称 读取/写入 复位值 位 名称 读取/写入 复位值 7 预留 R 0 3 预留 R 0 6 预留 R 0 2 CC_BAND[2] R/W 0 5 预留 R 0 1 CC_BAND[1] R/W 0 4 预留 R 0 0 CC_BAND[0] R/W 0 寄存器 CC_CTRL_0 和 CC_CTRL_1 的功能介绍见于表 7-35。 寄存器 0x1A(PLL_CF): 此寄存器控制中心频率校准环的操作. 8168B-MCU Wireless-03/09 129 表 7-40. 寄存器 0x1A(PLL_CF) 位 7 名称 PLL_CF_START 读取/写入 R/W 复位值 0 位 3 PLL_CF[3] 名称 读取/写入 R/W 复位值 1 6 预留 R/W 1 2 PLL_CF[2] 5 预留 R/W 0 1 PLL_CF[1] 4 PLL_CF[4] R/W 0 0 PLL_CF[0] R/W R/W R/W 0 0 0 ・第 7 位-PLL_CF_START PLL_CF_START=1 开启中心频率校准。在校准周期在 25μs 内结束,而寄存器 PLL_CF_START 位复位为 0. ・6:5 位 这些寄存器位为预留位,必须总通过复位值将写入返回。 ・4:0 位-PLL_CF 4:0 位表示 PLL 的当前 CF 状态。为了保证尽可能缩短校准时间,不应在启动中心频率校准时改 变其设置。 寄存器 0x1B(PLL_DCU): 此寄存器控制延时元件校准环的操作: 表 7-40. 寄存器 0x1B(PLL_DCU) 位 7 名称 PLL_DCU_START 读取/写入 R/W 复位值 0 位 3 名称 预留 读取/写入 R/W 复位值 0 6 预留 R/W 1 2 预留 R/W 0 5 预留 R/W 0 1 预留 R/W 0 4 预留 R/W 0 0 预留 R/W 0 ・第 7 位-PLL_DCU_START PLL_DCU_START=1 开始延时元件校准。校准周期在 10μs 后结束,而寄存器 PLL_DCU_START 位复位为 0。校准完成后,寄存器位立即清空。 ・6:0 位-预留 7.9 自动滤波器调整(FTN) 7.9.1 概览 安装 FTN 以便补偿无线电收发器的温度、电源电压变化和元件间差异。当从睡眠,复位或 P_ON 状态进入 TRX_OFF 状态时,会自动启动校准。 130 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 尽管接收器和发送器的抗变差稳定性非常强,仍建议在无线电收发器不定期使用睡眠模式时,手 动启动 FTN。此校准特别适用于对变差灵敏度较高的高数据传输速率模式。建议校准间隔期为 5 分钟左右。 7.9.2 寄存器说明 寄存器 0x18(FTN_CTRL): 此寄存器控制滤波器调整校准环。 表 7-41 . 寄存器 0x18(FTN_CTRL) 位 7 名称 FTN_START 读取/写入 S 复位值 0 位 3 名称 预留 读取/写入 R/W 复位值 1 6 预留 R/W 1 2 预留 R/W 0 5 预留 R/W 0 1 预留 R/W 0 4 预留 R/W 1 0 预留 R/W 0 ・第 7 位-FTN_START FTN_START=1 开始滤波器调整校准环。在不超过 25μs(最大值)的校准周期完成之后,寄存器 位自动复位为 0. ・6:0 位-预留 8168B-MCU Wireless-03/09 131 8. 无线电收发器的使用 本章介绍了使用 AT86RF212 接收和发送帧的基本程序。 8.1 帧接收程序 帧接收由两个动作组成:收发器收听,接收并解调帧于帧缓冲并向微控制器发送接收信号。在此 过程之中及之后,微控制器可通过 SPI 接口读取帧缓冲的可用帧数据。 当处于 RX_ON 或 RX_AACK_ON 状态时,无线电收发器在所选信道搜索输入帧。假设已启用适 当的中断时,中断 IRQ_2(RX_START)指示找到 IEEE802.15.4-2006 合规帧。当帧接收完成时,发 出中断 IRQ_3(TRX_END)。 不同的帧缓冲读取访问情景建议用于: ・非严格时间要求应用 ・严格时间要求应用 在 IRQ_3(TRX_END)后开始读取访问 在 IRQ_2(RX_START)后开始读取访问 对于非严格时间要求应用,建议在中断 IRQ_3(TRX_END)之后,再开始帧缓冲读取访问。图 8-1 列出了使用 IRQ_3(TRX_END)的帧接收程序。 图 8-1 AT86RF212 与微控制器之间的接收处理 发出 IRQ (IRQ_2) AT86RF212 , 读取 IRQ 状态,引脚 24(IRQ)取消确认 发出 IRQ (IRQ_3) 读取 IRQ 状态,引脚 24(IRQ)取消确认 微控制器 2 1 2 F R 6 8 T A re ll o rt n o co rc iM 读取帧数据(帧缓冲访问) 严格时间要求的协议可能要求在 IRQ_2(RX_START)之后开始帧缓冲的读取访问。在 IRQ_2 (RX_START)中断 1 octet 时间周期过后,可读取帧数据的首字节。微控制器须保证读取慢于帧 接收。否则,将发生帧缓冲欠载工作,发出 IRQ_6(TRX_UR),而且还可能造成帧数据无效。为 了避免这种情况,可使用帧缓冲空闲指示控制帧缓冲读取访问,参看 9.6 小节。 132 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 8.2 帧发送程序 帧发送由两个动作组成:帧缓冲写入访问和帧缓冲内容发送。如果时间要求严格的协议要求,可 并行运行这两个动作。 图 8-2 列出先后执行写入和帧发送时的帧发送程序。在帧缓冲写入访问之后,当无线电收发器处 于 PLL_ON 或 TX_ARET_ON 时,可通过确定引脚 11(SLP_TR)或在寄存器 0x02(TRX_STATE) 写入 TX_START 命令开始帧发送。中断 IRQ_3(TRX_END)指示处理完成。 图 8-2 AT86RF212 与微控制器之间的发送处理 写入帧数据(帧缓冲访问) AT86RF212 写入 TX_CMD=TX_START,或确认引脚 11(SLP_TR) 发出 IRQ_3(TRX_END) 微控制器 2 1 2 F R 6 8 T A re ll o rt n o co rc iM 读取 IRQ_STATUS 寄存器,引脚 24(IRQ)取消确认 或者,可先开始帧发送,在对帧缓冲进行写入访问(PSDU 数据);参看图 8-3。这适用于对时间 要求严格的应用。 可通过确认引脚 11(SLP_TR)或在寄存器 TRX_CMD 位(寄存器 0x02,TRX_STATE)写入 TX_START 命令开始发送,无线电收发器开始发送内部生成的 SHR。 PLL 建立和 PA 上斜坡的前端初始化需要 1 个符号周期。BPSK 下的 SHR 发送须另外 40 个符号 周期,O-QPSK 需 10 个符号周期。 必须在时间用尽之前,在帧缓冲内提供可用 PHR。而且,SPI 数据传输速率必须高于寄存器 OQPSK_DATA_RATE 位(寄存器 0x0C,TRX_CTRL_2)选择的 PHY 数据传输速率以避免帧缓 冲欠载工作,IRQ_6(TRX_UR)用于指示欠载工作,参看 7.1.4 小节。 8168B-MCU Wireless-03/09 133 图 8-3 优化时序帧发送程序 写入 TRX_CMD=TX_START,或确认引脚 11(SLP_TR) AT86RF212 写入帧数据(帧缓冲访问) 发出 IRQ_3(TRX_END) 微控制器 2 1 2 F R 6 8 T A re ll o rt n o co rc iM 读取 IRQ_STATUS 寄存器,引脚 24(IRQ)取消确认 134 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 9. 扩展功能设置 9.1 安全模块(AES) 安全模块(AES)的特性包括: ・硬件快速加密与解密 ・可兼容 AES-128 标准(128 位密钥及数据块大小) ・ECB(加密/解密)模式与 CBC(加密)模式支持 ・独立操作,独立于其他模块 9.1.1 概览 安全模块是符合 FIPS197 标准要求的基于 AES-128 的内核,参看[7]。安全模块独立于 AT86RF212 的其他集成电路模块。可在帧发送或接收的同时执行加密和解密。 通过对地址空间 0x82 至 0x94 的 SRAM 访问实施对安全模块的控制。可在快速 SRAM 访问模式 中,在同一个 SPI 传输中同时写入新数据和读取先前处理的数据。此访问程序用于降低 ECB 模 式的周转周期,见 9.1.5。 此外,安全模式含有另一个 128 位寄存器用于存储安全操作的初始密钥。安全模块不能修改此初 始密钥。 9.1.2 安全模块准备 要使用安全模块,则须在开始安全操作之前进行安全引擎配置。表 9-1 列出了所需的配置步骤。 表 9-1. AES 引擎配置步骤 步骤 描述 说明 章节 9.1.3 1 密钥设置 在 SRAM 写入加密或解密密钥 9.1.4.1 AES 模式 选择 AES 模式:ECB 或 CBC 2 9.1.4.2 选择加密或解密 9.1.5 3 写入数据 在 SRAM 写入明码文本或密码文本 4 开始操作 开始 AES 操作 9.1.5 5 读取数据 读取 SRAM 密码文本或明码文本 在开始任何安全操作之前,都必须在安全引擎写入密钥,参看 9.1.3 小节。密钥设置须通过寄存 器 AES_MODE 位(SRAM 地址 0x83, AES_CTRL)进行 AES 引擎密钥模式配置。 接下来的步骤是选择 AES 模式,可为电子代码本(ECB)或密码分组链接(CBC)。有关上述模 式的详细信息将在 9.1.4 小节进行介绍。此外,必须通过寄存器 AES_DIR 位(SRAM 地址 0x83, AES_CTRL)选择加密或解密。 然后,须向 AES 硬件引擎发送 128 位明码文本或密码文本数据。数据占用的 SRAM 地址范围在 0x84-0x93 之间。 通过设置寄存器位 AES_REQUEST=1(SRAM 地址 0x83, AES_CTRL 或镜像版本 SRAM 地址 0x94, AES_CTRL_MIRROR),开始加密或解密。 8168B-MCU Wireless-03/09 135 只能通过在 0x82 至 0x94 之间的地址空间进行 SRAM 读取和写入访问 AES 模块控制寄存器。在 AES 模式配置中,可将数据提供和开始解密或加密操作结合到一次 SRAM 中进行。 附注 ・安全模块操作无须其他寄存器访问 ・在 TRX_OFF 状态下使用 AES 要求在引脚 17(CLKM)上激活时钟,即寄存器位 CLKM_CTRL ≠0。详细信息参看 7.7.4 小节。 ・当无线电收发器处于睡眠状态中时,不能访问安全模块。 ・在睡眠状态和复位状态下,所有的安全模块配置,SRAM 内容和密钥均被复位。 ・在 AES 操作过程中,读取或写入访问寄存器 0x83 (AES_CTRL)将结束当前操作。 9.1.3 安全密钥设置 通过设置寄存器位 AES_MODE=0x1(SRAM 地址 0x83,AES_CTRL)准备开始密钥设置。然后, 必须在 SRAM 地址 0x84 至 0x93(寄存器 AES_KEY)内写入 128 位密钥。建议通过从地址 0x83 开 始的一个 SRAM 访问,将寄存器 0x83(AES_CTRL)控制设置和 128 位密钥传输结合在一起。 128 位密钥和 128 位数据的地址空间在程序设置上是相同的。但是,二者使用的页面不同,这是 在数据存储前由寄存器 AES_MODE 位选择的。 寄存器 AES_KEY(0x84-0x93)的读取访问返回先前安全操作的上一轮密钥。 在 ECB 加密操作之后, 这是相应 ECB 解密操作所需的密钥。但是,在 AES 操作过程中,不会对在 AES 运行之间已经写 入安全模块的初始 AES 密钥进行修改(见表 9-1,第一步)。虽然无法从 AES_KEY 读取该初始 密钥,但该密钥将用于下一次 AES 运行。 附注 ・IEEE802.15.4 标准或 ZigBee 安全处理均不要求 ECB 解密。AT86RF212 提供此操作性能作为一 项附加功能。 9.1.4 安全操作模式 9.1.4.1 电子代码本(ECB) ECB 是安全模块的基本操作模式。在设置初始 AES 密钥之后,寄存器位 AES_MODE=0(SRAM 地址 0x83,AES_CTRL)将设置 ECB 模式。寄存器 AES_DIR 位(SRAM 地址 0x83,AES_CTRL) 选择方向(即,加密或解密)。须将待处理数据写入 SRAM 地址 0x84 至 0x93(寄存器 AES_STATE)。 编程时序示例见图 9-1.此示例假设之前已载入适当密钥。 通过将开始命令 AES_REQUEST=1(寄存器 0x94, AES_CTRL_MIRROR)附加至 SPI 时序,在一 个 SRAM 地址内开始安全操作。寄存器 AES_CTRL_MIRROR 是寄存器 0x83(AES_CTRL)的镜 像版本。 136 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 图 9-1. ECB 编程 SPI 时序-加密 字节 0 (命令.) 字节 1 (地址 ) 字节 2 (AES 命令) 0 1 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 SRAM 写入 0x83 字节 3 data_0[7:0] …. 字节 18 byte 19 (AES 命令) data_15[7:0] 1 0 0 0 0 0 0 0 ECB, 加密 AES 开始 总之,要执行通过一个 SPI 地址执行安全操作,必须完成以下步骤: 1.配置 SPI 地址 2.配置 AES 操作 3.写入 128 位数据块 4.开始 AES 操作 a)SRAM 写入,参看 4.3 小节 b)起始地址 0x83 地址 0x83:选择 ECB 模式,方向 地址 0x84-0x93:可为明码文本或密码文本 地址 0x94:开始 AES 操作,ECB 模式 由于可在一个 SPI 处理中完成安全操作配置和启动,所以推荐使用此时序。 ECB 加密操作如图 9-2 所示。图 9-3 列出 ECB 解密模式,支持方式相同。 图 9-2 ECB 模式-加密 明码文本 加密密钥 分组密码加密 密码文本 8168B-MCU Wireless-03/09 明码文本 加密密钥 分组密码加密 密码文本 137 图 9-3 ECB 模式-解密 密码文本 解密密钥 分组密码解密 密码文本 解密密钥 分组密码解密 明码文本 明码密码文本 在解密过程中,由于 AES 算法的属性,使用的初始化密钥不是加密初始密钥,而是上一轮的密 钥。上一轮加密密钥是在运行过一个完整的加密周期后,在密钥地址空间存储的内容,而且是解 密要求必须保存的内容。如果未保存解密密钥,则须进行重新计算,也就是要——过先使用原始 加密密钥运行(任意明码文本的)假设加密,再从密钥存储器中获得最后一轮密钥,并将其作为 解密密钥写回到密钥存储器中。 IEEE802.15.4 标准或 ZigBee 帧安全标准均不使用 ECB 解密。这两种标准均不对有效载荷进行直 接加密,而是对当前时间进行加密,并通过应用结果(AES-)密码文本和原始有效载荷之间的异 或(XOR)运算保护有效载荷。由于加密和解密的当前时间相同,所以只须 ECB 加密。通过对 接收的密码文本和其自身对应加密结果进行异或(XOR)运算,成功后,将产生原始明码文本有 效载荷,即进行解密。 9.1.4.2 密码分组链接(CBC) 在 CBC 模式中,通过将前一个 AES 操作结果与新输入向量进行异或(XOR)运算,形成新的加 密密码文本,见图 9-4。此模式用于密码校验和运算(消息完整性码,MIC)。 图 9-4. CBC 模式-加密 明码文本 加密密钥 初始化向量(IV) 分组密码加密 密码文本 138 AT86RF212 明码文本 加密密钥 分组密码加密 密码文本 ECB CBC 模式 模式 8168B-MCU Wireless-03/09 AT86RF212 在准备 AES 密钥和使用 SRAM 寄存器 AES_DIR 位定义 AES 操作方向之后, 须将数据输送至 AES 引擎并开始 CBC 操作。 必须将首次 CBC 运行设置为 ECB 以便处理初始数据(明码文本与微控制器提供的初始化向量的 异或(XOR)运算)。通过设置寄存器位 AES_MODE=0x2(寄存器 0x83, AES_CTRL)将后面的所 有 AES 运行配置为 CBC。 寄存器位 AES_DIR(寄存器 0x83, AES_CTRL)必须设置为 AES_DIR=0, 以便启动 AES 加密。须将要处理的数据传输至以 0x84 至 0x93 地址开头的 SRAM 中(寄存器 AES_STATE)。如 9.1.4 小节所述,将寄存器位设置为 AES_REQUEST=1(寄存器 0x94, AES_ CTRL _MIRROR)将在一个 SRAM 地址内开始初次加密。那么,后面的 128 为明码文本数据就必须与先 前的密码文本数据进行异或(XOR)运算,见图 9-4。 按照 IEEE802.15.4 的规定,第一个 CBC 操作的输入来自为带有初始化向量(IV)的明码文本的 异或(XOR)运算。初始化向量值为 0。但是,非合规用途可使用其他初始化向量。此操作由微 控制器准备。 请注意由于 CBC 是一个单向 hash 函数,所以 IEEE802.15.4-2006 标准的 MIC 算法只要求 CBC 模 式加密。 9.1.5 数据传输-快速 SRAM 访问 ECB 和 CBC 模块,包括 AES 内核的时钟速率均为 16MHz。一个 AES 操作的执行耗时为 24μs, 参看 10.4 小节,参数 10.4.15.这表示数据处理通常比通过 SPI 接口进行数据传输要快。 为了降低总处理时间,AT86RF212 为 0x83 至 0x94 之间的所有地址空间提供快速 SRAM 访问。 数据包结构-快速 SRAM 访问模式 AES run #n AES run #0 AES AES访问 access #0 AES AES访问 access #n+1 AES访问 access #1 AES MOSI cmd add cfg P0 P1 ... P14 P15 start cmd add cfg P0 P1 ... P14 P15 start MISO stat xx ... stat xx ... C13 C14 C15 Address 地址 xx xx 0x83 xx xx ... xx xx xx xx C0 0x83 0x94 ... byte 1 (addr.) 字节 byte 2 (cmd) 字节 byte 3 字节 byte 4 字节 MOSI SRAM write address 0x83 <AES_CON> P0[7:0] P1[7:0] MISO PHY_STATUS XX XX XX C0[0:7] 0x83 0x84 0x85 cmd add cfg xx stat xx 0x94 byte 0 (cmd) 字节 Address 地址 ... 图 9-5. xx 0x83 xx xx C0 ... xx xx start ... C13 C14 C15 ... byte 18 字节 byte 19 字节 ... P15[7:0] <AES_CON>(1) ... C14[0:7] C15[0:7] 0x93 0x94 0x94 附注:1.字节 19 为寄存器 AES_CTRL 在 SRAM 地址 0x94 上的镜像版本,详情参见寄存器说明 AES_ CTRL _MIRROR。 可在 AES 连续操作(AES 运行)的 SPI 访问过程中,同时进行快速 SRAM 写入和读取访问。 8168B-MCU Wireless-03/09 139 在每个 P0 字节传输至引脚 22(MOSI)后,相应 AES 寄存器 C0 的先前内容在引脚 20(MISO) 上时序后移一个字节。可将图 9-5 作为一个“AES 访问#1”的示例进行参照。 在图 9-5 的示例中,在“AES 访问#0”内,初始明码文本 P0-P15 写入至 SRAM。地址 0x94 (AES_ CTRL_MIRROR)上最新的命令启动 AES 操作(“AES 运行#0” )。在下一个“AES 访问#1”中,新 明码文本数据 P0-P15 写入 SRAM 以便进行第二轮 AES 运行,同时,第一轮 AES 运行的密码文 本 C0-C15 也在引脚 MISO 的时序上向后移。为了读取上一次“AES 运行#(n)”的密码文本,须 执行虚拟“AES 运行#(n+1)”。 请注意 SRAM 写入访问总覆盖先前处理的结果。 快速 SRAM 访问自动应用于 SRAM 地址 0x83 至 0x94 的所有写入操作。 9.1.6 安全操作状态 寄存器 0x82 (AES_STATUS)指示安全处理的状态。在 24μs 的 AES_DONE 处理时间之后,寄存 器 AES_RY 位变为 1(寄存器 0x82, AES_STATUS),说明安全操作已完成,见 10.4 小节的参数 10.4.15。 9.1.7 SRAM 寄存器总结 下列寄存器为安全模块控制所需的寄存器: 表 9-2. SRAM 安全模块地址空间概览 SRAM 地址 寄存器名称 说明 0x80-0x81 预留 0x82 AES_STATUS AES 状态 0x83 AES_CTRL 安全模块控制,AES 模式 0x84-0x93 AES_KEY 取决于 AES_MODE 设置: AES_STATE AES_MODE=1: -含有 AES_KEY(密钥) AES_MODE=0|2: -含 AES_STATE(128 位数据块) 0x94 AES_CTRL_MIRROR 寄存器 0x83(AES_CTRL)的镜像 0x95-0xFF 预留 只能通过 SRAM 写入和读取访问这些寄存器,详细信息请参看 4.3.3 节。请注意当进入睡眠状 态时,SRAM 寄存器将被复位。 9.1.8 AES SRAM 配置寄存器 寄存器 0x82(AES_STATUS) 此只读寄存器指示安全模块的状态和操作。 表 9-3. 寄存器 0x82 (AES_STATUS) 位 名称 读取/写入 复位值 140 AT86RF212 7 AES_ER R 0 6 预留 R 0 5 预留 R 0 4 预留 R 0 8168B-MCU Wireless-03/09 AT86RF212 位 名称 读取/写入 复位值 3 预留 R 0 2 预留 R 0 1 预留 R 0 0 AES_DONE R 0 ・第 7 位-AES_ER SRAM 寄存器位指示 AES 模块中的一个错误。错误可能是在访问 SRAM 寄存器 0x83(AES_CTRL) 之后暂时发生的,同时 AES 操作是在 SRAM 寄存器间隔 0x84-0x93(AES_STATE)读取不超过 128 位之后运行的。 表 9-4. AES 内核操作状态 寄存器位 值 AES_ER 0 1 说明 AES 模块无错误 AES 模块错误 ・6:1 位-预留 ・第 0 位-AES_DONE 表 9-5. AES 内核操作状态 寄存器位 值 AES_DONE 0 说明 AES 操作未完成 1 AES 操作已完成 寄存器 0x83(AES_CTRL): 此寄存器控制安全模块的操作。在 AES 操作过程中发生的读取或写入访问会终止当前操作。 表 9-6.寄存器 0x83(AES_CTRL) 位 7 6 5 4 AES_REQUES AES_MODE AES_MODE AES_MODE 名称 T 读取/写入 W R/W R/W R/W 复位值 0 0 0 0 位 3 2 1 0 AES_DIR 名称 预留 预留 预留 读取/写入 R/W R R R 复位值 0 0 0 0 ・第 7 位-AES_REQUEST 通过写入访问 AES_REQUEST=1 开始 AES 操作。 ・6:4 位-AES_MODE 此寄存器位设置 AES 操作模式。 8168B-MCU Wireless-03/09 141 表 9-7. AES 模式 寄存器位 AES_MODE 值 0 1 2 3-7 说明 ECB 模式,参看 9.1.4.1 KEY 模式,参看 9.1.3 CBC 模式,参看 9.1.4.2 预留 ・第 3 位-AES_DIR 此寄存器位设置 AES 操作方向,是加密还是解密。 表 9-8.AES 方向 寄存器位 AES_DIR 值 0 说明 AES 加密(ECB,CBC) 1 AES 解密(ECB) ・1:0 位-预留 寄存器 0x84(AES_CTRL_MIRROR): 寄存器 0x84 是寄存器 0x83(AES_CTRL)的镜像版本,详细信息请参看寄存器 0x83(AES_CTRL)。 表 9-9 寄存器 0x84(AES_CTRL_MIRROR) 位 名称 读取/写入 复位值 位 名称 读取/写入 复位值 7 AES_REQUE ST W 0 3 ASE_DIR R/W 0 6 AES_MODE 5 AES_MODE R/W 0 2 预留 R 0 R/W 0 1 预留 R 0 4 AES_MOD E R/W 0 0 预留 R 0 此寄存器可通过附加在数据流中并设置寄存器位 AES_REQUEST=1 用于在一次 SRAM 访问中开 始安全操作。 9.2 随机数发生器 9.2.1 概览 AT86RF212 提供 2 位随机数发生器。此随机数可用于: ・生成 CSMA-CA 算法的随机种子 见 5.2 小节 ・生成 AES 密钥生成的随机值 见 9.1 小节 在基本操作模式的接收状态下,随机数每 1µs 更新一次。该值保存在寄存器 RND_VALUE 位(寄 存器 0x06,PHY_RSSI)。 142 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 9.2.2 寄存器说明 寄存器 0x06(PHY_RSSI): 寄存器 0x06(PHY_RSSI)是用于指示 FCS 有效性的多功能寄存器,可发出随机数和 RSSI 值。 表 9-10. 寄存器 0x06(PHY_RSSI) 位 7 6 5 4 RND_VALUE RND_VALUE RSSI 名称 RX_CRC_VALID 读取/写入 R R R R 复位值 0 0 0 0 位 3 2 1 0 RSSI RSSI RSSI RSSI 名称 读取/写入 R R R R 复位值 0 0 0 0 ・第 7 位-RX_CRC_VALID 参看 6.3.5 小节中的寄存器说明。 ・6:5 位-RND_VALUE 可通过读取寄存器 RND_VALUE 位获取 2 位随机数。请注意无线电收发器应处于基本操作模式的 接收状态。此值每 1µs 更新一次。 ・4:0 位-RSSI 参看 6.4.4 小节中的寄存器说明。 9.3 可支持基于MAC天线分集的差分输出 数字输出引脚 DIG1 与 DIG2 可用于驱动通用差分信号。以下各章将向您介绍其可实现应用之一 ——即,基于 MAC 的天线分集。 9.3.1 概览 由于各网络节点间的多径传播效应,接收信号强度可能出现变化并影响链路质量,即使是很小的 天线定位变化,也是如此。此类衰落效应会导致错误平底上升或设备间连接损耗。 为了改善网络节点之间的 RF 连接可靠性,可使用天线分集减少多径传播与衰落效应。天线分集使 用两个天线选择最可靠的 RF 天线路径。为了保证两天线之间接收信号高度独立,应非常注意将天 线相互分开。 AT86RF212 支持基于 MAC 的天线分集,即微控制器控制用于发送和接收的天线,此操作由寄存 器设置执行。 可在基本和扩展操作模式中使用天线分集,也可将天线分集与诸如高数据传输速率模式及 RX/TX 指示等其他功能和操作模式结合使用。 8168B-MCU Wireless-03/09 143 9.3.2 应用示例 图 9-6 为典型应用的方框图。 图 9-6. 天线分集——方框图 ANT0 1 DIG3 AT86RF212 2 DIG4 SW1 RF 开 关 B1 平衡不 平衡转 换器 3 AVSS 4 RFP 5 RFN 1 G 6 AVSS D I ... 9 2 G I D 10 ANT1 若 ANT_EXT_SW_EN=1(寄存器 0x0D,ANT_DIV),则天线分集引脚 9 和 10(DIG1 和 DIG2)被 启用。在此情况下,控制引脚 9 和 10 与数字接地端的内部连接失效(参看 2.2.2 小节),而且引脚 会向天线开关(SW1)发出差分控制信号。 选择寄存器 ANT_CTRL 位(寄存器 0x0D,ANT_DIV)定义的天线进行发送和接收。 9.3.3 寄存器说明 寄存器 0x0D(ANT_DIV): ANT_DIV 寄存器控制天线分集。 表 9-11. 寄存器 0x0D(ANT_DIV) 位 名称 读取/写入 复位值 位 名称 读取/写入 复位值 7 预留 R 0 3 预留 R 0 6 预留 R 0 2 ANT_EXT_SW_EN R/W 0 5 预留 R 0 1 ANT_CTRL R/W 0 4 预留 R 0 0 ANT_CTRL R/W 1 ・7:3 位-预留 ・第 2 位-ANT_EXT_SW_EN 若启用,则引脚 9(DIG1)和引脚 10(DIG2)成为输出引脚,并向天线分集开关发出差分控制信 号。按照寄存器 ANT_CTRL 为选择指定天线。 144 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 若 RF 帧时间戳(参看 9.5 小节)与天线分集结合使用,DIG1 用于天线分集而 DIG2 用于 RF 帧时 间戳。在此情况下,AT86RF212 不发出差分控制信号,见图 3-2。 若设置寄存器位,则只要设置寄存器 ANT_EXT_SW_EN 位,控制引脚 DIG1/DIG2 在所有无线电收发 器状态下均被激活。如果 AT86RF212 不处于接收或发送状态,则建议关闭寄存器 ANT_EXT_SW_EN 位以降低功耗或避免外置 RF 开关泄露电流,特别是在睡眠状态下。若寄存器位 ANT_EXT_SW_EN=0, 则输出引脚 DIG1 和 DIG2 内部连接至数字接地端。 表 9-12. 天线分集 RF 开关启用 寄存器位 值 ANT_EXT_SW_EN 0 说明 天线分集 RF 开关控制关闭 1 天线分集 RF 控制开关打开 ・1:0 位-ANT_CTRL 这些寄存器位发出天线分集开关静态控制。 表 9-14. 天线分集开关控制 寄存器位 ANT_CTRL 值 0 1 2 3 说明 预留 天线 0 DIG1=L DIG2=H 天线 1 DIG1=H DIG2=L 预留 9.4 RX/TX指示器 主要特点为: ・RX/TX 指示器用于控制外置 RF 前端 ・微控制器独立于 RF 前端控制 ・提供 TX 时序信息 9.4.1 概览 当 IEEE802.15.4 对应低成本及低功率应用时,有时需要支持较高发送输出功率的解决方案。为了简 化选配外置 RF 前端的控制,差分控制引脚对可指示 AT86RF212 目前处于发送模式中。 通过数字控制引脚 DIG3/DIG4 进行外置 RF 前端控制。寄存器 PA_EXT_EN 位(寄存器 0x04, TRX_CTRL_1)启动此引脚对的功能。当发生器关闭时,引脚 1(DIG3)设置为低电平而引脚 2(DIG4) 设置为高电平。如果无线电收发器开始发送,二引脚的极性将发生转换。此差分引脚对可用于控制 PA,LNA 和 RF 开关。 若 AT86RF212 未处于接收或发送状态,建议关闭寄存器 PA_EXT_EN 对(寄存器 0x04,TRX_CTRL_1) 以降低功耗或避免外置 RF 开关和其他集成块的泄露电流,特别是在睡眠状态下。如果寄存器位 PA_EXT_EN=0,输出引脚 DIG3/DIG4 内置连接至数字接地端。 8168B-MCU Wireless-03/09 145 9.4.2 外置 RF 前端控制 当使用带有功率放大器(PA)的外置 RF 前端时,可能需要参照内置集成块调节外置 PA 的设 置时间,以便优化总功率谱密度(PSD)掩码。 图 9-8. 250 kbit/s O-QPSK 模式的 RF 前端 TX 功率斜坡控制 0 TRX_STATE 2 PLL_ON 4 6 8 10 12 14 16 Length [µs] 18 长度 BUSY_TX SLP_TR PA_LT PA 调制 Modulation TX Data DIG3 DIG4 内置发生器独立集成块启动时序如图 9-8 所示,实际上是通过引脚 11(SLP_TR)上升沿开始 发送。无线电收发器状态由 PLL_ON 转换至 BUSY_TX,PLL 在 1 符号周期内建立为发送频率。 调制在 SLP_TR 上升沿后 1 符号周期启动。在此时间内,对内置 PA 进行初始化。 通过差分引脚对 DIG3/DIG4 控制外置 PA。DIG3=H/DIG4=L 即开始发送并可用于启动外置 PA。 可参照帧的启动,通过寄存器 PA_LT 位(寄存器 0x16,RF_CTRL_0)调节引脚 DIG3/DIG4 的 时序。详细情况参看 7.3.5 小节。 9.4.3 寄存器说明 寄存器 0x04(TRX_CTRL_1): TRX_CTRL_1 寄存器是用于控制无线电收发器不同操作模式和设置的多功能寄存器。 表 9-15.寄存器 0x04(TRX_CTRL_1) 位 7 6 5 4 IRQ_2_EXT_EN TX_AUTO_CRC_ON RX_BL_CTRL 名称 PA_EXT_EN 读取/写 R/W R/W R/W R/W 入 复位值 0 0 1 0 位 3 2 1 0 SPI_CMD_MODE SPI_CMD_MODE IRQ_MASK_MODE IRQ_POLARITY 名称 读取/写 R/W R/W R/W R/W 入 复位值 0 0 0 0 146 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 ・第 7 位-PA_EXT_EN 此寄存器位启动引脚 1(DIG3)和引脚 2(DIG4)以便指示无线电收发器的发送状态。 表 9-16. RF 前端控制引脚 PA_EXT_EN 0 状态 不可用 BUSY_ TX 1(1) 其他 引脚 DIG3 DIG4 DIG3 DIG4 DIG3 DIG4 值 L L H L L H 说明 外置 RF 前端控制关闭 外置 RF 前端控制开启 附注:1.建议只在接收或发送状态下设置 PA_EXT_EN=1,以便降低功耗或避免外置 RF 开关或其他集 成块的泄露电流,特别是在睡眠模式中。 ・第 6 位—IRQ_2_EXT_EN 参看 9.5 小节。 ・第 5 位-TX_AUTO_CRC_ON 参看 6.3 小节。 ・第 4 位-RX_BL_CTRL 参看 9.6 小节。 ・3:2 位-SPI_CMD_MODE 参看 4.4.1 小节。 ・第 1 位- IRQ_MASK_MODE 参看 4.7 小节。 ・第 0 位-IRQ_POLARITY 参看 4.7 小节。 9.5 RX帧时间戳 9.5.1 概览 为了确定输入帧的确切时序,如,在信标使能网络中,可通过引脚 10(DIG2) 向微控制器发送帧接收信号。检测到有效 PHR 之后,引脚从 L 转换为 H。当启用时,DIG2 被设置为 DIG2=H,同时发出 IRQ_2(RX_START),即使 IRQ_2 已关闭。在帧接收程序长度内,引脚保持高电 平,见图 9-9。 8168B-MCU Wireless-03/09 147 图 9-9. 250 kbit/s O-QPSK 模式内 RX 帧时间戳的 RX_START 和 DIG2 时序 0 128 4 Octet 数 帧内容 前导 TRX _STATE 160 192 192 + m * 32 1 1 m < 128 SFD PHR PSDU (250 kb/s) RX _ON _RX BUSY :时间[µs] e r 传输中 i mA a n 的帧 r o F RX_ON X R DIG 2 (RX Frame Time Stamp ) IRQ IRQ_2 (RX_START) tIRQ 中断延时 TRX_END tIRQ 附注:时序图参看 10.4 小节。 通过寄存器 IRQ_2_EXT_EN 位(寄存器 0x04,TRX_CTRL_1)启动此功能。引脚 10(DIG2)可连 接至微控制器的计时器捕获单元。 如果此引脚不用于 RX 帧时间戳,可将其配置为天线分集,参看 9.3 小节。反之,则将引脚内部连接 至接地端。 9.5.2 寄存器说明 寄存器 0x04(TRX_CTRL_1): 寄存器 0x04(TRX_CTRL_1)是用于控制无线电收发器的不同操作模式和设置的多功能寄存器。 表 9-17. 寄存器 0x04(TRX_CTRL_1) 位 7 6 5 4 IRQ_2_EXT_EN TX_AUTO_CRC_ON RX_BL_CTRL 名称 PA_EXT_EN 读取/写入 R/W R/W R/W R/W 复位值 0 0 1 0 位 3 2 1 0 SPI_CMD_MODE SPI_CMD_MODE IRQ_MASK_MODE IRQ_POLARITY 名称 读取/写入 R/W R/W R/W R/W 复位值 0 0 0 0 ・第 7 位-PA_EXT_EN 参看 9.4 小节。 ・第 6 位-IRQ_2_EXT_EN 若设置此寄存器,则 RX 帧时间戳模式启动。带有有效 PHR 的输入帧通过引脚 10(DIG2)发出信号。 引脚保持高电平直至帧接收程序结束,见图 9-9。 ・第 5 位-TX_AUTO_CRC_ON 参看 6.3 小节。 148 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 ・第 4 位-RX_BL_CTRL 参看 9.6 小节。 ・3:2 位-SPI_CMD_MODE 参看 4.4.1 小节。 ・第 1 位-IRQ_MASK_MODE 参看 4.7 小节 ・第 0 位-IRQ_POLARITY 参看 4.7 小节。 9.6 帧缓冲空闲指示器 9.6.1 概览 图 9-10. 对时间要求严格的应用可能需要尽早读取帧数据。为了完成此操作,可通过指定引脚向微控制器 指示帧缓冲空闲状态。 在帧缓冲读取访问中,引脚 24(IRQ)可配置为帧缓冲空闲指示器。通过寄存器 RX_BL_CTRL 位(寄存器 0x04,TRX_CTRL_1)启动此模式。 如图 9-10 所示,在帧缓冲读取访问命令传输至 SPI bus 之后,引脚 24 从 IRQ 转换至帧缓冲空闲 指示器,见图 9-10(1) 。当帧缓冲读取程序完成时(/SEL=H),,引脚 24 返回其常规状态 IRQ, 见(4)。 帧缓冲空闲指示器时序图。 /SEL SCLK MOSI MISO 命令 Command XX PHY_STATUS IRQ_STATUS 命令 Command PHY_STATUS XX PHR[7:0] XX XX PSDU[7:0] PSDU[7:0] XX PSDU[7:0] 命令 Command XX LQI[7:0] XX PYH_STATUS IRQ_STATUS Frame Buffer Empty Indicator IRQ 帧缓冲空闲指示器 IRQ_2 (RX_START) 附注 Notes IRQ_3 (TRX_END) t13 (1) (2) (3) (4) 在帧缓冲读取程序过程中,微控制器必须查看引脚 24。当引脚 24=L 时,可执行帧缓冲读取访问, 见(2)。引脚 24=H 指示帧缓冲目前未准备好另一个 SPI 周期,见(3) ,因此帧缓冲读取程序须执 行相应的有效程序。 在帧缓冲读取命令字节最后一个 SCLK 时钟上升沿之后 t13=750 ns,帧缓冲空闲指示器引脚 24 (IRQ)变为有效。 当通过发送 /SEL = H命令完成帧缓冲器读访问后, 参看(4),引脚 IRQ 将立即指示延迟中断。 如果在帧缓冲读取访问的过程中,发生接收错误(如,PLL 解锁),那么帧缓冲指示器也会锁定为 ‘空闲’(引脚 24=H)。为了避免可能发生的死锁,微控制器应使用暂停计时器,校验帧缓冲空闲 指示器在 2 octet 周期后仍处于逻辑高。新字节必须在此周期内到达帧缓冲。反之,帧缓冲读取访问 失败。 8168B-MCU Wireless-03/09 149 9.6.2 寄存器说明 寄存器 0x04(TRX_CTRL_1): 寄存器 TRX_CTRL_1 是用于控制无线电收发器不同操作模式和设置的多功能寄存器。 表 9-18. 寄存器 0x04(TRX_CTRL_1) 位 7 6 5 4 IRQ_2_EXT_EN TX_AUTO_CRC_ON RX_BL_CTRL 名称 PA_EXT_EN 读取/写入 R/W R/W R/W R/W 复位值 0 0 1 0 位 3 2 1 0 SPI_CMD_MODE SPI_CMD_MODE IRQ_MASK_MODE IRQ_POLARITY 名称 读取/写入 R/W R/W R/W R/W 复位值 0 0 0 0 ・第 7 位-PA_EXT_EN 参看 9.4 小节。 ・第 6 位-IRQ_2_EXT_EN 参看 9.5 小节。 ・ 第 5 位-TX_AUTO_CRC_ON 参看 6.3 小节。 ・第 4 位-RX_BL_CTRL 若设置此寄存器位,帧缓冲空闲指示器启用。在发送帧缓冲读取命令之后, (见 4.3 小节)引脚 24 (IRQ)指示由于 PSDU 数据尚不可用,所以不能访问帧缓冲。在此期间引脚 24(IRQ)不指示任 何中断。 表 9-19. 帧缓冲空闲指示器 寄存器位 值 说明 RX_BL_CTRL 0 帧缓冲空闲指示器关闭 1 帧缓冲空闲指示器开启 ・3:2 位-SPI_CMD_MODE 参看 4.4.1 小节。 ・第 1 位-IRQ_MASK_MODE 参看 4.7 小节。 ・第 0 位-IRQ_POLARITY 参看 4.7 小节。 150 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 9.7 动态帧缓冲保护 9.7.1 概览 9.7.2 只要 AT86RF212 处于任意接收专题中,即可继续接收输入帧。当成功接收帧并存储至帧缓冲时,下一个 帧会再覆盖帧缓冲内容。 为了缓解帧缓冲读取访问的时序要求,只要帧缓冲读取访问为完成(/SEL=H),动态帧缓冲保护就会可 避免新输入帧覆盖帧缓冲,参看 4.3 小节。 接收帧会自动防止覆盖,如果: ・在基本操作模式下,FCS 有效 ・在扩展操作模式下,生成 IRQ_3(TRX_END) 如果设置了寄存器 RX_SAFE_MODE 位(寄存器 0x0C,TRX_CTRL_2)。且收发器状态为 RX_ON 或 RX_AACK_ON,则启动动态帧缓冲保护。 请注意动态帧缓冲保护只能避免无线接口的写入访问-而非来自 SPI 接口的写入访问。帧缓冲或 SRAM 写 入访问仍可能修改帧缓冲内容。 寄存器说明 寄存器 0x0C(TRX_CTRL_2): 寄存器 TRX_CTRL_2 是用于控制无线电收发器不同设置的多功能寄存器。 表 9-20. 寄存器 0x0C(TRX_CTRL_2) 位 7 6 5 4 名称 RX_SAFE_MODE TRX_OFF_AVDD_EN OQPSK_SCRAM_EN OQPSK_SUB1_RC_EN 读取/ R/W R/W R/W R/W 写入 复位 0 0 1 0 值 位 3 2 1 0 BPSK_OQPSK SUB_MODE OQPSK_DATA_RATE OQPSK_DATA_RATE 名称 读取/ R/W R/W R/W R/W 写入 复位 0 0 0 0 值 ・第 7 位-RX_SAFE_MODE 若设置此位,则动态帧缓冲保护被启用。 表 9-21. 动态帧缓冲保护模式 寄存器位 值 说明 RX_SAFE_MODE(1) 0 关闭动态帧缓冲保护 1 打开动态帧缓冲保护 附注: 1.如果通过帧缓冲读取访问的引脚 23(/SEL)上升沿(见 4.3.2 小节),或将无线电收发器状态 由 RX_ON 或 RX_AACK_ON 转换为其他状态,则反激活动态帧缓冲保护。 8168B-MCU Wireless-03/09 151 ・第 6 位-TRX_OFF_AVDD_EN 参看 5.1.4.3 小节。 ・第 5 位- OQPSK_SCRAM_EN 参看 7.1.5 小节。 ・第 4 位- OQPSK_SUB1_RC_EN 参看 7.1.5 小节。 ・第 3 位-BPSK_OQPSK 参看 7.1.5 小节。 ・第 2 位-SUB_MODE 参看 7.1.5 小节。 ・1:0 位-OQPSK_DATA_RATE 参看 7.1.5. 9.8 可配置帧起始定界符(SFD) 9.8.1 概览 SFD 是用于指示 SHR 结束和包数据开始的字段。SFD 长度为 1octet(BPSK 调制为 8 符号,O-QPSK 调 制为 2 符号)。此 octet 只用于字节同步,不包含在帧缓冲中。 如果需要操作非 IEEE802.15.4 标准合规网络,那么可以改变 SFD 值。IEEE802.15.4 合规网络节点不与 带有不同 SFD 值的帧同步。 鉴于 SHR 形成的方式,不建议将后 4 位设置为 0. 9.8.2 寄存器说明 寄存器 0x0B(SFD_VALUE) 此寄存器含有 1octet 用于与接收帧同步的帧起始定界符(SFD)。 表 9-21. 寄存器 0x0B(SFD_VALUE) 位 7 6 5 4 3 2 1 0 名称 SFD_VALUE[7:0] 读取/写 R/W 入 复位值 1 0 1 0 0 1 1 1 ・7:0 位-SFD_VALUE 对于 IEEE802.15.4 标准的合规网络,应设置 SFD_VALUE=0xA7(见[1]规定)。此为寄存器默认值。 为了建立非 IEEE802.15.4 标准合规网络,可将 SFD 值改为任意其他值。若启用此设置,则只在接收 SFD 与 SFD_VALUE 匹配且接收到有效 PHR 时,发出 IRQ_2(RX_START)。 152 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 10. 电学特性 10.1 绝对最大定额值 编号 10.1.1 10.1.2 10.1.3 10.1.4 10.1.5 10.1.6 附注:超过“绝对最大定额值”所列的应力可能导致设备永久损伤。这仅为应力定额值,不表示在此 值或其他超过在操作章节中所述值的情况下进行设备功能操作。长时期处于绝对最大定额值可能影响 设备的可靠性。 符号 参数 条件 最小值 标准值 最大值 单位 TSTOR -50 150 存储温度 °C TLEAD T=10s 260 引脚焊锡温度 °C 焊 锡 特 性 符 合 IPC/JEDEC J-STD-020B VESD 4 kV ESD 稳健性 符合[5] 750 V 符合[6] PRF 10 dBm 输入 RF 电平 VDIG VDD+0.3 V 各引脚电压,引脚 4,5,13, -0.3 ≤ 4.0 14,29 除外 VANA -0.3 2 V 引脚 4,5,13,14,29 电压 10.2 操作范围 编号 10.2.1 10.2.2 10.2.3 符号 TCP VDD VDD1.8 参数 操作温度范围 电源电压 电源电压 条件 最小值 -40 1.8 1.7 标准值 最大值 85 3.6 1.9 单位 °C V V 最大值 单位 0.4 V V V 0.4 V 3.0 引脚 15,28 2 电压 1.8 引脚 13,14,29 外置电 ( ) ( ) 源电压 1 2 附注:1. 即使执行使用 1.8V 外置电源 V DD1.8,则须将其与 VDD 连接。 2. 寄存器0x10 (VREG_CTRL)须设置为关闭内部电压调节器及电源块,参看7.5小节。 ( ) 10.3 数字引脚规格 测试条件:TOP=25°C 编号 符号 参数 条件 10.3.1 10.3.2 10.3.3 VIH VIL VoH 高电平输入电压 1 ( ) 低电平输入电压 1 ( ) 高电平输出电压 1 10.3.4 VoL 低电平输出电压 ( ) (1) 最小值 标准 值 VDD -0.4 对 于 所 有 在 TRX_CTRL_0 中 设 定的输出驱动强度 对 于 所 有 在 TRX_CTRL_0 中 设 定的输出驱动强度 VDD -0.4 附注:1.当使用默认启动强度设置时,所有 I/O 的容性负载不应大于 50pF,参看 2.2.2.1 小 节。通常,大负载电容会提高总耗电量。 8168B-MCU Wireless-03/09 153 10.4 数字接口时序特性 编号 10.4.1 10.4.2 10.4.3 10.4.4 10.4.5 10.4.6 10.4.7 10.4.8 符号 fsync fasync t1 t2 t3 t4 t5 t6 10.4.9 10.4.10 t7 t8 10.4.11 t8 10.4.12 t9 10.4.13 10.4.14 10.4.15 10.4.16 t10 t11 t12 t13 10.4.17 fCLKM 10.4.18 tIRQ 154 测试条件:TOP=25ºC, VDD =3.0V, CL=50pF 参数 条件 SCLK 频率 同步操作 SCLK 频率 异步操作 /SEL 下降沿至 MISO 启用 SCLK 下降沿至 MISO 关闭 数据保持时间 MOSI 建立时间 MOSI 保持时间 LSB 末字节到 MSB 次字节 /SEL 上升沿至 MISO tri 状 态 SLP_TR 脉冲宽度 TX 启动触发 SPI 空闲时间:SEL 上升至 SPI 读 取 / 写 入 , 标 准 下降沿 SRAM 及帧访问模式;连 续 SPI 访问之间的空闲 时间 SPI 空闲时间:SEL 上升至 快速 SRAM 读取/写入访 下降沿 问模式,参看 9.1.5 小节; 连续 SPI 访问之间的空 闲时间 SCLK 上升沿 LSB 至/SEL 上 升沿 复位脉冲宽度 ≥10 时钟周期(16MHz) SPI 复位后访问延时 ≥10 时钟周期(16MHz) AES 内核周期时间 动态帧缓存器保护:IRQ 延 期 引脚 17(CLKM)控制器时 可 通 过 寄 存 器 0x03 钟频率 (TRX_CTRL_0)进行程 序设置 IRQ_2,IRQ_3,IRQ_4 延时 AT86RF212 相对于要指示的事件 最小值 标准值 最大值 8 7.5 180(7) 25(7) 10(7) 10(7) 250(8) 10(8) Note(1) 62.5 250(8) 500(8) 单位 MHz MHz ns ns ns ns ns ns ns ns ns 250(8) ns 24 750 ns ns µs ns 0(2) 1(2) 2(2) 4(2) 8(2) 16(2) 1/4(2) 1/50(3) 1/25(4) 1/40(5) 1/16(6) 9(9) MHz MHz MHz MHz MHz MHz MHz MHz MHz MHz MHz µs 625 625 8168B-MCU Wireless-03/09 AT86RF212 附注: 1.最大脉冲宽度小于(TX 帧长度+16µs) 2.所有模式 3.仅限 BPSK 模式,且 fPSDU=20kbit/s 4.仅限 BPSK 模式,且 fPSDU=40kbit/s 5.仅限 O-QPSK 模式,且 fPSDU=100/200/400kbit/s 6.仅限 O-QPSK 模式,且 fPSDU=250/500/1000kbit/s 7.见图 4-3 8.见图 4-2 9.见图 5-2 10.如需在地址间隔 0x82-0x94 之间进行快速 SRAM 读取访问,请将时间 t5(分钟)提高至 450ns。 10.5 收发器基本规格 编号 10.5.1 符号 fRF 10.5.2 fCHIP 测试条件:TOP=25ºC, VDD=3.0V 参数 条件 射频范围 间隔 1.0MHz 间隔 0.1MHz 间隔 0.1MHz 间隔 0.1MHz 码片速率 BPSK,如[1]中所规定 BPSK,如[1]中所规定 最小值 769 769 857 903 300 600 400 1000 20 40 100 250 20 40 100 250 200 400 500 1000 16 0.3 O-QPSK,如[1]中所规定 O-QPSK,如[1]中所规定 10.5.3 fHDR 标 头 比 特 (SHR,PHR) 率 BPSK,如[1]中所规定 BPSK,如[1]中所规定 O-QPSK,如[1]中所规定 O-QPSK,如[1]中所规定 10.5.4 fPSDU PSDU 比特率 BPSK,如[1]中所规定 BPSK,如[1]中所规定 O-QPSK,如[1]中所规定 O-QPSK,如[1]中所规定 O-QPSK O-QPSK O-QPSK O-QPSK 10.5.5 10.5.6 fCLK tXTAL 10.5.7 10.5.8 8168B-MCU Wireless-03/09 晶体振荡器频率 基准振荡器建立时间 基准振荡器精确度 基准振荡器 推 出 睡 眠 状 态 , 引 脚 17 (CLKM)时钟可用 fPSDU=20/40/100/250 kbit/s fPSDU=200/400/500/1000 kbit/s 电池监测器阈值偏差 附注:1. [1]规定基准频率精确度为±40ppm 标准值 -60(1) -40 -0.1 0.0 最大值 935 794.5 882.5 928.5 单位 MHz MHz MHz MHz 1 kchip/s kchip/s kchip/s kchip/s kbit/s kbit/s kbit/s kbit/s kbit/s kbit/s kbit/s kbit/s kbit/s kbit/s kbit/s kbit/s MHz ms +60(1) ppm +40 0.1 ppm V 155 10.6 发送器特性 参数 发射输出功率 测试条件:TOP=25ºC, VDD=3.0V 条件 标准模式 ( ) 加速模式 1 编号 10.6.1 符号 PTX 10.6.2 10.6.3 PRANGE 输出功率范围 22 步长 PACC 输出功率公差 OQPSK-100, 868.3 MHz, PTX = 0 dBm (寄存器 0x05 值 = 0x65) 10.6.4 P1dB 1dB 压缩点 10.6.5 EVM 误差向量幅度 10.6.6 PHARM 谐波 标准模式 加速模式 符号[1]O-QPSK 欧洲频段 反之 BPSK 调制 PTX =0 dBm PTX =5 dBm PTX =0 dBm PTX =5 dBm 欧洲频段,测量于在第一旁瓣 使用 100kHz 带宽(载波偏置 400 至 500kHz 的集成功率), OQPSK-100, 868.3 MHz, PTX = 0 dBm ( 寄 存 器 0x05 值 = 0x65) 除谐波以外 第二谐波 第三谐波 10.6.7 PSD 10.6.8 PSPUR 功率谱密度掩码 最小值 标准值 5 10 最大值 单位 dBm dBm dBm dB ±3 dB 21 杂散发射 30-1000MHz 1-12.75GHz 附注: 1.加速模式中的增大谐波和杂散发射 5 8 25 6 dBm dBm %ms %ms -41 -29 -33 -29 -38 dBm dBm dBm dBm dBm -60 -47 dBm dBm 10.7 接收器特性 编号 10.7.1 10.7.2 10.7.3 156 符号 PSENS NF PRXMAX 参数 接收器灵敏度 测试条件:TOP=25ºC, VDD =3.0V 条件 20 kbit/s(1) 40 kbit/s(1) 100 kbit/s(1) 250 kbit/s(1) PSDU 长度:20octet PSDU 长度:20octet PSDU 长度:20octet PSDU 长度:20octet 200 kbit/s 400 kbit/s 500 kbit/s 1000 kbit/s PSDU 长度:127octet PSDU 长度:127octet PSDU 长度:127octet PSDU 长度:127octet 噪声系数 RX 输入电平最大值 AT86RF212 最小值 标准值 最大值 单位 AWGN 信道,PER≤1% PER ≤ 1%,PSDU 长度:20octet -110 -108 -101 -101 dBm dBm dBm dBm -98 -93 -98 -93 7 -5 dBm dBm dBm dBm dB dBm 8168B-MCU Wireless-03/09 AT86RF212 编号 10.7.4 符号 参数 相邻及交替相邻信道抑制, 20kbit/s 的 BPSK 调制 PRX=-89dBm,PER ≤1% 10.7.5 相邻及交替相邻信道抑制, 40kbit/s 的 BPSK 调制 PRX=-89dBm,PER ≤1% 10.7.6 相邻及交替相邻信道抑制, 100kbit/s 的 O-QPSK 调制 PRX=-82dBm,PER ≤1% 10.7.7 相邻及交替相邻信道抑制, 250kbit/s 的 O-QPSK 调制 PRX=-82dBm,PER ≤1% 10.7.8 10.7.9 10.7.10 10.7.11 IIP3 IIP2 条件 Δf = -1 MHz Δf = +1 MHz Δf = -2 MHz Δf = +2 MHz Δf = -2 MHz Δf = +2 MHz Δf = -4 MHz Δf = +4 MHz Δf = -1 MHz Δf = +1 MHz Δf = -2 MHz Δf = +2 MHz Δf = -2 MHz Δf = +2 MHz Δf = -4 MHz Δf = +4 MHz LO 泄露 三阶交调截取点 二阶交调截取点 RSSI 范围 附注:1.符合 IEEE802.15.4-2006 标准 最小值 标准值 32 19 37 38 36 35 52 53 25 16 34 35 27 27 49 49 -67 -12 20 -100 最大值 -12 单位 dB dB dB dB dB dB dB dB dB dB dB dB dB dB dB dB dBm dBm dBm dBm 10.8 电流消耗规格 编号 符号 10.8.1 IBUSY_TX 10.8.2 IRX_ON 10.8.3 10.8.4 10.8.5 IPLL_ON ITRX_OFF ISLEEP 8168B-MCU Wireless-03/09 测试条件:TOP=25ºC, VDD =3.0V,CLKM=OFF 参数 条件 电源电流发送模式 RX_ON(收听)模式电源电 流 PLL_ON 模式电源电流 TRX_OFF 模式电源电流 睡眠模式电源电流 北美频段设置 PTX = 0 dBm(标准模 式) PTX = 5 dBm(标准模 式) PTX = 10 dBm (加速模 式) 最小值 标准 值 最大 值 单位 14 mA 18 mA 24 mA 9.0 mA 4.7 0.4 0.2 mA mA μA 157 10.9 晶体参数要求 编号 符号 参数 10.9.1 10.9.2 10.9.3 10.9.4 fXTAL CL CSTATIC R1 晶体频率 负载电容 静态电容 串联电阻 158 AT86RF212 条件 最小值 8 标准 值 16 最大值 单位 14 7 100 MHz pF pF Ω 8168B-MCU Wireless-03/09 AT86RF212 11 寄存器参考资料 AT86RF212 提供 64 个 8 位寄存器的寄存器空间,用于配置,控制和监控无线电收发器。 附注:下表中未列出的所有寄存器均为预留内部使用,且不得被覆盖。当写入某个寄存器时, 只能用复位值覆盖寄存器位。 表 11-1. 寄存器总览 地址 名称 第7位 第6位 第5位 第4位 第3位 第2位 第1位 第0位 0x00 0x01 0x02 0x03 0x04 TRX_STATUS TRX_STATE TRX_CTRL_0 TRX_CTRL_1 CCA_DONE TRAC_STATUS[2] PAD_IO[1] PA_EXT_EN CCA_STATUS TRAC_STATUS[1] PAD_IO[0] IRQ_2_EXT_EN TRAC_STATUS[0] PAD_IO_CLKM[1] TX_AUTO_CRC_ON TRX_STATUS[4] TRX_CMD[4] PAD_IO_CLKM[0] RX_BL_CTRL TRX_STATUS[3] TRX_CMD[3] CLKM_SHA_SEL SPI_CMD_MODE[1] TRX_STATUS[2] TRX_CMD[2] CLKM_CTRL[2] SPI_CMD_MODE[0] TRX_STATUS[1] TRX_CMD[1] CLKM_CTRL[1] IRQ_MASK_MODE TRX_STATUS[0] TRX_CMD[0] CLKM_CTRL[0] IRQ_POLARITY 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B 0x0C PHY_TX_PWR PHY_RSSI PHY_ED_LEVEL PHY_CC_CCA CCA_THRES SFD_VALUE TRX_CTRL_2 PA_BOOST RX_CRC_VALID ED_LEVEL[7] CCA_REQUEST SFD_VALUE[7] RX_SAFE_MODE TX_PWR[3] RSSI[3] ED_LEVEL[3] CHANNEL[3] CCA_ED_THRES[3] SFD_VALUE[3] BPSK_OQPSK TX_PWR[2] RSSI[2] ED_LEVEL[2] CHANNEL[2] CCA_ED_THRES[2] SFD_VALUE[2] SUB_MODE 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B 0x1C 0x1D 0x1E 0x1F 0x20 0x21 0x22 0x23 ANT_DIV IRQ_MASK MASK_TRX_LOW IRQ_STATUS BAT_LOW VREG_CTRL AVREG_EXT BATMON XOSC_CTRL XTAL_MODE[3] CC_CTRL_0 CC_NUMBER[7] CC_CTRL_1 RX_SYN RX_PDT_DIS RF_CTRL_0 PA_LT[1] XAH_CTRL_1 FTN_CTRL FTN_START RF_CTRL_1 RF_MC[3] PLL_CF PLL_CF_START PLL_DCU PLL_DCU_START PART_NUM PART_NUM[7] VERSION_NUM VERSION_NUM[7] MAN_ID_0 MAN_ID_0[7] MAN_ID_1 MAN_ID_1[7] SHORT_ADDR_0 SHORT_ADDR_0[7] SHORT_ADDR_1 SHORT_ADDR_1[7] PAN_ID_0 PAN_ID_0[7] PAN_ID_1 PAN_ID_1[7] MASK_TRX_END TRX_END DVREG_EXT BATMON_VTH[3] XTAL_TRIM[3] CC_NUMBER[3] RX_PDT_LEVEL[3] PLL_CF[3] PART_NUM[3] VERSION_NUM[3] MAN_ID_0[3] MAN_ID_1[3] SHORT_ADDR_0[3] SHORT_ADDR_1[3] PAN_ID_0[3] PAN_ID_1[3] ANT_EXT_SW_EN MASK_RX_START RX_START DVDD_OK BATMON_VTH[2] XTAL_TRIM[2] CC_NUMBER[2] CC_BAND[2] RX_PDT_LEVEL[2] AACK_ACK_TIME PLL_CF[2] PART_NUM[2] VERSION_NUM[2] MAN_ID_0[7] MAN_ID_1[7] SHORT_ADDR_0[7] SHORT_ADDR_1[7] PAN_ID_0[7] PAN_ID_1[7] TX_PWR[1] RSSI[1] ED_LEVEL[1] CHANNEL[1] CCA_ED_THRES[1] SFD_VALUE[1] OQPSK_DATA_ RATE[1] ANT_CTRL[1] MASK_PLL_UNLOCK PLL_UNLOCK BATMON_VTH[1] XTAL_TRIM[1] CC_NUMBER[1] CC_BAND[1] RX_PDT_LEVEL[1] GC_TX_OFFS[1] AACK_PROM_MODE PLL_CF[1] PART_NUM[1] VERSION_NUM[1] MAN_ID_0[1] MAN_ID_1[1] SHORT_ADDR_0[1] SHORT_ADDR_1[1] PAN_ID_0[1] PAN_ID_1[1] 8168B-MCU Wireless-03/09 GC_PA[1] GC_PA[0] TX_PWR[4] RND_VALUE[1] RND_VALUE[0] RSSI[4] ED_LEVEL[6] ED_LEVEL[5] ED_LEVEL[4] CCA_MODE[1] CCA_MODE[0] CHANNEL[4] JCM_EN SFD_VALUE[6] SFD_VALUE[5] SFD_VALUE[4] TRX_OFF_AVDD OQPSK_SCRAM_EN OQPSK_SUB1_RC_EN _EN MASK_TRX_UR MASK_AMI MASK_CCA_ED_DONE TRX_UR AMI CCA_ED_DONE AVDD_OK BATMON_OK BATMON_HR XTAL_MODE[2] XTAL_MODE[1] XTAL_MODE[0] CC_NUMBER[6] CC_NUMBER[5] CC_NUMBER[4] PA_LT[0] CSMA_LBT_MODE AACK_FLTR_RES_FT AACK_UPLD_RES_FT RF_MC[2] RF_MC[1 ] RF_MC[0] PLL_CF[4] PART_NUM[6] PART_NUM[5] PART_NUM[4] VERSION_NUM[6] VERSION_NUM[5] VERSION_NUM[4] MAN_ID_0[6] MAN_ID_0[5] MAN_ID_0[4] MAN_ID_1[6] MAN_ID_1[5] MAN_ID_1[4] SHORT_ADDR_0[6] SHORT_ADDR_0[5] SHORT_ADDR_0[4] SHORT_ADDR_1[6] SHORT_ADDR_1[5] SHORT_ADDR_1[4] PAN_ID_0[6] PAN_ID_0[5] PAN_ID_0[4] PAN_ID_1[6] PAN_ID_1[5] PAN_ID_1[4] 页 码 38,58,86 39,59 8,119 20,26,60 78,142, 144,146 TX_PWR[0] 106 RSSI[0] 78,80,138 ED_LEVEL[0] 83 CHANNEL[0] 87,89,124 CCA_ED_THRES[0] 88,90 SFD_VALUE[0] 148 OQPSK_DATA_ 95,114 RATE[0] 147 ANT_CTRL[0] 140 MASK_PLL_LOCK 25 PLL_LOCK 26 113 BATMON_VTH[0] 116 XTAL_TRIM[0] 121 CC_NUMBER[0] 125 CC_BAND[0] 125 RX_PDT_LEVEL[0] 99 GC_TX_OFFS[0] 105 61,72,90 127 99 PLL_CF[0] 129 126 PART_NUM[0] 21 VERSION_NUM[0] 21 MAN_ID_0[0] 21 MAN_ID_1[0] 22 SHORT_ADDR_0[0] 73 SHORT_ADDR_1[0] 73 PAN_ID_0[0] 73 PAN_ID_1[0] 73 159 地址 0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B 0x2C 0x2D 0x2E 0x2F .... 名称 第7位 第6位 IEEE_ADDR_0 IEEE_ADDR_0[7] IEEE_ADDR_0[6] IEEE_ADDR_1 IEEE_ADDR_1[7] IEEE_ADDR_1[6] IEEE_ADDR_2 IEEE_ADDR_2[7] IEEE_ADDR_2[6] IEEE_ADDR_3 IEEE_ADDR_3[7] IEEE_ADDR_3[6] IEEE_ADDR_4 IEEE_ADDR_4[7] IEEE_ADDR_4[6] IEEE_ADDR_5 IEEE_ADDR_5[7] IEEE_ADDR_5[6] IEEE_ADDR_6 IEEE_ADDR_6[7] IEEE_ADDR_6[6] IEEE_ADDR_7 IEEE_ADDR_7[7] IEEE_ADDR_7[6] XAH_CTRAL_ MAX_FRAME_RETR MAX_FRAME_RETRIE 0 IES[3] S[2] CSMA_SEED_ CSMA_SEED_0[7] CSMA_SEED_0[6] 0 CSMA_SEED_ AACK_FVN_MODE[ AACK_FVN_MODE[0] 1 1] CSMA_BE MAX_BE[3] MAX_BE[2] - 第5位 第4位 第3位 第2位 第1位 第0位 IEEE_ADDR_0[5] IEEE_ADDR_0[4] IEEE_ADDR_0[3] IEEE_ADDR_0[2] IEEE_ADDR_0[1] IEEE_ADDR_0[0] IEEE_ADDR_1[5] IEEE_ADDR_1[4] IEEE_ADDR_1[3] IEEE_ADDR_1[2] IEEE_ADDR_1[1] IEEE_ADDR_1[0] IEEE_ADDR_2[5] IEEE_ADDR_2[4] IEEE_ADDR_2[3] IEEE_ADDR_2[2] IEEE_ADDR_2[1] IEEE_ADDR_2[0] IEEE_ADDR_3[5] IEEE_ADDR_3[4] IEEE_ADDR_3[3] IEEE_ADDR_3[2] IEEE_ADDR_3[1] IEEE_ADDR_3[0] IEEE_ADDR_4[5] IEEE_ADDR_4[4] IEEE_ADDR_4[3] IEEE_ADDR_4[2] IEEE_ADDR_4[1] IEEE_ADDR_4[0] IEEE_ADDR_5[5] IEEE_ADDR_5[4] IEEE_ADDR_5[3] IEEE_ADDR_5[2] IEEE_ADDR_5[1] IEEE_ADDR_5[0] IEEE_ADDR_6[5] IEEE_ADDR_6[4] IEEE_ADDR_6[3] IEEE_ADDR_6[2] IEEE_ADDR_6[1] IEEE_ADDR_6[0] IEEE_ADDR_7[5] IEEE_ADDR_7[4] IEEE_ADDR_7[3] IEEE_ADDR_7[2] IEEE_ADDR_7[1] IEEE_ADDR_7[0] MAX_FRAME_RE MAX_FRAME_RETR MAX_CSMA_RETRI MAX_CSMA_RETRIES MAX_CSMA_RETRIES[0] SLOTTED_OPERATION TRIES[1] IES[0] ES[2] [2] CSMA_SEED_0[5] CSMA_SEED_0[4] CSMA_SEED_0[3] CSMA_SEED_0[2] CSMA_SEED_0[1] CSMA_SEED_0[0] AACK_SET_PD AACK_DIS_ACK MAX_BE[1] - MAX_BE[0] - AACK_I_AM_COOR D MIN_BE[3] - 页码 74 74 74 74 75 75 75 75 63 63 CSMA_SEED_0[2] CSMA_SEED_0[1] CSMA_SEED_0[0] 64,75 MIN_BE[2] - MIN_BE[1] - MIN_BE[0] - 65 AT86RF212 的寄存器在 P_ON 状态下 1 2 3 的复位值如表 11-2 所示。 附注: 表 11-2 中所列出的复位值只在复位后通电才能生效。在复位程序(/RST=L) (如 5.1.4.5 小节所示)之后,所选寄存器的复位值(如,寄存器 0x01,0x10,0x11,0x30)可 能与表 11-2 中的值不同。 ( , , ) 表 11-2. 寄存器总览-复位值 地址 复位值 地址 复位值 地址 复位值 地址 复位值 0x00 0x00 0x10 0x00(1) 0x20 0xFF 0x30 0x00(3) (1) 0x01 0x00 0x11 0x02 0x21 0xFF 0x31 0x00 0x02 0x00 0x12 0xF0 0x22 0xFF 0x32 0x00 0x03 0x19 0x13 0x00 0x23 0xFF 0x33 0x00 0x04 0x20 0x14 0x00 0x24 0x00 0x34 0x3F 0x05 0x60 0x15 0x00 0x25 0x00 0x35 0x00 0x06 0x00 0x16 0x31 0x26 0x00 0x36 0x00 0x07 0xFF 0x17 0x00 0x27 0x00 0x37 0x00 0x08 0x25 0x18 0x58 0x28 0x00 0x38 0x00 0x09 0x77 0x19 0x00 0x29 0x00 0x39 0x40 0x0A 0x17 0x1A 0x48 0x2A 0x00 0x3A 0x00 0x0B 0xA7 0x1B 0x40 0x2B 0x00 0x3B 0x00 0x0C 0x24 0x1C 0x06 0x2C 0x38 0x3C 0x00 0x0D 0x01 0x1D 0x01 0x2D 0xEA 0x3D 0x00 0x0E 0x00 0x1E 0x1F 0x2E 0x42 0x3E 0x00 0x0F 0x00 0x1F 0x00 0x2F 0x53 0x3F 0x00 附注: 1.当寄存器 0x10 的复位值为 0x00 时,只有在 DVREG 可用时,才能对寄存器进行实际访问。因此, 此寄存器总读出为 0x04.详细情况请参看 7.5 小节。 2. 当寄存器 0x11 的复位值为 0x02 时,只有在 BATMON 可用时,才能对寄存器进行实际访问。因此, 在 P_ON 状态下,此寄存器总读出为 0x22。详细情况请参看 7.6 小节。 3.当寄存器 0x30 的复位值为 0x00 时,只有在无线电收发器可访问时,才能对寄存器进行实际访问。 因此,此寄存器: 160 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 a) b) 8168B-MCU Wireless-03/09 复位后在 P_ON 状态下,读出为 0x11 复位后在任何其他状态下,读出为 0x07 161 12. 缩写释义 ACK ADC AES AGC AVREG AWGN BATMON BBP BPF BPSK CBC CCA CF CRC CS CSMA-CA CW DAC DVREG ECB ED ESD FCF FCS FIFO FTN IC IF I/O IRQ ISM LBT LDO LNA LO LPF LQI LSB MAC MHR MIC MISO MOSI MSB MSDU O-QPSK PA PAN PER PHR PHY PLL 162 — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — AT86RF212 应答 模数转换器 高级加密标准 自动增益控制 数字电压调节器 加性高斯白噪声 电池监测器 基带处理器 带通滤波器 二相相移键控 加密块链接 空闲信道评估 中心频率 循环冗余校验 载波侦听 载波侦听多路访问防冲突 连续波 数模转换器 数字电压调节器 电子密码本 能量检测 静电释放 帧控制字段 帧校验序列 先进先出 滤波器调谐 集成电路 中频频率 输入/输出 中断请求 工业、科学和医疗 说前先听 低压差 低噪声放大器 本地振荡器 低通滤波器 链路质量显示 最低有效位 介质访问控制 MAC 标题 信息完整性检查 主机输入/从机输出 主机输出/从机输入 最高有效位 MAC 服务数据单元 偏移四相移相键控 功率放大器 个人局域网 包错误率 PHY 标头 物理层 锁相环 8168B-MCU Wireless-03/09 AT86RF212 PPDU PPF PRBS PSD PSDU QFN RC RF RSSI RX SFD SHR SPI SRAM SRD TRX TX VCO WPAN XOSC XTAL 8168B-MCU Wireless-03/09 — — — — — — — — — — — — — — — — — — — — — PHY 协议数据单元 多相滤波器 伪随机二进制序列 功率谱密度 PHY 服务数据单元 方形扁平无铅封装 升余弦 射频 接收信号强度显示 接收器 帧起始定界符 同步标头 串行总线接口 静态随机访问存储器 短距离设备 收发器 发送器 电压控制振荡器 无线个人区域网络 晶体振荡器 晶体 163 13. 订购信息 订购型号 AT86RF212-ZU 封装类型 QN 封装 QN 电压范围 1.8V-3.6V 温度范围 工业(-40ºC 至+85ºC)无铅/无卤素 说明 32QN2,32 铅,主体 5.0x5.0mm,引脚中心距 0.50mm,已切割方形扁平无铅封 装(QFN) 附注: T&R 数量 4,000。 请联系您所在地的 Atmel 销售中心,以获得更详尽的订购信息和最小起订量。 14. 焊锡信息 推荐依照 IPC/JEDEC J-STD-.020C 规定的焊锡特性。 15. 封装热性能 热阻 速度[m/s] 0 1 2.5 164 AT86RF212 接合面至外界热阻[k/W] 40.9 35.7 32.0 8168B-MCU Wireless-03/09 AT86RF212 16. 封装示意图-32QN2 引脚 1 所在角 顶面图 侧面图 引脚 1 所在角 一般尺寸 (计量单位=mm) 符号 最小值 常规值 最大值 附注 封装制图请联系: 底面图 附注: 1.此图仅用于提供基本信息。适当尺寸请参看 JEDEC 图 MO-220,变更 VHHD-6。 2.尺寸 b 用于制作端子,距离端子尖端的距离应在 0.15mm 至 0.30mm 之间。若端子在其他端有选配半径, 那么不应在半径区域测量该尺寸。 封装制图请联系: 8168B-MCU Wireless-03/09 图名: 32QN2,32 铅,主体 5.0x5.0mm,引脚中心距 0.50mm,已切割方形扁平无铅封装(QFN) 封图号 修订版 165 附件A——连续发送测试模式 A.1-概览 AT86RF212 提供连续发送测试模式以便支持应用/生产测试及认证测试。无线电收发器使用此测试模式 连续发送先前传输的帧(PRBS 模式)或连波信号(CW 模式)。 在 CW 模式下,每个信道可发送四种不同的信号频率: ・f1=fCH+0.25MHz 使用 O-QPSK 1000kbit/s 模式 ・f2=fCH-0.25MHz 使用 O-QPSK 1000kbit/s 模式 ・f3=fCH+0.1MHz 使用 O-QPSK 400kbit/s 模式 ・f4=fCH-0.1MHz 使用 O-QPSK 400kbit/s 模式 fCH 为信道中心频率,参看 7.8.2 小节。 请注意,在 CW 模式中不能直接在信道中心频率发送 RF 信号。 帧缓冲中的 PSDU 数据必须含有至少一个有效 PHR(见 6.1 小节)。建议对 PRBS 模式使用最大长度帧 (127 字节)和任意 PSDU 数据。在发送两个符号的 PSDU 数据之后,连续重复发送。 A.2-配置 在启用连续发送测试模式之前,须对所有寄存器执行以下配置: ・TX 信道设置(选择性) ・TX 输出功率设置(选择性) ・模式选择(PRBS/CW) 对寄存器 0x36 和 0x1C 进行写入访问,启用连续发送测试模式。 通过启用 PLL(TRX_CMD=PLL_ON)和在寄存器 0x02 写入 TX_START 命令开始发送。 即便是 CW 信号发送,也需要在帧缓冲中写入有效 PSDU 数据。建议为 PRBS 模式写入最大长度帧。 详细的设置时序如表 A-1 所示。R/W 列指示寄存器或帧缓冲的写入(W)或读取(R)。 166 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 表 A-1.连续发送设置时序 步骤 动作 寄 存 器 1 复位 2 寄存器访问 0x0E R/W 值 说明 将 AT86RF212 复位 W 0x01 设置 IRQ 掩码寄存器,启用 IRQ_0 (PLL_LOCK) 3 0x04 W 0x00 寄存器访问 关闭 TX_AUTO_CRC_ON 4 W 0x03 将 无 线 电 收 发 器 状 态 设 置 为 寄存器访问 0x02 TRX_OFF 5 W 寄存器访问 设置信道,参看 7.8.2 6 W 寄存器访问 设置 TX 输出功率,参看 7.3.4 小节 7 R 0x08 检验 TRX_OFF 状态 寄存器访问 0x01 8 W 0x0F 开启连续发送测试模式-第 1 步 寄存器访问 0x36 9 寄存器访问 0x0C W CW 模式:开启无扰频器高数据 传 输 速 率 模 式 , 400kbit/s 或 1000kbit/s ( 寄 存 器 值 分 别 为 0x0A 或 0x0E) PRBS 模式:选择调制方式,参 看 7.1.5 10 W 帧缓冲写入 写入 PSDU 数据(CW 模式也需 访问 要),参看表 A-2。帧缓冲内容 依不同调制方式而变化。 11 0x54 开启连续发送测试模式-第 2 步 寄存器访问 0x1C W 12 0x1C W 0x46 开启连续发送测试模式-第 3 步 寄存器访问 13 W 0x09 开始 PLL_ON 状态 寄存器访问 0x02 14 0x0F R 0x01 要求 IRQ_0 (PLL_LOCK) 中断事件 15 W 0x02 开始发送,进入 BUSY_TX 状态 寄存器访问 0x02 16 测量 执行测量 17 0x00 关闭连续发送测试模式 寄存器访问 0x1C W 18 复位 将 AT86RF212 复位 须定义连续发送 PRBS 模式或 CW 模式的帧缓冲内容。为了测量发送器功率谱密度(PSD)掩码,建 议对 PSDU 数据使用最大长度的随机时序。 为了测量 CW 信号,必须在帧缓冲中写入 0x00 或 0xFF,详细信息请参看表 A-2。 8168B-MCU Wireless-03/09 167 表 A-2. 步骤 11 不同连续发送调制方式的帧缓冲内容 动作 帧内容 备注 帧缓冲访问 随机时序 已调制 RF 信号 0x00(每个字 fCH-0.1MHz,CW 信号 节) fCH-0.25MHz,CW 信号 0xFF( 每 个 fCH+0.1MHz,CW 信号 fCH+0.25MHz,CW 信号 字节) A.3-寄存器说明 寄存器 0x36(TST_CTRL_DIGI): 寄存器 TST_CTRL_DIGI 开启连续发送测试模式。 表 A-3. 寄存器 0x36(TST_CTRL_DIGI) 位 7 6 名称 预留 预留 读取/写入 R/W R/W 复位值 0 0 位 3 2 TST_CTRL_DIG TST_CTRL_DIG 名称 读取/写入 R/W R/W 复位值 0 0 ・7:4 位-预留 ・3:0 位-TX_CTRL_DIG 这些寄存器位用于开启连续发送: 表 A-4.连续发送 寄存器位 值 说明 TST_CTRL_DIG 168 AT86RF212 0x0 0xF 0x1-0xE 5 预留 R/W 0 1 TST_CTRL_DIG R/W 0 4 预留 R/W 0 0 TST_CTRL_DIG R/W 0 关闭连续发送 开启连续发送 预留 8168B-MCU Wireless-03/09 AT86RF212 附件 B-勘误 AT86RF212 修订版A 无勘误。 8168B-MCU Wireless-03/09 169 参考资料 [1] IEEE 标准 802.15.4TM-2006。低速率无线个人网络(WPANs)无线介质访问控制 (MAC)与物理层(PHY)规格要求 [2] IEEE 标准 802.15.4TM-2003。低速率无线个人网络(WPANs)无线介质访问控制 (MAC)与物理层(PHY)规格要求 [3] IEEE P802.15.4cTM/D6, 2008 年 11 月:对低速率无线个人区域网络(LR-WPANs)的无线媒 体存取控制(MAC)和物理层(PHY)的规范: 修订 2: 可选择物理层扩展来支持一个或多个中国 314-316 MHz, 430-434 MHz 和 779-787 MHz 频段。 [4] ETSI EN 300 220-1V2.2.1(2008-04):用于 25MHz 至 1000MHz 间频率且功率级别不 超过 500mW 的电磁兼容性与无线电频谱事项(ERM);短距离设备(SRD);无线 电设备;第 1 部分:技术特性与检测方法 [5] ANSI/ESD-STM5.1-2001: 人体模型(HBM)静电放电敏感产测试 ESD 协会标准 测试方法。 [6] ESD-STM5.3.1-1999:带点器件模型(CDM)静电放电敏感产测试 ESD 协会标准 测试方法。 [7] NIST FIPS PUB 197:高级加密标准(AES),联邦信息处理标准公布 197,美国商 贸部/NIST,2001 年 11 月 26 日。 170 AT86RF212 8168B-MCU Wireless-03/09 AT86RF212 目录 免责声明 1. 概览 1.1 基本电路说明 2. 引脚配置 2.1 引脚排列原理图 2.2 引脚说明 3. 应用电路 3.1 基本应用原理图 3.2 扩展功能组应用原理图 4. 微控制器接口 4.1 概览 4.2 SPI时序介绍 4.3 SPI协议 4.4 PHY 状态信息 4.5 无线电收发器识别 4.6 睡眠/唤醒与发送信号(SLP_TR) 4.7 中断逻辑 5. 操作模式 5.1 基本操作模式 5.2 扩展操作模式 6. 功能介绍 6.1 序言-IEEE802.15.4-2006 帧结构 6.2 帧滤波器 6.3 帧校验序列(FCS) 6.4 接收信号强度指示器(RSSI) 6.5 能量检测(ED) 6.6 空闲信道评估(CCA) 6.7 说前先听(LBT) 1.1 链路质量显示(LQI) 7. 模块说明 7.1 物理层模式 7.2 接收器(RX) 7.3 发送器(TX) 7.4 帧缓冲 7.5 电压调节器(AVREG, DVREG) 7.6 电池监测器(BATMON) 8168B-MCU Wireless-03/09 2 2 4 4 4 4 10 10 11 14 14 15 16 21 22 23 25 30 30 42 69 69 73 79 82 84 87 91 94 95 95 100 103 112 114 118 171 7.7 晶体振荡器(XOSC)及时钟输出(CLKM) 7.8 频率合成器(PLL) 7.9 自动滤波器调整(FTN) 8. 无线电收发器的使用 8.1 帧接收程序 8.2 帧发送程序 9. 扩展功能设置 9.1 安全模块(AES) 9.2 随机数发生器 9.3 可支持基于MAC天线分集的差分输出 9.4 RX/TX指示器 9.5 RX帧时间戳 9.6 帧缓冲空闲指示器 9.7 动态帧缓冲保护 9.8 可配置帧起始定界符(SFD) 10. 电学特性 10.1 绝对最大定额值 10.2 操作范围 10.3 数字引脚规格 10.4 数字接口时序特性 10.5 收发器基本规格 10.6 发送器特性 10.7 接收器特性 10.8 电流消耗规格 10.9 晶体参数要求 11. 寄存器参考资料 12. 缩写释义 13. 订购信息 14. 焊锡信息 15. 封装热性能 16. 封装示意图-32QN2 附件A——连续发送测试模式 A.1-概览 A.2-配置 A.3-寄存器说明 附件 B-勘误 AT86RF212 修订版A 参考资料 目录 172 AT86RF212 120 125 130 132 132 133 135 135 142 143 145 147 149 151 152 153 153 153 153 154 155 156 156 157 158 159 162 164 164 164 165 166 166 166 168 169 169 170 171 8168B-MCU Wireless-03/09 总部 海外 Atmel 公司 2325 Orchard Parkway San Jose CA 95131 美国 电话: 1(408)441-0311 传真: 1(408)487-2600 Atmel 亚洲 香港九龙观塘 观塘道 418 号创纪 之城 5 期东亚银行 中心 19 层 1-5 及 16 室 电 话:(852)2245-6100 传 真:(852)2722-1369 Atmel 欧洲 Le Krebs 8,Rue Jean-Pierre Timbaud BP 309 78054 Saint-Quentin-en-Yvelines Cedex 法国 电话:(33)1-30-60-70-00 传真:(33)1-30-60-71-11 Atmel 日本 9F,Tonetsu,Shinkawa Bldg. 1-24-8 Shinkawa Chuo-ku,Tokyo 104-0033 日本 电话:(81)3-3523-3551 传真:(81)3-3523-7581 产品联系方式 网站 www.atmel.com 技术支持 销售联系方式 [email protected] www.atmel.com/contacts 资料索取 www.atmel.com/literature 免责声明:本资料随相关 Atmel 产品一起提供。本文件或随 Atmel 产品的销售均未授予任何许可或以禁止等 其他方式明示或暗示地授予任何指示产权权利。若非 ATMEL 网站上的销售条款与条件另有规定,ATMEL 将不承担并免去任何与此产品相关的明示、暗示或规定的担保责任,包括但不限于商业可实施性,对指定用 途的适宜性等的担保或任何非侵权行为。ATMEL 不对因使用不当或未能按照本文件使用而造成的任何直 接、间接、相应引起的,惩罚性的,特殊或意外事故负责(包括但不限于盈利亏损,营业中断,或信息流失 等损失),尽管 ATMEL 可能已经知道存在发生此类损失的可能性。Atmel 未对本文件内容的准确性和完整 性在任何时候做出过任何标示或担保,并保留随时修改规格要求和产品描述的权利,恕不另行通知。 Atmel 未做出任何更新本文件内容的承诺。若若非有特别规定,Atmel 产品不适用于且不得用于汽车制造业的应用 中至此。Atmel 产品并非设计,授权或保证用做支撑应用或长期应用的部件。 ©2009 Atmel 公司。保留全部权利。Atmel®,标准和二者组合,AVR®, 标志等均为 Atmel 公司或其子公司的 注册商标。其他术语和品名可能是其他所有者持有的商标。 8168B-MCU Wireless-03/09