蓝牙协议-----之pan profile on bluedroid

本文详细介绍了蓝牙网络协议中的BNEP(Bluetooth Network Encapsulation Protocol)及其在Bluedroid中的实现。内容涵盖BNEP协议层次结构、包类型和格式,包括BNEP控制包类型和BNEP压缩以太网包类型。此外,还讨论了蓝牙PAN在Bluedroid中的层次结构、链接过程和数据收发流程。
摘要由CSDN通过智能技术生成

1 蓝牙pan profile协议的概述

1.1 协议层次结构

蓝牙pan就是我们熟知的蓝牙网络,他在蓝牙协议体系中的层次结构见如下图:

BNEP相当于网络协议栈中的链路层,由该层虚拟出一个网络接口,而BNEP层以下就是蓝牙核心协议之一的L2CAP。这个是在蓝牙协议中的层次结构,具体在bluedroid中的层次结构,跟这个有点出入。但基本都差不多的。

1.2 BNEP包的类型和格式

上图中的BNEP层收到的数据包是以太网格式的,需要将他重现拆分打包成适合BNEP over L2CAP来传输,所以在BNEP层需要将ip层下来的以太网头去掉,再加上BNEP的头,当这个BNEP包传输到l2cap层时,又会被加上L2cap的头,他们的包头格式的变换如下图所示:

1.3 BNEP包的类型

上图中的BNEP Header的格式基本是遵循如下图所示的格式,但具体的格式是依赖于BNEP TYPE的,不同的type他们的BNEP header是有所不同的。

0                  8      12     16     20    24     28     31

BNEP TYPE E BNEP Packet based on BNEP Type ...

以上各字段的解析如下:

BNEP Type:取值范围:0x00 –0x7F,Seven bit Bluetooth Network Encapsulation Protocol Type value identifies the type of BNEP header contained in this packet.Values are defined in the following Table 1

Extension Flag (E):One bit extension flag that indicates if one or more extension headers follow the BNEP Header before the data payload. If the extension flag is equal to 0x1 then one or more extension headers follows the BNEP header.  If the extension flag is equal to 0x0 then the
BNEP payload follows the BNEP header

 

 以上各种BNEP包类型,重点描述0x01和0x2类型,其他的请详见BNEP的协议描述。

1.4 BNEP control packet type

BNEP_ CONTROL Packet Type Header Format:The BNEP_ CONTROL packet type header format is shown in the following Figure。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值