用户工具

站点工具


cc2640r2f:le_2m_phy

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
cc2640r2f:le_2m_phy [2017/08/31 16:30]
127.0.0.1 外部编辑
cc2640r2f:le_2m_phy [2021/06/22 23:14] (当前版本)
行 1: 行 1:
 <markdown> <markdown>
 +
 # 介绍 # # 介绍 #
-BLE5-Stack支持以每秒符号速率为1兆(Ms/s)。由于一个符号对应于一个数据位,因此与堆栈的高位相关联,比特率为1Mb/s,这被称为LE 1M PHY。LE 2M PHY允许物理层以2 Ms/s的速率运行,从而实现比LE 1M PHY更高的数据传输速率。除了先前支持的LE 1M PHY之外,还将此LE 2M PHY功能引入蓝牙核心规范版本5.0。 
  
-默认情况下,BLE5-Stack的所有项目都支持LE 2M PHY需要在应用程序中调用API来使用该功能。 +BLE5-Stack 支持以每秒符号速率为 1 兆( Ms/s )。由于一个符号对应于一个数据位,因此与堆栈的高位相关联,比特率为 1Mb/s,这被称为 LE 1M PHY。LE 2M PHY 允许物理层以 2 Ms/s 的速率运行,从而实现比 LE 1M PHY 更高的数据传输速率。除了先前支持的 LE 1M PHY 之外,还将此 LE 2M PHY 功能引入蓝牙核心规范版本 5.0。 
-**添加了以下HCI命令来支持此功能:** + 
-- LE设置PHY命令(HCI_LE_SetPhyCmd()) +默认情况下,BLE5-Stack 的所有项目都支持 LE 2M PHY, 需要在应用程序中调用 API 来使用该功能。 
-- LE设置默认PHY命令(HCI_LE_SetDefaultPhyCmd()) + 
-- LE读PHY命令(HCI_LE_ReadPhyCmd())+**添加了以下 HCI 命令来支持此功能:** 
 +- LE 设置 PHY 命令( HCI_LE_SetPhyCmd()) 
 +- LE 设置默认PHY命令( HCI_LE_SetDefaultPhyCmd()) 
 +- LE 读 PHY 命令( HCI_LE_ReadPhyCmd())
  
-当调用HCI_LE_SetPhyCmd()时,Controller启动PHY更新过程来更改PHY。该过程包括交换两个设备的PHY参数并根据PHY参数协商使用正确的PHY。根据对端设备的能力和优先级,PHY更新过程可能不会导致有效PHY配置发生变化。+当调用 HCI_LE_SetPhyCmd()时,Controller 启动 PHY 更新过程来更改 PHY。该过程交换两个设备的 PHY 参数并根据 PHY 参数协商使用正确的 PHY 。根据对端设备的能力和优先级,PHY 更新过程可能不会导致有效 PHY 配置发生变化。
  
 ## LE 2M PHY ## ## LE 2M PHY ##
-LE 2M PHY功能使用与LE 1M PHY相同的发射功率,唯一的变化是PHY中数据的调制。使用LE 2M PHY,由于在相同的输出功率下进行更高的数据调制,能耗降低。下表列出了两个PHY之间的一些区别:+ 
 +LE 2M PHY 功能使用与 LE 1M PHY 相同的发射功率,唯一的变化是 PHY 中数据的调制。由于在相同的输出功率下进行更高的数据调制,LE 2M PHY 的能耗降低。下表列出了两个 PHY 之间的一些区别:
  
   |参数|比较|   |参数|比较|
   |:----|:-----|   |:----|:-----|
-  |能量消耗|在对等设备中的两个端点之间的逻辑连接,其特征在于它们的信道标识符(CID)| +  |能量消耗|在对等设备中的两个端点之间的逻辑连接,其特征在于它们的信道标识符( CID )| 
-  |速率|服务数据单元:L2CAP与上层交换的数据包,并使用本文档中规定的过程通过L2CAP通道透明传输| +  |速率|服务数据单元:L2CAP 与上层交换的数据包,并使用本文档中规定的过程通过 L2CAP 通道透明传输| 
-  |接收灵敏度|协议数据单元:包含L2CAP协议信息字段,控制信息和/或上层信息数据的数据包| +  |接收灵敏度|协议数据单元:包含 L2CAP 协议信息字段,控制信息和/或上层信息数据的数据包| 
-  |输出功率|L2CAP层实体可以接受的八位字节中的有效负载数据的最大大小(即MPS对应于最大PDU有效载荷大小)。|+  |输出功率|L2CAP 层实体可以接受的八位字节中的有效负载数据的最大大小(即 MPS 对应于最大 PDU 有效载荷大小)。|
  
-使用LE 2M PHY的主要优点是高吞吐量应用程序以更高的速度传输数据。+使用 LE 2M PHY 的主要优点是高吞吐量应用程序以更高的速度传输数据。
  
-## PHY限制 ##+## PHY 限制 ##
  
-以下是BLE5-Stack当前的PHY限制:+以下是 BLE5-Stack 当前的 PHY 限制:
  
-- BLE控制器不支持在连接期间链路层发起的PHY自动更改连接总是以1M PHY形成。应用程序或对端设备调用 HCI_LE_SetPhyCmd()来切换到不同的PHY。 +- BLE 控制器不支持在连接期间链路层发起的 PHY 自动更改连接总是以 1M PHY 形成。应用程序或对端设备调用 HCI_LE_SetPhyCmd()来切换到不同的 PHY。 
-- BLE控制器不支持连接在每个方向(RX和TX)上使用不同PHY的非对称连接。 +- BLE 控制器不支持连接在每个方向( RX 和 TX )上使用不同 PHY 的非对称连接。 
-- HCI_LE_SetPhyCmd()中的PHY_options参数将在以后的版本中与LE Long Range功能一起得到支持。+- HCI_LE_SetPhyCmd()中的 PHY_options 参数将在以后的版本中与 LE Long Range 功能一起得到支持。
  
-## 默认PHY ## +## 默认 PHY ##
-应用程序可以调用HCI_LE_SetDefaultPhyCmd()来设置主配置和从配置的默认PHY首选项。如果没有指定首选项或API没有被调用,则堆栈将使用所有支持的PHY(1M + 2M)。类似地,对于HCI_LE_SetPhyCmd(),如果没有指定首选项,则堆栈将使用默认PHY(即由HCI_LE_SetDefaultPhyCmd()定义的连接PHY )),否则将使用参数中指定的内容。+
  
-HCI_LE_SetDefaultPhyCmd()在连接之前调用。HCI_LE_SetPhyCmd()只能在连接期间被调用。另请注意HCI_LE_SetDefaultPhyCmd()不更改PHY只有HCI_LE_SetPhyCmd()可以更改PHY。在下面这两种情况下使用HCI_LE_SetDefaultPhyCmd()设置首选项:+用程序可以调用 HCI_LE_SetDefaultPhyCmd()设置主配置和从配置默认的 PHY 首选项。如果没有指定首选项或 API 没有被调用,则堆栈将使用所有支持的 PHY1M + 2M。类似地对于 HCI_LE_SetPhyCmd(),如果没有指定首选项,则堆栈将使用默认 PHY(即由 HCI_LE_SetDefaultPhyCmd()定义连接 PHY )),否则将使用参数中指定的内容。
  
-- 对端设备使用HCI_LE_SetPhyCmd()启动PHY更新过程, 以根据两个设备的首选项协商要使的正确PHY。 +HCI_LE_SetDefaultPhyCmd()应在连接之前调HCI_LE_SetPhyCmd()只能在连接期间被调用。另请注意 HCI_LE_SetDefaultPhyCmd)不更改 PHY,只有 HCI_LE_SetPhyCmd(可以更改 PHY。
-HCI_LE_SetPhyCmd()被调用,设置为1 AllPhys参数表示对设置参数没要求+
  
-PHY协商中可以看到个例子。+下面两种情况下使用 HCI_LE_SetDefaultPhyCmd()设置的首选项:
  
-## 更改PHY ## +- 对端设备使用 HCI_LE_SetPhyCmd()启动 PHY 更新过程, 根据两个设备的首选项协商正确的 PHY 
-程序可以在连接中启动PHY更新过程,而不管设备的角色。在设置的PHY协商期间默认使用HCI_LE_SetDefaultPhyCmd()设置的PHY首选项,除非由HCI_LE_SetPhyCmd()更改。HCI LE setdefaultmd()于指定用于传输和接收所有后续连接的首选参数。但是,当HCI_LE_SetPhyCmd()用于更改连接的PHY时,更改仅适用于该连接(后续连接将恢复为使用默认PHY)。+HCI_LE_SetPhyCmd()被调,设置为 1 AllPhys 参数(表示对设置参数没有要求
  
-两者的参数HCI_LE_SetDefaultPhyCmd()和 HCI_LE_SetPhyCmd()是相同的。ALL_PHYS参数指定是否使用其他两个参数(TX_PHYS和RX_PHYS)。主值'1'表示客户端没有该方向的PHY偏好,而'0'表示应该使用相应的参数。可以将TX_PHYS和RX_PHYS设置为分别指定用于发送和接收的PHY。请注意,当指定所有支持PHY,堆栈总是试图一组PHY协商期间选择最快的PHY,具体实现参考下面PHY协商+在 PHY 协商中可以看到这个例子。 
 + 
 +## 更改 PHY ## 
 + 
 +应用程序可以在连接中启动 PHY 更新过程,不需要考虑设备的角色。在 PHY 协商期间默认使用 HCI_LE_SetDefaultPhyCmd()设置的 PHY 首选项,除非 HCI_LE_SetPhyCmd()更改了 PHY 。HCI LE setdefaultmd()用于指定用于传输和接收所有后续连接的首选参数。但是当 HCI_LE_SetPhyCmd()用于更改连接的 PHY 时,更改仅适用于该连接(后续连接将恢复为使用默认 PHY )。 
 + 
 +两者的参数 HCI_LE_SetDefaultPhyCmd()和 HCI_LE_SetPhyCmd()是相同的。ALL_PHYS 参数指定是否使用其他两个参数( TX_PHYS 和 RX_PHYS )。主值 '1' 表示客户端没有该方向的 PHY 偏好,而 '0' 表示应该使用相应的参数。可以将 TX_PHYS 和 RX_PHYS 设置为指定用于发送和接收的 PHY。请注意,当指定所有支持 PHY,堆栈总是试图一组 PHY 协商期间选择最快的 PHY 。 
 + 
 +下面的序列图 1 显示了主机启动 PHY 更新过程的用例。
  
-下面的序列图显示了主机启动PHY更新过程的用例: 
 ![](http://www.leconiot.com/md_res/cc2640r2f/ble_stack_app/stack/le_2m_phy/Images/masterchangePHY.png) ![](http://www.leconiot.com/md_res/cc2640r2f/ble_stack_app/stack/le_2m_phy/Images/masterchangePHY.png)
-或者从设备也可以使用与以下相同的API启动PHY更新过程+ 
 +图1. 主机启动 PHY 更新过程 
 + 
 +或者图 2 中从设备也可以使用与以下相同的 API 启动 PHY 更新过程。 
 ![](http://www.leconiot.com/md_res/cc2640r2f/ble_stack_app/stack/le_2m_phy/Images/slavechangePHY.png) ![](http://www.leconiot.com/md_res/cc2640r2f/ble_stack_app/stack/le_2m_phy/Images/slavechangePHY.png)
-如果PHY没有改变(例如,如果主机尝试更改为Slave不支持的PHY),那么只有启动PHY Update过程的一方将获得hciEvt_BLEPhyUpdateComplete_t事件另一方将不会收到hciEvt_BLEPhyUpdateComplete_t事件,如图中虚线箭头所示。+ 
 +图2. 从设备启动 PHY 更新过程 
 + 
 +如果 PHY 没有改变(例如,如果主机尝试更改为 Slave 不支持的 PHY ),那么只有启动 PHY Update 过程的一方将获得 hciEvt_BLEPhyUpdateComplete_t事件另一方将不会收到 hciEvt_BLEPhyUpdateComplete_t 事件,如图 1 和图 2 中虚线箭头所示。
  
 ## 加入我们 ## ## 加入我们 ##
 +
 文章所有代码、工具、文档开源。加入我们[**QQ群 591679055**](http://shang.qq.com/wpa/qunwpa?idkey=d94f12d37c3b37892af4b757c6dc34bea140f3f3128a8d68e556a3d728148e85)获取更多支持,共同研究CC2640R2F&BLE5.0。 文章所有代码、工具、文档开源。加入我们[**QQ群 591679055**](http://shang.qq.com/wpa/qunwpa?idkey=d94f12d37c3b37892af4b757c6dc34bea140f3f3128a8d68e556a3d728148e85)获取更多支持,共同研究CC2640R2F&BLE5.0。
 <div> <div>
行 62: 行 79:
  
 </markdown> </markdown>
- 
cc2640r2f/le_2m_phy.1504168239.txt.gz · 最后更改: 2021/06/22 23:14 (外部编辑)