(1)帧类型
RFCOMM支持的帧类型包括:
·异步平衡模式(SQBM)指令设置
·未加标记确认(UA)响应
·断开连接模式(DM)响应
·带头校验的未加标记指令和响应
RFCOMM不支持“未加标记信息(UI)指令和应答”,因为
RFCOMM中不使用
TS07.10协议的纠错模式,故不支持任何联合帧类型。
(2)指令集
以下是
RFCOMM支持的TS07.10指令:
·测试指令(Test)
·启动流控指令(Fcon)
·关闭流控指令(Fcoff)
·调制解调器状态指令(MSC)
·远端端口协商指令(RPN)
·远端通路状态(RLS)
·DLC参数协商(PN)
·对不支持的指令的响应(NSC)
一旦接收到不支持的指令类型,NSC帧就作为响应信息发出。
(3)连接建立和终止
RFCOMM不支持TS07.10的连接管理功能,因为蓝牙通信在RFCOMM所使用的传
输协议层中有自己的连接管理。在蓝牙规范中详细介绍了RFCOMM连接的管理。
两个设备之间只允许同时存在一个RFCOMM会话。当建立一个新的DLC链路时,
如果已经存在一个RFCOMM会话,则应检查连接发起的一方,然后在此RFCOMM会话
上建立新的DLC。一个会话由两个通信终端的蓝牙BD—ADDR唯一标识。
用
RFCOMM服务接口登记的服务器应用被分配的服务通道数是1~30之间(在
TS07.10中0和31为相应的DLCI保留,故不能使用)。被分配的服务通道数应该在服
务发现数据库中登记。
对于
RFCOMM会话,发起设备方向位被设置成D=1,对方设备D=0。当在已有的
RFCOMM会话上建立一个新的数据链路连接时,方向位用于与服务器通道连接,以确定
其DLCI,从而连接到一个特殊的应用上。此后,这个DLCI就在两个端点之间的两个方
向的所有分组中使用。
DLCI值域被分为两部分,非发起方设备上的应用,使用DLCI的偶数号(2,4,…,
60)来获取,发起方设备上的应用,使用DLCI奇数号(3,5,…,61)来获取。对于一个支
持多路同步的RFCOMM会话的设备来说,方向位不一定在所有会话中都相同。一个在
已有会话上建立新DLC的RFCOMM实体,将其他设备应用使用的服务器通道和该会话
方向位的相反值结合为DLCI。RFCOMM中DLCll和62~63被保留,不使用。