Bluetooth Profile Specification之3.0 RFCOMM服务

简介: Bluetooth Profile Specification之3.0 RFCOMM服务

本文档通过指定ETSITS07.10标准的一个子集,以及一些特定于蓝牙®的自适应,来指定RFCOMM协议。


1.前言

RFCOMM协议通过L2CAP协议提供串口的仿真。该协议基于ETSI标准GSM07.10。此外,以强制性的基于信用的流量控制方案的形式,增加了一个特定于RFCOMM的扩展。


1.1 概述

RFCOMM是一个简单的传输协议,附加了模拟RS-232(ITU-TV.24)串口的9个电路的规定。


RFCOMM协议支持两个蓝牙设备之间最多60个同时连接。在蓝牙设备中可以同时使用的连接数是特定于实现的。


1.2 设备类型

对于RFCOMM的目的,一个完整的通信路径涉及到在不同的设备(通信端点)上运行的两个应用程序,它们之间有一个通信段。图1.1显示了完整的通信路径。(在此情况下,术语应用程序可以指终端用户应用程序以外的其他东西;例如,更高层协议或代表终端用户应用程序使用的其他服务。)

image.png

RFCOMM旨在覆盖利用其所在设备的串行端口的应用程序。在简单的配置中,通信段是从一个设备到另一个设备的蓝牙链路(直接连接),见图1.2。当通信段是另一个网络时,蓝牙无线技术用于设备和像调制解调器这样的网络连接设备之间的路径。RFCOMM只涉及直接连接情况下的设备之间的连接,或者涉及网络情况下的设备与调制解调器之间的连接。RFCOMM可以支持其他配置,如一侧通过蓝牙无线技术进行通信的模块,另一侧提供有线接口的模块,如图1.3所示。设备并不是真正的调制解调器,但也提供类似的服务。因此,这里没有明确地讨论它们。


本规范支持以下两种设备类型的实现:


  • 类型1的设备是通信端点,如计算机和打印机。
  • 类型2设备是通信部分部分的设备,例如调制解调器


虽然RFCOMM在协议中没有区分这两种设备类型,但容纳这两种类型的设备会影响RFCOMM协议。

image.png

图2


image.png

图3


两个RFCOMM实体之间传输的信息被定义为支持1型和2型设备。有些信息只需要第2类设备使用,而其他信息则打算供两者使用。在协议中,类型1和类型2之间没有任何区别。因此,由RFCOMM实现者来确定在RFCOMM协议中传递的信息是否对实现有用。由于设备不知道通信路径中其他设备的类型,因此每个设备都应传递协议指定的所有可用信息。


1.3 字节排序

本文档使用与GSM07.10规范相同的字节顺序;即,所有二进制数字都以最小显著位到最重要位的顺序排列,从左到右读取。


2.RFCOMM服务

RFCOMM模拟RS-232(ITU-TV.24)串行端口。仿真包括非数据电路状态的传输。RFCOMM有一个内置的空调制解调器模拟方案。


如果通过RFCOMM服务接口为特定端口设置了波特率,则不会影响RFCOMM中的实际数据吞吐量,即RFCOMM不会产生人为的速率限制或起搏。然而,如果任何一个设备是2型设备(将数据中继到其他介质上),或者如果数据起搏在两端的RFCOMM服务接口上进行,实际吞吐量平均将反映波特率设置。


RFCOMM支持模拟两个设备之间的多个串口和模拟多个设备之间的串口。


2.1 RS-232控制信号

RFCOMM模拟了一个RS-232接口的9个电路。这些电路列在

image.png

2.2空调制解调器仿真

RFCOMM是基于GSM07.10的。当涉及到非数据电路的状态传输时,GSM07.10并不区分DTE和DCE设备。RS-232控制信号以DTE/DCE的形式发送,见表2.2。

image.png

表2.2


GSM07.10传输RS-232控制信号的方式在两个相同类型的设备连接在一起时创建一个隐式空调制解调器。图2.1显示了当两个DTE通过RFCOMM连接时创建的空调制解调器。没有一种空调制解调器电缆接线方案可以在所有情况下工作;但是,RFCOMM中提供的空调制解调器方案在大多数情况下都可以工作。

image.png


图2.1 RFCOMMDTE-DTE空调制解调器仿真


2.3 多个仿真串行端口

2.3.1两个设备之间的多个模拟串行端口

两个在通信中使用RFCOMM的蓝牙设备可能会打开多个模拟串行端口。RFCOMM支持最多60个开放的模拟端口;但是,设备中可使用的端口数量是特定于实现的。


数据链路连接标识符(DLCI)GSM07.10标识客户机和服务器应用程序之间正在进行的连接。DLCI用6位表示,但其可用值范围为2..61;在GSM07.10中,DLCI0为专用控制通道,由于服务器通道的概念,DLCI1不可用,保留DLCIs62-63。该DLCI在两个设备之间的一个RFCOMM会话中是唯一的。(这在2.3.2节中进一步解释)为了解释客户端和服务器应用程序都可能驻留在RFCOMM会话的两侧,两边的客户端使连接彼此独立,DLCI值空间被分割在两个通信设备之间使用RFCOMM服务器通道的概念。这在5.4中进一步描述:RFCOMM服务器通道的DLCI分配。


image.png

图2.2:多个模拟的串行端口。


2.3.2 有多个仿真串行端口和多个蓝牙设备

如果蓝牙设备支持多个模拟串行端口,并且允许连接在不同的蓝牙设备中具有端点,那么RFCOMM实体必须能够运行多个GSM07.10多路复用器会话,请参见图2.3。请注意,每个多路复用器会话都在使用它自己的L2CAP通道ID(CID)。对于RFCOMM,运行GSM07.10多路复用器的多个会话的能力是可选的。


image.png

图2.3:模拟来自两个蓝牙设备的串口


目录
相关文章
|
测试技术 数据安全/隐私保护
软件测试制度-新手小白如何制定测试管理工作规范?
软件测试制度-新手小白如何制定测试管理工作规范?
439 1
蓝牙核心规范(V5.3)-深入详解之SCO和eSCO的异同
蓝牙核心规范(V5.3)-深入详解之SCO和eSCO的异同
2560 0
蓝牙核心规范(V5.3)-深入详解之SCO和eSCO的异同
|
编解码 安全 Android开发
低功耗蓝牙LE Audio Profile 详细介绍
2019年底,蓝牙官方组织SIG发布了蓝牙5.2版本的核心协议,其中增加了一个重要的特性---LE Audio。蓝牙的应用协议都是从应用层到物理层完整包含的协议,LE Audio也不例外。但蓝牙5.2核心协议仅仅定义了蓝牙LE的链路层传输Audio的方式,上层协议以及完整的LE Audio规范迟迟未出,近日,蓝牙官方组织释放了LE Audio较为完整的规范文档。
低功耗蓝牙LE Audio Profile 详细介绍
|
存储 缓存 自然语言处理
ElasticSearch原理篇
介绍ElasticSearch的原理、集群等
5959 0
ElasticSearch原理篇
|
10月前
|
机器学习/深度学习 数据采集 算法
机器学习在医疗诊断中的前沿应用,包括神经网络、决策树和支持向量机等方法,及其在医学影像、疾病预测和基因数据分析中的具体应用
医疗诊断是医学的核心,其准确性和效率至关重要。本文探讨了机器学习在医疗诊断中的前沿应用,包括神经网络、决策树和支持向量机等方法,及其在医学影像、疾病预测和基因数据分析中的具体应用。文章还讨论了Python在构建机器学习模型中的作用,面临的挑战及应对策略,并展望了未来的发展趋势。
661 1
|
1月前
|
弹性计算 人工智能 边缘计算
阿里云国际站2025年最新动态:全球云计算加速,中小企业出海利器
2025年,阿里云国际站凭借领先技术与本地化服务,助力企业高效出海。核心产品如弹性计算ECS Enterprise、云原生数据库PolarDB-X及边缘计算ENS Pro全面升级,覆盖全球28个区域,提供低延迟、高稳定性支持。同时推出“海外现货”模式,缩短外贸订单周期50%。通过技术+生态优势,助力中小企业实现全球化增长。
|
8月前
|
存储 安全 数据管理
区块链在医疗数据管理中的应用:安全与隐私的新纪元
区块链在医疗数据管理中的应用:安全与隐私的新纪元
648 16
|
编解码
【经典蓝牙】蓝牙AVRCP协议分析
蓝牙AVRCP协议是蓝牙设备之间音视频的控制协议。定义了音频/视频的控制、浏览、查询、通知等一系列的命令集。常用来蓝牙耳机对手机的音乐进行控制,以及获取手机的音乐信息等场景。AVRCP协议有两个角色,分别是controller(CT)和 target(TG)。CT: 发送控制命令到对端,控制对端媒体播放器的设备,例如蓝牙耳机,蓝牙遥控器等。TG:接收对端的控制命令,并执行操作,进行回复的设备,例如手机,电脑等。
4104 0
【经典蓝牙】蓝牙AVRCP协议分析
|
传感器 物联网 芯片
低功耗蓝牙(BLE) 和 经典蓝牙(SPP) 的区别
如何选择适合的蓝牙协议以实现最佳的无线通信效果。
1088 0
|
物联网 UED
【BLE】蓝牙BLE传输到底有多快?
我们在开发蓝牙产品的时候,经常会被问到,这个文件传输用蓝牙可以做吗?多长时间可以传完?蓝牙的传输速率是多大?很多人对蓝牙的传输速率可能只有一个大概的概念几KB?几十KB?下面就来看一下蓝牙的传输速率到底有多快?众所周知,对于无线连接,链路维护和数据包冗余会产生一定的传输成本,以保持蓝牙连接的健壮和高效。因此,连接的低功耗蓝牙数据吞吐量的公式为:使用这个公式,我们将在建立连接时计算从 4.0 到 5 的数据吞吐量。
1737 0
【BLE】蓝牙BLE传输到底有多快?