- 博客(52)
- 收藏
- 关注
原创 THE ADVENTURE BEGINS
新的开始csdn无暇同步更新,喜欢嵌入式技术,关注物联网发展的朋友们欢迎关注:http://docs.leconiot.comhttp://notes.leocniot.com二十出头,过早经历学而优则仕,仕而优则创业的阶段,无奈失败。但是学习是永无止境的,整理以前一些笔记,流水叙事为主,并无多少含金量。雁过留声,技术路上留个念想。三十而立,记性却大不如从前,也算以备不时之需。le...
2019-09-06 10:45:32 358
原创 开源homekit adk 测试
开源homekit adk 测试摘要 :本文尝试体验苹果新鲜开源的homekit adk,实现在ubuntu成功编译运行后在iPhone 家 实现设备的添加、控制,以及siri的语音控制。由amazon、apple、google、zigbee alliance牵头的project connected home over ip项目成立了,旨在统一智能硬件在应用层的通信协议,多年智能家居从业...
2019-12-22 20:09:10 2323
原创 CC2640R2F BLE5.0 CC2640R2&BLE5.0开发文档
CC2640R2&BLE5.0开发关于我们关于我们开发板介绍文章所有代码、工具、文档开源。加入我们QQ群 591679055获取更多支持,共同研究CC2640R2F&BLE5.0。入门开始BLE5.0常用问答开发向导CC2640R2开发工具集介绍入门CC2640R2 BLE 开发环境搭建编译第一个工程(simple_peripheral)运行第一个例
2017-08-22 21:16:58 4301 6
原创 CC2640R2F BLE5.0 BLE吞吐量测试
BLE吞吐量测试介绍本章分别测试了TI CC2640R2F LuanchPad和LECONIOT CC2640R2F Evaluation Board开发板吞吐量。我们提供了两个例程供大家参考测试,分别是ble5_throughput_peripheral和ble5_throughput_central。本文最后提供了测试程序下载链接。该工程中进行了一些修改以方便进行吞吐量
2017-08-22 17:10:20 9611 2
原创 CC2640R2F BLE5.0 IAR导入Examples
IAR导入Examples现象对于SDK下面的部分Examples(drivers、sysbios、demos)并不能直接IAR打开,尽管看起来已经建立好工程,但还需要通过IAR的Examples导入工程。如果强制打开(请不要尝试),可能编译报错,提示找不到文件,或者其他错误。例如对于C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\exampl
2017-08-22 17:08:36 5757
原创 CC2640R2F BLE5.0 关于蓝牙5.0的几个常见问答
关于蓝牙5.0的几个常见问答本文汇集了关于蓝牙5.0几个常见问题的答案,以帮助开发人员更好地了解蓝牙5.0的一些新特性。蓝牙5.0向后兼容现有的蓝牙4.x设备吗?是这样的,对于蓝牙4.1,4.2和5.0中添加的所有功能,它们在BLE连接期间都是可以协商选择的。这一点确保了蓝牙5.0设备能够可靠地连接到旧版蓝牙4.x设备,并与其进行交互。除了向后兼容性之外,蓝牙4.1和4.2
2017-08-22 17:07:34 6667 1
原创 CC2640R2F BLE5.0 CC2640R2F Evaluation Board功耗测量
CC2640R2F Evaluation Board功耗测量简介蓝牙低耗能标准在开发过程中就考虑到了长电池寿命, 可支持器件依靠单节纽扣电池运行数年。我们假定读者对基本的电气功能概念有所了解, 并了解如何使用示波器和外用表等实验室测试设备。本文使用SimpleBLEPeripheral示例程序进行功耗测量并使用TI的 CC2640R2F LuanchPad开发板和我公司的CC264
2017-08-15 18:44:14 3225
原创 CC2640R2F BLE5.0 BLE连接参数更新过程详解
BLE连接参数更新过程详解有关连接参数概念和作用我们在 Generic Access Profile (GAP) 一章中已经详细讲解过,这一章演示如何通过修改simple_peripheral例程实现连接参数更新,并分析程序流程。介绍连接参数更新过程中都是主机发起的,从机只能被动的接收主机设置的参数,这个过程发生在连接的时候,当连接之后如果主机设置的参数不利于从机,从机可以发送
2017-08-15 18:41:28 3970
原创 CC2640R2F BLE5.0 CC2640R2F/BLE5.0 距离测试
说明本文根据使用成都乐控畅联公司自主设计的开发板进行距离测试,同时对比官方LaunchPad。测试环境选在城市公路边,无线环境比较复杂。本公司的测试结果仅供参考。软件环境SmartRF Studio7 Version:2.6.1该软件可以在CC2640R2开发工具集介绍里获得.SmartRF Studio7软件的方便之处在于无需下载测试程序,直接插入USB,打开软件
2017-08-07 10:20:10 1502
原创 CC2640R2F BLE5.0 BLE一包数据到底能发多少
BLE一包数据到底能发多少BLE到底一包能够收发多少数据。这是我们很多开发者都会关心的,正如我们知道BLE5.0物理层设计2Mpbs的码元率,实际我们的数据传输速率远远到不了这个级别,主要原因就是我们没有办法直接单次发送1M或者1K数据,必须按照我们知道的ATT_MTU作为最大值进行拆包发送,不断拆包的过程中导致整体蓝牙有效数据吞吐量下降。本章节,我们实用性触发研究如何究竟蓝牙一包能够发送
2017-08-07 10:18:59 6970 3
原创 CC2640R2F BLE5.0 CC2640R2F增加一个具有通知属性的characteristic
CC2640增加一个具有通知属性的characteristic介绍本章使用simple_peripheral作为实验平台。创建一个自定义属性的characteristic。simple_peripheral的IAR工程可以在目录C:\ti\simplelink_cc2640r2_sdk_1_35_00_33\examples\rtos\CC2640R2_LAUNCHXL\ble5sta
2017-08-07 10:17:15 1617
原创 CC2640R2F BLE5.0 CC2640R2F SPI驱动实现
SPI驱动这一节我们详细讲解TI CC13x0/CC26x0 SDK开发平台 基于TI-RTOS的SPI驱动实现,主要了解SPI驱动的分层实现、驱动接口,以及结合开发板板载SPIFlash调试通过驱动。概述SPI(Serial Perripheral Interface),串行外设接口,是Motorala公司推出的一种同步串行接口技术,它能够使MCU以全双工(数据能够同时进行双
2017-08-07 09:58:45 9887 2
原创 CC2640R2F BLE5.0 编译第一个工程(simple_peripheral)
编译第一个工程(simple_peripheral)成功编译通过第一个工程对我们入门开发至关重要,如果失败了可能就是麻烦的开始。TI SimplLink CC13x0/CC26x0 MCU 系列SDK 组件太多,第一个工程编译出错的概率极高,所以这里我们单独陈列一章节,详细讲解如何成功编译第一个工程,以及常见问题解决。编译前我们确保参考CC2640R2 BLE 开发环境搭建全部
2017-08-05 20:03:11 7399
原创 CC2640R2F BLE5.0 CC2640R2BLE5.0开发工具集
CC2640R2BLE5.0开发工具集对于CC2640开发的全部工具集,我们建议直接从官方下载,因为整个TI Simplelink工具集更新频率特别快,一定程度上的更新会导致向上不兼容或者功能性的差异,所以我们始终要保持某些工具都在最新版本使用。这里我们给出所有开发工具的官方下载链接,同时我们在百度网盘也尝试维护一个版本,但是不一定是最新。软件/工具功能描述百度云下
2017-08-03 11:01:41 955
原创 CC2640R2F BLE5.0 CC2640R2F软件架构
软件架构开发模型下图展示CC2640R2F支持的两种开发模型,本文讲解都集中在图一,也就是整个ble协议栈和应用都工作在一个CC2640R2F的单SOC解决方案。单一设备:Controller、Host、Profile、应用程序都在CC2640R2F上实现,作为真正意义的单芯片解决方案。这种模型是使用CC2640R2F时最简单和最常见的。TI的大部分示例项目都使
2017-08-03 11:00:52 4435
原创 CC2640R2F BLE5.0 CC2640R2F硬件架构
硬件架构概述TI低功耗蓝牙软件开发套件(ble-stack SDK)是开发单模低功耗蓝牙应用的完整软件平台。该SDK基于完整的片上系统(SoC)低功耗蓝牙解决方案SimpleLink CC2640R2F。CC2640R2F结合了2.4GHz RF收发器,128KB系统可编程存储器,20KB SRAM以及丰富的外设。它有一个ARM® Cortex®-M3 系列的处理器用来处理应用程序和蓝
2017-08-03 10:59:28 1390
原创 CC2640R2F BLE5.0 CC2640R2F软硬件架构概述
架构概述本章节,我们试图讲明白CC2640R2F芯片和软件开发架构,帮助大家系统认识CC2640R2F芯片多核心架构、存储系统以及软件开发的工程管理、编译选项、协议栈分层设计。硬件多核心架构一个SOC,三个CPU,我们需要了解其如何各司其职又彼此系统。存储系统基于多个MCU独立工作,独自内存空间的RAM和ROM,同时TI保留了一个128KB的ROM空间用以出厂固化D
2017-08-03 10:58:23 730
原创 CC2640R2F BLE5.0 TI-RTOS概述
TI-RTOS概述TI-RTOS是CC2640R2F设备上蓝牙低能耗项目的运行环境。TI-RTOS内核是传统SYS/BIOS内核的定制版本,可作为具有驱动程序,同步和调度工具的实时抢占式多线程操作系统。线程模块TI-RTOS内核管理线程执行的四个不同的任务级别,如图21所示。线程模块列表如下图所示,按照优先级降序排列。硬件中断软件中断任务后台空闲功能的空闲任务
2017-08-03 10:56:00 8187
原创 CC2640R2F BLE5.0 安装BLE5-Stack 1.00.00
安装BLE5-Stack 1.00.00BLE5-Stack 1.00.00是以无线组件作为SimpleLink CC2640R2 SDK的一部分的。本文档中的所有路径和文件引用都假定SimpleLink CC2640R2 SDK已安装到了默认路径()。TI建议在进行任何更改之前要将SimpleLink CC2640R2 SDK备份。BLE5-Stack 1.00.00使用相对于S
2017-08-03 10:54:40 835
原创 CC2640R2F BLE5.0 CC2640R2F的存储架构
存储架构FlashFlash以4KB为一个Page进行擦除/写入操作(如果在一个Page需要写入一个字节,需要将整个Page擦出),Flash组成部分及其它们关联的链接器文件如下。对于协议栈以库文件方式链接的工程(_lirary):Application Image Code Space(应用程序镜像代码区):应用程序和协议栈分为两个工程来管理,但是协议栈编译生成库文件
2017-08-03 10:53:21 4939
原创 CC2640R2F BLE5.0 使用CCS开发蓝牙应用
用CCS开发安装Code Composer Studio(CCS)CCS工具链包含的许多功能超出了本文档范围。更多信息和文档可以在CCS Webpage上找到 。检查BLE5-Stack 1.00.00发行说明,查看需要的CCS版本和任何要求的工作环境。与IAR生成的目标代码相比,CCS生成的目标代码的大小和性能可能不同。以下过程介绍如何安装和配置CCS的正确版本和必要
2017-08-03 10:52:16 4516
原创 CC2640R2F BLE5.0 使用IAR开发蓝牙应用
使用IAR开发安装IARIAR工具链包含的许多功能不在本文档的讨论范围之内。更多信息和文档可以在IAR.com找到。查看BLE5-Stack 1.00.00的发行说明,弄清楚需要使用的IAR版本和一些要求的工作环境。与CCS生成的目标代码相比,IAR生成的目标代码的大小和性能可能不同。以下过程介绍如何安装和配置正确版本的IAR以及必要的工具。安装用于ARM的IA
2017-08-03 10:42:07 3688 2
原创 CC2640R2F BLE5.0 CC2640R2F UART驱动
UART驱动这一节我们讲一下UART驱动的分层实现,UART APIs以及如何调用UART APIs来实现基本的串口打印。概述UART用于芯片和串行端口之间的数据传输,UART驱动程序经过多层的封装简化了应用程序对UART外设的读写操作,应用程序开发者只需要调用封装好的驱动接口就可以操作串口进行读写了。当然UART也有多种操作模式,例如:阻塞,非阻塞,轮询以及文本/二进制模式,
2017-08-03 10:40:25 5417
原创 CC2640R2F BLE5.0 蓝牙概述
Overview从这一章节开始我们尝试去系统了解蓝牙协议栈,在这之前我们需要储备以下知识点。蓝牙概述蓝牙是一种短距离的无线通信技术,设计之初是为了取代有线连接,其鲁棒性、低功耗、低成本特性已经让其广泛应用各种终端产品。蓝牙核心规范是根据不同终端产品可选择、可裁剪的,根据功耗和速率主要被设计两个设备类型--LE/BR,两种设备都实现设备发现、连接建立、连接机制。同时BR无线系
2017-08-03 10:38:15 1989
原创 CC2640R2F BLE5.0 应用程序框架
应用程序从这个章节开始,我们将详细讲解CC2640R2F BLE5.0的应用程序框架,在之前我们希望已经按照我们学习线路图储备了CC2640R2F平台的软硬件架构知识。明白应用工程区分App和Stack工程管理。这里我们主要是讲解基于TI-RTOS的App应用程序框架。这里介绍以 simple_peripheral Demo应用程序部分,包括以下内容:Pre-main
2017-08-03 10:36:00 6239 1
原创 CC2640R2F BLE5.0 蓝牙协议栈概述
Overview从这部分开始详细介绍蓝牙协议栈功能和接口,协议栈工程关联实现协议栈的文件以及实现协议栈的任务,该任务也作为协议栈应用的最高优先级任务。TI采用库文件提供方式作为协议栈提供的一个主策略,尽管如此,还是需要开发者了解协议栈各个抽象的功能和相互作用。介绍蓝牙5.0核心规范包含LE和BR/EDR两种设备类型,其中LE主要是设计为低功耗、小数据终端产品。BLE5.
2017-08-03 10:34:11 8799 1
原创 CC2640R2F BLE5.0 蓝牙协议栈通用访问配置文件(GAP)
概述GAP分层负责设备建立连接相关功能,包括设备发现、数据链路建立、终止,初始化安全管理和设备配置,参见下图。在Standby状态,双方设备都处于未连接状态,Advertiser尝试广播数据,Scanner接收到广播数据后尝试进行扫描请求,并且得到扫描回复。此时Scanner产生连接意图,转变成Initiator发送连接请求,成功连接后发送广播的Advertiser作为Master
2017-08-03 10:29:30 3213
原创 CC2640R2F BLE5.0 蓝牙协议栈GAP GATT 服务(GGS)
GAP GATT 服务(GGS)在前面GATT服务和简介中说过,GGS服务包含设备和访问信息,例如设备名称,Appearance,外围首选连接参数。GGS的目的是在设备发现和连接启动过程中进行辅助。有关GGS的更多信息,请参阅蓝牙核心规范版本5.0的“GAT service”和“Characteristics for GATT Server”部分([Vol 3],C部分,第12节)。
2017-08-03 10:27:50 2225
原创 CC2640R2F BLE5.0 蓝牙协议栈GAPRole 任务
GAPRole 任务GAP层始终处于下面4种角色之一运行:Broadcaster(广播者):设备发送不可连接的广播。Observer(观察者):设备扫描广播但无法启动连接。Peripheral(外围设备):该设备是可连接的广播,并在单一链路层连接中作为从设备运行。Central(中央设备):设备扫描广告并启动连接,并在单个或多个链路层连接中作为主服务器运行。蓝牙低功耗中央协议栈支持
2017-08-03 10:24:44 4370 1
原创 CC2640R2F BLE5.0 蓝牙协议栈通用属性配置文件(GATT)
通用属性配置文件(GATT)正如GAP层负责连接相关的功能,GATT主要是负责在两个已经连接的设备交互数据,GAP层把BLE设备区分为主机Master(Central)和从机Slave(Perpherial),在GATT层则区分为Server和Client。客户端读取和写入存储在服务端的特征值(Characteristics )。Server该设备包含由GATT客户端读取或写入
2017-08-03 10:23:01 6803
原创 CC2640R2F BLE5.0 蓝牙协议栈GATTServApp模块
GATTServApp模块GATT服务器应用程序(GATTServApp)存储和管理应用程序范围的属性表。各种配置文件使用此模块将其特性添加到属性表。蓝牙低功耗协议栈使用此模块来响应GATT客户端的发现请求。例如,GATT客户端可以发送Discover all Primary Characteristics消息。GATT服务器端的蓝牙低功耗协议栈接收到该消息,并使用GATTServApp查
2017-08-03 10:21:51 3784
原创 CC2640R2F BLE5.0 蓝牙协议栈信道选择算法#2(CSA#2)
概要信道选择算法#2(CSA#2)是更复杂和更难跟踪用于获得下一个连接事件的信道索引的算法。特别是在高通量使用情况下,避免干扰和多路径衰落效应比通道选择算法#1更有效。有关算法的详细说明,请参见蓝牙核心规范版本5.0的第6卷B部分4.5.8.2节。以下是37和9个使用频道的算法对100多个事件的样本:默认配置该堆栈默认情况下支持CSA#2,默认情况下也启
2017-08-03 10:20:52 3371
原创 CC2640R2F BLE5.0 蓝牙协议栈GAP Bond管理和LE安全连接
GAP Bond管理和LE安全连接GAP Bond Manager是一个可配置的模块,使用Bond manager后应用程序可以减少大部分安全机制。下表列出了术语。术语描述配对(Pairing)交换密钥的过程加密(Encryption)0x02认证(Authentication)使用
2017-08-03 10:18:08 4712
原创 CC2640R2F BLE5.0 蓝牙协议栈Host控制接口(HCI)
Host控制接口(HCI)主控制器接口(HCI)层是在蓝牙协议栈的主机(Host)和控制器(controller)之间传送命令和事件的薄层。在纯网络处理器应用程序(即host_test项目)中,HCI层通过SPI或UART等传输协议实现。在诸如simple_peripheral项目的嵌入式无线MCU项目中,HCI层通过无线MCU内的函数调用和回调来实现。所有与Controller进
2017-08-03 10:16:38 5008
原创 CC2640R2F BLE5.0 蓝牙协议栈LE 2M PHY功能
LE 2M PHYLE 2M PHY功能使用与LE 1M PHY相同的发射功率,唯一的变化是PHY中数据的调制。使用LE 2M PHY,由于在相同的输出功率下进行更高的数据调制,能耗降低。下表列出了两个PHY之间的一些区别:参数比较能量消耗在对等设备中的两个端点之间的逻辑连接,其特征在于它们的信道标识符(CID)速
2017-08-03 10:12:58 6985
原创 CC2640R2F BLE5.0 蓝牙协议栈数据长度扩展功能(LE Data Length Extension)
概要数据长度扩展功能允许LE控制器在连接状态下发送具有高达251字节的PDU。此外,在连接期间的任何时间,任何一方可以协商新的PDU大小。此前,控制器的最大数据通道有效载荷为27字节。与蓝牙核心规范版本4.0和4.1设备(如果两个设备都支持扩展数据包长度并正确配置)相比,数据速率提高了大约2.5倍。数据长度更新过程一旦形成了连接,控制器将以两种可能的方式之一进行操作:
2017-08-03 10:08:36 6656
原创 CC2640R2F BLE5.0 蓝牙协议栈逻辑链路控制和适配层协议(L2CAP)
逻辑链路控制和适配层协议(L2CAP)L2CAP层位于Host的最下方,并在主机(GAP,GATT,APP)和下层协议栈的上层之间传输数据。该层负责在主机和协议栈之间把交换的数据进行分段和重组以及协议复用。L2CAP允许更高级别的协议和应用程序发送和接收高达64KB长的上层数据包(L2CAP服务数据单元,SDU)。有关详细信息,请参见图58 .该流程图基本就概括了L2CAP
2017-08-03 10:06:26 4844
原创 CC2640R2F BLE5.0 蓝牙协议栈OAD功能概述
OAD 概述本章节旨在从更高层次解释OAD主要概念,这些概念将在下一章节进一步扩展。一些概念,例如Boot镜像管理(BIM)在具体实现细节上可能有所不同。但是本章尽可能的覆盖这些概念,下一章节解释它们具体实现细节。OAD类型BLE5-Stack只支持片外OAD(off-chip OAD)。下载的镜像文件保存在低功耗的外部flash里面,通过BIM加载到C2640R2F内部fla
2017-08-03 10:04:27 3791
原创 CC2640R2F BLE5.0 蓝牙协议栈Off-Chip OAD功能
Off-Chip OAD本节描述了分离镜像的片外OAD(Split Image Off-Chip OAD)和片外OAD库(Library off-chip OAD)之间的差异。片外OAD利用一个外部的flash储存新的镜像在下载和镜像选择/更新期间。以下处理过程是片外OAD独有的:片外OAD的限制和要求片外OAD内存布局BIM用于片外OAD开箱即用(仅适用于分离镜像的片外O
2017-08-03 10:02:45 3407
原创 CC2640R2F BLE5.0 蓝牙协议栈OAD功能常见问题解决指南
OAD常见问题解决指南本指南旨在解决OAD期间遇到的常见问题。BIM常见问题OAD期间可能很多问题,可以使用以下步骤确定交互期间发生的问题:使用BLE抓包器抓包。可以确定配置文件是否正确启动,并且传输镜像是否有效。寻找一个OAD启动来自OAD image Notify 的通知会被响应————OAD Target会在GATT写metadata时响应
2017-08-03 10:00:53 2560
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人