设为首页 加入收藏

TOP

RFCOMM(二)
2023-07-23 13:26:57 】 浏览:72
Tags:RFCOMM

DV

DCD

表2.2 GSM 07.10 串行端口控制信号

两个相同类型的设备连接在一起时,GSM 07.10会通过创建一个隐式的null modem的方式去传输RS-232控制信号。图2.1展示了当两个DTE通过RFCOMM连接在一起所创建的null modem。没有单一的null-modem 布线方案适合所有情况,而RFCOMM中提供的null modem方案在大多数情况下都适用。

图2.1 RFCOMM DTE-DTE null-modem模拟

多模拟串口

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

使用RFCOMM通信的两个Bluetooth设备之间可能会开启多个模拟串行端口。RFCOMM支持多达60个开放的模拟端口,然而一个设备中可以使用的端口数量与具体实现相关。

数据链路连接标识(DLCI) GSM 07.10标识客户端和服务器应用程序之间的持续性连接。DLCI由6bit表示,但是其可用范围为2~61,在GSM07.10中,DLCI 0是专用控制信道,由于服务器通道的概念,DLCI 1不可使用,DLCIs 62-63保留使用。 DLCI在两个设备之间的一个RFCOMM会话中是唯一的(这会在2.3.2节中进一步解释)。为了说明客户端和服务器应用程序都可以驻留在RFCOMM会话的两端,并且任一端的客户请求连接都是相互独立的, DLCI value space 被划分开来,在两个通信设备之间使用RFCOMM服务器通道概念。这将会在5.4章节中进一步描述:RFCOMM服务器通道的分配。

图2.2 两个蓝牙设备的模拟串行端口

多模拟串口和多Bluetooth设备

如果Bluetooth设备支持多个模拟端口,并且允许连接在不同Bluetooth设备中拥有端点,则RFCOMM实体必须能够允许多个GSM 07.10多路复用器会话,见图2.3。注意每个多路复用器会话使用自己的L2CAP通道ID(CID)。RFCOMM可选择运行GSM 07.10多路复用器的多个会话。

图2.3 多模拟端口

服务接口描述

RFCOMM是一个用于模拟串行端口的协议。大多数系统中,RFCOMM是包含串行端口模拟实体的端口驱动的一部分。

服务定义模型

图3.1展示了RFCOMM如何适应典型系统的模型。此图表示RFCOMM的参考模型。

图3.1 RFCOMM参考模型

RFCOMM参考模型的元素描述如下:

Element

Description

Application

使用串行端口通信接口的应用程序

Port Emulation Entity

端口仿真实体将系统特定的通信接口(API)映射到RFCOMM服务。端口仿真实体加上RFCOMM构成端口驱动程序。

RFCOMM

通过L2CAP通道提供一个透明数据流和控制通道。多路复用器模拟多个串行端口。

Service Registration/Discovery

服务应用程序在本地设备上注册,它为客户端应用程序提供服务,以此发现如何访问其他设备上的服务程序。

L2CAP

协议复用SAR

Baseband

Bluetooth规范定义的基带协议

RFCOMM支持的GSM 07.10子集

Options and Modes

RFCOMM使用GSM 07.10基础选项。

Frame Types

表4.1展示了RFCOMM支持的GSM 07.10 frame类型

Frame类型

Set Asynchronous Balanced Mode (SABM)命令

Unnumbered Acknowledgement (UA)响应

Disconnected Mode (DM)响应

Disconnect (DISC) 命令

Unnumbered information with header check (UIH)命令和响应

图4.1 RFCOMM支持的frame类型

RFCOMM不支持Unnumbered Information (UI)命令和响应。因此GSM 07.10协议的错误恢复模式选项在RFCOMM中没有使用,相关的frame类型也不支持。

Commands

GSM 07.10定义了一个具有专用控制通道DLCI 0的多路复用器。控制通道用于在两个多路复用器之间传输信息。下面是RFCOMM支持的GSM 07.10命令:

Supported Control Channel Commands

Test Command (Test)

Flow Control on Command (Fcon)

Flow Control off Command (Fcoff)

Modem Status Command (MSC)

Remote Port Negotiation Command (RPN)

Remote Line Status (RLS)

DLC parameter negotiation (PN)

Non Surpported Command Response (NSC)

每当收到一个non-surpported命令类型时,应该发送一个Non-Surpported命令响应(NSC)。

Convergence Layers

RFCOMM只支持GSM 07.10中的第一类汇聚层。

调制解调器状态命令(MSC)应用于传输所有模拟串行端口的RS-232控制信号和中断信号。

GSM 07.10对于RFCOMM的适配

Media Adaptation

RFCOMM中不适用GSM 07.10基本选项frame中的打开和关闭标志。相反,标志之间包含的字段才在L2CAP和RFCOMM之间交换,见5.1。

每个L2CAP frame始终只包含一个RFCOMM frame。

图5.1基础选项的frame结构

注意,来自GSM 07.10开启关闭标志是被排除在RFCOMM之外的。

FCS calculation

GSM 07.10中,针对不同的frame类型,在不同字段集上计算frame检测序列(FCS)。这些是FCS计算依据的字段:

  • 对于SABM,DISC,UA,DM frames: Address, Control和Length字段
  • 对于UIH frames: Address和control字段

(这是为了澄清,并为RFCOMM制定标准,FCS计算包含字段在GSM 7.0.0到GSM 07.10中实际发生了变化,但是RFCOMM不会改变上述的FCS计算方案)。

P/F-Bit

控制字段中(见图5.1),有一个bit叫做P/F-bit。该bit的一般功能在GSM 07.10[1] 5.4.4节中进行了说明。此外,GSM 07.10[1] 5.4.3.1节中进一步阐明了UIH frame中P/F位的使用值。这些规则适用于不使用基于信用的flow control方案的RFCOMM会话,无需改进。

然而,当基于信用的flow control使用时,P/F-bit的意义在UIH被重新定义了。与图5.1相比较,这还涉及了对框架的重新定义。更多细节参阅DLC Op。

CR Bit

在GSM 07.10中,有两个不同的C/R-bit,一个在frame级(frame header的address字段),另外一个在message级(多路复用器控制通道发送命令的command type字段)。Frame级的C/R bit与message级的C/R bit

首页 上一页 1 2 3 4 5 6 下一页 尾页 2/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇海思机顶盒Hi3798使用Hitool和TTL.. 下一篇MIPI扫盲——D-PHY介绍

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目