《传感网应用开发(高级)课件5354》由会员分享,可在线阅读,更多相关《传感网应用开发(高级)课件5354(45页珍藏版)》请在金锄头文库上搜索。
1、 主从机建立连接与数据主从机建立连接与数据传输传输主从机建立连接与数据传输主从机建立连接与数据传输提提纲纲 原理及流程图原理及流程图 从机连接过程从机连接过程 主机连接过程主机连接过程 任务实施任务实施 总结总结提提纲纲 原理及流程图原理及流程图 从机连接过程从机连接过程 主机连接过程主机连接过程 任务实施任务实施 总结总结 结合蓝牙结合蓝牙 4.0 BLE协议,采用两块蓝牙模块,一协议,采用两块蓝牙模块,一个模块作为从机,另一个模块作为主机,使主从机建个模块作为从机,另一个模块作为主机,使主从机建立连接,并能进行简单的无线数据传输。立连接,并能进行简单的无线数据传输。原理及流程原理及流程图图
2、原理及流程原理及流程图图开始开始初始化初始化发送广播发送广播发送广播发送广播建立连接并作为从机建立连接并作为从机开始开始初始化初始化按键搜索按键搜索发现设备发现设备建立连接并作为主机建立连接并作为主机SimpleBLEPeripheral工程(节点设备)SimpleBLECentral工程(集中器设备)搜索回应搜索请求发起连接请求响应连接请求提提纲纲 原理及流程图原理及流程图 从机连接过程从机连接过程 主机连接过程主机连接过程 任务实施任务实施 总结总结 以以 SimpleBLEPeripheral 工程作为节点设备的程工程作为节点设备的程序,初始化完成后,节点设备处于可发现状态,以广序,初始
3、化完成后,节点设备处于可发现状态,以广播的形式向外界发送数据。播的形式向外界发送数据。从机从机连连接接过过程程只有只有GAP服务的服务的UUID相匹配,设备才能建立连接。相匹配,设备才能建立连接。 从机从机连连接接过过程程集中器设备可以通过搜索来发现正在发送广播数据的集中器设备可以通过搜索来发现正在发送广播数据的节点设备。当节点设备接收到集中器设备的搜索请求节点设备。当节点设备接收到集中器设备的搜索请求时,定义了回应数据。时,定义了回应数据。static uint8 scanRspData static uint8 scanRspData 当集中器设备接收到节点设备搜索回应的数据后,向当集中器
4、设备接收到节点设备搜索回应的数据后,向节点设备发送连接请求,节点设备接受请求并作为从节点设备发送连接请求,节点设备接受请求并作为从机进入连接状态。机进入连接状态。从机从机连连接接过过程程提提纲纲 原理及流程图原理及流程图 从机连接过程从机连接过程 主机连接过程主机连接过程 任务实施任务实施 总结总结以以 SimpleBLECentral 工程作为集中器设备(主机)工程作为集中器设备(主机)的程序,主机的连接过程大致可分为初始化、搜索节的程序,主机的连接过程大致可分为初始化、搜索节点设备、查看及选择从机并连接。点设备、查看及选择从机并连接。主机主机连连接接过过程程任务初始化函数任务初始化函数 S
5、impleBLECentral_Init (uint8 task_id)主要功能包括:设置最大扫描节点个数,主要功能包括:设置最大扫描节点个数,8个个 GAP服务设置,绑定管理设置,服务设置,绑定管理设置, GATT初始化,注册按键服务。初始化,注册按键服务。主机主机连连接接过过程程集中器发起搜索请求,调用集中器发起搜索请求,调用GAP事件回调函数事件回调函数SimpleBLECentralEventCB( )在设备发现过程中,当一个设备被发现,产生一个在设备发现过程中,当一个设备被发现,产生一个GAP_DEVICE_INFO_EVENT 事件,发送一个事件,发送一个OSAL消消息。息。设备搜
6、索完成后,集中器显示搜索到的从机,并提示主设备搜索完成后,集中器显示搜索到的从机,并提示主机连接。机连接。主机主机连连接接过过程程如果未连接,并且已经扫描到设备,主机向从机发起连如果未连接,并且已经扫描到设备,主机向从机发起连接请求。调用接请求。调用GAP状态回调函数状态回调函数simpleBLECentralEventCB( ).回调函数中使用回调函数中使用OSAL定时器,定时触发定时器,定时触发START_DISCOVERY_EVT事件,定时时间到达后调用事件,定时时间到达后调用事件处理函数事件处理函数 SimpleBLECentral_ProcessEvent( )。主机主机连连接接过过
7、程程SimpleBLECentral 工程默认采用按键进行搜索、连接,工程默认采用按键进行搜索、连接,当有按键动作时,会触发当有按键动作时,会触发KEY_CHANGE事件,进入事件,进入simpleBLECentral_HandleKeys( )函数。函数。主机主机连连接接过过程程按键按键功能功能UP1.开始扫描或停止设备发现;2.连接后可读写特征值LEFT显示扫描到的节点设备,在LCD中滚动显示RIGHT连接更新CENTER建立或断开当前连接DOWN启动或关闭周期发送RSSI信号值提提纲纲 原理及流程图原理及流程图 从机连接过程从机连接过程 主机连接过程主机连接过程 任务实施任务实施 总结总
8、结由于蓝牙模块中没有由于蓝牙模块中没有Joystick按键,所以采用串口发指按键,所以采用串口发指令方式代替按键。令方式代替按键。串口指令串口指令1,2,3,4,5分别对应按键的分别对应按键的UP, LEFT, RIGHT, CENTER, DOWN。需要把按键程序需要把按键程序simpleBLECentral_HandleKeys( )中的中的代码移植到串口接收处理函数代码移植到串口接收处理函数NpiSerialCallback( )中去。中去。任任务实务实施施任任务实务实施施任任务实务实施施主机对应的主机对应的PC机串机串口发送指令口发送指令“1”,搜索节点设备。搜索节点设备。任任务实务实
9、施施任任务实务实施施主机对应的主机对应的PC机串机串口发送指令口发送指令“2”,查看节点设备,显查看节点设备,显示编号。示编号。发送指令发送指令“4”,进,进行连接,显示连接行连接,显示连接信息。信息。任任务实务实施施主机对应的主机对应的PC机串机串口发送指令口发送指令“5”,周期显示周期显示RSSI信号信号值,再发送指令值,再发送指令“5”则取消显示。则取消显示。任任务实务实施施当前状态下,主机对应当前状态下,主机对应的的PC机串口发送指令机串口发送指令“1”,执行读写,执行读写char。发送指令先发送指令先write char再次发送是再次发送是read char每一次循环,每一次循环,c
10、har值加值加1。任任务实务实施施当前状态下,主机当前状态下,主机对应的对应的PC机串口发机串口发送指令送指令“4”,主从,主从机断开连接,从机机断开连接,从机再次处于广播状态。再次处于广播状态。提提纲纲 原理及流程图原理及流程图 从机连接过程从机连接过程 主机连接过程主机连接过程 任务实施任务实施 总结总结介绍了基于蓝牙介绍了基于蓝牙4.0BLE协议的主从机的连接与数据传输。协议的主从机的连接与数据传输。重点掌握重点掌握 事件处理、回调函数、按键服务等操作的流程,事件处理、回调函数、按键服务等操作的流程,以加深对蓝牙以加深对蓝牙4.0 BLE 协议栈的机制的理解。协议栈的机制的理解。总结总结
11、“1+X”传感网应用开发 基于BLE协议栈的无线点灯01蓝牙技术与BLE协议栈02任务及实验准备03关键知识点目目录CONTENTS04任务实现05运行测试06特别关注一、一、蓝蓝牙技牙技术术与与BLE协议栈协议栈 蓝牙无线技术是主要应用于短距离无线通信领域,牙无线技术是全球使用范围最广的短距离无线标准之一。其最高数据传输速率1Mbps、最大传输距离为10厘米10米。 BLE( Bluetooth Low Energy,低功耗蓝牙)是蓝牙 4.0 的核心规范,其凭借超低的运行功耗、待机功耗等技术,使得其在以手机为智能终端的物联网应用中具有强有力的发展前景。 CC2541 是一款针对 低能耗及私
12、有 2.4-GHz 应用的功率优化的片载系统 (SoC) 解决方案,是蓝牙通信模块使用的芯片,芯片内部集成增强型8051内核。 BLE协议栈是在蓝牙 4.0 的基础上推出的低功耗蓝牙通信标准,其包括一个小型操作系统(抽象层OSAL),负责系统的调度,收发双方需要共同按照这一标准进行正常数据的收发,其大部分代码被封装成库,用户通过API调用完成系统开发。一、一、蓝蓝牙技牙技术术与与BLE协议栈协议栈 在NewLab实验平台上固定两块蓝牙通信模块、一块继电器模块,安放一个灯泡模块,按图示把模块连起来,在PC机上,通过BTool工具发送命令,使主、从机建立连接,控制灯泡亮和灭。二、任二、任务务及及实
13、验实验准准备备 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服务器读/写
14、数据的设备,从机将作为GATT Server,是包含主机需要读/写的设备。 3.特征值:主从机通信通过特征值来实现,通过特征值可以获取或写入先要的内容。 4. 统一识别码( UUID):GATT服务和特征值都有UUID。 5. 句柄( handle):GATT服务将整个服务加载到属性表中,并为每个属性分配唯一的句柄。三、关三、关键键知知识识点点5. 主从机建立连接流程:(1)从机启动发送广播。(2)主机启动搜索广播节点。(3)从机回应搜索请求。(4)主机发现设备,发起连接请求。(5)从机响应连接请求。(6)主从机连接完成。三、关三、关键键知知识识点点 7.数据传输流程:(1)主机发送主服务UU
15、ID,从机收到主服务UUID并回应服务信息。(2)主机发送主服务UUID,从机收到特征UUID并回应特征值句柄。(3)主机发送特征句柄,从机查找特征值并回应给主机。(4)主机通过句柄,对特征值进行读/写操作。三、关三、关键键知知识识点点1.主机代主机代码:(1)打开“HostTestRelease.eww” 工程,workspace选择“CC2541EM”。(2)在 “_hal_uart_dma.c”文件中找到“HalUARTOpenDMA()”函数,新增“config-flowControl=0;”代码,关闭流控。(3)将主机拨码开关JP2拨到J9位置,编译下载程序到蓝牙模块中,按“复位”重
16、新运行。四、任四、任务实现务实现1.从机代从机代码(以任(以任务2为基基础):):(1)打开“SimpleBLEPeripheral.eww” 工程,workspace选择“CC2541”。(2)在 “hal_board_cfg.h”文件修改LED1的定义,通过从机模块P1.2端口控制继电器的动作。四、任四、任务实现务实现(3)在“simpleBLEPeripheral.c”文件的“simpleProfileChangeCB()”函数中添加红框所示代码控制P1.2端口电平的高低,以此控制灯的亮灭四、任四、任务实现务实现(4)在“simpleBLEPeripheral.c”文件的“periphe
17、ralStateNotificationCB ()”函数中添加红框所示代码,设置P1.2端口在从机处于广播和已连接状态时为低电平。四、任四、任务实现务实现(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_UART、HAL_LCD=TRUE预编译选项,删除或禁用POWER_SAVING预编译选项。(3)从机烧写完毕,拨码开关拨到J2位置,只有主机芯片与NewLab平台串口相连。(4)硬件连接,不能带电操作。六、特六、特别别关注关注