最近在学习各种模拟前端的结构,对SDR设备的前端做了一些研究,故写一篇笔记记录一下各种SDR的前端结构。
首先当然是从最简单的RTL-SDR入手。
对于没有接触过软件无线电的同学,先来介绍一下RTL-SDR。
RTL-SDR是一种非常便宜的接收机,可用作基于计算机的无线电频谱仪,用于接收您所在地区的实时无线电信号(无需互联网)。根据特定的型号,它可以接收500kHz至1.75 GHz的信号。 RTL-SDR的大多数软件也是社区开发的,并且免费提供。
RTL-SDR的起源源自 基于RTL2832U芯片组的量产的DVB-T电视调谐接收器。在Antti Palosaari,Eric Fry和Osmocom(主要是Steve Markgraf)的共同努力下,我们发现可以直接访问RTL2832U芯片组上的原始I/Q数据,通过Steve Markgraf开发的自定义软件驱动程序,从而可以将DVB-T电视调谐接收器器转换为一台SDR设备。
因为RTL系列芯片资料很少,故只能收集少量的资料来做分析。
*截至投稿日,数据手册已经在网上出现。请自行查阅
RTL2832U输出8-bit I/Q样本,理论最高采样率为3.2MSps,但是到目前为止,已通过常规USB控制器测试的无丢失样本的最高采样率为2.4MSps。 但是也有特例,Etron EJ168/EJ188/EJ198系列USB主机控制器具有特定的最大延迟,因此可以稳定使用3.2 MSps的采样率而不会丢失样本。
根据其前端调谐器的不同,SDR可接受的频率范围也有所差异。其中接收范围最大的为Elonics E4000。某宝非常常见的前端比如R820T2,FC0012都是随处可见的廉价产品。
对于这么多个调谐器,我们只分析其中资料比较全面的R820T版本。
首先来看一张带有R820T前端的接收器实物图片:
当天线输入信号后,首先由板上的tuner预处理信号,因为RT2832芯片是没有射频前端的,故需要一块调谐器对射频信号进行预处理。tuner即调谐器,在图中所示的R820T芯片具有LNA(低噪放)、BPF(带通滤波器)、mixer(混频器)、VGA(可变增益放大器)等block对信号进行预处理,所有block均可通过I2C总线寄存器控制,而其I2C总线连接到RT2832芯片的I2C总线上,与2832内置的解码器等公用一个总线,在最初没有瑞立芯片手册的时候,国外的大神就是通过这根总线解码到的数据,对寄存器进行穷举从而逆向破解的,实在是非常的厉害。
tuner有一个非常重要的作用即对信号进行下变频。RT2832芯片的内置ADC支持不同的IF带宽(6、7、8M)(DVB-T的OFDM所需求的),不同的IF频率(4.57/36.157M)以及零中频结构输入,所以可以看到在R820芯片中存在一个混频器对信号进行下变频。在我们所见的这副图中所存在的信号链,我们使用4.57M的信号作为其IF信号。有的同学发现在该链中,我们直接将调谐器输出的信号输入到了2832芯片的I通道中,但是没有Q通道,这是完全正确的,可是这样如何进行IQ解调呢?
让我们来看一副图,这幅图显示了RT2832的内部结构:
可以看到其内部还有一个数字下变频结构存在于IF信号向基带信号转换的过程,这也就解释了为何2832支持单独使用I/Q通道而不影响电视信号的解调。之所以有单通道输入或者零中频结构输入这两种模式可以切换,是因为有的调谐器内置了零中频的转换器,比如之前表格中所提到的Elonics E4000调谐器,在下图所示的内部结构图中,可以清晰的发现零中频结构。这种tuner输出的信号就可以使用零中频输入方式输入到RT2832中。
RTL2832芯片其实有两路28.8M采样率的ADC,但是在内部又经过了一次数字的下变频(对于低中频前端)和重采样,导致SDR模式实际上最多只能输出2.56M采样率的I/Q信号。但是都已经把这个芯片玩成这样了,还要什么自行车呢?
在2832与820的链接中,还有几条信号线用于AGC的控制,主要是在无线电视信号解调中对信号做细微调整,但是在其实现SDR功能时不使用这些功能。至于AGC的控制,其实就是RTL芯片输出一个0-3V范围内的模拟电压控制tuner的增益,很简单的。
还有一部分结构是专门用于DVB-T解码的,在此不做过多赘述。有兴趣我们下次讨论
RTL2832U包含一个8051内核,该内核用于处理 I2C传输,红外接收器之类的USB控制功能,以及一个处理批量传输的硬件先入先出队列(FIFO。因此8051内核是不会对采样样本做任何处理的,而是发送到计算机做处理。这也是我们能使用它作为SDR的一个重要突破口。
因为RTL2832本身是一块用于DVB-T解码的芯片,所以其中包含有一块DVB-T专用的解调器,解调器是RTL2832U裸片上的子芯片,其寄存器通过I2C连接到8051核的i2c总线上,在SDR模式中,我们通过修改寄存器关闭解调器,从而实现信号直接传输到计算机而不进行解码,这样才能正常当SDR使用。
因为tuner所工作的频率比较高,所以无法接收低于30M的低频信号,但是大家知道 短波通信通常就是这个频段的。所以当人们发现其Q通道仍然未使用时,就有人开始飞线了。比如说这个
可以看到直接从天线的防静电二极管飞到了Q通道门口hhhh
再通过简单的参数修改,启动Q通道,就可以实现单独用Q通道接收的功能了
因为IF的接收范围允许最大从0-14.4 MHz,因此被人们用于接收14M、7M的短波信号。进行这样的改装绕过了模拟前端的调谐器,甚至没有任何阻抗匹配,虽然看上去很夸张,但是一定意义上是可以使用的,毕竟电视棒的成本这么低廉。如果是其他SDR,不支持低频的则需要一台下变频器,也是会对信号质量造成一定影响,成本也会相应的升高。