下表列出蓝牙协议中从L2CAP到物理层的命令和事件映射。希望这个列表可以帮助你分析蓝牙协议中从协议高层发给较低层次的控制命令和消息命令。我们还会通过讲解一个示例来具体地说明协议高层收到连接请求时的情况。
L2CAP
|
HCI
|
LMP/BASEBAND
|
连接和不连接
|
L2CAP_ConnectReq
L2CAP_ConnectRsp
L2CAP_ConnectRspPnd
L2CAP_ConnectRspNeg
LP_ConnectReq
LP_ConnectRsp
LP_ConnectRspNeg
LP_ConnectCfm
LP_ConnectCfmNeg
LP_ConnectInd
L2CA_ConnectInd
L2CA_ConnectCfm
L2CA_ConnectCfmNeg
L2CA_ConnectPnd
L2CA_ConnectReq
L2CA_ConnectRsp
L2CA_ConnectRspNeg
|
HCI_Create_Connection
HCI_Accept_Connection_Request
HCI_Reject_Connection_Request
HCI_Add_SCO_Connection
HCI_Read_Connection_Accept_Timeout
HCI_Write_Connection_Accept_Timeout
|
LMP_host_connection_req
LMP_setup_complete
LMP_SCO_link_req
|
L2CAP_DisconnectReq
L2CAP_DisconnectRsp
LP_DisconnectInd
L2CA_DisconnectReq
L2CA_DisconnectRsp
L2CA_DisconnectInd
L2CA_DisconnectCfm
|
HCI_Disconnect
|
LMP_detach
LMP_remove_SCO_link_req
|
安全
|
L2CAP层不安全
|
HCI_Authentication_Requested
HCI_Set_Connection_Encryption
HCI_Change_Connection_Link_Key
HCI_Master_Link_Key
HCI_PIN_Code_Request_Reply
HCI_PIN_Code_Request_Negative_Reply
HCI_Link_Key_Request_Reply
HCI_Link_Key_Request_Negative_Reply
HCI_Read_Pin_Type
HCI_Write_Pin_Type
HCI_Create_New_Unit_Key
HCI_Read_Stored_Link_Key
HCI_Write_Stored_Link_Key
HCI_Delete_Stored_Link_Key
HCI_Read_Authentication_Enable
HCI_Write_Authentication_Enable
HCI_Read_Encryption_Mode
HCI_Write_Encryption_Mode
|
LMP_au_rand
LMP_in_rand
LMP_temp_rand
LMP_temp_key
LMP_comb_key
LMP_unit_key
LMP_sres
LMP_start_encryption_req
LMP_stop_encryption_req
LMP_encryption_mode_req
LMP_encryption_key_size_req
LMP_use_semi_permanent_key
|
模式处理
|
L2CAP层不进行模式处理
|
HCI_Hold_Mode
HCI_Sniff_Mode
HCI_Exit_Sniff_Mode
HCI_Park_Mode
HCI_Exit_Park_Mode
HCI_Read_Hold_Mode_Activity
HCI_Write_Hold_Mode_Activity
|
LMP_hold
LMP_hold_req
LMP_sniff
LMP_sniff_req
LMP_unsniff_req
LMP_park_req
LMP_park
LMP_set_broadcast_scan_window
LMP_modify_beacon
LMP_unpark_PM_ADDR_req
LMP_unpark_BD_ADDR_req
|
连接子状态
|
L2CAP不进行连接子状态处理
|
HCI_Inquiry
HCI_Inquiry_Cancel
HCI_Periodic_Inquiry_Mode
HCI_Exit_Periodic_Inquiry_Mode
HCI_Read_Page_Timeout
HCI_Write_Page_Timeout
HCI_Read_Scan_Enable
HCI_Write_Scan_Enable
HCI_Read_Page_Scan_Activity
HCI_Write_Page_Scan_Activity
HCI_Read_Inquiry_Scan_Activity
HCI_Write_Inquiry_Scan_Activity
HCI_Read_Page_Scan_Mode
HCI_Write_Page_Scan_Mode
HCI_Read_Page_Scan_Period_Mode
HCI_Write_Page_Scan_Period_Mode
HCI_Read_Num_Broadcast_Retransmissions
HCI_Write_Num_Broadcast_Retransmissions
|
LMP_page_mode_req
LMP_page_scan_mode_req
|
QoS和流控
|
LP_QoSReq
LP_QoSCfm
LP_QoSCfmNeg
LP_QoSViolationInd
L2CA_QoSViolationInd
|
HCI_QoS_Setup
HCI_Read_SCO_Flow_Control_Enable
HCI_Write_SCO_Flow_Control_Enable
HCI_Set_Host_Controller_To_Host_Flow_Control
HCI_Get_Link_Quality
|
LMP_quality_of_service
LMP_quality_of_service_req
LMP_auto_rate
LMP_preferred_rate
|
其他
|
L2CAP_Data
L2CAP_ConfigReq
L2CAP_ConfigRsp
L2CAP_ConfigRspNeg
L2CA_ConfigReq
L2CA_ConfigRsp
L2CA_ConfigRspNeg
L2CA_ConfigInd
L2CA_ConfigCfm
L2CA_ConfigCfmNeg
L2CA_TimeOutInd
L2CA_DataRead
L2CA_DataWrite
|
HCI_Change_Connection_Packet_Type
HCI_Remote_Name_Requested
HCI_Read_Remote_Supported_Features
HCI_Read_Remote_Version_Information
HCI_Read_Local_Version_Information
HCI_Local_Supported_Features
HCI_Read_Clock_Offset
HCI_Role_Discovery
HCI_Switch_Role
HCI_Read_Link_Policy_Settings
HCI_Write_Link_Policy_Settings
HCI_Read_Buffer_Size
HCI_Host_Buffer_Size
HCI_Read_Country_Code
HCI_BD_ADDR
HCI_Read_Current_IAC_LAP
HCI_Write_Current_IAC_LAP
HCI_Read_Number_Of_Supported_IAC
HCI_Read_Class_Of_Device
HCI_Write_Class_Of_Device
HCI_Read_Voice_Setting
HCI_Write_Voice_Setting
HCI_Read_Automatic_Flush_Timeout
HCI_Write_Automatic_Flush_Timeout
HCI_Read_Supervision_Timeout
HCI_Read_Link_Supervision_Timeout
HCI_Write_Link_Supervision_Timeout
HCI_Read_Transmit_Power_Level
HCI_Change_Local_Name
HCI_Read_Local_Name
HCI_Set_Event_Mask
HCI_Set_Event_Filter
HCI_Flush
HCI_Reset
HCI_Host_Number_Of_Completed_Packets
|
LMP_name_req
LMP_name_res
LMP_accpted
LMP_not_accepted
LMP_switch_req
LMP_version_req
LMP_version_res
LMP_clkoffset_req
LMP_clkoffset_res
LMP_timing_accuracy_req
LMP_timing_accuracy_res
LMP_max_power
LMP_min_power
LMP_incr_power_req
LMP_decr_power_req
LMP_slot_offset
LMP_max_slot
LMP_max_slot_req
LMP_features_req
LMP_features_res
|
事件
HCI事件
|
说明
|
Inquiry Complete Event
|
表示查询已经完成。
|
Inquiry Result Event
|
表示某台蓝牙设备或者多台蓝牙设备在当前查询过程中已经做出响应。
|
Connection Complete Event
|
向形成连接的主机双方指示新连接已经建立。
|
Connection Request Event
|
表示新入站连接正在建立过程中。
|
Disconnection Complete Event
|
在连接被终止后触发。
|
Authentication Complete Event
|
当指定连接的认证过程完成后触发。
|
Remote Name Request Complete Event
|
表示远端名称请求已经完成。
|
Encryption Change Event
|
表示连接句柄(Connection_Handle)的加密变更已经完成。
|
Change Connection Link Key Complete Event
|
表示连接句柄的链路密钥(Link Key)变更已经完成。
|
Master Link Key Complete Event
|
表示蓝牙主机方的临时或者半永久链路密钥的变更已经完成。
|
Read Remote Supported Features Complete Event
|
表示获得远端蓝牙设备所支持特性的链路管理器(Link Manager)过程已经完成。
|
Read Remote Version Information Complete Event
|
表示获得远端蓝牙设备版本信息的链路管理器(Link Manager)过程已经完成。
|
QoS Setup Complete Event
|
表示设置远端蓝牙设备QoS的链路管理器过程已经完成。
|
Command Complete Event
|
主机控制器(Host Controller)使用该事件传递命令的返回状态。
|
Command Status Event
|
表示命令已经收到,主机控制器目前正在执行该命令下达的任务。
|
Hardware Error Event
|
表示蓝牙设备的某种类型硬件出现故障。
|
Flush Occurred Event
|
表示对指定的连接句柄当前被传输的用户数据已经取消。
|
Role Change Event
|
表示和特定连接相关联的当前蓝牙设备的角色已经改变。
|
Number Of Completed Packets Event
|
主机控制器使用该事件向主机表示在前一个Number Of Completed Packets 之后到目前每个Connection Handle 所完成的HCI 数据分组数量。
|
Mode Change Event
|
表示关联连接句柄的设备在Active、Hold、Sniff和Park模式之间发生了变更。
|
Return Link Keys Event
|
用于返回存储的链路秘钥。
|
PIN Code Request Event
|
表示需要PIN码来为某个连接创建新链路秘钥。
|
Link Key Request Event
|
表示以和BD_ADDR指定的设备连接需要一个链路密钥。
|
Link Key Notification Event
|
向主机表示和BD_ADDR指定的设备连接所需要的新链路密钥已经创建。
|
Loopback Command Event
|
回送主机发送给主机控制器的大多数命令。
|
Data Buffer Overflow Event
|
表示主机控制器的数据缓冲已经溢出。
|
Max Slots Change Event
|
在LMP_Max_Slots参数改变的时候通知主机。
|
Read Clock Offset Complete Event
|
表示获得Clock Offset 信息的LM过程已经完成。
|
Connection Packet Type Changed Event
|
表示改变指定连接句柄数据包类型的LM过程已经完成。
|
QoS Violation Event
|
表示LM不能为当前的连接句柄提供所需的QoS。
|
Page Scan Mode Change Event
|
表示已经连接的、具有指定连接句柄的远端蓝牙设备已经成功改变其寻呼扫描模式(Page_Scan_Mode)。
|
Page Scan Repetition Mode Change Event
|
表示已经连接的、具有指定连接句柄的远端蓝牙设备已经成功地改变Page_Scan_Repetition_Mode(SR)。
|