抛开协议说蓝牙
现实中中存在很多蓝牙设备,几乎随时随地打开手机就能搜到很多蓝牙设备。蓝牙是短距离通信的无线协议,在2.4GHz的无线频道传输数据,它的特点是低功耗,因为这个特点被广泛得应有于各种手持设备(智能穿戴类),或者是可近距离无线控制的大型设备(比如可以通过蓝牙控制的打印机)。一颗很小的纽扣电池,可以让一款低功耗蓝牙设备工作3年!蓝牙是一个无线传输协议,说到协议,很多同志可能就还没开始就结束了,那我们今天就抛开那些晦涩难懂的协议来聊聊BLE。
必须要了解的基本概念
在做BLE开发时,有些基本的概念必须要了解:
- 蓝牙设备的状态
- 蓝牙设备的角色
- 两个设备是如何进行通信的
蓝牙设备的状态
- 广播中:告诉别人自己的存在
- 扫描中:看看附近都有谁
- 连接中:两个设备正在建立连接
- 已连接:设备与设备连接成功了
扫描中的设备在附近发现了自己想要找的那个设备,就会发起连接,然后两个设备处于连接中,如果连接成功建立了两个设备就都处于已连接。
蓝牙设备的角色
蓝牙通常用在两个设备间的通信,其中一个叫主机(Master),另外一个叫从机(Slave)。有时候在不同的协议层或应用场景也有被的叫法。这里有关于更多蓝牙设备的角色。
蓝牙设备之间是如何进行通信的
我们可以把蓝牙通信当做像IIC一样外设,区别在于蓝牙通信需要可以发送2.4GHz无线电的天线,IIC需要两根导线,蓝牙通过天线往空中收发数据,IIC通过导线收发数据。
主机对从机发起连接后,连接成功的话两者都会获得一个句柄,两个设备后续是通过这个句柄来进行通信的。
写在最后
很多伙伴说学习蓝牙协议又苦又累,很难坚持,本人也是在学习蓝牙中深有体会,但是现在回过头来看,能用到的基本就是那几个,很多太细致的其实不用深究。我的建议是:先了解蓝牙协议的框架,分别有哪些协议层,分别又是负责什么功能的,这些是要牢记的。然后再某宝买个开发板学习,在实例中去抠协议,这样你会更快得掌握BLE,快速成长为蓝牙开发工程师。