L2CAP接口介绍和运用

2024-10-14 FEASYCOM官网
蓝牙模块,FEASYCOM 蓝牙模块,FEASYCOM 蓝牙模块,FEASYCOM 蓝牙模块,FEASYCOM

一:介绍

L2CAP -全称: Logical Link Control and Adaptation Protocol,L2CAP协议支持更高级别的协议复用和报文分片。它为RFCOMM和BNEP协议提供了基础。对于BTstack官方支持的所有配置文件,不需要直接使用L2CAP。但是,对于自定义协议的测试或开发,能够访问和提供L2CAP服务是很有帮助的。


二:访问远端设备上的L2CAP服务要求 


L2CAP基于通道的概念:

信道是在基带连接之上的逻辑连接。每个通道以多对一的方式绑定到单个协议。一个通道可以绑定多个协议,但一个通道不能绑定多个协议。多个通道可以共享同一个基带连接。 为了与远端设备上的L2CAP服务通信,本地蓝牙设备上的应用程序使用l2cap_init函数初始化L2CAP层,然后使用l2cap_create_channel函数创建一个到远端设备PSM的出站L2CAP通道。l2cap_create_channel函数将初始化一个新的基带连接,如果它还不存在的话。作为L2CAP创建通道函数的输入参数给出的数据包处理程序将被分配给新的出站L2CAP通道。这个处理程序接收L2CAP_EVENT_CHANNEL_OPENED和L2CAP_EVENT_CHANNEL_CLOSED事件和L2CAP数据包,如下面的清单所示。

图 1

三:提供L2CAP服务要求

为了提供L2CAP服务,本地蓝牙设备上的应用程序必须初始化L2CAP层并通过l2cap_register_service注册服务。从那里开始,它可以等待进入的L2CAP连接。应用程序可以通过分别调用l2cap_accept_connection和l2cap_deny_connection函数来接受或拒绝传入的连接。 如果一个连接被接受并且进入的L2CAP通道成功打开,L2CAP服务可以使用l2cap_send向被连接的设备发送和接收L2CAP数据包。 下面的清单提供了L2CAP服务示例代码。

图 2

四:发送L2CAP数据要求

由于BTstack内部出包缓冲区已满,或者蓝牙模块中的ACL缓冲区已满,也就是说,如果应用程序发送的速度超过了可以通过空气传输的数据包,则L2CAP数据包的发送可能会失败。而不是直接调用l2cap_send,建议调用l2cap_request_can_send_now_event(cahnnel_id),它将尽快触发L2CAP_EVENT_CAN_SEND_NOW。在l2cap_request_can_send_now_event函数返回之前,可能会通过包处理程序接收到事件。L2CAP_EVENT_CAN_SEND_NOW表示可以发送的通道ID。


请注意,数据包可以发送的保证只有在事件被接收时才有效。从包处理程序返回后,BTstack可能需要发送自己。


五:LE数据通道

LE数据通道的全称实际上是具有LE基于信用的流量控制模式的面向连接的LE通道。在这种模式下,数据以sdu (Service data unit)的形式发送,sdu的大小可以大于单个HCI LE ACL报文。


LE数据通道类似于经典L2CAP通道,但也提供了类似于RFCOMM通道的基于信用的流量控制。除非使用蓝牙Core 4.2规范的LE数据包扩展,否则LE ACL报文的最大数据包大小为27字节。为了发送更大的报文,每个报文将被分成多个ACL LE报文,在接收端重新组合。 由于多个sdu可以同时传输,并且各个ACL LE数据包可以交错发送,因此BTstack需要每个通道都有一个专用的接收缓冲区,在创建或接受通道时必须通过该缓冲区。类似地,当发送sdu时,提供给l2cap_cbm_send_data的数据必须保持有效,直到收到L2CAP_EVENT_LE_PACKET_SENT。 在创建传出连接或接受传入连接时,initial_credits允许向远程端提供固定数量的信用。可以随时使用l2cap_cbm_provide_credits提供更多的积分。


如果使用L2CAP_LE_AUTOMATIC_CREDITS, BTstack会根据需要自动提供积分——为了方便,有效地交换了流量控制功能。 API的其余部分与L2CAP类似:

●L2cap_cbm_register_service和l2cap_cbm_unregister_service用于管理本地服务。

●L2cap_cbm_accept_connection和l2cap_cbm_decline_connection用于接受或拒绝传入的连接请求。

●L2cap_cbm_create_channel创建一个outgoing连接。

●L2cap_cbm_can_send_now检查一个数据包现在是否可以被调度传输。

●l2cap_cbm_request_can_send_now_event请求L2CAP_EVENT_LE_CAN_SEND_NOW事件。

●L2cap_cbm_disconnect关闭连接。


六:RFCOMM——无线电频率通信协议

射频通信(RFCOMM)协议通过L2CAP协议和重组提供了串行端口的仿真。它是串行端口配置文件和其他用于电信的配置文件的基础,如耳机配置文件、免提配置文件、对象交换(OBEX)等。


七:无RFCOMM报文边界

由于RFCOMM仿真了一个串行端口,它不保存包边界。在大多数操作系统中,RFCOMM / SPP将被建模为允许编写块字节的管道。操作系统和蓝牙堆栈可以自由地缓冲和屏蔽这些数据,以任何方式看起来都是合适的。在BTstack应用程序中,因此您将按照同样的顺序接收这些数据,但是没有任何保证可以将其分割成多个块。如果您需要保留发送一个特定大小的包的概念,最简单的方法是用2或4字节长的字段来前缀数据,然后在接收方上重建数据包。请注意,由于BTstack的“no buffer”策略,BTstack将立即发送退出的RFCOMM数据,并隐式地保存包边界,即。它将将数据作为单个RFCOMM包中的单个RFCOMM包发送到一个单一的L2CAP包中,它将会在一段时间内到达。虽然这将在两个BTstack实例之间保持,但依赖实现细节并不像描述的数据一样,这不是一个好想法。


八:RFCOMM流控制

RFCOMM具有强制性的基于信用的流量控制。这意味着建立RFCOMM连接的两个设备使用积分来跟踪可以向每个设备发送多少RFCOMM数据包。如果设备没有剩余的(传出)积分,则无法再发送RFCOMM报文,必须暂停传输。在建立连接期间,提供初始学分。BTstack跟踪两个方向的积分数量。如果没有可用的信用额度,RFCOMM发送函数将返回一个错误,您可以稍后再尝试。对于传入数据,BTstack通过不同的功能分别创建/注册具有和不具有自动信用管理的通道和服务。如果信用管理是自动的,则在需要时根据ACL流控制提供新的信用——这只在传输的数据不多和/或只使用一个物理连接时才有用。如果积分管理是手动的,则由应用程序提供积分,以便它可以显式地管理其接收缓冲区。


九:访问远端设备上的RFCOMM服务

为了与远程设备上的RFCOMM服务通信,本地蓝牙设备上的应用程序使用rfcomm_init函数初始化RFCOMM层,然后使用rfcomm_create_channel函数创建一个到远程设备上给定服务器通道的出站RFCOMM通道。如果RFCOMM多路复用器不存在,rfcomm_create_channel函数将为RFCOMM多路复用器发起一个新的L2CAP连接。信道将自动向远端提供足够的信用。要手动提供信用,您必须通过调用rfcomm_create_channel_with_initial_credits创建RFCOMM连接——参见手动信用分配一节。 作为RFCOMM创建通道函数的输入参数给出的数据包处理程序将被分配给新的传出通道。这个处理程序接收RFCOMM_EVENT_CHANNEL_OPENED和RFCOMM_EVENT_CHANNEL_CLOSED事件,以及RFCOMM数据包,如下面的清单所示。

图 3

十:提供RFCOMM服务

为了提供RFCOMM服务,本地蓝牙设备上的应用程序必须首先初始化L2CAP和RFCOMM层,然后在rfcomm_register_service中注册服务。从那里开始,它可以等待传入的RFCOMM连接。应用程序可以通过分别调用rfcomm_accept_connection和rfcomm_deny_connection函数来接受或拒绝传入的连接。如果一个连接被接受并且传入的RFCOMM通道成功打开,RFCOMM服务可以使用rfcomm_send向连接的设备发送RFCOMM数据包,并通过rfcomm_register_service调用提供的数据包处理程序接收数据包。 下面的清单提供了RFCOMM服务示例代码。

图 4

授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 0

本文由恬淡转载自FEASYCOM官网,原文标题为:L2CAP接口介绍&运用,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

BQB认证中的QD ID和DID有什么区别?

蓝牙认证也称为BQB认证。简而言之,如果您的产品具有蓝牙功能,并且必须在产品外观上标记蓝牙徽标,则它必须通过称为BQB的认证。认证完成后,所有蓝牙SIG成员公司都可以使用蓝牙文字标记和徽标。BQB包括QDID和DID:QDID:合格的设计ID,如果客户正在创建新设计或对已经合格的设计进行修改,SIG将自动分配给他们。如果它是引用列名称,则它引用其他人已经认证的QDID,因此您将没有新的QDID。

技术探讨    发布时间 : 2024-07-24

A2DP蓝牙音频协议介绍

蓝牙高质量音频传输主要基于A2DP配置文件。 A2DP仅定义用于在异步无连接通道上传输高质量音频信息(例如单声道或立体声)的协议和过程。该协议类似于音频数据传输管道。通过蓝牙传输的数据根据其编码格式分为以下几种类型。

技术探讨    发布时间 : 2024-10-14

FEASYCOM蓝牙模块在测量仪表的应用,具有1S广播,13UA的平均功耗,高性价比,认证齐全等特点

用来检测生产过程中各个有关参数的技术工具称为检测仪表,也称测量仪表。是指能正确感受和反映被测量大小的仪表。确定被测变量的量值变化或量值特性、状态、成份的仪表。如传感器和变送器,某些将检测元件和显示仪表直接组合而成的仪表也是检测仪表。工业生产中有压力、流量、温度、液位等物理仪表,有气体分析、水分分析、微量元素分析等分析仪表。

技术探讨    发布时间 : 2024-07-25

飞易通(FEASYCOM)蓝牙模块选型表

提供飞易通低功耗蓝牙模块、蓝牙WiFi二合一模块、音频蓝牙模块的选型参考,接口有UART/UART+SPI/USB+SIOD/PCIE/SDIO/UART+I2S+PCM多种类型,尺寸:10*11.9*2.2mm/16.5*13*1.62mm/26.9*13*2.4mm/13*26.9*2.2mm/12*12*2.4mm/22*22*2.4mm/23.4*19.4*2.6mm/17*17*2.4mm,天线有外置和默认板载,可改外置2种,持有SRRC-FCC-CE-IC-TELEC-KC/SRRC-FCC-IC-CE-KC/FCC-IC-CE-KC-BQB-NCC-SRRC-ROHS/SRRC/BQB/FCC-IC-CE-KC-TELEC-SRRC/BQB-FCC-IC-CE-TELEC-KC-NCC-SRRC多种证书

产品型号
品类
接口
尺寸(mm)
板载天线/外置天线
证书
FSC-BT691
低功耗蓝牙模块
UART
10*11.9*2.2mm
默认板载,可改外置
SRRC-FCC-CE-IC-TELEC-KC

选型表  -  FEASYCOM 立即选型

【元件】飞易通蓝牙WIFI二合一模块BW358X,具有经典蓝牙(BR&EDR)+低功耗蓝牙(BLE)双模加持豪华配置

飞易通推出的蓝牙WIFI二合一模块BW358X,经典蓝牙(BR&EDR)+低功耗蓝牙(BLE)双模加持,可实现大数量高速率通讯,还能实现低功耗。一经推出便受到市场好评,也拉开了同市场上其它同类型的模块的差距,那么它有什么神奇之处呢?且听慢慢道来。

产品    发布时间 : 2024-03-27

蓝牙电动车仪表盘方案

蓝牙在电动车上功能简概:电动车可以通过蓝牙进行本地音乐播放,仪表显示歌曲名称、时间轴、歌词,来电显示,通讯录,地图导航,信息显示,手机电量和手机信号,同时可以分别连接两个蓝牙头盔或者耳机,把相应的声音发送到蓝牙耳机或者头盔。

应用方案    发布时间 : 2024-03-22

飞易通蓝牙模块可内置微信摇一摇功能,应用于推广客户信息

“摇一摇·周边”是微信利用低功耗蓝牙(iBeacon)技术为线下商户打造的O2O连接入口。用户开启蓝牙,在微信“摇一摇”中自动发现附近iBeacon设备,通过摇手机获取周边信息,如红包、优惠、关注、签到等个性化服务。商户仅需拥有微信认证的公众帐号,简单申请接入即可启用,飞易通蓝牙模块内置此功能,便捷推广客户信息。

设计经验    发布时间 : 2024-10-13

自主蓝牙、WiFi协议栈模块厂商FEASYCOM授权世强硬创代理

BLE模组作为该公司的主要产品之一,BLE超低功耗模组里面的FSC-BT691 1S的广播间隔可以做到13μA左右,远距离BLE模组里面的FSC-BT671D通信距离最远可到1KM。

签约新闻    发布时间 : 2023-09-04

飞易通BLE4.0/4.2/5.0/5.1/5.2蓝牙模块工业级产品为蓝牙充电桩提供智慧解决方案,实现平台化管理

随着电动车的逐渐增加,水涨船高的充电桩产品也是跟着热起来,充电桩可分为直流充电桩,交流充电桩和交直流一体充电桩,一般提供常规充电和快速充电两种充电方式,充电桩市场潜力有多大呢?

应用方案    发布时间 : 2024-03-18

飞易通蓝牙模块在车载数字钥匙上的应用方案介绍

车载数字钥匙是一种利用数字技术取代传统实体钥匙的新型汽车钥匙解决方案。本文讲述车载数字钥匙的优势、工作原理和飞易通车载数字钥匙方案蓝牙模块的推荐。

应用方案    发布时间 : 2024-10-12

数据手册  -  FEASYCOM  - Version 1.7  - 2022/11/28 PDF 英文 下载 查看更多版本

FSC-BT631D双模蓝牙5.4 LE Audio低功耗音频模块为蓝牙音频编解码器提供更好的音频质量和更低的功耗

什么是蓝牙音频编解码器蓝牙音频编解码器是指蓝牙音频传输中使用的音频编解码器技术。常见蓝牙音频编解码器市场上常见的蓝牙音频编解码器包括SBC,AAC,aptX,LDAC,LC3等。SBC 是一种基本的音频编解码器,广泛用于蓝牙耳机,扬声器和其他设备。

应用方案    发布时间 : 2024-03-14

飞易通FSC-BW101蓝牙+Wi-Fi组合模块,支持1*1 802.11a/b/g/n/ac WLAN标准

如今,越来越多的电子设备具备无线通信功能,智能扬声器和汽车系统等许多应用程序都集成了蓝牙和Wi-Fi功能。飞易通FSC-BW101是蓝牙和Wi-Fi组合模块,采用QCA1023蓝牙模块芯片组,它是一个单芯片无线局域网(WLAN)和蓝牙组合解决方案,支持1*1 802.11a/b/g/n/ac WLAN标准和蓝牙5.0+HS。

产品    发布时间 : 2024-10-12

飞易通最新蓝牙音频方案选型推荐

随着蓝牙技术的不断发展,蓝牙5.2已经到来,LE Audio 是否会对传统经典蓝牙的音频垄断地位发起挑战。新的技术如何发展还尚未可知,不过目前的主流音频方案都是使用的经典蓝牙。飞易通是一家有着非常完善的音频解决方案的公司,本文介绍飞易通的常见选型。

器件选型    发布时间 : 2024-07-18

蓝牙模块常见串行接口介绍

我们经常说串行端口是在有限数量的IO上以一个或多个位的顺序传输数据。这种类型有很多,通常包括:UART,IIC,SPI,CAN,USB等,只要是串行传输接口,它就是一种串行端口。这里值得一提的是,由于人们在早期就习惯于称呼UART串口,因此每个人在提到串口时通常都指UART接口。

技术探讨    发布时间 : 2024-10-11

展开更多

电子商城

查看更多

品牌:FEASYCOM

品类:双模蓝牙模块

价格:

现货: 10

品牌:FEASYCOM

品类:双模蓝牙模块

价格:

现货: 10

品牌:FEASYCOM

品类:低功耗蓝牙模块

价格:¥35.7150

现货: 10

品牌:FEASYCOM

品类:双模蓝牙模块

价格:¥31.4290

现货: 10

品牌:FEASYCOM

品类:低功耗蓝牙模块

价格:

现货: 10

品牌:FEASYCOM

品类:超低功耗蓝牙模块

价格:¥28.5720

现货: 10

品牌:FEASYCOM

品类:双模蓝牙模块

价格:¥42.8580

现货: 8

品牌:FEASYCOM

品类:低功耗蓝牙模块

价格:¥35.7150

现货: 5

品牌:FEASYCOM

品类:Bluetooth module

价格:

现货: 0

品牌:芯海

品类:低功耗(BLE)单模蓝牙模块

价格:¥9.0667

现货: 8,539

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:涂鸦

品类:蓝牙模块

价格:¥7.7000

现货:9,980

品牌:MICROCHIP

品类:贴片IC

价格:¥47.0880

现货:742

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

蓝牙射频及通信协议测试

根据用户的蓝牙模块,使用Bluetooth 蓝牙测试装置MT8852B,测试蓝牙1.0至5.1,包括传输速率、功率、频率、调制和接收机灵敏度,生成测试报告。支持到场/视频直播测试,资深专家全程指导。

实验室地址: 深圳 提交需求>

蓝牙资格认证(BQB)

提供蓝牙BLE芯片协议、蓝牙模块蓝牙成品测试认证服务;测试内容分Host主机层,Controller控制器层,Profile应用层测试。支持到场/视频直播测试,资深专家全程指导。

实验室地址: 深圳 提交需求>

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面