- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在低功耗蓝牙 4.0 和 4.1 中,OTA 数据包的最大 PDU 为 39 个字节(47 个字节,包括前导码、访问地址和 CRC),在 4.2 版中增加到 257 个字节。
短数据包的原因是 radio 的稳定性,长数据包会加热硅并且要添加额外的电路以保持频率稳定。因此,在 BLE 4.1 中,最长可能的数据包为 376 微秒以避免加热效应。由于数据速率为 1Mhz,376 微秒为 376 位 = 47 字节,因此解释了 PDU 的大小。但是在 4.2 版本中,最长的数据包是 2120 位,所以 2.12ms 和我在蓝牙经典中读取的 3ms 数据包足够长,会导致问题。所以我的问题是:SIG 为何以及如何在 4.2 版本中成功增加 PDU 知道一些半导体公司表示所有版本的硬件都是相同的。是什么导致了这个新的 PDU 长度?
最佳答案
在 4.[01] 中,39 字节是广告数据包达到的最大 LL PDU 大小(2 字节的报头,6 字节的设备地址,31 字节的 AD)。
对于数据包,最大 PDU 大小为 33 字节(2 Header + 4 L2CAP + 23 ATT + 4 MIC)。
注意数据 channel header 计算没有 header 的 PDU 大小,因此这使数据 channel 有效负载大小上升到 31 个字节。这是在 4.2 中放大的数字(如果不支持加密,实际最小值为 27 字节,因为 4 字节 MIC 永远不会出现在数据包中)。
4.2中定义的新数据 channel 有效载荷大小是协议(protocol)可以支持的最大可能值,所以它是一个芯片的值可能支持而不是每个芯片的绝对数据包大小必须支持。
实际数据信道有效载荷大小通过两个相关 radio 之间的 LL_LENGTH_REQ 和 LL_LENGTH_RSP 进行协商。它们可以协商从 27 到 251 字节的任何长度(在有效负载级别)(参见 Core_v4.2 6.B.2.4.2.21)。
在 BLE 规范的第一个版本中,数据包的绝对最大大小为 27 字节(数据有效负载,没有 MIC)。 Spec 使用 5 位字段来表示 LL 数据包大小,该头字节的其他 3 位是 RFU。它最终在 4.2 中扩大到具有完全向后兼容性的 8 位,但在 header 中没有更多的连续位可用。对我来说,这解释了为什么限制大约是 256 个字节(由于不属于字节数的固定 header 大小而给予或接受):它提供了合理的扩展,而无需太多改变协议(protocol)。
关于bluetooth-lowenergy - 低功耗蓝牙 4.2 中 PDU 大小说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39457315/
PDU pdu = new PDU(); pdu.setType(PDU.SET); pdu.add(new VariableBinding(new OID("1.3.6.1.4.1.100.1.1"
似乎是我需要解析在 SMS BroadcastReceiver 期间收到的 PDU 字节数组: @Override public void onReceive(Context context, Int
我正在尝试构建一些 PHP 代码以通过 telnet 将 SMS 发送到 SIM 服务器,但我在发送串联消息时遇到了问题。 我读过一些关于使用填充位将编码的消息七位字节变成八位字节的内容,但我不完全理
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 8年前关闭。 Improve this questi
我正在尝试使用 python 的内置 telnet 功能自动关闭与 APC PDU 连接的设备。我相信我可以输入用户名和密码,但之后无法继续。我的代码如下: telnet_session =
大家好,我改进了我的代码..这段代码适用于任意数量的字符,但是当我传递“~`!@#$%^&*()_-=+]}[{'”;:.,>”等符号时遇到问题没有输出。如果我只传递字符和数字,我会得到所需的输出。谁
我有以下 Java 方法,我试图用它来过滤通过网络接收的 PDU 消息,并只向用户显示符合过滤条件的 PDU: public static void displayFilteredPdu(){
是否可以仅使用 golang 解析 SMS PDU 执行AT指令 AT+CMGF=0 OK AT+CMGL=4 +CMGL: 0,1,,26 0791361907002039040C913619874
我正在处理 SMS 和 PDU,并创建串联消息以通过 GSM 调制解调器 (Cinterion MC35i) 发送,但是当我发送串联消息时,它从未出现在另一端。这是与调制解调器的通信记录: at OK
我需要帮助将 PDU 模式下的短信转换为 Java 中的文本模式。 最佳答案 尝试 Android PDUParser, http://www.androidjavadoc.com/m5-rc15/c
PDU 是结构体形式还是字符串形式? (在任何模式下)。我正在制作一个 C 程序,想通过 SMPP 向手机号码发送消息。要么使用结构,要么以单个字符串发送每个 PDU 内容? 最佳答案 您需要阅读 S
我正在使用 AltBeacon 库来处理我的信标(由 Shenzhen Minew Technologies Co., Ltd. 提供)。我使用以下 beaconManager.getBeaconPa
我已成功发送多部分 pdu 短信, 问题是当我尝试将此 SMS 发送到不同网络上的号码时,出现以下错误: +CMGS ERROR:500 谁能告诉我我该怎么做。 atCommandSt
我目前正在编写和应用程序,即发送/接收短信。 出于单元测试目的,我需要以编程方式创建 PDU。解码非常简单: Bundle bundle = intent.getExtras(); if (bundl
如何从 SMS PDU 中提取消息? 我需要从 SMS PDU 获取消息。当我使用一些在线服务时,它们工作正常。例如,这里 - http://www.diafaan.com/sms-tutorials
我正在尝试从 gosnmp 包返回的 SNMP PDU 中获取 OctetString 值。即使是字节也足够了。 这是我的代码: package snmp_abstract import (
我正在使用 Wireshark 中的消息制造规范 (MMS)。该工具无法剖析 ACSE 层。它没有显示任何错误,但将 ACSE 数据显示为 MMS 的一部分,即在表示层之后显示 MMS。如果wires
我想以 PDU 模式发送短信。我已经检查了我的调制解调器的规范,它支持 PDU 模式。 我已经开发了 PDU 编码器和解码器,但现在我不知道如何将数据发送到我的调制解调器。我尝试了这些 AT 命令:
任何人都知道 byte[] 数组中可用的 Java Pdu 解析器,我主要关心的是获得符合 GSM 标准的用户数据头 (UDH)。我的意思是得到它正确。 最佳答案 smsLib比较成熟。您还可以使用
我有一个项目使用 Cloudhopper 5.0.6 库来保持 SMPP 连接(3.4 版本)并发送或接收 PDU。我需要修改默认 PDUResopnse,因此,自定义 PDU 处理是通过以下方式扩展
我是一名优秀的程序员,十分优秀!