蓝牙—RFCOMM协议
RFCOMM是一个简单的协议,其中针对9针RS-232串口仿真附加了部分条款.可支持在两个蓝牙设备之间同时保持高达60路的通信连接.RFCOMM的目的是针对如何在两个不同设备上的应用之间保证一条完整的通信路径。
1.RFCOMM服务概述
RFCOMM仿真RS232串口,该仿真过程包括非数据通路状态的传输。RFCOMM不限制人工速率或步长,如果通信链路两端的设备都是负责将数据转发到其他通信介质的第二类设备,或在两端RFCOMM设备接口上进行数据传输,实际数据吞吐一般将反映波特率的设置.RFCOMM支持两个设备之间的多串口仿真,也支持多个设备多串口的仿真.
1.1 RS232控制信令
RFCOMM提供针对9针RS-232接口的仿真.

1.2 空MODEM仿真
RFCOMM基于TS 07.10,当设备准备传输非数据通路的状态信息时,TS07.10不区分DTE和DCE设备,而是通过RS232控制信号来表示DTE/DCE各自的信号.如下表反映其映射关系.
当两同类设备互联时,TS07.10传输RS232控制信号的方式就会创建空MODEM,

1.3 多串口仿真
1.两设备间的多串口仿真
两个采用RFCOMM进行通信的BT设备可以同时打开多个串口,最多60个,但是一个设备打开端口数根据实际实现而不同.
一个数据链接标识(DLCI)唯一标识对客户和服务器之间的持续连接.DLCI长度为6bit,可用值区间为2~61.TS07.10中,DLCI 0 为控制信道,DLCI 1根据服务器信道概念不能使用,DLCI 62-63保留使用,DLCI在两个设备间的RFCOMM会话中保持一致.
在一次RFCOMM会话中,客户和服务器应用可以分布在通信的两端,每一段的客户都可以独立发起建立通信连接。因此RFCOMM服务器信道的概念将DLCI值域空间在两个正在进行通信的设备间进行划分。
2.多仿真串口和多BT设备.
如果BT设备支持多串口仿真,通信连接两端允许使用不同BT设备,那么RFCOMM实体必须能够运行多个TS07.10多路复用器会话,每一多路复用器都是用其L2CAP信道ID(CID)。RFCOMM可以选择支持TS07.10多路复用器的多个会话.
2. 服务接口描述
RFCOMM目的在于定义一个能够利用仿真串口的协议。

3.采用TS07.10子集和TS07.10的修正后的RFCOMM
3.1 RFCOMM的帧结构
RFCOMM不使用TS07.10基本帧格式中的开始和结束标志,而仅适用包含在L2CAP层和RFCOMM层间交换标志的那些域。

1.地址字段(Address Field)
地址字段占一个字节,它包括DLCI(Data Link connection identifier,数据链路链接标识),C/R位和地址字段扩展位(EA),其中在DLCI(第三位到第八位)中D位表示方向.
对于一次RFCOMM会话,发起方设备方向位(Direction bit)设为D=1(相反则D=0),当在已有的RFCOMM会话上建立一条新的数据链接时,方向位用于服务器端通道相关,以确定其DLCI,从而建立到特定应用的连接.连接建立后,DLCI就在两端间的两个方向上传输数据分组.DLCI值域实际上分为两部分,非发起方设备上的应用使用DLCI偶数号访问,发起方设备上的应用则使用DLCI奇数号,对于一个支持多路同步RFCOMM会话的设备,方向位不一定在所有会话中都一致.
一个在已有会话上建立新的DLC的RFCOMM实体,将其他设备使用的服务器通道和该会话方向位的求反值组合为DLCI。
DLCI不仅是标志着个人用户信息流,而且标志着连接着TE和MS之间的链路。DLC是动态分配的.
DLC0用于控制信道.
C/R(Command/Response)位表示的是此帧是一个命令还是一个响应.和HDLC规则一样,命令帧包含数据链路连接的地址是目的地的地址,而应答帧包含的是应答方的地址,对于给定的DLCI,命令和应答的地址字段的DLCI值是一样的,就是C/R位不同.
2.控制字段(Control Field)

4. 流控制
RFCOMM协议提供两类流控制协议:
<1>RFCOMM协议定义了能对两RFCOMM实体之间全部数据流操作的流控制指令,对所有的DLCI都起作用.
<2>调制解调器状态指令实质就是可操作单个DLCI的流控制机制.
端口仿真实体将系统指定通信端口映射与RFCOMM服务,端口代理实体将数据从RFCOMM转发至连接DCE设备的外部RS232接口,RS232接口的通信参数根据接受的RPN指令进行设置.
蓝牙—RFCOMM协议的更多相关文章
- python绝技 — 扫描蓝牙RFCOMM信道
RFCOMM协议 RFCOMM通过蓝牙L2CAP协议模拟了RS232串口.这会与另一台设备建立一个蓝牙连接,模拟一条普通的串行线缆,使用户能够用其他设备控制这一台设备,通过蓝牙打电话,发短信,读取手机 ...
- 蓝牙 BLE 协议学习: 000-有关概念介绍
背景 在学校内就用过蓝牙技术参加过比赛(并拿了奖):而蓝牙作为物联网中比较常见的协议,有必要进行深入的学习.此后的文章会以 ble(v4.0) 进行学习. 介绍 蓝牙技术最初由电信巨头爱立信公司于 1 ...
- 蓝牙RFCOMM通信
最近需要在某个开发板上面通过蓝牙和手机蓝牙连接,并通过RFCOMM通信.还没有做过蓝牙RFCOMM相关工作,因此先在linux PC上面调试一下流程,并在此记录调试过程. 一.说明 RFCOMM协议基 ...
- 玩转BLE(3)_使用微信蓝牙精简协议伪造记步数据
1. 前言 在物联网时代,有一个问题肯定会让人头疼(现在已经初露端倪了): 物联网中的IOT设备有两个主要特点: 1)简单小巧(不具备复杂的人机交互接口,需要手机等终端设备辅助完成配置.控制等功能). ...
- 蓝牙HID协议笔记【转】
蓝牙HID协议笔记 转自:http://blog.sina.com.cn/s/blog_69b5d2a50101emll.html 1.概述 The Human Interface Devic ...
- 蓝牙spp协议分析
基本概念 蓝牙串口是基于 SPP 协议(Serial Port Profile),能在蓝牙设备之间创建串口进行数据传输的一种设备. 蓝牙串口的目的是针对如何在两个不同设备(通信的两端)上的应用之间保证 ...
- [蓝牙] 2、蓝牙BLE协议及架构浅析&&基于广播超时待机说广播事件
第一章 BLE基本概念了解 一.蓝牙4.0和BLE区别 蓝牙4.0是一种应用非常广泛.基于2.4G射频的低功耗无线通讯技术.蓝牙低功耗(Bluetooth Low Energy ),人们又常称之为 ...
- 蓝牙HID协议笔记
1.概述 The Human Interface Device (HID)定义了蓝牙在人机接口设备中的协议.特征和使用规程.典型的应用包括蓝牙鼠标.蓝牙键盘.蓝牙游戏手柄等.该协议改编自USB ...
- android 蓝牙SPP协议通信
准备 1.蓝牙串行端口基于SPP协议(Serial Port Profile),能在蓝牙设备之间创建串口进行数据传输 2.SPP的UUID:00001101-0000-1000-8000-00805F ...
随机推荐
- iOS 常用控件 参数
1.StatusBar 20px 2.TableViewCell 44px 3.TabBar 49px 4.NavigationBar 44px 5.NaviBarIcon 20*20px 6.Tab ...
- wordpress安装步骤
步骤1.因为安装Wordpress需要用到Apache和Mysql数据库,可以选择单独安装这两个软件,但配置参数设置起来可能会遇到一些困扰,建议大家下载现成的PHP和Mysql的集成安装包,比如XAM ...
- SQL SERVER获取数据库中所有表名 XTYPE类型
SELECT (case when a.colorder=1 then d.name else null end) 表名, a.colorder 字段序号,a.name 字段名, (case whe ...
- PLSQL Developer 不能连接 oracle 11g 64位 的解决办法
http://blog.itpub.net/14184018/viewspace-760730 http://www.cnblogs.com/gulvzhe/archive/2012/08/27/26 ...
- Java NIO之缓冲区Buffer
Java NIO的核心部件: Buffer Channel Selector Buffer 是一个数组,但具有内部状态.如下4个索引: capacity:总容量 position:下一个要读取/写入的 ...
- hdu 2160 母猪的故事
Problem Description 话说现在猪肉价格这么贵,著名的ACBoy 0068 也开始了养猪生活.说来也奇怪,他养的猪一出生第二天开始就能每天中午生一只小猪,而且生下来的竟然都是母猪.不过 ...
- Android 插件开发,做成动态加载
为什么需要插件开发: 相信你对Android方法数不能超过65K的限制应该有所耳闻,随着应用程序功能不断的丰富,总有一天你会遇到一个异常: Conversion to Dalvik format fa ...
- NOIp 2013 #2 花匠 Label:爆0的Water
题目描述 花匠栋栋种了一排花,每株花都有自己的高度.花儿越长越大,也越来越挤.栋栋决定 把这排中的一部分花移走,将剩下的留在原地,使得剩下的花能有空间长大,同时,栋栋希 望剩下的花排列得比较别致. 具 ...
- 【ZOJ】1015 Fishing Net
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1015 题意:给出一个n个点的无向图,询问是否为弦图,弦图定义为对于图中任意 ...
- 使用jQuery 的.on() 提交表单
示例: $(function () { $(document).on('submit', '#FormId', function () { var val = $("#Name") ...