Bluetooth RFCOMM介绍
Bluetooth RFCOMM介绍
阅读目录
- 1. 介绍
- 2. 服务
- 3. 接口
- 4. 帧类型
- 5. 帧格式
- 6. Multiplexor Frames
回到顶部
1. 介绍
RFCOMM提供了基于L2CAP协议的串行(9针RS-232)模拟
RFCOMM支持在两个蓝牙设备间高达60路的通信连接,最新规范是V1.2
RFCOMM支持两种设备类型,但并不对它们进行区分
Type 1: DTE, 通信终端(如计算机, 打印机) Type 2: DCE, 通信节点(调制解调器)
连接方式如下图所示
回到顶部
2. 服务
2.1 RS-232控制信号
RFCOMM模拟了9针RS-232接口,如下所示
Pin | Circuit Name |
102 | Signal Common |
103 | Transmit Data(TD) |
104 | Received Data(RD) |
105 | Request to Send(RTS) |
106 | Clear to Send(CTS) |
107 | Data Set Ready(DSR) |
108 | Data Terminal Ready(DTR) |
109 | Data Carrier Detect(CD) |
125 | Ring Indicator(RI) |
2.2 Null Modem Emulation
当传递非数据通路的状态信息时,不区分DTE和DCE设备;而用控制信号来代替相应的信号,下图是对应关系
GSM 07.10信号 | 对应RS-232控制信号 |
RTS | DSR, DTR |
RTR | RTS, CTS |
IC | RI |
DV | DCD |
当两个同类设备(如DTE)互联时,GSM 07.10传输控制信号时就会创建Null Modem
下图显示了两个DTE设备相连时创建的Null Modem
2.3 多串口仿真
2.3.1 两个设备间的多串口仿真
两个使用RFCOMM通信的蓝牙设备可以同时打开多个串口仿真
RFCOMM支持多大60路,但是一个设备实际能打开的数据依实现而定
一个数据链接标识(DLCI: 参考帧格式Address字段D+ServerChannel)标识一对客户和服务器之间的持续连接
DLCI 在两个设备间的RFCOMM会话中保持一致 DLCI 长度为6bit,在RFCOMM中其可用值区间为2~61 DLCI 0为控制信道 DLCI 1由于服务器信道概念不能使用 DLCI 62-63保留
在一次RFCOMM会话中,客户和服务器可以分布在通信的两端,每一端的客户都可以独立发起建立通信连接
因此可使用RFCOMM服务器信道的概念将DLCI值域空间在两个正在进行通信的设备间进行划分
2.3.2 多仿真串口和多蓝牙设备
多仿真串口和多蓝牙设备,是可选的
如果蓝牙设备支持多串口仿真,同时通信连接两端允许使用不同BT设备
那么RFCOMM实体必须能够运行多路复用会话,每个多路复用使用L2CAP信道标识符(CID)来区分
回到顶部
3. 接口
RFCOMM目的在于定义一个能够利用仿真串口的协议
下图是RFCOMM参考模型及相应描述
回到顶部
4. 帧类型
RFCOMM支持的帧(Frame)类型如下
类型 | 描述 |
SABM | Set Asynchronous Balanced Mode (startup command) |
UA | Unnumbered Acknowledgement (response when connected) |
DISC | Disconnect (disconect command) |
DM | Disconnected Mode (response to a command when disconected) |
UIH | Unnumbered Information with Header check |
SABM、UA、DM、DISC是"low- level"控制帧
DLCI为0的UIH帧用来传递控制信息,DLCI不为0的UIH帧用来传递数据
回到顶部
5. 帧格式
RFCOMM帧格式如下所示
5.1 Address字段
EA(Extern Address)字段: 在RFCOMM中,为1
C/R(Command/Response)字段: 表示该帧是一个Command还是Response,设置方式如下图所示
DCLI: direction bit and server channel, 通常initator将D位(即最低位)设置为1,而Responser则将其设置为0
故initator的DCLI的值总是基数(3,5,7,…,61),而Responser则为偶数(2,4,6,…,60)
5.2 Control字段
Control字段用来标识帧的类型,下图是相关值
其中,P/F是Poll/Final位,在Commands中,被称为P位;而在Responses中则被称为F位
当发送的Command需要一个相应时,就将P置1,接收方收到这样的命令时需要马上响应并将F置1
如果接收到P/F位置为0的SABM或DISC帧,接收方将把它们丢弃
DM帧不考虑P/F的设置。
5.3 Length字段
Length字段由最低位的EA来决定其长度
当EA为1时,长度为7bits(0~127)
当EA为0时,长度为15bits(0~32767)
其中,RFCOMM帧的默认长度为127,最大长度为32767
5.4 Data字段
Data字段仅仅在UIH帧中存在,其长度限制由L2CAP的MTU所限制
5.5 FCS字段
用于接收方校验接收数据是否正确,校验原理采用循环冗余校验CRC-8
对于SABM,DISC,UA和DM帧,FCS计算Address,Control and Length字段
对于UIH帧,FCS计算Address and Control字段
回到顶部
6. Multiplexor Frames
Multiplexorm Commands and Responses在DLCI=0在发送用于控制RFCOMM连接
有七种类型的Commands or Responses
Commands/Responses | Description |
PN | DLC parameter negotiation |
Test | Test Command |
FCon/FCoff | Flow Control On/Off Command |
MSC | Modem Status Command, used for flow control |
RPN | Remote Port Negotiation |
RLS | Remote Line Status |
NSC | Non Supported Command (response only) |
注意: 当收到一个不支持的命令时应该回应NSC
上面的这些命令和相应通过UIH帧(DLCI=0)来封装
可以在一个RFCOMM帧中封装多个命令,也可以将一个命令拆分至多个RFCOMM帧
Multiplexor Frames的格式如下图
Bluetooth RFCOMM介绍相关推荐
- Bluetooth Baseband介绍
Bluetooth Baseband介绍 阅读目录 1. 介绍 2. 概述 3. 物理信道 4. 物理链路 5. 逻辑传输层 6. 逻辑链路 7. 数据包 8. 链路控制 回到顶部 1. 介绍 蓝牙的 ...
- Bluetooth SDP介绍
Bluetooth SDP介绍 阅读目录 1. 概念 2. 服务记录 3. 服务属性 4. 服务类 5. 服务查找 6. 服务浏览 7. 数据表示 8. 协议说明 回到顶部 1. 概念 SDP, Se ...
- 传统蓝牙RFCOMM协议(Bluetooth rfcomm)流程介绍
零. 概述 本文章主要讲下蓝牙协议栈RFCOMM协议部分流控介绍 一. 声明 本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下: 第一篇:蓝牙综合介绍 ,主要介绍蓝牙的一些概念,产生背景, ...
- 蓝牙Bluetooth模块介绍
1,蓝牙模块--基础知识介绍 https://blog.csdn.net/wwt18811707971/article/details/77833602 2,常见蓝牙模块介绍和AT指令 https:/ ...
- Android4.3 Bluetooth基本介绍
蓝牙定义 蓝牙,是一种支持设备短距离通信(一般10m内)的无线电技术.能在包括移动电话.PDA.无线耳机.笔记本电脑.相关外设等众多设备之间进行无线信息交换.利用"蓝牙"技术,能够 ...
- Bluetooth 蓝牙介绍(一) :基础知识
蓝牙背景 从1994年由电信商爱立信提出"希望创建一个RS-232数据线的无线通信替代版本,它能够链接多个设备,克服同步的问题"以来,蓝牙经过了20余个岁月的发展,蓝牙技术也经历了 ...
- Bluetooth GAP介绍
阅读目录 1. 介绍 2. 角色 3. 配置 4. 模式 5. 安全 6. 空闲模式 7. 建立连接 8. 操作模式和过程 回到顶部 1. 介绍 GAP,Generic Access Profile, ...
- Bluetooth 蓝牙介绍(四):低功耗蓝牙BLE Mesh网络 Ⅰ—— 基础概念
文章目录 背景 术语 Managed Flooding Models Scenes 架构 Node Features 中继节点 代理节点 友元节点和低功耗节点 示例 BLE Mesh Networki ...
- Bluetooth 蓝牙介绍(二):低功耗蓝牙BLE协议栈
文章目录 Physical LAYER Link LAYER 角色 地址 物理信道 Air Interface Packet PDU Advertising physical channel PDU ...
- Bluetooth 蓝牙介绍(六):低功耗蓝牙信息交互
文章目录 前言 THREE-WIRE UART TRANSPORT LAYER LINK ESTABLISHMENT UnInitialized STATE Initialized STATE Act ...
最新文章
- 执行eclipse,迅速failed to create the java virtual machine。
- Shell tips
- (转) ASP.NET 2.0:使用用户控件和定制的Web部件个人化你的门户网站(二)
- 在.NET Core中使用MongoDB明细教程(3):Skip, Sort, Limit, Projections
- 3G-SDI光端机产品技术参数规格及产品应用领域
- oracle层次化查询
- Bootstrap3 滚动监听的使用方法
- html5页面签字,html5 canvas实现的手机端签字板
- C++ 冒泡算法 练习
- android开源音乐播放器简单demo,Android开源在线音乐播放器——波尼音乐
- 1000道Python题库系列分享三(30道)
- Macbook无法登陆APP Store解决办法
- 批量搜索多个excel文件
- 两步实现安卓手机秒变网络摄像头
- 《黃帝內經》第一章《上古天真論》
- Linux服务器性能评估
- Problem L 七段显示器显示整数
- ios开发实战swift开发macQQ教程
- 没在路边改过代码的程序员,不足以谈人生。
- 使用python3爬去360图片