蓝牙地址是什么样的(蓝牙设备的地址)

蓝牙地址是什么样的(蓝牙设备的地址)p strong 01 strong strong u 蓝牙 u 设备地址的类型 strong p 所有蓝牙设备都应具有一个蓝牙设备地址 BD u AD u DR 该地址 及其地址类型 可以唯一地 一定范围内唯一 标识该设备

大家好,我是讯享网,很高兴认识大家。



 <p> <strong>01</strong><strong><u>蓝牙</u>设备地址的类型</strong></p> 

讯享网

讯享网所有蓝牙设备都应具有一个蓝牙设备地址 (BD_<u>AD</u>DR),该地址(及其地址类型)可以唯一地(一定范围内唯一)标识该设备。使用者如果不了解其概念,看上去可能会有很多疑惑,甚至容易造成侵权问题。<br /><br /> 蓝牙的设备地址分为两大类,一类是 Publ<u>ic</u>,一类是 Random 的。其中 Random 类地址里面又分为静态地址和私有地址。私有地址又分为不可解析的私有地址和可以解析的私有地址。这些地址类型列举如下:<br /> • Public Bluetooth address // 1<br /> • Random Bluetooth address<br /> o Static address // 2<br /> o Private address<br /> Non-resolvable private address // 3<br /> Resolvable private address // 4<br /><br /> 上述 4 种地址类型都使用 48bit 的地址长度。地址类型不同,48bit 地址的格式也会不同;设备地址类型和设备地址共同用于唯一标识该设备。另外需要注意以下几点:<br /> • Public 或者 Random 地址类型的标识在链路层的广播包 PDU Header 中,不在48bit 地址的内容中。<br /> • Random 类型下的三种地址类型,使用 48bit 地址的高 2bit 进行标识。<br /> • 48bit 地址都相同的两个设备,如果它们分别属于 Public 或者 Random 地址类型,则它们是两个不同身份的蓝牙设备。<br /><br /> 设备应至少使用一种类型的设备地址,也可以同时使用两种。该设备可以通过它使用的任何设备地址来寻址。设备的身份地址是它在传输的数据包中使用的 Public 设备地址或Random 静态设备地址。如果一个设备使用可解析的私有地址,它也应该有一个身份地址。每当比较两个设备地址时,比较应包括设备地址类型(即如果两个地址的类型不同,即使两个 48 位地址相同,它们也不同)。<br /><br /> 如果<u>公司</u>有购买 Public 地址,则建议用 Public。如果没有购买地址,又没有设备地址隐私需求,则建议使用 Random Static Device Address。</p> 

<strong>1.1. Public Bluetooth Address</strong></p> 

讯享网在传统蓝牙和 BLE 中,原则上来说,使用 Public 地址需要向 IEEE 申请购买,使用未授权的 Public 地址如果和已授权的 Public 地址发生地址冲突,可能会面临法律纠纷。使用Public 地址还需要涉及到地址的管理、购买等流程。本文的后面举例描述了购买 Public 地址的流程。</p> 

<strong>1.2. Random Static Device Address</strong></p> 

讯享网蓝牙更新到了 BLE 版本之后,为了让设备<u>厂商</u>可以节省购买 Public 地址授权的费用,引入了 Random 类型的地址。从前文可知,Random 地址类型又分为静态(Static)类型和隐私(Private)类型。静态类型的地址格式如下:</p> 

<img src="https://file1.elecfans.com/web2/M00/BA/81/wKgZomWUuxiAZI09AABKEzZneSI018.jpg" alt="-a97f-11ee-8b88-92fbcf53809c.jpg" /></p> 

讯享网静态地址是随机生成的48位地址,应满足以下要求 :<br /> • 地址的随机部分至少有一位应为 0<br /> • 地址的随机部分至少有一位应为 1</p> 

<br /> 设备可以选择在每次<u>电源</u>循环后将其静态地址初始化为新值。设备在初始化后不得更改其静态地址值,直到设备重新上电。</p> 

讯享网<br /> 注意:如果设备的静态地址发生更改,则存储在对端设备中的地址将无效,并且将失去使用旧地址重新连接的能力。</p> 

<strong>1.3. Random Non-Resolvable Private Address</strong></p> 

讯享网隐私地址主要是为了解决隐私问题。根据其是否可解析,又分成不可解析地址类型和可解析地址类型,不可解析地址类型的地址格式如下:</p> 

<img src="https://file1.elecfans.com/web2/M00/BA/81/wKgZomWUuxmAHWDsAABKXpVhZM4002.jpg" alt="-a97f-11ee-8b88-92fbcf53809c.jpg" /></p> 

讯享网• 地址的随机部分至少有一位应为 1<br /> • 地址的随机部分至少有一位应为 0<br /> • 地址不得等于 Public 地址</p> 

<br /> 不可解析地址会周期更新(建议值是 15 分钟),这类地址在实际应用中比较少用。</p> 

讯享网<strong>1.4. Random Resolvable Private Address</strong></p> 

所谓可解析地址(RPA),是指可以把一个周期变化的地址解析为唯一的身份地址。使用随机可解析地址类型的设备应具备两个地址,一个地址用于标识该设备,称为身份地址(Iden<u>ti</u>ty Address),另一个则为随机可解析地址(RPA)。一般情况下,设备会广播RPA,身份地址保存在本地。对端设备可通过解析 PRA 进一步获得其身份地址。<br /><br /> 要生成可解析的私有地址,设备必须具有本地身份解析密钥 (IRK) 或对端身份解析密钥 (IRK)。可解析的私有地址应使用 IRK 和随机生成的 24 位数字生成。随机数称为prand,应满足以下要求:<br /> • prand 的随机部分至少有一位为 0<br /> • prand 的随机部分至少有一位为 1</p> 

讯享网<img src="https://file1.elecfans.com/web2/M00/BA/81/wKgZomWUuxmAJ8DmAABOjY-O8D4264.jpg" alt="-a97f-11ee-8b88-92fbcf53809c.jpg" /></p> 

特征如下:<br /> 1)由两部分组成:<br /> 高位 24bits 是随机数部分,其中最高两个 bit 为“10”,用于标识地址类型;<br /> 低位 24bits 是随机数和 IRK 经过 hash 运算得到的 hash 值,运算的公式为 hash = ah(IRK, prand)。</p> 


讯享网

讯享网2)当对端 BLE 设备扫描到该类型的蓝牙地址后,会使用保存在本机的 IRK,和该地址中的 prand,进行同样的 hash 运算,并将运算结果和地址中的 hash 字段比较,相同的时候,才进行后续的操作。这个过程称作 resolve(解析),这也是 Non-Resolvable Private Address/Resolvable Private Address 命名的由来。<br /> 3)以 T_GAP(private_addr_int)为周期,定时更新。哪怕在广播、扫描、已连接等过程中,也可能改变。<br /> 4)Resolvable Private Address 不能单独使用,因此需要使用该类型的地址的话,设备要选择 Public Device Address 或者 Static Device Address 中的一种作为其身份地址。</p> 

<strong>02</strong><strong>MAC 地址相关函数</strong></p> 

讯享网下面介绍两个比较重要的和 MAC 设置相关的函数。</p> 

// 配置 MAC 地址的函数</p> 

讯享网<img src="https://file1.elecfans.com/web2/M00/BA/81/wKgZomWUuxmAfNr8AAAu6kgUJk8840.jpg" alt="847c5446-a97f-11ee-8b88-92fbcf53809c.jpg" /></p> 

<br /> 其中不同的 offset 设置的数值不一样,和 MAC 地址相关的主要是这两个:<br /> • 0x00: CONFIG_DATA_PUBADDR_OFFSET<br /> •0x2E: CONFIG_DATA_STATIC_RANDOM_ADDRESS</p> 

讯享网//配置使用哪种 MAC 地址的函数:</p> 

<img src="https://file1.elecfans.com/web2/M00/BA/81/wKgZomWUuxmANcWsAAB5qnfoRJI715.jpg" alt="fe-a97f-11ee-8b88-92fbcf53809c.jpg" /></p> 

讯享网Identity_Address_Type :<br /> • 0x00: Public Address<br /> • 0x01: Static Random Address</p> 

<strong>03</strong><strong>蓝牙 Random 静态设备地址的生成与设置参考方法</strong></p> 

讯享网为了方便一些客户生成免费的相对唯一的 MAC 地址,下面列举一个使用<u>芯片</u>出厂唯一的 UID 来生成 MAC 地址的参考方法。基本原理是通过读取芯片的 UID,然后再进行 Hash计算,截取需要的 46bit 作为随机部分的静态地址。理论上这种方法生成的 MAC 地址重复的几率很小,在 2 的 40 多次方分之一的几率重复,因此实际工程应用中可以认为它相对比较唯一。</p> 

Hash 计算这部分参考了开源的<u>算法</u>库,链接地址如下:<br /> https://github.com/B-Con/crypto-algorithms/blob/master/sha256.c</p> 

讯享网sha256.c这个库文件在当前开发平台上需要修改前面一个头文件包含:</p> 

将 “#include” 更改为 “#include”</p> 

讯享网以下部分伪代码适用于 BlueNRG 系列和 <u>STM32</u>WB 系列</p> 

// 生成静态 MAC 地址参考函数</p> 

讯享网<img src="https://file1.elecfans.com/web2/M00/BA/81/wKgZomWUuxmAYR7aAAEpVtOAST8618.jpg" alt="848d1740-a97f-11ee-8b88-92fbcf53809c.jpg" /></p> 

<strong>04</strong><strong>蓝牙 Public 设备地址的购买流程</strong></p> 

讯享网全球唯一设备号,标准化组织是 IEEE,以前的网卡 Ma 地址、PC,现在蓝牙设备、BLE 设备若需要<u>认证</u>的,官方的唯一设备标识,即蓝牙地址,也是 Mac 地址,需向 IEEE申请,并登记付费。即可获得授权。</p> 

<strong>4.1. OUI 介绍</strong></p> 

讯享网<u>Or</u>ganizationally Unique Identifier(OUI) 被称作“组织唯一标识符”,在任何一块网卡中烧录的 6 字节 MAC 地址中,前三个字节就体现了 OUI,通常情况下,该标识符是唯一的。因此,OUI 可以用来创建 MAC 地址、蓝牙设备地址或<u>以太网</u>地址。另外,OUI 也可作为一个公司的 SNAP 协议标识符使用。<br /><br /> 通常情况下,IEEE 标准协会将前 24 位组织唯一标识符(OUI)分配给生产企业,剩下的 24 位由厂家自行分配代码。<br /><br /> 目前,OUI 只能通过 IEEE 标准协会直接购买,其总价格大概在 3500 美元左右。<br /><br /> 如果如果没有保密需求,支付$3500 就可获得一个 OUI(可生成 1600 万个地址),即上述所指的 publ<u>icl</u>y registered MA-L,也就是说此类公司的名称和地址是公开的,公众可以访问</p> 

https://regauth.standards.ieee.org/standards-ra-web/pub/view.html#registries<br />
输入公司名称查询该公司拥有的 MA-L,或者输入 MA-L查询公司的名称和地址。<br /><br />
如果生产厂商希望对以上信息保密,可以选择 Privately registered MA-L,价格会贵很多,且每年需要支付保密费用大概几千美元。</p>

讯享网<strong>4.2. 购买流程</strong></p> 

如果需要购买 Public 地址,需要先申请一个 IEEE 账号。登入后点击如下入口开始申请。</p> 

讯享网图1.申请购买 public 地址入口</p> 

<img src="https://file1.elecfans.com/web2/M00/BA/81/wKgZomWUuxmAQI68AABhtR3WpL8789.jpg" alt="84957c50-a97f-11ee-8b88-92fbcf53809c.jpg" /></p> 

讯享网图2. 选择购买的 MAC 地址数量和类型</p> 

<img src="https://file1.elecfans.com/web2/M00/BA/81/wKgZomWUuxmAGYmYAAB51K-V8aM457.jpg" alt="849cce88-a97f-11ee-8b88-92fbcf53809c.jpg" /></p> 

讯享网如果申请的类型是 MA-L 大概有 1677 万个地址,MA-M 大概有 100 多万个。</p> 

图3.申请过程中的 4 个步骤</p> 

讯享网<img src="https://file1.elecfans.com/web2/M00/BA/81/wKgZomWUuxqAC59nAACZmPscczs883.jpg" alt="84a605c0-a97f-11ee-8b88-92fbcf53809c.jpg" /></p> 

主要填写:申请人<u>信息</u>,包括姓名、职位、公司名称、地址及邮箱电话等;<br /><br /> 公司信息,如果贵公司为首次申请,initial corpora<u>te</u> assignment request 后选择YES,如果不是首次申请 OUI,一定要确保现有的 MAC 地址使用率已达到 95%,否则不予申请,选择 No 之后需要在方框内填写上次申请 OUI 的公司名称并提供再次申请的理由,同时还需提供公司类型,是母公司还是子公司,还是两者皆否<br /><br /> 如果公司类型选择了母公司或者是子公司,需要填写至少 3 家联营公司的具体信息,如果公司类型选择了 neither,该部分可不填;为保密信息,如果选择购买的是 publicly registered MA-L,该部分选择 No,反之选择 Yes 并提供理由;目前 IEEE 标准协会接受的付款方式包括邮寄美国银行汇票、美元电汇及信用卡在线支付。如果需要提供形式发票,请选择 please send a proforma invoice 之前的复选框。<br /><br /> 完成以上内容后在线提交即可。</p> 

讯享网<strong>4.3. 购买后检查确认</strong></p> 

如果需要购买 public 地址,需要先申请一个 IEEE 账号。登入后点击如下入口开始申请。通常 IEEE 收到款后的第二天,即可邮件收到一个 Mac 地址的生成软件,填上日期等信息后,会生成一个 6BYTE(48bits)的地址段,前 3BYTE 数据为公司名,后面 3BYTE是序号。<br /><br /> 图4.在更新的列表中检查申请的地址</p> 

讯享网<img src="https://file1.elecfans.com/web2/M00/BA/81/wKgZomWUuxqAIQf9AADFH0YjIlk574.jpg" alt="84af9d1a-a97f-11ee-8b88-92fbcf53809c.jpg" /></p> 

<br /><strong>05</strong><strong>小结</strong></p> 

讯享网本文介绍了 BLE MAC 地址的类型,基于芯片 ID 生成静态随机 MAC 地址,以及购买Public MAC 地址的流程。</p> 

</p> 

讯享网审核编辑:汤梓红</p> 

</p> 
小讯
上一篇 2025-06-09 10:17
下一篇 2025-05-27 16:44

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/166687.html