RFCOMM传输协议是在L2CAP之上提供仿真串口。
RFCOMM基于ETSI标准GSM 07.10。
RFCOMM模拟了串行9针RS-232。
RFCOMM支持两个设备间高达60路的通信连接。
Data Link Connection Identifier (DLCI) 6bits (2~61) 0被专用为控制通道,1不能用,62和63被保留。
DLCI 0,作为一个专用的控制通道,支持如下命令:
一个RFCOMM frame包含在各自的L2CAP frame里。
frame check sequence (FCS),对于不同类型的Frame会按不同数据集域来计算:
P/F-Bit
CR Bit
系统参数如下:
DLCI分配RFCOMM server channel:
Server Channel (1~30), 0和31不能用。这个值在SDP中注册。
Flow Control
source code:
system/bt/stack/rfcomm/port_api.cc
void RFCOMM_Init(void)
int RFCOMM_CreateConnection(uint16_t uuid, uint8_t scn, bool is_server,
uint16_t mtu, const RawAddress& bd_addr,
uint16_t* p_handle, tPORT_CALLBACK* p_mgmt_cb)
system/bt/stack/rfcomm/rfc_l2cap_if.cc
void rfcomm_l2cap_if_init(void)
system/bt/stack/rfcomm/rfc_ts_frames.cc
void rfc_send_sabme(tRFC_MCB* p_mcb, uint8_t dlci)