一、前言

zigbee无线传输技术在物联网领域广泛应用,以其强大的组网能力,网络自愈能力,给物联网的控制带来比较好的鲁棒性。由于zigbee采用2.4G的频率,导致其传输距离受限,穿墙能力较弱,虽然zigbee的路由功能可以绕过障碍物,但治标不治本,假如路由节点被障碍物隔离了,通讯链路就会断开,加之公司的产品是金属框架,zigbee节点之间的通讯有时候不稳定,所以增强其穿墙能力很有必要。本文采用的是rfx2401+cc2530的PA信号增强方案,以“ZStack-CC2530-2.5.1a”协议栈为基础。

二、PA的简介

1.PA是什么--简介

  PA是Power Amplifier的简称,中文名称为功率放大器,简称“功放”,指在给定失真率条件下,能产生最大功率输出以驱动某一负载的放大器。利用三极管的电流控制作用或场效应管的电压控制作用将电源的功率转换为按照输入信号变化的电流。例如扬声器,功率放大器在整个音响系统中起到了“组织、协调”的枢纽作用,在某种程度上主宰着整个系统能否提供良好的音质输出。

2.PA是什么--构成

  功率放大器通常由3部分组成:前置放大器、驱动放大器、末级功率放大器。

  前置放大器---起匹配作用,其输入阻抗高,输出阻抗低。同时,它本身又是一种电流放大器,输入的电压信号转化成电流信号,并给予适当的放大。

  驱动放大器---起桥梁作用,它可以将前置放大器送来的电流信号作进一步放大。如果没有驱动放大器,末级功率放大器不可能送出大功率的声音信号。

  末级功率放大器---起关键作用。它驱动放大器送来的电流信号形成大功率信号,带动扬声器发声,它的技术指标决定了整个功率放大器的技术指标。

3.PA是什么--原理

  PA是利用三极管的电流控制作用或场效应管的电压控制作用电源的功率转换为按照输入信号变化的电流。由于声音是不同振幅和不同频率的波,三极管的集电极电流永远是基极电流的β倍,应用这一点,若小信号注入基极,则集电极流过的电流会等于基极电流的β倍,然后这个信号用隔直电容隔离出来,就得到了电流(或电压)是原先的β倍的大信号,这现象成为三极管的放大作用。经过不断的电流放大,就完成了功率放大。

4.PA是什么--分类

  从1980年代早期,许多研究者致力于开发不同类型的数字放大器,这种放大器直接从数字语音数据实现功率放大而不需要进行模拟转换,这样的放大器通常称作数字功率放大器或者D类放大器。利用模拟功率放大器进行模拟信号放大,如A类、B类和AB类放大器。

  A类放大器----放大器的工作点Q设定在负载线的中点附近,晶体管在输入信号的整个周期内均导通。

  B类放大器----放大器的静态点在(VCC,0)处,当没有信号输入时,输出端几乎不消耗功率。

  AB类放大器----晶体管的导通时间稍大于半周期,必须用两管推挽工作。可以避免交越失真。

  D类放大器----是一种输入模拟音频信号或PCM数字信息变换成PWM(或PDM的脉冲信号,然后用PWM或PDM的脉冲信号去控制大功率开关器件通/断音频功率放大器。具有效率高的突出优点。

5.PA是什么--应用

  众所周知,功率放大器是射频电路众多模块中功率损耗最大的,作为系统的核心和前端部分,它的效率直接影响系统效率,因此效率问题成为现代功率放大器的研究热点。

  无论在全球移动通信系统、第三代移动通信系统、无线局域网等民用领域,还是在雷达、电子战、导航等军用领域,射频功率放大器作为这些系统中的前端器件,对其低耗、高效、体积小的要求迅速增加。

6.PA和LNA的区别

低噪声放大器(Low Noise Amplifier) -------------LNA
功率放大器(Power Amplifier)---------------------PA
      LNA是低噪声放大器,主要用于接收电路设计中。因为接收电路中的信噪比通常是很低的,往往信号远小于噪声,通过放大器的时候,信号和噪声一起被放大的话非常不利于后续处理,这就要求放大器能够抑制噪声。PA(功放)主要功能是功率放大,以满足系统要求,最重要的指标就是输出功率大小,其次线性如何等等,一般用在发射机的最后一级。
LNA用在接收机由于对噪声要求很严格,所以其bias较低,这样就能实现很小的NF和很高的效率,但同时会导致线性区增益较低,最大输入功率不是很高(也可以说1dB压缩点吧)。PA主要是考虑高的线性区和高增益,其bias很高,这样也会造成PA效率降低。
         所以呢,你会看到,LNA在放大信号的时候基本上电流很小,一方面是因为信号小,另一方面就是其效率高bias低。要知道,电流大的话NF会变差。PA的话,动不动30dB左右的gain,接近30dBm的max ouput power,可是线性度还是很好,用个bias很高的A类放大器,效率在30%左右,电流很大,不过它不管NF,反正Tx信号很强,来点noise的话根本影响不到信噪比。

三、PA功能在zigbee协议栈的移植方法

(1)添加PA宏定义

   hal_broad_cfg.h中#define xHAL_PA_LNA 改为HAL_PA_LNA。

(2)修改PA驱动的引脚(我的板子上P1_0对应PA_EN,P1_1对应CE)

原理图如下:

MAC_INTERNAL_API void macRadioTurnOnPower(void)
{/* Enable RF error trap */MAC_MCU_RFERR_ENABLE_INTERRUPT();//#if defined MAC_RUNTIME_CC2591 || defined MAC_RUNTIME_CC2590 || \
//    defined MAC_RUNTIME_SE2431L || defined MAC_RUNTIME_CC2592
//  /* table ID is referenced only when runtime configuration is enabled */
//  if (macRadioDefsRefTableId & 0xf0)
//#endif /* defined MAC_RUNTIME_CC2591 || defined MAC_RUNTIME_CC2590 */
//
//#if defined MAC_RUNTIME_CC2591 || defined MAC_RUNTIME_CC2590 || \
//    defined MAC_RUNTIME_SE2431L || defined MAC_RUNTIME_CC2592 || \
//    defined HAL_PA_LNA || defined HAL_PA_LNA_CC2590 || \
//    defined HAL_PA_LNA_SE2431L || defined HAL_PA_LNA_CC2592
//  { /* either if compound statement or non-conditional compound statement */
//
//    /* (Re-)Configure PA and LNA control signals to RF frontend chips.
//    * Note that The register values are not retained during sleep.
//    */
//
//    if (paLnaChip == PA_LNA_SE2431L)
//    {
//      /* CPS or P0_7 maps closely to the HGM line */
//      HAL_PA_LNA_RX_HGM();
//
//      /* EN or CSD line is controlled via software so setting it high here to start the SE2431L frontend */
//      HAL_PA_LNA_RX_CSD_HIGH();
//
//      /* CTX or P1_1 maps closely to PAEN */
//      RFC_OBS_CTRL0 = RFC_OBS_CTRL_PA_PD_INV;
//      OBSSEL1       = OBSSEL_OBS_CTRL0;
//    }
//    else if(paLnaChip == PA_LNA_CC2592)
//    {
//      /* P1_1 -> PAEN */
//      RFC_OBS_CTRL0 = RFC_OBS_CTRL_PA_PD_INV;
//      OBSSEL1       = OBSSEL_OBS_CTRL0;
//
//      /* P1_0 -> EN (LNA control) */
//      RFC_OBS_CTRL1 = RFC_OBS_CTRL_LNAMIX_PD_INV;
//      OBSSEL0       = OBSSEL_OBS_CTRL1;
//    }
//    else
//    {
//      /* P1_1 -> PAEN */
//      RFC_OBS_CTRL0 = RFC_OBS_CTRL_PA_PD_INV;
//      OBSSEL1       = OBSSEL_OBS_CTRL0;
//
//      /* P1_4 -> EN (LNA control) */
//      RFC_OBS_CTRL1 = RFC_OBS_CTRL_LNAMIX_PD_INV;
//      OBSSEL4       = OBSSEL_OBS_CTRL1;
//    }
//
//
//    /* For any RX, change CCA settings for CC2591 compression workaround.
//    * This will override LNA control if CC2591_COMPRESSION_WORKAROUND
//    * flag is defined.
//    */
//  }
//#endif /* defined MAC_RUNTIME_CC2591 || ... || defined HAL_PA_LNA_SE2431L... *//* P1_0 -> PAEN */RFC_OBS_CTRL0 = RFC_OBS_CTRL_PA_PD_INV;OBSSEL0       = OBSSEL_OBS_CTRL0;P1SEL &=~0x01;P1DIR |=0x01;P1_0=0;/* P1_1 -> EN (LNA control) */RFC_OBS_CTRL1 = RFC_OBS_CTRL_LNAMIX_PD_INV;OBSSEL1       = OBSSEL_OBS_CTRL1;P1SEL &=~0x02;P1DIR |=0x02;P1_1=0;if (macChipVersion <= REV_B){/* radio initializations for disappearing RAM; PG1.0 and before only */MAC_RADIO_SET_PAN_ID(macPib.panId);MAC_RADIO_SET_SHORT_ADDR(macPib.shortAddress);MAC_RADIO_SET_IEEE_ADDR(macPib.extendedAddress.addr.extAddr);}/* Turn on frame filtering */MAC_RADIO_TURN_ON_RX_FRAME_FILTERING();
}

OBSSEL0-OBSSEL4的五个这样控制,分别对应P1.0到P1.4的管脚,OBSSEL_OBS_CTRL0和OBSSEL_OBS_CTRL1给它们赋的值代表的是置0或置1

(3)设置PA的功率

修改mac_pib.c文件,修改PA的功率phyTransmitPower为0xF5

修改mac_radio.c文件的macRadioUpdateTxPower函数,增加一行 reqTxPower=0xF5;

MAC_INTERNAL_API void macRadioUpdateTxPower(void)
{halIntState_t  s;HAL_ENTER_CRITICAL_SECTION(s);if (reqTxPower != macPhyTxPower){if (!macRxOutgoingAckFlag && !MAC_TX_IS_PHYSICALLY_ACTIVE()){reqTxPower=0xF5;          //long add --20170425macPhyTxPower = reqTxPower;MAC_RADIO_SET_TX_POWER(macPhyTxPower);}}HAL_EXIT_CRITICAL_SECTION(s);
}

功率的设置参数可以参考“mac_radio_defs.c”文件里的 macRadioDefsTxPwrBare数组

const uint8 CODE macRadioDefsTxPwrBare[] =
{3,  /* tramsmit power level of the first entry */(uint8)(int8)-22, /* transmit power level of the last entry *//*   3 dBm */   0xF5,   /* characterized as  4.5 dBm in datasheet *//*   2 dBm */   0xE5,   /* characterized as  2.5 dBm in datasheet *//*   1 dBm */   0xD5,   /* characterized as  1   dBm in datasheet *//*   0 dBm */   0xD5,   /* characterized as  1   dBm in datasheet *//*  -1 dBm */   0xC5,   /* characterized as -0.5 dBm in datasheet *//*  -2 dBm */   0xB5,   /* characterized as -1.5 dBm in datasheet *//*  -3 dBm */   0xA5,   /* characterized as -3   dBm in datasheet *//*  -4 dBm */   0x95,   /* characterized as -4   dBm in datasheet *//*  -5 dBm */   0x95,/*  -6 dBm */   0x85,   /* characterized as -6   dBm in datasheet *//*  -7 dBm */   0x85,/*  -8 dBm */   0x75,   /* characterized as -8   dBm in datasheet *//*  -9 dBm */   0x75,/* -10 dBm */   0x65,   /* characterized as -10  dBm in datasheet *//* -11 dBm */   0x65,/* -12 dBm */   0x55,   /* characterized as -12  dBm in datasheet *//* -13 dBm */   0x55,/* -14 dBm */   0x45,   /* characterized as -14  dBm in datasheet *//* -15 dBm */   0x45,/* -16 dBm */   0x35,   /* characterized as -16  dBm in datasheet *//* -17 dBm */   0x35,/* -18 dBm */   0x25,   /* characterized as -18  dBm in datasheet *//* -19 dBm */   0x25,/* -20 dBm */   0x15,   /* characterized as -20  dBm in datasheet *//* -21 dBm */   0x15,/* -22 dBm */   0x05    /* characterized as -22  dBm in datasheet */
};

四、加了PA信号到底增强多少呢

用Packet Sniffer抓取zigbee通讯数据包,由于数据包后面能看到信号强度,我们可以对比一下信号增强的幅度,下面贴上两张图,

第一张是不加PA的图,

第二张是带PA的图。

可以发现,增加PA后,在同样的距离测信号强度,加了PA比不加PA的信号强度要大24DB,在远一点的距离会进一步拉大这个差距。

参考资料:

1.http://blog.csdn.net/wenwen091100304/article/details/39404523

2.http://blog.csdn.net/u011534701/article/details/50327039

3.http://blog.csdn.net/tpfgfxz/article/details/27511195

4.http://www.eepw.com.cn/article/273474.htm

5.

zigbee加PA信号增强方案:rfx2401+cc2530相关推荐

  1. 基于Matlab的声波信号处理,基于声卡和Matlab平台的语音信号增强处理系统

    第29卷第6期 V01.29 No.6 企业技术开发 TECHNOLOGICAL DEVELOPMENT 0F ENTERPRISE 2010年3月 Mar.2010 基于声卡和Matlab平台的语 ...

  2. IM推送保障及网络优化详解(二):如何做长连接加推送组合方案

    对于移动APP来说,IM功能正变得越来越重要,它能够创建起人与人之间的连接.社交类产品中,用户与用户之间的沟通可以产生出更好的用户粘性. 在复杂的 Android 生态环境下,多种因素都会造成消息推送 ...

  3. Vissim11二次开发之C#---实现仿真时间内实施不同信号控制方案

    Vissim11二次开发之C#-实现仿真时间内实施不同信号控制方案 本文起源:近些日子,由于论文仿真需求,重重重操Vissim旧业. 先说下需求情况吧:路网区域优化前后两种信号控制方案,由于论文场景要 ...

  4. imgaug数据增强神器:第一章 加载和增强图像

    官网:https://imgaug.readthedocs.io/en/latest/ 教程:https://nbviewer.jupyter.org/github/aleju/imgaug-doc/ ...

  5. Android 高清加载巨图方案 拒绝压缩图片

    Android 高清加载巨图方案 拒绝压缩图片 转载请标明出处:  http://blog.csdn.net/lmj623565791/article/details/49300989:  本文出自: ...

  6. 电信 IPRAN 设备组网方案_国内首家5G核心网电信设备进网许可证;电信5G网络增强方案获认可;美国最大规模毫米波拍卖...

    点击上方"通信人才网" 订阅! 导读:今日热点 华为荣获国内首家5G核心网电信设备进网许可证近日,华为获得工业和信息化部颁发的"5G核心网电信设备进网许可证". ...

  7. Android_高清加载巨图方案 拒绝压缩图片

    原文出处:http://blog.csdn.net/lmj623565791/article/details/49300989 一.概述 距离上一篇博客有段时间没更新了,主要是最近有些私事导致的,那么 ...

  8. wifi信号增强android,WiFi信号增强大师APP

    WiFi信号增强大师APP是一款能够增强WiFi信号的软件,可以帮助用户快速提高WiFi的强度,获得更加流畅的网络连接体验,避免了因为信号弱而出行的网页打开慢.视频缓冲慢等问题,软件还为用户提供了网络 ...

  9. 串口 能 按位传输吗_、 迪文串口屏TTL与主控板RS232电平信号转换方案

    迪文串口屏TTL与主控板RS232电平信号转换方案 一.TTL和RS232简述 串口.COM口是指的物理接口形式(硬件),按位(bit)发送和接收字节.而TTL.RS-232是指的电平标准(电信号). ...

最新文章

  1. LeetCode - 34. Search for a Range
  2. Windows Embedded Standard7在金融业的应用
  3. 数据结构和算法之——跳表
  4. 阿里巴巴淘系开源大型3D家具数据集(3D-FUTURE)推动3D家居智能研究
  5. hdu4405:概率dp
  6. java类怎么删除对象_java中对象的生成使用和删除
  7. linux 下运行 jar包 java.lang.ClassNotFoundException: 解决办法
  8. 计算机及应用学习顺序,自考计算机及应用专业经验谈
  9. paip.项目开发效率提升之思索
  10. 在同个工程中使用 Swift 和 Objective-C(Swift 2.0更新)-b
  11. 天锐绿盾技术大讲堂:终端出现红色“+”
  12. 超低成本的2.4G超远距离无线遥控、无线传输方案随笔
  13. 人工神经网络分析方法,神经网络数据分析步骤
  14. 免费客户旅程(Customer Journey Mapping) 示例总汇
  15. python循环读取excel存入列表_python3 循环读取excel文件并写入json操作
  16. 一阶电路中的时间常数_电路时间常数怎么求
  17. 视频教程-Scratch趣味编程课堂-L1-其他
  18. 胡乱捣鼓03——PID定身12cm直线追踪小车做起来~
  19. 4.4 Kali与windows xp之间搭建TFTP服务
  20. 百度 baidu-site-verification

热门文章

  1. matplotlib 绘图非洲国家GDP排行前12的国家python
  2. 幻想战姬PVP模拟器(一)
  3. 学习笔记-应用光学 第一章 几何光学的基本定律
  4. python连接oracle12c
  5. DIY服务器raid硬盘检测,DIY存储服务器技术篇——硬盘RAID选用(3)
  6. 过年了JAVA类编写烟花爆竹——学习分享下笔者的经验
  7. (轉貼) 千頭萬緒 : 學習多執行緒程式設計的好書 (.NET) (Java)
  8. 130个物联网示范项目上榜!工信部权威发布
  9. 汽车充电桩的功能有哪些
  10. 基于局部自适应色差阈值的彩色图像边缘检测_爱学术