问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

基于CC2540的蓝牙BLE协议,用户自定义的函数是哪块?

发布网友 发布时间:2022-04-21 16:08

我来回答

2个回答

热心网友 时间:2022-06-09 11:01

用户模式及协议栈

       1.文件传输模式

文件传输模式提供两终端间的数据通信功能,可传输后缀为.xls、.ppt、.wav、.jpg和.doc的文件(但并不限于这几种),以及完整的文件夹、目录或多媒体数据流等,提供远端文件夹浏览功能。文件传输协议栈如图2所示。

       2.因特网网桥模式

这种用户模式可通过手机或无线调制解调器向PC提供拨号入网和收发传真的功能,而不必与PC有物理上的连接。拨号上网需要两列协议栈(不包括SDP),如图3所示。AT命令集用来控制移动电话或调制解调器以及传送其他业务数据的协议栈。传真采用类似协议栈,但不使用PPP及基于PPP的其他网络协议,而由应用软件利用RFCOMM直接发送。

       3.局域网访问模式

该用户模式下,多功能数据终端(DTs)经局域网访问点(LAP)无线接入局域网,然后,DTs的操作与通过拨号方式接入局域网的设备的操作一样,其协议栈如图4所示。

      4.同步模式

同步用户模式提供设备到设备的个人资料管理(PIM)的同步更新功能,其典型应用如电话簿、日历、通知和记录等。它要求PC、蜂窝电话和个人数字助理(PDA)在传输和处理名片、日历及任务通知时,使用通用的协议和格式。其协议栈如图5所示,其中同步应用模块代表红外移动通信(IrMC)客户机或服务器。

       5.一机三用电话模式

手持电话机有三种使用方法:第一,接入公用电话网,作为普通电话使用;第二,作为不计费的内部电话使用;第三,作为蜂窝移动电话使用。无线电话和内部电话使用相同的协议栈;语音数据流直接与基带协议接口,不经过L2CAP层,如图6所示。

       6.头戴式设备模式

使用该模式,用户打电话时可自由移动。通过无线连接,头戴式设备通常作为蜂窝电话、无线电话或PC的音频输入输出设备。头戴式设备协议栈如图7所示,语音数据流不经过L2CAP层而直接接入基带协议层。头戴式设备必须能收发并处理AT命令。


完整的协议栈包括蓝牙专用协议(如连接管理协议LMP和逻辑链路控制应用协议L2CAP)以及非专用协议(如对象交换协议OBEX和用户数据报协议UDP)。设计协议和协议栈的主要原则是尽可能利用现有的各种高层协议,保证现有协议与蓝牙技术的融合以及各种应用之间的互操作,充分利用兼容蓝牙技术规范的软硬件系统。蓝牙技术规范的开放性保证了设备制造商可以自由地选用其专用协议或习惯使用的公共协议,在蓝牙技术规范基础上开发新的应用。



Android蓝牙系统分为四个层次,内核层、BlueZ库、BlueTooth的适配库、BlueTooth的JNI部分、Java框架层、应用层。下面先来分析Android的蓝牙协议栈。

Android的蓝牙协议栈采用BlueZ来实现,BlueZ分为两部分:内核代码和用户态程序及工具集。

内核代码主要由BlueZ核心协议和驱动程序组成;蓝牙协议实现在内核源代码net/bluetooth中,驱动程序位于内核源代码目录 driver/bluetooth中。用户态程序及工具集主要包括应用程序接口和BlueZ工具集,位于Android源代码目录externel /bluetooth(注:Android版本不一样,有的在externel/bluez目录下)中。

1、蓝牙协议栈

蓝牙协议栈的体系结构由底层硬件模块、中间协议层和高端应用层三部分组成。




一、底层硬件模块

组成:

链路管理协议(Link ManagerProtocol,LMP);

基带(Base Band,BB);

射频(Radio Frequency,RF)。

功能:

射频(RF)通过2.4GHz的ISM频段实现数据流的过滤和传输。

基带(BB)提供两种不同的物理链路,即同步面向连接链路(Synchronous Connection Oriented,SCO)和异步无连接链路(AsynchronousConnection Less,ACL),负责跳频和蓝牙数据,及信息帧的传输,且对所有类型的数据包提供不同层次的前向纠错码(Frequency Error Correction,FEC)或循环冗余度差错校验(CyclicRendancy Check,CRC)。

链路管理协议(LMP)负责两个或多个设备链路的建立和拆除,及链路的安全和控制,如鉴权和加密、控制和协商基带包的大小等,它为上层软件模块提供了不同的访问入口。

主机控制器接口(HostController Interface,HCI)是蓝牙协议中软硬件之间的接口,提供了一个调用下层BB、LMP、状态和控制寄存器等硬件的统一命令,上下两个模块接口之间的消息和数据的传递必须通过HCI的解释才能进行。

二、中间协议层

组成:

逻辑链路控制和适配协议(LogicalLink Control and Adaptation Protocol,L2CAP);

服务发现协议(ServiceDiscovery Protocol,SDP);

串口仿真协议(或称线缆替换协议RFCOMM);

二进制电话控制协议(TelephonyControlprotocol Spectocol,TCS)。

功能:

L2CAP位于基带(BB)之上,向上层提供面向连接的和无连接的数据服务,它主要完成数据的拆装、服务质量控制、协议的复用、分组的分割和重组,及组提取等功能。

SDP是一个基于客户/服务器结构的协议,它工作在L2CAP层之上,为上层应用程序提供一种机制来发现可用的服务及其属性,服务的属性包括服务的类型及该服务所需的机制或协议信息。

RFCOMM是一个仿真有线链路的无线数据仿真协议,符合ETSI标准的TS07.10串口仿真协议,它在蓝牙基带上仿真RS-232的控制和数据信号,为原先使用串行连接的上层业务提供传送能力。

TCS定义了用于蓝牙设备之间建立语音和数据呼叫的控制信令(Call Control Signalling),并负责处理蓝牙设备组的移动管理过程。

三、高端应用层

组成:

点对点协议(Point-to-PointProtocol,PPP);

传输控制协议/网络层协议(TCP/IP);

用户数据包协议(UserDatagram Protocol,UDP);

对象交换协议(ObjectExchang Protocol,OBEX);

无线应用协议(WirelessApplication Protocol,WAP);

无线应用环境(WirelessApplication Environment,WAE);

功能:

PPP定义了串行点对点链路应当如何传输因特网协议数据,主要用于LAN接入、拨号网络及传真等应用规范。

TCP/IP、UDP定义了因特网与网络相关的通信及其他类型计算机设备和外围设备之间的通信。

OBEX支持设备间的数据交换,采用客户/服务器模式提供与HTTP(超文本传输协议)相同的基本功能。可用于交换的电子商务卡、个人日程表、消息和便条等格式。

WAP用于在数字蜂窝电话和其他小型无线设备上实现因特网业务,支持移动电话浏览网页、收取电子邮件和其他基于因特网的协议。

WAE提供用于WAP电话和个人数字助理(PersonalDigital Assistant,PDA)所需的各种应用软件。

2、android与蓝牙协议栈的关系

蓝牙系统的核心是BlueZ,因此JNI和上层都围绕跟BlueZ的沟通进行。JNI和android应用层,跟BlueZ沟通的主要手段是D- BUS,这是一套被广泛采用的IPC通信机制,跟Android框架使用的Binder类似。BlueZ以D-BUS为基础,给其他部分提供主要接口。

热心网友 时间:2022-06-09 11:01

这个东西看了好久的文档也没入门,汗颜啊!TI官网有BLE的工程例子,以及一个类操作系统的代码,你可以看看。咱们可以一起学习[em:14:] 查看原帖>>
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
在爱水APP哪个模块中可以填写个人信息,查询自己一天的饮水量? 黄金为什么是避险产品 避险买什么 避险品种是什么 避险产品什么意思 什么是避险产品 ...对联和我们平时使用的印章,说说使用了哪几个字体 对联上写的是什么字 ...有一空是让我评价我自己,请各位哥哥姐姐帮帮忙,帮我编一段,往好了... 艾灸用品哪种好 如何修改USB CDC成为自定义USB Bulk批量传输设备 EDI 如何使用? HTP是什么啊?有什么用啊? 如何使用flashftp FTP的端口号是多少 ? 电脑有多少种网络协议 ssh如何实现自定义的ssh协议? 电脑打开网络设置 什么求组词 微信被封号,解封时拉头像次数过多怎么办已经过了一天了 网络应用层协议 如何设置点对点传输文件 微信头像是这样,会不会封号? 文件传输的定义 微信群里有相同的头像会引起封号吗 谁有最新的PPT入门到精通教程视频,可以发我百度云 怎样自定义并使用websocket子协议 404 Not Found 怎么自定义应用层协议? 微信用马化腾头像会被封号吗 没有 用日语怎么说 日语 没有 怎么说 没有 日文怎么说? "没有"翻译成日语怎么写? 没有了日语怎么说 把没有翻译成日语和罗马音,谢谢。 有没有翻译日文的软件 没有办法~翻译成日语 有没有翻译日语的软件啊 床下面什么都没有 翻译成日文 热血高校2裏面没有翻译的日文 有没有翻译日语的软件!记住 是软件! 有没有日文翻译啊?软件,在线的都行! 有没有翻译日语的输入法 日语等级考试中有没有翻译题 404 Not Found 法式松饼的历史是什么啊? 一个法式松饼的面团是如何调制的? 法式松饼的材料 什么甜品不用烤箱就能够做出来?