【经验】桃芯科技SDK如何快捷完成多角色多状态并发及量产任务
INGChips (桃芯科技)为客户提供易用的 SDK,帮助客户便捷、高效地开发蓝牙产品。
本文演示通过 INGChips SDK如何快捷地完成以下任务:
1. 多角色并发
2. 量产
BLE 链路层存在 4 种工作状态(当然还有一种“非工作”的待机状态):
1. 广播状态
2. 扫描状态
3. 发起状态
4. 连接状态,连接的两端分为主(master)和从(slave)两种角色
BLE 还定义了四种GAP角色:
1. Broadcaster:发送广播
2. Scanner:接收广播
3. Central:向外围设备(Peripheral)发起连接
4. Peripheral:接受中心设备(Central)发起的连接
这四种 GAP 角色通过链路层不同的工作状态实现。比如扮演 Central 角色的设备首先使用 扫描状态查找外围设备,再通过发起状态发起连接,然后进入连接状态。在连接状态下, Central 角色的设备从链路层角度看又扮演了 master 角色。
INGChips 918xx及 SDK 全面支持各种角色各种状态并发。下面简要介绍 SDK 中内置的 smart_meter 示例的开发过程。smart_meter 作为中心设备,可以默认连接四个外围设备(四个 thermo_ota 温度计);作为外围设备, 可与手机连接并将收集到的温度数据传输到手机。此外,smart_meter 通过 UART 口接受 上位机的控制,可以设置各温度计的地址、控制程序的启动等。
smart_meter 与手机的连接使用了一个自定义的 GATT 服务,通过这个服务在手机和蓝牙设备之间建立了 一个基于字符串的输入、输出通道。smart_meter 使用输出通道传输温度数据。有关这个自定义服务的使用 方法可参考 peripheral_console 示例。这个例子演示了如何利用这个服务实现简单的“空中”调试。
1. 使用项目向导创建一个 Peripheral 应用
使用向导工具设置广播数据和 GATT Profile。在 GATT Profile 里添加自定义的 GATT 服务。
2. 定义从设备(即温度计)
温度计设备用设备地址和 id 作为标识。每个设备占用一条独立的链路
3. 扫描并连接到温度计
调用两个 GAP 函数开始扫描,一旦扫描到待连接的温度计,就停止扫描并调用 gap_ext_create_connection 发起连接。连接建立成功后,检查是否还有待连接的 温度计,如果有,再次开始扫描。
4. 发现服务
这部分功能需要调用一系列 gatt_client 模块的 API。这部分 API 的整体逻辑跟 Android、iOS 蓝牙 API 基本类似。
5. 数据传输
订阅温度数据,将温度转换成字符串,通过 UART 上传给上位机。如果已经连接到了中心设备(ING BLE app), 则将数据通过自定义的 GATT 服务传输到中心设备。
6. 加入容错性
• 如果检查到与某温度计的连接断开,则再次开始扫描。
• 如果与中心设备的连接断开,则再次开始广播。
7. 准备蓝牙温度计
我们需要使用四个温度计,蓝牙地址互不相同。如何方便地写入不同的地址呢?在 Downloader 里写脚本!
Downloader 内置脚本引擎,开始下载每个 bin 文件时会调用用户编写的脚本。通过脚本我们可以任意修改 bin 的内容。
将蓝牙地址写在一个 bin 文件内,然后添加到 Download 内(假设是第 6 个 bin 文件),下面的脚本 会按照下载次数修改蓝牙地址的第一个字节:
8. 测试
在上位机输入 start 命令启动 smart_meter,用手机连接到名为 ING Smart Meter 的设备,就可以看到 四个温度计上报的温度了。随机重启几个温度计,可以看到 smart_meter 能够自动重新建立连接。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由ll转载自桃芯科技公众号,原文标题为:蓝牙开发零门槛之五:多角色多状态并发,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
相关研发服务和供应服务
相关推荐
为ING916搭建Zephyr开发环境
对于ING916/ING918 的NoOS 软件包,可以使用 Zephyr OS作为实时内核。SDK v8.4.1 提供了完整的 Controller 接口,可以对接 Zephyr BLE Host 协议栈。这里桃芯科技将为ING916 搭建 Zephyr 开发环境。在这个环境下,开发者可以使用 Zephyr RTOS 及其 BLE 协议栈。
设计经验 发布时间 : 2024-09-09
【经验】桃芯科技蓝牙芯片板载天线设计指导及参考方案
在无线通信中天线性能严重影响产品的性能。在蓝牙应用中,板载天线是一种重要的天线形式,本文介绍一下板载天线设计中的关键点,并给出相应的参考方案。
设计经验 发布时间 : 2023-05-19
【经验】解析桃芯科技蓝牙芯片ING918x六大新功能
本文介绍桃芯科技蓝牙芯片ING918x新功能:一、简易频偏测量;二、发射功率校准;三、新增小工具;四、加强兼容性;五、新增软件包;六、新增库函数。
设计经验 发布时间 : 2022-09-22
【视频】桃芯科技BLE+UWB+NFC三合一汽车钥匙,完美解决10厘米安全定位
型号- ING91871B,ING91881B,ING91682C,ING91870C,ING91680C,ING91880C,ING91888A,ING91870CQ
桃芯科技低功耗蓝牙(BLE SoC)选型表
桃芯科技提供低功耗蓝牙芯片(BLE SoC),车规级低功耗蓝牙芯片/工规级低功耗蓝牙芯片/消费级低功耗蓝牙芯片;通讯方式:BLE+2.4G;RAM:128KB,80KB;Flash:512KB
产品型号
|
品类
|
封装
|
尺寸(mm)
|
RAM(KB)
|
Flash(KB)
|
LE 1M
|
LE 2M
|
Long Range
|
ADV Extension
|
内部晶振(KHz)
|
GPIO Number
|
ADC Channel
|
通讯方式
|
规格分类
|
BLE协议
|
适用温度(℃)
|
主要接口
|
ING91870C
|
低功耗蓝牙芯片
|
QFN32
|
4.0mm*4.0mm*0.75mm,pitch=0.40mm
|
128KB
|
512KB
|
LE 1M
|
LE 2M
|
Long Range
|
ADV Extension
|
32KHz
|
13
|
2
|
BLE+2.4G
|
工规级蓝牙BLE
|
BLE 5.0
|
-40℃~125℃
|
IO MUX: Uart/I2C/SPI/PWM/GPIO
|
选型表 - 桃芯科技 立即选型
桃芯科技(INGCHIPS)BLE芯片选型表
描述- 桃芯科技是一家致力于高端物联网芯片国产化的芯片设计公司。现阶段主要研发基于自主蓝牙协议栈的低功耗BLE5.0、5.1、5.3 SoC芯片。同时,可提供基于自研BLE芯片的完整参考设计方案。支持蓝牙5.0、5.1的ING918X系列芯片,主要应用于汽车,电网,医疗,定位,高端消费等泛工业场景。支持蓝牙5.3的ING916系列芯片覆盖更多消费场景,包括可穿戴,Mesh,ESL,HID,AR,VR,智能家居等等。
型号- ING91871B,ING91881B,ING91682C,ING91870C,ING91680C,ING91880C,ING91888A,ING91870CQ
如何抓取 log?
针对不同的问题需要抓取不同类型的 log: 1)死机(出现 HARD_FAULT、ASSERTION、HEAP_OOM 等事件):此时需要抓取存储转储(Memory Dump)及各寄存器的值。Memory Dump 有两种方法: 一通过调试器抓取,具体步骤可参阅用户手册。对于启用了省电模式的场景,建议在出现问题之后,再挂接调试器抓取 log。某些 IDE 在挂接调试器进入调试模式时,总是会复位芯片,所以推荐使用 J-Link Commander。 二使用代码导出 trace.c 模块里提供了 trace_full_dump 函数。将这个函数放到 HARD_FAULT、ASSERTION、HEAP_OOM 等事件的回调里,就能实现自动转储。UART GATT Console 示例演示了这个函数的用法,通过串口输入 assert 可主动触发 ASSERTION 并自动转储。 2)蓝牙协议层面的问题:此时需要可以抓取芯片内部的 Trace 以及(或者)空口 log。 芯片 Trace:工程向导在新建工程会自动添加芯片 Trace 的相关代码。当使用芯片 Trace 功能时,需要禁止系统进入深睡眠模式。 空口 log:使用 Ellisys Bluetooth Tracker、 Sodera Series of Bluetooth Protocol Analyzers 等蓝牙空口抓包工具。
技术问答 发布时间 : 2024-05-28
【应用】桃芯科技ING918X低功耗蓝牙SOC帮助客户实现智能烧烤探针实时温度上报需求,工温高达125℃
智能烧烤领域对BLE SOC的要求在于高温环境中的稳定性、低功耗等特性。桃芯科技ING918x系列芯片作为工规/车规级BLE SOC ,稳定工作温度高达125℃,并拥有优秀的功耗表现,完全可以cover客户应用。支持BLE5.0&BLE5.1全特性自研协议栈,集成了32位RISC MCU,16KB ROM,128KB RAM,512KB嵌入式eFlash和丰富的外设资源。
应用方案 发布时间 : 2023-09-08
【应用】桃芯科技蓝牙芯片ING9188助力电子全站仪,支持蓝牙5.0/5.1,实测最大传输距离可达370米
全站仪是建筑行业常用的一种工具,用于建筑测量,随着当前科技发展,目前已经从纯机械向电子化、自动化发展。本文介绍桃芯科技新出ING9188系列蓝牙芯片可实现实测最大传输距离370米,助力电子全站仪的设计和开发。
应用方案 发布时间 : 2023-01-19
如何进行空中升级
这里 是空中固件升级(FOTA)的快速演示。 1)服务端:为蓝牙设备加入升级服务, ingWizard 可以在新建项目时自动添加 INGCHIPS FOTA 服务。 也可以自行设计 FOTA 服务。 2)客户端:对于 INGCHIPS FOTA 服务,提供以下使用不同语言开发的升级程序、工具: 桌面系统(Windows/MacOS/Linux): Web FOTA (JavaScript) 、 自行编译或下载 ING BLE (C#, Windows) 。 Android: Web FOTA (JavaScript)、 ING BLE (C#)、FOTA (Java/Kotlin)、 微信小程序 ING BLE、 iOS:ING BLE (JavaScript)、微信小程序 ING BLE、 ING918 芯片:参考 SDK 附带的 Central FOTA 示例 (C/Zig)。
技术问答 发布时间 : 2024-05-28
【视频】2023年3月30日汽车电子新技术研讨会
国民技术、拓尔微、XSENS、极海、芯海等厂商分享国产车规MCU、AI芯片、惯导模块、激光雷达、智能座舱等全新汽车电子产品与新技术。
活动 发布时间 : 2023-11-29
桃芯科技ING9XX系列蓝牙SoC用在APPLE Findmy Network Accessory
桃芯科技的ING9XX系列BLE芯片成功通过苹果授权的第三方机构进行的各项合规性验证,该系列芯片已经全面兼容Find My network accessory的功能要求,可为第三方硬件产品提供高效快速寻找丢失物品的低功耗蓝牙应用方案。
应用方案 发布时间 : 2024-04-22
【应用】采用2.4G私有协议的蓝牙芯片ING91870C有效提升电网故障指示器的传输距离,支持低延时
桃芯公司的ING91870C芯片是一款专为电网故障指示器而设计的芯片,它支持2.4G私有协议,低延时,低功耗设计,多种安全功能,满足电网故障指示器的应用需求,可以有效保障电网的安全运行。
应用方案 发布时间 : 2023-03-22
桃芯科技欢迎您参加世界智能网联汽车大会,将携低功耗蓝牙车规级SoC芯片及汽车数字车钥匙解决方案参展
桃芯科技是一家致力于车规级,工规级通信芯片的Fabless芯片设计公司。现阶段主要研发基于自主蓝牙协议栈的低功耗BLE5.0、5.1、5.3、5.4 SoC芯片。同时,可提供基于自研BLE芯片的完整参考设计方案。
原厂动态 发布时间 : 2023-09-22
电子商城
现货市场
服务
Ignion可支持多协议、宽频段的物联网天线方案设计,协议:Wi-Fi、Bluetooth、UWB、Lora、Zigbee、2G、3G、4G、5G、CBRS、GNSS、GSM、LTE-M、NB-IoT等,频段范围:400MHz~10600MHz。
最小起订量: 2500 提交需求>
提供语音芯片、MP3芯片、录音芯片、音频蓝牙芯片等IC定制,语音时长:40秒~3小时(外挂flash),可以外挂TF卡或U盘扩容。
最小起订量: 1pcs 提交需求>
登录 | 立即注册
提交评论