这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 国产MCU » 【CH582M】蓝牙开发平台简介

共2条 1/1 1 跳转至页

【CH582M】蓝牙开发平台简介

专家
2026-11-10 15:51:46   被打赏 10 分(兑奖)     打赏

CH58x 是单芯片解决方案,控制器,主机,配置文件和应用程序均在 CH58x 上实现。蓝牙应用程序开发的结构:

1、 Application(应用层):业务代码

2、 Profiles(GATT 配置文件):服务/特征值的数据定义

3、 BLE Stack(蓝牙协议栈):通讯数据包,调用 API解析

4、 HAL / StdPeriphDriver(硬件抽象层):调用封装好的API

5、 RISC-V Core + 外设硬件(芯片本身)

 

在开发层面,提供六个组件:

1、TMOS:任务管理系统,Task Management Operating System。低功耗蓝牙协议栈以及应用均基于 TMOS。TMOS是一个控制循环,通过 TMOS 可设置事件的执行方式。对于一个任务,独一无二的任务 ID,任务的初始化以及任务下可执行的事件都是不可或缺的。

 2、HAL:硬件抽象层, Hardware Abstraction Layer,就是把寄存器操作封装成统一 API 的那一层。

 3、BLE Stack: 协议栈,是沁恒预编译好的闭源支持库,通过API调用。

 4、Profiles:定义数据模型,分标准Profile和私有Profile。私有的Profile,每种数据类型有唯一的识别ID,就是UUID。书写Profile必须按照约定的注册接口实现。

 5、RISC-V Core:单片机本身的RISC-V4A 内核

 ·Application:应用层,业务逻辑处理 

 软件包提供了四个 GAP 配置文件,用于对应蓝牙通讯中设备的四种不同的角色: 

 ·Peripheralrole(从机) 

 ·Centralrole(主机) 

 ·Broadcasterrole(广播者) 

 ·Observerrole(观察者) 

1、Peripheralrole(从机)

蓝牙设备在成为从机之前,需要不断向外广播,表明自己是等待连接的蓝牙设备,等待别人连接。一旦连接成功,就可以双向收发数据。初始化时,使用GAPRole_PeripheralInit()函数。

需要配置:广播间隔、广播数据/扫描响应内容、连接参数(最小/最大间隔、超时、slave latency)。

2、Centralrole(主机)

工作时,主动扫描周围其他蓝牙设备发出的广播包,连接成功后,可实现双向收发数据。主机可同时连接多个从机。初始化时,使用GAPRole_CentralInit()函数。

主机典型的工作流程是:扫描→连接→遍历Service→遍历Characteristic→记录 handle→使能 notify→读写。

需要配置:扫描模式与时长 TGAP_DISC_SCAN、发起连接的超时与连接参数。

3、Broadcasterrole(广播者)

不间断向外发送广播,无论谁连接它,都不回应。初始化时,使用GAPRole_BroadcasterInit()函数。

需要配置:广播类型、是否扩展广播、发射功率。

4、Observerrole(观察者)

只扫描接收广播包,不发起连接。初始化时,使用GAPRole_ObserverInit()函数。

需要配置:扫描模式(被动/主动)、扫描窗口与间隔。

 

 

 





关键词: CH582M     蓝牙开发平台    

专家
2026-11-12 19:42:59     打赏
2楼

算不上分享,是自己在努力学习蓝牙知识。之前对蓝牙相关程序,没有任何概念,只知道建立在2.4GHz上的复杂协议通讯,复杂到看着就打怵。买CH582M这块开发板,就是想借着SDK学习蓝牙的基础知识,明白相关协议的具体内容,方便以后开发时,不再盲人摸象。

蓝牙的通讯的硬件本身,也是真复杂啊,还涉及到跳频处理。


共2条 1/1 1 跳转至页

回复

匿名不能发帖!请先 [ 登陆 注册 ]