nrf52840笔记-AAR(Accelerated Address Resolver)加速地址解析器

测试目标板:nrf52840开发板

AAR(Accelerated Address Resolver)加速地址解析器

加速地址解析器是一个加密支持功能,用于实现蓝牙核心规范v4.0中描述的可解析的私有地址解析过程。可解析的私有地址生成应使用ECB实现,而不受AAR的支持。

该程序允许两个共享密钥的设备根据它们的设备地址生成和解决哈希值。按照本章所述配置,AAR模块可以在接收的数据包上实现实时地址解析。这允许使用已知共享密钥列表(在蓝牙中称为身份解析密钥(IRK))进行实时数据包过滤(白名单)。

EasyDMA

EasyDMA是一种易于使用的直接内存访问模块,它允许一些外设实现直接访问数据RAM。这种机制在多种应用中都有显著的优势,例如它可以实现高效的数据传输和处理,减少CPU的介入,从而提高系统的整体性能。

nRF52系列,EasyDMA被用于SPI串行外设(如SPIM和SPIS)中,进行RAM数据与寄存器的传输。此外,它也可以用于ADC接口,通过EasyDMA直接将采样结果保存到RAM,无需外部定时器即可实现连续采样。

AAR(加速地址解析)实现了EasyDMA功能,用于向RAM进行读写操作。当END、RESOLVED和NOTRESOLVED事件被触发时,表示EasyDMA已经完成了对RAM的访问。

如果IRKPTR、ADDRPTR和IRKPTR没有指向数据RAM区域,则EasyDMA传输可能导致硬故障或RAM损坏。

解析可解析地址(Resolving a resolvable address)

解析可解析地址(Resolving a resolvable address)是蓝牙低功耗(Bluetooth Low Energy,BLE)通信中的一个关键步骤。在BLE中,为了增加隐私保护和安全性,设备通常不会直接使用其公共地址进行通信,而是采用可解析的随机地址。这些随机地址可以在一定的时间内变化,从而降低了设备被跟踪和识别的风险。

然而,在某些情况下,比如建立连接或进行特定的数据交换时,接收方需要知道发送方的真实身份。这时,就需要进行地址解析。解析可解析地址涉及使用特定的密钥和算法来将可解析的随机地址转换回其对应的真实地址或设备标识。

在BLE协议中,每个设备通常都会有一个唯一的身份解析密钥(Identity Resolving Key,IRK)。当接收方收到一个可解析的随机地址时,它会使用自己存储的IRK来尝试解析这个地址。如果解析成功,接收方就能确认发送方的身份,并继续后续的通信过程。

这个过程确保了只有拥有正确IRK的设备才能解析出可解析随机地址背后的真实设备,从而增强了通信的安全性和隐私保护。

根据蓝牙核心规范,一个私有的可解析的地址由六个字节组成。

要解析一个地址,必须使ADDRPTR寄存器指向数据包的起始位置。通过触发START任务来启动解析器。当AAR使用IRK数据结构中找到的一个身份解析密钥(IRK)成功解析地址时,会生成一个RESOLVED事件。AAR将从IRK0开始,使用从IRK0到IRK15寄存器中指定的IRK。NIRK寄存器指定了应使用多少个IRK。如果AAR模块无法使用指定的IRK列表解析地址,它将生成一个NOTRESOLVED事件。

IRK(Identity Resolving Key,身份解析密钥)。

AAR(加速地址解析)会遍历IRK数据结构中的可用IRK列表,并根据蓝牙核心规范v4.0 [Vol 3]第10.8.2.3章描述的可解析私有地址解析程序,为每个IRK尝试解析地址。解析地址所需的时间会因可解析地址在列表中的位置而异。此外,其他外设和CPU执行的RAM访问也会影响解析时间。

简而言之,AAR模块会按照IRK列表的顺序尝试使用每个IRK来解析接收到的可解析随机地址。解析过程受到多种因素的影响,包括地址在列表中的位置以及系统中其他活动的干扰。为了获得最佳的解析性能,通常需要优化IRK列表的排序和减少系统中的并发访问冲突。

AAR(加速地址解析)仅将接收到的地址与模块中编程的地址进行比较,而不检查地址的类型。

AAR(加速地址解析)在成功解析地址后或尝试使用IRK数据结构中的NIRK个IRK进行解析后将停止工作。AAR在停止后会生成一个END事件。这意味着AAR模块会按照预设的IRK列表进行地址解析尝试,直到找到匹配的IRK并成功解析地址,或者尝试了所有可用的IRK(最多NIRK个)仍未成功解析为止。一旦解析过程完成,无论成功还是失败,AAR都会发出一个END事件,以通知系统地址解析阶段已经结束。

将数据包预加载到RAM中的地址解析

AAR例子

以下示例展示了如何使用地址解析(AAR)将无线电(RADIO)数据包接收与地址解析进行串联。

AAR(地址解析)可以在无线电(RADIO)接收到AAR所需的6个字节并将其存储在RAM中后立即启动。ADDRPTR指针必须指向数据包的起始位置。

当无线电(RADIO)将数据包加载到RAM中时,可以开始进行地址解析

  • 26
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: nRF52840-DK开发板是一款由Nordic Semiconductor推出的功能强大的开发板,适用于无线应用的开发和原型设计。该开发板基于nRF52840芯片,具有蓝牙5、蓝牙Mesh、Thread、Zigbee等多种无线通信协议的支持,是开发智能穿戴设备、物联网设备以及传感网络等应用的理想选择。 nRF52840-DK开发板具有丰富的硬件接口,包括USB、UART、SPI、I2C、GPIO等,使得开发者可以方便地连接、控制各种外部设备。同时,开发板上还集成了按钮、LED指示灯、天线等常用的外设,便于用户进行基础的应用开发和调试。 nRF52840-DK开发板不仅提供了开发所需的硬件资源,还配备了丰富的软件开发工具和库函数。开发者可以使用Nordic Semiconductor提供的nRF5 SDK进行应用开发,还可以通过Keil、IAR和GCC等常用的集成开发环境进行编程。 除此之外,nRF52840-DK开发板还支持在线固件更新(OTA),提供了方便快捷的开发和调试环境。开发者可以使用Segger J-link等调试工具进行调试和烧录。 总之,nRF52840-DK开发板是一款强大而灵活的开发工具,适用于广泛的无线应用开发。无论是初学者还是有经验的开发者,都能够利用该开发板快速构建各种创新的无线应用,并实现功能丰富、稳定的产品。 ### 回答2: nrf52840-dk是一款常用的开发板,广泛用于物联网(IoT)和蓝牙应用的开发。以下是关于该开发板的一些重要信息: 1. 芯片:nrf52840是Nordic Semiconductor公司推出的一款高性能低功耗蓝牙LE SoC(System-on-a-Chip)芯片。这款芯片集成了一个Arm Cortex-M4F处理和2.4GHz无线收发,可支持蓝牙5.0和其他无线通信协议。 2. 开发板:nrf52840-dk是基于nrf52840芯片的开发板,具有丰富的外围设备和接口,方便开发者进行软件编程和硬件原型设计。该开发板包含了带有按钮、指示灯和天线的nRF52840 SoC模块,以及一系列GPIO引脚、USB接口、电源管理电路等。 3. 软件开发工具:使用nrf52840-dk进行开发时,可以使用Nordic Semiconductor提供的nRF5软件开发工具套件。这个工具套件包含了一系列用于编写和调试nRF52840软件的开发工具、库文件和示例代码。开发者可以使用该工具套件进行代码编辑、编译、下载和调试等操作。 4. 功能和应用:nrf52840-dk开发板支持蓝牙LE和其他无线通信协议,可以广泛应用于物联网设备、可穿戴设备、智能家居、健康监测、无线传感网络等领域的开发。开发者可以利用该开发板进行传感数据采集、通信协议开发和物联网应用的原型验证。 总之,nrf52840-dk开发板是一款功能强大、易于使用的开发工具,适用于物联网和蓝牙应用的开发。它提供了丰富的外围设备和接口,配合Nordic Semiconductor的软件开发工具套件,开发者可以快速进行硬件原型设计和软件编程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值