近年来,无论是科研方面还是生活方面,智能硬件的研究与应用越来越多。而目前大多智能硬件与移动设备相关联使用,特别是智能手机。移动设备和硬件一般通过wifi、GPS、蓝牙等通信,而低成本的通信大多使用蓝牙技术,特别是随着蓝牙4.0的使用。

  蓝牙4.0采用了BLE(Bluetooth Low Energy)节能技术,蓝牙通信模块只在设备连接的时候才启动,也更加节能。硬件设备和移动设备建立连接一般在3ms左右。移动设备(如智能手机端的APP发起连接,协议栈底层去连接,app只接收回调)与硬件建立连接的过程一般是:未建立连接的硬件设备一直广播信号,移动设备扫描时发现设备(接收到广播,有蓝牙设备的address)后,会发送连接请求(一般带有移动设备端的一些数据,这个就根据设计定制带哪些数据),硬件设备收到数据后,会验证收到的数据,验证通过,连接建立;验证失败,连接失败;连接上的硬件设备不再发送广播。连接由BLE协议维护,连接上,移动设备和硬件设备间就可以通信(比如通过移动设备端读取硬件设备信号,控制硬件设备等等)当远离一段距离时,连接断开,设备间就不能通信了。

  能连接的移动设备(举例智能手机)和硬件设备都采用蓝牙4.0协议,手机端的蓝牙协议栈中中间协议层L2CAP和应用层协议都由Android bluedroid协议栈提供。虽然都是利用蓝牙4.0,但不同品牌的手机、不同厂商出产的手机、不同ROM的手机蓝牙信号存在强弱不同、稳定性不同,因为存在改写些有关蓝牙协议栈的问题。硬件设备主要有主IC芯片加外围电路,在硬件设备主要做的就是定制/实现GATT协议的内容。不同硬件设备也存在蓝牙信号强弱,主要是射频的限制;射频(RF)通过2.4GHz的ISM频段实现数据流的过滤和传输。引起射频不同的有硬件的面积、PCB电路设计等等。

虽然蓝牙4.0有号称低功耗和较远距离连接,但实际情况下,智能手机和硬件设备间的连接距离没有理论给出的远(根据调研,目前三星手机连接距离比其他品牌的远些,但没有任何障碍物的情况下,也就在50米左右;有障碍物的情况下会缩短距离,穿透力随着障碍物的材质不同而不同,金属材料的障碍物穿透力要弱些,特别是铅物质的)。

在利用蓝牙4.0的BLE协议栈实现连接通信时,特别是利用智能手机(提供GATT的接口)(目前能用蓝牙4.0的手机,基本上是android手机系统为4.3及以上的ROM系统和iPhone4S及以后出产的iPhone5、5S、5C)存在一种情况:不同ROM下的手机蓝牙信号不稳定,那么利用蓝牙建立连接通信情况下,就有些手机建立连接时,扫描不到硬件设备(设备没发广播或手机当时没有蓝牙信号),或连接不上(手机蓝牙协议栈连接失败/蓝牙服务发现不了);还有些错误是在蓝牙开启情况下,检查出蓝牙关闭的(蓝牙信号近乎无)。

  总之,目前硬件设备利用蓝牙4.0来实现通信,还是有限制:手机ROM依赖、蓝牙信号不稳定、传输距离较近(特别是障碍物遮挡下,穿透力弱)。要更好的使用,需要从根本上解决蓝牙的一些特性和手机ROM中蓝牙协议的统一。

  所以在测试过程中,除了测试一般的逻辑功能实现,还要模拟各种场景下蓝牙不稳定情况造成的异常处理和不同机型下蓝牙连接情况