版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上班 级 2-0712 学 号 本科毕业设计论文 题 目 曼彻斯特编码和解码的 FPGA电路设计 学 院 电子工程学院 专 业 电子信息工程 学生姓名 吴一龙 导师姓名 孙万蓉 专心-专注-专业摘要在电信领域,曼彻斯特码是一种数据通讯线性码,它的每一个数据比特都是由至少一次电压转换的形式所表示的。曼彻斯特编码因此被认为是一种自定时码。自定时意味着数据流的精确同步是可行的。每一个比特都准确的在一个预先定义时间时期的时间中被传送。曼彻斯特编码已经被许多高效率且被广泛使用的电信标准所采用,例如以太网电讯标准. 曼彻斯特编码是一种超越传统数字传输的信道编码技术,由于其具有隐含时
2、钟、去除了零频率信号的特性使得它在数据传输等领域中得到广泛的应用。论文论述了曼彻斯特码的原理,介绍了其编码规则。对其特点和应用范围进行了说明。提出了曼彻斯特编解码方案,重点运用VHDL语言对电路进行了仿真。系统成功实现了曼彻斯特码数据传送的要求而且电路简单,性能稳定。关键词:曼彻斯特码,差分曼彻斯特码,FPGAAbstractThe Manchester code is one kind of data communication linearity codes. All its dada bits are shown by at least once voltage changing. Ma
3、nchester code is called self-acting timing code. Self-acting timing means the feasibility of the precise synchronization of data stream. Each bit is transmitted accurately in the period that defined in advance. Manchester codes have been adopted by many telecom standards that have high efficiency an
4、d are been used widely, such as Ethernet communication standard. Manchester code is a coding technology for channel that exceeds the traditional data transmission. The characteristics that including crytic clock and eliminating the signals in zero frequency have made it been used in the detecting we
5、ll of oil widely. The thesis mainly discusses the theory of the Manchester code and its coding rules, it also explains its characteristics and use range. The theory puts forward the Manchester coding and decoding proposals and conducts the hardware simulating on the synchronized signal pick-up modul
6、e with the VHDL language. This proposal has successfully met the requirement of Manchester code date transfer and it is also sample in the circuit and stable in the capability. Keyword: Manchester Code Differential Manchester Code FPGA目录第一章 绪论1.1 项目背景曼彻斯特编码是一种自同步的编码方式,也就是说其时钟同步信号就隐藏在数据波形中。在曼彻斯特编码中,每
7、一位的中间有一跳变,位中间的跳变既作为时钟信号,又作为数据信号:从高电平到低电平的跳变表示“0”,从低电平到高电平的跳变表示“1”。还有一种是差分曼彻斯特编码,每位中间的跳变仅仅提供时钟定时,而用每位开始时有跳变为“0”,无跳变为“1”。由于曼彻斯特码既能提供足够的定时分量,又无直流漂移,编码过程相对简单,因而曼彻斯特码被广泛应用于数据传输、局域网以及测井技术等领域。本课题设计了一种利用曼彻斯特编码实现数据传输的通信系统。本文的主要工作就是研究曼彻斯特编解码器及差分曼彻斯特编解码器的设计及实现。1.2 项目研究内容和任务本项目主要研究的内容是曼彻斯特编解码器及差分曼彻斯特编解码器的设计和实现。
8、为了能够顺利地完成编解码任务,实现数据传输它应该包括这样几个部分:编码电路,解码电路,以及同步信号提取电路。在本次设计中,为了验证电路系统能否顺利完成曼彻斯特码的编解码功能,我们采用Quarters 软件对所编VHDL程序进行仿真,然后再由FPGA芯片完成硬件的仿真。1.3 论文各部分主要内容 本篇论文的第一章是绪论,初步介绍了实验的背景及目标,第二章介绍了曼彻斯特码的原理、规则及应用,第三章对曼彻斯特编解码电路进行了设计,第四章对差分曼彻斯特编解码电路进行了设计,第五章详细说明了使用Quarters 软件和FPGA硬件进行仿真的过程,第六章是对曼彻斯特码和差分曼彻斯特码的优缺点进行分析,并与
9、几种常见的通信编码进行比较,第七章是对本次设计的小结和展望。第二章 曼彻斯特码与差分曼彻斯特码的原理及其编码规则2.1 曼彻斯特码简介曼彻斯特编码,也叫做相位编码(PE),是一个同步时钟编码技术,在以太网媒介系统中,被物理层使用来编码一个同步位流的时钟和数据。它的每一个数据比特都是由至少一次电压转换的形式所表示的。曼彻斯特编码因此被认为是一种自定时码。自定时意味着数据流的精确同步是可行的。每一个比特都准确的在一个预先定义时间时期的时间中被传送。这样的编码方式可以在长时间没有电平跳变的情况下,仍然对任意的二进制数据进行编码,并且防止在这种情况下同步时钟信号的丢失以及防止低通模拟电路中低频直流飘移
10、所引起的比特错误。同时,如果保证传送的编码交流信号的直流分量为零并且能够防止中继信号的基线漂移,那么就很容易实现信号的恢复和防止能量的浪费。另外,曼彻斯特码还具有丰富的位定时信息。2.2 曼彻斯特码的原理及编码规则曼彻斯特码是通过电平的跳变来对二进制数据“0”和“1”进行编码的,对于何种电平跳变对应何种数据,实际上有两种不同的数据约定:第一种约定是由G. E. Thomas,Andrew S. Tanenbaum等人在1949年提出的,它规定“0”是由低到高的电平跳变表示,“1”是由高到低的电平跳变;第二种约定则是在IEEE 802.4(令牌总线)以及IEEE 802.3 (以太网)中规定,按
11、照这样的说法,由低到高的电平跳变表示“1”,由高到低的电平跳变表示“0”。在实际工程上,这两种约定在一定范围内均有应用。为了便于描述,若无特殊说明,本篇论文中的曼彻斯特码的编码规则均采用第二种约定,即从低电平跳变到高电平表示“1”,从高电平跳变到低电平表示“0”。普通数字信号与曼彻斯特编码对比如图2.1所示。图2.1 数字信号与曼彻斯特编码波形2.3 差分曼彻斯特码的原理及编码规则差分曼彻斯特码是对曼彻斯特码的一种改进,这种编码方式保留了曼彻斯特编码自含时钟编码的优点,仍将每比特中间的跳变作为同步之用,但与曼彻斯特编码不同的是,每比特的取值根据其开始处是否出现电平的跳变来决定。差分曼彻斯特编码
12、的每一位中间都会发生一次跳变,每位开始时发生跳变表示“0”,不发生跳变则表示“1”。差分曼彻斯特码与普通曼彻斯特码的波形比较见图2.2。图2.2曼彻斯特码与差分曼彻斯特码2.4 曼彻斯特码的应用范围曼彻斯特码已经被许多高效率且被广泛使用的电信标准所采用,例如以太网电讯标准。曼彻斯特编码是一种超越传统数字传输的信道编码技术,由于其具有隐含时钟、去除了零频率信号的特性,这使得它在石油勘探测井中也得到广泛的应用。2.4.1曼彻斯特码在局域网中的应用曼彻斯特码由于其特殊的性能,被广泛应用于小功率无线传输系统中。曼彻斯特编码是申行数据传输的一种重要的编码方式。曼彻斯特编码最大的优点是:数据和同步时钟统一
13、编码,曼码中含有丰富的时钟信号,直流分量基本为零,接收器能够较容易恢复同步时钟,并同步解调出数据,具有很好的抗干扰性能,这使它更适合于信道传输。IEEE802.4令牌总线标准采用了此种传输技术。曼彻斯特编码被使用作一个以太网局域网的物理层,对于一个以太网局域网用同轴电缆作为传输介质,额外的带宽不是重要的问题。CAT5e缆线的带宽有限,为了达到100 Mbps的数据速率需要更高效率的编码方法,必要使用一个4b/5b MLT编码方案。它使用(代替曼彻斯特编码使用的两个电平值)三个信号电平值。因此可以实现100 Mbps信号的数据速率且只需要占仅31 MHz的带宽. IEEE-802.3u规范采用三
14、电平符号传输系统取代10BaseT的二电平曼彻斯特编码,能实现快速以太网的兼容性。这种方案采用一种最初为FDDI(光纤分布式数据接口)系统开发的4B/5B编码。这种编码将4位数据半字节转换为5位编码,用以实现错误检测和增加控制码,例如数据流起始和终止定界符。将符号率提高到125 Mbps,可补偿4B/5B内在的20%数据传输效率,但是这种带宽增加所产生的频谱会被曼彻斯特编码扩展到数百兆赫。衰减损耗和EMC问题使这种方法无法使用,所以100BaseTX使用了MLT-3(多电平转换三电平)载波。吉比特以太网使用五电平值和8b/10b编码方案,在有限的电缆带宽下更有效率,在100 MHz的带宽以内提
15、供1Gbps的数据速率。2.4.2曼彻斯特码在测井系统中的应用测井技术发展到今天,已经发生了很大的变化:一是由模拟测井技术发展到了数字测井技术;二是由数字测井技术发展到了数控测井技术。进入90年代,成像测井技术获得了较大的发展,测井系统中需要传送的数据信息量越来越大,为此必须解决数据的高速传输与正确接收两个问题,如相关编码技术、缆芯多路复用技术、基带均衡技术等用以提高数据传输速率和降低误码率.在测井数据传输系统中,由于曼彻斯特码既可以提供足够的定时分量,又无直流漂移,编码过程相对简单,因而曼彻斯特码是测井数据传输中常用的编码方式之一。目前,在实际的工程测井中,常采用曼彻斯特编译码器HD-155
16、30把测井数据转换为曼彻斯特码以及把曼彻斯特码解码为数据。然而由于HD-15530发送数据输入及接受数据输出均为串行方式,并且曼彻斯特编码、解码是以16位数据为基本单位,逻辑上要求使用16位的并入串出移位寄存器和16位的串入并出移位寄存器与单片机接口,这样硬件结构比较复杂,仪器成本较高.考虑到测井数据传输速率不高,可用单片机软件来实现曼彻斯特编码和解码功能。在油田测井中,井下仪在井下采集大量信息,并传送给地面测井系统;但井下仪器到地面段信道的传输性能并不好,常用的NRZ码不适合在这样的信道里传输,而且NRZ码含有丰富的直流分量,容易引起滚筒的磁化,因而选用了另外一种编码曼彻斯特码。曼彻斯特编码
17、是串行数据传输的一种重要的编码方式。和最常用的NRZ码相比,曼彻斯特码具有很多优点。例如,消除了NRZ码的直流成分,具有时钟恢复和更好的抗干扰性能,这使它更适合于信道传输。但曼彻斯特码的时序比较复杂,实现编解码器和单片机的接口需要添加大量的逻辑电路,给电路设计和调试带来很多困难。使用FPGA可大大简化这一过程。FPGA(FieldProgrammable Gate Array),具有用户可编程、时序可预测、速度高和容易使用等优点,这几年得到了飞速发展和广泛应用。而且FPGA的可编程性,使得修改和产品升级变得十分方便。用户可以根据原理图或硬件描述语言自由地设计一个数字系统,然后通过软件仿真,事先
18、验证设计的正确性。PCB完成以后,人们还可以利用PLD的在线修改能力,随时修改设计而不必改动硬件电路,从而大大缩短了设计和调试时间,减少了PCB面积,提高了系统的可靠性。第三章 曼彻斯特编解码及差分曼彻斯特编解码的方案设计3.1 曼彻斯特编码方案设计曼彻斯特编解码电路包括三个部分,即信号产生部分,编码电路部分,解码电路部分。其中,信号产生部分用来产生一个循环的8位二进制数据编码作为普通的信号输入;编码部分则将输入的信号编码为曼彻斯特码,然后输出;解码部分负责将获得的曼彻斯特码解码成普通的二进制数据编码。三个相对独立的模块相互协同工作,共同完成曼彻斯特编解码的工作,同时相互独立的模块结构更有利于
19、查找电路中存在的问题,便于维护。数据产生曼彻斯特编码曼彻斯特解码源码输出曼彻斯特码输出时钟1时钟2时钟3分频器电路基准时钟曼彻斯特编解码电路的系统框图如图3.1所示。图3.1曼彻斯特编解码电路系统框图3.1.1 曼彻斯特编码电路设计对比普通二进制码的波形和曼彻斯特码的波形可知,曼彻斯特码在一个码元的开始时刻要对普通信号进行一次采样,并且有可能会发生一次跳变,在码元的中间位置一定发生跳变,因此编码信号的频率是数据时钟频率的两倍。曼彻斯特码是用“01”和“10”来表示普通二进制数据中的“1”和“0”的,因此在实际电路设计中,我们可以用采一个2选1数字选择器来完成此项功能。普通二进制信号01102选
20、1数字选择器并串转化曼彻斯特编码曼彻斯特编码电路的系统框图如图3.2所示。图3.2曼彻斯特编码系统框图我们很容易产生一个和数据信号具有相同频率的检测时钟,用来对传入的数据信号进行检测。当检测信号检测到输入信号是“1”时,选择器就输出“01”给寄存器,由寄存器完成并串转化功能,然后再将串行数据输出;当输入信号是“0”时,选择器就输出“10”给寄存器由寄存器完成并串转化功能,然后再将串行数据输出,这样,输出的串行数据就是曼彻斯特码。详细的曼彻斯特编码程序见附录A。3.1.2 曼彻斯特解码电路设计曼彻斯特解码电路设计的关键是如何准确地从曼彻斯特码的数据流中提取出“10”和“01”信号,并且把它们转换
21、成普通二进制编码中的“0”和“1”。例如对于曼彻斯特码“”,如果从第一位开始解码,得到的二进制编码就是“1111”,而若从第二位开始解码,得到的二进制编码就是“000”和头尾两个曼彻斯特码。由此可见,如果曼彻斯特码数据流中只有“1”或“0”是不能得到正确的译码结果的,如果曼彻斯特编码数据流中出现“00”,则“00”前后的码元必定是“1”;如果曼彻斯特编码数据流中出现“11”,则“00”前后的码元必定是“0”,因此,我们可以将“00”与“11”作为曼彻斯特码译码的标志位。为了更准确得解码曼彻斯特码,我们需要一个频率不小于奈奎斯特频率的采样时钟,即采样时钟的频率至少是曼彻斯特码频率的两倍,由图2.
22、1和图2.2均可看出,曼彻斯特码的频率是普通二进制编码信号频率的两倍,因此采样频率至少是数据频率的4倍。011100曼彻斯特编码10普通二进制数据编码4选1数字选择器在实际设计电路时,我们可以采用一个缓存器,储存上一个时钟采集到的信号和当前时钟采集到的信号,当缓存器的内容是“01”时,输出“1”;当缓存器的内容是“10”时,输出“0”;当缓存器的内容是“00”或“11”时,输出维持不变。解码部分的系统框图如图3.3。图3.3 曼彻斯特解码系统框图详细的曼彻斯特解码程序见附录A。3.2 差分曼彻斯特编解码方案设计数据产生曼彻斯特编码曼彻斯特解码源码输出曼彻斯特码输出时钟1时钟2时钟4分频器电路基
23、准时钟时钟3图3.4 差分曼彻斯特码电路系统框图同曼彻斯特编解码电路类似,差分曼彻斯特编解码电路也包括三个部分,即信号产生部分,差分编码电路部分,解码电路部分。其中,信号产生部分用来产生一个循环的8位二进制数据编码作为普通的信号输入;编码部分则将输入的信号编码为曼彻斯特码,然后输出;解码部分负责将获得的曼彻斯特码解码成普通的二进制数据编码。差分曼彻斯特编解码电路系统框图如图3.4所示。3.2.1 差分曼彻斯特编码电路设计由图2.2可知,差分曼彻斯特码在信号中间位一定发生一次跳变,而在信号开始位是否发生跳变则取决于该时钟下信号是“1”还是 “0”。若信号为“1”则不发生跳变,若信号为“0”,则发
24、生跳变。当给定一个二进制数据信号时,我们可以产生一个类数据时钟,该时钟周期和给定的数据信号周期相同。由于在进行差分曼彻斯特编码时,不仅时钟的上升沿差分编码信号会发生跳变,时钟的下降沿编码信号也会发生跳变,故而我们还需要一组检测时钟,对类数据时钟的跳变沿进行检测,以便于更好地进行差分曼彻斯特编码。同一般信号的采样方式一样,我们用一个缓存器来存储前一个检测时钟的采样信号和当前时钟的采样信号,若结果是“01”,说明是类数据时钟的上升沿,若结果是“10”,说明是类数据时钟的下降沿。数据输入编码电路差分曼彻斯特码类数据时钟检测时钟图3.5 差分曼彻斯特编码电路系统框图在类数据时钟的上升沿,对数据信号进行
25、检测,若信号是“1”,则差分曼彻斯特码的电平维持不变,若信号是“0”,则差分曼彻斯特码的电平进行一次跳变;在类数据时钟的下降沿,则不需要对数据信号进行检测,差分曼彻斯特码的电平直接进行一次跳变。差分曼彻斯特编码系统框图见图3.5。详细的差分曼彻斯特编码程序见附录B。3.2.2 差分曼彻斯特解码电路设计同曼彻斯特解码电路的设计要点不同,差分曼彻斯特解码电路的关键是如何准确地从曼彻斯特码的数据流中识别出一个码元开始时电平是否发生跳变。由奈奎斯特采样频率的要求可知,采样数据中必然存在大量的“00”和“11”,如何判断这些“00”和“11”产生的原因是码元初始时刻未发生跳变造成的还是单纯的码间采样造成
26、的,是解码电路设计的要解决的首要问题。从4.1节的分析中,我们可知在得到差分曼彻斯特码后,我们同样可以很容易知道差分曼彻斯特码的周期,再结合采样信号的周期,我们可以设计一个模值为N的计数器(N是差分曼彻斯特码的周期与采样信号的周期之比),这样,就可以清楚地知道差分曼彻斯特编码数据流中码元初始时刻电平是否发生跳变,从而能够正确的进行解码。差分曼彻斯特解码电路系统框图见图3.6。差分曼彻斯特码编码电路普通二进制数据编码采样时钟计数器图3.6 差分曼彻斯特解码电路系统框图详细的差分曼彻斯特解码程序见附录B。3.3 曼彻斯特编解码分频电路设计在整个编码和解码过程中,我们所需要的时钟是有着一定的频率关系
27、的,为了电路设计方便,我们可以设计一个分频器,以产生我们所需频率的时钟。由数字电路的相关知识可知,简单的分频器可由D触发器构成,一个D触发器相当于二分频。根据之前的论述,我们至少需要一个四分频电路,也就是说两个D触发器即可完成该目的,如图3.7所示。完成器件的连线后,我们需要将两个D触发器的输出分别引出,作为编码时钟和数据产生的时钟,将原始时钟作为采样时钟。对于更为复杂些的分频电路,我们也可以使用计数器作为辅助工具来进行设计。图3.7 分频器电路电路图第四章 Quartus-软件仿真4.1 Quartus-软件简介Quartus II 是Altera公司的一款综合性PLD开发软件,它支持原理图
28、、VHDL语言、Verilog HDL以及AHD(Altera Hardware Description Language)等多种设计形式,内嵌有综合器以及模拟器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用TCL脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户
29、可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如
30、Signal Tap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。4.2 VHDL语言简介VHDL是 Very-High-Speed Integrated Circuit Hardware Description Language的缩写,诞生于1982年。1987年底,VDHL语言被IEEE和美国国防部确认为标准硬件描述语言。VHD
31、L主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。归纳起来,VHDL语言具有以下优点:(1) 功能强大 , 设计方式多样;(2) 具有强大的硬件描述能力;(3)
32、具有很强的移植能力;(4) 设计描述与器件无关;(5) 程序易于共享和复用。4.3 曼彻斯特编解码仿真4.3.1 程序编译打开Quartus软件,点击工具栏中“File” “Open Project Wizard”新建一个工程并命名为“mcdecode”,其他项目暂不进行设置,单击“Finish”完成这个工程的新建。选择“File”“New”命令,然后在弹出的“New”对话框中选择“VHDL File”选项,单击“OK”按钮,成功新建VHDL文件。在新建的文件中输入VHDL程序,编写代码见附录A。编写完程序后保存好编写的“VHDL File”文件,点击工具栏中“Processing” “Com
33、piler Tool”命令,对程序进行编译。4.3.2 原理图绘制程序编译完成后,选择“File”“Create/Update”“Create Symbol Files for Current File”编译文件并为该文件生成模块文件。然后再选择“File”“New”命令,并在弹出的对话框中选择“Block Diagram /Schematic File”选项,最后单击“OK”按钮完成原理框图文件的新建。在原理框图文件的空白处,双击鼠标左键,在弹出的“Symbol”对话框中选择“Project” “clks”、“recycle”、“mcode”、“mdecode”四个模块,并从“librari
34、es” “primitives” “pin”中选择input和output端口作为输入端和输出端。在选择完器件后,通过连线将各模块连接,保存,完成原理图绘制。连接图如图4.1所示。图4.1 曼彻斯特编解码原理图4.3.3 建立波形文件选择“File”“New”命令,并在弹出的“New”对话框中选择“Vector Waveform File”选项,单击“OK”按钮,新建波形文件。然后在向量波形文件的“Name”下方的空白处,双击鼠标左键,然后在弹出的“Insert Node or Bus”对话框中选择“Node Finder”按钮,弹出“Node Finder”对话框。如图4.2所示。图4.2
35、Insert Node or Bus对话框 之后在弹出的“Node Finder”界面里,在“Filter”下拉列表框中选择“Pins: all”选项,然后单击“List”按钮,在左边的“Nodes Found”栏会出现程序中所出现该程序的所有端口,双击需要显示的端口,该端口的名称会会出现在右边的“Selected Nodes”栏中。然后单击“OK”键,完成端口的选择,如图4.3所示。图4.3 Node Finder对话框然后选择“clk”信号,将其周期设定为一任意常量,其他信号不做修改,将该波形文件保存为mcdecode.vwf。4.3.4 波形仿真保存好波形文件后,选择工具栏中“Proce
36、ssing” “Simulator Tool”命令,在弹出的界面中,将“Simulation mode”选为“Functional”,之后再单击右上角的“Generate Functional Simulation Netlist”进行波形仿真,最后按顺序单击左下角的“Start”按钮及右下角的“Report”按钮。得到仿真出的波形如图4.4所示。图4.4 曼彻斯特编码波形图从理论上讲,“clk”是基准时钟,是输入端,其余是输出端。“datain”是数据输入波形,为“”,“datamcode”是曼彻斯特编码波形,理论上应当是“11010”,而“dataout”是曼彻斯特解码波形,应当与“dat
37、ain”相一致。如图4.4所示,第一行是输入端,接下来三行是输出端。从图中可以看出当输入数据是“1”时,曼彻斯特编码为“01”;当输入数据是“0”时,曼彻斯特编码为“10”。我们还可以看出解码出的波形和数据输入相同,说明编码程序和解码程序是正确的。4.3.5 硬件仿真先选择“Assignments” “Settings”,然后在弹出的对话框中,点击左侧“Category”栏中的 “Device”,然后在右侧“Device family”下拉框中选中 “MAX ”,接着在“Available device”栏中选择所要使用的芯片型号。本次试验所用芯片型号是“EPM240T100I5N”,如图4.
38、5所示。最后单击 “OK”,完成硬件的选择。图4.5 器件选择示意图选择“Assignments”“Pin Planner”,将输入输出绑定到芯片对应的管脚,如图4.6所示。保存后点击工具栏中“Processing” “Compiler Tool”命令,对工程再次进行编译,编译通过后说明已完成管脚绑定。图4.6 曼彻斯特编解码芯片管脚绑定示意图选择“Tools”“Programmer”出现如图4.7所示的对话框,先选中“Program/Configure”下的方框,然后点击“Start”,软件开始将程序下载到芯片中。当右上角的进度条显示100%时,程序下载完成。图4.7 曼彻斯特编解码程序下载
39、图程序下载完成后,将输出端连接到示波器上,就可以看到由芯片输出波形。如图4.8所示。图4.8 示波器输出波形左图是数据和曼彻斯特编码波形,右图是数据和曼彻斯特解码波形。由图中波形可以看出,硬件仿真出的结果和软件仿真的结果相同。编码相对于数据,延时大约是1.5s,解码相对于数据,延时大约是2.5s。4.4 差分曼彻斯特编解码仿真4.4.1 程序编译打开Quartus软件,点击工具栏中“File” “Open Project Wizard”新建一个工程并命名为“dcdecode”,其他项目暂不进行设置,单击“Finish”完成这个工程的新建。选择“File”“New”命令,接着在弹出的“New”对
40、话框中选择“VHDL File”选项,单击“OK”按钮,完成新建VHDL文件。在新建的文件中输入VHDL程序,编写代码见附录B。之后保存好编写的“VHDL File”文件,接着点击工具栏中“Processing”“Compiler Tool”命令,对程序进行编译,如果编译不通过,则需要对程序进行修改,直到程序没有错误为止。4.4.2 原理图绘制程序编译完成后,选择“File”“Create/Update”“Create Symbol Files for Current File”编译文件并为该文件生成模块文件。然后再选择“File”“New”命令,并在弹出的对话框中选择“Block Diagr
41、am/Schematic File”选项,最后单击“OK”按钮完成原理框图文件的新建。在原理框图文件的空白处,双击鼠标左键,在弹出的“Symbol”对话框中选择“Project” “clks”、“recycle”、“dcode”、“ddecode”四个模块,并选择“input”和“output”端口作为输入和输出。在选择完器件后,通过连线将各模块连接,保存,完成原理图绘制。连接图如图4.9所示。图4.9差分曼彻斯特编解码原理图4.4.3 建立波形文件选择“File”“New”命令,并在弹出的“New”对话框中选择“Vector Waveform File”选项,单击“OK”按钮,新建波形文件。
42、在向量波形文件的“Name”下方的空白处,双击鼠标左键,在弹出的“Insert Node or Bus”对话框中选择“Node Finder”按钮,弹出“Node Finder”对话框。如图4.2所示。之后在弹出的“Node Finder”界面里,在“Filter”下拉列表框中选择“Pins:all”选项,然后单击“List”按钮,在左边的“Nodes Found”栏会出现程序中所出现的所有端口,双击需要显示的端口,该端口的名称会会出现在右边的“Selected Nodes”栏中。然后单击“OK”键,完成端口的选择,如图4.10所示。图4.10 Node Finder对话框然后选择“clk”信
43、号,将其周期设定为一任意常量,其他信号不做修改,将该波形文件保存为dcdecode.vwf。4.4.4 波形仿真保存好波形文件后,选择工具栏中“Processing” “Simulator Tool”命令,在弹出的界面中,将“Simulation mode”选为“Functional”,之后再单击右上角的“Generate Functional Simulation Netlist”进行波形仿真,最后按顺序单击左下角的“Start”按钮及右下角的“Report”按钮。得到仿真出的波形如图4.11所示。图4.11差分曼彻斯特编解码波形图从理论上讲,“clk”是基准时钟,是输入端,其余是输出端。“
44、datain”是数据输入波形,为“”,“dmcode”是差分曼彻斯特编码波形,理论上应当是“01010”,而“dataout”是差分曼彻斯特解码波形,应当与“datain”相一致。如图4.11所示,第一行是输入端,接下来三行是输出端。从图中可以看出当输入数据是“1”时,差分曼彻斯特编码初始时刻不发生跳变;当输入数据为“0”时,差分曼彻斯特编码初始时刻发生跳变。我们还可以看出解码出的波形和数据输入相同,说明编码程序和解码程序是正确的。4.4.5 硬件仿真首先,选择“Assignments”“Settings”,并在弹出的对话框中,点击左侧“Category”栏中的 “Device”,然后在右侧“
45、Device family”下拉框中选中 “MAX ”,接着在“Available device”栏中选择所使用的芯片的型号。本次试验所用芯片型号是“EPM240T100I5N”,如图4.5所示。最后单击“OK”,完成硬件的选择。选择“Assignments” “Pin Planner”,将输入输出绑定到芯片对应的管脚,如图4.12所示。保存后点击工具栏中“Processing”“Compiler Tool”命令,对工程再次进行编译,编译通过后说明已完成管脚绑定。图4.12 差分曼彻斯特编解码管脚绑定示意图选择“Tools”“Programmer”出现如图4.13所示的对话框,先选中“Prog
46、ram/Conigure”下的方框,然后点击“Start”,软件开始将程序下载到芯片中。当右上角的进度条显示100%时,程序下载完成。图4.13 差分曼彻斯特编解码程序下载图程序下载完成后,将输出端连接到示波器上,就可以看到经芯片输出波形。如图4.14所示。图4.14 差分曼彻斯特编解码示波器输出波形左图是数据码波形,中间是差分曼彻斯特编码波形,右图是差分曼彻斯特解码波形。由上图可以看出,硬件仿真出的结果和软件仿真的结果是一样的。编码相对于数据,延时大约是1s,解码相对于数据,延时大约是1s。第五章 曼彻斯特码与差分曼彻斯特码优缺点5.1 普通二进制数据编码的优缺点二进制数据只有“1”和“0”
47、二个值,在对二进制数据进行编码时,我们很容易想到用电平的高和低来与之对应,这样就产生了普通二进制数据编码信号。普通的二进制数据编码信号是分别用正电平和零电平来表示“1”和“0”的,或者说,这种编码信号是在一个码元时间内用脉冲的有无来表示“1”和“0”。这是一种单极性波。普通二进制数据编码信号波形的特点是电脉冲之间无间隔,极性单一,易于用TTL、COMS电路产生。但从其编码波形图可以看出,这种编码存在直流分量,因此要求传输线路具有直流传输能力。在长距离传输中,由于存在交流耦合现象,因而普通二进制数据编码不适合长距离传输,故这种编码只适用于计算机内部或印制电路板内和机箱内等极近距离传输。由此可以看
48、出,普通二进制数据编码的产生虽然简单,但使用时限制条件比较多,不适合大范围使用。实际上,在数通信传输系统中,大多都是用各种双极性归零码来对数据进行编码然后在传输的。5.2 曼彻斯特码的优缺点在实际的信号传输系统中,并不是所有的波形编码都合适在信道中传输。例如,含有丰富直流和低频分量的单极性波形就不适合在低频传输特性差的信道中传输,因为这有可能造成信号严重畸变。又比如说,当数据代码包含长串的而且连续的“1”和“0”时 ,非归零波形呈现出连续的固定电平,因而导致无法获取定时信息。单极性归零码在传送连续的“0”时也存在同样的问题。因此,对传输用的信号波形主要有以下两个方面的要求:(1)原始消息代码必
49、须变成和适于传输的码型;(2)波形合适于系统的传输。首先,我们从定义可以看出,曼彻斯特码只有极性相反的两个电平,它是通过在每个码元间隔的中心点的电平跳变来表示“1”和“0”的,因此在每一个时钟周期内,曼彻斯特码都存在电平跳变,因此曼彻斯特码没有直流分量,可以应用于长距离数据传输。其次,由于在每一个时钟周期内,曼彻斯特码都存在电平跳变,因此曼彻斯特码在传输数据的同时也对时钟信号进行了传输,即曼彻斯特码具有自时钟信号,含有丰富的位定时信息。这样也方便了数据接收端进行解码。第三,曼彻斯特码的编码过程也十分简单。以上三个优点决定了曼彻斯特码可以大范围应用于数据传输。然而,由于曼彻斯特码在每个时钟周期内
50、都会发生电平跳变,因而曼彻斯特码的频率是普通二进制数据编码频率的两倍,这导致其带宽也是通二进制数据编码带宽的两倍,从而使频带利用率降低。5.3 差分曼彻斯特码的优缺点差分曼彻斯特码是对曼彻斯特码的一种改进,它保留了曼彻斯特码“自含时钟编码”的特点,仍将每比特中间的跳变作为同步之用,但是每比特的取值则根据其开始处是否出现额外的电平的跳变来决定。从绪论的介绍中,我们知道对于曼彻斯特码,有两种不同的编码方式,而这两种编码在实际工程中均有一定程度的应用,这可能导致某些产品不能通用。而差分曼彻斯特码则很好的解决了这个问题,在一定程度上增加了以设计出的产品的应用范围。5.4 其他常见通信编码5.4.1 A
51、MI码AMI(Alternative Mark Inversion)码的全称是传号交替反转码,其编码规则是将消息码的“1”交替的变换为“+1”和“-1”,而“0”保持不变。AMI码对应的波形是具有正、负、零三种电平的脉冲序列。他可以看成是单极性波形的变形,即“0”仍对应零电平,而“1”交替对应正、负电平。相比于普通二进制数据编码,AMI码没有直流成分,且高、低频分量少,能量集中在频率为1/2码速处;编译码电路简单,且可利用传号极性交替这一规律观察误码情况;接收后只要全波整流,就可变为单极性RZ波形,从中可以提取位定时分量。AMI码的缺点是,当原信码出现长连“0”串时,信号的电平长时间不跳变,造
52、成提取定时信号的困难。作为改进,在进行编码时,可在连“0”数目大于3的数据段,将每4个“0”作为一小节,产生一个脉冲,并且脉冲正负交替,这就是HDB3码。5.4.2 密勒码密勒码又称延迟调制码,它是曼彻斯特码的一种变形。它的编码规则如下:“1”码可以用码元中心点出现电平跳变来表示(“10”和“01”均可);只有单个“0”码出现时,在码元持续时间内不出现电平跳变,且与相邻码元的边界处也不发生跳变,连“0”时,在两个“0”码的边界处发生电平跳变,即“00”与“11”交替。密勒码最初用于气象卫星和磁记录,现在也用于低速基带数传机中。5.4.3 CMI码CMI(Coded Mark Inversion
53、)码时传号反转码的简称,和曼彻斯特码类似。其编码规则是:“1”码交替用“11”和“00”两位码表示;“0”码固定地用“01”表示。相比于曼彻斯特码由于没有统一的定义而可能出现两种截然相反的编码的情况,CMI码的波形是唯一的。同时,CMI码不会出现三个以上的连码,这个规律也可以用来宏观检错。该码已被ITU-T推荐位PCM四次群的接口码型,同时也用在速度低于8.448Mb/s的光缆传输系统中。第六章 结论与展望6.1 论文总结本论文讨论了曼彻斯特编解码器及差分曼彻斯特编解码器的实现。在实际的通信系统中,复杂多变的外界环境,对通信的性能提出了更高的要求,所以在通信系统中,稳定的解码对于整个通信系统的
54、正常工作意义重大。为了达到设计要求,设计出曼彻斯特编解码器及差分曼彻斯特编解码器,论文讨论了曼彻斯特编解码和差分曼彻斯特编解码的原理,分析了在设计中所需要解决的关键问题,确定了实现方案,然后重点介绍了曼彻斯特编解码及差分曼彻斯特编解码的仿真及实现。最后介绍了硬件的仿真和整个电路功能的仿真结果。在本课题的各阶段的调试过程中,该曼彻斯特编解码器及差分曼彻斯特编解码器都能够完成编解码功能,并且性能稳定。同时,编解码器在与系统各个部分的联调中,误码率也达到了各级设计指标。曼彻斯特码以及差分曼彻斯特码的时序设计比较复杂,实现编解码器和单片机的接口需要添加大量的逻辑电路,给电路设计和调试带来很多困难。而使
55、用FPGA则可以大大简化这一过程。FPGA具有用户可编程、时序可预测、速度高和容易使用等优点,这几年得到了飞速发展和广泛应用。上至高性能CPU,下至简单的电路,都可以用FPGA来实现。而且FPGA的可编程性,使修改和产品升级变得十分方便。用户可以根据原理图或硬件描述语言自由地设计一个数字系统,然后通过软件仿真,实现验证设计的正确性。FPGA完成以后,还可以利用FPGA的在线修改能力,随时修改设计而不必改动硬件电路,从而大大缩短了设计和调试时间,减少了印制电路的面积,提高了系统的可靠性。因此,在未来的实际生产中,用FPGA实现曼彻斯特码通信系统将得到广泛的运用。6.2 进一步的工作本次试验进行曼彻斯特编解码以及差分曼彻斯特编解码时,编码和解码都是由一块芯片来完成的,和实际的工程相比,缺少了数据传输部分。实际上,在进行数据传输时,信号容易受到干扰,导致接收到的信号不只是单纯的发射信号,还会包含一定的噪声,因此在解决实际问题时,在数据接收端还应当增加消除噪声干扰的环节,以便从中恢复出原本的信号
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 警械使用课件
- 2023年国家公务员考试《申论》真题(地市卷)及答案解析
- 9.2《永遇乐·京口北固亭怀古》-高一语文上学期同步备课拓展(统编版必修上册)
- 西南林业大学《材料加工工艺与设备》2022-2023学年第一学期期末试卷
- 西京学院《微机原理与接口技术》2023-2024学年期末试卷
- 西京学院《汉语国际教育概论》2023-2024学年第一学期期末试卷
- 幼儿园小班打击乐活动《小鳄鱼之歌》课件
- 西华师范大学《中学思想政治学科教学论》2022-2023学年第一学期期末试卷
- 西华师范大学《舞台剧创作》2023-2024学年第一学期期末试卷
- 房地产金融与投资概论教学课件第六章房地产开发建设融资
- 河北中盐龙祥盐化有限公司宁晋盐矿矿山地质环境保护与土地复垦方案
- 2017年10月自考00258保险法试题及答案含解析
- 放射人员辐射安全培训课件
- 社会稳定风险评估 投标方案(技术标)
- 第21届WMO初赛3年级A卷(含答案)
- 中心静脉深静脉导管维护操作评分标准
- 上消化道出血临床指南
- 大学生软件工程师生涯发展报告
- XBT 243-2023 氯化镧铈 (正式版)
- 五年级【语文】交流平台初试身手2课件
- 成都达州商会筹备方案
评论
0/150
提交评论