紫光展锐于9月17日正式推出全球首款芯片级智能头盔解决方案。
据紫光展锐介绍,芯片级智能头盔解决方案是将蓝牙、Wi-Fi、LTE、GPS、AI等功能模块集成在一个芯片平台上,用一颗芯片实现智能头盔的核心功能,结合优化设计的算法,在底层硬件上实现连接更稳定、算法更精准。实验数据显示,在某些特定场景下,紫光展锐芯片级解决方案的通讯连接稳定性,较市面同档位非芯片级方案提升高达50%。
另外,方案的高集成度能有效降低了开发及部署成本。据测算,采用展锐芯片级解决方案,智能头盔综合成本将较非芯片级方案降低30%。这将帮助更多企业实现智能头盔部署,保护更多劳动者的安全。
据悉,搭载紫光展锐芯片级解决方案的智能头盔可实现六大功能:一是高可靠高安全。紫光展锐核心平台已与全球近200家运营商开展了场测,全球连接无阻,基于工业级的方案设计使智能头盔抗水浸、耐高低温,抗撞击,适用于恶劣环境。二是可实现亚米级精准定位,定位精确到车道。三是内置AI语音助手,可自动识别场景,实现系列播报、提醒、引导、上报、功能控制等操作,即使在复杂场景下也可实现语音指令的稳定识别、处理和交互。第四,可实现AI车道的监测。通过摄像头与AI算法的融合,实时识别车道,通过头盔上植入的摄像头,360度全方位覆盖监测周边的车辆及行人,减少盲点区域,实现即时语音提醒。第五,通过融合多种传感器,可实现包括骑手姿势行为和身体状况在内的全方位监测。第六,通过低功耗设计,性能与功耗达到平衡,可实现最长7天续航,且仅比普通头盔增加一枚鸡蛋的重量,佩戴舒适。
低功耗蓝牙作为物联网重要无线连接技术,使用场景越来越丰富,国内厂商也在加速布局,除去传统蓝牙芯片企业积极转型或拓展新板块,低功耗蓝牙创业公司也如雨后春笋般萌发。尽管国外低功耗蓝牙芯片发展较早占据优势,但国外产品普遍价格昂贵,且面临着继续开发难度大、国内本土化服务不足等劣势,为国内企业进入低功耗蓝牙芯片领域创造了机会。
国内传统蓝牙厂商出货的ble蓝牙芯片的普遍集中在低端BLE上,版本在4.2及以下,近两年才开始转型布局BLE5.0,但主要还是应用在蓝牙音频上的双模低功耗蓝牙芯片,少数厂商开发具有蓝牙mesh和室内定位等功能的单模蓝牙透传芯片。在2016年以后才陆续研发高端BLE,近两年有部分BLE蓝牙芯片5.0产品出货,但量还不算大。
国内BLE厂商及主要产品
国内低功耗蓝牙厂商,比如富瑞坤、上海巨微、奉加微、联睿微、桃芯科技结合中国企业的需求,开发本土化程度更高的低功耗蓝牙芯片。能够开发功耗极低,连接稳定性高的BLE芯片,并且能有效控制成本的厂商才有机会开拓市场,和下游应用厂商紧密合作,从而在市场中占有一席之地。因此具备较强技术研发能力,能够进行极强低功耗设计和性能设计的高端BLE厂商是重点关注对象。上海巨微代理商英尚微提供样品及技术支持。
芯片设计产业转移大势所趋,多重驱动使得国内低功耗蓝牙厂商实现进口替代确定性高。随着中国对集成电路产业政策支持发力,以及为了抵御中美贸易摩擦带来IC供应链风险等外部因素;还有国内物联网发展带来蓝牙终端市场的巨大需求刺激,以及国内芯片设计优秀人才变多等内部因素;蓝牙厂商逐渐向内地转移,高端低功耗蓝牙作为一个好赛道,国产替代是一个必然。
在全球可穿戴设备、物联网细分市场增势良好的激励下,低功耗蓝牙应用增长空间巨大,预计2023年将达到65亿美元。中国作为低功耗蓝牙芯片的重要市场,急需国内公司布局高端低功耗蓝牙,更好地解决国内终端应用厂商定制化需求,从而实现进口替代。
蓝牙是一种短距离的无线通信技术,可以实现固定设备、移动设备之间的数据交换。一般将蓝牙分为两大类,蓝牙3.0规范之前的版本称为传统蓝牙,蓝牙4.0规范之后的版本称为低功耗蓝牙,也就是常说的BLE(Bluetooth Low Energy)。
本文主要讲解的是Android设备与BLE设备之间的通信,Android 从4.3版本(API Level 18)开始支持BLE通信。
首先要判断当前的Android设备是否支持蓝牙,如果支持则再判断当前蓝牙是否处于开启状态,如果未开启则发送广播通知系统开启蓝牙,蓝牙开启后开始搜索周围的蓝牙设备,注意搜索一定要设置超时处理,搜索到指定蓝牙设备后停止搜索任务。
此时可以以列表的形式供用户选择需要连接的设备,或者内部自动连接特定的设备,连接成功后,搜索此蓝牙设备提供的服务(特性、描述符的集合),搜索完成后设置一些对应的参数,即可与蓝牙设备进行通信了。
看下我们在开发过程中需要用到的一些API:
本地蓝牙适配器,用于一些蓝牙的基本操作,比如判断蓝牙是否开启、搜索蓝牙设备等。
蓝牙设备对象,包含一些蓝牙设备的属性,比如设备名称、mac地址等。
一个通用的蓝牙规范,设备之间按照这个规范来收发数据。
蓝牙通用属性协议,定义了BLE通讯的基本规则,是BluetoothProfile的实现类,Gatt是Generic Attribute Profile的缩写,用于连接设备、搜索服务等操作。
蓝牙设备连接成功后,用于回调一些操作的结果,必须连接成功后才会回调。
蓝牙设备提供的服务,是蓝牙设备特征的集合。
蓝牙设备特征,是构建GATT服务的基本数据单元。
蓝牙设备特征描述符,是对特征的额外描述。
需用用到的权限:
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
当蓝牙连接成功后,会回调BluetoothGattCallback中的onConnectionStateChange方法,但是此时还不能与蓝牙设备进行通信,还需要调用BluetoothGatt中的discoverServices方法搜索蓝牙设备提供的服务,也就是我们上文中提到的BluetoothGattService,搜索完成后会回调BluetoothGattCallback中的onServicesDiscovered方法,这时就轮到setBleNotification方法大显身手了。
首先通过一个UUID获取到蓝牙设备提供的服务(BluetoothGattService),这个UUID是由硬件程序定义的,开发的过程中看文档就可以了,获取到服务后,再通过一个UUID获取到蓝牙设备的特征(BluetoothGattCharacteristic),然后再获取设备特征的描述符(BluetoothGattDescriptor),设置在蓝牙设备数据改变时,主动通知App,此时回调BluetoothGattCallback中的onCharacteristicChanged方法,通过characteristic.getValue()可以获取到通知的数据。
在BluetoothGattCallback还有很多回调方法,都是与BluetoothGatt的操作相对应的
应用启动后首先检测当前设备蓝牙是否可用,以及蓝牙是否开启,然后开始搜索蓝牙设备,注意一定要设置搜索的超时时间,将搜索到的蓝牙设备信息存到一个集合中,搜索时间为10s。
然后绑定BleService,以便调用Service中的方法,同时再通过startService的方式开启服务,这样Activity被销毁后service依旧可以运行。
接下来再注册一个广播接收器,接收service发来的消息并做一些处理,这时在蓝牙设备列表中点击你想要连接的设备就可以正常通信了。
在产品需求中,一般应用都是长时间连接一个硬件设备,比如手环,此时就需要做一些特殊处理,比如蓝牙连接断开后主动搜索之前已经连接的设备,或者应用运行过程中手机蓝牙被关闭之后的处理等。