01-Ble 协议栈分层】的更多相关文章

深入浅出低功耗蓝牙(BLE)协议栈 BLE协议栈为什么要分层?怎么理解蓝牙"连接"?如果蓝牙协议只有ATT没有GATT会发生什么? 协议栈框架 一般而言,我们把某个协议的实现代码称为协议栈(protocol stack),BLE协议栈就是实现低功耗蓝牙协议的代码,理解和掌握BLE协议是实现BLE协议栈的前提.在深入BLE协议栈各个组成部分之前,我们先看一下BLE协议栈整体架构. 如上图所述,要实现一个BLE应用,首先需要一个支持BLE射频的芯片,然后还需要提供一个与此芯片配套的BLE协…
看源代码的时候,一般都是从整个代码的入口处开始,TI  BLE 协议栈源码也不例外.它的入口main()函数就是整个程序的入口,由系统上电时自动调用. 它主要做了以下几件事情: (一)底层硬件初始化配置 (二)创建任务并初始化任务配置 (三)检测并执行有效的任务事件 Main() 函数源码如下: 一:底层硬件初始化设置 75行,设置系统时钟,使能内存缓冲功能. 78行,关中断,刚启动时,系统运行不稳定,一般会首先关中断. 81行,硬件相关的I/O 口配置. 84行,初始化mcu 内部的flash…
1. BLE协议栈的层次图如下: 主机控制接口层: 为主机和控制器之间提供标准通信接口 逻辑链路控制及自适应协议层: 为上层提供数据封装服务 安全管理层: 定义配对和密钥分配方式,为协议栈其他层与另一设备之间的安全链接和数据交换提供服务 属性协议层: 允许设备向另一设备展示一块特定的数据 通用属性规范: 定义使用了ATT的服务框架和配置文件(profiles) 数据通信是通过GATT子程序处理 通用访问规范: 直接与应用程序和配置文件通信的接口 2. 传统蓝牙与BLE蓝牙层次图对比:…
详解BLE连接建立过程https://www.cnblogs.com/iini/p/8972635.html 详解BLE 空中包格式—兼BLE Link layer协议解析https://www.cnblogs.com/iini/p/8977806.html 开发你的第一个BLE应用程序—Blinkyhttps://www.cnblogs.com/iini/p/8996025.html 手把手教你开发BLE数据透传应用程序.https://www.cnblogs.com/iini/p/90956…
蓝牙协议是通信协议的一种,一般而言,我们把某个协议的实现代码称为协议栈(protocol stack),BLE协议栈就是实现低功耗蓝牙协议的代码,理解和掌握BLE协议是实现BLE协议栈的前提.当前的蓝牙协议分为基础率/增强数据率(BR/EDR)和低耗能(LE)两种技术类型,本文将重点介绍BLE(Bluetooth Low Energy). 1.BLE低功耗蓝牙协议栈框架 要实现一个BLE应用,首先需要一个支持BLE射频的芯片,然后还需要提供一个与此芯片配套的BLE协议栈,最后在协议栈上开发自己的…
问题原因: bootloader的程序区域是0X78000~0X7E000 但是在bootloader程序中定义了0X0FF8与0XFFC位置处的数据,此数据与BLE协议栈冲突,BLE协议栈的flash范围是0~0X25FFF,所以烧录协议栈后不能用JLINK仿真 具体在bootloader中的代码为: /** @brief Location (in the flash memory) of the bootloader address. */#define MBR_BOOTLOADER_ADD…
BLE就是低功率蓝牙.要着重了解两种设备: dual-mode双模设备:简单说就是向下兼容. single-mode单模设备:仅仅支持BLE.   关于开发主要讲的是单模设备,它可以只靠纽扣电池即可持续工作. TI的蓝牙4.0BLE协议栈为BLE-CC254x-1.4.0,即现在的版本是1.4版本的.可以从TI官方下载或从附件中下载安装,默认是安装在C盘中.因为上一篇博文提到进行空中固件升级,当时没有安装在C盘下,死活生成不了bin文件,改在C盘下生成了.所以,我个人建议,还是默认安装吧,也占不…
演示视频:https://www.bilibili.com/video/BV1Ew411o7Fp 物联网无线通信技术,ZigBee无线传感网络 CC2530最大的特点就是一个拥有无线收发器(RF)的单片机,既能实现单片机功能,也能实现无线传输 Zstack协议栈是ZigBee协议栈里的翘楚,是ZigBee组网的首选协议栈 项目实现功能: l  总共有三个端点,一个协调器和两个终端节点 l  终端节点1连接DHT11温湿度传感器,定时上传给协调器 l  终端节点2连接LED,可以通过协调器按键控制…
在Flash中有一块只读区域,从地址0x780E开始,蓝牙的MAC以小端方式存放在里面. 在TI的Peripheral例程里面,添加一个特征值,只读属性,6字节长度(蓝牙MAC长度为48-bit,6字节). 蓝牙的MAC是全球唯一的,一般情况下,固件的开发中不会去使用,但也不排除二般情况. #define X_DATA(addr) ((uint8 volatile __xdata *)0)[addr] uint8 CC254x_MAC[6] = {0,0,0,0,0,0}; void ReadM…
文章参考自:http://www.sunyouqun.com/2017/04/page/3/ .https://www.cnblogs.com/yuqilihualuo/p/9790164.html BLE协议栈规定物理层.链路层和DTM层属于控制器,其他协议层属于主机,主机与控制器之间的通信是通过主机控制器接口传输层完成的. 主机控制器接口常简称为HCI(Host Controller Interface). HCI定义了一套“命令-事件”机制,主机向控制器发送HCI命令,控制器向主机返回命令…