有没有比较好用的BLE蓝牙打印机什么牌子好开发工具,电脑上用的?

现在的位置:
小白都能开发的低功耗蓝牙开发套件——赛普拉斯CY8CKIT-042-BLE评测
随着低功耗蓝牙技术的发展,各种简单、有趣的智能产品(基于低功耗蓝牙技术)层出不穷,如防丢器、计步手环、蓝牙智能灯泡等,这些方案应用相对简单,产品又十分有趣,不少工程师都希望亲自动手DIY一个,无奈很多工程师都受制于对蓝牙通信协议的不了解,即便是脑海中有不少有趣的方案、想法,却都不能付之行动。今天爱板网就为大家介绍一款便于开发的低功耗蓝牙开发套件——赛普拉斯CY8CKIT-042-BLE PIONEER KIT,让你通过简单的学习、实践,实现低功耗蓝牙应用的DIY。
CY8CKIT-042-BLE PIONEER KIT套件是基于赛普拉斯推出的高集成度的单芯片低功耗蓝牙解决方案——PSoC(R) 4 BLE 可编程片上系统,目的是简化基于传感器的低功耗物联网应用设计,下面一起来看看套件本身。
CY8CKIT-042-BLE PIONEER KIT所含的学习开发配件非常丰富,主要的硬件开发板包括了:
一个BLE基板(预搭载了CY8CKIT-142 BLE模块)
一个CY5671 PRoC BLE 模块
一个CY5670 - CySmart USB Dongle
另外配件中还带有一份快速上手指导手册、一根miniUSB线缆、一个纽扣电池 (3V CR2032)、4根跳线以及两根接近式传感器线,方面整个学习开发过程中的上手、调试。
CY8CKIT-042-BLE PIONEER KIT开发套件中的CySmart USB Dongle是一个USB BLE 收发器,可与赛普拉斯提供的CySmart软件工具进行配对,将用户的Windows PC转化为一个低功耗蓝牙调试环境,在出厂的设置中,你也可以理解为是一个蓝牙的主机(类似手机),可与从机,也就是套件中的BLE基板(预搭载了CY8CKIT-142 BLE模块,也可以换成CY5671 PRoC BLE 模块)进行通信。在实际上电体验前,我们先来看下整套CY8CKIT-042-BLE低功耗蓝牙开发套件的硬件资源组成。
在取下了CY8CKIT-142 BLE模块后,基板的板载资源如下:()
板载PSoC 5LP CY8C5868LTI-LP039芯片,可以作为编程和仿真工具
板载F-RAM型号FM24V10,1Mb的容量,即128K字节容量
1个RGB LED指示灯
1个接近式感应头、1个包含5个段的电容感应模块、1个用户使用开关、1个BLE模块复位开关
兼容硬件Arduino接口
三种电压供电模式1.9V、3.3V、5V三种电压
蓝牙开发板推荐:
文章分页: 1
【上篇】【下篇】
旺宏编码型快闪存储器( NOR Flash)获意法半导体(STM)新款微控制器采用,导入汽车、工业及消费电子等领域。
赛普拉斯CYW43455 SoC和其他解决方案支持蓝牙Mesh网络,通过简单、安全和无处不在的蓝牙连接实现低成本、低功耗的设备mesh网络,使设备能够彼此之间,以及与智能手机、平板电脑和语音控制家...
赛普拉斯和ESCRYPT正相继展示来自合作伙伴Onethinx的基于PSoC 6 MCU的安全LoRa模组。该模组可与由博世连接设备和解决方案有限公司提供的跨域开发套件(XDK)连接。
SYLVANIA SMART+照明系列是种类最齐全的室内和室外照明产品与配件系列之一。该系列使用户能够更方便地控制照明和电子设备、优化环境、提高效率、节省时间和精力。SYLVANIA SMART +照明可根据...
赛普拉斯半导体公司宣布其高带宽 HyperBus 8 位串行存储器接口被纳入 JEDEC 固态技术协会制定的全新 eXpanded SPI (xSPI) 电气接口标准
您必须才能发表留言!经过核实后将会做出处理,感谢您为社区和谐做出贡献。
请选择删除原因
确定推荐该回答?
我的笔记本没有蓝牙设备,电脑插了usb蓝牙适备器,还要在网上下载驱动,不知道下载什么好?
鲁大师,优化一下,他会给你推荐你需要的蓝牙驱动,然后在设置一下就可以了TTC CC2640R2 SDK开发套件简介
1、TTC CC2640R2 SDK开发套件是由我司针对TI的CC2640R2F芯片开发提供的快速开发工具;
2、避免开发人员将大量精力放在蓝牙调试方面,只需将精力放在对CC2640R2F芯片功能的应用开发上;
3、重点优化了蓝牙协议栈及RTOS,解决RTOS的使用习惯问题,让更多的本土应用工程师更易于接受;
4、提供常用硬件驱动API,方便应用开发人员快速上手,并无障碍应用,所有的驱动全部调试测量OK,不存在跟缓存,溢出,死机等相关的问题;
5、TTC CC2640R2 SDK提供了蓝牙参数设置、蓝牙数据收发、蓝牙状态处理等API,同时也提供了生产时所需的测试程序,开发人员无需再设计测试程序;
6、使用TTC CC2640R2 SDK能适配我司提供的TTC-BLE 软件,方便调试数据收发,并且支持数据加密解密功能,能极大的缩短CC2640R2F的开发周期;
7、所有的说明文档,根据客户实际需求制定,从客户角度来制定文档,满足客户对BLE部分的所有解答需求,方便客户在文档里能够直观的找到;
8、配套完整的视频教程和例程代码,以及对应的电子档教程,双管齐下,让BLE部分也能向普通的MCU一样易于熟悉;
9、增加了更多的跟项目应用相关的驱动,比如ANCS,微信接入等;
10、增加了各种行业相关的驱动,比如电子烟,低周波,胎压监测等;
11、使用TTC SDK能适配我司提供的APP测试软件,方便调试数据收发,并支持数据加密和解密功能;
12、支持多连接功能,支持自动根据MTU Size对数据进行分包,确保数据发送不丢包;
13、支持大包蓝牙数据传输功能,最大支持单包数据传输248字节;
14、从机,从机+观察者角色支持128位UUID功能
在BLE通信中,GAP角色分为主机,从机,观察者及广播模式。
照实际常用开发需求,TTC SDK V3.x版本增加了更加丰富的蓝牙角色的示例,其中还包括两种组合模式;
用户可以使用相关AT指令即可完成不同角色的功能控制,可更高效的完成蓝牙主机,从机等角色的开发。
SDK角色包含以下4种:
2、从机+观察者组合模式
4、主机+广播组合模式
通过AT指令即可完成的基本操作有:
(1)开启广播
(2)关闭广播
(3)向主机发送数据
(4)断开与主机的链接
2、从机+观察者
(1)广播扫描
(2)开启广播
(3)关闭广播
(4)向主机发送数据
(5)断开与主机的链接
(1)扫描设备
(2)连接设备
(3)向从机发送数据
(4)断开与丛机的链接
4、主机+广播
(1)扫描设备
(2)连接设备
(3)向丛机发送数据
(4)断开与丛机的链接
(5)开启广播(不可链接)
(6)关闭广播
以上DEMO示例使用TTC SDK开发套件、手机APP(TTC-BLE)以及PC端软件(TTCDemo)即可完成功能演示。
另外,TTC SDK V3.x也同时加入AT指令版本的驱动DEMO。
TTC CC2640R2 SDK核心优势
1、全面支持蓝牙5.0的硬件及协议栈;
2、独有的多核心架构搭配多线程操作系统,将交互体验及综合功耗降到极致;
3、提供复合型蓝牙多角色的应用实例,演示视频,及示例代码;
4、为客户提供基于蓝牙认证的硬件RF设计,及软件的框架设计;
5、提供独有的生产测试工具,降低客户对RF终端产品量化的生产测试门槛;
CC2640R2F简介
CC2640R2F 器件是一款无线微控制器 (MCU),主要适用于 Bluetooth(R) 4.2 和 Bluetooth 5 低功耗 应用。
此器件属于 SimpleLink(TM) CC26xx 系列中的经济高效型超低功耗 2.4GHz RF 器件。它具有极低的有源 RF 和 MCU 电流以及低功耗模式流耗,可确保卓越的电池使用寿命,适合小型纽扣电池供电以及在能源采集型应用中 使用。
SimpleLink Bluetooth 低功耗 CC2640R2F 器件含有一个 32 位 ARM(R) Cortex(R)-M3 内核(与主处理器工作频率同为 48MHz),并且具有丰富的外设功能集,其中包括一个独特的超低功耗传感器控制器。此传感器控制器非常适合连接外部传感器,还适合用于在系统其余部分处于睡眠模式的情况下自主收集模拟和数字数据。因此,CC2640R2F 器件成为 注重 电池使用寿命、小型尺寸和简便实用性的各类应用的理想选择。
CC2640R2F 无线 MCU 的电源和时钟管理以及无线系统需要采用特定配置并由软件处理才能正确运行,这已在 TI-RTOS 中实现。TI 建议将此软件框架应用于针对器件的全部应用程序开发过程,完整的 TI-RTOS 和器件驱动程序以源代码形式免费提供。
这款 Bluetooth 低功耗控制器和主机库嵌入在 ROM 中,并在 ARM(R) Cortex(R)-M0 处理器上单独运行。此架构可改善整体系统性能和功耗,并释放大量闪存以供应用。
TTC CC2640R2 SDK构成
1、IAR仿真调试软件:IAR FOR ARM 7.80.4
2、烧录软件:TI Flash Programmer 2
3、TTC SDK安装程序:TTC_BLE_CC2640R2_SDK V3.x
4、SDK开发套件:开发板X1,串口调试助手X1,TTC-XDS1100调试器X1,JTAG调试电缆,Mini USB线
5、TTC-SDK开发使用说明文档:
TTC BLE SDK CC2640部分硬件特性测试V1.1
TTC SDK开发环境安装说明V1.6
TTC SDK Beacon规格书V2.0
TTC SDK V3.x RTOS简介V1.0
TTC SDK V3.x使用说明V1.3
TTC XDS110 V1.3
6、TTC &BLE &API:
Android &BLE &API使用说明文档及示例
IOS &BLE &API使用说明文档及示例
1、由于SDK在不断的更新,上述说明文档的最新版本请咨询业务人员
2、我司另外还提供配套的学习教程方便开发者快速上手开发,视频链接地址:
TTC &SDK优势
完整的蓝牙解决方案:芯片/模组+固件平台+ API(双平台APP)+云端接入;
简洁的蓝牙参数设置以及轻松更新固件;
完整的SDK以及工具;
类似串口(UART)数据收发的蓝牙交互模式;
完善的SDK说明文档及中文注释;
快速启动时间(RTOS & 500ms , OSAL & 500ms);
超低功耗特性,CC2640R2F&低至1.5uA的睡眠电流,可用电池供电;
数据支持AES 加密解密;
完整的蓝牙参数验证,适配安卓、IOS 两大平台(市面上100款左右的主流安卓机型,IOS7.0以上机型均适配),用户无需烦恼蓝牙参数适配问题;
完整的测试方案提供,SDK 已包含测试程序,用户无需设计蓝牙测试程序;
配套的专业测试方法、SDK 包、开发调试工具、DEMO 板;
减少由于蓝牙导致设备工作异常的情况出现;
支持自动根据MTU交互实现自动分包功能;
蓝牙数据传输不丢包;
TTC SDK解决的问题
一、蓝牙固件
二、双平台蓝牙开发SDK
三、CC2640R2F驱动,已有驱动DEMO如下:
1、CC2640R2F 拥有丰富的GPIO 资源,满足各种开发需求;
2、最多可提供31 个GPIO 供开发人员使用;
3、支持多种配置比如上下拉、开漏、推挽输出等;
4、每个GPIO 都可以配置中断功能,中断的方式也可以灵活配置,比如上升沿中断、下降沿中断、上升下降沿都中断等;
5、每个GPIO 都可以任意映射片内的外设资源,比如PWM输出口,ADC 输入口等;
1、具备可编程的波特率发生器,最高速率高达3 Mbps;
2、具备独立的32×8 发送(TX)和32×12 接收(RX) FIFO 缓冲器,可以减少CPU 的中断处理动作;
3、具备开始、停止和奇偶校验的标准异步通信位;
4、支持CTS 和RTS 功能;
5、使用uDMA 传输数据;
6、具备可编程的硬件流控制;
Timer(包含PWM/定时/输入捕获)
1、CC2640R2F 拥有 8 个 16 bit 的定时器,每个定时器都可单独配置成不同的模式使用;
2、支持可编程的计数方式,另外它支持同时启动 1 个以上的定时器,适用一些特殊的使用场合;
1、CC2640R2F 拥有8 路12bit 的ADC 通道;
2、支持200Ksamples 的采样率;
3、时钟源可以自由设置,包括定时器,I/O 引脚,软件,模拟比较器和RTC;
4、可以采集到片内温度传感器的当前温度值以及通过内部电路采集到电源电压,方便实现电池的管理;
5、内部参考电源支持1.3V、1.425V、1.43V、1.435V、1.44V、1.6V、4.3V,但不支持外部参考电压;
1、CC2640R2F 的 RTC 时钟来源于 32Khz 的外部晶振,在不断电的情况下会一直自动计数;
2、拥有一个 70bit 的可编程的计数器以及三个通用的通道,配合它的比较寄存器使用,可以产生与时间相关的通知来告知应用层,以实现一些必要的功能。
1、IIC 接口可用于与其他支持 IIC 协议的器件通信,如 ROM, LCD 及多种传感器等;
2、普通模式速率为 100KHz,快速模式速率为 400KHz;
1、时钟线SCLK、主机输入从机输出数据线MISO、主机输出从机输入数据线MOSI和片选线CSN四线制同步串行接口,支持高速,全双工,同步的通信总线;
2、主机最高速率支持24 Mbps;
3、从机最高速率可达 4Mbps;
4、有频率可编程以及写冲突保护;
1、1ms~2863311 ms的超宽溢出时间范围设置,并可随时重新调整装载值;
2、MCU睡眠状态时,看门狗的溢出计时器暂停工作;
3、程序跑飞时复位MCU以保证设备的正常运行;
1、包含了微信的 AirSync 的蓝牙通信协议;
2、自动处理被微信发现、与微信握手连接、数据的蓝牙分包;
3、收,发数据只需初始化相关参数并调用相应的API即可;
1、在从机角色、或者从机+观察者时,定义宏TTCBLE_IBEACON,则开启Beacon功能;
2、功能:见&TTC Beacon规格书&;
3、注意:Beacon应用中参数设置支持掉电储存,用到掉电存储功能,需选择合适的工程配置;
TTC SDK OAD升级说明
&当前版本支持片外升级的角色:从机、从机+观察者;
&当前版本支持片内升级的角色:从机;
&带OAD功能的配置,不支持在线调试仿真,不可直接使用IAR下载程序,为方便在线仿真调试,客先使用不带OAD的工程进行项目开发,功能完善后,再切换至对应的OAD配置,即可完成OAD功能的添加;
通用测试程序说明
&通用测试程序分为自动测试模式和手动测试模式。TTCBLETESTAPP.c文件作为通用测试程序,用户可以在这里添加相关的一些自定义测试内容;
&上电前先拉低测试引脚,进入测试模式,在达到自动测试超时时间前收到检测测试指令,则进入自动测试模式,否则进入手动测试模式;
&自动测试模式:通过测试架实现自动对模块实现硬件基本测试;
&手动测试模式:用户可以根据需要添加相关测试内容,如对外接的屏幕硬件确认等等;
提供SDK开发平台,我司提供IC/模组输出
TTC CC2640R2 SDK 开发套件功能
蓝牙从机角色
初始化简易
蓝牙状态返回
蓝牙参数更新返回
连接参数优化
针对协议栈消息处理
蓝牙数据接收
蓝牙数据发送
蓝牙从机+扫描
初始化简易
蓝牙状态返回
蓝牙参数更新返回
连接参数优化
针对协议栈消息处理
蓝牙数据接收
蓝牙数据发送
过滤广播数据功能
蓝牙主机角色
初始化简易
蓝牙状态返回
蓝牙参数返回
过滤广播数据功能
蓝牙数据接收
蓝牙数据发送
连接过程及相关句柄处理
蓝牙主机+广播
初始化简易
蓝牙状态返回
蓝牙参数返回
过滤广播数据功能
蓝牙数据接收
蓝牙数据发送
连接过程及相关句柄处理
提供不可连接广播
驱动视频教程
CC2640R2F芯片规格
强大的 ARM Cortex-M3
EEMBC CoreMark评分:142
高达 48MHz 的时钟速度
275KB 非易失性存储器,包括 128KB 系统内可编程闪存
高达 28KB 系统 SRAM,其中 20KB 为超低泄漏静态随机存取存储器 (SRAM)
8KB SRAM,适用于缓存或系统 RAM 使用
2 引脚 cJTAG 和 JTAG 调试
支持无线升级 (OTA)
超低功耗传感器控制器
可独立于系统其余部分自主运行
2KB 超低泄漏代码和数据 SRAM
在 ROM 中存储高效代码尺寸架构,装载驱动程序、TI-RTOS 和 蓝牙软件,为应用程序提供更多闪存空间
封装符合 RoHS 标准
4mm × 4mm RSM VQFN32 封装(11 个 GPIO)
6mm × 6mm RGZ VQFN48 封装(31 个 GPIO)
所有数字外设引脚均可连接任意 GPIO
四个通用定时器模块
(8 × 16 位或 4 × 32 位,均采用脉宽调制 (PWM))
12 位模数转换器 (ADC)、200MSPS、8 通道模拟多路复用器
持续时间比较器
超低功耗模拟比较器
可编程电流源
2 个同步串行接口 (SSI)(SPI、MICROWIRE 和 TI)
实时时钟 (RTC)
AES-128 安全模块
真随机数发生器 (TRNG)
支持八个电容感测按钮
集成温度传感器
片上内部 DC-DC 转换器
极少的外部组件
无缝集成 SimplelinkCC2590 和 CC2592 范围扩展器
与采用 4mm × 4mm 和 5mm × 5mm VQFN 封装的 Simplelink CC13xx 引脚兼容
宽电源电压范围
正常工作电压:1.8V 至 3.8V
外部稳压器模式:1.7V 至 1.95V
有源模式 RX:5.9mA
有源模式 TX (0dBm):6.1mA
有源模式 TX (+5dBm):9.1mA
有源模式 MCU:61uA/MHz
有源模式 MCU:48.5 CoreMark/mA
有源模式传感器控制器:
0.4mA + 8.2μA/MHz
待机电流:1.1μA(RTC 运行,RAM/CPU 保持)
关断电流:100nA(发生外部事件时唤醒)
射频 (RF) 部分
2.4GHz RF 收发器,符合 Bluetooth 低功耗 (BLE) 4.2 和 5 规范
出色的接收器灵敏度(BLE 对应 –97dBm)、可选择性和阻断性能
102dB (BLE) 的链路预算
最高达 +5dBm 的可编程输出功率
单端或差分 RF 接口
适用于符合各项全球射频规范的系统
ETSI EN 300 328(欧洲)
EN 300 440 2 类(欧洲)
FCC CFR47 第 15 部分(美国)
ARIB STD-T66(日本)
TTC CC2640R2 SDK 开发套件功能
蓝牙从机角色
&&初始化简易
&&蓝牙状态返回
&&蓝牙参数更新返回
&&RSSI获取
&&数据加密
&&连接参数优化
&&针对协议栈消息处理
&&蓝牙数据接收
&&蓝牙数据发送
蓝牙从机+扫描
&&初始化简易
&&蓝牙状态返回
&&蓝牙参数更新返回
&&RSSI获取
&&数据加密
&&连接参数优化
&&针对协议栈消息处理
&&蓝牙数据接收
&&蓝牙数据发送
&&扫描功能
&&过滤广播数据功能
&&扫描内容
&&扫描优化
蓝牙主机角色
&&初始化简易
&&蓝牙状态返回
&&蓝牙参数返回
&&RSSI获取
&&数据加密
&&扫描功能
&&过滤广播数据功能
&&扫描内容
&&扫描优化
&&蓝牙数据接收
&&蓝牙数据发送
&&连接过程及相关句柄处理
蓝牙主机+广播
&&初始化简易
&&蓝牙状态返回
&&蓝牙参数返回
&&RSSI获取
&&数据加密
&&扫描功能
&&过滤广播数据功能
&&扫描内容
&&扫描优化
&&蓝牙数据接收
&&蓝牙数据发送
&&连接过程及相关句柄处理
&&提供不可连接广播
&&Watchdog
&&SPIFlash
&&生产测试
&&UUID设置
&&驱动视频教程
CC2640R2F芯片规格
& 强大的 ARM Cortex-M3
& EEMBC CoreMark评分:142
& 高达 48MHz 的时钟速度
& 275KB 非易失性存储器,包括 128KB 系统内可编程闪存
& 高达 28KB 系统 SRAM,其中 20KB 为超低泄漏静态随机存取存储器 (SRAM)
& 8KB SRAM,适用于缓存或系统 RAM 使用
& 2 引脚 cJTAG 和 JTAG 调试
& 支持无线升级 (OTA)
超低功耗传感器控制器
& 可独立于系统其余部分自主运行
& 16 位架构
& 2KB 超低泄漏代码和数据 SRAM
在 ROM 中存储高效代码尺寸架构,装载驱动程序、TI-RTOS 和 蓝牙软件,为应用程序提供更多闪存空间
封装符合 RoHS 标准
& 4mm × 4mm RSM VQFN32 封装(11 个 GPIO)
& 6mm × 6mm RGZ VQFN48 封装(31 个 GPIO)
& 所有数字外设引脚均可连接任意 GPIO
& 四个通用定时器模块
& &(8 × 16 位或 4 × 32 位,均采用脉宽调制 (PWM))
& 12 位模数转换器 (ADC)、200MSPS、8 通道模拟多路复用器
& 持续时间比较器
& 超低功耗模拟比较器
& 可编程电流源
& 2 个同步串行接口 (SSI)(SPI、MICROWIRE 和 TI)
& 实时时钟 (RTC)
& AES-128 安全模块
& 真随机数发生器 (TRNG)
& 支持八个电容感测按钮
& 集成温度传感器
片上内部 DC-DC 转换器
极少的外部组件
无缝集成 SimplelinkCC2590 和 CC2592 范围扩展器
与采用 4mm × 4mm 和 5mm × 5mm VQFN 封装的 Simplelink CC13xx 引脚兼容
& 宽电源电压范围
& & 正常工作电压:1.8V 至 3.8V
& & 外部稳压器模式:1.7V 至 1.95V
& 有源模式 RX:5.9mA
& 有源模式 TX (0dBm):6.1mA
& 有源模式 TX (+5dBm):9.1mA
& 有源模式 MCU:61uA/MHz
& 有源模式 MCU:48.5 CoreMark/mA
& 有源模式传感器控制器:
& 0.4mA + 8.2μA/MHz
& 待机电流:1.1μA(RTC 运行,RAM/CPU 保持)
& 关断电流:100nA(发生外部事件时唤醒)
射频 (RF) 部分
& 2.4GHz RF 收发器,符合 Bluetooth 低功耗 (BLE) 4.2 和 5 规范
& 出色的接收器灵敏度(BLE 对应 –97dBm)、可选择性和阻断性能
& 102dB (BLE) 的链路预算
& 最高达 +5dBm 的可编程输出功率
& 单端或差分 RF 接口
& 适用于符合各项全球射频规范的系统
& & ETSI EN 300 328(欧洲)
& & EN 300 440 2 类(欧洲)
& & FCC CFR47 第 15 部分(美国)
& & ARIB STD-T66(日本)
大客户通道
大客户请留言,业务会在48小时之内与您联系。
contact us
深圳市昇润科技有限公司
广东省深圳市南山区西丽镇龙珠四路金谷创业园B栋602室
全国业务直线:400-
邮编:518055
友情链接:关于蓝牙开发,你必须知道的知识
http://geek.csdn.net/news/detail/160652
日,我进行了一次知乎live的活动,主题是: ”知乎live:一小时蓝牙应用开发科普“,感谢微信公众号,qq Babybluetooth开发群的同学们参加了活动,现在活动已经结束,我把活动中语音内容整理了文字,就是下面的内容 ~
什么是蓝牙4.0, 蓝牙其他标准又是什么
低功耗蓝牙(Low E LE),又视为Bluetooth Smart或蓝牙核心规格4.0版本。其特点具备节能、便于采用,是蓝牙技术专为物联网(Internet of T IOT)开发的技术版本。
所以它最主要的特点是低功耗,普及率高。现在所说的蓝牙设备,大部分都是在说4.0设备,ble也特指4.0设备。 在4.0之前重要的版本有2.1版本-基本速率/增强数据率(BR/EDR)和3.0 高速蓝牙版本,这些统称为经典蓝牙,
4.0还有4.的小版本,其中4.2版本对传输速率做了进一步他提升,提高了2.5倍,苹果从iphone6开始使用4.2,
最新的蓝牙标准为蓝牙5.0
其中最大的特点连接范围扩大了4倍,速度又提高了2倍,无连接数据广播能力提高了8倍,增加了蓝牙组网的能力。2017年才开始有芯片出厂,我和Ti,nordic工程师有聊过,他们的5.0芯片都已经完成,准备量产。
应用侧iOS,android操作系统支持的蓝牙协议
苹果从iphone4s,ipad3,pod touch 5开始支持蓝牙4.0,android从4.3以上系统开始支持4.0,此外,苹果从iphone 6开始,支持蓝牙4.2协议,提高了数据传输速度。就如前面所说的,提高大约2.5倍。
蓝牙5.0很期待,不过要普及到手机和其他智能设备上,可能还需要等上几年。
蓝牙开发必须知道的概念
central和peripheral
蓝牙应用开发中,存在两种角色,分别是central和peripheral(p?’r?f?r?l) ,中文就是中心和外设。比如手机去连接智能设备,那手机就是central,智能设备就是peripheral。大多时候都是central去连接peripheral的场景,所以我们就来说他的流程
广播和连接
peripheral会发出广播(advertisement:aedv?’ta?zm?nt),central扫描到广播后,可以对设备进行连接,发出connect请求,peripheral接收到请求后,同意连接后,central和peripheral就建立了连接。
连接后的操作
write,read,notify,indecate, response or not … 这个在后面详细说
indecate和notify的区别就在于,indecate是一定会收到数据,notify有可能会丢失数据(不会有central收到数据的回应),write也分为response和noresponse,如果是response,那么write成功回收到peripheral的确认消息,但是会降低写入的速率。
每个具体的智能设备,都约定了一组数据格式,这个就是数据协议,例如手环中获取到数据0X001023,其中第2位到第5位表示步数,那么就2310就是步数的16进制的数据,转换成10进制就是8976步,需要注意的是,设备端都是小端模式,所以取4位时候,高字节在前低字节在后
蓝牙应用的一般开发流程
已iOS为例,android也和这个是类似的。
建立中心角色扫描外设(discover)连接外设(connect)扫描外设中的服务和特征(discover) 4.1 获取外设的services4.2 获取外设的Characteristics,获取Characteristics的值,获取Characteristics的Descriptor和Descriptor的值与外设做数据交互(explore and interact)订阅Characteristic的通知断开连接(disconnect)
蓝牙的数据交互
write,read,notify,indecate, response or not … 读写大家都是容易理解的,indecate和notify对应的是长连接,建立indecate后,peripheral可以随时往central发送数据。
indecate和notify的区别就在于,indecate是一定会收到数据,notify有可能会丢失数据(不会有central收到数据的回应),write也分为response和noresponse,如果是response,那么write成功回收到peripheral的确认消息,但是会降低写入的速率。
对于一个charateristic,他的读写订阅的权限是peripheral决定的,熟悉可以被同时设置,一般会根据外设的功能来决定。
蓝牙ota DFU
蓝牙ota,DFU(Device Firmware Update)指的是蓝牙设备的固件升级,其实是一整套流程,不同的蓝牙芯片,ota的流程有不同之处,我这里用ti的芯片举例。步骤为:切系统(bootloader mode),重启,传输数据,验证数据,切系统,重启,完成。
其中数据传输也会分成很多节去发送,没法送一段数据,做一次数据校验。
ota存在的问题
以TI的芯片举例,他需要可以存2个image,数据传输时候需要的空间比较大,而每个智能设备的速率,功耗,存储都会有很多限制,导致很多设备会自己去实现ota的功能,自定义流程和数据传输方式,导致许多设备都是有自己私有的ota模式和协议,所以在做开发的时候,要仔细阅读设备协议中对ota的描述。
蓝牙开发中的常见的问题和坑
应用如何做自动重连
其实自动重连比想象的要简单许多,无论是android还是ios端,只需要在设备断开连接的委托方法中,重新调用gatt.connet或者是centralManager.connet方法就可以了,无论当时设备是否有点,是否在周围,当设备再次开会或者连接到可连接范围内,都会自动被连上,就是这么简单。
连接失败处理
分两个平台来说,iOS端也有连接失败的委托,但是好像几乎不会发生这种情况,至少我从来没遇见过,而对于同款设备,android常常会出现连接失败的情况,status != BluetoothGatt.GATT_SUCCESS ,android端开发请不要把连接失败和断开连接放在一块处理,因为断开连接可以直接尝试重新连接,而连接失败后尝试重新连接,需要加一些延时,并且需要gatt.close,清空一下状态,否则会把gatt阻塞导致手机不重启蓝牙就再也无法连接任何设备的情况。
iOS后来运行,需要设备中info.Plist权限,key:Required background modes ,value: bluetooth-central(手机作为central) , bluetooth-peripheral(手机作为外设) 参考链接
同时连接多个设备
android很简单,创建多个gattCallback,每个gattCallback单独管理设备连接后的操作,而iOS也最好不要创建多个CBCentralManager,多个CBCentralManager理论上可以用,但是会存在多个手机版本存在不同的行为,还有一些很容易出错的问题,这块内容不细说了。使用同一个CBCentralManager,通过进入委托的peripheral的identifier区分不同的设备,进行不同的操作和处理。 在阿里的smurfs蓝牙模块中,我使用了一个dispatcher去分发每个连接设备的事件到不同实例中进行处理。
扫描广播包
所有外设,只有在发出广播包的情况下,才能被central发现,绝大多数情况下,外设被连接后就不会发出广播(也有例外),很多人遇到无法找到设备的问题,大多属于这种情况。 重复扫描问题——————
提高蓝牙连接速度
无论是iOS,还是android,都可以通过已绑定的设备,在不开启扫描的情况下进行快速连接,iOS需要的参数是peripheral的identifier,android需要mac地址。但android和iOS还是有一些区别的,比如iOS不能拿到已绑定的设备list,但是可以通过UUID去拿到peripheral的实例。而android可以拿到已绑定的设备list。android绑定过程需要手动调用createBond的方法,而iOS在连接成功一次后会自动绑定。 android在处理createBond时,常常会应为不同手机平台,不同设备,会产生兼容性的问题,这点需要注意。
在扫描时候可以传入serviceUUID,这样可以扫描到特定条件的设备,提高扫描的速度,排除干扰。
如何获取mac地址
android可以直接通过getAddress得到mac地址,而iOS出于苹果的安全策略问题,无法直接获得mac地址,只能得到一个mac地址换算出来的identifier。不过在智能设备开发时,一般都会考虑到这个问题,大多数智能设备会把mac地址保存在广播数据中,不同设备可能会存在不同的位置。
Babybluetooth蓝牙库的使用
Babybluetooth是iOS的蓝牙库的封装,iOS蓝牙委托层级特别讨厌,一个委托接着一个委托,比如先进入扫描的委托,在进入链接的委托,在进入连接成功,发现服务,发现特征,读写操作,一套操作被拆分的很散,容易出错,代码不易维护,上手慢等缺点,Babybluetooth对CoreBluetooth进行了封装,把委托回调进行方法调用的方式,改成了链式方法顺序调用,直接调用baby.enjoy()方法,完成一整套操作。简化了上手难度和代码维护成本。现在开源在github上,有2300个star,蓝牙库中排名第一。
由于时间关系,这里不会详细介绍BabyBluetooth的使用,想连接的可以看。
作者:刘彦玮,80后,一个全栈工程师,github开源作者,目前就职于阿里巴巴,从事iot智能蓝牙设备应用端和基础框架开发。 原文: 声明:本文首发于作者博客,转载已经作者授权。
蓝牙知识【协议栈简图】 【 UUID解析 】 【属性、Characteris、描述符和Service以及profile的关系】【蓝牙无线通道】【INTER FRAME SPACE】【MTU】【缩写词】
Android蓝牙开发全面总结
[蓝牙开发] CC2540新手学习之按键使用
BLE4.0蓝牙开发的必经之路
没有更多推荐了,

我要回帖

更多关于 带蓝牙的打印机 的文章

 

随机推荐