蓝牙中的 link 层是否与硬件关联?

Is link layer in the Bluetooth associated to the hardware?

控制器中的每一层都与硬件(HW)相关,HOST中包含的层与软件(SW)相关,这样说对吗?我的意思是在蓝牙经典 LM 中,基带和无线电层是 HW,SDP、RFCOMM、L2CAP 是 SW?在 BLE 中,Link 层和物理层堆栈是否与硬件相关,HOST 层(L2CAP、GATT、GAP 等)是软件部分吗?

物理层只是硬件。

link层是软件和硬件的结合。

这取决于实现,有多少 link 层是在软件中实现的,有多少是在硬件中实现的。一般情况下,接收时对报文的识别,包括preamble和length,都是通过硬件实现的。 CRC 和 Coded PHY 通常也在硬件中实现。

我见过的所有实现在将接收到的数据包放入 RAM 后使用中断通知 cpu。

一般来说,定时器的所有调度和编程都是在软件中完成的。硬件更像是一个简单的接口,用于在特定时间点接收或发送数据包。

识别和响应 link 层数据包(广告、连接请求、扫描请求、连接数据包)的过程应在恰好 150 微秒后完成,但是可以在硬件中完成,或在软件中。

白名单的过滤也可以在硬件中完成。

运行以上的软件直接在蓝牙控制器cpu上,通常是闭源的。该软件与特定的硬件实现紧密耦合,通常构建为仅与特定的硬件实现一起工作。因此,该软件通常被称为固件。

计算机主要 cpu 上的主机层 运行 通常作为操作系统的一部分(Android、Windows、Mac 等) ,主机通过 HCI(主机控制器接口)与控制器通信。因此,您可以将不同的主机实现与不同的控制器混合搭配。