数字通信同步技术的MATLAB与FPGA实现——Altera/Verilog版(第2版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-08-05 08:05:52

点击下载

作者:杜勇

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

数字通信同步技术的MATLAB与FPGA实现——Altera/Verilog版(第2版)

数字通信同步技术的MATLAB与FPGA实现——Altera/Verilog版(第2版)试读:

内容简介

本书以Altera公司的FPGA为开发平台,以MATLAB及Verilog HDL为开发工具,详细阐述数字通信同步技术的FPGA实现原理、结构、方法和仿真测试过程,并通过大量的工程实例分析FPGA实现过程中的具体技术细节。本书主要内容包括FPGA实现数字信号处理基础、锁相环、载波同步、自动频率控制、位同步、帧同步等。本书思路清晰、语言流畅、分析透彻,在简明阐述设计原理的基础上,注重对工程实践的指导性,力求使读者在较短的时间内掌握数字通信同步技术的FPGA设计知识和技能。

作者精心设计了与本书配套的FPGA开发板,详细介绍了工程实例的实验步骤及方法,形成了从理论到实践的完整学习过程,可以有效地加深读者对数字通信同步技术的理解。本书的配套资料收录了完整的MATLAB及Verilog HDL代码,有利于工程技术人员参考,读者可登录华信教育资源网(www.hxedu.com.cn)免费注册后下载。

本书适合数字通信和数字信号处理领域的工程师、科研人员,以及相关专业的研究生、高年级本科生使用。

未经许可,不得以任何方式复制或抄袭本书之部分或全部内容。

版权所有,侵权必究。图书在版编目(CIP)数据

数字通信同步技术的MATLAB与FPGA实现:Altera/Verilog版 / 杜勇编著. —2版. —北京:电子工业出版社,2020.3

ISBN 978-7-121-38642-8

Ⅰ. ①数… Ⅱ. ①杜… Ⅲ. ①数字通信-Matlab软件②现场可编程门阵列-应用-数字通信 Ⅳ. ①TN914.3

中国版本图书馆CIP数据核字(2020)第036003号

责任编辑:田宏峰

印刷:

装订:

出版发行:电子工业出版社

北京市海淀区万寿路173信箱 邮编 100036

开本:787×1 092 1/16 印张:21.25 字数:544千字

版次:2015年3月第1版

2020年3月第2版

印次:2020年3月第1次印刷

定价:99.00元

凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888,88258888。

质量投诉请发邮件至zlts@phei.com.cn,盗版侵权举报请发邮件至dbqq@phei.com.cn。

本书咨询联系方式:tianhf@phei.com.cn。第2版前言

自2012年出版《数字滤波器的MATLAB与FPGA实现》后,根据广大读者的反馈和需求,作者从滤波器、同步技术和调制解调三个方面,出版了数字通信技术的MATLAB与FPGA实现系列图书。根据采用的FPGA和硬件描述语言的不同,这套图书分为了Xilinx/VHDL版(采用Xilinx公司的FPGA和VHDL)和Altera/Verilog版(采用Altera公司的FPGA与VerilogHDL)。这套图书能够给广大工程师及在校学生的工作和学习有所帮助,是作者莫大的欣慰。

作者在2015年出版了Altera/Verilog版,在2017年出版Xilinx/VHDL版。针对Xilinx/VHDL版,作者精心设计了FPGA开发板CXD301,并在Xilinx/VHDL版中增加了板载测试内容,取得了良好效果,对读者的帮助很大。

根据广大读者的建议,以及Xilinx/VHDL版的启发,作者从2018年开始着手Altera/Verilog版的改版工作。但限于时间及精力,以及对应的开发板CRD500的研制进度,迟迟没有完稿,一晃竟推迟了近两年的时间。

与本书第1版相比,这次改版主要涉及以下几个方面:(1)对涉及FPGA工程实例的章节,增加了主要工程实例的板载测试内容(基于开发板CRD500进行板载测试),给出了测试程序代码,并对测试结果进行了分析。(2)增加了第8章“插值算法位同步技术的FPGA实现”,并将原来的第8章“帧同步技术的FPGA实现”移至第9章。(3)Quartus软件更新很快,几乎每年都会推出新的版本。2014及以前的版本均为Quartus II,2015年后推出的版本更名为Quartus Prime,目前最新的版本是Quartus Prime 18.1。Quartus II和Quartus Prime的设计界面相差不大,设计流程也几乎完全相同。其中Quartus 13是最后同时支持32 bit及64 bit系统的软件版本,后续版本仅支持64 bit系统。为了兼顾更广泛的设计平台,同时考虑到软件版本的稳定性,本书及开发板配套例程均采用Quartus 13.1。本书第1版采用的是MATLAB 7.0,这次改版采用的是MATLAB R2014a。(4)为了便于在开发板CRD500上进行板载测试验证,对部分工程实例参数进行了适当的调整。(5)在编写板载测试的内容时,发现本书第1版中的部分程序还有需要完善的地方,这次改版对这些程序进行了补充及优化。(6)根据读者的反馈信息,修改了本书第1版中的一些叙述不当或不准确的地方。

限于作者水平,本书的不足之处在所难免,敬请读者批评指正。欢迎大家就相关技术问题进行交流,或对本书提出改进建议。

技术博客:https://blog.csdn.net/qq_37145225。

产品网店:https://shop574143230.taobao.com/。

交流邮箱:duyongcn@sina.cn。杜勇2020年1月第1版前言为什么要写这本书

为什么要写这本书呢?或者说为什么要写数字通信技术的MATLAB与FPGA实现相关内容的书呢?记得在电子工业出版社出版《数字滤波器的MATLAB与FPGA实现》时,我在前言中提到写作的原因主要有三条:其一是FPGA在电子通信领域得到了越来越广泛的应用,并已逐渐成为电子产品实现的首选方案;其二是国内市场上专门讨论如何采用FPGA实现数字通信技术的书籍相对欠缺;其三是数字通信技术本身十分复杂,关键技术较多,在一本书中全面介绍数字通信技术的FPGA实现时难免有所遗漏,且内容难以翔实。因此,根据自己从业经验,将数字通信的关键技术大致分为滤波器技术、同步技术和调制解调技术三种,并尝试着先写滤波器技术,再逐步完成其他两种技术的写作。在广大读者的支持和鼓励下,先后又出版了《数字通信同步技术的MATLAB与FPGA实现》和《数字调制解调技术的MATLAB与FPGA实现》。这样,关于数字通信技术的MATLAB与FPGA实现的系列著作总算得以完成,多年前的构想总算成为现实!

自数字通信技术的MATLAB与FPGA实现的系列著作出版后,陆续通过邮件或博客的方式收到广大读者的反馈意见。一些读者直接通过邮件告知书中的内容对工作的帮助;一些读者提出了很多中肯的、有建设性的意见和建议;更多的读者通过邮件交流书中的相关设计问题。《数字滤波器的MATLAB与FPGA实现》采用Xilinx公司的FPGA和VHDL作为开发平台(Xilinx/VHDL版),该书出版后,不少读者建议出版采用Verilog HDL作为开发平台的版本。这是个很好的建议。在Xilinx/VHDL版顺利出版之后,终于可以开始Altera/Verilog版的写作了,以满足不同读者的需求。本书的内容安排

第1章对数字通信同步技术的概念及FPGA基础知识进行简要介绍。通信技术的实现方法和平台很多。其中,FPGA因其强大的运算能力,以及灵活方便的应用特性,在现代通信、数字信号处理等领域得到越来越广泛的应用,并大有替代DSP等传统数字信号处理平台的趋势。为了更好地理解本书后续章节的内容,本章简要介绍了Altera公司的FPGA,以及Quartus II开发环境、MATLAB软件等内容。如果读者已经具备一定的FPGA设计经验,也可以跳过本章,直接阅读后续章节的内容。

第2章介绍FPGA中数的表示方法、数的运算、有限字长效应及常用的数字信号处理模块。在FPGA等硬件系统中实现数字信号时,因受寄存器长度的限制,不可避免地会产生有效字长效应。工程师必须了解字长效应对数字系统可能带来的影响,并在实际设计中通过仿真来确定最终的量化位宽、寄存器长度等内容。本章还对几种常用的运算模块IP核进行介绍,详细阐述各IP核控制参数的设置方法。IP核在FPGA设计中应用得十分普遍,尤其在数字信号处理领域,采用设计工具提供的IP核进行设计,不仅可以提高设计效率,还可以保证设计的性能。因此,在进行FPGA设计时,工程师可以先浏览一下选定的目标器件所能提供的IP核,以便通过使用IP核来减少设计的工作量并提高系统的性能。当然,工程师也可以从设计需要出发,根据是否具有相应的IP核来选择目标器件。本章介绍的都是一些非常基础的知识,但正因为基础,所以显得尤其重要。其中有效数据位运算,以及有效字长效应等内容在后续的工程实例讲解中都会多次涉及,建议读者不要急于阅读后续章节的工程实例讲解,先切实练好基本功,才可以达到事半功倍的效果。

第3章主要讨论锁相环技术的基本理论,这也是本书阅读起来最为乏味的章节。本章有一大堆理论和公式,很容易让人感到厌烦。对于数字通信技术来说,锁相环技术的工作原理大概是最难以弄清的知识点之一。但是,要想设计出完美的同步环路,对理论的透彻理解是必须具备的能力,而且一旦理解透了,在工程设计时就会有得心应手的感觉。本章从工程应用的角度,全面介绍锁相环的原理、组成及工程应用中需要经常使用的公式和参数设计方法。建议读者先耐心地对本章所介绍的内容进行深入的推敲理解,因为在后续章节讲解同步技术的FPGA实现时,可能会需要反复翻阅本章的内容。通过在工程设计实践中反复体会锁相环技术的原理及工作过程,当读者真正理解锁相环技术的基本理论及分析方法后,就会发现设计出性能优良的锁相环也不是一件多么困难的事。

第4章讨论载波同步技术的FPGA实现。这一章仍然有一些概念及工作原理的介绍,主要目的是讲清楚数字化载波锁相环的参数设计及计算方法。实现数字锁相环的关键步骤在于构造合适的数字化实现结构及模型。本章以一个完整的载波同步环工程设计实例,详细讲解数字载波锁相环系统的设计步骤、方法,并进行全面的性能仿真测试。载波同步环的数字化设计与实现比较复杂,初学者往往难以理解数字化模型与模拟电路之间的对应关系。数字化实现方法中各组成部件、参数的设计比较灵活。本章最后对载波同步环的一般设计步骤、环路参数对系统性能的影响进行归纳整理。读者可以完全按照本章所讨论的流程进行系统的设计及仿真,并反复理解载波同步技术的数字化实现方法,以及Verilog HDL编程的思路,必要时可以重复阅读第3章的内容,切实掌握锁相环技术的工作原理及实现过程。同时,本章用较大的篇幅详细讲解工程设计时的仿真测试步骤,读者尤其要切实掌握Quartus II与MATLAB联合应用的方法,以便提高设计效率。

第5章首先简要介绍三种抑制载波同步环的工作原理,随后对三种同步环的FPGA设计方法、结构、仿真测试过程进行详细讨论。从抑制载波同步环的FPGA实现过程中可以看出,设计三种同步环时所采用的环路模型、参数设计方式均十分相似,其中的环路滤波器只需简单修改即可通用。平方环与同相正交环的性能是等价的,但同相正交环(Costas环)在解调BPSK等抑制载波调制信号时更具优势。判决反馈环比其他两种环路的噪声性能更好,环路锁定后的稳态相差更小,但载波同步环需要以位同步作为前提条件,位同步会影响环路的稳定性。因此,对于抑制载波调制信号来讲,工程上通常采用同相正交环来实现信号的载波同步及数字解调。

第6章首先介绍自动频率控制的基本概念,然后分别对最大似然频差估计及基于FFT载波频率估计两种算法的原理、MATLAB仿真进行讨论,并详细阐述基于FFT载波频率估计算法的FPGA实现方法。FSK是数字通信中常用的一种调制方式,本章对频率调制的原理及信号特征进行介绍,并采用MATLAB对FSK信号进行仿真。FSK信号的解调方法很多,非相干解调法因为实现简单,性能优良而得到更为广泛的应用。为了便于读者更好地理解锁相环与AFC环的差别,本章将对常规二阶锁相环无法实现FSK信号解调的原因进行分析,并采用与锁相环类似的分析方法,对AFC环的模型进行讨论。这也进一步说明,读者在进行FPGA工程设计之前,必须充分理解系统的工作原理等理论知识,才能更好地把握FPGA实现过程中的参数设计、数据截位、时序控制等工程设计细节。本章最后详细阐述采用相乘微分型AFC环实现FSK解调的原理、方法、步骤及仿真测试过程。

第7章主要讨论采用数字锁相环实现位同步的原理、方法、步骤及仿真测试过程。数字锁相法实现位同步是数字通信中使用最为广泛的方法,其基本工作原理与载波同步环类似,均是通过鉴相器提取输入信号与本地位同步信号的相差,并据此对本地同步信号的相位进行调整。微分型位同步环是最简单的数字锁相环,其他位同步环均是在其基础上进行改进和完善的,以增加抗干扰性能及稳定性能。本章以工程实例讲解的方法,对微分型、积分型和改进型位同步环的各个功能部件进行详细的讨论,尤其对环路各节点的信号波形进行了说明。读者在阅读本章时,需要切实弄清各环路、各节点波形的时序关系。当完全理解环路的工作过程及实现方法后,采用Verilog HDL进行实现就比较容易了。读者可以将本章所讨论的实例作为独立的模块嵌入前面章节的实例中,以完成基带信号解调后的位同步功能。

第8章首先介绍同步传输及异步传输的概念,并对两种传输方式的同步原理、方法、步骤及仿真测试过程进行详细讨论。异步传输的速率及效率都比较低,典型的应用是串口通信。本章对RS-232-C串口传输进行FPGA实现,RS-232-C串口传输协议定义了较多的握手信号,有兴趣的读者可以在例8-1的基础上对串口通信进行完善。本章的重点是帧同步系统的FPGA实现,完整的帧同步包括搜索、校核和同步等状态。一个看似复杂的系统,只要合理划分功能模块,在编写程序之前厘清编程思路,最终的代码实现反而会变得比较简单。读者在阅读帧同步系统的程序代码时,重点在于理解各模块之间的接口关系,以及接口信号之间的时序关系,进而深刻理解程序的编写思路和方法,以提高复杂系统的Verilog HDL的编程水平。本书的目标

作为一名电子通信领域的技术人员,在从业之初都会遇到类似的困惑:如何将教材中所学的理论与实际中的工程设计结合起来?如何能够将这些教材中的理论转换成实际的应用?绝大多数数字通信类教材对通信的原理讲解得十分透彻,但理论与实践之间显然需要有一座可以顺利通过的桥梁。一个常用的方法是通过MATLAB等进行仿真来加深对理论的理解,但更好的方法是直接参与工程的设计与实现。FPGA因其快速的并行运算能力,以及独特的组成结构,在电子通信领域已成为必不可少的实现平台之一。本书的目的正是架起这样一座桥梁,通过具体的设计实例,详细讲解从理论到工程实现的方法、步骤和过程,以便于工程技术人员尽快掌握和利用FPGA平台实现数字通信同步技术的方法。

目前,市场上已有很多介绍ISE、QuartusⅡ等FPGA开发环境,以及VHDL、Verilog HDL等硬件描述语言的书籍。如果仅仅使用FPGA来实现一些数字逻辑电路,或者理论性不强的控制电路设计,那么掌握FPGA开发工具及Verilog HDL的语法就可以工作了。数字通信同步技术的理论性要强得多,采用FPGA平台实现数字通信同步技术的前提条件是对理论知识要有深刻的理解。在理解理论知识的基础上,关键的问题是根据这些理论知识,利用FPGA的特点,找到合适的算法,厘清工程实现的思路,并采用Verilog HDL等硬件描述语言进行正确的实现。显然,要想读懂本书,掌握FPGA实现数字通信同步技术的知识和技能,读者还需要对FPGA的开发环境和设计语言有一定的了解。

在写作过程中,本书兼顾数字通信同步技术的理论,以及工程设计过程的完整性,重点突出FPGA设计方法、结构、实现细节,以及仿真测试方法。在讲解理论知识时,重点从工程应用的角度介绍工程设计时必须掌握和理解的知识点,并且结合FPGA的特点进行讨论,以便读者尽快地找到理论与工程实现之间的结合点。在讲解实例的FPGA实现时,绝大多数实例都给出了完整的Verilog HDL实现代码,从思路和结构上对每段代码进行了详细的分析和说明。作者针对一些似是而非的概念,结合工程实例的仿真测试加以阐述,希望能够对读者提供更多有用的参考。相信读者在按照书中讲解的步骤完成一个个工程实例时,会逐步感觉到理论与工程实现之间完美结合的畅快。随着读者掌握的工程实现技能的提高,对理论知识的理解也必将越来越深刻。如果重新阅读以前学过的理论知识,就会比较容易构建起理论与工程实现之间的桥梁。关于FPGA开发环境的说明

众所周知,目前两大厂商Xilinx和Altera的产品占据了全球约90%的FPGA市场。可以说,在一定程度上正是由于两家FPGA公司相互竞争的态势,才有力地推动了FPGA的不断发展。虽然HDL的编译及综合环境可以采用第三方公司所开发的产品,如ModelSim、Synplify等,但FPGA的物理实现必须采用各自公司开发的软件平台,无法通用。Xilinx公司目前的主流开发平台是ISE,Altera公司目前的主流开发平台是QuartusⅡ。与FPGA开发平台类似,HDL也存在两种难以取舍的选择,即VHDL和Verilog HDL。

如何选择开发平台以及HDL呢?其实,对于有志于从事FPGA技术开发的技术人员,选择哪种平台及HDL语言并不重要,因为两种平台具有很多相似的地方,精通一种HDL后,再学习另一种HDL也不是一件困难的事。通常来讲,可以根据周围同事、朋友、同学或公司的主要使用情况进行选择,这样在学习的过程中就可以很方便地找到能够给你指点迷津的专业人士,从而加快学习的进度。

本书采用Altera公司的FPGA作为开发平台,采用Quartus II 12.1作为开发环境,采用Verilog HDL作为实现手段。由于Verilog HDL并不依赖于某家公司的FPGA,因此本书的Verilog HDL程序可以很方便地移植到Xilinx公司的FPGA上。如果程序中应用了IP核,两家公司的IP核通常是不能通用的,这就需要根据IP核的功能参数,在另外一个平台上重新生成IP核,或编写Verilog HDL代码来实现。如何使用本书

本书讨论的是数字通信同步技术的MATLAB与FPGA实现。相信大部分工科院校的学生和电子通信领域的从业人员对MATLAB都有一个基本的了解。由于MATLAB的易用性及强大的功能,已经成为数学分析、信号仿真、数字处理必不可少的工具。MATLAB具有大量专门针对数字信号处理的函数,如滤波器函数、傅里叶分析函数等,这些函数十分有利于对一些通信的概念及信号进行功能性仿真,因此,在具体讲解某个实例时,通常会采用MATLAB作为仿真验证工具。虽然书中的MATLAB程序相对比较简单,主要应用一些数字信号处理函数进行仿真验证,但如果读者没有MATLAB的基础知识,还是要先简单学习一下MATLAB的编程概念及基本语法。

在讲解具体的FPGA工程应用实例时,通常会先采用MATLAB对所设计的工程进行仿真,一方面仿真算法过程及结果,另一方面生成FPGA仿真所需要的测试数据。然后在Quartus II上编写Verilog HDL代码对实例进行设计和实现。为了便于讲述,通常会先讨论程序的设计思路,或者先给出程序清单,再对程序代码进行分析说明。完成程序编写后,还需要编写TestBench文件,根据所需产生输入信号的种类,可以直接在TestBench文件中编写代码来产生输入信号,也可以通过读取外部文本文件的方式来产生输入信号。最后采用ModelSim工具对Verilog VHDL程序进行时序或行为仿真,查看ModelSim仿真波形结果,并根据需要将仿真数据写入外部文本文件中,通常还会对仿真波形进行分析,分析仿真结果是否满足要求;如果ModelSim波形不便于精确分析测试结果,则需要再次编写MATLAB程序,对ModelSim仿真结果数据进行分析处理,最终验证FPGA设计的正确性。

本书主要以工程实例的方式讲解数字通信同步技术的原理及FPGA实现方法和步骤。本书的大部分工程实例均给出了完整的程序清单,但限于篇幅,不同工程实例中的一些重复或相似的代码没有完全列出,本书配套资料中收录了本书所有工程实例的源程序及工程设计资源,并按章节序号存放。本书在编写工程实例时,程序文件均放置在“D:\SyncPrograms”文件夹下,读者可以先在本地硬盘下建立“D:\SyncPrograms”文件夹,而后将本书配套资料中的程序压缩包解压至该文件夹下,大部分程序均可直接运行。需要说明的是,在大部分工程实例中,需要由MATLAB产生FPGA测试所需的数据文件,或者由MATLAB读取外部文件进行数据分析,同时FPGA仿真所需的TestBench文件通常也需要从指定的路径下读取,或将仿真结果输出到指定的路径下。文本文件的路径均指定为绝对路径,如“fid=fopen('D:\SyncPrograms\ Chapter_4\E4_1_DirectCarrier\Sn0dB_in.txt','w')”,因此读者运行实例程序时,需要将程序文件中指定文件绝对路径的代码进行修改,以确保仿真测试程序在正确的路径下对文件进行读/写操作。致谢

有人说,每个人都有他存在的使命,如果他迷失自己的使命,就失去了存在的价值。不只是每个人,每件物品也都有其存在的使命。对于一本书来讲,其存在的使命就是被阅读,并给阅读者带来收获。数字通信的MATLAB与FPGA设计系列图书,能够对读者在工作及学习中有所帮助,是作者莫大的欣慰。

作者在写作本书的过程中查阅了大量的资料,在此对资料的作者及提供者表示衷心的感谢。由于写作本书的缘故,作者在重新阅读一些经典的数字通信理论著作时,再次深刻感受到了前辈们严谨的治学态度和细致的写作作风。

在此,感谢父母,几年来一直陪伴在我的身边,由于他们的默默支持,才让我能够在家里专心致志地写作。感谢我的妻子刘帝英女士,她不仅是一位尽心尽职的母亲,也是一位严谨细致的科技工作者,同时也是本书的第一位读者,在工作之余对本书进行了详尽而细致的校对。时间过得很快,我的女儿已经上小学四年级了,她最爱看书和画画,最近迷上了《西游记》,以前的儿童简化版已满足不了她的要求了,周末陪她去书店买了一本原著,她常常被书中的情节逗得哈哈大笑,还常常要推荐给我看一些精彩的章节。

FPGA技术博大精深,数字通信技术种类繁多且实现难度大,虽然本书尽量详细讨论了数字通信同步技术的FPGA实现相关内容,仍感觉到难以详尽叙述工程实现的所有细节。相信读者在实际工程应用中经过不断实践、思考及总结,一定可以快速掌握数字通信同步技术的工程设计方法,提高FPGA的工程设计能力。

由于作者水平有限,不足之处在所难免,敬请读者批评指正。欢迎大家就相关技术问题进行交流,或对本书提出改进意见及建议。请读者访问网址http://duyongcn.blog.163.com以获得与本书相关的资料及信息,也可以发邮件至duyongcn@sina.cn与作者进行交流。杜勇2015年3月第1章同步技术的概念及FPGA基础

现代通信技术克服了时间和空间的局限性,特别是无线通信技术,使人们随时随地获取和交流信息成为可能。通信系统之间或通信系统内的同步是信息正确传输的关键,其性能直接决定了通信的质量,几乎在所有的通信系统中都要解决同步问题,稳定、可靠、准确[1]的同步对通信至关重要。

通信技术的实现方法和平台很多,其中,现场可编程门阵列(Field Programmable Gate Array,FPGA)技术因其强大的运算能力以及灵活方便的应用特性,在现代通信、数字信号处理等领域得到了越来越广泛的应用,并大有替代DSP等传统数字信号处理平台的趋势[20]。为了更好地理解本书的内容,本章首先对通信同步技术的概念和种类、FPGA的基础知识,以及本书所采用的Verilog HDL设计语言和Quartus II开发环境进行简要介绍。如果读者已经具备一定的FPGA设计经验,也可以跳过本章,直接阅读后续章节的内容。1.1 数字通信中的同步技术

给同步技术下一个准确的定义是相当困难的,当两个设备一起工作并对时间有精确要求时,就需要在它们之间进行同步。同步是在两个设备或系统之间规定一个共同的时间参考,同步技术是通信系统中一个非常重要的技术。一般情况下,通信的收、发两端不在同一个地方,要使它们步调一致地协调工作,必须要由同步系统来保证。同步系统性能的好坏直接影响整个通信系统性能的好坏,如果同步系统工作得不好,甚至会造成整个通信系统的瘫痪。

一般来讲,数字通信系统中的同步技术,按功能划分主要有载波[5]同步、位同步、帧同步和网同步。对于扩频通信来讲,除了需要载[7]波同步、网同步,在解扩和解调之前还需要伪码同步。1. 载波同步

在通信中,除了短距离通信采用基带传输,长距离通信通常都要采用频带传输,即不论模拟通信还是数字通信都要在发送端进行调制,在接收端采取相应的解调措施。除了幅度调制及频率调制可以采用非相干解调法,大部分调制方式都采用相干解调法以获取更好的性能,而进行相干解调就需要提取相干载波,即需要在接收端产生与接收信号中的调制载波完全同频同相的本地载波信号。这个本地载波的获取过程称为载波同步。载波同步是实现相干解调的基础。相干载波必须与接收信号的载波严格地同频同相,否则就会降低解调性能。

载波同步涉及两种情况:接收信号中具有载波频率分量,以及接收信号中没有载波频率分量。两种情况下载波同步技术的原理和实现方法虽然有一定区别,但基本分析方法都基于锁相环技术。对于相干解调技术来讲,接收端必须提取出同频同相的相干载波。在某些情况下却只需获取相同频率的载波信号即可,对载波的相位没有要求,这种情况下的载波提取技术相对简单一些。2. 位同步

位同步又称为码元同步,它是数字通信系统特有的一种同步,并且不论基带传输还是频带传输都需要位同步。在数字通信系统中,任何消息都是通过一连串码元序列传输的,接收端必须知道每个码元的起止时刻,这就要求接收端必须提供一个作为采样判决用的位同步信号,该序列的重复频率与码元速率相同,相位与最佳判决时刻一致。我们把提取这种定时脉冲序列的过程称为位同步。只有位定时脉冲正确,才谈得上采样判决正确,因此位同步是正确采样判决的基础。

位同步其实涉及两种情况:第一种情况需要同时满足最佳判决时刻和获取位同步信号的要求;第二种情况仅需实现位同步信号的要求。在无线通信系统的接收端中,经过下变频及滤波后输出的基带信号仍然是多比特的数据信号,相当于对基带信号采样后的数据,在设计位同步电路时,需要同时满足最佳采样时刻和位同步信号的功能。另一种情况是输入信号本身已经是单比特的数据流,接收端只需要根据输入的数据流确定位同步信号即可。后一种情况不涉及最佳采样时刻的问题,因为输入信号本身就是单比特数据流,在每个数据周期内数据是不变的。对于需要获取最佳采样时刻的情况来讲,根据基带信号传输原理,最佳采样时刻是眼图张开最大的时刻,通常是每个码元的中间时刻。对于载波解调后的多比特基带信号来讲,需要通过对其进行微分、积分等处理,先将多比特数据流变换成单比特数据流,然后实现位同步信号的提取。本书第7章将详细讨论位同步技术的原理及FPGA实现方法。3. 帧同步

在数字通信中,数据流用若干个码元组成一个“字”,又用若干个“字”组成“句”。对于数字时分多路通信系统,各路信号都安排在指定的时隙内传输,形成了一定的帧结构。为了使接收端正确分离各路信号,在发送端必须提供每帧的起止标志,在接收端检测并获取这一标志。在接收端产生与“字”“句”起止时刻相一致的位定时脉冲的过程统称为帧同步,也称为群同步。

帧同步的前提条件是已获取了位同步信号。帧同步的原理比较简单,只需要在接收到的数据流中对帧同步码进行搜索定位即可。但考虑到帧同步的性能,需要进行搜索、校核、同步检查等一系列状态转换,从而增加了系统工程的实现难度。4. 网同步

现代通信实际上是一个网络通信,在一个通信网里,相互传送信息的设备很多,各种设备产生及需要传输的数据流各不相同,为了保证将低速数据流合并成高速数据流时没有信息丢失,以及将低速数据流从高速数据流中正确分离出来,必须建立一个网同步系统来统一协[9]调,使整个通信网能按一定的节奏有条不紊地工作。

通过上面的阐述可知,四种同步关系是互为前提、一脉相承的。接收端在接收到已调信号后,利用载波同步产生的相干载波完成相干解调;在还原出基带信号后,在完成位同步的情况下进行采样判决,恢复出码元;接下来采用帧同步技术完成帧同步信号的提取,根据帧同步信号对码元序列进行正确的分组,去除附加码元,得到发送端的原始信号。这三种同步信号指挥收、发两端设备同步有序地工作,以实现信号的正确接收。载波同步、位同步和帧同步对于所有无线通信系统的要求都相同,而网同步则只在通信网中才需要。对于单链路通信系统,如广播电视、微波电路或光纤链路,同步功能完全由接收端来完成,无须网同步;而电话网、数据网和移动通信网就需要全网统一指挥各终端设备同步工作。5. 扩频通信中的伪码同步

广义上讲,伪码同步可以看成一种位同步,但其原理及实现技术又与普通的位同步有本质的区别。对于扩频通信来讲,在发送端采用远高于数据传输速率的伪码码率对数据流进行编码,从而使发送信号具有极低的功率谱密度,接收端通过产生与发送端同步的伪码信号并进行解扩。扩频通信一方面对噪声或干扰信号具有频谱扩展作用,另一方面可以使有用信号的频谱收缩,从而具有很强的抗干扰及抗截获

[10]能力。

由于网同步技术主要是针对不同设备之间的同步技术,对于单台通信设备来讲不存在网同步的问题。扩频信号的伪码同步与扩频解调技术密切相关,需要专门论述。本书只关注接收端内部的同步技术及其实现,后续章节将分别对载波同步、位同步、帧同步技术的FPGA实现进行详细讨论。1.2 同步技术的实现方法1.2.1 两种不同的实现原理

从同步技术的实现方法来讲,一方面是指理论上的设计原理及方法,另一方面是指具体的实现平台或实现手段。当然,实现的原理是基础,因此首先对从原理上划分的实现方法进行简单介绍。

按同步技术的实现方法来划分,通信系统中的同步技术主要有外同步法和自同步法两种。1. 外同步法

外同步法是指由发送端发送专门的同步信号(常称为导频信号),接收端把这个导频提取信号出来作为同步信号的方法。由于导频信号本身并不包含所要传输的信息,因此对导频信号的频率和功率有限制,要求导频信号尽可能小地影响信息的传输,且便于提取同步信号。外同步法主要在载波同步及位同步系统中应用。

在采用外同步法的载波同步系统中,对导频信号有如下要求:①为避免载波信号与导频信号的相互干扰,要在载波信号频谱为零的位置插入导频信号;②采用正交插入,避免对载波信号解调产生影响;③尽可能插入便于提取的导频信号,具体分为正交插入法、双导频插入法和时域插入法。前两种方法是根据载波信号频谱是否为零进行选择,如果为零,则在载波频率处插入单导频信号;如果不为零,则在载波信号频谱外插入与载波有简单数值关系的双导频信号。时域插入法是指在某些固定时隙传输导频信号,其他时隙传输信息。正交插入法和双导频插入法插入的导频信号在时间上是连续的,时域插入法插入的导频信号在时间上是断续的;正交插入法需要进行正交调制,其他方法不需要进行正交调制。由于时域插入法在一帧内仅用很小的时[3]隙传送导频信号,通常需要采用锁相环来提取载波信号。

位同步的外同步法有位定时导频法和包络调制法。采用位定时导频方法时,插入的导频信号必须在基带信号频谱的零点插入,且用反相来消除对采样判决的影响;包络调制主要用于2PSK或2FSK等恒包络调制方式,在发送端对恒包络调制附加调制频率为数据传输速率的幅度调制,接收端通过包络解调还原出位同步信号。

根据帧同步及伪码同步的实现原理,这两种同步技术可以看成外同步法。与载波同步、位同步不同的是,实现帧同步时,收、发两端事先对帧同步码组及伪码码组进行了约定,接收端通常采用相关算法进行同步码组检测,或者直接通过比较判决的方法实现同步。2. 自同步法

自同步法是指发送端不发送专门的同步信号,接收端设法从接收到的信号中提取同步信号的方法。这种方法效率高,但接收端设备相对外同步法而言较为复杂。

自同步法的典型应用是从抑制载波的调制信号中恢复出载波信号,常用的方法有平方变换法、平方环法、同相正交环法等。自同步法的基本思想是通过对接收信号进行非线性处理,得到与所需载波信号具有固定频率、相位关系的信号,然后通过锁相环提取出该信号,进而经过分频、移相等处理得到与载波同频同相的信号。

位同步的自同步法主要有滤波法、包络陷落法和锁相环法等。滤波法针对不含位同步信号的基带波形,进行微分和全波整流后变成归零单极性脉冲后,即可提取出位同步信号。包络陷落法是一种对带限信号进行包络检波的波形变换方法,带限信号相邻码元的相位变换点附近有幅度的平滑陷落,通过包络检波和滤波就可提取位同步信号。在锁相环法中,为了解决位同步信号的抖动问题,需要在鉴相器后加数字滤波器,随着可编程集成电路的发展,锁相环法也成为提取位同步信号的常用方法。1.2.2 常用的工程实现途径

前面从原理上介绍了同步技术的两种实现方法,即外同步法和自同步法。在设计一个产品,或做一个工程设计时,首先需要确定更为具体的实现方案和手段。对于同步技术或通信接收端来讲,实现的手段通常可以分为硬件和软件两种方案。当然,软件的实现也需要以对模拟信号进行采样和数字化为前提。

所谓软件实现数字信号的同步、解调等技术,即完全采用软件编程的方法对采样后的信号进行处理。软件处理的速度比较慢,在数据传输速率较高的情况下难以满足实时性的要求。因此,在通信设备中,软件方案通常用于完成数据传输速率较低,组帧、分发数据量较小,运算简单,实时性要求不高的任务。对于载波同步、位同步等技术,通常采用硬件方案实现。

硬件设备的种类比较多,大致可以分为模拟器件、ASIC(Application Specific Integrated Circuits,专用集成电路)、VLSI(Very Large Scale Integrated Circuits,超大规模集成电路)等。模拟器件适用于对性能要求不高、主要考虑成本因素的应用产品;ASIC在性能和成本上都有出色的表现,目前在电子通信领域仍然占据十分重要的地位,一些性能出色的集成芯片的应用实例电路也可供

[14]参考。随着数字信号处理技术的发展,以及VLSI规模及性能的不断发展,采用全数字化的实现方式正逐渐成为一种趋势。全数字化的实现方式不仅可以满足很高的实时性要求,更重要的是具有极大的灵活性和可扩展性。尤其是在约瑟夫·米托拉(Joseph Mitola)于1992年5月在美国电信系统会议上首次提出了软件无线电的概念以后,基于软件无线电架构或思想的无线通信技术很快成为各国研究的热点,同时[14]也大大加快了通信数字化的进程,采用VLSI研发通信电子产品已经成为现代电子工程师采用的一种基本手段。

目前,数字信号处理的平台主要有DSP、FPGA、ASIC等,其中,FPGA以无与伦比的并行运算能力和极度灵活的使用特性,在电子通信领域得到了越来越广泛的应用。本书所要讨论的内容,也正是基于FPGA的数字通信同步技术的设计与实现。1.3 FPGA概念及其在信号处理中的应用1.3.1 基本概念及发展历程1. 基本概念

随着数字集成电路的发展,越来越多的模拟电路逐渐被数字电路取代,同时数字集成电路本身也在不断地进行更新换代,由早期的电子管、晶体管、中小规模集成电路发展到超大规模集成电路,以及许多具有特定功能的专用集成电路。但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。电子工程师们更愿意自己设计专用集成电路,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC,并且立即投入实际的工程应用之中,因而出现了可编程逻辑器件(Programmable Logic Device,PLD),其中应用最广泛的为现场可编程门阵列(Field Programmable Gate Array,FPGA)和复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)。PLD的主要特点是其功能完全由用户通过特定软件编程控制,并完成相应功能,且可反复擦写。这样,用户在用PLD设计好PCB(Printed Circuit Board,印制电路板)后,只要预先安排好PLD引脚的硬件连接,就可通过软件编程的方式灵活改变PLD的功能,从而达到改变PCB功能的目的。这种方法不需对PCB进行任何更改,从而大大缩短了产品的开发周期和成本。也就是说,由于使用了PLD进行设计,硬件设计已部分实现了软件化。随着生产工艺的不断革新,高密度、超大规模FPGA/CPLD越来越多地在电子信息类产品设计中得到应用,同时由于DSP、ARM(Advanced RISC Machines)与FPGA相互融合,在数字信号处理等领域,已出现了具有较强通用性的硬件平台,核心硬件设计工作正逐渐演变为软件设计。2. 发展历程

早期的可编程逻辑器件在20世纪70年代初出现,这一时期只有可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)和电可擦除只读存储器(Electrically EPROM,EEPROM)三种。这类器件结构相对简单,只能完成简单的数字逻辑功能,但也足以给数字电路设计带来巨大变化。

20世纪70年代中期出现了结构稍复杂的可编程芯片,即可编程逻辑器件,它能够完成各种数字逻辑功能。典型的PLD由与门和或门阵列组成。由于任意一个组合逻辑都可以用与或表达式来描述,所以PLD能以乘积项的形式完成大量的组合逻辑功能。这一阶段的产品主要有可编程阵列逻辑(Programmable Array Logic,PAL)和通用阵列逻辑(Generic Array Logic,GAL)。PAL由一个可编程的与平面和一个固定的或平面构成,PAL是现场可编程的。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(Programmable Logic Array,PLA),它也由一个与平面和一个或平面构成,但这两个平面的连接关系是可编程的。PLA既有现场可编程的,也有掩膜可编程的。在PAL的基础上又发展了一种通用阵列逻辑,如GAL16V8、GAL22V10等,实现了电可擦除、电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活性,至今仍有许多人使用。这些早期PLD的一个共同特点是,可以实现速度特性较好的逻辑功能,但过于简单的结构也使它们只能实现规模较小的电路。

为了弥补这一缺陷,20世纪80年代中期,Altera和Xilinx两家公司分别推出了类似PAL结构的扩展型CPLD,以及和标准门阵列类似的FPGA。这两种器件都具有体系结构和逻辑单元灵活、集成度高和适用范围宽等特点,兼容了PLD和GAL的优点,可实现较大规模的电路,编程也很灵活。与门阵列等其他ASIC相比,这两种器件具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无须测试、质量稳定和可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产中。几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均可使用FPGA和CPLD。

20世纪90年代末以来,随着可编程逻辑器件工艺和开发工具日新月异的发展,尤其是Xilinx公司和Altera公司不断推出新一代超大规模可编程逻辑器件,FPGA与ASIC、DSP及CPU不断融合,已成功地以硬核的形式嵌入ASIC、PowerPC、ARM,以HDL的形式嵌入越来越多的标准数字处理单元,如PCI控制器、以太网控制器、MicroBlaze处理器、NIOS和NIOS-Ⅱ处理器等。新技术的发展不仅实现了软硬件设计的完美结合,也实现了灵活性与速度设计的完美结合,使得可编程逻辑器件超越了传统意义上的FPGA,并以此形成了现在流行的片上系统(System on Chip,SoC)及片上可编程系统(System on a Programmable Chip,SoPC)设计技术,其应用领域扩展到了系统级,涵盖了实时数字信号处理、高速数据收发器、复杂计算和嵌入式系统等设计的全部内容。

Xilinx公司于2003年率先推出了90 nm制造工艺的Spartan-3系列FPGA,于2011年推出28 nm制造工艺的7系列FPGA,并于2013年推出了20 nm制造工艺的UltraScale系列FPGA,且宣称基于最新UltraScale系列FPGA的开发不但可实现从20 nm向16 nm乃至更高级FinFET技术的扩展,而且还可实现从单片向3D IC的扩展。作为可实现ASIC级性能的All Programmable架构,UltraScale系列FPGA不仅可解决总体系统吞吐量及延时限制问题,而且还可直接解决高级节点芯片之间的互连问题。

Altera公司于2004年首次推出90 nm制造工艺的Stratix-II系列FPGA后,紧接着于2006年推出了65 nm制造工艺的Stratix-III系列FPGA,于2008年推出了40 nm制造工艺的Stratix-IV系列FPGA,并于2010年先于Xilinx推出了28 nm制造工艺的Stratix-V系列FPGA。2013年,Altera推出了最新的基于14 nm三栅极制造工艺的Stratix-10系列FPGA。

随着制造工艺技术的不断进步,FPGA正向着低成本、高集成度、低功耗、可扩展性、高性能的目标不断前进。相信FPGA的应用会得到更大的发展!FPGA的演进历程如图1-1所示。图1-1 FPGA的演进历程1.3.2 FPGA的结构和工作原理1. FPGA的结构

目前所说的PLD,通常情况下指的是FPGA与CPLD。由于FPGA与CPLD的内部结构不同,导致它们在集成度、运算速度、功耗及应用方面均有一定差别。通常将以乘积项结构方式构成的逻辑器件称为CPLD,如Xilinx公司的XC9500系列、Altera公司的MAX7000S系列和Lattice公司的Mach系列等,这类器件的逻辑门密度在几千到几万个逻辑单元之间。CPLD更适合触发器有限而乘积项丰富的结构,适合完成复杂的组合逻辑。通常将基于查找表(Look-Up-Table,LUT)结构的PLD称为FPGA,如Xilinx公司的Spartan、Virtex和7等系列,Altera公司的Cyclone、Arria和Stratix等系列。FPGA是在CPLD等逻辑器件的基础上发展起来的。作为ASIC领域的一种半定制电路器件,FPGA克服了ASIC灵活性不足的缺点,同时解决了CPLD等器件逻辑门电路资源有限的缺点,这种器件的密度通常在几万门到几百万门之间。FPGA更适合触发器丰富的结构,适合完成时序逻辑,因此在数字信号处理领域多使用FPGA。

目前主流的FPGA仍是基于查找表技术的,但已经远远超出了先前版本的基本性能,并且整合了常用功能(如RAM、时钟管理和DSP)的硬核模块。如图1-2所示(图1-2只是一个示意图,实际上每个系列的FPGA都有其相应的内部结构),FPGA主要由6部分组成,分别是输入/输出块(Input/Output Block,IOB)、可配置逻辑块(Configurable Logic Block,CLB)、数字时钟管理(Digital Clock Manage,DCM)模块、内嵌的块RAM(Block RAM,BRAM)、丰富的布线资源和底层内嵌专用硬核。图1-2 FPGA内部结构示意图

1)输入/输出块(IOB)

输入/输出块是可编程的,是FPGA与外界电路的接口部分,用于完成不同电气特性对输入/ 输出信号的驱动与匹配要求,其示意结构如图1-3所示。图1-3 FPGA内部的IOB结构图

FPGA内的I/O按组分类,每组都能够独立地支持不同的I/O标准。通过软件的灵活配置,可适应不同的电气标准与I/O物理特性,可以调整驱动电流的大小,可以改变上、下拉电阻阻值。目前,I/O的频率也越来越高,一些高端的FPGA通过DDR寄存器技术可以支持高达2 Gbps的数据传输速率。外部输入信号可以通过IOB的存储单元输入到FPGA内部,也可以直接输入到FPGA内部。为了便于管理和适应多种电器标准,FPGA的IOB被划分为若干个组(Bank),每个CCOBank的接口标准由其接口电压V决定。一个Bank只能有一种CCOCCOV,但不同Bank的V可以不同。只有相同电气标准的接口才能CCO连接在一起,V电压相同是接口标准化的基本条件。

2)可配置逻辑块(CLB)

CLB是FPGA内的基本逻辑单元,其实际数量和特性因器件的不同而不同。用户可以根据设计需要灵活地改变其内部连接与配置,从而完成不同的逻辑功能。FPGA一般是基于SRAM工艺制造的,其可配置逻辑块几乎都由查找表(Look Up Table,LUT)和寄存器(Register)组成。FPGA内部的查找表一般为4输入LUT。Altera公司的一些高端FPGA芯片采用了自适应逻辑模块(Adaptive Logic Modules,ALM)结构,可根据设计需求由设计工具自动配置成所需的LUT,如5输入和3输入的LUT,或6输入和2输入的LUT,或2个4输入的LUT等。LUT一般用于完成组合逻辑功能。

FPGA内部的寄存器结构相当灵活,既可以配置为带同步/异步复位、时钟使能的触发器(Flip Flop,FF),也可以配置成锁存器(Latch)。FPGA一般是通过寄存器来完成同步时序逻辑设计的。一般来说,CLB由1个寄存器加1个查找表组成,但是不同厂商的寄存器和查找表的内部结构有一定的差异,而且寄存器和查找表的组合模式也不同。例如,Altera公司的CLB称为LE(Logic Element),由1个寄存器外加1个查找表构成。Altera公司大多数FPGA将10个LE有机地组合起来,构成更大的功能单元—逻辑阵列模块(Logic Array Block,LAB)。在LAB中,除了LE,还包含LE间的进位链、控制信号、局部互连线、LUT链、寄存器链等连线与控制资源,如图1-4所示。Xilinx公司的CLB称为Slice,由上下两个部分构成,每个部分都由1个寄存器加1个LUT组成,称为LC(Logic Cell),两个LC之间有一些共同使用的逻辑,可以完成LC之间的配合与级联。Lattice公司FPGA的底层CLB称为可编程功能单元(Programmable Function Unit,PFU),它由8个LUT和8~9个寄存器构成。当然,CLB的配置结构随着FPGA的发展也在不断更新,一些FPGA常常会根据设计的需求推出一些新的LUT和寄存器的配置比例,并优化其内部的连接构造。[3]

了解CLB中LUT和寄存器的配置比例可为器件选型和规模估算提供参考,很多器件都是用ASIC门数或等效的系统门数来表示器件规模的。但是由于目前FPGA内部除了CLB,还包含丰富的嵌入式RAM、PLL或DLL,以及专用的Hard IP Core(硬知识产权功能核)等,这些功能模块也可以等效为一定规模的系统门,所以用CLB的数量来衡量系统是不准确的,常常会混淆设计者。比较简单科学的方法是用器件的寄存器或LUT数量来衡量系统(一般来说,两者的比例为1:1)。例如,Xilinx公司的Spartan-3系列的XC3S1000有15360个LUT,而Lattice公司的EC系列的LFEC15E也有15360个LUT,所以这两款FPGA的CLB数量基本相当,属于同一规模的产品。同样道理,Altera公司的Cyclone系列的EP1C12的LUT数量是12060个,就比前面两款FPGA规模略小。需要说明的是,器件选型是一个综合性问题,需要综合考虑设计需求、成本、规模、速度等级、时钟资源、I/O特性、封装、专用功能模块等诸多因素。

LE是Altera公司FPGA的基本逻辑单位,通常包含1个4输入查找表和1个可编程触发器,以及一些辅助电路。LE有两种工作模式,即正常模式和动态算术模式。其中正常模式用于实现普通的组合逻辑功能,动态算术模式用于实现加法器、计数器和比较器等功能。图1-4 典型的LAB结构示意图

LE正常模式的结构如图1-5所示。在正常模式下,4输入的LUT实现组合逻辑功能。LUT的组合输出可以直接输出到行、列互连线,或者通过LUT链输出到下一级LE的LUT输入端,也可以经过寄存器输出到行、列互连线。寄存器同样可以通过触发器链串起来作为移位寄存器。在不相关的逻辑功能中使用的LUT和寄存器可以集成到同一个LE中,而且同一个LE中的寄存器的输出可以反馈到LUT中实现逻辑功能,这样可以增加资源的利用率。图1-5 LE正常模式的结构

在LE动态算术模式下,4输入的LUT被配置成2个2输入的LUT,用于计算两个数相加之和与进位,如图1-6所示。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载