
BLE的分层协议栈能以低功耗高效传输少量数据,使其沦为电池供电应用于的选用无线协议,如必须定期萃取和处置数据的低功耗传感器网络接口等。本文将重点讲解如何在数据变化不频密的传感器应用于中,有效地利用BLE保持低功耗无线运营。
目前,全球于是以转入一个各种系统都必须收集和互相交换数据的物联网(IoT)时代。在传感器以无线方式相连,构成网络并构建设备间数据交换的物联网中,BLE充分发挥着至关重要的角色。
主机设备可以是需要监测和掌控所有网络节点的智能手机。此类物联网(IoT)应用于还包括日常活动跟踪以及家庭自动化功能,如高效住宅灯光、温度和湿度监测与掌控、远程控制消费类电子设备等。低功耗蓝牙的功率模式如果传感器使用电池供电,功耗有限且必需持续很长时间的话,BLE将沦为最佳相连自由选择。比如,一个测量温度及湿度的低功耗传感器,其参数是较慢变化的,此类传感器可以与需要处置并将数据传输到主机设备的BLE集成型处理器相连。
BLE子系统的操作者频率不低,例如每百毫秒一次,而且在其他时间正处于低功耗模式。赛普拉斯PSoC4BLE等BLE型器件可获取多用户可配备的功耗模式,从而优化独立国家于处理器工作模式的BLE子系统(BLESS)的运营。
使开发人员需要降低功耗,并使单块电池的使用寿命超过数年之幸。这五种系统功率模式分别为:主动、睡眠中、深度睡眠中、休眠状态和暂停模式。三种BLESS功耗模式分别为主动、睡眠中和深度睡眠中模式。
BLESS模式在系统功率为1.3微安的深度睡眠中模式下一直落成。BLE子系统可以在BLESSActive模式下发送到和接收数据。它能维持空闲状态,并在BLESS睡眠中模式和深度睡眠中模式下保持相连。
这些功耗模式独立国家于系统的功耗模式,因此开发人员需要灵活性地为系统和BLESS分别自由选择最高效的配备。在此基础上,我们可以创建一个电流市场需求极低、一般来说由纽扣电池供电的原始系统。
例如,1秒广播间隔的平均值耗电量只有26微安。而1秒相连间隔的平均值耗电量更加较低,只有17微安。
传感器和低功耗蓝牙传感器可以大体分成仿真和数字两种。典型的仿真传感器还包括用作监测烟雾、气体、环境光线、人员感应器等的传感器。数字传感器还包括监测温度、湿度、压力、加速度等的传感器。当BLE子系统与应用于处理器构建时,传感器可以使用多种不同的方式展开相连。
例如,可以将仿真传感器馈送到前端具备电压输入器的SARADC。数字传感器需要展开仿真切换,因此可以通过任何通信接口(如I2C、SPI或单线模块)收集数据。构建的定时器、计数器、脉宽调制器和标准化数字模块(UDB)均可用作构建自定义逻辑以更进一步处置传感器数据。最后,经处置或所接管的数字数据可以通过BLE模块发送到,并由内置BLE功能的手机或任何其他客户端设备展开监测。
随着资源可用性和成本的大大变化,可选择有所不同系列的BLE构建处理器(如PSoC4BLE)以适应环境各种应用于。无线传感器网络无线传感器网络一般来说作为网状网络和枢纽网络(闻图1)。
枢纽网络还包括可以摆放在完全相同方位的所有传感器。每个传感器必须相连到单个BLE外围设备(服务器)来处置数据并将其发送到BLE中央设备(客户端)。网状网络使用可以远程定位传感器的流形结构。
网格中的每个节点都必须相连到BLE外围设备(服务器),所有这些外围设备都可以相连到BLE中央设备(客户端)。图1:传感器网络拓扑结构网状网络中枢网络枢纽网络内置BLE功能的处理器的灵活性和非常丰富资源,使传感器需要与单一BLE设备相连。图2是用于PSoCCreator的典型配备。
PSoCCreator是一个用作环绕PSoC架构研发应用程序的IDE。图中表明的是仿真和数字传感器模块以及BLE子系统。该配备展出的是用作感测烟雾、光照强度、温度、湿度和压力的典型工业数据监测系统。配备中的每个组件都有一个关联的应用程序编程模块(API),开发人员可根据必须采访这些组件。
每个组件还有一个与其涉及的数据表对组件的能用配备展开解释。图2:PSoCCreator项目–包括所有适当组件的顶级设计BLE组件在其GAP层中被配备为从设备。这使任何BLE设备(如BLE手机)都可以扫瞄此设备,在BLE从设备包括其名称广播时被BLE手机相连。此外,在其GATT层中,BLE设备被配备为具备自定义配置文件的GATT服务器。
下面将辩论BLE低功耗特性在该组件内落成。取名为“SensorService”的单一服务具备5种有所不同的特性,用作收集每个传感器的数据。每个特性都具备通报功能,可以将传感器数据作为通报发送到。
BLE中的一切都作为“-活动”处置。BLE堆栈获取处置这些事件的“定义”。以下代码片段展出了其中一部分活动的运营。CyBle_Start(AppCallBack);voidAppCallBack(uint32event,void*eventParam){CYBLE_API_RESULT_TapiResult;switch(event){caseCYBLE_EVT_STACK_ON:/*ThiseventisreceivedwhenthecomponentisStarted*//*Enterintodiscoverablemodesothatremotedevicecansearchit.*/apiResult=CyBle_GappStartAdvertisement(CYBLE_ADVERTISING_FAST);if(apiResult!=CYBLE_ERROR_OK){/*Error*/}break;caseCYBLE_EVT_GAPP_ADVERTISEMENT_START_STOP:if(CYBLE_STATE_DISCONNECTED==CyBle_GetState()){CySysPmHibernate();/*EnterHibernateModeforLowCurrent*/}break;caseCYBLE_EVT_GAP_DEVICE_CONNECTED:break;caseCYBLE_EVT_GAP_DEVICE_DISCONNECTED:/*Putthedeviceintodiscoverablemodesothataremotecansearchit.*/apiResult=CyBle_GappStartAdvertisement(CYBLE_ADVERTISING_FAST);if(apiResult!=CYBLE_ERROR_OK){/*Error*/}break;/*GATTEvents*/caseCYBLE_EVT_GATT_CONNECT_IND:break;caseCYBLE_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){/*Processallthegeneratedevents.*/CyBle_ProcessEvents();/*Toachievelowpowerinthedevice*/LowPowerImplementation();/************************************************************************WaitforconnectionestablishedwithCentraldevice***********************************************************************/if(CyBle_GetState()==CYBLE_STATE_CONNECTED){CyBle_ProcessEvents();SendTempNotification(Temperature);}}目前具备BLE功能的手机可以扫瞄这一传感器网络设备,并用于各种特性来监控每个传感器的数据。
一些处理器制造商还获取手机端的BLE相连软件。例如,赛普拉斯获取了一个取名为CySmart的应用程序,该应用程序可以加装在您的安卓或Apple设备上,并帮助您监控BLE传输。BLE信标蓝牙信标的广播信号可以被附近的智能设备捕猎。对于此类应用于,只必须将BLE组件配备为广播器的GAP,这样系统就可以发送到广播信息。
信标的功耗应当较低,也可以归功于构建的处理器/BLE设计。太阳能低功耗蓝牙信标和无线传感器节点可表明正在用于的BLE信标。BLE在消费类、工业和嵌入式应用等许多市场中的发展势头较好。
该项技术顺利的一个关键因素是它需要在低功耗的情况下运营。BLE技术使开发人员需要设计出有由电池供电、使用寿命更长,对用户更为友好关系的应用于。
本文来源:开云手机app-www.biaopu-china.com