基于CC2540的蓝牙40模块与PC机通信设综述_第1页
基于CC2540的蓝牙40模块与PC机通信设综述_第2页
基于CC2540的蓝牙40模块与PC机通信设综述_第3页
基于CC2540的蓝牙40模块与PC机通信设综述_第4页
基于CC2540的蓝牙40模块与PC机通信设综述_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、CC2540模块是TI (Texas InstrumentS公司开发的一款用于蓝牙 4.0开发的系统单 晶片解决方案。利用它可以作为无线数据采集和收发的无线终端,蓝牙4.0技术构建的无线数据采集传输模块,具有功耗低,可靠性高和高安全性的优点,可以用作无线数据 传输系统的数据采集端。因此,研究蓝牙4.0技术构建的与PC机进行无线数据传输通 信的系统具有重大的现实意义和应用前景。设计的主要内容:设计并制作基于 CC2540模块的数据采集终端。系统主要完成利 用蓝牙4.0协议栈的编写,实现数据采集终端与 PC之间的无线数据通信。数据采集端 由TI官方的CC2040EM核心板和外围电路,如按键、 LC

2、D、DS18B20组成,PC端由 TI官方的CC25640 USBDongle和串口调试软件组成。本设计主要论述了蓝牙4.0协议栈的编写及应用,CC2540模块与PC的数据传输过 程及原理。其中,对蓝牙4.0协议栈的编写及应用进行重点论述。从机端(数据采集模 块)的工作主要是对硬件电路的设计和蓝牙4.0协议栈SimpleBLEPeriphral工程的编写;主机端(PC和USBDongle)的工作主要是对 USBDongle中HostTestReleaseT程的编写 和BTool软件的调试。最终实现数据采集模块采集到的数据能通过蓝牙4.0协议无线传输到PC端,并且PC端能控制数据采集端或向其发送

3、数据。AbstractCC2540 module is a system used for the development of Bluetooth 4.0 single chip solutions provided by TI (Texas Instruments) company to develop. Because the Bluetooth 4.0 tech no logy has the adva ntages of low power con sumpti on, high reliability and long dista nee, it can be used as th

4、e wireless terminals of wireless data acquisition.The main elements of design :Designing and fabricating the wireless data acquisitionterminal based on CC2540 module, impleme nti ng the wireless com muni cati on betwee n the wireless data acquisition terminal and PC. The data acquisition terminal is

5、 composed of the TI official CC2540EM and peripheral circuit, such as key, LCD, DS18B20. PC comprised TI official CC2540 USBD on gle and the serial debugg ing software.This paper made a briefly in troducti on of the overview, prospects of applicati on and the basic structure of the data acquisiti on

6、 an d tran smissi on of Bluetooth tech no logy. The main elements of the article discusses the compiling and application of the Bluetooth 4.0 protocol stack and the procedure and principle of data transmission between CC2540 module and PC.摘要.AbstractII.目录III引言11 绪论21.1 蓝牙应用现状21.2 研究目的和意义32 开发环境42.1

7、硬件环境42.1.1 蓝牙芯片 CC254042.1.2 CC2540EM 核心板。52.1.3 USBDongle62.1.4 SmartRF04EB72.2 软件环境82.2.1 IAR82.2.2蓝牙4.0 BLE协议栈 82.2.3 BTool92.2.4 Flash Programmer103 系统硬件设计113.1 设计方法和工具 113.2 系统框图113.3 硬件电路图11331 CC2540核心板硬件资源 113.3.2天线及巴伦匹配电路设计 123.3.3晶振电路设计 133.3.4电源电路设计133.3.5 LED电路设计 143.3.6五向按键电路设计 143.3.7

8、LCD12864 电路设计153.3.8复位电路设计 153.3.9下载调试电路设计 154 系统软件设计174.1 BLE蓝牙协议栈介绍 174.2 操作系统抽象层OSAL194.3 硬件抽象层HAL 204.4 配置文件层214.5 BLE协议栈开发平台配置234.6 SimpleBLEPeripheral 从机编程234.7 HostTestRelease主机编程285 系统安装与测试32结论33致谢34参考文献35随着物联网技术的迅速发展,企业对于数据准确性和实时性的要求又有了进一步的 提高,用户希望将数据的实时性扩展到更广阔的领域,由此,蓝牙4.0技术的出现显得尤为重要。在一些需要被

9、实时监控的环境中,比如粮食仓库、图书仓库、医院病房中, 目前数据的传输基本是基于有线的网络,但是,在生产现场环境比较恶劣或现场没有条 件进行人工测量统计数据,有线传输由于设备的驱动能力达不到或成本较高时,为了保 证数据能够及时、准确地送回到控制中心,无线传输就成为首选的途径。由于现在大多 数的PC机还没有内置蓝牙4.0功能,因此,研究蓝牙4.0技术实现PC机的无线数据处 理设计问题对现实生产生活中的应用有很大的意义。蓝牙4.0作为2010年新推出的新一代蓝牙技术规范,目前各大公司和厂家都纷纷 推出自己的硬件开发平台和软件支持,因此在硬件平台和软件支持的选择上不仅要满足系统的需求,还要符合蓝牙未

10、来发展的潮流; 在保证系统可实现的基础上,做出常用的I/O 口模块,拓展蓝牙应用的领域;蓝牙4.0的软件编程是基于一定的协议栈的基础之上的,类比于以前的编程来说难度不太好确定,但至少是要在熟悉协议栈的基础上进行开发,因此协议栈的学习成了一 个重点;本次设计采用的是以TI公司的CC2540芯片为核心的EM开发板,并在外围拓展所 需的按键、温度传感器和LCD等外设构成数据的采集端,PC端由TI公司提供的CC2540 USBDongle和上位机串口调试软件构成。需要通过对蓝牙 4.0的协议栈进行编写和应用 才能实现CC2540数据采集模块与PC机的有效通信。131绪论1.1蓝牙应用现状本节对蓝牙4.

11、0无线传输的国内外研究现状进行了总结并进行了对比分析。重点对 未来的应用前景进行分析。蓝牙技术的研究与开发在国外起步早,经验和资源积累较为丰富,从蓝牙的发展历 史来看,蓝牙技术由爱立信公司于1994年创立,后来由Nokia、苹果公司和三星所创立 的蓝牙兴趣小组旨在全世界范围内建立小范围的无线通信技术。伴随着后来的蓝牙特别兴趣小组的成立,使得蓝牙技术成为未来的一种全新的通信标准成为可能。后来,业内 所共同发起的蓝牙技术推广组织,将蓝牙技术的发展推向了时代的浪潮。2010年4月20日,蓝牙4.0协议发布,这是目前最新的蓝牙版本,为第三代蓝牙 的升级版。它包括三个子规范,为大家所熟知的是,就是传统意

12、义上的蓝术、高速度蓝 牙,还有蓝牙低功耗技术。在新一代的蓝牙中,蓝牙4.0 BLE在继承了以前的蓝牙技术的固有优点的基础上,同时它还使得传输速度得到大幅度的增加。更为重要的是,它所 固有的功耗很低,与第三代蓝牙版本版本相比,尤以低耗能技术为核心。这一次的技术 改进中它主要体现在如下方面,包括电池续航时间的加长、功耗低等方面,拥有着成本 低,可操作性强,延迟时间短、通信距离长,AES-128加密等诸多特色。此外,在新一代的蓝牙协议中,蓝牙BLE4.0的有效传输距离得到大幅的提升。相比于之前版本的10米的传输距离,而新一代蓝牙4.0 BLE的有效传输距离可达100米 目前,针对新一代蓝牙4.0的技

13、术规范,各大厂家和公司纷纷推出自己的硬件平台 和软件协议栈,在这一点上,德州仪器(TI)的蓝牙技术的发展站在世界的前列,其公司所开发的的CC2540系列产品为蓝牙技术的实现和应用提供了一个真正意义上的解决 方案,这将使得蓝牙4.0 BLE不再仅仅停留在规范文档之中,这将作为一项新的技术得 到广泛的实践和发展。国内对蓝牙技术的研发起步较国外要晚,但正所谓东方蓝牙风光无限,这一项短距 离无线通信技术,必将在世界的东方这一人口密集,商业繁荣的大陆得到前所未有的巨 大发展。这项技术只有在人与人之间以及人与机器之间相互交往的时候才会更大程度的 体现出它的价值。更值得一提的是,目前,蓝牙 4.0 BLE规

14、范文档已经推出,但是各大 国际公司和厂商所推出的硬件平台和软件开发系统不尽相同,这使得新一代蓝牙技术的开发与研究更加具有开放性,不会在短时间之内出现被少数大公司技术垄断的局面,这也有利于我国在这一次的技术浪潮中占据主动的优势,特别是借助于蓝牙技术,使我国 的信息产业能够更快更广泛地渗透到国民经济的其他领域中去,从而可以加快实现用信息化带动工业化,带动现代化的进程。1.2研究目的和意义物联网是当今科技和技术发展的重要产物,物联网为我们的生活和工作带来了巨大的改变。蓝牙4.0技术就是物联网发展的重要产物之一,它作为一种低功耗、高可靠性 和较远距离的数据传输标准,为各行各业提供了更多发展空间和工作效

15、率。比如粮食仓库中,粮食的保存和温度有十分密切的关系,适宜的温度能使粮食保存 的时间更长而且不会变质。但是传统的测温系统都是通过有线的方式连接传感器,而且 传感器的位置一旦被固定后,今后需要更换位置不是很方便。不仅如此,传统的测温系 统的功耗都比较大,需要定期的人工维护,这样下来,传统的有线测温系统的成本和效 果都不尽人意。而利用本设计提供的 CC2540数据采集模块,可以实现在粮食仓库的任 意需要测量温度的位置放置 CC2540数据采集模块,实时地将采集的温度通过蓝牙4.0协议无线传输给PC端,以便PC端根据采集的温度对温控系统进行适当的操作或做出 其他相应的操作,使需要改变温度的位置得到改

16、善。而且由于蓝牙4.0技术的超低功耗的 特点,非常适合粮食仓库这种需要长时间实时采集数据的环境。同样地,在图书仓库和 中药仓库中,对温度也有类似的要求,所以本设计的应用对于这种需要十分有效的温度 调节的环境有广阔的市场前景。又如在医院的病房中,病人的心率、血压、输液剩余量等信息都是需要被医生或护 士在第一时间得知的信息。而传统的传感器模块加有线传输的方式在医院病房这种人员 较多,且人员流动频繁的场所来说,显得很不方便也很不实用,消耗也十分大。而本设 计所提出的,基于CC2540的蓝牙4.0模块恰好能解决上面所述的问题。医生和护士只 需在办公室,就能从PC上实时地看到各个病人的情况,并且能准确地

17、去了解病人的情 况,做出相应的医疗方案和应急措施,这对医生和病人来说都是极大的好处。综上所述,蓝牙4.0技术将把物联网又向前带了一大步,在未来的生产和生活当中, 蓝牙4.0必将发挥其不可忽视的作用,为我们带来极大的便利与快乐。2开发环境2.1硬件环境2.1.1 蓝牙芯片CC2540CC2540集成了 2.4GHz射频收发器,是一款完全兼容8051内核的无线射频单片机, 它完美的兼容了蓝牙低功耗协议栈,非常适合蓝牙低功耗的开发和应用,它有3个不同的存储器访问总线:特殊功能寄存器(SFR);数据(DATA);代码/外部数据(CODE/XDATA )。CC2540单片机使用单周期访问 SFR、DAT

18、A和住SRAM。当CC2540处于空闲模 式时,任何的中断可以把 CC2540恢复到主动模式。某些中断还可以将 CC2540从睡眠 模式唤醒。位于系统核心存储器交叉开关使用 SFR总线将CPU、DMA控制器与物理存 储器和所有的外接设备连接起来。CC2540的Flash容量可以选择,有128KB、256KB,这就是CC2540单片机的在线 可编程非易失性存储器,并且映射到代码和外部数据存储器空间。除了保存程序代码和 常亮之外,非易失性存储器允许应用程序保存必要的数据,以保证这些数据在设备重启 后可用。图2-1是CC2540的内部结构图MATCHDCK1HI冃ofVOLTAGE EULATCNR

19、1 JDCi f2VIDCOvJPL由cjRraiw-cjscRtSCT-H KP* RESETXDBC aiDEBUGHEWiCE005匸RMCJUM 匙 BOBROUKDUTJKMJM-AflGrnvTMmiCRjGOREFLUSHrEHOHAl 1| A/tALDG15图2-1 CC2540内部结构图如图2-1所示,CC2540的这些模块大致可以分为三类:CPU和内存相关的模块; 外设、时钟和电源管理相关的模块,以及无线电相关的模块。2.1.2 CC2540EM 核心板。CC2540 EM是TI公司官方推出的,蓝牙 4.0开发套件之一。CC2540EM核心板主 要包括CC2540单片机、

20、全尺寸倒F天线,晶振以及扩展接口, CC2540EM核心板如图 2-2所示:图2-2 CC2540EM开发板实物图2.1.3 USBDongle如图2-3所示,是 CC2540 USBDongle的实物图。它是作用是可以配合TIPacketsniffer软件实现BLE的无线抓包,另外可以配合 PC端的BTool软件实现PC端 的BTool主机。USBDongle通过USB接口与PC连接,安装TI的驱动程序,将USBDongle 模拟成串口,然后运行BTool。H 甲LEOPDER 陆2帝膚尸ISU!骼口图2-3 USBDongle实物图2.1.4 SmartRF04EB如图2-4所示,是Sma

21、rtRF04EB的实物图。它是用来调试和下载软件到 EM的仿真 器。它是TI第一代的CC系列仿真器,性价比高,支持 CC2540和CC2530,但不支持 CC2541。Richtek LDOCflO51f=32O*5 If f扃僧按涎图 2-3 SmartRF04EB 实物图2.2软件环境2.2.1 IARIAR Embedded Wordbench(又称EM)的C交叉编译器是一款完整、稳定且容易使用 的专业嵌入式应用开发工具,IAR对不同的微处理器提供统一的用户界面,目前可以支 持至少35种的8位、16位、32位的MCU。其特点如下:完全兼容标准C语言。内建相应芯片的程序苏荷和内部优化器。高

22、效浮点支持。内存模式选择。为了满足本设计的需求,使用的IAR版本是8.10.4。2.2.2蓝牙4.0 BLE协议栈BLE协议栈需要先自己安装,里面存放的是协议栈源码,TI会陆续更新协议栈版本,但是本设计为了配合IAR的版本,所以选择使用1.3.2版本的BLE协议栈。协议栈文件夹下有以下几个目录:AccessoriesAccessoriesDrivers 里面存放的是烧写了 HostTestRelease 程序的CC2540 USBDongle的USB转串口驱动程序,很多用户反应说 USBDongle 插到电脑上没有被识别成串口号,这里就要注意, USBDongle出厂时烧写的是 Packets

23、 niffer的固件,是协议分析仪,叧有当 USBDdo ngle烧写了 HostTestRelease程序时才会表现为一个串口,此时USBDongle的驱动程序即在 Drivers目录下。AccessoriesHexFiles里面存放的是TI开发板上的预先编译的hex文件。 AccessoriesBTool以前的协议栈版本没有这个目录,这里存放的是BTOOL的安装文件,不过不需要手动安装,因为刚才安装协议栈的时候已经安装BTOOL。Component目录Components存放的是最终要的协议栈组件,包括底层的BLE,还有开发板硬件层 hal,还有类似操作系统的osal。Document目录

24、Documents存放的是 TI提供的关于协议栈和协议栈 demo的相关介绍和开发文档,因为该目录下的文件非常重要,虽然全部是英文,也 需要查看:TI_BLE_Sample_Applications_Guide.pdf协议栈 demo 操作指南,协议栈里 所有demo的说明都在这里。TI_BLE_Software_Developers_Guide.pdfBLE 协议栈指南,介绍 BLE 和 TI 的BLE协议栈。BLE_API_Guide_main.htm BLE API文档,协议栈里调用的 API函数还 有调用时序,均在此文档中。Projects目录Projectsble,最后一个,也是最重

25、要的目录,基于协议栈的demo工程都在这里。所有的协议栈demo都要放到Projects/ble这个目录下编译运行,因为IAR程配 置中使用的是相对路径,一旦IAR工程位置和整个协议栈源码的相对位置发生 变化,就无法找到ble的其他组件,编译时会产生大量的无法找到文件的错误, 所有程序必须要放到这里来编译。2.2.3 BToolBTool是一款TI公司出品的,与CC2540开发配套的PC端应用程序,通过使用主 机控制接口( HCI)命令的方式与蓝牙BLE外设通信。Btool允许用户使用基本的BLE 集中器设备功能,例如发现蓝牙外设或广播设备、建立与外设的连接、进行GATT应用数据的读写操作、绑

26、定服务等。因此,可以在PC端使用Btool工具来进行蓝牙外设应用程序的开发调试。224 Flash ProgrammerFlash Programmer也是一款TI的官方软件,与 SmartRF04EB配合使用,向 EM开 发板烧写HEX文件。3系统硬件设计3.1设计方法和工具硬件系统的设计采用模块化的方法,即首先设计出CC2540核心板,再设计出其外围电路,之后整体调试。系统设计工具软件采用Altium Designer。这是一款功能强大的电路设计软件,其原型为大家所熟知的Protel,为广大的硬件设计者提供了完美的硬 件开发系统,这套软件从原理图的绘制到电路的实际仿真,PCB版图的设计等方

27、面极大地便利了用户的自主开发。3.2系统框图系统硬件框图包括CC2540核心板和外围电路,整个系统传输过程如图3-1所示:USB图3-1系统硬件框图3.3硬件电路图3.3.1 CC2540核心板硬件资源CC2540EM核心板主要包括CC2540单片机、全尺寸倒F天线,晶振以及扩展接口,CC2540EM核心板如图3-2所示:a b - :iTlI*XK1U丸WDlMgDJJElKMJ1Wwm曲盯苗A TfELFAMJDlAAEEL8JULDKIEQ2bo anjHJ町1 irOIff!诚0PCj心KJIX dKJWjg 强anWs5DCEJJM_EEDecent irJiKrT-jri. n远帼

28、嶼*$磊二 G一 一-IX1苕ESIJoxo图3-2 CC2540核心板332天线及巴伦匹配电路设计CC2540外部仅需几个简单的阻容网络即实现复杂的RF前端。这部分的电路也叫做巴伦匹配电路,这部分的结果好坏对通信距离,系统功耗都有较大的影响。TI已经提 供了非常可靠的参考设计,所以本设计只需按照 TI的参考设计来开发电路即可。天线设计可以根据不同的应用来选择,既可以使用PCB天线,也可以使用SMA天线。本设计采用的是PCB天线,天线及巴伦匹配电路设计如图 3-3所示。L 2N0 DW21fifi?G?JDn tANT图3-3天线及巴伦匹配3.3.3晶振电路设计由于CC2540需要2个晶振,3

29、2MHz和32.768K,所以本设计安装要求设计了这 2 个晶振电路,晶振电路接口如图3-4所示。1ctj f-1r 图3-4晶振电路334电源电路设计TI第一代CC2540DK开发套件中的EM开发板可以使用USB转DC电源从USB接 口上取电,另外也可以使用锂电池等供电,直接插在 BT1上,电压输入范围为3.4V到 6V,电源管理电路如图3-5所示-J$ulu闵丁图3-5电源管理电路335 LED电路设计本设计采用与TI完全兼容的四色LED,高电平驱动,另外D4和S1按键共用一个 端口。LED和按键S1电路如图3-6所示。土图3-6 LED驱动和按键S1驱动电路3.3.6五向按键电路设计协议

30、栈另外一个非常重要的拓展电路就是五向按键,几乎每个协议栈demo都会用到五向按键来辅助操作。五向按键的电路比较复杂,但是原理非常简单,当按键按下时首先产生一个高电平, 触发一个GPIO中断,然后通过放大器输出不同的电压值,当CC2540接收到中断后开始去读五向按键的电压,不同的方向按下产生的电压值不同,这样就实现了 joystick。 五向按键设计电路如图3-7所示。图3-7五向按键电路图337 LCD12864电路设计本设计采用小型的12864作为系统的显示系统,该 LCD采用SPI接口。LCD电路 设计如图3-8所示。11 :LCDCS永HL HHsflECK SICC*LED a7T1M

31、OSTTns 匚 liPTCT-: fi.;36图3-8 LCD电路3.3.8复位电路设计CC2540内部集成了上电复位电路,为了方便程序调试,本设计在板子上加了一个 按键用来在线复位,尤其当使用 UART转串口时,直接断电会导致PC设备异常,这样 复位按键就能够起到很好的系统复位功能。复位电路如图3-9所示。|*GND-3SSSJ图3-9复位电路3.3.9下载调试电路设计CC2540EM开发板使用标准的 CC-Debugger调试接口,为了方便调试,特意将 debugger接口的9脚和2脚短接,这样可以使用CC-Debugger为板子供电。下载调试电 路如图3-10所示。GNDP3VCCI2

32、345678910P2 2DBG DCDEG DD P2 1P 4CS LED3SCLKPI SK RJiSETMOSIPl 7、L L 1DC3 10PL图3-10下载调试电路4系统软件设计4.1 BLE蓝牙协议栈介绍协议定义的是一系列的通信标准,通信双方需要共同按照这一标准进行正常的数据 收发;协议栈是协议的具体实现形式,通俗的理解为用代码实现的函数库,以便于开发 人员调用。蓝牙4.0 BLE协议栈就是将各个层定义的协议栈都集合在一起,以函数的形式实现,并提供一些应用层 API,供用户调用。值得注意的是,虽然协议是统一的,但是协议的具体实现形式是变化的,即不同的 厂商提供的协议栈是有区别的

33、。蓝牙4.0 BLE协议栈具有很多版本,不同的厂商提供的蓝牙 4.0 BLE协议栈有一定 的区别,本次的毕业设计选择的是 TI公司推出的蓝牙4.0 BLE协议栈BLECC254x 1.3.2.TI公司推出的新一代蓝牙4.0 BLE协议栈由两个部分组成:主机和控制器。主机和 控制器的分离要追溯到蓝牙BR/EDR设备时期,控制器和主机通常会分开实现。协议栈的实现方式采用分层的思想,控制器部分包括:物理层、链路层、主机控制 接口层;主机部分包括:逻辑链路控制及自适应协议层、安全管理层、属性协议层、通用访 问配置文件层、通用属性配置文件层,如图4-1所示:ApplicationGAP Flofe/Se

34、curity ProfilerGATT FtofileshosiGeneric Access Profile (GAP)Generic AttributeProfit GATT)Security Manager (SM)AttributeProtocol(ATT)Logical Link Control and Adaptslion Protocol (L2CAP)Coi ito-k?FHosl-Gontrsl er Inteaoe (HCI)Link Layer (LL)Physical Layer (PHY)图4-1蓝牙4.0 BLE协议栈蓝牙4.0 BLE协议栈采用分层思想将服务、接口和

35、协议这三个概念明确地区分开来。 这样各层之间具有很强的独立性,当协议的一部分发生变化时,只需对与此相关的分层 进行修改即可,其他各层不需要改变。物理层(Physical Layer)是1Mbps自适应跳频的GFSK射频,工作于免许可证的 2.4Ghz ISM (工业、科学和医疗)频段。链路层(Link Layer)用于控制设备的射频状态,设备将会处于五种状态之一:等 待、广告、扫描、初始化、连接。广告设备不需要建立连接就可以发送数据;而扫描设 备收听广播设备发出的数据;发起连接的设备通过发送连接请求来回应广播设备,如果 广播设备接受连接请求,那么广播设备与发起连接的设备将会进入连接状态。主机和

36、控制器之间的标准的通信接口是在主机控制器接口层实现的。这一层可以是软件API或硬件接口,女口 UART、SPI、USB。逻辑链路控制及自适应协议层(Logical Link Con trol a nd Adaptation Protocol )为上 层提供数据封装服务,允许逻辑上的点对点数据通信。安全管理层(Security Man age)定义了配对和密钥方式,并为协议栈其它层与另一 个设备之间的安全连接和数据交换提供服务。属性协议层(Atttibute protocol)允许设备向另一个设备展示一块特定的数据,称之 为“属性”。在ATT环境中,展示“属性”的设备称为服务器,与之配对的设备称

37、为客 户端。链路层状态(主机和从机)与设备的ATT角色是相互独立的。通用属性配置文件层(Gen eric Attribute profile)是在ATT上面的一层结极,定义 了使用ATT的服务框架,GATT规定了配置文件(鼎鼎有名的profile)的结极,在BLE 中,所有被profile戒者服务用刡的数据块都称为“特性,characteristic两个建立连接 的设备之间的所有数据通信都是通过 GATT子程序处理,应用程序和 profile直接使用 GATT 层。TI公司免费的蓝牙4.0 BLE软件开发套件是完整地支持单模蓝牙 4.0 BLE应用开发 的平台,它基于CC2540/CC2541

38、射频单片机,蓝牙4.0 BLE软件平台支持两种不同的 应用开发配置。4.2操作系统抽象层OSALOSAL (操作系统抽象层)是类似于一个系统的抽象层,但它不是一个真正意义上 的操作系统。OSAL常用术语:资源、共享资源、任务。在任务设计时,需要将问题尽可能地分为多个任务,每个 任务独立完成某种功能,同时被赋予一定的优先级,拥有自己的CPU寄存器和堆栈空间。内核:使用内核可以大大简化应用系统的程序设计方法,借助内核提供的任务切换 功能,可以将应用程序分为不同的任务来实现。保护共享资源最常用的方法是:关中断;使用测试并置位指令;禁止任务切换; 使用信号量。其中,在蓝牙4.0 BLE协议栈内嵌操作系

39、统中,经常使用的方法是关中断。在蓝牙4.0 BLE协议栈中,OSAL主要提供如下功能:任务注册、初始化和启动;任务间的同步、互斥;中断处理;存储器分配和管理; 提供定时器功能。在新推出的蓝牙4.0 BLE协议栈中,其中有三个变量值得一提:tasksC nt:该变量保存了任务的总个数该变量的声明为:uint8 taskCnt。其中 uint8 的定义为:typedef unsigned char uint8taskEve nts:这是该变量的声明为:个指针;uint16 *taskEvents。其中 uint16 的定义为:typedef unsigned shortuin t16。taskAr

40、r:这是一个数组;该数组的声明为:pTaskEve ntHa ndlerFn taskArr这是一个函数指针,指向了对应的事件处理函数。4.3硬件抽象层HAL硬件抽象层(HAL )是提供硬件服务而又不涉及太多硬件细节的层,为应用提供访 问GPIO、UART、ADC等硬件的接口。硬件抽象层文件目录如图4-2所示:| H3 Ej SimpleBLEPeripheral_Main T 口 口 Common|3 LJ Include| HDTarget pSQ INCLUDEH3DLIBHsCjnfiHAL7*7CAPRolInit. ( ti GAFB c n dMgr_Init;p3 口 OSAL

41、I IHCIL吕AT TServApp _I ni 严 ApplicationS jjn: 1 eBLEPeriph图4-2 HAL文件目录硬件抽象层文件目录包括 HAL驱动和HAL相关文件的头文件,HAL文件存放在 三个不同的目录之下,HAL Common文件夹包含协议栈、MAC和驱动中使用到相关配 置文件。其中“ hal_drivers.C文件包含所有驱动初始化及相关事件处理机制。主要包括 以下三个函数:HAL_Init ()它是osaltaskadd调用,以便在 OSAL中注册HAL的驱动; HALdriverInit ()它是main ()函数调用来初始化硬件驱动。HAL_proces

42、sevent ()这个函数用来处理 OSAL中HAL相关的驱动事件,例如按 键、LED、LCD、蜂鸣器、休眠定时等。HAL Include文件夹包含HAL驱动及HAL相关文件的头文件,如图4-3所示:ECU CommonIncludeQ haLadc.h Q hal_asserlh D hal_board.h |?1 heLdefs.h E) hal_drivers.h 0 hfiljlash.h 0 haLkey.h 一 B heljcd h B haljed.h D h&l_rpc.h 0 h&l.sleep.h 0 haljimer.h lI hal_uart.h Q saddr.ilH

43、SU INCLUDE图4-3 In elude文件下头文件HAL Target文件夹下的Drivers包含所有HAL驱动的“ .c”文件。4.4配置文件层蓝牙4.0 BLE协议栈的配置文件层包括 GAP角色/安全配置文件、GATT配置文件 两部分。(1)通用访问配置文件(GAP):BLE协议栈中的GAP层负责处理设备访问模式和程序,包括设备发现、建立连接、 终止连接、初始化安全特色和设备配置。GAP层总是作为下面四种角色之一:广播者一不可连接的广告设备;观测者一扫描广播,但不发起建立连接;外部设备一可连接的广告设备,可以在单个链路层连接中作为从机;集中器一扫描广告设备并发起连接,在单链路层或多

44、链路层作为主机,目前,BLE协议栈支持一个集中器连接三个外设。在典型的蓝牙低功耗系统中,外部设备广告特定的数据,来使集中器知道它是一个 可以连接的设备。广告内容包括设备地址以及一些额外的数据,如设备名等。集中器收 到广告数据后,向外部设备发送扫描请求,然后外部设备将特定的数据回应给集中器, 称为扫描回应。集中器收到扫描回应后,便知道这是一个可以建立连接的外部设备,这 就是设备发现的全过程。此时,集中器可以向外部设备发起建立连接的请求。连接请求 包括下面一些连接参数。连接间隔一在两个BLE设备的连接中使用跳频机制,两个设备使用特定的信道收 发数据,然后过一段时间后再使用新的信道(链路层处理信道切

45、换),两设备在信道切换后收发数据称之为连接事件。即使没有应用数据的收发,两设备仍然会通过交换链路 层数据来维持连接。连接间隔就是两个连接事件之间的时间间隔,连接间隔以1.25为单位,连接间隔的值是6(7.5ms) 3200(4s)。不同的应用可能要求不同的时间间隔。长的时间间隔的优势是显著地节省功耗,因 为设备可以在连接事件之间有较长事件的休眠,坏处是当设备有应用数据需要发送时, 必须要等到下一个连接事件;短的时间间隔优势是两设备连接频发,可以更快地收发数 据,不利之处是设备因连接事件的到来而被频繁地唤醒,会有较多功耗。从机延迟一这个参数的设置可以使从机(外部设备)跳过若干连接事件,这给了外

46、设更多的灵活度,如果它没有数据发送时,可以选择跳过连接事件继续休眠,以节省功 耗。管理超时一这是两个成功连接事件之间的最大允许间隔。如果超过了这个时间而没有成功的连接事件,设备被认为是丢失连接,返回到未连接状态。这个值的单位是10ms, 管理超时的范围是10( 100ms)3200 (32ms)。另外,超时值必须大于有效的连接间隔 有效的连接间隔=连接间隔* ( 1+从机延迟)。外设可以通过向集中器发送“连接参数更新请求”来改变连接设置,这个请求由协 议栈的L2CAP层来处理。这个请求包含 4个参数:最小连接间隔、最大连接间隔、从 机延迟、超时。这些值代表了外设所要求的连接参数。当集中器收到请

47、求后,可以选择 接受或拒绝这些新的参数。连接可以被主机或从机以任何原因自动终止。当一方发起终止连接时,另一方必须 响应。然后两个设备才能退出连接设备。(2)通用属性配置文件(GATT)主机既可以是GATT客户端也可以是GATT服务器;从机既可以是GATT客户端也 可以是GATT服务器。在蓝牙4.0 BLE协议栈中的SimpleBLEPeripheral应用中,有三个 GATT服务。GATT定义了在BLE连接中发现、读取和写入属性的子过程。属性表是 一个数据库,包含了称为属性的小块数据,除了值本身,每个属性都包含下列属性:句柄一属性在表中的地址,每个属性有唯一的句柄;类型一表示数据代表的事务,通

48、常是蓝牙技术联盟规定或由用户自定义的UUID(Universally Unique Identifier);权限一规定了 GATT客户端设备对属性的访问权限,包括是否能访问和怎样访问。GATT定义了若干在GATT服务器和客户端之间的通信的子过程。下面是一些子过程:读特性值一客户端设备请求读取句柄处的特性值,服务器将此值回应给客户端(假 定属性有读权限)。使用特性的UUID读一客户端请求读基于一个特定类型的所有的特性值,服务器将所有与指定类型匹配的特性的句柄和值回应给客户端设备(假设属性有读权限)。读多个特性值一客户端一次请求中读取几个句柄的特征值,服务器将这些特征值回应给客户端(假设属性有读权

49、限)。客户端需要知道如何解析这些不同的特性值的数据。4.5 BLE协议栈开发平台配置TI公司免费的蓝牙4.0 BLE软件开发套件是完整地支持单模蓝牙 4.0 BLE应用开发 的平台,它基于CC2540/CC2541射频单片机,是一套完整的 SoC解决方案。蓝牙4.0 BLE软件开发平台支持两种不同的应用开发配置:1. 单一设备:控制器、主机、配置文件、应用程序在一片CC2540上实现,这是最简单和最常见的配置。这种方式提供最低的成本和功耗,大部分实际应用都采用这种方式。SimpleBLEPeripheral和SimpleBLECentral示例工程都是采用单一设备的配置方式。2. 网络处理器:

50、控制器和主机部分在CC2540上执行,而应用程序和Profiles在另一个设备执行。 应用程序和Profiles通过厂商特定的HCI命令与CC2540通信,这一过程需要使用硬件 或UART接口,或者通过USB使用虚拟的UART接口。网络处理器配置适用于应用程 序在另一个设备(外部微控制器或PC)上运行的情况。在这种情况下,应用程序可以在外部独立开发,而协议栈仍然在CC2540上运行。要使用网络处理器,HostTestRelease 工程必须使用。如上所述,本设计是为了实现 CC2540无线通信模块与PC机的通信,所以本设计所选择的BLE协议栈开发平台配置为网络处理器配置。4.6 SimpleB

51、LEPeripheral 从机编程这里说到的从机,也就是本设计用到的CC2540EM开发板。在TI的BLE协议栈中, 虽然主机和从机的主体结构类似(均基于osal),但是从机和主机有着很大的区别,从机里包含了一个叫做profile的相关代码,这个profile决定了从机的功能。例如防丢器、 血压仪、心率计等均是蓝牙组织规定的profile。打开 SimpleBLEPeripheral 从机工程。ProjectsbleSimpleBLEPeripheralCC2540SimpleBLEPeripheral.eww 进入 SimpleBLEPeripheral.c主体源文件。SimpleBLEPe

52、ripheral 工程如图 4-4 所示:FilmSimpleBLEPeripheral - CC250-maAPP-ED UAL-E 口 INCLUDE-E Q LIB-e 口忖 Fi-E 口 0呂AL-EQ PROALES -ED TOOLSOutput图 4-4 SimpleBLEPeriphal 工程文件文件列表分成如下几个文件夹:APP包含应用程序源代码和头文件;HAL包含硬件抽象层源代码和头文件;INCLUDE 这个组包含所有的BLE协议栈API的头文件;LIB 协议栈库文件;OSAL 包含操作系统抽象层源代码和头文件;PROFILE 包含 GAP 角色 Profile、GAP 安

53、全 Profile、GATT Profile 的源代码和 头文件;TOOLS包含 buildConfig.cfg、buildComponents.cfg。也包含“ OnBoard.c” 和“OnBoard.h”,处理用户接口功能;OUTPUT IAR输出的内容。SimpleBLEPeripheralnit任务初始化函数,如图 4-5所示。jazei. HWd2U4T OT3S5:OT2BTt 了02号0:W2M tM=2 03 7 Di94 t SO&SfAD玄賢町: 0t !M5M :wao&t MJOltW1Q3 t3-D 3G3iM3Q;303G1 :M3M r 5D3G9iD-QZlfJ.OD311;00312 tynini MSI Si JD31r M 317 ;ODSltrJ012Q:iraj.d. SimpleBLEPerlpheralJnlt 斗q L 3 Laa k idl )4=耳fETTiRh研nHQhiRrviI.TKFfl - lKk 1 r_it th寻 cx24Ji?f-mini k&ehj 農新丄亡會 aciwsn/tmbifErtl弓:1总口 ijrtil csittor is pressed门 In I LM i_JdVMF LU 1 ng_i rhh wFA/ for QtME h-ardLar

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论