您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > cc2640蓝牙芯片软件开发指导说明文件
1概述该文档的目的是为了给出TIsimpleLink低功耗蓝牙cc2640无线MCU软件开发工具的概述,从而开始创建一个智能蓝牙的定制应用。该文档也提供了低功耗蓝牙的特性的介绍,在本文档中,低功耗蓝牙特指BLE。然而,这些不能作为BLE完整的技术规格的替代。阅读蓝牙内核规范来了解更多的细节,或者是TIBLEwiki页中提供的一些介绍资料。1.1介绍4.1版本的蓝牙规范允许两种无线技术系统:基本频率和低功耗蓝牙。BLE系统设计用来一次发送非常小的数据包,所以比BR设备消耗更少的电量。可以支持BR和BLE的设备就是双模式设备,运行在Bluetooth®SmartReady下。在蓝牙无线技术系统中的典型应用,一台移动智能手机或者笔记本电脑就是双模式设备。设备只制成BLE的就是单模式设备,运行在Bluetooth®Smart下。这些单模式设备同城用在优先考虑低功耗的应用场景中,比如那些基于纽扣电池的设备。1.2BLE协议栈基础BLE协议栈属性如下所示:BE协议栈(就是简称协议栈)由两个部分组成:控制器和主机。这两个部分经常独立实现,这就将主机和控制器设备与蓝牙的BR设备区分开了。任何配置和应用都位于GAP和GATT层的上面。物理层(PHY)是一个1Mbps适配调频的GFSK接收器,操作在公开的2.4GHz带宽上的。链路层(LL)控制设备上的RF的状态,设备会处于五种当中的一种状态:就绪、广播、扫描、初始化、连接。广播者发送数据不需要连接,扫描者监听广播。初始者就是一个设备响应一个广播者的连接请求。如果广播者接受连接,那么广播者和初始者就都处于连接状态。当一台设备处于连接状态,他将处于两种角色当中的一种,主机或从机。初始化连接的设备就成了主机,而接受请求的就变成了从机。主机控制接口(HCI)层,提供了一种控制器和主机之间的通讯手段的标准接口。该层也可以通过一个软件接口或者一个硬件接口如UART,SPI,或者USB来实现。标准的HCI命令和事件是在蓝牙内核中指定的。TI所使用的命令和事件在VendorSpecificGuide中说明。链路逻辑控制和适配协议层(L2CAP)层为长层提供数据打包服务,允许端对端的数据交互。安全管理层(SM)定义了配对和密匙分配的方法,也为其他协议层提供安全连接和数据交换的功能。5.4中有TI的SM层的实现的更多的细节。通用通道协议层(GPA)层直接面向应用层(也可有)配置,来处理设备的发现和连接相关的服务。GAP处理安全因素的初始化,5.1中有更多关于TIGAP层实现的信息。属性协议层(ATT)协议允许一个设备展现一个确定长度的数据给另一个设备,就是所谓的属性。通用属性协议(GATT)层是个服务的框架,定义了辅助进程来使用ATT。所有发生在两个BLE连接设备之间的通讯都是通过GATT的副进程处理的,因此,应用(可以有)配置将直接使用GATT。5.3重点讲解ATT和GATT层。2TexasInstrucments软件开发平台TI的免费版的BLE-Stack™软件开发工具(SDK)是一个完成的软件平台,可以永爱开发单模式的BLE应用。它基于SimpleLinkCC2640,完整的SOCBluetooth®Smart解决方案。cc2640结合了一个2.4GHz的RF收发器,128kB的嵌入式可编程的内存。20看BDSRAM,和一个全尺寸的外设。设备基于ARM®Cortex-M3™串行处理器来处理应用层和BLE协议栈,同时自动的天线内核基于ARMCortex-M0™处理器来处理所有低级的天线控制和与物理层及部分链路层的进程。传感器控制块提供了一种额外的灵活的方法来自动完成独立于M3核的数据获取和控制,因此也加强了cc2640的低功耗的能力。结构框图在下面,更多的细节在cc2640技术说明指南中。2.1协议栈/应用配置平台支持两种不同的协议栈/应用配置1.单个设备:控制器,主机,配置和应用都在cc2640上实现作为一个真正的芯片解决方案。这是使用cc2640是最简单和最常见的配置。同时这也是我们大多数类程中使用的配置。是最佳性价比的技术和提供最低功耗的性能、2.网络处理器:控制器和主机一起在cc2640上实现,而配置和应用则是分开实现的。应用和配置与cc2640的通讯是通过HCI命令或事件完成的,使用的是SPI或UART接口。这种配置对于运行在其他设备(如外部微处理器或电脑)上的应用来说是有用的。在这些案例中,应用可以独立开发,而BLE协议栈依旧运行在cc2640.网络工程不在该文档中展示。2.2解决方案这部分将描述各种安装在BLE协议栈SDK中的组件,协议栈的目录结构和开发过程中所需的任何工具。这个解决方案包含了下面的组件:1.实时操作系统(RTOS),TI-RTOSSYS/BIOSkernel支持最优化的电源管理,和外设驱动(如SPI,UART等)2.cc26xxware驱动库:提供一个寄存器抽象层并被软件或驱动用来控制cc2640的Soc。3.BLE协议栈:以库的形式提供,和存放在cc2640ROM中的协议栈的部分。4.应用和配置类程:使基于合适的、通用的方案开发更加简单。BLESDK中提供所有的应用和配置都是经过蓝牙技术联盟测试合格的。当前支持的编译器有:IAR和CCS2.3目录结构BLESDK的安装包中包含了大量的工程从最基本的BLE功能到使用案例特定的应用诸如:心率传感器,血糖采集等。这些应该用于应用开发的起始点的基本工程会在下面做简单的描述。更多的谢姐和其他的工程请查看12章。SimpleBLEPeripheral工程由简单的代码组成,展示了一个非常简单的但设备模式下的BLE从机应用。可以作为开发从机/外设应用的指导。SimpleBLECentral工程展示了连接的另一边。展示了一个简单的单设备配置模式下主机/中心应用,可以作为开发主机或中心的应用的指导。SensorTag工程上一个外设应用,用来运行在cc2650SensorTag指向的硬件平台,与传感器目标通讯如温度传感器等。HostTest工程用来给cc2640创建一个网络处理器的软件。包含了主机和从机的角色配置,并可以被电脑端的应用Btool控制。参考供应商提供的HCI应用接口指南,在文档文件夹中有提供网络处理器实现的APIs。2.4设置开发环境在进一步编程之前,有必要来设置综合开发环境(IDE),目的是为了浏览本文档中提到的工程和代码。所有的适合cc2640的软件都是基于IAR或者ccs开发的。这部分讲在哪里可以找到这些软件,并正确的配置这些IDE。该文档中提到的所有的路径和文件都必须是BLESDK安装的默认路径。强烈要求做个BLESDK的备份来进行修改。BLESDK使用的是相对路径,设计为模块化的,这样就允许顶层目录可以复制到任何合法的地址了。注意:确保最大的文件系统命名路径长度没有改变。2.5.1安装SDK运行安装包“ble_cc26xx_setupwin32_2_00_00_xxxxx.exe”来安装BLE协议栈的SDK。1.xxxx是SDK的版本号;2.默认的SDK的安装路径是:C:\ti\simplelink\ble_cc26xx_2_00_00_xxxx.exe这个安装包同时也会安装TI-RTOS和XDC工具的附件,前提是以前没有安装过,也包括Btool电脑应用。下面的图列出了BLE-StackSDK支持的软件、工具和测试。2.5.2IAR这部分不予翻译。2.5.3CodeComposerStudio(CCS)ccs包含了许多因素都超出了本文档的范围,可以在ccs网站获取更多的信息和文档:确保检查过BLESDK的释放说明,注意ccs的版本和其它的工作相关的要求。另外,有CCS编译生成的代码在大小上和表现上可能与IAR的生成的代码不同。2.5.3.1配置ccs这部分秘书安装和配置当前办呢的CCS和必要的工具。1.下载6.0.1或更高级的版本的ccs,下载地址为:安装支持simplelinkWirelessMCUs;cc26xx设备支持TIARM编译器3.安装XDS100或XDS200模拟器支持包。4.一旦CCS安装成功后所有体统的应用可以通过选择.help-CheckforUpdates来更新。注意:这个操作可能会要求ccs在每次更新完一个应用后就会重启5.充应用中心(APPCenter)中安装最新的TIARM编译器5.1.选择View–CCSAppCenter5.2.选择TIARM编译器5.3.选择要安装的软件6.当所有的更新都安装完成后,通过选择help-AboutCodeComposerStudio来验证安装细节。ARMCompilerTools:5.2.0CC26xxDeviceSupport:1.12.2.00(orlater)2.5.3.2使用CCS这部分将描述怎样打开和编译一个存在的工程。这里将使用SimpleBLEPeripheral工程作为例子。同样的,所有包含在CCS开发包中的CCSBLE工程都有相似的结构。2.5.3.2.1导入一个存在的工程。首先,打开CCS编译器的开始菜单。一旦CCS已经打开了,单击Project-ImportCCSProject选择下面的目录:$BLE_INSTALL$\Projects\bleProjects\ble\SimpleBLEPeripheral\CC26xx\CCS这个是CCS中SimpleBLEPeripheral工程的目录。ccs将会发现两个工程(一个应用,一个栈工程)。检查两个工程,选择“CopyProjectsIntoWorkspace”,最后选择“Finish”完成导入。2.5.3.2.2工作空间概述这个工作空间,其实所有的cc2640工程的工作空间,都包含两个工程:应用工程(SimpleBLEPeripheral)和栈工程(SimpleBLEPeripheralStack)。二者之一可以通过在浏览器中单击工程名字来激活。下图中,应用工程被选为激活工程,每个工程都会生成一个独立的下载镜像。采用这种双镜像的目的是应用工程可以独立于栈更新了。处于实际原因,SimpleBLEPeripheral例程的主要作用是作为一个通用应用开发的指导。SimpleBLEPeripheral工程实现了一个基本的BLE外设设备,包括GATT和GATT服务。这个工程可以用作一个开各种外设角色应用的固件。2.5.3.2.3编译和下载因为工作空间分成了两个工程(应用和栈),因此编译和下载有固定的顺序:1.选择应用工程作为激活工程使用Project-BuildALL编译工程;2.选择栈工程作为激活工程,使用Project-BuildALL编译工程;3.选择栈工程作为激活工程,使用Run-Debug下载栈工程;4.选择应用工程作为激活工程,使用Run-Debug下载应用工程。注意:以上操作只限于初次下载和栈工程有修改的时候。只要栈没有修改,则只需执行下面的步骤:1.编译应用2.下载应用2.6访问预处理符号贯穿整个文档,所有的C的预处理符号可能需要修改或者是调整工程的等级。访问预处理符号的流程是基于使用的IDE的。下面的流程展示了如何访问和修改预处理符号(IAR的方法不讨论)。在CCS中,预处理符号可以通过选择和打开各自的工程properties(比如,应用或栈工程),按照CCSBuildARMCompilerAdvancedOptionsPredefinedSymbols的顺序找到预处理符号。然后添加,删除或编辑一个预处理符号,如下图所示:2.7顶层软件架构在顶层,cc2640BLE软件环境由三个独立的部分组成:一个实时操作系统(RTOS),一个应用镜像和一个栈镜像。TI-ROTS是一个实时的、抢占式的、多线程的操作系统采用同步任务的方式运行软件解决方案。应用和协议栈都有独立的任务运行在RT
本文标题:cc2640蓝牙芯片软件开发指导说明文件
链接地址:https://www.777doc.com/doc-4897385 .html