低功耗蓝牙传感器网络拓扑结构

发布时间:2021-08-30 阅读量:1286 来源: 我爱方案网 作者: 我爱方案网整理

传感器网络拓扑结构


低功耗蓝牙传感器网络拓扑结构


网状网络中枢网络枢纽网络内置BLE功能的处理器的灵活性和丰富资源,使传感器能够与单一BLE设备连接。图2是使用PSoC Creator的典型配置。PSoCCreator是一个用于围绕PSoC架构开发应用程序的IDE。图中显示的是模拟和数字传感器接口以及BLE子系统。该配置展示的是用于感测烟雾、光照强度、温度、湿度和压力的典型工业数据监测系统。配置中的每个组件都有一个关联的应用程序编程接口(API),开发人员可根据需要访问这些组件。每个组件还有一个与其相关的数据表对组件的可用配置进行说明。


低功耗蓝牙传感器网络拓扑结构

图 2:PSoC Creator项目 – 包含所有必要组件的顶级设计


BLE组件在其GAP层中被配置为从设备。这使任何BLE设备(如BLE手机)都可以扫描此设备,在BLE从设备包含其名称广播时被BLE手机连接。此外,在其GATT层中,BLE设备被配置为具有自定义配置文件的GATT服务器。下面将讨论BLE低功耗特性在该组件内启用。名为“SensorService”的单一服务具有5种不同的特性,用于采集每个传感器的数据。每个特性都具有通知功能,可以将传感器数据作为通知发送。BLE中的一切都作为“-活动”处理。BLE堆栈提供处理这些事件的“定义”。以下代码片段展示了其中一部分活动的运行。CyBle_Start(AppCallBack);voidAppCallBack(uint32 event, void* eventParam){CYBLE_API_RESULT_TapiResult;switch (event){ case CYBLE_EVT_STACK_ON: /* This event is received when the component is Started *//* Enter into discoverable mode so that remote device can search it. */apiResult = CyBle_GappStartAdvertisement(CYBLE_ADVERTISING_FAST);if(apiResult != CYBLE_ERROR_OK) { /* Error */ } break;case CYBLE_EVT_GAPP_ADVERTISEMENT_START_STOP:if(CYBLE_STATE_DISCONNECTED == CyBle_GetState()) { CySysPmHibernate(); /* Enter Hibernate Mode for Low Current */ }break;case CYBLE_EVT_GAP_DEVICE_CONNECTED:break;case CYBLE_EVT_GAP_DEVICE_DISCONNECTED:/* Put the device into discoverable mode so that a remote can search it. */apiResult = CyBle_GappStartAdvertisement(CYBLE_ADVERTISING_FAST);if(apiResult != CYBLE_ERROR_OK) { /* Error */ }break;/* GATT Events */case CYBLE_EVT_GATT_CONNECT_IND:break;case CYBLE_EVT_GATT_DISCONNECT_IND:break;}}


图 3:BLE组件配置


低功耗蓝牙传感器网络拓扑结构


一旦两个设备实现连接,就能使用连接间隔不同的通知发送数据。应用程序接口“CyBle_ProcessEvents()”应置于while(1)循环中,且必须在每个连接间隔中至少调用一次。我们也可以调用在同一while循环中将数据作为通知发送的函数。以下函数可用于将温度数据的一个字节作为通知发送。这也适用于其他传感器特性。voidSendTempNotification(uint8TempData){CYBLE_API_RESULT_TbleApiResult;CYBLE_GATTS_HANDLE_VALUE_NTF_TTempHandle;TempHandle.value.val = &TempData;TempHandle.value.len = 1;TempHandle.attrHandle = CYBLE_SENSORSERVICE_TEMPERATURE_CHAR_HANDLE;do {bleApiResult = CyBle_GattsNotification(cyBle_connHandle, &TempHandle);CyBle_ProcessEvents();}while((CYBLE_ERROR_OK != bleApiResult) && (CYBLE_STATE_CONNECTED == cyBle_state));}如上文所述,处理器和BLE子系统(BLESS)具有独立的低功率模式。举个例子,如果设备断开连接,我们可以将处理器设置为休眠或停止模式以降低功耗。在广播和连接间隔之间,我们可以利用BLESS深度睡眠模式,甚至连所使用的各个组件(如ADC、I2C等)也可以进入各自的低功率模式并在需要时唤醒。因此,开发人员能够根据整个系统的实际需要,对功率进行非常细致的控制。有关详细的低功率代码片段,请参见低功耗蓝牙应用的低功率设计与电池寿命估算。while(1) 循环如下:while(1)  { /* Process all the generated events. */CyBle_ProcessEvents();/* To achieve low power in the device */LowPowerImplementation();/*********************************************************************** * Wait for connection established with Central device ***********************************************************************/if(CyBle_GetState() == CYBLE_STATE_CONNECTED) { CyBle_ProcessEvents();SendTempNotification(Temperature); }} 目前具有BLE功能的手机可以扫描这一传感器网络设备,并使用各种特性来监视每个传感器的数据。一些处理器制造商还提供手机端的BLE连接软件。例如,赛普拉斯提供了一个名为CySmart的应用程序,该应用程序可以安装在您的安卓或Apple设备上,并协助您监控BLE传输。BLE 信标蓝牙信标的广播信号可以被附近的智能设备捕捉。对于此类应用,只需要将BLE组件配置为广播器的GAP,这样系统就可以发送广播信息。信标的功耗应该较低,也可以得益于集成的处理器/BLE设计。


推荐阅读:

单片机中的高阻态典型应用

单片机串行通信的结构组成解析

单节锂电池供电电源电路设计

为什么传感功能很重要?

MEMS技术用于制造微致动器简述

相关资讯
核心对比!无源晶振与有源晶振在结构和工作原理的本质区别

无源晶振与有源晶振是电子系统中两种根本性的时钟元件,其核心区别在于是否内置振荡电路。晶振结构上的本质差异,直接决定了两者在应用场景、设计复杂度和成本上的不同。

温度稳定性对RTC晶振的计时误差影响与分析

RTC(实时时钟)电路广泛采用音叉型32.768kHz晶振作为时基源,但其频率稳定性对温度变化极为敏感。温度偏离常温基准(通常为25℃)时,频率会产生显著漂移,且偏离越远漂移越大。

从参数到实践!剖析有源晶振的频率稳定度、老化率及正确接线方案

有源晶振作为晶振的核心类别,凭借其内部集成振荡电路的独特设计,无需依赖外部电路即可独立工作,在电子设备中扮演着关键角色。本文将系统解析有源晶振的核心参数、电路设计及引脚接法,重点阐述其频率稳定度、老化率等关键指标,并结合实际电路图与引脚定义,帮助大家全面掌握有源晶振的应用要点,避免因接线错误导致器件失效。

如何对抗晶振老化?深入生产工艺与终端应用的防老化指南

晶振老化是影响其长期频率稳定性的核心因素,主要表现为输出频率随时间的缓慢漂移。无论是晶体谐振器还是晶体振荡器,在生产过程中均需经过针对性的防老化处理,但二者的工艺路径与耗时存在显著差异。

无源晶振YSX321SL应用于高精度HUD平视显示系统YXC3225

在现代汽车行业中,HUD平视显示系统正日益成为驾驶员的得力助手,为驾驶员提供实时导航、车辆信息和警示等功能,使驾驶更加安全和便捷。在HUD平视显示系统中,高精度的晶振是确保系统稳定运行的关键要素。YSX321SL是一款优质的3225无源晶振,拥有多项卓越特性,使其成为HUD平视显示系统的首选。