毕设论文.docx
《毕设论文.docx》由会员分享,可在线阅读,更多相关《毕设论文.docx(26页珍藏版)》请在冰点文库上搜索。
毕设论文
摘要
随着信息技术高速发展,数据传输已经成为日常生活和专业领域的基础,人们对数据传输效率和可靠性的要求越来越高。
通信信道存在固有的噪声和衰落特性,信号在经信道传输过程中不可避免地会受到干扰从而出现信号失真,同时由于原始数据的数据量较大不利于存储和处理器,通常采用一定的数据编码方式对原始数据进纠检错或压缩编码实现数字信号传输和处理过程中的抗干扰或减少数据量。
IRIG(Inter-RangeInstrumentationGroup)是美国靶场司令部委员会的下属机构,称为“靶场时间组”。
IRIG-B码(DC)以其实际的优越性能而成为时间统一设备最佳选择的标准码型。
时间统一系统是武器系统试验测试、通信、气象、航天、工业控制、电力系统测量与保护等领域的关键技术,主要为其他参试测试设备提供标准时间信号和标准频率信号。
随着现代信息技术的不断发展,对标准化时间系统设备的要求越来越高,IRIG-B码以其优越性成为时间系统设备的首选。
而对信号的帧结构的可编程度、集成度的需求越来越高,用于时间系统的IRIG-B码源的设计也趋于高度集成化。
FPGA可编程逻辑器件的规模比较大,适合于时序、组合等逻辑电路应用场合,同时具有实时性好、可靠性高、成本低、可编程等优势。
本文从IRIG-B码编解码器入手,用硬件描述语言设计相应的编解码器的硬件电路,构造FPGA硬件设计原型并进行相关性能测试。
关键词:
数据传输,IRIG-B码,编码器,解码器,FPGA
ABSTRACT
Withtherapiddevelopmentofinformationtechnology,datatransmissionhasbecomethebasisofthedailylifeandareasofexpertise,increasinglyhighdemandforefficiencyandreliabilityofdatatransmissionarerequired.Becausetheinherentnoiseandfadingcharacteristicsincommunicationschannel,Signalbythechanneltransmissionwillinevitablybedisturbedandthusgiverisetosignaldistortion.Atthesametime,therawdataisnotconducivetostorageandprocessduetoitslargeamount,wecommonlyusedataencodingtotheoriginaldataforerrorcorrectingorcompressing,aimedtorealizeAnti-interference,orreducetheamountofdataindigitalsignaltransmissionandprocessing.
IRIG(Inter-RangeInstrumentationGroup)iscommission'ssubsidiarybodiesofheadquartersintheUnitedStatesrange.Wecallit"rangtimegroup".IRIG-Bcode(DC)becomesthebestchoiceoftime-unifieddeviceinstandardpatterns,becauseofitsactualsuperiority.
Thetime-unifiedsystemisakeytechnologyoftheweaponsystemtestingandthemeasurementandprotectionofcommunications,meteorology,aerospace,industrialcontrol;itprovidesstandardtimesignalsandstandardfrequencysignalforothertestequipment.WiththecontinuousdevelopmentofmodernIT,werequiredhigherandhigherdemandforstandardizedtimesystemequipment,IRIG-Bcodebecomesthepreferredtimesystemequipmentwithitssuperiority.IRIG-Bsourcecodeusedfortimesystemtendstobehighlyintegratedwiththegrowingdemandfortheprogrammabledegreesandintegrationoftheframestructureofsignal.FPGAprogrammablelogicdeviceshavealargescale;itissuitableforapplicationsinthetiming,combinationlogiccircuits.Alsohastheadvantageofreal-time,highreliability,lowcost,programmable.RIG-Bcode(DC)becomesthebestchoiceofthestandardpatternofthetimesystemequipmentwithitssuperiority.ThisarticlestartfromtheIRIG-BCodec,ConstructFPGAprototypeofhardwaredesignandconducttherelatedperformancetesting,accordingtotheappropriatecodechardwarecircuitdesignedwithhardwaredescriptionlanguage.
KEYWORD:
datatransmission,theIRIG-Bcode,encoder,decoder,FPGA
目录
第一章绪论4
1.1基于FPGA的IRIG-B编解码器概述4
第二章IRIG编码器模块设计7
2.1系统原理框图8
2.2时钟脉冲模块10
2.3IRIG-B(DC)编码的实现12
2.4编码器仿真12
第三章IRIG-B解码模块设计15
3.1解码方式的选择15
3.2解码器的总体框图16
第四章全文总结24
参考文献25
致谢26
毕业设计小结27
第1章绪论
1.1基于FPGA的IRIG-B编解码器概述
1.1.1IRIG-B码特性
为提高整个系统时间的同步精度,以便为测量设备提供可靠的时间信息和标准频率信号,本次毕业设计课题主要研究一种基于FPGA的IRIG-B编解码器的设计与实现方法。
新系统基于模块化设计,其中编码部分完成标准时间信息及相应的BCD码的产生,并在标准时间BCD码中加入帧开始标志位、位置识别标志和索引标志识别,从而将BCD格式的时间信息变成IRIG-B格式码,同时数据并串处理可通过FPGA的一个I/O端口发送串行数据。
解码部分则完成串行IRIG-B格式码的接收并判断帧开始标志位和位置识别标志,再解出相应原始时间信息并存储到双端口的RAM中,最后以并行方式输出。
IRIG时间标准有两大类:
一类是并行时间码格式,这类码由于是并行格式,传输距离较近,且是二进制,因此远不如串行格式广泛;另一类是串行时间码,共有六种格式,即A、B、D、E、G、H。
它们的主要差别是时间码的帧速率不同,B码的主要特点是时帧速率为1帧/s;而且携带信息量大,经译码后可获得1、10、100、1000c/s的脉冲信号和BCD编码的时间信息及控制功能信息;此外,B码的分辨率高,调制后的B码带宽能适用于远距离传输,它分为直流、交流两种,而且接口标准化,国际通用。
1.1.2IRIG-B码简介
B码是一种串行的时间格式,分为直流码(DC码)和交流码(AC码),。
直流码可以实现较高精度时间同步,适用于近距离传输,而交流码则适用于较远距离传输,本文讨论的是直流码。
为了更好地描述B(DC码)的特性,这里用码元,索引计数,位置识别标志,码字等参数对其进行描述。
1码元
时间格式里的每个脉冲成为码元,。
码元的“准时”参考点是其脉冲前沿,马元的重复速率称为码元速率。
B码的码元速率为100pps。
2位置识别标志
B码的位置识别标志的宽度为8ms,位置识别标志Po的前沿在帧参考点前一个索引计数间隔处,以后每10个码元有一个位置识别标志,分别分P1~P0.B码的位置识别标志的重复速率为码元速率的十分之一,即10pps.
3参考码元
时帧的参考码元Pr是有一个位置识别标志和相邻的参考码元组成。
B码的参考码元的宽度为8ms,时帧的“准时”参考点是参考码元的前沿。
4码字
所有的时间格式都是脉宽码。
B码的二进制“1”和“0”的脉宽分别为5ms和2ms。
5时帧
一个时间格式帧从帧参考码元开始,由两个相邻帧参考码元间的所有码元组成。
时帧的重复速率为时帧速率,其周期为1s。
⑥时间编码
从帧参考码元开始分别为第0、1、2.....99个码元。
在B码时间格式中含有秒、分、时、天等信息,其位置在P0~P5间。
时间信息中,高电平用5ms脉冲表示,低电平用2ms脉冲表示,其中秒信息占用第2、3、4、5、7、8、9码元;分信息占用第11、12、13、14、16、17码元;时信息占用第20、21、22、24、26、27码元;天信息占用第31、32、33、34、36、37、38、38、41、42码元;P6~P10包含其他控制信息(这里没有应用)。
另外,第6、15、25、35、…、95码元为索引标志,用2ms脉冲宽度表示,固定为“0”。
时、分、秒均用相应BCD码表示,低位在前,高位在后,个位在前,十位、百位在后。
1.1.3IRIG-B码的格式与原理
IRIG-B编码模块主要利用外部时钟脉冲信号来触发,它将用于产生IRIG-B码的各种门电路集成在一个芯片,以产生标准的IRIG-B串行时间码并向设备终端发送,从而完成DC码编码。
通过设备终端对接收到的IRIG-B码进行解调,便能产生出系统所需的标准时间和各种控制信号,然后再存储到相应的双端口RAM中。
IRIG-B码的时帧周期是1s,包含100个码元,每个码元周期为10ms,即B码的码元速率为100pps。
B码有3种码元,位置识别标志P,二进制“1”和“0”,脉宽分别为8ms、5ms和2ms。
位置识别标志P0的前沿在帧参考点前一个索引计数间隔处,以后每10个码元有一个位置识别标志,分别为P1、P2、……、p9、Po,Pr为帧参考点。
脉冲信号如图1-1所示。
图1-1IRIG-B码结构图
一个时间格式帧从帧参考标志开始,由相邻两个帧参考标志之间的码元组成,每个时帧的准时为该时帧参考标志的前沿。
如果连续出现两个8ms的位置识别标志,则该时帧的开始是位于第2个8ms的位置识别标志前沿。
IRIG-B码中第1个字段(PR~P1)传送的是秒信息,第2个字段(P1~P2)传送的是分信息,第3个字段(P2~P3)传送的是时信息,第4、5个字段(P3~P5)传送的是天数信息,即从1月1日开始计算的年积日,所以在第5个字段结束后时间信号已经解析并保存在寄存器中。
另外,在第8个字和第10个字中分别有3位表示上站和分站的特标控制码元。
不仅包含丰富的时间信息,也包含必要的控制信息和监测信息,方便后端用户进行使用。
FPGA对B码的编码和解码时根据其格式和原理使用计数器和状态机来实现,其中会涉及到多个时钟信号,这些时钟信号都是由FPGA外部晶振40MHz的时钟分频而来。
编码时钟为5MHz;解码的时钟有10kHz、10MHz,同时会输出时间信号,即天、时、分、秒信号。
IRIG-B码的时间格式帧如图1-2所示。
第2章IRIG编码器模块设计
我国目前靶场测量,工业控制,电力系统测量与保护,计算,通信,气象等测试设备均采用国际标准IRIG-B码格式的时间码作为时间同步标准。
B码是一种串行的时间格式,分为直流码和交流码。
在此,我们研究的是一种基于FPGA并执行IRIG-B标准的DC编码技术,与基于MCU或者DSP和数字逻辑电路实现的编码方法相比,该技术可以大大降低系统的设计难度,降低成本,提高B码的精确性和系统灵活性。
在此,组合GPS引擎和FPGA,得到B码的编码输出,直接采用GPS引擎的100pps信号触发输出B码的每个码元,利用从100pps中恢复的1pps信号提供B码的时间参考点。
DC编码和AC数字调制均由纯硬件逻辑通过查找表实现,它能使每个码元的上升沿都非常精准,都可以作为百分秒的时间参考点,而计时链的预进位功能则保证了绝对时间的精确,不仅可以满足实时系统对时间同步,还可以实现多节点的数据采集严格同步,为分析和度量异步发生的事件提供有方的支持。
由B码的特点可知,B码能否正确产生,关键在于能否产生包含各种信息的2进制编码:
在一帧的适当位置插入时间码,帧同步码,和帧标志码,并实现并串转换。
B码的产生的原理如图2-1所示:
图2-1B码产生原理框图
FPGA完成这一帧的编码后,不断搜索下一个pps_in上升沿的到来,GPS模块每一秒都会触发pps_in的上升沿,FPGA一旦发现上升沿,即刻进入下一秒的编码流程。
这样编程的好处是B码大致上可以与1pps同步,延迟少且方便测试。
选用5MHz时钟的时候,其最大误差为200ns。
2.1系统原理框图
设计授时系统需要一个精准时基。
在此利用精密授时型GPS引擎M12T作为系统时基,利用AlteraFPGA检测M12T输出的百分秒(100pps)同步信号和经串口输出的绝对时间信号,编码后输出到DC/AC接口模块,再输出到物理链路,系统结构图如图2-2所示。
图2-2基于FPGA的IRIG-B编码器系统框图
上述系统首先实现了B码直流编码,而后在直流码的基础上实现交流调制,以得到交流码,同时提供恢复每秒脉冲数输出和隔离RS232串行口输出且符合Motorola格式的时间码,以及数码管的时间显示。
时间显示部分用FPGA实现都比较简单。
2.11RS232:
个人计算机上的通讯接口之一,由电子工业协会(ElectronicIndustriesAssociation,EIA)所制定的异步传输标准接口。
通常RS-232接口以9个引脚(DB-9)或是25个引脚(DB-25)的型态出现,一般个人计算机上会有两组RS-232接口,分别称为COM1和COM2。
2.12GPS授时模块M12T
M12接收器是Motorola公司优秀ONCORE家族中的新成员,广泛用于各类定位、导航、授时设备中,拥有全GPS行业内最快的初次定位时间和重捕获卫星的时间。
M12T是针对GPS授时推出的定时精度更高的增强型产品。
M12T具有12个并行通道,可同时跟踪12颗卫星,重捕获时间小于1.Os。
当拥有当前天历、位置、时间和星历数据时。
2.13UART:
UniversalAsynchronousReceiver/Transmitter,通用异步接收/发送装置,UART是一个并行输入成为串行输出的芯片,通常集成在主板上,多数是16550AFN芯片。
2.14FPGA和DAC
FPGA采用AlteraCycloneⅡEPC2C5T144,该芯片有4608个LE,26个M4K.两个模拟锁相环。
DAC采用单通道、单电源、自带基准的MAX5712。
MAX5712是微型引脚,12b解析度,片上精密输出放大器提供满摆幅输出。
MAX5712用兼容SPITM/QSPITM/MICROWIRETM和DSt标准接口的3线串行接口。
所有输入都兼容于CMOS逻辑,并经过施密特触发器缓冲,允许直接接光电耦合器。
MAX5712含有上电复位(POR)电路,确保上电时DAC处于零电压输出状态。
2.2时钟脉冲模块
2.21基准时刻和脉冲提取
要保证B码每个码元的上升沿时刻准确,需要100pps的精确时基和pps的参考点。
一般的做法是用pps作为基准,每个码元的起点由前两个秒脉冲的间隔等分得到。
这种方法使用上一时刻来预测下一秒,每秒脉冲有抖动时会导致最后一个码元宽度不足或超过10ms,这将无法利用B码来实现时间同步和数据等间隔同步的采集。
我们将上文提到的M12T模块产生的100pps信号作为每个码元的起始时刻,然后再从100pps信号中恢复出1pps。
由于B码参考标记Pr=1pps的上升沿,所以这种方法既保证Pr的准确性,又保证各个码元和索引标记时刻的准确性。
M12T输出的100pps信号(以下称PPMl2)每个脉冲的上升沿时刻准确,周期10ms,在pps的参考点,脉冲宽度为6~8ms,其他时刻2~4ms,脉冲宽度不是关注的重点。
B码的每个码元恰好与上述100pps信号对应。
首先在FPGA中构建一个模100的码元计数器MMH和一个高电平脉冲宽度检测器,通过下面的方法和步骤可以恢复pps。
①在PPMl2信号的上升沿复位宽度检测器,高电平计时,在下降沿停止并输出Tb;
②在PPM12下降沿检查Tb,当Tb>6ms时
IfMMH=99
ThenMMH=O
Else
MMH=MMH+1
③在PPMl2信号的上升沿检查MMH,如果MMH=0,则当前脉冲的上升沿是参考点Pr,触发输出8ms高电平脉冲作为pps信号,重复步骤
(1)~(3),在PPM12信号上升沿检查MMH;如果MMH的个位为9或者MMH=0,则当前脉冲标记为索引脉冲,即输出8ms高电平。
到此,就完成了M12T模块从100pps信号中恢复1pps信号的过程。
2.22绝对时间获取
通过在FPGA上构建一个UART与M12T互连。
为了简化FPGA对M12T的配置和输出时间的获取,将UART分成两部分设计,即发送模块txmit和接收模块rcvr。
发送模块用一个M4K设计一个512×8FIFO,在系统复位后的若干个时钟,利用一个状态机将M12T的配置数据写入FIFO;然后通过txmit模块配置M12T,配置结束后,UART模块将M12T的时间码转发到外部RS232接口,同时可以转发外部接口的配置数据到M12T。
接收模块采用寄存器模式,只接收M12T发来的绝对时间信息,这样后面的编码模块可以直接使用这些时间信息。
做法如下:
设计一个接收计数器rx_count,每接收一个字节计数器自加,并根据rx_count决定是否保存时间码。
由于M12T每秒中发送一帧,故在检测到pps时复位该计数器。
M12T在每个1pps的上升沿过后送出当前时间,而FPGA通过UART接收到时间时,B码当前帧已经启动,据此形成的B码要等下一个pps参考点之后才可以发送,所以对接收的时间要进行预进位处理。
时间模块由CPU进行处理,提取系统的时间信号,即秒信号sec_bed[7:
0],分信号min_bed[7:
0],时信号hour_bed[6:
0],天信号day_bed[10:
0],作为FPGA的输入信号,这些信号都是并行的信号,并且都是BCD码,由2.2节中生成。
GPS模块作为编码系统提供1pps信号上升沿,及秒同步信号,也作为FPGA的输入信号。
编码寄存器传输级视图如图2-3:
图2-3编码寄存器传输级视图
由图2-3所知,FPGA对IRIG-B码的编码主要由两个模块构成,一个为时钟分频模块,另一个为数据处理模块。
系统的时钟为40MHz,通过分频,我们得到5MHz的时钟,所以此处的误差最大为200ns。
当GPS模块产生1个pps_in信号后,系统的时间信号同时进入FPGA。
IRIG-B码的诞生,就是致力于时间统一,所以,为了使得产生的IRIG-B码和GPS产生的pps_in信号精确同步,我们将IRIG-B码的准时位置对准GPS模块发出
1pps信号上升沿。
B码编码的状态机流程图如图2-4所示:
图2-4IRIG-B编码的状态机流程图
2.3IRIG-B(DC)编码的实现
通过对B码的分析可以发现,秒的最低位出现在MMH=1处,即第一个码元,分的最低位出现在MMH=10处,小时的最低位出现在MMH=20处。
按照IRIG-B(DC)码编码格式图,容易得出时间寄存器输出时刻和码元计数器MMH之间的关系。
由于码元周期固定为10ms,可以这样实现编码,定义一个模10的计数器MML和逻辑向量CMP(9downto0)来表征一个码元在10ms的状态。
MML每ms加1,同时根据MML的值,选择CMP的一位更新输出状态,步骤如下:
①构建模10计数器MML,以及一个1ms定时器:
②在PPM12信号的上升沿复位MML和1ms定时器;
③1ms定时器溢出时,MML加1;
④根据MML和CMP输出编码信号IRIG_B_OUT,即IRIG_B_OUT=CMP(MML):
⑤在PPM12的上升沿根据第3.1节所得码元计数器MMH重新加载CMP。
2.4编码器仿真
根据图1-2所示B码脉冲序列宽度图谱,可知IRIG-B码中第1个字段(PR~P1)传送的是秒信息,第2个字段(P1~P2)传送的是分信息,第3个字段(P2~P3)传送的是时信息,第4、5个字段(P3~P5)传送的是天数信息,现以秒的B码串产为例,说明VHDL的变成设计过程,流程图如2-5所示。
图2-5秒时间B码生成流程图
分,时,天的流程图可以参考秒的设计流程来设计,将100个码元对应的脉冲串按照图1-2的脉冲宽度输出,就能形成整整一个帧IRIG-B(DC)码的脉冲串。
用xilinx软件进行仿真,得到的结果如图2-6:
图2-6FPGA对IRIG-B码秒信号的编码仿真波形
上图中,第一行信号是复位信号,低电平有效;第二行信号是分频后的时钟信号5MHz;第三行信号是40MHz的晶振时钟;第四行信号是输入信号pps_in;第五行信号是输入秒信号,此时秒信号为8位的二进制数10001000;最后一行信号就是B码的编码信号。
当pps_in上升沿到来时,FPGA对B码在5MHz时钟的上升沿处立即产生高电平,首先是B码输出位置识别标志Pr(高电平8ms,低电平2ms),接着8位二进制的秒信号从低位至高位输出,实现计数器计数编码。
然后FPGA根据状态机的状态运行,直到下一个pps_in上升沿来临。
第3章IRIG-B解码模块设计
3.1解码方式的选择
在数字同步网络中,B码的时间提取有软件解码和硬件解码两种方式,软件解码是将输入波形经过采样后送给CPU,CPU按一定得算法对输入的编码进行计算,从而提取时间。
采用软件解码时,CPU对时间的计算是对输入的编码进行完整采样后,并且经过一定得计算时延后