低功耗无线模块策略


8

我正在设计低功耗传感器模块,这些模块将分布在相当小的区域内。这些模块全部由电池供电,应长时间工作而不必对电池进行充电/更换(时间越长越好,请考虑至少数周(如果不是几个月或几年)。想法是每半小时或每隔一个小时,该模块就会从低功耗模式中唤醒,采集一些样本,并将数据传输到中央数据记录器。中央数据记录器很可能是壁装电源,因此不需要低功耗。我不希望任何模块与中央记录仪相距100m,甚至可能更少。

我确定了一些可能可行的收发器模块:

  1. ALPHA-TRX433S,433兆赫
  2. ALPHA-TRX915S,915兆赫
  3. Microchip MRF89XAM8A,868 MHz
  4. Microchip MRF89XAM9A,915 MHz

根据我的阅读,这些模块都在FCC不受管制的频段内运行,应该安全使用。Alpha模块的广告范围为300m,但我无法确定Microchip模块的预期最大范围是多少。我将如何计算呢?

另外,由于我确实有选择的频段,应该选择哪个频段以及为什么选择(例如,从915 MHz到433 MHz的频段我会得到什么,以及我会失去什么)?按照什么参数的顺序,我认为最重要的是:

  1. 低电量
  2. 传输范围(越多越好,在合理范围内)
  3. 不受其他环境因素影响(例如,wifi /蜂窝网络,正在运行的微波炉,墙壁/物理障碍物,温度等)。目标用途是在住宅环境中,温度可能会发生很大变化(例如-20°C至50°C)。
  4. 数据速率。这并不是非常重要,因为我期望每个样本的数据很少(最多几个字节)。

我还有一个问题是如何处理试图同时传输数据的多个模块。我对如何减轻这种情况有一些想法,但是我不确定要采用哪种解决方案:

  1. 传输数据时使用随机时间偏移。希望可以避免冲突。这可能是最简单的实现方法,并且可能使用的功耗最少。但是,这不能保证不会发生冲突。同样,获得良好的随机性源或唯一的伪随机种子可能会引起问题,尽管并非无法解决。

  2. 唤醒并尝试发送时,请检查当前是否正在进行任何发送。只需等待传输结束,然后再发送数据。然后,问题就变成了如何在等待状态下处理多个传感器,因为它们可能都决定最后一次传输已经结束并且都同时开始传输。

  3. 其他解决方案。


请注意,300m范围用于“清晰视线”通信,通常在室内可能会下降到50或100m(甚至更少),具体取决于否。和Tx / Rx之间的墙的类型。我在一个项目中使用了433MHz ASK / OOK Tx / Rx对,其使用情况略有相似,在4x1.5VDC AA(标准无汞)下使用了6个月以上。
icarus74

至于处理多个同时传输,您的第一个解决方案接近于我所使用的解决方案。就我而言,我的变送器使用未经校准的温度传感器输入作为PRNG种子,以转换为最大3000ms的偏移量,然后我也使用重传。
icarus74

Answers:


9

我有开放源代码和开放式硬件传感器,可以为您提供一个工作的起点:它已互联网连接,并且每两分钟传输一次其温度,湿度和电池电压,使用2xAA电池可以持续3-5年。它基于M12 6LoWPAN模块

我会尽力解决您的所有问题:

关于频段权衡:

433MHz,915MHz,2.4GHz

范围与天线尺寸之间的权衡是显而易见的。自由空间路径损耗是波长的函数,因此对于相同的衰减,较低的频率传播得更远。但是,为了利用这一点,您还需要一个合适的天线,该天线也可以随波长缩放。M12上的2.4Ghz天线占用大约2平方厘米的PCB面积。

第二个因素是许可。2.4GHz可以在全球范围内拥有未许可的电台。915MHz仅在美国无牌(在其他任何地方都是GSM频段)。我不确定433MHz的限制。

根据Shannon–Hartley定理,数据速率也受频率选择的影响;您可以将更多数据塞入更高的频段。但是,这并不总是用于更多最终数据速率。例如,对于在数据层看到的每个实际位,802.15.4具有4位冗余。这32个符号是伪正交的,因此您必须破坏几个低级位才能引起错误。这使802.15.4可以本底噪声运行(研究表明,SNR为-5dB),并使它对干扰具有较强的鲁棒性。

现在进入下一个难题

低功率无线电操作

与家用电池(例如AA碱性电池)相比,即使是“低功率” SoC(例如mc13224v)也不是非常低的功率。在2-3.5V时,发射器约为30mA,而接收器则为25mA左右。在不关闭无线电电源并使CPU进入睡眠状态的情况下,此负载将在几天内消耗2个AA。接收器的高功耗通常使人们感到惊讶,这可能是开发低功率无线电系统时的最大痛苦。这意味着要运行多年,您几乎永远无法传输收听。

从2xAA碱中获得“一年”操作的目标是使系统的平均电流小于50uA。这样做会使您承受数年之久的挑战,并免受电池的二次影响,例如自放电和家用电池的7年使用寿命。

低于<50uA平均值的最佳方法是不需要收发器。如果是这样,则可以在大多数情况下尽快“调频”数据并将系统置于低功耗模式(例如约10uA)。的TH12,例如用于发送10ms左右,但在系统中关于处理时间和设置时间对于所涉及的传感器的其他开销。可以使用当前的探针和电子表格来确定细节:

通过这种类型的分析,您可以算出使用寿命(假设电池的放电曲线准确)。

如果确实需要在低功率侧接收数据(例如,在网状网络中制作一个昏昏欲睡的路由器),那么当前的最新技术重点是时分技术。有些紧密地同步网络,例如802.15.4信标,而另一些则使用“松散”的系统,例如ContikiMAC(如果您的硬件没有稳定的时基,则更容易实现,尤其是)。

无论如何,我的经验表明,这些方法平均约为400uA,这使您在使用2xAA的“几个月甚至一年”的运行时间中。

碰撞

我的建议:暂时不用担心。换句话说,如果您有数据,请在其中发送“ aloha”(您的选项1)。如果发生冲突,则可以重新发送。(这取决于您的目标)。如果您不需要确保收到所有样品,则只需尝试一次即可立即入睡。

您会发现功耗问题非常棘手,唯一的解决方案将是根本不传输太多数据的网络。如果您尝试,它可能会成功。如果没有,您可以稍后再试。

如果您确实需要确保每个数据报都能通过,那么您将必须执行某种ACK方案。在6LoWPAN世界中,您可以使用TCP,它将继续重试直到电池没电为止。也有使用UDP并具有重试机制的CoAP(但不承诺传送)。但是,这里的每个选择都会影响运行时间。如果您运营多年,那么影响将在数月之内。

您的选项#2作为CCA内置在802.15.4硬件中。这个想法是接收器打开8个符号并返回true或false。然后,您可以决定下一步要做什么。您可以全天/每周使用这些计划。但是,每次执行这样的操作时,运行时间都会减少数周。这就是为什么我建议现在从简单开始。如果您要长时间运行,它将非常有效。


您的链接无效!
Ryan Griggs

我想添加到这个Microchip XLP Estimator中,它将为您显示各种电池配置和运行状态/周期的预期运行时间。另外,如果所有传感器都是收发器,则可以实施“轮询”或“令牌环”方案,其中主机重复询问设备0至 “对我有什么好处?” 传感器等待其转动(例如10ms),进行传输,然后关闭。我建议使用某种类型的CRC校验和,以避免接受任何乱码的数据。n
rdtsc

1

您可能对JeeNodes感兴趣,它基本上是Arduino Uno与HopeRF的RFM-12B无线电模块配对的。如果您直接在远程“节点”上编写代码,则可以轻松地从一组电池中取出几个月,具体取决于您的传感器等。

检查他的网站,功耗是有据可查的。关于这些的一个理想的事情是,您可以为传感器使用标准的arduino库,或者使用jeelabs商店中的传感器并使用JeeLib库,这确实使一切变得非常容易。

我用JeeNode v6制作了一个小遥控器,并用了一块旧的诺基亚电池(大约1 Ah,但现在可能少了),它已经使用了3个月,电池电压仍然超过3.9v(即仍然很饱)。它只是坐在那里处于低功耗睡眠状态,每隔几毫秒醒来一次,以检查按钮是否被按下。

我从JeeLabs商店购买了PCB,但是从ebay,element14等地方获得了所有组件,因此最终价格便宜一些。

稍微注意一下天线的设计,您显然可以将它们从视线中拉出几百米。我可以通过一条简单的垂直线轻松获得整个房屋的覆盖范围。


0

数据速率 “根据Shannon–Hartley定理,数据速率还受频率选择的影响;您可以将更多数据塞入更高的频段。” 错误!!!

数据速率与带宽有关,与载波频率无关。您可以具有较低的载波频率,但具有较高的带宽和较高的数据速率。

载波频率 较低的载波频率适合范围。如果频率减半,则范围将增加四倍。但是天线尺寸也会增加。通常,天线是lamba / 2或lambda / 4(lambda是以米为单位的波长)。

频道内容 乍看之下似乎很明显,但可能会有些棘手。正如其他人指出的那样,最简单的策略是唤醒并传输一次然后进入睡眠状态。如果发送器的数量不是那么大,并且睡眠时间远大于传输时间,则无法正常工作。但是在少数情况下,您必须准备丢失一些数据。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.