首先,蓝牙核心结构可以大致分为三个层级,从上往下依次为:Host、HCI、Controller这三个层面,如下图所示:
下面介绍下相关的功能:
1、 HCI (Host Controller Interface):
之所以首先介绍它,是因为它起着承上启下的作用。如上图所示,Controller和Host通过HCI层进行交互。
Controller和Host之间进行通信,那必定有物理介质进行传递,如上图所示,可以是USB、SDIO、UART,也可以是其他的通讯方式。我理解,这个没有硬性的规定,只要能够满足一定的通信速率即可。
正如上图所示,HCI层不仅仅在Controller里面也有,也在Host里面也有。这里理解起来可能会有一些糊涂:上面不是说了分为三层吗?怎么这里HCI又在Controller里面,同时也在Host里面了? 这里着重解释下,这是因为Host和Controller可以在不同的芯片里面,以及 Host和Controller可以是不同的厂家的。打个比方,Host软件可以在A公司的芯片里面,然后通过UART和B公司芯片里面的Controller里面。也可以是,我用了A公司芯片里面的Controller,但我自己的产品里面有一套自己更加成熟的Host,所以我也可以这么组合着用。
既然HCI层会传输数据,那么这中间传输了什么呢?如下图所示,可以传输5种数据,分别是Comm