AN-1082应用笔记OneTechnologyWay•P.O.Box9106•Norwood,MA02062-9106,U.S.A.•Tel:781.329.4700•Fax:781.461.3113•工作模式作者:MaryO’KeefeDACDACADCLNA1ADCLNA2PA4kBPROGRAMROM2kBPROGRAMRAM256BYTEPACKETRAM64BYTEBBRAM256BYTEMCRGPIOSPORTIRQ8-BITPROCESSORRADIOCONTROLLERPACKETMANAGERFSKDEMODDSSSDEMODAGCOCLAFCCDRSPIWAKEUPCTRLGAUSSIANFILTERPRE-EMPHASISFILTERFRACTIONAL-NRFSYNTHESIZERLDO×4BIASBATTERYMONITORTEMPERATURESENSOR26MHzOSC32kHzRCOSC32kHzXTALOSCADF724209183-001Rev.A|Page1of12简介本应用笔记描述ADF7242收发器IC的自动IEEE802.15.4工作模式,该工作模式通过无线电控制器代码模块RCCM_IEEEX_R1使能。RCCM_IEEEX_R1代码模块使ADF7242具备下列特性:•自动IEEEE802.15.4帧滤波•收到有效IEEE802.15.4帧的自动应答•使用支持自动重试的非时隙CSMA_CA进行自动帧传输图1所示为低功耗2.4GHz收发器ICADF7242的框图。该收发器内置一个带掩模ROM的定制MCU内核,用于实现分组处理功能,并将无线电命令转换成内部控制序列。此外还提供2kB的程序RAM(PRAM),用作可配置程序代码存储器。它支持增加无线电控制器命令,以便提供改变的或扩展的功能。本应用笔记所述的无线电控制器代码模块基于下载到程序代码存储器PRAM中的程序代码。PRAM模块是易失性存储器,每次收发器从休眠状态唤醒时必须重新加载。通过SPI接口可以按顺序访问PRAM位置。RCCM_IEEEX_R1模块的长度小于2kB。当SCLK时钟速度为10Mbps时,该代码模块可以在不到1650μs的时间内下载到PRAM。“代码下载序列”部分详细说明了代码下载机制。图1.ADF7242框图AN-1082Rev.A|Page2of12目录简介..................................................................................................1寄存器映射扩展............................................................................3帧滤波算法.....................................................................................6帧滤波要求.....................................................................................6关于帧滤波的更多信息...............................................................6RX自动应答...................................................................................7TX自动非时隙CSMA-CA操作................................................8代码下载序列...............................................................................10更多信息........................................................................................11下载.................................................................................................11参考文献........................................................................................11AN-1082Rev.A|Page3of12表1.自动IEEE802.15.4模式寄存器映射扩展寄存器地址寄存器名称位域位域名称访问模式复位值描述0x112pan_id0[7:0]pan_id0R/WXMACPANID(pan_id)的下8位,用于帧滤波0x113pan_id1[7:0]pan_id1R/WXMACPANID(pan_id)的上8位,用于帧滤波0x114short_addr_0[7:0]short_addr_0R/WXMAC短地址(short_addr)的下8位,用于帧滤波0x115short_addr_1[7:0]short_addr_1R/WXMAC短地址(short_addr)的上8位,用于帧滤波0x116ieee_addr_0[7:0]ieee_addr_0R/WXIEEEMAC地址的位[7:0],用于帧滤波0x117ieee_addr_1[7:0]ieee_addr_1R/WXIEEEMAC地址的位[15:8],用于帧滤波0x118ieee_addr_2[7:0]ieee_addr_2R/WXIEEEMAC地址的位[23:16],用于帧滤波0x119ieee_addr_3[7:0]ieee_addr_3R/WXIEEEMAC地址的位[31:24],用于帧滤波0x11Aieee_addr_4[7:0]ieee_addr_4R/WXIEEEMAC地址的位[39:32],用于帧滤波0x11Bieee_addr_5[7:0]ieee_addr_5R/WXIEEEMAC地址的位[47:40],用于帧滤波0x11Cieee_addr_6[7:0]ieee_addr_6R/WXIEEEMAC地址的位[55:48],用于帧滤波0x11Dieee_addr_7[7:0]ieee_addr_7R/WXIEEEMAC地址的位[63:56][0]accept_beacon_framesR/WX帧滤波器0:丢弃信标帧1:接受信标帧[1]accept_data_framesR/WX[2]accept_ack_framesR/WX[3]accept_maccmd_framesR/WX[4]accept_reserved_framesR/WX[5]accept_all_addressR/WX0x11Elt_cfg[7:6]保留R/WX保留,置0[0]auto_ack_framependR/WX自动RX期间传输的ACK帧中的控制位FCF[5](帧待定)[1]is_pancoordR/WX0:器件不是PAN协调器1:器件是PAN协调器[2]保留R/WX保留,置0[3]rx_auto_ack_enR/WX0:禁用1:使能RX时自动ACK0x11Fauto_cfg[4]csma_ca_turnaroundR/WX0:禁用1:使能自动周转[7:5]保留R/WX保留,置0寄存器映射扩展RCCM_IEEEX_R1模块利用表1所列的额外寄存器进行配置。为了使能代码模块和相关的寄存器映射扩展,配置位pkt_cfg.addon_en必须置1。PRAM代码下载完毕后,表1所列的所有寄存器均处于未定义状态。因此,在将pkt_cfg.addon_en位置1前,必须初始化表1所列的所有寄存器。此外还应将0x8D写入MCR寄存器0x3FB,将0xCA写入MCR寄存器0x3FC。地址过滤器0:使能1:接受所有地址帧滤波器0:丢弃保留帧(FCF[2:0]=保留)1:接受保留帧帧滤波器0:丢弃MAC命令帧1:接受MAC命令帧帧滤波器0:丢弃ACK帧1:接受ACK帧帧滤波器0:丢弃数据帧1:接受数据帧AN-1082Rev.A|Page4of12寄存器地址寄存器名称位域位域名称访问模式复位值描述[3:0]max_frame_retriesR/WX[6:4]max_cca_retriesR/WX0x120auto_tx1[7]保留R/WX保留,置0[3:0]csma_max_beR/WX指定CSMA-CA算法使用的最大倒退指数;有效范围3到80x121auto_tx2[7:4]csma_min_beR/WX0x122auto_status[2:0]auto_statusRX0:SUCCESS1:SUCCESS_DATPEND2:FAILURE_CSMACA3:FAILURE_NOACK4:ERROR_CFG5...7:保留指定自动CSMA-CATx模式(auto_csma_tx_en=1)下重新传输未应答帧的尝试次数指定RC_TX命令(tx_auto_csma_en=1)取消前重复执行CSMA-CA算法的尝试次数;有效范围0到5;7:CSMA-CA算法禁用指定CSMA-CA算法使用的最小倒退指数;有效范围0到csma_max_beRCCM_IEEEX_R1代码模块提供一个名为address_match的额外中断源,表示在接收帧中检测到地址匹配。当帧滤波已使能(pkt_cfg.addon_en=1、lt_cfg.accept_all_address_en=0),并且接收帧满足“帧滤波算法”部分所述帧滤波算法的所有要求时,address_match中断置位。AN-1082Rev.A|Page5of12表2.RCCM_IEEEX_R1寄存器irq1_en1更新寄存器地址寄存器名称位域位域名称访问模式复位值描述[0]cca_completeR/W0状态字中的CCA结果有效[1]rx_sfdR/W0RX操作中检测到SFD[2]tx_sfdR/W0SFD传输开始[3]rx_pkt_rcvdR/W0RX_BUFFER中接收到包[4]tx_pkt_sentR/W0TX_BUFFER中的包已发送[5]frame_validR/W0RX期间检测到容许的帧[6]address_validR/W0RX期间检测到地址匹配0x3C8irq1_en1[7]csma_ca_completeR/W0csma_ca操作已完成表3.RCCM_IEEEX_R1寄存器irq2_en1更新寄存器地址寄存器名称位域位域名称访问模式复位值描述[0]cca_completeR/W0状态字中的CCA结果有效[1]rx_sfdR/W0RX操作中检测到SFD[2]tx_sfdR/W0SFD传输开始[3]rx_pkt_rcvdR/W0RX_BUFFER中接收到包[4]tx_pkt_sentR/W0TX_BUFFER中的包已发送[5]frame_validR/W0RX期间检测到容许的帧[6]address_validR/W0RX期间检测到地址匹配0x3CAirq2_en1[7]csma_ca_completeR/W0csma_ca操作已完成表4.RCCM_IEEEX_R1寄存器irq_src1更新寄存器地址寄存器名称位域位域名称访问模式复位值描述[0]cca_completeR/W0状态字中的CCA结果有效[1]rx_sfdR/W0RX操作中检测到SFD[2]tx_sfdR/W0SFD传输开始[3]rx_pkt_rcvdR/W0RX_BUFFER中接收到包[4]tx_pkt_sentR/W0TX_BUFFER中的包已发送[5]frame_validR/W0RX期间检测到容许的帧[6]a