`

改变节点transmission power, radio power level (tx_power)

 
阅读更多
使用 CC2420Packet 中 setPower 来改变每个消息包的tx power
  /**
   * Set transmission power for a given packet. Valid ranges are
   * between 0 and 31.
   *
   * @param p_msg the message.
   * @param power transmission power.
   */
  async command void setPower( message_t* p_msg, uint8_t power );


There are 8 discrete power levels each corresponds to RF transmit power
>> > Power level   Transmitted power level
>> > 31                0dbm
>> > 27               -1dbm
>> > 23               -3dbm
>> > 19               -5dbm
>> > 15               -7dbm
>> > 11               -10dbm
>> > 7                -15dbm
>> > 3                -25dbm


原文
引用
    I'm looking to control the default radio power level at runtime for
    Telos motes using TinyOS-2.x.  In tos/chips/cc2420/CC2420Power.nc I
    see the following comment:


    "[This] does not include transmission power, see the CC2420Config interface."

    However, the CC2420Config interface does not include any command to
    set the default radio power level.  The file
    tos/chips/cc2420/CC2420ControlP.nc includes a state variable
    'm_tx_power' that is initialized to CC2420_DEF_RFPOWER; however, that
    variable is never used.  The file tos/chips/cc2420/CC2420TransmitP.nc
    directly uses CC2420_DEF_RFPOWER to set the default power level:

       if ( !tx_power ) {
         // If our packet's tx_power wasn't configured to anything but 0,
         // send it using the default RF power.  This assumes the
         // packet's metadata is all set to 0's on boot.

         tx_power = CC2420_DEF_RFPOWER;
       }

    It looks to me like the original intent was to provide a software
    interface for setting the default radio power level via the
    CC2420Config, but that its realization got lost along the way.  With
    the current implementation, I cannot see a way to set the default
    radio power in software.

    One way to resolve this would be to add two new commands to the
    CC2420Config interface:

       command uint8_t getDefaultTxPower();
       command void setDefaultTxPower(uint8_t txPower);

    Then, in CC2420ControlP add implementations of those commands (again,
    'm_tx_power' is already declared in this module and initialized to
    CC2420_DEF_RFPOWER):

       command uint8_t CC2420Config.getDefaultTxPower() {
           return m_tx_power;
       }

       command uint8_t CC2420Config.setDefaultTxPower(uint8_t txPower) {
           m_tx_power = txPower;
       }

    Then, in CC2420TransmitP use the CC2420Config interface, and call the
    getDefaultTxPower command to set the default power:

       if ( !tx_power ) {
         // If our packet's tx_power wasn't configured to anything but 0,
         // send it using the default RF power.  This assumes the
         // packet's metadata is all set to 0's on boot.

         tx_power = call CC2420Config.getDefaultTxPower();
       }

    Does this seem reasonable?  Am I missing some other mechanism to set
    the default radio power level in software?

    Thanks in advance for your assistance.

Looks like the comments are out of date with respect to the implementation.

Based on experiences in implementing protocols, the general approach TinyOS takes these days for things like TX power control, acknowledgements, etc., is to make them per-packet. Otherwise protocol A changes the radio settings, which causes protocol B to break. If you take a look at CC2420Packet, there's a command to set the TX power level of a given packet.

Phil



引用

Hi Prem,

As Christian pointed out, to reduce the transmission range you have to
reduce the transmission power. In Tinyos 2 with a platform with the
cc2420 (such as MicaZ and the Tmotes), you can use either a flag in the
makefile:

CFLAGS += "-DCC2420_DEF_RFPOWER=1"

or you can dynamically change the tx power at runtime (individually for
every packet) with something like (wire in the CC2420PacketC module):

call CC2420Packet.setPower(&rpacket, 1);

You'll have to issue that call for every packet prior to sending it.

Reducing the TX power to its minimum I get a maximum transmission range
of roughly 3 meters under ideal conditions.

Cheers,
Urs
分享到:
评论

相关推荐

    DCPF for power.rar_dc power flow_flow_power_power flow_power fow

    标题中的“DCPF for power.rar_dc power flow_flow_power_power flow_power fow”表明这是一个关于直流功率流(DC Power Flow)的压缩文件,可能包含了相关的计算方法、程序代码或技术文档。直流功率流分析是电力...

    power_13NodeTestFeeder.rar_13节点 simulink模型_微电网 模型_微电网节点_电网仿真_电网节

    标题中的"power_13NodeTestFeeder.rar"提示这是一个关于13节点微电网的测试模型,而".rar"是压缩文件格式,通常用于打包多个文件或文件夹以便于传输和存储。描述指出这是一个已经搭建完成的Simulink模型,专用于微...

    prg.rar_PV power _PV power flow_power flow code_power flow matla

    3. **电力流(Power Flow)计算**:也称为潮流计算,是电力系统分析的基础,用于确定在给定的负荷和发电机设定下,电网中各节点电压、线路潮流(电流和功率)的分布。 4. **MATLAB代码**:在电力系统研究中,MATLAB...

    Power_ePAPR_APPROVED_v1.12

    标题“Power_ePAPR_APPROVED_v1.12”暗示了这可能是一个关于PowerPC架构下设备树规范的文档,版本为1.12,并且已经得到了批准。ePAPR(Embedded PowerPC Architecture Platform Reference)是IBM推出的一个开放标准...

    Power_Flow_33_69_33节点_33ieee_ieee33潮流计算_loadflow_IEEE33节点_

    "Power_Flow_33_69_33节点_33ieee_ieee33潮流计算_loadflow_IEEE33节点_"这个标题涉及到的是对IEEE 33节点和69节点标准系统的潮流计算问题,采用的是Matlab编程环境。Matlab由于其强大的数值计算能力和友好的用户...

    power_world_power_powersystem_

    标题 "power_world_power_powersystem_" 暗示我们正在探讨的是电力系统(powersystem)相关的主题,可能是一个关于电力世界(power_world)的项目或研究。描述中提到的 "This is the power flow modeling of a big ...

    power_flow_9_bus_6节点潮流_6节点_6节点潮流计算_潮流计算_ieee_源码.rar

    这个名为"power_flow_9_bus_6节点潮流_6节点_6节点潮流计算_潮流计算_ieee_源码.rar"的压缩包文件,很可能包含了一个关于9个节点电力系统的潮流计算程序源代码,以及可能的6节点系统的简化示例。这个程序可能基于...

    Power-System-Transient-Program.zip_14节点暂态_IEEE14节点_power system_

    电力系统的暂态计算程序 适用于任何系统,包括三机九节点, IEEE14节点等各种情况的电力系统。计算发电机的极限切除角

    acpi_power_meter.rar_acpi_power_meter

    4. **暴露接口**:通过sysfs或/proc目录创建节点,让用户空间程序能够读取这些信息,例如使用`cat /sys/class/hwmon/hwmonX/power1_input`命令查看功率值。 5. **事件处理**:驱动可能还包含对电源状态改变的处理...

    case57.rar_IEEE57节点_ieee57_ieee57节点数据_met4ut_power system

    电力系统分析是电力工程中的核心领域之一,而IEEE57节点系统是这个领域中的一个经典研究案例。这个系统被广泛用于教学和研究,因为它能够模拟实际电力网络的复杂性,同时又不至于过于庞大,便于理解和分析。在这个...

    IEEE39_ieee39_ieee39模型_ieee39节点_节点模型_

    这些节点包括26个PQ节点(即功率因数可调的负荷节点)、9个PV节点(电压可调节的发电机节点)和4个 slack bus(也称为PQV或ref节点,代表系统基准点,其电压和相角被固定)。此模型涵盖了各种复杂的系统特性,如非...

    d009_dyn.zip_9节点_9节点PSAT_psat模型_simulink节点_节点模型

    这个模型由标题“d009_dyn.zip_9节点_9节点PSAT_psat模型_simulink节点_节点模型”所示,是一个针对九个节点的电力系统进行动态模拟的实例。本文将深入探讨九节点PSAT模型及其在Simulink中的实现。 PSAT(Power ...

    IEEE14.rar_14节点_Ieee14_matlab simulink_power grid_电网

    标题中的“IEEE14.rar_14节点_Ieee14_matlab simulink_power grid_电网”指的是一个关于电力系统模拟的项目,使用了MATLAB Simulink工具,并基于经典的IEEE 14节点测试系统。这个压缩包包含了核心的模型文件“IEEE14...

    fig.rar_IEEE 118 bus_Power flow 118_power flow_svc_svc power flo

    标题中的"fig.rar_IEEE 118 bus_Power flow 118_power flow_svc_svc power flow"指的是一项关于IEEE 118节点电力系统的分析,其中包含了功率流动(Power Flow)的研究,并且特别关注了静止无功补偿器(SVC)在功率...

    case_33.zip_33节点_33节点 matlab_CASE 33_IEEE33 节点_ieee33

    标题中的"case_33.zip_33节点_33节点 matlab_CASE 33_IEEE33 节点_ieee33"指的是一个与IEEE 33节点电力系统相关的MATLAB程序案例。这个压缩包文件包含了用于分析或模拟33个节点电力系统的数据和代码。"33节点"是指...

    基于matpower潮流计算报告_39节点潮流_39潮流计算_39节点_newengland39bus_matpower

    《基于Matpower的新英格兰39节点潮流计算》 在电力系统分析中,潮流计算是一项基础且重要的任务,它用于确定电力网络在特定运行条件下的电压、功率分布和线路潮流。新英格兰39节点系统是电力系统研究中的一个典型...

    powerworld简单节点的算例

    《PowerWorld简易节点案例分析》 在电力系统分析领域,PowerWorld Simulator是一款广泛使用的软件工具,它能够模拟和分析电网的运行状态。本资源包针对PowerWorld的初学者,提供了包含简单节点和复杂节点的算例,...

    power_13NodeTestFeeder_olcumlu_power_

    标题“power_13NodeTestFeeder_olcumlu_power_”和描述“power_13NodeTestFeeder_olcumlu”暗示了一个与电力系统相关的项目或模拟,可能涉及13个节点的测试馈线及其性能测量。在这个场景中,“power”标签进一步确认...

    power_upfc.zip_UPFC_compensator_power_upfc_upfc matlab

    UPFC是灵活交流输电系统(FACTS,Flexible AC Transmission Systems)的一种,它通过并联和串联补偿相结合的方式,实现了对电力系统潮流的精确控制。 在“power_upfc.zip”这个压缩包中,主要包含了一个名为“power...

Global site tag (gtag.js) - Google Analytics