第一章 概述

对于世界各地的许多人、企业和组织来说,无线电通信是日常生活的重要组成部分。它使从国家级的无线电和电视广播,到移动蜂窝网络,私人数据网络;再到紧急服务通信,航空交通控制,导航系统和许多其他技术成为可能。虽然有些用途在几十年间变化不大(如收听当地的广播电台),但更大的画面显示,无线通信领域持续创新。蜂窝和私人数据网络正处于这个领域的创新前沿——向着更高的数据速率,更强的安全性和可靠性,更大的移动性,更低的延迟,以及支持更大密度的订阅者方向发展。

无线电标准的快速演变为实现这些各种性能改进,以及不断演变的使用情况,以及动态获取无线电频谱的新范例,意味着无线电设备必须越来越能够在现场升级,并在其操作中具有灵活性。总的来说,这些要求使得软件定义无线电(SDR)成为自然的解决方案。

在本书中,我们将讨论使用AMD Zynq UltraScale+ RFSoC设备设计和实现SDR系统。我们将回顾数字信号处理和无线通信的基础概念,考虑RFSoC架构的特点和能力,并展示如何在这个令人兴奋的平台上实现SDR系统。

1.1  软件定义无线电的来临

软件定义无线电(SDR)并非新概念——该术语首次在1990年代引入,其起源可以追溯到1980年代[264],[265]。SDR背后的基本思想是,无线电的一个或多个功能可以通过软件进行控制。最初,这是一个具有挑战性的愿景,当无线电传统上是固定功能的硬件设备;然而,在过去的几十年里,技术的发展越来越提供了支持SDR的平台。举一个简单的例子,前端SDR处理平台可通过软件编程设置本地振荡器频率进行调制和解调。SDR概念将在第2章进一步介绍;第8章将进一步详述架构。

在当今的时代,人们可能会争论几乎所有的无线电都是SDR,因为基于软件的控制通常嵌入在无线电架构的某个地方。只有最简单、最便宜的无线电设备不需要任何软件元素-例如,你仍然可以购买模拟无线电设备用于调幅(AM)和调频(FM)波段,由用户手动旋转旋钮进行调谐,观察指示条在频率尺度上的变化。然而,这些并不是支撑现代经济和社会的快速、可靠和安全的数据通信提供的无线电系统。相反,想想诸如Wi-Fi、蓝牙、4G、5G这样的标准-这些都是复杂且精密的系统,由软件进行调控。在许多情况下,核心处理功能也是在软件中实现的。正如我们在第19章中讨论的,可以争论在未来,可能会需要更灵活和反应更快的无线电,例如实现动态频谱接入(DSA),这是一种颠覆性的新型无线电频谱管理模型。

当我们发布这本书的时候,6G的设计和开发已经全速进行。这将是Gen1并且在射频(RF)前端几乎全是SDR的标准(至少对于低频和中频RF频率高达10GHz),RF采样的真正力量和灵活性将在2020年代后期出现在数字通信市场,就如同1980年代中期CD的第一种数字音频格式出现在音频市场上一样。另一场数字通信革命正在用6G呼唤我们!

因此,现代通信工程师需要的是赋予SDR能力的平台,因为他们正在寻求部署更好的今天的无线电标准的解决方案,并开发未来的新无线电系统。

1.2  使用Zynq UltraScale+ RFSoC的SDR

本书的重点是使用Zynq UltraScale+ RFSoC平台(以下简称为'RFSoC')实现SDR系统。顾名思义,这种设备是一种针对无线频率(RF)应用专门设计的系统芯片(SoC)。

RFSoC是AMD(前身为Xilinx,于2022年被AMD收购)开发的第三大ZynqSoC,第一款是2010年代初的Zynq-7000 SoC。Zynq UltraScale+多处理器SoC(MPSoC)在RFSoC之前,除了具有针对无线电的特性外,两者有很多共同点。这三种SoC类型都由处理系统(PS)组成,用于运行软件系统组件,与等效于现场可编程门阵列(FPGA)的可编程逻辑(PL)相结合,并在两部分之间进行高速连接。我们将在第3章比较这三种SoC类型的硬件特性,但现在,我们只关注RFSoC。

图1.1显示了RFSoC设备架构的高级视图。请注意PS和PL部分,特别是PL包含一些对SDR应用特别重要的突出特性。这些特性是硬化的,意味着它们是在设备的专用硅片上实现的,而不是在可编程逻辑上实现(带来性能优势,但仍提供可编程性)。

RFSoC的突出特性可以总结如下:

输入图片说明

图1.1:Zynq UltraScale+ RFSoC的高层次示意图

RF数据转换器(RFDC)模块 - 集成的模拟至数字转换器(ADC)和数字至模拟转换器(DAC)能够以非常高的采样率(GSps,或GHz)运行,使其能够直接采样许多无线电信号。RFDC模块还集成了可编程的数字上变频器(DUC)和数字下变频器(DDC),用于在基带(接近0Hz的信号)和调制频率之间进行转换,反之亦然。

软决策前向纠错( SD-FEC)模块 - 无线通信方案通常会包含某种形式的前向纠错(FEC)编码,以抵消在无线电通道中引入的错误(即让接收器检测到位错误,并在可能的情况下进行纠正)。RFSoC架构包括硬化的SD-FEC模块,用于实现选定的移动蜂窝标准中使用的编码和或解码方案。使用这些硬化的SD-FEC模块是一种优化的、低功耗的方法,可在无线电设计中包含FEC功能。

千兆位收发器(GTY收发器) - 尽管RFDC代表了射频接口,但在许多情况下,RFSoC需要与无线电系统的其他元素建立有线连接。最显著的例子是无线蜂窝基础设施:RFSoC可以用来实现无线电前端,但需要高速链接回核心网络,这些通常以有线或光形式实现。RFSoC上支持所需接口的硬化GTY收发器模块,高速串行接口,可以实现多种不同的标准[50]。

除了这些专用资源,PL还提供了一个可编程的硬件资源,用于实现自定义的无线电架构。从SDR的角度看,可以集成运行时的灵活性,以从软件更改硬件设计的参数,甚至可以即时重新编程PL设计的部分。

PS架构包括一个四核应用处理单元,一个双核实时处理单元,以及用于平台管理和安全的特性[131]。还有本地内存、互连和外设接口。这些特性可以结合起来实现SDR的软件组件,如操作系统,对硬件元素的控制和协调,以及基于软件的算法。

1.3  设计方法

SDR实现可以使用各种硬件技术和软件方法来实现。正如前面所述,RFSoC平台提供了一个强大的SDR硬件平台,其PS代表了软件组件的强大主机。

这本书从概念的角度介绍了SDR的实现,并在适当的地方深入研究了数学背景。也介绍了SDR系统设计的实际方面,以及几个示例和参考设计。Vivado集成开发环境(IDE)被广泛用于硬件开发,以及基于块的工具,Vitis和模型编译器以及HDL,Coder,这两者都在MATLAB和Simulink环境中使用。我们在书中特别介绍的SDR的“软件”部分的基础是PYNQ框架[39],这是一个AMD开源项目,它在AMD自适应计算平台上提升了软硬件集成和生产力。它通过结合SoC硬件设计、Linux和Python元素,以及用于应用程序开发的Jupyter环境来实现这一点[294]。

RFSoC-PYNQ是PYNQ的扩展,它包含了对RFSoC平台的支持,并加速了SDR开发。它包括对硬化特性如RFDCs的设计支持,使得能够轻松地控制硬件块的参数和操作。RFSoC-PYNQ在本书的实践元素中进一步介绍,从紧接着这一章的Notebook Set A开始,并构成了伴随本书提供的参考设计的基础。

1.4  如何使用这本书

无论你是在阅读印刷版还是电子版,这本书不仅仅是你在这里看到的这些页面。我们的目的是通过包含一套实践材料,提供一套丰富的设计资源。

在主要的书中,你会发现一些编号为:Notebook Set A、B、C、D、E、F、GH、I的短节。

这些实际上是简短的总结(只有几页),对应的实践资源是单独存在的,并且可以从附带本书的GitHub仓库中免费获取,该仓库将在下一节中介绍。这些设计的用户界面是通过一组Jupyter Notebook,因此标题为"Notebook Set"。

Notebooks和设计可以自由获取,下载到支持RFSoC的开发板上,并通过Jupyter进行交互。其中一些Notebook Set涵盖了一些相关的概念,如DSP和通信理论,不需要在开发板上运行(虽然它们可以)。Notebook Set A(参见第7页)介绍了本书的实践元素,并解释了如何开始。这些设计资源可以进行探索,重用,和构建。

当然,这本书的其余部分就是一本书-一组涵盖SDR和RFSoC技术的关键话题的章节,目的是让读者容易理解和获取信息。这些章节按照常规方式进行编号,从当前这一章到第19章。我们希望你会发现它们有用!

1.5  相关工作和资源

本书旨在为RFSoC基础的SDR设计提供一个宝贵的入门资源,并作为那些已经开始这个旅程的人的有用伴侣。在编写本书的过程中,我们发现RFSoC-SDR设计实际上涉及到相当多的话题!我们力求以一种容易理解的风格和实际的细节程度涵盖这些话题。无疑,本书能够包含的材料范围是有限的,而在许多情况下,你可以在涵盖在本书的一章或子章中的话题上找到整本教科书。在适当的地方引用了进一步信息的来源,并在书的最后的参考文献列表中列出了这些来源。

此外,强调一些特定的信息源和支持资源也是很有用的:

本书的网站https://www.rfsocbook.com

RFSoC-PYNQ网站https://www.rfsoc-pynq.io/和GitHub仓库

https://github.com/Xilinx/RFSoC-PYNQ-RFSoC-PYNQ资源以及开源项目的仓库

StrathSDR GitHub仓库https://github.com/strath-sdr/RFSoC-Book-一个托管本书配套实践材料的仓库。

探索Zynq UltraScale+ MPSoC[https://www.zynq-mpsoc-book.com][131]-我们之前关于Zynq UltraScale+ MPSoC的书籍是一个有用的参考,因为RFSoC的许多架构方面与之相同。

AMD支持网页[https://www.xilinx.com/support.html-AMD为RFSoC及相关的开发工具和设计资源提供了广泛的文档和支持。

AMD大学计划[https://www.xilinx.com/support/university.html]-关于大学支持、项目、活动和其他倡议的信息

通过GitHub分享的材料可以被视为"生动"的设计,随着时间的推移可能会受益于错误修复、升级和扩展。

1.6  章节组织

本书分为四个主要部分进行组织:

介绍-第1章到第3章,以及Notebook Set A,这本书的第一部分介绍了SDR,RFSoC平台,并提供了作为本书第一个实践要素的“入门”教程。

使用RFSoC的SDRDSP和通信概念 - 第4章到第8章,Notebook Set B到E,我们回顾了来自数字信号处理(DSP)和无线通信理论的基本概念,并配合相关的实际例子,适当地参考RFSoC。这一部分的一个特殊特点是引入了基于RFSoC的频谱分析器-如果你有访问受支持的RFSoC开发板的权限,你可以下载这个应用到你的板上,并探索你周围的无线电频谱!

RFSoC特性和实际设计 - 第9章到第15章,Notebook Set F到H,这本书的这一部分更深入地研究了RFSoC的架构和特性,并考虑如何使用这个设备进行设计。特别的关注点放在RFDCs上,它们代表了SDR架构的模拟/数字接口;我们还研究了SD-FEC块并学习如何使用它们,并更一般地涵盖了RFSoC的设计方法。实践章节还演示了频率规划技术,并展示了一个完整的发射接收无线电设计。

系统和应用 - 第16章到第19章,NotebookSet I,最后几章以RFSoC SDR设计的上下文呈现了各种系统。覆盖了正交频率分割复用(OFDM)的多路访问方法,以及一个实际的例子。讨论了在蜂窝网络中以及在实现多输入多输出(MIMO)和波束形成系统中使用RFSoC的用途。最后,考虑了频谱管理和认知无线电解决方案的未来方向。

接下来,我们将在Notebook Set A中继续介绍Jupyter notebooks和PYNQ,然后在第2章中介绍SDR。