基于FPGA的IRIG-B码的基带信号产生电路的设计与实现

更新时间:2024-01-20 15:07:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于FPGA的IRIG-B码基带产生电路的设计与实现 中文摘要

基于FPGA的IRIG-B码基带产生电路的设计与实现

中文摘要

本论文的主要目的是设计用于将接收到的时间信息进行IRIG-B编码的电路,实现基于直接序列扩频通信原理以及相对相移键控调制的基带信号的数字信号处理。编码电路主要由时间接收单元、预处理单元和IRIG-B编码器构成。发送电路主要由基带处理单元和频带处理单元构成。用Verilog HDL语言完成整个电路所有模块的设计,然后连接所有电路模块,最后通过SignalTap II Logical Analysis tool进行功能仿真。所有工作在Altera公司的Cyclone Ⅲ E系列FPGA(现场可编程门阵列)芯片中实现。

论文首先提出了一种适用于时间接收与发送的基于FPGA的IRIG-B码基带产生电路。然后讨论了整个电路中各模块的理论依据以及详细的实现方法。其中编码部分主要包括GPS接收模块、时间预处理模块、IRIG-B编码器,发送部分主要模块包括差分编码器、直接序列扩频模块和BPSK调制模块。最后编译工程, 并将程序下载到DE0开发板(Altera 公司的)上进行仿真验证,并给出了各部分的模块验证仿真结果。

由仿真结果可知:电路工作结果准确,整体性能稳定,占用相对较少的资源,符合最初的设计要求。

关键词:GPS;FPGA;IRIG-B码;扩频通信

I

Abstract Design and Implementation of IRIG-B Code baseband Circuit based on FPGA

Design and Implementation of IRIG-B Code baseband

Circuit based on FPGA

Abstract

The main purpose of this paper is to design IRIG-B code circuit for the received time information, then implement the direct sequence spread spectrum and the DBPSK signal modulation based on digital signal processing. Coding circuit is mainly constituted by the time receiving unit, processing unit and IRIG-B encoder. And the transmitting circuit is mainly composed of baseband processing unit and the band processing unit. All modules of the whole project are completed with Verilog HDL language, and then connect all modules of the system, and finally got functional simulation through the SignalTap tool. All the work is completed on Altera, Cyclone III E series FPGA (field programmable gate array) chip. Firstly the paper proposes an IRIG-B Code baseband circuit applied to time receiving, processing and sending based on FPGA. And then discusses the theoretical basis of each module circuit as well as the detailed realization method. The coding part mainly includes GPS module, time pre-processing module and IRIG-B encoder, and the sending part includes differential encoder, direct sequence spread spectrum module and BPSK module. All the modules are given the simulation waveforms, and finally compiled and downloaded to the Altera's DE0 development board for simulation.

The

Keywords: GPS; FPGA; IRIG-B code; spread spectrum communication

simulation

results

show

that the system

works

correctly, stable

performance, occupies relatively less resource, fully meet the design requirements.

II

基于FPGA的IRIG-B码基带产生电路的设计与实现 第一章 绪论

第一章 绪论

1.1课题研究背景意义

随着现代导弹和航天事业的不断发展及其地位的与日俱增,导弹和航天试验地域更加广阔,甚至涉及到了全球和太空深处。但是由于仅靠一台设备无法完成测控任务,所以需要多台系统与设备。因此在试验中,要确保所有设备同步工作,得到精准、可靠的信息,就需要一个统一的时间参考系统[1] 。“时间统一系统”的概念因此被提了出来[2] 。在靶场,我们把为常规武器实验、航天器的发射以及测控系统等提供基准时间信号和基准频率脉冲信号的一套电子设备称为时间统一系统,简称“时统” 。即靶场时统系统是使整个靶场“同步”工作的基准时间,测控设备都要通过接收时统信号,来使自己的测量数据与其它设备协同工作。

时统系统主要有以下几个作用:实现时统控制发射系统的自动点火,建立靶场统一的发射零点;向发射控制器、测量控制器等提供时间基准、标准脉冲频率以及设备所需的控制信号;校准各个测控站之间、国家授时台与不同测控站之间的时间及基准脉冲信号的同步。此外,为了能够准确控制程序的中断系统,进行实时数据采集、控制处理、信号传输等,时统系统同时也向控制中心的指挥控制计算机提供标准时钟脉冲。

时间统一系统是提供标准时间信号和标准时钟脉冲的设备。时间统一系统从最初的电子管、晶体管过渡到小规模集成电路以及如今的中规模、大规模集成电路。早先的时统系统精度很低、结构庞大、而且使用起来复杂,而随着可编程逻辑和EDA技术的不断发展,时统设备的工作可靠性和稳定性也在不断的提高。FPGA(Field Programmable Gate Array)的快速发展,为时统技术的研发带来了新的生机,它对时统设备进行高度集成,从而实现时统设备大规模、高速度、低成本、低设计周期、电路简单、容易检测和高可靠性的目标。因而成为时统设备快速发展的必然趋势[3] 。

虽然时间统一系统是由于航天事业、导弹实验等的需要而得到快速发展的新兴工程学科,但随着科学技术的进步,时间同步的应用越来越广泛。而作为一种很重要的时间同步传输方式,IRIG-B时间码以其良好的性能,成为备受青睐的时间统一

1

第一章 绪论 基于FPGA的IRIG-B码基带产生电路的设计与实现

设备标准时间码型[4] 。广泛的应用到现代通信、军事情报、天文探测、大地测量、地震探测、电调、导航等研究领域。

由于随着时间的变化,时钟振荡器会产生一定的漂移,因而需要标准的授时系统作校正修复。目前广泛应用的有GPS(全球定位系统)和IRIG-B(美国靶场间仪器组),其中,GPS时钟采用的是世界协调时(UTC) [5] 。GPS 卫星上装载着与 UTC 时间同步的氢钟或者铯原子,使之成为空间的一种标准时间。这样,地面上的设备就可以通过接收 GPS的时间信号来校准本地时钟,使之与 GPS 时钟同步,我们称这一过程为 GPS 授时[6,7] 。GPS卫星导航系统已经成为为设备提供年月日等日期信息、时间信息、地点等精准定位信息的系统。而作为一种标准化的时间码,IRIG-B码每秒发送一个时帧脉冲和基准时钟,实现系统的时钟同步。在测控系统中,时统信息既是各分系统工作的基础,还是子系统进行测控时计算射程以及其它一些复杂逻辑运算不可或缺的信息。

国内包括靶场测量、计算通信、气象探测、工业控制等很多领域的测试设备都采用IRIG-B时间码作为时间同步的标准。B码是串行的时间格式码,可以分为直流 (DC) 码和交流(AC) 码两种,在下文中将会具体介绍其相关概念以及编码原理。本文介绍一种基于FPGA的IRIG-B标准的编码技术以及基带信号产生电路的设计与实现,由于电路的较高的集成性,所以与基于DSP和数字逻辑电路实现的编码方法相比,基于FPGA的设计在很大程度上降低了系统的设计难度,从而降低成本,提高B码的可靠性以及系统的灵活性。

1.2课题主要研究内容

本文用于设计实现一个基于FPGA的IRIG-B码基带产生电路,该电路采用FPGA作为控制逻辑,开发板自身的50M时钟作为标准时钟源,利用锁相环输出10000 pps的信号,然后分频分别产生100pps和1pps两个信号作为IRIG-B编码模块的触发信号,完成B码编码。在DC码的基础上,通过与伪随机序列模二加实现了IRIG-B码的数字调制,同时设计正弦载波调制输出电路。整个电路的所有功能都由硬件逻辑实现,并采用Verilog HDL进行全数字电路设计。其中,预处理功能模

2

基于FPGA的IRIG-B码基带产生电路的设计与实现 第一章 绪论

块,保证了B码的绝对时间准准。现场运行结果以及软件仿真的结果观测表明,电路设计达到了预期目标,时间码产生精确可靠。

1.3国内外研究现状

中国的时间统一设备历经了一个从国外引进到工业化、从非标准到标准化的历程。50年代末,国内第一代战略武器试验的要求,引入了第一套时统设备。为满足不同型号战略设备试验的需求,在60年代到80年代,国内先后自行研制了多种型号的时统设备。为满足我国航天试验和第二代战略武器的需要,从80年代中期起,我国借鉴国外的靶场经验,结合我国靶场的实际,开始组织标准化时统设备的研制与论证,并在80年代末研制出我国第一套标准化时统设备,并通过了样机鉴定。

我国载人航天工程以及武器战略的不断推行,对时统系统标准化提出了更加紧迫的要求。为了实现时统设备的标准化,时统设备必须向接收设备发送标准化的时间信息。参照前两套靶场时间统一系统的使用情况以及武器实验、载人航天技术的要求,时间信号标准化应满足的条件如下[4]:

(1) 选用串行码,主要是为了简化用户接口终端与时统设备的接口;

(2) 包含足够多的时间信息,导弹、航天实验需要有天、时、分、秒等时间信息;

(3)使用户接口终端能与时统设备保持高度时间同步的标准时间信号,如1pps信号;

(4)为满足距离较远的时统设备的接收设备的使用,应适合于远距离信道传输。 在当今社会,各个领域对于“时间统一系统”设备的要求越来越严格,利用分立元件或单片机等完成的传统的时统设备已不能满足人们的设计要求。而随着可编程逻辑和EDA (Electronic Design Automation)技术的发展,时统设备的工作可靠性和稳定性都在不断的提高。一般来说,可以将专用集成电路分为掩膜和现场可编程两大类的制作方式。目前,业界在ASIC的制作中大量使用可编程逻辑器件PLD、复杂可编程逻辑器件CPLD(Complex programmable Logic Device)以及现场可编程门阵列FPGA(Field Programmable Gates Array) 。如今,可编程逻辑器件已发展成实现数字ASIC的一条捷径。从某种角度来说, FPGA的快速发展为时间统一技术的注

3

第一章 绪论 基于FPGA的IRIG-B码基带产生电路的设计与实现

入了新的生机,且在数字设计中起到了十分重要的作用。与ASIC 相比,FPGA的实时性得到了改善,同时还具有电路简单、成本低、开发费用低、设计周期短、速度快、规模大、可靠性高和易于调试等优点。在集成电路的研发过程中,可编程技术已成为一种必然趋势。

目前,随着航天技术的飞速发展,作为一种新兴的授时技术,卫星授时在时间精度、覆盖区域、使用等方面都有其独特的优越性。当前常用的 GPS 同步技术可达 100ns 。目前除 GPS 系统外,这种标准时间频率信号发送系统还有广播电视信号和电话、因特网,中科院国家授时中心负责运行的长波授时系统(BPL)和短波授时系统(BPM),罗兰(Long Range Navigation)-C 系统,以及 “北斗一号”卫星导航定位系统等。目前主要有卫星、长波、短波三种方法。随着卫星传输技术的愈加成熟,卫星授时技术已经以其优越的特点成为远距离时间同步的最佳实施方法。

本文通过对“时间统一系统”和IRIG_B 时间编码理论的分析与研究,提出了一种基于FPGA 的IRIG-B时间码的基带产生电路的设计与实现方案。本设计采用Altera 公司的Cyclone III FPGA 芯片作为系统的控制器,用型号为GARMIN 16X-LVS的GPS接收机接收的时间信息和1pps信号作为B码编码依据,将整个电路集成到同一块FPGA 芯片上,保证了IRIG_B 码与1PPS 基准信号的上升沿同步,信号发送部分通过扩频和调制等步骤来实现。其外围电路均在DE0 开发系统上完成。设计具有稳定性更高,可靠性更高,灵活性更强,便于调试等特点,具有广泛的应用价值。

1.4论文的结构安排

论文首先提出了一种IRIG-B编码方案,将通过GPS接收机获取的时间信息通过UART串行接口发送到FPGA上,然后在开发板DE0上通过FPGA及其外部电路进行编码、扩频、调制并发送出去进行传输。从而完成了一套符合现行通信标准的、完整灵活的基于FPGA的IRIG-B码基带产生电路来满足系统时间信号的传输。全文分成五个部分:

第一章, 绪论。本章节主要介绍了研究课题的意义、主要研究内容、国内外

研究状况以及整个论文的结构安排。

4

基于FPGA的IRIG-B码基带产生电路的设计与实现 第一章 绪论

第二章, 基于FPGA的IRIG-B编码电路的设计。首先介绍了时间编码信号

的编码方式和信号特点,然后主要介绍了IRIG-B编码的基本原理,最后对整理的编码器结构进行详细说明,并阐述了其具体的实现方法。

第三章, 基于FPGA的基带产生电路的设计。本章节详细描述了发送电路中

第四章,第五章, 最重要的同步系统的原理与实现方法,其中包括载波同步、扩频序列同步。研究了每个模块设计的理论依据和实现方式,并给出了仿真结果。

首先介绍了整个电路的实现平台以及使用的仿真验证工具。然后给

出了验证结果。

总结及对未来的展望。

5

第二章 基于FPGA的IRIG-B编码器的设计 基于FPGA的IRIG-B码基带产生电路的设计与实现

第二章 基于FPGA的IRIG-B编码器的设计

2.1 IRIG-B 概念

靶场间仪器组,IRIG是英文InterRange Instrumentation Group的缩写[8]。它是美国靶场委员会的下属部门。其执行委员会是由美国各靶场的代表组成的。主要负责靶场间的信息传输、制订相应的标准、协调设备和靶场间的工作。目前,IRIG码已成为国际通用的标准,在日本、西欧、澳大利亚等国家都得到了广泛的应用。

2.1.1 串行时间码

IRIG时间标准有两大类:一类是串行时间码,它包括A、B、D、E、G和H六种格式;另一类是并行时间码格式,这类码没有串行格式应用广泛,主要因为它是并行格式,且传输距离较近。不同格式的串行码有不同的时间码帧速率。按照时帧周期大小划分,其中时帧周期小于1秒的有A、G两种格式,其码元速率较高,直接使用可以获得较高的时间分辨率;时帧周期大于1秒的有D、E、F三种格式,它们速率较慢,主要用于纸带记录等;IRIG-B即为B型码,其时帧速率为1帧/s,每秒可传递的信息为100个码元 [9]。B码发送的信息中不仅包括标准脉冲信息,还包括日期和时间信息等,最适合人们的使用习惯,所以在6种串行时间码格式中,B码受到广泛应用。

B码作为应用广泛的时间码,主要有以下特性: 1) 2)

高分辨率;

能够携带较大信息量,经过译码后可得到1、10、100、1000 pps等脉冲信号、控制功能信息和时间信息;

3) 4) 5)

表1是IRIG串行时间码格式的详细说明。 表1 IRIG串行时间码格式

6

调制后的B码适合远距离传输; 分直流、交流两种;

具有使用灵活、通用规范、接口标准以及可靠性高等特点[10]。

第二章 基于FPGA的IRIG-B编码器的设计 基于FPGA的IRIG-B码基带产生电路的设计与实现

格式 IRIG-D IRIG-H IRIG-E IRIG-B IRIG-A IRIG-G 时帧周期 1小时 1分钟 10秒 1秒 0.1秒 0.01秒 码元速率 1个每分 1个每秒 10个每秒 100个每秒 1000个每秒 10000个每秒 表示时间的信息 天、时 天、时、分 天、时、分、10秒 天、时、分、秒 天、时、分、0.1秒 天、时、分、0.01秒 2.1.2 IRIG-B码格式 由于IRIG-B码是每秒一帧的时间码,比较容易传输,且最符合人们的使用习惯。因此,在上一节提到的各种串行时间码格式中,B码受到最为广泛的应用。其编码原理如图2-1所示。

图2-1 IRIG-B时间码原理

B码为30位,其中秒7位,分7位,时6位,天10位(从001到365或366)。位置在P0到P5之间,它们的顺序为秒--分--时--天。

B码中所有的时间格式都是通过不同的脉冲宽度(简称脉宽)来表示的。BCD码的 “0” 和 “1”的脉宽分别为索引计数间隔的0.2倍和0.5倍,即B码的“0”和“1”的脉宽分别为2ms和5ms 。IRIG-B 码把1秒的时间(1000ms)平均分成100小段,这样每一小段的时间为10ms,表示一个位元。

7

第二章 基于FPGA的IRIG-B编码器的设计 基于FPGA的IRIG-B码基带产生电路的设计与实现

其码元的定义如图2-2所示。

'P': 先输出8ms高电平,再输出2ms低电平; '0': 先输出2ms高电平,再输出8ms低电平; '1': 先输出5ms高电平,再输出5ms低电平;

图2-2 IRIG-B基本码元示意图

在FPGA内首先用1000pps的时钟对输入的IRIG-B串行bit数据进行信息采集处理,然后判断高电平和低电平持续的时间,并按照定义得到串行数据。IRIG-B时间码参考位置的前一位元为P码,同时参考位置的位元也是一个P码,此时连续出现两个P码。而在B码序列中其他任何位置上都没有连续两个或两个以上P码,所以当找到B码中两个连续的P码,则可知B码的起点。B码序列表示如下: 0: P0码,PR(B码序列的基准) 1-4: 秒的个位,BCD表示 5: 位元0

6-8: 秒的十位, BCD表示 9: P1码

10-13:分的个位,BCD表示 14: 位元0

15-17:分的十位,BCD表示 18: 位元0 19: P2码

20-23:时的个位,BCD表示

8

第二章 基于FPGA的IRIG-B编码器的设计 基于FPGA的IRIG-B码基带产生电路的设计与实现

24: 位元0

25-26:时的十位,BCD表示 27-28:位元0 29: P3码

30-33:天的个位,BCD表示 34: 位元0

35-38:天的十位,BCD表示 39: P4码

40-41:天的百位,BCD表示 42-44:位元0 ……

编码时,可以根据其时间信息的码元位置确定其不同位置的高电平和低电平持续时间,从而得到IRIG-B时间码。

2.1.3 IRIG-B相关概念介绍

(1)码元:每个脉冲称为码元。时间格式中码元的“准时”参考点是其脉冲的上升沿,其重复速率被称为码元速率。不同时间码的码元速率是不同的,其中B码的码元速率为100pps。

(2)时帧:由两相邻帧参考标志间的所有码元构成。其重复速率也称为时帧速率。IRIG-B码的时帧速率为1个每秒,时帧周期为1秒。

(3)码字:IRIG-B时间码中,共有30个码元用于表示时间信息。这些码元称为码字,码字采用二-十进制的BCD码进行编码的[11] 。

(4)索引计数:一个码元对应着一个索引计数。两相邻码元上升沿间的时间间隔称为“索引计数间隔”。在时帧的参考位置处,索引计数从“0”开始计数,每隔一个索引计数间隔,索引计数的值增加1。IRIG-B时间码的索引计数间隔为10ms, 其每帧的索引计数间隔为100个,也就是索引计数从0数到99。

(5)位置识别标志:位置识别标志是索引计数间隔的0.8倍宽度,故B码的位置识别标志为8ms的宽度。位置识别标志P0的上升沿在帧参考位置的前一个索引计数间隔处。每间隔10个码元有一个位置识别标志,分别记为P1、P2 ……,P9。

9

第二章 基于FPGA的IRIG-B编码器的设计 基于FPGA的IRIG-B码基带产生电路的设计与实现

2.2 IRIG-B编码原理

为达到IRIG-B码与时间信号同步,采用美国靶场仪器组的IRIG-B编码原理,在本文中提出了一种基于FPGA的IRIG-B编码器的设计实施方案。

IRIG-B码的产生原理如图2-3所示。编码模块接收从GPS接收机解析来的时间信息,然后通过RS-232接口转换成串行数据,作为B码编码的依据[12]。B码的编码重点在于根据时间信息,在相应的时间生成相应宽度的脉宽,并使PR上升沿与1pps标准时钟脉冲同步[13]。

图2-3 IRIG-B编码电路结构框图

2.2.1 输入输出模块

本系统的信号源主要是GPS授时模块获得的时间信息以及DE0开发板自带的50MHz的晶振时钟信号。直流B码编码电路的输入模块是将GPS接收机送来的标准信号分解出年月日时分秒时间信息,然后通过UART接口输入到FPGA中。

图2-4 GPS 16x-lvs实物图

10

第二章 基于FPGA的IRIG-B编码器的设计 基于FPGA的IRIG-B码基带产生电路的设计与实现

在该电路中,使用了型号为GARMIN 16x-lvs的GPS接收器接收时间信息,如图2-4所示。其电路连接如图2-5所示,通过RS232串行通信端口连接到PC机。由于此型号的GPS接收机的输入电压为3.3V,所以将5V电源通过电压转换芯片AMS1117降压为3.3 V的电源应用于GPS接收器。为防止GPS接收机由于Inrush 电流过大而被烧毁,在电路设计时加入了保险丝作为电流保护装置。有实物图我们知道GARMIN 16x-lvs的输出接口是网口型的,所以在电路中还完成了网口接口到RS232接口的电路转换,从而使得输出接口为RS232(适用于PC机上的DB9 串口),方便后面电路中信号与FPGA之间的通信。GARMIN GPS 16 x系列产品是完整的GPS传感器包括嵌入式接收机和天线,其广泛用于原始设备制造商(OEM)系统应用程序。相比于其它拥有成熟技术的GPS接收器,我们发现GPS 16 x可以一次追踪多个卫星,同时提供快速time-to-first-fix(TTFF),能够实现一秒钟导航更新和低功耗。 AMS11175V—3.3VFuse 1A电+源-Power5GNDGNDREMOTE ON/OFFData InData outDB9Serial3Data outCONNData In2GPS ReceiverGarmin 16x-lsv 图2-5 GPS 接收机电路图 图2-6是接收电路所用到的美国国家仪器公司(简称NI 公司)推出的交互式C 语言开发平台—-LabWindows CVI设计的界面,主要用来显示接收到时间信号。然后将接收到的Date和Time信息发送到FPGA中进行接下来的信号处理,便于之后的工作。 11

第二章 基于FPGA的IRIG-B编码器的设计 基于FPGA的IRIG-B码基带产生电路的设计与实现

图2-6 GPS接收时间显示的界面

从图中可知,当前时刻从GPS接收机接收到的时间信息为2014年03月18日20时41分03秒。

通常,主要有以下三种授时方法:原子钟授时、晶振授时、GPS授时。原子钟具有较高短期稳定度,但由于其价格很高,所以通常不予以考虑。晶体振荡器的短期稳定度也很高,例如,对于稳定度为9-10 量级的晶振,分频产生的秒脉冲时钟随机误差小于 1ns。由此可见,短期误差比较稳定,但晶振长期工作的误差累加起来就相对较大,再加上老化的因素,长期使用时输出频率可能会发生偏移,因此需要估算出晶振单位时间的误差,并进行校准修正,而GPS秒时钟就是可以对这种误差进行测量的强大工具。

在本论文的电路设计中选择了GPS授时。首先利用 GPS 实现时统系统中的时间同步,同步精度相对较高;其次它不需要发送设备,直接利用24颗卫星发送信号,因此其成本相对较低;另外GPS授时不受地域条件的限制,所以我们在任何天气情况下的任何时间任何地点都能接受到 GPS信号,更加的简单易行、快捷方便;最后GPS 系统作为美国的战略系统,具有高度的可靠性,所以利用 GPS 的时间同步系统的可靠性相对较好。由此可知,在时统系统中,用 GPS授时具有很大优势,在实现高精度同步应用方面具有很大潜力。

在输出端,输出标准时钟脉冲信号1pps和得到的IRIG-B时间码信号。

12

第二章 基于FPGA的IRIG-B编码器的设计 基于FPGA的IRIG-B码基带产生电路的设计与实现

2.2.2 分频模块

分频模块中使用了PLL(锁相环)[14] 可参数化的宏模块。只有在Cyclone、Stratix等常用系列的FPGA中才有锁相环,锁相环宏模块在Quartus II中又叫嵌入式锁相环。这种锁相环不仅性能优越,也可以根据需要来设置其分频或者倍频的系数、相移和占空比。

在本文中对50MHz 的信号进行三级分频,第一级是先利用PLL将50M时钟5000倍分频为10KHz的信号。第二级是对10KHz信号进行10倍分频、100倍分频,分别得到1000pps和100pps 。最后再对100Hz进行100倍分频,即对 100Hz 计数,当计到 49 时,输出反相,计数器清零,得到了 1Hz 的信号,其占空比为 50%。分频器模块的顶层图如图2-7 所示:

图2-7 分频器模块的顶层图

对分频模块用SignalTapⅡ进行功能验证,可以得到波形图如图2-8所示:

图2-8 脉冲信号分频器的验证结果

2.2.3 时间提取模块

在上一小节中分频器得到的1pps标准时钟脉冲,将完成对时间信息的预处理,还将对索引计数的清零设置进行控制。为了保证能够提取到正确的绝对时间,在 1pps上升沿送出当前时间时,也就是说在FPGA接收到时间之前,IRIG-B码信号的当前时帧就已启动了。在形成IRIG-B 码直流编码后,需要等下一个 1pps 上升沿到

13

第二章 基于FPGA的IRIG-B编码器的设计 基于FPGA的IRIG-B码基带产生电路的设计与实现

来才发送出去,所以接收的时间需要进行预处理(秒数值预加 1 操作),并对预进位的秒数值进行判断后存储,预进位处理还要考虑平年、闰年以及其月份的大小,这个可以影响 B 码编码时的天字段。以保证发送时间与标准时间的同步。

1. GPS时间串并转换及预处理

对于GPS串行码和并行码的转换模块我们主要考虑以下两点:波特率和时间码信息的串并转换。每一帧数据有8bit,将码流rx_to_the_uart以采集波特率4800bit/s的速率通过RS-232口输入。该模块采用了在FPGA上构建SOPC(System on programmable chip,片上可编程系统)的方式来设计完成 UART接口。采用了Altera公司提供的Nios II软核处理器,利用软硬件协同的方法实现时间码的串并转换,简化了系统硬件结构、提高了系统执行速度、减少FPGA芯片逻辑单元的使用,同时系统的稳定性、灵活性和可靠性也得到了加强[15]。其原理图和整体构架分别如图2-9和图2-10所示。

图2-9 UART接口原理图

从GPS接收机接收到的信息中提取出年月日时分秒等时间信息,并转换为二进制码。通过RS-232口传输给FPGA进行处理。我们将提取的时间信息分别定义为:year[7:0]、month[7:0]、day[7:0]、hour[7:0]、minute[7:0]、second[7:0]。

FPGA 接收GPS接收机通过UART模块发送过来的输入时间信息,这个过程位于两个标准秒脉冲1pps之间。而当前时刻接收的时间信息形成的IRIG_B 时间码,需要等到下一个1pps时钟脉冲上升沿的时候才可以发送出去,所以我们需要对接收到的时间信息进行预进位处理[16] ,从而使输出的IRIG_B码能够与标准时间同步。

14

第二章 基于FPGA的IRIG-B编码器的设计 基于FPGA的IRIG-B码基带产生电路的设计与实现

图2-10 SOPC构建的UART接口系统结构

图2-11为IRIG_B时间编码的时间同步修正图。由图可知,GPS接收机授时阶段出现在两个标准秒脉冲之间,且传输的信息为前一个秒脉冲时刻对应的时间信息。但是IRIG_B 编码信息在后一个秒脉冲的上升沿时刻才会输出,所以要对前面存储的时间信息进行预进位处理,使得在每个1pps 的上升沿时刻送出相对应的时间信息。例如:在P1和P2 秒脉冲之间,接收到了GPS接收机传来的P1 时刻的时间信息,所以预处理步骤就是在 FPGA上设计了一个时间进位模块,该模块能够实现将每秒更新的时间信息自动加上1s的功能,即进行预进位处理。

15

第二章 基于FPGA的IRIG-B编码器的设计 基于FPGA的IRIG-B码基带产生电路的设计与实现

标准时间 秒脉冲

GPS传输时间信息

GPS授时

IRIG-B编码信息输出

P1时刻IRIG-B

编码输出

图2-11 时间进位预处理

2. 时间信息码制转换

由于IRIG-B码中所包含的信息有时bcd_hour[5 :0]、 分bcd_minute[6:0]、秒bcd_second[6:0]和天bcd_day[9:0],而我们通过GPS采集到的时间被分为year[7:0]、month[7:0]、day[7:0]、hour[7:0]、minute[7:0]、second[7:0]。因此需要在时间信息码制转换模块中要将二进制时间信息转换成相应的BCD 码格式,并将年月日时间信息转变成对应的天数(特别需要注意闰年与非闰年的判断),这样最后就可以产生准确可靠的BCD码时间信息。

图2-12 时间信息转换模块图

16

第二章 基于FPGA的IRIG-B编码器的设计 基于FPGA的IRIG-B码基带产生电路的设计与实现

图2-12是时间信息转换的原理图。在每个1pps脉冲的上升沿时刻,编码模块提取经过时间预处理和进制转换的BCD码时间信息,来完成整个IRIG_B 编码设计。

2.2.4 编码模块

编码模块的主要功能是FPGA对输入的并行BCD码信号,即秒信号second[6:0]、分信号minute[6:0]、时信号hour[5:0]和天信号day[9:0]进行IRIG-B编码。由于 B 码信号的码元100个/秒正好和 100pps 信号是对应关系,使用时钟分频同步后的 100pps 信号为中断信号,每中断一次计数器codes_count100的值就加1,完成 IRIG-B 码的直流码编码。

在“2.1.2-IRIG_B 时间码”小节中,已经详细的介绍了IRIG_B 时间码的格式及其基本原理。并在图2-1 中以实际编码图形的形式作出了解释说明。结合上一节中提到的脉冲模块的实现方法,我们可以发现秒的最低位出现在codes_count100 为1 的位置上,分的最低位出现在codes_count100 为10 的位置上,时的最低位出现在codes_count100为 20 的位置上,天的最低位出现在codes_count100 为30 的位置上,其余codes_count100个位为9 的位置上均表示当前脉冲标记为索引脉冲[17] 。因此,可以得出时间信息寄存器的输出时刻与码元计数器codes_count100之间的关系。

IRIG-B码每秒100码元,即将每个码元的周期都严格固定为10ms [18] 。每个码元有10次的1000pps中断,其定时器ms_count10则自动加一。码元每响应一次就产生一次100pps 中断,索引计数的值就加一,同时进行判断,当索引计数为0、 9、19、29、39、49、59、69、79、89、99 时,即每计数十次发送一个位置识别标志,其定时器为code_count100。当索引计数不是位置识别标识时,则对其时间信息进行判断,然后发送对应的脉宽信号,如果需要加入特殊控制信息,则可以在相应的位置加入相应的特殊控制码,这样就可以输出相应的脉宽信号,从而完成 IRIG-B(DC)码的编码。其编码模块图如图2-13所示:

17

第二章 基于FPGA的IRIG-B编码器的设计 基于FPGA的IRIG-B码基带产生电路的设计与实现

图2-13 IRIG-B编码的寄存器模块图

1. 编码实现算法步骤

1、首先利用Quartus II内嵌的可参数化模块PLL(锁相环)将开发板上的50MHZ 的晶振时钟进行5000倍分频。分频得到10KHz的时钟脉冲信号,令其为clk_10000pps, 将其通过分频器分别进行10倍分频和100倍分频,得到1000pps和100pps的时钟脉冲信号,分别记为clk_1000pps (其周期为严格1ms 的计数脉冲) 和clk_100pps。同时要求1000pps脉冲信号的上升沿与100pps 脉冲信号的上升沿严格同步。

2、然后定义一个模为10 的计数器ms_count10。在100pps 脉冲信号的上升沿触发复位,将计数器ms_count10 置0。其余时刻,在clk_pps1000 脉冲信号每触发一次上升沿时计数器ms_count10 加1。

3、再定义一个模为100 的计数器codes_count100。在100pps 脉冲信号的上升沿若有复位信号,则触发复位,将计数器codes_count100 置0。否则,在clk_pps100 信号每触发一次上升沿时计数器ms_count10 加1。

4、最后再定义一个逻辑向量CMP_REGS, 其宽度为10 位,表示每个毫秒码元的状态。当ms_count10 的值为0 时,根据codes_count100 的值所表示的信息,用对应的时间码对CMP_REGS 寄存器的内容进行更新;当计数器ms_count10 不为0 时,根据ms_count10 的值来确定选择哪一位为输出,也就是将寄存器CMP_REGS [ms_count10] 的值输出。

2. IRIG-B码秒时间编码流程

下面以秒时间流程的编码为例,详细说明IRIG-B码编码的具体操作步骤,其流程图如图2-14所示。当无复位信号(即复位信号无效)时:

1、系统对起始位置P0和PR进行检测。当检测到起始信号时,跳转到2进行判断。

18

第二章 基于FPGA的IRIG-B编码器的设计 基于FPGA的IRIG-B码基带产生电路的设计与实现

2、判断当前时刻的秒计数个数低i位是否等于1。若判断为真,则跳转到步 骤3;若判断为假,则跳转到4。

3、根据i 的值所表示的信息,用相应的时间信息对CMP_REGS 寄存器进行更新。此时连续输出5ms的高电平和5ms低电平脉冲。然后跳转步骤5。

4、根据i 的值所表示的信息,用相应的时间信息对CMP_REGS 寄存器进行更新。此时分别连续输出2ms的高电平脉宽和8ms低电平脉冲。然后跳转步骤5。 5、判断当前秒计数个数i是否大于4。若判断为真,则跳转到步骤6;若判断为假,则跳转到2。

6、由i的值可以判定此刻为索引标志,输出2ms的高电平脉宽和8ms低电平脉冲。i的值自动加1,然后跳转步骤7。

7、判断此时的秒计数个数低i位是否等于1。若判断为真,则跳转到步骤8;若判断为假,则跳转到9。

8、根据i 的值所表示的信息,用相应的时间信息对CMP_REGS 寄存器进行更新。此时分别连续输出的5ms高电平和5ms低电平脉冲。然后跳转步骤10。 9、根据i的值所表示的信息,用相应的时间信息对CMP_REGS 寄存器进行更新。此时分别连续输出2ms的高电平脉宽和8ms低电平脉冲。然后跳转步骤10。 10、判断当前秒计数个数i是否大于8。若判断为真,则跳转到步骤11;若判断为假,则跳转到7。

11、由i的值可以判定此刻为位置识别标志P1,对CMP_REGS 寄存器进行更新,输出8ms的高电平和2ms低电平脉冲。然后跳转到分时间编码流程。

19

第二章 基于FPGA的IRIG-B编码器的设计 基于FPGA的IRIG-B码基带产生电路的设计与实现

P0和PR起始位,连续两个高电平8ms、低电平2ms NY 输出高电平5ms、低电平5ms的脉冲秒计数个数BCD码低i位=‘1’? 输出高电平2ms、低电平8ms的脉冲Y i+1>4N 输出高2ms低8ms的脉冲i=i+1Y 秒计数十位BCD码低i位=‘1’? Y 输出高电平5ms、低电平5ms的脉冲输出高电平2ms、低电平8ms的脉冲Y i+1>8?N 输出高电平8ms、低电平2ms的P1标志脉冲,转入分时间 图2-14 IRIG-B码秒时间编码流程图 3. 代码实现 根据前面讨论的原理、步骤及流程,可编写如下的主要Verilog HDL代码来实现IRIG-B编码器: always @(posedge clk_1000pps) begin //更新寄存器CMP_REGS 实现 if (ms_count10==0) begin // ms_count10 为0 时更新寄存器 case (codes_count100) 20

第二章 基于FPGA的IRIG-B编码器的设计 基于FPGA的IRIG-B码基带产生电路的设计与实现

1 : begin

case(second[0])

1:CMP_REGS <=b; //b=0000011111 0:CMP_REGS <=a; //a=0000000011 endcase

end 2 : begin

case(second[3])

1:CMP_REGS <=b; 0:CMP_REGS <=a;

endcase

end … …

3,4,6 ,7,8

//

10 : begin

case(minute[0])

1:CMP_REGS <=b; 0:CMP_REGS <=a;

endcase end

… …

11,12,13,15,16 ,17

//20 : begin

case(hour[0])

1:CMP_REGS <=b; 0:CMP_REGS <=a;

endcase

end

… …

21

将秒信息写入CMP_REGS 寄存器

将分信息写入CMP_REGS 寄存器

第二章 基于FPGA的IRIG-B编码器的设计 基于FPGA的IRIG-B码基带产生电路的设计与实现

21,22,23,25,26

//将时信息写入CMP_REGS寄存器

30 : begin

case(day[0])

1:CMP_REGS <=b; 0:CMP_REGS <=a;

endcase

end

… …

31,32,33,35,36,37,38,40,41

//将天信息写入CMP_REGS 寄存器 0 :CMP_REGS <= \ … …

9,19,29,39,49,59,69,79,89,99 //存入8ms高电平的脉冲 default:CMP_REGS <= \ //存入2ms高电平的脉冲

endcase end else begin

CMP_REGS <= CMP_REGS ; // ms_count10 不为0 时寄存器值不变 end

always @(posedge clk_1000pps)

begin //实现IRIG_B 编码输出 if (ms_count10==0)

IRIG_B_OUT <= 1 ; //输出1ms高电平 else

IRIG_B_OUT <= CMP_REGS[ms_count10]; //将寄存器中相应的值输出 end

22

第二章 基于FPGA的IRIG-B编码器的设计 基于FPGA的IRIG-B码基带产生电路的设计与实现

2.3本章小结

实验证明,采用GPS授时的基于FPGA的IRIG-B码编码器的设计,能够实现与系统标准时钟信号的精确同步。当GPS时间信息通过rx_to_the_uart引脚发送到FPGA中时,FPGA对其进行预处理和编码。输出IRIG-B码可以暂时保留在FPGA中,当外界需要时输出1pps标准时间脉冲信号和IRIG-B码时间信息进行信息的处理及发送。可以用于校准附属设备的实时时间,使设备具有高精度的同步时间基准,获得精确同步的控制效果,便于远程管理和监测。所以具有小体积、低成本、高精度、高性能等优势,对于武器靶场时间统一设备的技术发展具有战略性意义。

23

第三章 基于FPGA的IRIG-B码发射电路设计 基于FPGA的IRIG-B码基带产生电路的设计与实现

第三章 基于FPGA的IRIG-B码发射电路的设计

在第二章IRIG-B码编码器产生输出时间码和1pps标准时间脉冲信号的基础上,本章将设计基于FPGA的IRIG-B码的发射电路。即将时间编码信号经过扩频调制和DBPSK调制等数字处理后发送出去。本章首先简单介绍了数字扩频通信技术,然后介绍了电路的设计方案和各模块的原理及其在FPGA中的实现。

3.1 扩频通信技术

扩频通信是指在发送端用某个特定的扩频码将待传输信号的频谱调制到一个很宽的频带上去,然后在接收端用相同的扩频码信息对扩频信号进行相关解调,恢复出原始信息[19]。扩频通信是一种数字传输方式,其传输信息所用信号的带宽远大于信息本身的带宽。它是通过利用与待传输信号无关的函数对发送信号进行调制来实现的。用香农信道容量公式(3.1)来描述 [20,21]扩频通信技术理论:

S??C?B?log2?1?? (3.1)

?N?式中:C为信道容量;B为信道宽度;S/N为系统的信噪比。 Shannon公式阐述了下面两个重要思想:

1. 可以通过增加传输信号带宽或增加信噪比来增加信道容量。并且增加带宽比增加信噪比更有效。

2. 当信道容量为定值时,可以通过增加信噪比S/N来降低信号带宽;也可通过增加带宽来降低系统对信噪比的要求

这就是扩频通信的基本思想和理论依据。详细的公式推导可参考文献[22]。实现扩频的方式主要有以下几种:

1)直接序列扩频(DS); 2)调频扩频(FH); 3)线性调频(Chirp); 4)跳时扩频(TH); 5)混合调频。

24

基于FPGA的IRIG-B码基带产生电路的设计与实现 第三章 基于FPGA的IRIG-B码发射电路设计

3.2 数字调制

由于无线信号传输频率为3KHz~300GHz,而基带信号的频率很低,不易传输。根据电磁场理论可知,发送信号的频率和波长有关,基带信号频率低,波长很长,一般能达到几千米的量级。就算信号可以发送出去,但所有信号都混合在一起,无法分清,所以就需要调制,然后在接收端再进行解调,这样就才能进行信号的无线通讯。 FPGA分频器IRIG-B(DC)差分编码BPSK 扩频调制调制Output DataGold code5M Carrier伪随机序列频率合成器 图3-1 IRIG-B码发射电路整体框图

本文中信号发射电路的整个结构框图如图3-1所示,信号处理的所有模块都在FPGA上实现。首先100Hz的串行IRIG-B时间码信号经过差分编码模块进行差分编码;然后与伪码发生器产生的Gold序列做模二相加运算,将信号频率扩展到1MHz;最后与频率合成器产生的5MHz正弦载波相乘,完成整个发送电路的扩频及调制过程。其中分频器产生整个电路中所需的不同时钟信号,即电路中各模块所用时钟信号均由DE0开发板上的晶振提供的50MHz时钟信号经过数字分频得到。下文将具体介绍代电路中各模块的原理及其在FPGA上的实现。

3.2.1 差分编码模块

在整个电路结构中,差分编码模块的作用是配合频带处理部分实现DBPSK。差分编码器的基本原理可以用公式(3.2)表示为

25

第三章 基于FPGA的IRIG-B码发射电路设计 基于FPGA的IRIG-B码基带产生电路的设计与实现

bn =an⊕bn-1 (3.2)

式中:假定最初的bn-1可任意设定,一般情况下取为0。⊕是指模二相加,bn-1是bn的前一个码元。例如:

绝对码元: 1 1 0 1 0 0 1 1 0

参考相位: 0 差分码元: 1 0 0 1 1 1 0 1 1 差分编码模块的RTL原理图如图3-2所示:

图3-2 差分编码模块的RTL原理图

其主要Verilog HDL代码为: diff<=diff+IRIG_B_OUT 图3-3是该模块的测试验证结果

图3-3 差分编码模块的SignalTap II测试验证结果

3.2.2 扩频模块

3.2.2.1 伪随机序列相关概念

作为扩频通信系统中很重要的部分,伪随机序列影响着扩频系统的性能。四十年代末,信息论奠基人香农的编码定理指出:如果信息速率Rb小于信道容量C,那

26

基于FPGA的IRIG-B码基带产生电路的设计与实现 第三章 基于FPGA的IRIG-B码发射电路设计

么在码周期足够长的情况下总能找到某种方法,可以从受到高斯噪声干扰的信号中几乎无差错的恢复出初始待传输信息。在证明编码定理时,香农提出用具有类似白噪声统计特性的信号来实现编码。白噪声瞬时值服从正态分布,并且它的功率谱在很宽频带内都是均匀的。目前还无法实现对白噪声进行放大、调制、控制等,所以用类似白噪声统计性质的伪随机信号作为扩频系统的扩频序列来模拟。通常,可以用作扩频序列的伪随机码有很多种,如m 码序列[22,24]、Gold 码序列[23]等,但是考虑到系统性能及系统的简化性,在本论文中采用Gold 序列。

3.2.2.2 m序列的产生原理

最大长度线性反馈移位寄存器序列(LFSR)简称为m 序列,它有很多优良特性,例如,有良好的自相关特性,且其自相关峰远大于其它部分;它同时具有随机性和规律性,即0 游程和1 游程各占一半。m序列应用很广泛,比如用在扩频CDMA(码多分址)通信系统中,同时m序列在雷达、通信加密、无线电测量等领域也有着广泛的应用。

m 序列的周期为

P=2n-1 (3.3)

如图3-4所示,我们可以通过LFSR来产生m序列。它主要包括移位信号产生器、n个级联寄存器、模二加法器。图中第j级移位寄存器的状态用aj表示,aj=0 或aj=1(其中j为整数)。用cj来表示反馈连接状态,若cj=1,则表示参加反馈(此线是有效的);若cj=0,则表示不加与反馈(此线是无效的)。

由于反馈的存在,可知,若初始状态全部是“0”,则移位后仍全为“0”,所以要避免出现全“0”状态。由于除了全部为“0”的状态外,n级移位寄存器可能出现2n-1种不同的状态,即每移位一次,就可以得到一种状态。在若干次移位后,一定能复现前面曾经出现的某一状态,其后的过程有开始重复之前的状态了。序列会随着反馈位置的不同而出现不同周期,线性反馈的位置,能使移位寄存器产生最长的序列,能够达到Q=2n -1的周期。按图3-4中的连接关系,可以写为:

an?c1an?1?c2an?2?...?cn?1a1?cna0??cjan?j (3.4)

j?1n该式称为递推方程。

27

第三章 基于FPGA的IRIG-B码发射电路设计 基于FPGA的IRIG-B码基带产生电路的设计与实现

图3-4 LFSR线性反馈移位寄存器

上文指出,cj的取值可用其序列多项式(特征方程)表示为:

f(x)?c0?c1x?c2x?...?cnx??cjxj (3.5)

2nj?0n式中xj仅指明其系数cj的值(1或者0),x自身的取值没有任何实际意义。例如,若序列多项式表示为f(x)=1+ x+ x2+x4,它表示x0, x ,x2和x4的系数c0=c1=c2=c4=1,其余为零。如果反馈移位寄存器的特征方程为本原多项式,那么就可以利用移位寄存器来产生m码序列。因而找到了本原多项式,就可以构成m序列码发生器。 表3.1给出了部分本原多项式。

表3.1 部分m码的反馈系数表

m 3 4 5 6 周期Q 7 15 31 63 13 23 45,67,75 103,147,155 八进制数的反馈系数ci 以下是m序列的一些基本性质: (1) 周期性:移位寄存器的级数决定了m码序列的周期值, q=2n-1。

(2) 均衡特性:在一个周期中,m序列的0和1的个数基本相等,确切的说是 ,“0”的个数比“1”的个数少1个。

(3) 游程特性:m码序列中,长度为n的游程占游程总数的1/2n…

(4) 移位相加性:一个m序列m1,与其经过任意次数的延时移位后产生的另一序列m2模2加,仍然得到这个m序列的某个移位序列。如,0100111和其右移4位后的另

28

基于FPGA的IRIG-B码基带产生电路的设计与实现 第三章 基于FPGA的IRIG-B码发射电路设计

一个序列0111010逐位模2相加后的序列为0011101,得到与原序列右移5位后的序列相同的序列。可用公式表示为:

u(j)?up(j)?uq(j) (3.6)

其中,u(j)、up(j)、分别为原序列、平移q位后的序列;uq(j)是平移相加后得到的序列中的第j位。

(5) 相关特性: m序列的自相关特性可以表示为

?1,??0?Rm(?)?? (3.7)

??1/m,??0?其中:M?2n?1为序列的最大长度,即m序列的周期;??kTc,k?1,2,3,...,M?1; Tc为m序列的码元宽度,序列位数越长越接近于随机噪声的自相关特性,可见,相关函数是个周期函数。

(6) 伪随机特性:由于m序列具有周期性、均衡特性、移位相加特性等特性,且其自相关函数具有类似白噪声的性质,所以m序列是一种伪随机序列,又称为伪码。 3.2.2.3 Gold 序列的产生原理

虽然m序列性能很好,但相同长度的m序列个数较少,而且序列之间的互相关性不太好。Gold在60年代后期提出了一种基于m序列的Gold 码序列 [18,19] 。它是用一对优选对经过模2加得到的。随着级数n的增加,Gold序列的个数远大于同样级数的m序列的个数,又因为Gold码序列具有良好的自相关特性和互相关特性,因此受到了人们的广泛青睐。

Gold序列就是为了解决m序列个数不多,且互相关函数值较差而提出的,其产生原理框图如图3.5所示: 时钟 n级m序列发生器 m1 GOLD码序列 n级m序列发生器

m2 图3.5 Gold序列发生器

29

第三章 基于FPGA的IRIG-B码发射电路设计 基于FPGA的IRIG-B码基带产生电路的设计与实现

假定有两个m序列,它们的互相关函数的绝对值是有界的,而且符合如下条件:

?1?n2?2?1,n为奇数 (3.8) R(?)??n?2?22?1,n为偶数,n不是4的倍数?当改变两个m码的相对位移,就可以得到一个新的Gold码。当相对位移2n-1位时,就可得到2n-1个Gold码序列,再加上两个m码序列,那么总共可以得到2n+1个Gold序列码。

3.2.2.4 Gold 序列的产生

GOLD序列的工程顶层原理图如图3-6所示:

图3-6 Gold模块原理图

文中实现扩频模块需要1023位的Gold序列,假定生成n为10,反馈系数分别为

?10010000001?2和?10110010111?2的Gold码序列发生器,即两组m序列的多项式分别

为:

f1(x)?1?x3?x923(3.9)

f2(x)?1?x?x?x6?x8?x9?x10(3.10)

根据设计要求,下面给出Gold序列产生主要部分的Verilog代码:

always @(posedge clk1M) begin if (~clr) begin

shift_reg1<=10'b0000000001; shift_reg2<=10'b0000000001;

30

基于FPGA的IRIG-B码基带产生电路的设计与实现 第三章 基于FPGA的IRIG-B码发射电路设计

end else begin

shift_reg1[0]<=shift_reg1[2]^shift_reg1[9]; shift_reg1[9:1]<=shift_reg1[8:0];

shift_reg2[0]<=shift_reg2[1]^shift_reg2[2]^shift_reg2[5]^

shift_reg2[7]^shift_reg2[8]^shift_reg1[9];

end

通过SignalTap Logic Analysis,可得到波形如图3-7所示:

shift_reg2[9:1]<=shift_reg2[8:0];

end

图3-7 Gold码的功能验证结果

3.2.2.5 扩频调制

直接序列扩展频谱系统(Direct Sequence Spread Spectrum Communication Systems,DSSS)[27] ,简称为直扩系统或直接序列系统。它是指用高速伪随机序列与待传输的信息码模二相加后的复合码序列去调制载波,从而扩展传输信号的带宽。我们将用于频谱扩展的伪随机序列称为扩频码。在DSSS中,需要对载波进行相移键控(PSK)调制。

扩频通信的工作原理图通常可分为发射和接收两部分,图3-8是直扩发射系统原理图,图3-9直扩接收系统原理图。在发信端,伪随机序列与待传输的信息码序列模二相加(即波形相乘),然后用形成的复合码对载信号波进行调制,并将调制后的信号由天线发射出去。在收信机端,需要一个与发送端的伪随机序列同步的参考伪随机码,用来对接收的信号进行相应的处理,这个过程称为解扩。将解扩后的信号送入解调器进行解调,这样就恢复出了原始信息。每个部分的详细实现过程可以参考文献[28,29] 。

31

第三章 基于FPGA的IRIG-B码发射电路设计 基于FPGA的IRIG-B码基带产生电路的设计与实现

信源 扩频 振荡解调 信宿 伪码发生器载波同步 伪码同步 伪码发生器 图3-8 直扩发射系统原理图 图3-9 直扩接收系统原理图 扩频调制模块对差分编码后的信息可以采用不同的扩频码进行调制,扩频码主要有上文中已经介绍的m序列以及Gold序列。根据各扩频码的特性,鉴于序列的长度、自相关和互相关、简单性等特点,在本文中选用Gold序列。由于前面章节中已经完成了差分编码和Gold序列模块,所以在这里只要用扩频码和差分信号进行异或即可完成调制过程。其RTL视图如图3-10所示: 图3-10 扩频调制 3.2.3 BPSK调制模块 频带处理单元主要完成数字上变频功能,实现本地载波信号的产生和基带信号的混频。所以要求电路中产生一个5MHz频率的正弦波作为载波信号来满足电路设计要求。通常,其全数字的实现方式是产生一个FPGA片内数控振荡器(NCO,Numerically Controlled Oscillator),由于直接数字频率合成器的频率转换速度较快,而且频率分辨率较高,易实现PSK和FSK数字调制[30] ,所以本文中使用DDS的方式实现数控振荡器。 3.2.3.1 数字频率合成器 数字频率合成器(Direct Digital Synthesizer ,DDS)是一种数字控制的锁相倍频器。其主要从相位的概念考虑合成需要的波形[31] 。它的输出频率是参考时钟频率的整数倍,可以利用频率选择开关来调节分频比,从而控制NCO的输出频率?o。相比32

基于FPGA的IRIG-B码基带产生电路的设计与实现 第三章 基于FPGA的IRIG-B码发射电路设计

于传统的频率合成器,DDS分辨率较高,成本较低,功耗较低,是实现全数字化的一个重要途径,在电子仪器、通信等领域都有广泛的应用。 1、 DDS基本原理 直接数字频率合成器(DDS)一般可以分为以下6类:脉冲输出直接数字合成、正弦输出直接数字合成、吞脉冲直接数字合成、三角波输出直接数字合成、相位插入直接数字合成以及抖动插入直接数字合成。DDS系统核心是相位累加器,即对频率控制字进行累加运算,它是一种反馈电路。在本文中使用的是正弦输出的DDS技术,这类直接数字合成技术应用广泛,也最具价值。通常,该电路包括参考时钟、频率控制字、相位累加器和LUT(查找表)。 频率控制字 输出 相位累加器 正弦查询表 图3-11 DDS 的工作原理 DDS的详细工作过程如图3-11所示。其中,N位加法器与N位累加寄存器共同构成N位相位累加器 [32] 。首先在每个时钟脉冲到来时,相位累加器对频率控制字进行线性相位累加,即利用N位加法器将N位相位累加器输出的数值与频率控制字K进行相加,然后把相加结果送入累加寄存器。累加寄存器要将前一个时钟周期所产生的相位数据反馈给加法器的输入端,让加法器在后一个时钟作用下继续进行与频率控制字K相加的工作;还要将这个值作为取样地址,送入相位转换电路,然后获得正弦信号序列,使其输出相应的波形数据。 DDS的参数设定: 1)DDS输出信号频率: 33

第三章 基于FPGA的IRIG-B码发射电路设计 基于FPGA的IRIG-B码基带产生电路的设计与实现

?o= ?c ?K (3.11) 2N其中, N为相位累加器位数;fc为参考时钟频率;K为频率控制字。假定,参考时钟的频率fc为200 MHz,N=32位相位累加器,设频率控制字K的值为:0x08000000H(即为227),那么: 227?o= 200?32?6.25MHz (3.12) 2由公式(3.11)可知,理论上可以通过设定DDS频率控制字K、相位累加器位数N以及参考时钟fc的值,得到任意频率的输出。 2)频率分辨率为: fres= fc (3.13) N2根据所需频率,通过公式3.11计算出频率控制字后输入相位累加器,再通过ROM查找表输出波形。本系统的查找表是采用Altera 公司的FPGA内嵌ROM来实现的,LUT中存入整个周期的正弦波,并保存在mif文件,其深度为1024,用8bit无符号数据对每个抽样值进行量化。发送电路用50MHz时钟作为DDS的采样时钟,设置频率控制字为36位,根据所需频率,通过公式2.6可以计算出频率控制字为: 236?6871947673K = 5M? (3.14) 50M那么输出5MHz的正弦波时的频率控制字是十进制数约为“6871900000”。 存入ROM模块的正弦波是通过软件Mifmaker作波形y=sin(2πx),以f频率对其幅度值进行量化,那么在一个周期内就可以得到M=f量化个幅度值。然后将这些幅度值按顺序存入到ROM。图3-12是本文实现DDS的寄存器传输级RTL视图。 图3-12 DDS的RTL原理图 34 基于FPGA的IRIG-B码基带产生电路的设计与实现 第三章 基于FPGA的IRIG-B码发射电路设计

图3-13是DDS模块在Quartus II中的通过Verilog HDL代码生成的模块符号。

图3-13 DDS模块符号

经过编译下载后,用SignalTapII进行功能测试,得到验证结果如图3-14所示,其中sinout是输出的5MHz的正弦波。

图3-14 DDS的功能验证波形图

DSS模块部分主要代码如下:

if (clr) result=0; else begin

result=result+data; end

图3-15和图3-16分别为正弦查询的ROM模块以及相位累加器模块符号。

35

第三章 基于FPGA的IRIG-B码发射电路设计 基于FPGA的IRIG-B码基带产生电路的设计与实现

图3-15 正弦查询表ROM模块 图3-16 相位累加器模块符号

3.2.3.2 BPSK调制的基本原理

M进制移相键控信号中,载波相位有M种取值 [33],相应的M种持续时间T的符号可以表示为

SMPSK(t)? [?n2Egg(t-nTg)]cos[ωc+??n?] (3.15) Tg式(3.15)中,Eg为单位符号的信号能量,即0≤t≤Ts时间间隔里的信号能量;

?2??ωc为载波角频率;?(n)为载波在t=nTs时刻的相位,??n????i???,,i=1,

M??2,…,M-1,θ为初相位;g(t)是成形函数。

假设θ=0,则

SMPSK(t)?cos?ct?cos??n?n2Eg2Egg?t-nTs?-sin?ct?sin??n? g?t-nTs? (3.16) TgTsn

令 a ?n??2Egcos??n? (3.17) Tg2Egsin??n? (3.18) Tg?n??b 则有

???? (3.19) ????????SMPSK(t)?cos?ct angt-nTs-sin?ctbngt-nTs???????n??n?

可以简化为

SMPSK(t)?I?t?cos?ct -Q?t?sin?ct (3.20)

36

基于FPGA的IRIG-B码基带产生电路的设计与实现 第三章 基于FPGA的IRIG-B码发射电路设计

I(t)??a?n?g?t-nTs?n

(3.21) (3.22)

Q(t)??b?n?g?t-nTs?n

常把I(t)称为同向分量,Q(t)称为正交分量。MPSK信号可以用矢量图3-17来描述。

I.M=2, θ=0 II.M=4, θ=0 III. M=4, θ=

?? IV. M=8, θ= 48图3-17 MPSK信号矢量星座图

通常,相比于二进制全数字调制的方式,多进制数字调制方式具有如下的特点:

(1) 在相同的码元传输速率下,多进制系统的信息传输速率要高于二进制,如

QPSK信息传输速率是BPSK的两倍;

(2) 由于二进制码元传输速率比多进制高,所以在相同信息速率下,多进制信号

码元的持续时间比二进制的长。若果增加码宽,就提高了码元的能量,这样可以减少信道特性引起的码间干扰。

实际应用较广泛的是QPSK以及BPSK调制方式。QPSK具有较高的频率利用率,较强的抗干扰能力; 而BPSK信号实现简单,可以很容易解调出结果。因此在性能要求不高的条件下,BPSK也是一种经常用到的调制方式。

BPSK信号的表达式为

Sk?t??cos?2?fct??k? (3.23)

37

第三章 基于FPGA的IRIG-B码发射电路设计 基于FPGA的IRIG-B码基带产生电路的设计与实现

式中,φk是基带数字码作用下两个不同的相位取值,通常为π或者0;fc是载波的频率。

如公式(3.24),BPSK信号的相位变化可以转变为幅度变化:

Sk?t??cos?2?fct??k???cos2?fct?xkcos2?fct?xk??1? (3.24)

其中,xk=±1用于表示脉冲取值的正负, g(t)用于表示脉冲的波形。那么脉冲码可表示为

x?t??k?-??xg?t-kT? (3.25)

ks?其中,TS为脉冲持续时间。

BPSK信号是由基带数字序列x?t?调制载波得到的,调制信号为

S(t) =x?t?cos2πfct (3.26)

BPSK的调制框图如图3-18所示。

基带数据信号x?t? 已调制信号S?t? 载波cos2πfct

图3-18 BPSK 的调制原理图

BPSK (2PSK) 即二相移相键控调制,也称为绝对相移键控调制。它是用二进制数字信号对载波的相位进行控制。例如,当信号为“0”时,载波相位不变;而当信号为“1”时,载波相位移相180°,(也可以是相反的规定) [34,35] 。其工作原理波形如图3-19所示。

0

1

0o

180o

图3-19 BPSK的工作原理波形图

38

基于FPGA的IRIG-B码基带产生电路的设计与实现 第三章 基于FPGA的IRIG-B码发射电路设计

根据上文的BPSK信号讨论,可知,相位变化以未调制载波的相位作为参考标准。它是通过载波相位的绝对数值(“0”或“π”)来表示数据信息,因此我们称之为绝对相移。但BPSK相干解调时,如果以这个固定基准相位作参考,由于载波恢复中相位会出现0,π的模糊性(即0相位变π相位或π相位变0相位),可能会导致解调时出现“反向”工作现象,使得恢复出的数字“0”和“1”倒置,所以BPSK方式在实际中很难运用。这种现象通常称为BPSK方式的“倒π现象”。考虑到在实际通信时,基准相位可能会由于温漂或噪声而导致随机跳变,而在通信过程中通常很难发现这种跳变。这样,采用BPSK方式就会在接收端发生完全相反的恢复。为克服BPSK调制的这些缺点,二进制相移键控(DBPSK)调制方式被提了出来。

DBPSK调制也称为相对相移键控 [28] ,它是通过前后相邻码元的载波相对相位差来表示码字信息的。假定,?phase是两个相邻码元的载波相位差值,定义码字信息与?phase之间的关系为:

?0, 表示码字信息“0” ??phase??

???, 表示码字信息“1”

例如,一组二进制的码字序列与其对应的DBPSK信号载波的关系如下:

二级制码字信息: 0 1 0 0 1 0 DBPSK信号相位: (0) 0 π π π 0 0 或 (π) π 0 0 0 π π

(3.27)

BPSK和DBPSK的波形如图3-20所示。从图中的波形,我们可以得出DBPSK信号的实现方式:首先对二进制码的基带信号进行差分编码,即把信号序列的绝对码转换成相对码;然后再对得到的相对码(差分码)进行绝对调相,从而产生二进制码差分相移键控信号。

39

第三章 基于FPGA的IRIG-B码发射电路设计 基于FPGA的IRIG-B码基带产生电路的设计与实现

图3-20 BPSK与DBPSK调制信号对比

在前面的3.2.1章中,已经介绍了差分编码的原理及其实现方式,在此只要将之前得到的差分码元进行BPSK调制,这样就可以得到绝对码元的DBPSK调制波形。差分编码与BPSK调制模块共同作用,完成相对相移键控,从而避免BPSK的“倒π现象”。BPSK模块的RTL原理图的实现如图3-21所示:

图3-21 BPSK模块的RTL原理图

BPSK模块的主要部分的Verilog HDL实现如下:

If (in)

carrier_reg <=~carrier; else

carrier_reg <=carrier; end

40

基于FPGA的IRIG-B码基带产生电路的设计与实现 第三章 基于FPGA的IRIG-B码发射电路设计

assign out= carrier_reg;

3.3 本章小结

在全数字通信系统中,基于FPGA的接收、存储、处理和发送的信息均为二进制数。与模拟通信相比,数字通信的抗干扰性更强(防止噪声积累、可中继再生);更容易加密;更适于处理与集成;具有更好的可靠性。正是由于这些优势,使得数字通信技术已成为当今社会通信事业飞速发展的重要方向。

41

第四章 电路的仿真与测试 基于FPGA的IRIG-B码基带产生电路的设计与实现

第四章 电路的仿真与调试

在之前的几个章节中,已经详细介绍了电路的理论依据、整体方案、各模块的原理以及其实现方法,并且给出了一些仿真结果。但是为了观测结果的方便,有些模块并没有使用符合整体电路需求的仿真参数。为进一步验证电路的性能,本章首先介绍电路的开发平台以及使用的仿真测试工具,然后分别给出编码电路和发送电路的仿真结果。

4.1开发平台介绍

本文中使用了Altera公司的开发板DE0作为主要开发平台,DE0开发板的主芯片是Cyclone III的 EP3C16F484C6 器件。其中包括15,408个逻辑单元(LEs)、504Kbits RAM、56个内嵌乘法器、56M9K内存模块以及4个锁相环,其片内资源完全可以满足本文电路设计的需求。开发板同时支持JTAG模式和AS模式的下载方式,拥有内建的USB Blaster电路,外部有RS232接口(适用于DB9 Serial Connector)、按钮/拨动开关、LEDs等,使用灵活、方便。其时钟输入主要由50MHz晶振提供 [51]。

在前面的第二章和第三章中搭建的所有电路模块都是在Quartus II 11.1开发平台上进行的,首先使用Verilog HDL语言编程实现模块功能,然后由Quartus II 11.1自动完成布局布线。文中主要使用QuartusII 11.1 SignalTap II Logic Analyzer(内嵌的逻辑分析仪)进行功能仿真,得到仿真结果。

4.2 电路在FPGA中的实现及仿真

本电路将整个电路集成到一块FPGA芯片上,所有工作都是在DE0开发板上进行的,输入端通过UART接口从GPS接收到的时间信号,该时间信息在FPGA中经过IRIG-B编码后通过扩频扩展到更高的频带,然后由载波信号调制实现混频,得到发送信号并输出。图4-1是本文的整体电路框架。

42

基于FPGA的IRIG-B码基带产生电路的设计与实现 第四章 电路的仿真与测试

GPS 授时IRIG_B编码FPGAIRIG_B(DC)扩频Output调制载波(5M) 图4-1 整个电路框架结构 整体电路主要完成的是实现IRIG-B时间编码和基带信号产生的功能。在同一块开发板上完成所有工作,简化了电路搭建的繁琐,也使得功能实现更加方便、便宜。编码模块电路和发送电路模块将在后面的几个小节中给出电路及其仿真结果。 4.2.1 编码电路实现及仿真 编码电路实现了将接收到的时间信息进行IRIG-B编码的功能。为了能够保证产生的IRIG-B(DC)码与1pps标准脉冲信号同步,电路中使用了工作频率较高且性能稳定的FPGA芯片。还构建了PLL锁相环IP核,提高了电路性能。 图4-2编码电路原理图 43

第四章 电路的仿真与测试 基于FPGA的IRIG-B码基带产生电路的设计与实现

另外本文中使用了GPS授时,与其它授时方式不同,GPS授时不受地域条件的限制,因此我们在任何天气情况下的任何时间任何地点都能接受到 GPS信号,而且其实现简单、方便。

图4-2是编码电路在Quartus II 软件中的电路原理图。其中,clk_100pps和clk_1pps分别是100pps脉冲信号和1pps脉冲信号,IRIG_B_OUT是IRIG-B时间码的输出。电路图完成后,进行编译、下载到FPGA中,可得到IRIG-B码编码波形图如图4-3所示:

图4-3 IRIG-B码编码SignalTapII功能验证测试结果

从图上看到波形时间为2014年03月18日20点41分03秒。由验证得到的结果,我们可以得出码字所表示的时间信息为是77天20点41分03秒,得出的结果基本符合。

图4-4是编码电路占用芯片资源的情况。总共使用了720个LE (逻辑单元),549个寄存器和1个PLL(锁相环),没有使用到嵌入式乘法器。

44

基于FPGA的IRIG-B码基带产生电路的设计与实现 第四章 电路的仿真与测试

图4-4 发送电路占用芯片资源的情况

图4-4是编码电路占用芯片资源的情况。总共使用了703个LE (逻辑单元),537个寄存器和1个PLL(锁相环),没有使用到嵌入式乘法器。

4.2.2 发送电路实现及仿真

发送电路部分实现信号的数字调制,便于信号的发送。其主要由差分编码、直接序列扩频、BPSK调制等模块组成。

图4-5发送电路原理图

图4-5是发送电路在Quartus II 软件中的电路原理图。电路图完成后,进行编译、下载到FPGA中,可得到发送电路波形图如图4-6所示。图中,clk_1M是分频得到的1MHz的时钟信号,IRIG-B是在编码模块中输出的IRIG-B时间码,diff是差

45

第四章 电路的仿真与测试 基于FPGA的IRIG-B码基带产生电路的设计与实现

分编码信号,gold_out是生成的GOLD码序列,encode是直接序列扩频后得到的信号,sinout是NCO生成的5MHz的载波,out是输出信号。可以看出encode输出为“0”时,sinout与out同相;encode输出为“1”时,载波相位发生翻转,即sinout与out反相。验证结果正确。

图4-6发送电路验证测试结果

图4-7是发送电路占用芯片资源的情况。总共使用了1049个LE (逻辑单元),858个寄存器,没有使用到嵌入式乘法器和PLL(锁相环)。

图4-7发送电路占用芯片资源的情况

46

基于FPGA的IRIG-B码基带产生电路的设计与实现 第五章 总结与展望

第五章 总结与展望

本文应用Quartus II软件研究了IRIG-B码基带产生电路的设计与实现,基于FPGA开发板完成所有逻辑电路的功能,将全部数字控制和处理电路集成在同一个芯片中。达到了体积小、操作灵活方便、易于设备检修和系统调试等要求。整个电路首先接收从型号为GARMIN 16x-lvs的GPS接收机接收时间信息(包括日期和时间)。为了确保时间编码与标准脉冲信号的同步以及得到IRIG-B编码所需要的BCD码,接着将送入FPGA的时间信息进行预处理,然后进行IRIG-B编码。最后,为了便于信息发送,所以将编码电路输出的IRIG-B时间码进行扩频和调制,即将信号扩展到更高的带宽并与正弦载波混频。从而降低信号传输的干扰,提高电路的可靠性。从上一章的实验结果可知,由GPS接收的时间码能通过编码得到正确的B码时间信息,并经过数字处理后准确发送出去,满足设计要求。

如今,用分立元件研制和开发的IRIG-B码时统系统存在着一些缺陷。例如,体积较大、成本较高、保密性较低、电路比较复杂、集成度较低等。而采用FPGA实现B码的编码和调制技术,在很大程度上解决了以上问题,其精度也可以满足绝大多数要求。本设计根据近年来常用的IRIG-B编码的实际情况,着眼于通信方面的实际应用,结合具体项目开展研究,对通信技术的发展和现代化建设具有深远的意义。

47

参考文献 基于FPGA的IRIG-B码基带产生电路的设计与实现

参考文献

[1] 刘凯.时间统一技术研究及应用 [D].西安电子科技大学,2010.

[2] 杨蕾.基于FPGA的靶场时间统一系统.中科院国家授时中心硕士,2004.05. [3] 王鹏.基于FPGA的绝对时间同步系统的设计研究.哈尔滨工程大学硕士论文,

2007年。

[4] 童宝润.时间统一系统.北京:国防工业出版社,2003.09:199-203. [5] 武欣.基于GPS宽频带地震仪的时间同步系统设计.长春:吉林大学硕士学位论

文,2006.

[6] 贺洪兵. 基于GPS高精度的时间同步系统研究设计.成都:四川大学硕士学位论

文,2005 .

[7] 周群彪, 苟大举等. GPS精密授时系统的研制. 四川大学学报,1999 .08. [8] ZHOU Guo-ping, XING Can-hua .The design of IRIG-B serial time code

format circuit [J]. China Academic Journal Electronic Publishing House, 2005, 34(2): 88-90.

[9]童宝润.IRIG时间码及其在时间统一系统中的应用 [J]. 飞行器测控技术,1987. [10] 吴炜,周烨,黄子强.FPGA实现IRIG-B(DC)码编码和解码的设计[J].电子

设计工程,2010,18 (12) :162-169.

[11] 郭连平,田书林,蒋俊,等.高速数据采集系统中触发点同步技术研究

[J].电子测量与仪器学报,2010,24 (3) :224-229.

[12] 王瑞.嵌入式靶场同步测试装置的研究[D].长春理工大学,2009. [13] 黄赛帅.靶场时统设计[D].南京理工大学,2009.

[14] 周润景, 苏良碧.基于Quartus II数字系统的Verilog HDL设计实例详解 [M].北

京:电子工业出版社, 2010 .05.

[15] 李羚梅, 吴志勇等. 基于 Nios II 处理器的B码解调设计[J]. 计算机工

程.2010, 36(9).

[16] Yan Chaojun, Shen Xiaoping, Xu Jiayi. Design of IRIG-B code DC output

module base on CPLD and AVR MCU [J]. IEEE . 2010.

48

本文来源:https://www.bwwdw.com/article/x6bo.html

Top