本文译至:http://blog.fenrir-inc.com/jp/2013/09/bluetooth-le-firststep.html
翻译说明:因为该连载主要是关于设备上应用开发的,这个不是很感兴趣,所以仅仅翻译了最开始的这部分。
您好,我是共同开发部的开发负责人伊藤。
关于低功耗蓝牙
Bluetooth Low Energy (也被称为Bluetooth 4.0、BLE、BTLE),下面记作BLE,是使用2.4GHz的无线短距离无线通信标准。 迄今为止,虽然高速蓝牙已经实现,但BLE在通讯速度上比较普通,主要强调一个纽扣电池能够工作几年的这种省电性能。
设备端和主机端使用GATT(Generic ATTribute) profile进行通信。 如果你听到GATT这个名词,就可以将其想成使用BLE,这没什么问题。
由于与传统蓝牙不兼容,在主机端,和蓝牙3.0合并做为双模,实现成两者都可以使用的情况比较多。在PC机和智能手机上,使用双模的被称作「Bluetooth Smart Ready」,只支持低功耗蓝牙的被表示成「Bluetooth Smart」。
顺便说一句,最早诺基亚在2006年制定了名为Wibree的技术标准,但它已在2010年被标准化为蓝牙4.0。
GATT profile
GATT已经成为BLE的通信的通信规定,设备中存在多个“服务”,“服务”中还存在多个“characteristic”。
实际的数据交换,通过读取和写入“characteristic”进行。 对使用面向对象程序设计的人来说,这可以很容易理解成“服务”是类,“characteristic”视为属性。
每个characteristic的值可以在不加密的状态下读写,但配对的操作是加密的。 还有当characteristic的值已改变时,可接收通知(notify)。
除了那些蓝牙技术联盟定义为标准的服务和characteristic之外,设备的开发者也可以自己定义。
一些必要的服务组合成所谓的“profile”。(特别是在需要和传统蓝牙区别开的情况下的情况下,称为基于GATT的profile)蓝牙技术联盟也定义了标准的profile,例如,对应于鼠标键盘“HID over GATT“ profile,是定义成包括「Human Interface Device」「Device Information」「Battery Service」「Scan Parameters(可选)」这些服务的。
服务和characteristic是通过UUID来进行识别的。UUID是32位的,但那些被蓝牙技术联盟的标准中定义的UUID是以四个数字来表示的。实际上,四位数的UUID,是有附加 Bluetooth Base UUID,即变成0000●●●●-0000-1000-8000-00805f9b34fb(4位UUID被输入在●的位置)。如果你想定义自己的非标准UUID,可以使用如Mac的uuidgen命令生成。