DA14531系列-主从机连接通信应用实例

1、背景需求

这是一个粉丝提出的DA14531蓝牙方案需求:
1)基于DA14531芯片作为主机和从机 (1.5V供电)
2)从机以3S周期发送定向广播,且每次广播结束后立即进入扩展睡眠
3)主机以3秒周期A/D采集,若采集值大于预设值则进入扩展睡眠。否则扫描从机的定向广播(若20秒内未扫描到从机的定向广播则结束扫描并继续以3秒周期A/D采样,若扫描到从机则与从机建立连接。注:在扫描期间A/D不采样)
4)建立连接后,从机将BUFFER1(20Byte数据+2Byte累加和)和BUFFER2(160Byte数据+2Byte累加和)的数据分别发送给主机(若主机检测到接收到的数据错误,则请求从机重传)。
主机收到正确的BUFFER1和BUFFER2的数据后,将BUFFER3(10Byte数据+2Byte累加和)和BUFFER4的数据(200Byte数据+2Byte累加和)分别发送给从机(若从机检测到数据错误,则请求主机重传,否则从机向主机发送接收正确响应,并且主机、从机断开连接(注:断开连接后,主机、从机各自继续以3秒周期A/D采样或定向广播)。
6)LED亮指示主机-从机正在数据通信。
7)功耗要求,正常工作:主机电流<1mA 从机电流< 5uA

2、需求分析与梳理

从机:
1.从机以3秒时间间隔进行广播,广播后进入扩展睡眠;
2.从机接收到主机发过来的数据时,上报salve_buffer数据给主机;
3.主机断开连接后,从机重复1的动作。

主机:
1)短按按键连接设备(按键端口为P01),进入流程有:唤醒系统、搜索设备、连接设备、发送数据、断开连接,进入扩展睡眠。
2)主机发送host_buffer数据给从机,按键在进入流程到流程为结束期间重复按按键无效。
3)LED指示灯在唤醒系统后为亮,进入扩展睡眠后为灭。

系统架构图:
在这里插入图片描述

3、硬件设计

USB接口,PC直接USB连接Dongle,内置USB转UART芯片,所以可以通过USB口直接升级。电路图为BLE芯片最小系统,外围电量简单,包括1个按键,1个LED、晶振、电感、电容等器件。
主要元器件
在这里插入图片描述
端口定义
在这里插入图片描述

4、从机软件设计

4.1从机工程文档

	src文件夹
{
user_profile.c
user_profile.h
Config文件夹
[
da1458x_config_advanced.h
da1458x_config_basic.h
user_callback_config.h
user_config.h
user_modules_config.h
user_periph_setup.h
user_profiles_config.h
]
custom_profile文件夹
[
user_custs_config.c
user_custs_config.h
user_custs1_def.c
user_custs1_def.h
]
platform文件夹
[
user_periph_setup.c
]
}

4.2从机软件设计

BLE从机配置
在这里插入图片描述
功能列表
在这里插入图片描述
BLE服务列表
在这里插入图片描述

从机主要函数接口
在这里插入图片描述

4.3从机工程流程图

在这里插入图片描述

5、主机软件设计

5.1主机文档目录

src文件夹
{
user_ble_common.h
user_ble_gap.c
user_ble_gap.h
user_ble_gatt.c
user_ble_gatt.h
user_central_app.c
user_central_app.h

Config文件夹
[
da1458x_config_advanced.h
da1458x_config_basic.h
user_callback_config.h
user_central_config.h
user_config.h
user_modules_config.h
user_periph_setup.h
user_profiles_config.h
]
custom_profile文件夹
[
user_custs_config.c
user_custs_config.h
user_custs1_def.c
user_custs1_def.h
]
platform文件夹
[
user_periph_setup.c
]
}

5.2主机软件需求

BLE主机搜索器配置
在这里插入图片描述
功能列表
在这里插入图片描述
客户端BLE服务列表
在这里插入图片描述

5.3主机接口设计

User_ble_gap.c

user_ble_gap_start_scan启动搜索
user_ble_gap_stop_scan停止搜索
user_ble_gap_parse_adv_data解析广播包数据
user_ble_gap_get_adv_num_elements获取广播包数据类型数量
user_ble_gap_connect连接设备
user_ble_cancel_connect取消连接设备

user_ble_gatt.c

user_ble_gatt_writeBLE主机向从机写入数据
user_gatt_read_simpleBLE主机向从机读取数据
user_gatt_discover_all_servicesBLE主机向从机读取所有的服务列表
user_gatt_parse_service解析广播数据接口

user_central_app.c

user_host_catch_rest_hndl主机处理 gatt回调函数
handle_svc_ind主机处理BLE服务列表函数
connection_timeout_cb蓝牙连接,超时回调。
user_on_scanning_completed搜索结束回调
connection_timeout_cb连接超时回调
user_on_disconnect用户连接断开回调
user_on_connection用户连接完成回调
user_on_adv_report_ind广播列表回调
ble_scan_for_devices用户开启搜索器
scan_timeout_cb搜索器超时回调

5.4主机连接从机主要流程

在这里插入图片描述
(主机连接从机设备流程图)

5.5主机Notify接口

在gatt回调处理函数中 user_host_catch_rest_hndl
在这里插入图片描述
更多DA14531 SDK开发实战,请点击…

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小武编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值