树莓派 FM 发送机小电台背后的原理解析

本帖最后由 草莓干 于 2021-1-5 17:49 编辑

文章来源:乐聚机器人王松博士《树莓派 FM 发送机小电台背后的原理解析》

1.png


介绍

在知乎上有个问题 你在 GitHub 上看到过的最有意思的项目是什么? 我介绍了个很有意思的无线 FM 电台的项目,可以在不借用其他外部设备的情况下,通过代码实现将树莓派变为 FM 小电台。

但是作者只是在博客中介绍了大致的原理。于是我搜遍整个网络,发现大多数的相关文章只是教你如何去编译运行代码,对背后的原理却是只言片语,含糊不清。

作为好奇宝宝,我查阅了许多芯片手册和论坛文章,又翻了翻以前学过的《天线原理》对背后的原理做了一下归纳和总结。


概念名词解释

首先是一些基本的概念

  • FM:  调频(Frequency Modulation) 是一种以载波的瞬时频率变化来表示信息的调制方式,载波的频率跟随输入信号的幅度直接成等比例变化。FM Radio就是我们熟悉的调频机。


2.gif



  • PWM:  脉冲宽度调制(Pulse Width Modulation) 是使用数字源生成模拟信号的方法。主要由 2 个参数来定义:占空比和频率。如果以保持一定的速率开关数字信号并且保持一定的占空比,那么输出看起来就像恒定电压模拟信号。

    3.gif

  • GPIO:  通用型输入输出(General-purpose input/output),引脚可以由程序控制作为通用输入(GPI)或者通用输出(GPO)。

4.png


  • CPU:  中央处理器(Central Processing Unit),相当于树莓派的大脑,功能主要是解释计算机指令以及处理计算机软件中的数据,负责与外围设备通信。树莓派使用的是博通 BCM28XX 系列的CPU。

5.png


  • DMA:  直接内存访问(Direct Memory Access)这些设备可以执行涉及主内存和其他设备的数据传送。由于设备执行这些操作的过程中无需借助于 CPU,因此该类型的数据传送称为直接内存访问。简单说就是不用  跟 CPU 打招呼就可以直接访问内存。

6.png


HOW?

  根据麦克斯韦的电磁场理论

1. 变化的磁场能够在周围空间产生电场,变化的电场能够在周围空间产生磁场。

2. 随时间均匀变化的磁场(电场)产生稳定电场(磁场)。随时间不均匀变化的磁场(电场)产生变化的电场(磁场)。

3. 变化的电场和变化的磁场总是相互关系着,形成一个不可分割的统一体,这就是电磁场。

7.png

   

随时间变化的电场产生磁场,而随时间变化的磁场又产生电场,两者互为因果。这种不断转化的场统称为电磁场。这种相互的转化形成电磁振荡。

所以如果在树莓派的 GPIO 上,通过软件控制以一定频率输出高低电平(0/1),再加上适当长度的天线(一根杜邦线即可)就可以将能量以电磁波的形式发射出去。



FM结构图

     

8.png


由图可知,组成一个 FM 发射机系统,树莓派需要

1. 信号采样和 FM 调制所需的时钟

2. 可以通过编程控制电平变化的GPIO

3. 一段可以将电磁波发射出去的天线


 

时钟

目前绝大多数的的微处理器都有扩频时钟(Spread-spectrum clock),目的是为了降低电磁干扰(EMI),在树莓派 BCM28XX 系列芯片上,扩频时钟的范围为 1MHz 到 250MHz,这正好用作 FM 的载波信号。

为了减少 CPU 占用,作者对程序进行了改进,使用树莓派 DMA 产生基础时钟。

9.png


 

信号采样

由于 FM 广播发送的是音频信号,所以先使用 228 kHz 的采样频率对信号进行采样(满足奈奎斯特采样定理),带宽为 15 kHz。

10.png



调频

基带信号 图片,载波频率 fc 正弦载波为图片 将基带数据信号与载波结合起来得到了传输信号

11.png


其为f(τ)传输信号的瞬时频率,fΔ 为频偏,即载波频率的最大频率偏移。

FM 调频输出的是模拟信号,利用时钟产生 PWM 调整占空比和频率,就可以利用数字信号生成模拟信号。图片



树莓派天线长度

1. 波长: λ=c/f

2. 偶极子天线:制作偶极子天线时,会通过工作波长来确定天线的长度。最常见的偶极子天线是半波天线,它的总长度近似为工作波长的一半,即  L=λ/2

13.gif


如果需要发射 100MHz 的 FM 信号,根据上面的公式来计算,就需要 1.5m 长的天线。

14.png


所以理论上如果给树莓派 GPIO(PIN4) 加上了一根 1.5m 的天线,那么就可以输出最大功率的 FM 信号。

不要这么做,会干扰正常频段!



传播距离估计

首先需要计算有效全向辐射功率(EIRP)

EIRP=P−Loss+G

其中P 为发射机的输出功率(dBm),Loss 为发射机输出端与天线馈源之间的馈线损耗(dB),G 为天线的发送增益(dBi)。求出 EIRP 后可以进而获得自由空间路径损失(Free Space Path Loss,FSPL)。但是使用这个公式估算,意义不是太大。实际测量,如果使用一根 10cm 的杜邦线作为天线,一个楼梯拐角信号就已经非常弱了。

15.png


 

总结

1. 树莓派电磁波发射时没有带通滤波器,谐波会干扰其他频段!

2. 不要干扰正常频段,属于违法行为!



参考

代码请见参考链接:

[1]Eben Upton and Gareth Halfacree. Raspberry Pi user guide. John Wiley & Sons, 2014.

[2]Oliver Mattos and Oskar Weigl. Turning the Raspberry Pi Into an FM Transmitter. http://www.icrobotics.co.uk/wiki/index.php/Turning the Raspberry Pi Into an FM Transmitter, 2015.

[3]Christophe Jacquet. FM-RDS transmitter using the Raspberry Pi’s PWM . https://github.com/ChristopheJacquet/PiFmRds, 2014.

[4]Richardson. Turning the Raspberry Pi Into an FM Transmitter. http://www.icrobotics.co.uk/wiki/index.php/TurningtheRaspberryPiIntoanFM_Transmitter, 2015.


回复

使用道具 评分 举报

您需要登录后才可以回帖 登录 | 立即注册

  • 0 关注
  • 14 粉丝
  • 115 帖子