蓝牙LE - 决定客户端与服务器

时间:2016-11-30 16:30:12

标签: bluetooth-lowenergy radio

我们正在创建一个硬件(称为“加密狗”),当用户请求时,它响应来自移动电话的蓝牙LE请求。所有通信都将通过电话发起,加密狗将永远不会发起通信。通信,当它们发生时,将非常罕见(可能每天一次)并且将很短(几百字节)。当通信发生时,我们希望加密狗在几秒钟内响应而不需要用户与加密狗手动交互(例如,我们不希望用户必须按下加密狗上的按钮来说“唤醒和支付”注意“)。

考虑到电源使用情况,似乎当设备进行蓝牙扫描时,进行扫描的设备主要只是监听/接收,而做广告的设备正在进行传输(对吗?)。

但像this one这样的网页说

Slave (or “peripheral“) devices advertise and wait for connections. Usually, the slave is a small device like a fitness tracker or a smartwatch.

为什么小型设备(例如健身追踪器)会坐在那里,每隔几秒钟广播/做广告(假设它目前没有连接任何东西)?这不会耗尽各种力量吗?对于小型设备而言,它是否更适合处于监听(扫描)模式?

然后一旦建立连接,是否存在某种“保持活力”,以便两个连接的设备“知道”另一个仍在那里?

1 个答案:

答案 0 :(得分:5)

让我们采用像nRF51822这样的芯片规格表(见8.5.2)。你会发现RX(13mA)和TX @ 0dBm(10.5mA)的功耗几乎相同。 TX / RX功率比率与for other chips on the市场相同:大约1倍。

现在考虑到传输是一种低占空比操作(如果您在200us每200ms发送一次TX,则为0.1%),广告的平均功耗很低(10.5mA * 0.001 + 5uA * 0.999)。 另一方面,接收是连续的设计:你永远不知道数据包何时实际传输,如果你不想错过任何数据包(13mA,连续),你需要接近100%的占空比。

因此,对于连接设置,Peripheral(广告)比Central(侦听)节省更多功率,因为​​它可以在大多数时间内休眠。

连接后,中央(主)和外设(从属)都以“睡眠时钟”跟踪时间并以时隙方式唤醒以同步并检查其他方的存在。插槽在规范中称为“连接事件”。在连接事件之间,它们都会睡眠,因此它们在连接持续的整个过程中都能同等地节省电力。 (好吧,还有另一种称为“奴隶延迟”的优化,允许外围设备(即奴隶)节省更多电力,但让我们在这里忽略它......)。

在你的情况下,“加密狗”应该做广告。可以调整广告间隔以适应应用程序所需的可接受的重新连接时间。典型的50-500毫秒。