传感网应用开发(高级)课件第5章_第1页
传感网应用开发(高级)课件第5章_第2页
传感网应用开发(高级)课件第5章_第3页
传感网应用开发(高级)课件第5章_第4页
传感网应用开发(高级)课件第5章_第5页
已阅读5页,还剩104页未读 继续免费阅读

下载本文档

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

文档简介

1、“1+X”传感网应用开发 蓝牙技术.模块及BLE协议栈01蓝牙技术02蓝牙模块03BLE协议栈目录CONTENTS1.蓝牙技术简介历史1998年5月,爱立信,诺基亚,东芝,IBM和英特尔五家著名厂商,在联合开展短程无线通信技术的标准化活动时提出了蓝牙技术,其宗旨是提供一种短距离,低成本的无线传输应用技术。蓝牙技术最初由爱立信公司创制,时间是1994年。随着时代发展,经过历次技术更新,现在已经发展到蓝牙5.0规范。蓝牙无线技术已经是使用范围最广泛的全球短距离无线标准之一。蓝牙4.0技术规格最大传输速度可达24Mbit/s有效距离可达100米自适应跳频技术,最大程度减少与其他2.4G ISM频段无

2、线技术的干扰最短可在3毫秒内完成连接设置并开始传输数据。所有数据包都使用24-bitCRC校验,确保最大程度抵御干扰。使用AES-128 CCM加密算法蓝牙4.0规范蓝牙4.0涵盖了传统蓝牙,高速蓝牙和低功耗蓝牙三种技术蓝牙4.0规范的核心是低功耗技术,即蓝牙4.0 BLE蓝牙4.0技术同时具有低成本,向下兼容,通用性(开放的接口标准)等特点高可靠性,低成本,低功耗,高安全性,快速启动,瞬间连接。总结:其他几种常见的短距离无线通信技术射频识别(RFID)ZigBee超宽带(UWB)MeshWIFINFC2.蓝牙模块简介新大陆NewLab实验箱中蓝牙模块进行蓝牙4.0 BLE开发,首先要有硬件支

3、持,蓝牙通信实验板上选用的是TI公司的CC2541芯片,它集成了2.4GHz射频收发器,是一款完全兼容8051内核的无线射频单片机,它与蓝牙低功耗协议栈共同构成高性价比,低功耗的片上系统解决方案。外设DMA定时器电池监视器和温度传感器高级加密标准(AES)协处理器8通道可配置分辨率的12位模数转换器23个通用I/O引脚IIC,UART开发工具CC2541评估模块工具包(CC2541EMK)CC2541小型开发工具包(CC2541DK-MINI)SmartRF软件IAR嵌入式Workbench3.BLE协议栈简介什么是协议栈?协议栈是协议具体的实现形式,通俗地理解位用代码实现地函数库,以便开发人

4、员调用。协议定义的是一系列的通信标准,通信双方需要共同按照这一标准进行正常的数据收发。蓝牙4.0 BLE协议栈就是将各个层定义地协议都集中在一起,以函数的形式实现,并提供一些应用层API,供用户调用。注意:虽然协议是统一的,但是协议的实现是变化的,即不同厂家提供的协议栈是有区别的。如何使用协议栈?蓝牙4.0 BLE协议栈已经实现了蓝牙4.0 BLE协议,用户只需要使用协议栈提供API进行应用程序的开发,不必过多的关注BLE协议的具体实现细节,只需要关注应用程序数据从哪里来到哪里去。至于调用了协议栈中的函数后,如何驱动硬件进行工作,我们并不关心。本实验使用的是TI公司的CC2541芯片,TI公司

5、提供了协议栈,可以直接去TI公司官方网站下载。接下来以“BLE-CC254x-1.3.2”版本的协议栈为例,介绍协议栈的使用方法。在解压路径下,找到解压后名为“BLE-CC254x-1.3”的文件夹。解压下载后名为“BLE-CC254x-1.3.rar”的压缩文件。如何使用协议栈?进入该文件夹后,有一个名为“BLE-CC254x-1.3.2”的可执行文件,如下图所示:如何使用协议栈?鼠标选中该图标,双击鼠标左键,进行安装。点击同意安装协议,选择安装路径,点击“NEXT”按钮,之后点击按钮进行安装。安装完成后,根据安装路径找到相应文件夹,默认安装路径是“C:Texas InstrumentsBL

6、E-CC254x-1.3.2ProjectsbleSimpleBLEPeripheralCC2541DB”如何使用协议栈?在该文件夹下,找到“SimpleBLEPeripheral.eww”,如下图所示鼠标左键选中,快速双击打开即可开启工程,工程布局如右图所示。“1+X”传感网应用开发 基于BLE协议栈的串口通信01任务要求02知识链接03任务实施目录CONTENTS1任务要求任务要求搭建蓝牙通信模块与PC机串口通信系统,要求蓝牙信模块上电时,向串口发送 Hello NEWLab!”,并在PC机的串口调试软件上显示。另外,在串口调试软件上发送信息给蓝模块时,蓝牙通信模块收到信息后,立刻原样返回

7、串口接收到的数据给串口调试软件,并显示出来。2知识链接知识链接蓝牙4.0BLE协议栈具有很多版本,不同厂家提供的蓝牙4.0BLE协议栈有一些不同,本书选用TI公司推出的BLE-CC254x-.4.1.43908b版本,双击BlE-CC254x-3908BLE-cc254x-1.3.2.exe文件,即可以进行安装,默认安装在C盘。BLE协议栈3任务实施01搭建蓝牙串口通信系统打开SimpleBLEPeripheral工程0203串口初始化串口发送数据0405串口接收数据06实施步骤串口显示SimpleBLEPeripheral工程初始化信息搭建蓝牙串口通信系统01首先把蓝牙通信模块

8、固定在NEWLab平台上,再通过串口线把平台与PC机连接起来,并将NEWLab平台上的通讯方式旋钮转到“通讯模式”,最后给CC2541上电,将拨码开关JP2拨到J9位置。打开SimpleBLEPeripheral工程02打开“bleSimpleBLEPeripheralCC2541DB 目录下的SimpleBLEPeripheral.ew工程,在 Workspace栏内选择CC2541串口初始化03打开工程中NPI文件夹下的npi.c文件,串口初始化函数void NPI_InitTransport(npiCBack_t npiCBack)串口号、波特率、流控、校验位等进行配置。串口发送数据04

9、打开 simpleBLEPeripheral.c文件中的初始化函SimpleBLEPeripheral_Ini t(uint8 task_id),在此函数中添加NPI_InitTransport(NUll),在后面再加上一条上电提示 Hello NEWLab!的语句,添加头文件语句:#includenpi.h串口接收数据05在simpleBLEPeripheral1.c文件声明串口回调函数NpiSerialCallback,并在 SimpleBLEPeripheral_init函数中传入串口回调函数,将NPI_InitTransport(NULL)修改为:NPI_InitTransport (

10、NpiSerialCallback)串口显示SimpleBLEPeripheral工程初始化信息06打开工程目录中HALTargetCC2540EBDrivershal_lcd.c文件,在HalLcdWriteString函数中添加代码串口显示SimpleBLEPeripheral工程初始化信息06在预编译中添加LCD_TO_UART, HAL_LCD=TRUE并且在hal_lcd.c文件中添加#include“npi.h”,编译无误后,下载程序,模块上电后,打开串口调试助手,可以看到图中所示结果,这样就可以把LCD上显示的内容传送到PC机端显示,极大地方便调试。 主从机建立连接与数据传输主从

11、机建立连接与数据传输提纲 原理及流程图 从机连接过程 主机连接过程 任务实施 总结提纲 原理及流程图 从机连接过程 主机连接过程 任务实施 总结 结合蓝牙 4.0 BLE协议,采用两块蓝牙模块,一个模块作为从机,另一个模块作为主机,使主从机建立连接,并能进行简单的无线数据传输。原理及流程图原理及流程图开始初始化发送广播发送广播建立连接并作为从机开始初始化按键搜索发现设备建立连接并作为主机SimpleBLEPeripheral工程(节点设备)SimpleBLECentral工程(集中器设备)搜索回应搜索请求发起连接请求响应连接请求提纲 原理及流程图 从机连接过程 主机连接过程 任务实施 总结 以

12、 SimpleBLEPeripheral 工程作为节点设备的程序,初始化完成后,节点设备处于可发现状态,以广播的形式向外界发送数据。从机连接过程只有GAP服务的UUID相匹配,设备才能建立连接。 从机连接过程集中器设备可以通过搜索来发现正在发送广播数据的节点设备。当节点设备接收到集中器设备的搜索请求时,定义了回应数据。static uint8 scanRspData 当集中器设备接收到节点设备搜索回应的数据后,向节点设备发送连接请求,节点设备接受请求并作为从机进入连接状态。从机连接过程提纲 原理及流程图 从机连接过程 主机连接过程 任务实施 总结以 SimpleBLECentral 工程作为集

13、中器设备(主机)的程序,主机的连接过程大致可分为初始化、搜索节点设备、查看及选择从机并连接。主机连接过程任务初始化函数 SimpleBLECentral_Init (uint8 task_id)主要功能包括:设置最大扫描节点个数,8个 GAP服务设置,绑定管理设置, GATT初始化,注册按键服务。主机连接过程集中器发起搜索请求,调用GAP事件回调函数SimpleBLECentralEventCB( )在设备发现过程中,当一个设备被发现,产生一个GAP_DEVICE_INFO_EVENT 事件,发送一个OSAL消息。设备搜索完成后,集中器显示搜索到的从机,并提示主机连接。主机连接过程如果未连接,

14、并且已经扫描到设备,主机向从机发起连接请求。调用GAP状态回调函数simpleBLECentralEventCB( ).回调函数中使用OSAL定时器,定时触发START_DISCOVERY_EVT事件,定时时间到达后调用事件处理函数 SimpleBLECentral_ProcessEvent( )。主机连接过程SimpleBLECentral 工程默认采用按键进行搜索、连接,当有按键动作时,会触发KEY_CHANGE事件,进入simpleBLECentral_HandleKeys( )函数。主机连接过程按键功能UP1.开始扫描或停止设备发现;2.连接后可读写特征值LEFT显示扫描到的节点设备,

15、在LCD中滚动显示RIGHT连接更新CENTER建立或断开当前连接DOWN启动或关闭周期发送RSSI信号值提纲 原理及流程图 从机连接过程 主机连接过程 任务实施 总结由于蓝牙模块中没有Joystick按键,所以采用串口发指令方式代替按键。串口指令1,2,3,4,5分别对应按键的UP, LEFT, RIGHT, CENTER, DOWN。需要把按键程序simpleBLECentral_HandleKeys( )中的代码移植到串口接收处理函数NpiSerialCallback( )中去。任务实施任务实施任务实施主机对应的PC机串口发送指令“1”,搜索节点设备。任务实施任务实施主机对应的PC机串口

16、发送指令“2”,查看节点设备,显示编号。发送指令“4”,进行连接,显示连接信息。任务实施主机对应的PC机串口发送指令“5”,周期显示RSSI信号值,再发送指令“5”则取消显示。任务实施当前状态下,主机对应的PC机串口发送指令“1”,执行读写char。发送指令先write char再次发送是read char每一次循环,char值加1。任务实施当前状态下,主机对应的PC机串口发送指令“4”,主从机断开连接,从机再次处于广播状态。提纲 原理及流程图 从机连接过程 主机连接过程 任务实施 总结介绍了基于蓝牙4.0BLE协议的主从机的连接与数据传输。重点掌握 事件处理、回调函数、按键服务等操作的流程,

17、以加深对蓝牙4.0 BLE 协议栈的机制的理解。总结“1+X”传感网应用开发 基于BLE协议栈的无线点灯01蓝牙技术与BLE协议栈02任务及实验准备03关键知识点目录CONTENTS04任务实现05运行测试06特别关注一、蓝牙技术与BLE协议栈 蓝牙无线技术是主要应用于短距离无线通信领域,牙无线技术是全球使用范围最广的短距离无线标准之一。其最高数据传输速率1Mbps、最大传输距离为10厘米10米。 BLE( Bluetooth Low Energy,低功耗蓝牙)是蓝牙 4.0 的核心规范,其凭借超低的运行功耗、待机功耗等技术,使得其在以手机为智能终端的物联网应用中具有强有力的发展前景。 CC2

18、541 是一款针对 低能耗及私有 2.4-GHz 应用的功率优化的片载系统 (SoC) 解决方案,是蓝牙通信模块使用的芯片,芯片内部集成增强型8051内核。 BLE协议栈是在蓝牙 4.0 的基础上推出的低功耗蓝牙通信标准,其包括一个小型操作系统(抽象层OSAL),负责系统的调度,收发双方需要共同按照这一标准进行正常数据的收发,其大部分代码被封装成库,用户通过API调用完成系统开发。一、蓝牙技术与BLE协议栈 在NewLab实验平台上固定两块蓝牙通信模块、一块继电器模块,安放一个灯泡模块,按图示把模块连起来,在PC机上,通过BTool工具发送命令,使主、从机建立连接,控制灯泡亮和灭。二、任务及实

19、验准备 1. BLE协议栈的安装,双击工具包中的“BLE-CC254x-1.3.2.exe” 。 2. 开发工具的安装,解压工具包中的“IAR Embedded Workbench.rar”,双击” autorun.exe”双击安装开发工具。 3. 烧写工具的安装,双击” Setup_SmartRFProgr_1.12.7.exe”双击安装烧写工具。二、任务及实验准备 1.profile规范是一种标准通信协议,定义了设备如何实现一种连接。 2.GATT服务:用于应用程序在两个连接设备之间的数据通信,设备连接后,主机将作为GATT Client,是从GATT服务器读/写数据的设备,从机将作为GA

20、TT Server,是包含主机需要读/写的设备。 3.特征值:主从机通信通过特征值来实现,通过特征值可以获取或写入先要的内容。 4. 统一识别码( UUID):GATT服务和特征值都有UUID。 5. 句柄( handle):GATT服务将整个服务加载到属性表中,并为每个属性分配唯一的句柄。三、关键知识点5. 主从机建立连接流程:(1)从机启动发送广播。(2)主机启动搜索广播节点。(3)从机回应搜索请求。(4)主机发现设备,发起连接请求。(5)从机响应连接请求。(6)主从机连接完成。三、关键知识点 7.数据传输流程:(1)主机发送主服务UUID,从机收到主服务UUID并回应服务信息。(2)主机

21、发送主服务UUID,从机收到特征UUID并回应特征值句柄。(3)主机发送特征句柄,从机查找特征值并回应给主机。(4)主机通过句柄,对特征值进行读/写操作。三、关键知识点 1.主机代码:(1)打开“HostTestRelease.eww” 工程,workspace选择“CC2541EM”。(2)在 “_hal_uart_dma.c”文件中找到“HalUARTOpenDMA()”函数,新增“config-flowControl=0;”代码,关闭流控。(3)将主机拨码开关JP2拨到J9位置,编译下载程序到蓝牙模块中,按“复位”重新运行。四、任务实现 1.从机代码(以任务2为基础):(1)打开“Sim

22、pleBLEPeripheral.eww” 工程,workspace选择“CC2541”。(2)在 “hal_board_cfg.h”文件修改LED1的定义,通过从机模块P1.2端口控制继电器的动作。四、任务实现(3)在“simpleBLEPeripheral.c”文件的“simpleProfileChangeCB()”函数中添加红框所示代码控制P1.2端口电平的高低,以此控制灯的亮灭四、任务实现(4)在“simpleBLEPeripheral.c”文件的“peripheralStateNotificationCB ()”函数中添加红框所示代码,设置P1.2端口在从机处于广播和已连接状态时为低

23、电平。四、任务实现(5)将从机拨码开关JP2拨到J9位置,编译下载程序到蓝牙模块中,下载完毕,将拨码开关JP2拨到J2位置,按“复位”重新运行。四、任务实现(1)NewLab平台通过USB转串口线连接PC机,运行“BTool”工具,设置串口参数,通过搜索找到从机,选中从机,建立与从机的连接。五、运行测试(1) 利用“BTool”工具对CHAR1特征值写入“1”,点亮灯泡。五、运行测试(1) 利用“BTool”工具对CHAR1特征值写入“0”,熄灭灯泡。五、运行测试(1) 两根线的串口通信连接务必关闭流控,否则无法收发数据。(2) 修改预编译选项,添加:HAL_UART=TRUE 、LCD_TO

24、_UART、HAL_LCD=TRUE预编译选项,删除或禁用POWER_SAVING预编译选项。(3)从机烧写完毕,拨码开关拨到J2位置,只有主机芯片与NewLab平台串口相连。(4)硬件连接,不能带电操作。六、特别关注基于BLE协议栈的串口透传01任务引入02相关知识点03任务实施目录CONTENTS任务引入同学们,你们有没有过直接用串口线连接两台电脑,然后通过串口调试助手进行聊天的经历?PC机PC机任务引入那么如果我们想通过串口调试助手实现两台电脑之间信息的发送,并且希望是通过无线而不是直接用串口线将两台电脑相连的方式,我们可以选择前面所学的蓝牙方式来实现。原理框图如下图所示PC机蓝牙模块蓝

25、牙模块PC机任务引入任务要求:采用两个蓝牙通信模块,分别与PC机串口相连,一个模块作为从机(SimpleBLEPeripheral工程),另一个模块作为主机(SimpleBLECentral工程),是主从机建立连接,并进行无线串口数据透传,同时可以通过串口调试软观察到主机和从机的发送与接收信息相关知识点1、在Profiles中添加特征值(P237)2、特征值的定义(P238-239)注:P239代码纠错3、特征值的相关函数与初始化(P239-P244)注:P239代码纠错任务实施1. 系统构成本案例要求搭建一个基于BLE协议栈的串口透传系统,所需设备:PC机两台蓝牙模块两个串口线两条NEWLa

26、b两台任务实施2. 实现主从机上电自动连接(1)添加扫描节点设备的代码(P245-P246)(2)添加连接设备代码(P246-P247)(3)给主从设备上电,实现自动连接:编辑程序并下载到主机中,在workspace栏内选择“CC2541EM”从机采用任务5.2和任务5.3的SimpleBLEPeripheral.eww,只要在LCD上显示的内容能在串口显示就可以先给从机上电,再给主机上电,主从机串口打印输出信息任务实施任务实施3. 实现主机向从机单方向传输(1)主机采用UUID方式读取CHAR6句柄(P248-P249)(2)修改主机的串口回调函数代码(P249-P250)(3)修改从机的特征值改变回调函数(P250)(4)编译、下载主从机程序,并依次复位从机、主机(P251)任务实施3. 添加从机向主机发送数据代码,实现主从机串口透传(1)主机打开CH

温馨提示

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

评论

0/150

提交评论