蓝牙核心系统包含蓝牙spec中定义的最低层的四个部分以及相关协议,同时还包括一个通用服务层协议,服务发现协议以及在GAP中指出的全部需求。同时,一个完整的蓝牙应用程序还需要其他一些附加的服务和在蓝牙spe中定义的更高层的协议。
蓝牙控制部分
蓝牙底端三层被归为一组成为一个子系统称做蓝牙控制器,这是一个通用的执行部分,包括蓝牙控制器和蓝牙系统其他剩余部分之间的标准的物理通信接口,这些剩余部分包括L2CAP,服务层以及更高级的层次(常叫做蓝牙host)。虽然这个接口并非必不可少,但是本架构设计上允许它的存在和特点。蓝牙说明书通过定义同等层间的协议信息交换来使得独立的蓝牙系统之间协调工作,同时,通过定义一个蓝牙控制器和蓝牙host间的通用接口,保障了蓝牙子系统之间的协调工作能力。
总体而言,蓝牙spec不会定义执行体之间的细节部分,除非他们之间要求协同工作。
核心系统协议和信号
蓝牙系统内部设备之间的操作定义了标准的交互流程,在这些内部操作中,根据蓝牙spec蓝牙设备交互协议信号。蓝牙核心系统协议栈包括RF协议,链接控制协议,链接管理西医和逻辑连接控制适应协议(L2CAP),这些协议在蓝牙spec随后部分中都均有定义。另外,服务发现协议是一个所有蓝牙应用程序都需要的服务层协议。
蓝牙核心系统为许多服务通路点(AP)提供服务,然而这些服务有控制蓝牙核心系统的基元组成。这些服务可以分成三种类型。第一种是设备控制服务用于修改蓝牙设备的行为和工作方式,第二种是传输控制服务用于创建、修改以及释放通信送信单元(信道和链接),第三种是数据服务用于在通信送信单元上为传送功能传递数据。很容易的理解前两个属于C层面,最后一个属于U层面。
主机和控制器接口(HCI):划分蓝牙协议栈为控制器和主机和蓝牙控制器子系统的服务接口定义如下:蓝牙控制器被认为是一个标准的部分。在一个主机系统中,蓝牙控制器操作最底下的三层和L2CAP的这种配置包含在蓝牙应用程序的其他部分。标准接口称为HCI。对这个标准服务的接口的实现是可有可无的。
蓝牙架构可以定义成通过HCI通信的一个主机和一个控制器,所以就须假设一些通用的东西。和主机相比,假设蓝牙控制器有着有限的数据缓存能力。因此就期望在给一个对等的设备传输数据时,当递交L2CAP PDU给控制器过程中,L2CAP层来执行一些简单的资源管理工作。
L2CAP层的错误检测
在蓝牙技术中,基带层提供基本的ARQ协议。L2CAP可以有选择性地提供深层次的错误检测和对L2CAP PDU的重传机制。这个特性对一些应用程序有推荐作用,这些应用程序在对用户数据没有检测到错误存在低的可能性有着一定的要求。L2CAP的的另外一个可能的特性是,基于窗口的流控制在接受设备端可被应用来管理缓冲分配。这两个可选择性的特性在一定场景提高了QoS的性能。
测试接口:射频和测试控制接口
蓝牙核心系统实现的自动化一致性测试是必须的。这个测试是通过允许测试人员通过射频接口来控制它的实现来得到的,这对所有的蓝牙系统来说很普通的,并且通过这个测试控制接口(TCI),这是在一致性测试中唯一要求的。
测试人员通过射频接口和执行体进行数据交互来确保给远端设备提供正确的回复。测试人员通过TCI来控制IUT使得IUT通过射频接口发起数据交换,这样数据能够得到一致性的验证。
L2CAP层服务接口虽然没有在蓝牙核心Spec中定义,而是独立地存在TCISpec中。L2CAP服务接口的实现是一致性测试的唯一要求。(来源CDN)