【蓝牙学习笔记一】三种实现蓝牙架构
实现蓝牙的三种架构
实现蓝牙的三种架构
通过阅读这篇博文的学习总结
https://blog.****.net/iini01/article/details/79943908
1.Host+controller双芯片标准架构:
将host 和 controller 放在两个芯片上面
这种双芯片架构通常用在手机上的蓝牙应用实现。手机里面有很多SoC(system on chip 系统级芯片)和模块,这些SoC和模块都有自己特定的功能,当使用某一功能的时候,手机中的AP(application processor)芯片会自动同相应的模块进行交互。市场上有很多AP芯片也有很多蓝牙模块,为了提高两者的兼容性,让不同的AP芯片和不同的蓝牙模块都可以达到相同的功能,因此而定义了双芯片标准架构。
这种架构将controller的某些协议放在蓝牙模块中,将Host的某些协议放在AP芯片中,它们之间通过HCL(Host controller interface)协议进行通信。 遵守这种双芯片标准就可以随意替换host和controller。目前这种架构不仅仅用在手机上而且还可以用在其他任何设备上面。
Zephyr开源蓝牙协议栈也采用了这种架构
2.单芯片整体方案
这种架构将host和controller整个蓝牙协议栈放在了同一个芯片中,二者通过API(API,英文全称Application Programming Interface,翻译为“应用程序编程接口”。是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。——百度百科)来进行通信。这种架构方式极大的节省了成本。常用在小型的蓝牙设备上面。
3.自定义芯片方案
为了实现较复杂的蓝牙应用,会将蓝牙协议栈中的应用层放在功能强大的MCU中,而其他的蓝牙协议就跑在蓝牙模块或者蓝牙SoC中,二者之间的通信协议通过通信厂商来自己定义。
总而言之,controller,host和应用层不一定是全部放在一个芯片当中的。
下面是BLE蓝牙协议栈的图片,方便大家理解不同的层次。