当前位置:文档之家› 曼彻斯特码编解码的FPGA设计与实现

曼彻斯特码编解码的FPGA设计与实现

曼彻斯特码编解码的FPGA设计与实现
曼彻斯特码编解码的FPGA设计与实现

武汉理工大学

本科生毕业设计(论文)开题报告

目录

摘要 .......................................................................................................................................................... I ABSTRACT ............................................................................................................................................. II 1 绪论 (1)

1.1 背景及目的意义 (1)

1.2 国内外研究现状 (1)

1.2.1 在电信业的应用 (1)

1.2.2 在工业控制中的应用 (2)

1.2.3 在车辆总线中的应用 (2)

1.2.4 在石油勘测探井中的应用 (2)

1.3 项目研究内容及组织结构 (2)

2. 开发工具及仿真软件 (4)

2.1 FPGA原理 (4)

2.2 QuartusⅡ (5)

2.2.1 QuartusⅡ系统的特点 (5)

2.2.2 Quartus II下的FPGA设计 (6)

2.2.3 QuartusⅡ的仿真 (8)

2.3 Modelsim (8)

3 曼彻斯特码 (10)

3.1 数字通信中位同步与线路编码 (10)

3.2 曼彻斯特码及几种相关的二元码码型介绍 (11)

3.2.1 曼彻斯特码 (11)

3.2.2 单极性非归零波形 (12)

3.2.3 密勒码――曼彻斯特码的一种变形码 (12)

3.3 曼彻斯特码及几种常见二元码的包含定时信息的讨论 (12)

3.4曼彻斯特码的优点 (18)

3.5曼彻斯特码的应用范围 (19)

3.5.1在LAN中的应用 (19)

3.5.2在测井系统中的应用 (19)

3.6 曼彻斯特编码规则 (20)

4 系统方案设计 (23)

4.1 编码电路的设计 (23)

4.1.1 并串转换器的设计 (24)

4.1.2 NRZ码转换为曼彻斯特码 (25)

4.2 解码电路的设计 (26)

4.2.1 总体设计 (26)

4.2.2 各模块设计 (27)

5系统功能的实现 (30)

5.1 Verilog HDL语言简介 (30)

5.2 功能实现 (30)

6 总结与展望 (38)

6.1 总结 (38)

6.2 展望 (38)

参考文献 (39)

附录 (41)

致谢 ........................................................................................................................ 错误!未定义书签。

摘要

曼彻斯特码采用跳变沿来表示0或1,与二进制码相比,具有如下优点:1.具有丰富的定时信息,便于接收端提取定时信号;2.传输时无直流分量,可降低系统的功耗;3.曼彻斯特码传输方式非常适合于多路数据的快速切换。在数据通信领域,开发一个数据通信系统,选择一种好的数据编码方式是非常重要的,关系到整个系统的可行性、稳定性、通信质量以及以后系统的工作效率等方面。如何实现开发出更高可行性、可靠性及稳定性的通信系统,这正是研究曼彻斯特码的目的和意义所在。

作者主要的研究工作如下:

1、对选题的背景和意义做了阐述,介绍了曼彻斯特编解码在国内外的研究现状以及应用范围。

2、对开发环境FPGA以及应用的编程软件QuratusⅡ和仿真软件Modelsim做了相应的介绍。阐述了他们的主要特点以及软件的使用方法和仿真流程。

3、论述了曼彻斯特码的原理,介绍了其编码规则,即:用下降沿表示“1”,用上升沿表示“0”。然后说明了用此种方式编码的优点:没有直流分量从而损耗小,并且有着丰富的时钟信息,非常适合于多路数据的快速切换。

4、根据项目需要,结合通信中线路编码与位同步的相关知识,设计了基于FPGA 的曼彻斯特码编解码器。本次设计主要包括两大部分,曼彻斯特编码器,曼彻斯特解码器。其中曼彻斯特编码器还包括一个串并转换模块和编码模块,同样的,曼彻斯特解码器也含有一个解码模块和一个并串转换器。

5. 使用Verilog HDL 语言,编写编解码的各个模块,并使用Quartus Ⅱ进行软件的调试和编译,最后通过Modelsim 实现了功能仿真。

关键词:曼彻斯特码FPGA Verilog ModelSim

Abstract

Manchester code hopping along represents 0 or 1 , as compared with the binary code has the following advantages :1. Waveform in the middle of each bit transition , and therefore has a wealth of timing information , the convenience of retrieving the timing signal . Binary transmission , when the continuous 0 or 1 , can not distinguish between the two between the boundary ; 2 due to the Manchester code each bit has a level shift , therefore , when transmitting no DC component , can reduce the power consumption of the system . For binary waveform , the When appear consecutive 1 , the generation of the DC component ; 3. Manchester code transmission method is very suitable for fast switching of the multiplexed data . Manchester code is widely used in many fields , such as telecommunications , industrial control , vehicle bus , oil exploration exploratory well.

The main task of the research are as follows:

1.The background and significance are described in this paper, and the paper described the Manchester encoding and decoding research status at home and abroad as well as applications.

2. Made A corresponding description of FPGA as the development environment ,the programming software Quratus Ⅱand the simulation software Modelsim.Described their main characteristics and the way of using the software and their simulation processes.

3.Discussed the principle of Manchester code , introduced the coding rules,that is: a falling edge indicates "1 "while the rising edge indicates "0".And then described the advantages of coding in this manner : no DC component and thus loss, and has a wealth of clock information , ideally suited for multi-channel data fast switching.

4. Based on the needs of the project , combined with the communication line coding and bit synchronization knowledge to discuss the design and FPGA Design and Implementation of the Manchester - based code codec .The design included two parts, Manchester encoder , Manchester decoder.Manchester encoder comprised a string and conversion module and encoding module , the same , Manchester decoder also included a decoding module and a parallel-serial converter.

5. Using Verilog HDL language , writing a codec of the various modules and use the Quartus Ⅱfor software debugging and compiling , and finally achieved through Modelsim functional simulation.

Keywords: Manchester code FPGA Verilog ModelSim

1 绪论

1.1 背景及目的意义

曼彻斯特编码是一种自同步的编码方式,即时钟同步信号就隐藏在数据波形中。在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作时钟信号,又作数据信号;从高到低跳变表示"1",从低到高跳变表示"0"。还有一种是差分曼彻斯特编码,每位中间的跳变仅提供时钟定时,而用每位开始时有无跳变表示"0"或"1",有跳变为"0",无跳变为"1"。在曼彻斯特编码中,用电压跳变的相位不同来区分1和0,即用正的电压跳变表示0,用负的电压跳变表示1。因此,这种编码也称为相应编码。由于跳变都发生在每一个码元的中间,接收端可以方便地利用它作为位同步时钟[1]。

由于技术的发展,现代通信体现出了越来越高的要求:1.能有效实现各子系统之间的数据传输,且满足特定的通信特性;2.通信子系统相对独立地工作,对应用软件尽可能透明,且占用主机的时间尽可能少;3.通信系统灵活,易于修改;4.通信子系统具有较强的抗干扰能力。

在数据通信领域,开发一个数据通信系统,选择一种好的数据编码方式是非常重要的,关系到整个系统的可行性、稳定性、通信质量以及以后系统的工作效率等方面。如何实现开发出更高可行性、可靠性及稳定性的通信系统,这正是研究曼彻斯特码的目的和意义所在。

1.2 国内外研究现状

曼彻斯特码采用跳变沿来表示0或1,与二进制码相比,具有如下优点:1.波形在每一位元中间都有跳变,因此具有丰富的定时信息,便于接收端提取定时信号。若采用二进制传输,当出现连续的0或1时,则无法区分两位元之间的边界;2.由于曼彻斯特码在每一位元中都有电平的转变,因此,传输时无直流分量,可降低系统的功耗。而对于二进制波形,当出现连续的1时,将有直流分量的产生;3.曼彻斯特码传输方式非常适合于多路数据的快速切换。所以曼彻斯特码在许多领域得到广泛的应用,如电信业,工业控制,车辆总线,石油勘测探井等[1]。

1.2.1 在电信业的应用

在电信领域,曼彻斯特码是一种数据通讯线性码,它的每一个数据比特都是由至少一次电压转换的形式所表示的,曼彻斯特编码因此被认为是一种自定时码。自定时意味着数据流的精确同步是可行的。每一个比特都准确的在一预先定义时间时期的时间中被传送。曼彻斯特编码已经被许多高效率且被广泛使用的电信标准所采用[2]。曼彻斯特码的一个最常见的使用是在Xerox、DEC和Intel公司共同开发的“以

太”本地数据传输网络(Ethernet)中采用数字双向码作为线路传输码型。以太网的数据传输,IEEE802.3规定必须用曼彻斯特编码进行[3]。

1.2.2 在工业控制中的应用

在工业现场控制网络中,曼彻斯特码由于编码方式简单易行、无直流分量,且含有丰富的时钟信息,常被用作高速基带数据传输。曼彻斯特编码已经广泛应用在数控测井和无线监控等领域[4]。

1.2.3 在车辆总线中的应用

随着嵌入式微机控制技术和现场总线技术的飞速发展,线代列车的运转过程控制已从过去的集中数字控制系统发展成为先进的基于网络的分布式控制系统[4]。基于分布式控制系统的MV(多功能车辆控制总线)是IEC61375-1(1999)TCN(列车数据通信网络国际标准)的推荐方案,它与WTB(绞线式列车控制总线)构成的列车总线具有可靠性高、实时性强的特点。而其数据传输过程就是采用的曼彻斯特码进行编解码[5]。

1.2.4 在石油勘测探井中的应用

在油田测井中,井下仪在井下采集大量信息,并传送给地面测井系统[6];但井下仪到地面这段信道的传输性能并不好,常用的NRZ码不适合在这样的信道里传输,而且NRZ码含有丰富的直流分量,容易引起滚筒的磁化,因而选用了另外一种编码--曼彻斯特码。曼彻斯特编码是串行数据传输的一种重要的编码方式和最常用的NRZ 码相比,曼彻斯特码具有很多优点。例如:消除了NRZ码的直流成分,具有时钟恢复和更好的抗干扰性能,这使它更适合于信道传输。目前,在实际的工程测井中,常采用曼彻斯特编译码器(6408、6904)把测井数据转换为曼彻斯特码及把曼彻斯特码解码为数据[7]。

1.3 项目研究内容及组织结构

本项目主要研究曼彻斯特码编码器的FPGA设计和实现。

在本次设计中,为了验证电路系统能否顺利完成曼彻斯特码的编解码功能,采取了比软件仿真的验证方式。在该方式中需要使用Verilog HDL语言对系统编译并使用Modelsim进行仿真。

第二章详细介绍了本文所采用的编程语言及仿真软件,介绍了FPGA的原理及开发工具,Quartus Ⅱ的特点及软件开发流程,Modelsim的应用优点。

第三章介绍了曼彻斯特码原理以及编码规则,并详细说明了曼彻斯特编解码系统的总体结构。论述了曼彻斯特编解码实现的系统方案。

第四章介绍了利用Verilog HDL语言对系统的功能的实现。

第五章论述了利用Quartus Ⅱ对系统软件的调试和编译以及Modelsim软件对系统的仿真。

第六章是对本次设计的小结和展望。

2. 开发工具及仿真软件

2.1 FPGA原理

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点[8]。

FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分,如图2.1。

PI

IOB

图2.1 FPGA的基本结构

FPGA的基本特点主要有:

1.采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。

2.FPGA可做其它全定制或半定制ASIC电路的中试样片。

3.FPGA内部有丰富的触发器和I/O引脚。

4.FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。

5.FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。

可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。目前FPGA的品种很多,有XILINX公司的Virtex系列、TI公司的TPC系列、ALTERA 公司的Stratix系列等。

FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加

电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。

FPGA提供了一种“自顶向下"的全新的设计方法。这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计,在图表级进行仿真、纠错,并用硬件描述语言对高层次的系统行为进行描述,在系统级进行验证。然后用综合优化工具生成具体门电路的网表,其对应的物理实现级可以是印刷电路板或专用集成电路。由于设计的主要仿真和调试过程是在高层次上完成的,这不仅有利予早期发现结构设计上的错误,避免设计工作的浪费,而且也减少了逻辑功能仿真的工作量,提高了设计的一次成功率[9]。

2.2 QuartusⅡ

2.2.1 QuartusⅡ系统的特点

Alter推出的QuartusⅡ软件为用户提供完整的多平台设计环境,不但能够直接满足特定设计的需要,而且为可编程芯片系统提供全面的设计环境。QuartusⅡ软件提供CPLD和FPGA设计所有阶段的解决方案[10]。

QuartusⅡ系统的特点:

·基于模块的设计方法。Alter专门为QuartusⅡ软件提供了LogicLock基于模块的设计方法,这有利于用户独立完成设计以及实施各种设计模块,而且在不改变各个模块的性能前提下可以将模块集成到顶层工程。因为每一个模块仅需要一次优化,所以设计流程可以显著缩短,大大提高设计效率。

·更快集成IP。QuartusⅡ软件里包含了SOPCBuilder工具。SOPCBuilder工具针对可编程系统可以自动完成IP核的添加和参数设置,以及连接等操作。这里IP

核包括嵌入式处理器、存储器、外设以及协处理器等。这样就把原先系统集成工作中的时间节省出来,设计人员就能在短时间内将概念转化为运行的系统。

·在设计周期的早期对1/0引脚进行分配以及确认。无论顶层设计是否完成,QuartusⅡ软件都可以进行1/0引脚的分配和验证操作,这样印刷电路板的布线设计工作就可以尽早进行。同时,设计人员可以随时根据修改引脚的分配,不需要进行专门的设计编译。

·存储器编译器。QuartusⅡ软件有存储器编译器功能,这样用户就可以对FPGA 中的嵌入式存储器进行有效管理。

·支持FPGA、CPLD以及基于HardCopy的ASIC。

2.2.2 Quartus II下的FPGA设计

Quartus II为硬件电路的设计提供了很大的方便。FPGA之所以能够广泛应用于电路设计中,就是因为它们有使用相当方便的开发软件工具包,通过编程工具和软件的配合使用,对器件芯片可以进行流畅的开发、校验。FPGA特别适用于正向设计,即从电路原理图或各种硬件描述语言到芯片成品的设计,在这些设计流程中,设计人员对特别底层的硬件知识并不需要特别的了解和掌握,完全可以从功能应用出发,根据任务需求,自顶向下地进行电路设计。下面我们来看看FPGA的设计流程,Quartus II环境下的FPGA设计过程主要包括5个步骤[11]:

●设计输入

运用电路原理图输入、HDL文本输入等方式,表达设计思想,指定所用HIGA 器件的型号,分配其外部管脚。

●综合

将原理图、HDL语言等设计输入翻译成由基本电路逻辑单元组成的连接网表,供布局布线器进行实现。

●布局布线

根据连接网表文件,进行布局布线的分析和优化,完成FPGA器件内、外的虚拟连接。

●仿真

仿真分为功能仿真和时序仿真。功能仿真验证电路功能是否符合设计要求;时序仿真包含了延时信息,能较好反映芯片的工作情况。

●编程和配置

成功编译后,将生成的编程文件下载到目标FPGA系统中调试;调试成功后,烧写到FPGA的配置芯片中。

图2.2 为软件开发流程。

图2.2 软件开发流程

2.2.3 QuartusⅡ的仿真

仿真分为功能仿真和时序仿真。通常,功能仿真用于验证电路的功能是否正确。本次设计主要是在quartusⅡ软件中进行功能仿真验证。仿真的一般步骤如下:

●新建波形编辑文件;

●设置仿真时间区域;

●保存文件;

●导入欲观察的信号节点;

●编辑激励信号;

●设置数据格式;

●设置仿真器参数;

●启动仿真和观察仿真结果。

2.3 Modelsim

Modelsim软件是Mentor公司推出的一款仿真软件,到目前为止,被认为是比较优秀的语言仿真器之一[12]。Modelsim软件提供最友好的仿真环境,是FPGA设计的门级以及RTL级电路仿真的首选。Modelsim软件支持UNUX、UNIX和PC平台,是唯一的一个单一内核支持Verilog和VHDL混合仿真的仿真器[18]。它采用直接优化的Tcl/Tk技术、编译技术和单一内核仿真技术,不但编译仿真速度是业界最快的,而且编译的代码与平台无关,这样有利于保护IP核,Medelsim软件还拥有用户接口和个性化的图形界面,这为用户加快调试提供强有力的保证。此款软件不但支持Verilog和VHDL语言的IEEE标准,以及IEEE VITAL 1076.4一95标准,而且对于基于SWIF丁的SmartModel逻辑模型和硬件模型也支持,并且支持C语言功能调用和C的模型。

ModelSim软件的主要特点:

·直接编译,仿真速度快;

·不但完全支持Verilog国际标准,而且支持Verilog2001和SystemC

·与机器没有关联的编译代码有利于保护IP;

·进行VHDL和Verilog混合仿真;

·与机器和版本无关,便于数据移植和库维护;

·Tcl/Tk用户可定制仿真器;

·简单易用、丰富的图形界面以及快速全面的调试;

·拥有加强代码覆盖率功能Codecoverage,可以分析出每个分支的执行情况,提高了测试的完整性;

·先进的SignalSpy功能,可以方便地访问VHDL或者VHDL和Verilog混合设计中的下层模块的信号,便于设计调试;

·集成的pe而rmanCeanalyzer帮助分析性能瓶颈,加速仿真;

·支持众多的ASIC和FPGA厂家库;

·同一波形窗口可以显示多组波形,并且能进行多种模式的波形比较;

·集成的C调试器,支持用C语言完成测试平台和模块;

·支持加密lP;

·支持64位的OS;

3 曼彻斯特码

曼彻斯特码(Manchester)又称数字双向码(Digital Diphase)或分相码(Biphase

Split-phase),是常用的二元码的一种,也是常见线路编码中的一种。

3.1 数字通信中位同步与线路编码

数字通信在近几十年来得到了迅速的发展,其原因是数字通信系统具有许多模拟通信系统不能达到或不容易达到的优越性。数字通信的这些优越性体现在诸多方面,以下是一些容易理解的数字通信的优点[13]:

1. 抗干扰能力强;

2. 便于灵活进行各种处理,可以硬件实现,也可以计算机程序实现;

3. 易于实现集成化、小型化;

4. 易于加密;

5. 容易存储;

6. 各种业务可以结合起来,有利于实现宽带多媒体通信。

数字通信系统虽然优点众多,但是仍然有其固有的缺点,主要体现在同步和误码上面。这些方面的指标是通信系统性能的关键,但同时,这方面的理论和技术也是通信领域研究的重点和难点。

数字通信系统中,有异步通信系统和同步通信系统。在同步通信系统中,数字信号序列是按节拍一步一步工作,因此收发两端的节拍一定要相同。否则将出现混乱。另外,发送的数字信号序列常常是编组的,收端必须知道这些编组的头尾,否则无法恢复原始信息。要保证收发两端的节拍一致,必须有同步系统的控制。

同步是数字通信系统以及某些采用相干解调的模拟通信系统中的一个重要问题。由于收发双方不在一地,要使它们能步调一致协调工作,必须要有同步系统来保证。在数字通信中,按照同步的功用分为:载波同步、位同步、群同步和网同步。位同步是指在接收端的基带信号中提取码元定时的过程,是正确取样判决的基础,只有数字通信才需要,并且不论是基带传输还是频带传输都需要位同步;所提取的位同步信息是频率等于码速率的定时脉冲,相位则根据判决时信号波形决定,可能在码元中间,也可能在码元中止时刻或其他时刻。位同步又称同步传输,它是使接收端对每一位数据都要和发送端保持同步。如果基带信号为随机的二进制不归零脉冲序列,那么这种信号本身不包含位同步信号。为了获得位同步信号,就应在基带信号中插入位同步导频信号,或者对该基带信号进行某种变换。这两种方法称为插入导频法和直接法。还有一种方式,将基带信号通过线路编码的方式,使其包含定时信号。

在实现位同步时,具体实现可分为外同步法和自同步法两种。在外同步法中,接收端的同步信号事先由发送端送来,而不是自己产生也不是从信号中提取出来。即在发送数据之前,发送端先向接收端发出一串同步时钟脉冲,接收端按照这一时钟脉冲频率和时序锁定接收端的接收频率,以便在接收数据的过程中始终与发送端保持同步。

自同步法是指能从数据信号波形中提取同步信号的方法。自同步法也就是通过编码(线路编码)令数据信号波形的功率谱中包含表达定时分量的线谱的方式达到的。

线路码又称为传输码,它的的结构将取决于实际信道特性和系统工作条件。在实际的传输系统中,并不是所用的码型都适合在信道中传输,原始消息必须编成适合于传输的码型。不同的信道及传输方式对线路码的要求不同。但是总体的特性如下。

1. 相应的基带信号无直流分量,且低频分量少;

2. 便于从信号中提取定时信息;

3. 信号中高频分量尽量少,以节省传输频带并减少码间串扰;

4. 不受信息源统计特性的影响,即能适应于信息源的变化;

5. 具有内在的检错能力,传输码型应具有一定的规律性,以便利用这一规律进行宏观观测。

6. 译码设备要尽可能简单。

线路码中的一种——曼彻斯特编码,常用于局域网传输。曼彻斯特码是一种典型使用自同步法保持位同步的线路码型。在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作时钟信号,又作数据信号;从高到低跳变表示"1",从低到高跳变表示"0"。

3.2 曼彻斯特码及几种相关的二元码码型介绍

3.2.1 曼彻斯特码

Manchester(曼彻斯特码)又称双相码。是一种超越传统数字传输极限的编码/解码方式。常规码型的缺点缺少定位时钟信息。没有定位时钟信息,也就无法识别受到数据位的开始与结束的宽度等,在通信中需要其他方式解决位同步问题。曼彻斯特编码解决了传输数据没有时钟的问题。它对每个二进制代码分别利用两个具有不同相位的二进制新码去取代。与用高、低电平表示的非归零二进制码相比,在连“0”或连“1”的情况下更易于提取同步时钟信息,又无直流漂移,且有强的抗干扰能力,编、译码过程比较简单[14]。

图3.1 曼彻斯特码

由图3.1可知,曼彻斯特码是将NRZ 普通二进制数据与其位率时钟相异或而得,解决了传输数据没有时钟的问题。当传送信息为“1”,曼彻斯特编码由高电平跳变为低电平;若传送的信息为“0”,曼彻斯特编码有低电平变为高电平;如果有连续的“1”或“0”信息出现时,则曼彻斯特编码保持“1”或“0”的跳变,即编码后,信息“0”与时钟一致,信息“1”与时钟反相(相位相差180)。曼彻斯特编码是一种相位调制,有时钟的180 相位代表NRZ 信号的逻辑“1”电平。

3.2.2 单极性非归零波形

曼彻斯特码通常由NRZ 码与NRZ 码的时钟异或得到。NRZ 码这种二元码中低电平及高电平分别与二进制符号“0”及“1”一一对应,在整个码元期间内电平保持不变,电脉冲之间无间隔,即脉冲的宽度等于码元宽度,极性单一。这种信号比较适合于数字电路处理。一般用于近距离的电传机之间的信号传输。

3.2.3 密勒码――曼彻斯特码的一种变形码

密勒码又称延迟调制,它是数字双向码(曼彻斯特码)的一种变形。在密勒码中,“1”用码元周期中点处出现的跳变来表示,而对“0”则有两种情况:当出现单个“0”时,在码元周期内不出现跳变;但当遇到连“0”时,则在前一个“0”结束(也就是后一个“0”开始)时出现电平跳变。由上述编码规则可知,当两个“1”之间有一个“0”时,则在第一个“1”的码元周期中点与第二个“1”的码元周期中点之间无跳变,此时密勒码中出现的最大宽度,即两个码元周期[15]。

密勒码实际上是数字双相码经过一级触发器后得到的波形。因此密勒码是数字双相码的差分形式,它能克服数字双相码中存在的相位不确定问题。

3.3 曼彻斯特码及几种常见二元码的包含定时信息的讨论

曼彻斯特码的目的是为了解决通信的基带信号处理中线路编码的问题,在这样的背景下,对曼彻斯特码及几种常见的二元码的定时分量的的讨论显得非常必要。首先,讨论一般线路传输码的功率谱计算。

曼彻斯特解码程序

曼彻斯特解码 1、变量定义 (2) 2、Manchest初始化 (2) 3、Manchest解码信号翻转 (3) 4、过滤错误的卡号 (4) 5、获取正确的卡号 (5) 6、Manchest获取卡号数据 (6) 7、通过中断采样获取刷卡数据 (9)

1、变量定义 #define TH1_370US_H 0XFE //晶振11.0592MHZ,12T模式 #define TL1_370US_L 0XAB #define SIGNAL_FLIP_TIME 10 //每隔100ms翻转一次读卡信号 #define REPEAT_TIME 5 //500ms后重复读卡 #define CLEAR_CARD_TIME 20 //2S后清除卡号数据 #define MANCHEST_TIME 5 sbit PULSE = P3^2; sbit RFEN = P3^5; //曼彻斯特解码脉冲信号 sbit MANCHEST0= P3^2; //wiegand0 sbit MANCHEST1= P3^3; //wiegand1 uchar code CheckingTab[32]={ //接收到10组卡号的偶校验 0X00,0X01,0X01,0X00,0X01,0X00,0X00,0X01, //这里数值是低五位的偶校验值 0X01,0X00,0X00,0X01,0X00,0X01,0X01,0X00, 0X01,0X00,0X00,0X01,0X00,0X01,0X01,0X00, 0X00,0X01,0X01,0X00,0X01,0X00,0X00,0X01}; uchar WGCardBuf[5]; //卡号 uchar CopyCardBuf[5]; //备份卡号 uchar ManchestBuf[11]; //暂存接收到的11组数据 uchar idata g_ucManchestTime = MANCHEST_TIME; // uchar idata g_ucDWithCardTime= 0; //隔500ms处理该卡号 uchar idata g_ucPreambleFlag = 0; uchar idata g_ucERAgainTimer = 0; //每隔100ms翻转一次RFEN uchar idata g_ucStoreGroupCnt= 0; //接收到几组数据,这里为11组才可能正确 uchar idata g_ucEGroupBitCnt = 0; //每组数据有5个为,5=4位卡号+1位偶校验 uchar idata g_ucPreambleCount= 0; //9位为1的引导码 uchar idata g_ucRemvoeCardTime=0; //隔多久清除以前的卡号数据,这里为3s 2、Manchest初始化 /******************************************************************** 函数原型:ManchestInit 功能:曼彻斯特解码变量初始化 输入:无 输出:无 说明:无

曼彻斯特码原理与应用

曼彻斯特码 1 曼彻斯特原理介及其编码规则 (1) 2 曼彻斯特码的各方面应用 (3) 3 曼彻斯特码与差分曼彻斯特码 (5) 1 曼彻斯特原理介及其编码规则 Manchester编码是一种常用的基带信号编码。它具有内在的时钟信息,因而能使网络上的每一个系统保持同步。在Manchester编码中,时间被划分为等间隔的小段,其中每小段代表一位数据。每一小段时间本身又分为两半,前半个时间段所传信号是该时间段传送比特值的反码,后半个时间段传送的是比特值本身。可见在一个时间段内,其中间点总有一次信号电平的变化,因此携带有信号传送的同步信息而不需另外传送同步信号。 Manchester编码采用电平由高到低变化的下降沿代表0,电平由低到高变化的上升沿代表1;发送和接收的同步工作方式保证了信息传递的方便和可靠。 为了减少控制器与位置反馈单元之间的连线数目,信息的传递可采用两根线的串行方式。发送端和接收端的同步靠信息脉冲串之前的同步脉冲串来实现。 在电信领域,曼彻斯特码,(也称作相位码或者PE)是一种数据通讯线性码,它的每一个数据比特都是由至少一次电压转换的形式所表示的曼彻斯特编码被因此被认为是一种自定时码。自定时意味着数据流的精确同步是可行的。每一个 图1 二进制码和曼彻斯特码对比图 比特都准确的在一预先定义时间时期的时间中被传送。但是,今天有许许多多的复杂的编码方法(例如8B/10B编码),在达到同等目的情况下只需要更少带宽负荷并且只有更少的同步信号相位模糊。

二进制码与曼彻斯特码波形的对比关系如图1所示。 在曼彻斯特编码中,用电压跳变的相位不同来区分1和0,即用正的电压跳变表示0,用负的电压跳变表示1。因此,这种编码也称为相应编码。由于跳变都发生在每一个码元的中间,接收端可以方便地利用它作为位同步时钟,因此,这种编码也称为自同步编码。 用于数字基带传输的码型种类较多,Manchester码是其中常用的一种。Manchester码是一种用跳变沿(而非电平)来表示要传输的二进制信息(0或1),一般规定在位元中间用下跳变表示“1”,用上跳变表示“0”. 曼彻斯特编码被被认为是一种自定时码自定时意味着数据流的精确同步是可行的。每一个比特都准确的在一预先定义时间时期的时间中被传送。 在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作时钟信号,又作数据信号;从高到低跳变表示"1",从低到高跳变表示"0"。还有一种是差分曼彻斯特编码,每位中间的跳变仅提供时钟定时,而用每位开始时有无跳变表示"0"或"1",有跳变为"0",无跳变为"1"。 曼彻斯特编码提供了一种简单的方法在长时间段内没有电平跳变的情况下,仍然能够对任意的二进制序列进行编码,并且防止在这种情况下同步时钟信号的丢失以及防止低通模拟电路中低频直流飘移所引起的比特错误。如果保证传送的编码交流信号的直流分量为零并且能够防止中继信号的基线漂移,那么很容易实现信号的恢复和防止能量的浪费。曼彻斯特码具有丰富的位定时信息。 在物理层的同步时钟编码技术用来将时钟和数据编码统一在一个同步比特数据流中。在这项技术中,在电缆上被传送的真实二元数据不是以一连串的逻辑序列1或者0来表示的(这项技术也是一种不归零码NRZ)。这些要传送的数据比特被转换成一个略微不同格式,比起直接用二进制码(i.e. NRZ)来有许多的优势。 在曼彻斯特编码方案中,比特周期中间的0到1跳变表示逻辑0,比特周期中间的1到0的跳变表示逻辑1。注意信号跳变不一定在‘bitboundaries’比特边界(一个比特和另外一个比特)之间的分界线,但是总是发生在每个比特的中间位置.曼彻斯特编码的规则列出如下表1所示。

曼彻斯特码编解码的FPGA设计与实现

武汉理工大学 本科生毕业设计(论文)开题报告

目录 摘要 .......................................................................................................................................................... I ABSTRACT ............................................................................................................................................. II 1 绪论 (1) 1.1 背景及目的意义 (1) 1.2 国内外研究现状 (1) 1.2.1 在电信业的应用 (1) 1.2.2 在工业控制中的应用 (2) 1.2.3 在车辆总线中的应用 (2) 1.2.4 在石油勘测探井中的应用 (2) 1.3 项目研究内容及组织结构 (2) 2. 开发工具及仿真软件 (4) 2.1 FPGA原理 (4) 2.2 QuartusⅡ (5) 2.2.1 QuartusⅡ系统的特点 (5) 2.2.2 Quartus II下的FPGA设计 (6) 2.2.3 QuartusⅡ的仿真 (8) 2.3 Modelsim (8) 3 曼彻斯特码 (10) 3.1 数字通信中位同步与线路编码 (10) 3.2 曼彻斯特码及几种相关的二元码码型介绍 (11) 3.2.1 曼彻斯特码 (11) 3.2.2 单极性非归零波形 (12) 3.2.3 密勒码――曼彻斯特码的一种变形码 (12) 3.3 曼彻斯特码及几种常见二元码的包含定时信息的讨论 (12) 3.4曼彻斯特码的优点 (18) 3.5曼彻斯特码的应用范围 (19) 3.5.1在LAN中的应用 (19) 3.5.2在测井系统中的应用 (19) 3.6 曼彻斯特编码规则 (20) 4 系统方案设计 (23) 4.1 编码电路的设计 (23) 4.1.1 并串转换器的设计 (24) 4.1.2 NRZ码转换为曼彻斯特码 (25) 4.2 解码电路的设计 (26) 4.2.1 总体设计 (26) 4.2.2 各模块设计 (27) 5系统功能的实现 (30) 5.1 Verilog HDL语言简介 (30)

基于AVR单片机的曼彻斯特编解码及其应用_王建国

—258 — 基于A VR 单片机的曼彻斯特编解码及其应用 王建国,孙敬华,曹丙霞 (中国海洋大学工程学院,青岛 266071) 摘 要:提出了一种在较高通信速率(10kbps)下用A VR 单片机软件实现曼彻斯特码编解码的方法。介绍了小功率无线传输系统的工作原理和通信协议。详细阐述了用软件识别同步时钟、起始符、同步头和数据的技术方法。 关键词:曼彻斯特编解码;无线通信;A VR 单片机 Manchester Code/decode Based on A VR and Its Application WANG Jianguo, SUN Jinghua, CAO Bingxia (Engineering College, Ocean University of China, Qingdao 266071) 【Abstract 】The paper introduces a hi-efficient coding/decoding method to apply A VR MCU to code/decode Manchester at 10kbps successfully,principle and communication protocol in wireless communicating systems of low power. It provides in detail a technique about how to identify initial flag, synchronization code and data. 【Key words 】Manchester code/decode; Wireless communication; A VR 计 算 机 工 程Computer Engineering 第32卷 第20期 Vol.32 № 20 2006年10月 October 2006 ·工程应用技术与实现· 文章编号:1000—3428(2006)20—0258—03 文献标识码:A 中图分类号:TP368.2 随着无线通信芯片技术的发展,越来越多的便携式或电池供电的无线传输设备进入人们日常生活中。例如,遥控车门开关(RKE)系统、汽车轮胎压力监视系统(TPMS)、无线内窥镜系统、蓝牙技术等。这种小功率无线传输系统的关键技术是在低电流消耗和信道干扰较强的情况下实现数据稳定可靠的传输。 曼彻斯特码由于其特殊的性能,被广泛应用于小功率无线传输系统中。曼彻斯特编码是串行数据传输的一种重要的编码方式。曼彻斯特编码最大的优点是:数据和同步时钟统一编码,曼码中含有丰富的时钟信号,直流分量基本为零,接收器能够较容易恢复同步时钟,并同步解调出数据,具有很好的抗干扰性能,这使它更适合于信道传输。 传统的曼彻斯特码的编解码一般采用专用芯片电路实现,数据的串/并转换和信号的合成都通过硬件电路实现,导致电路复杂,系统成本提高。考虑到目前微处理器功能不断提高,在不影响系统微处理器完成其它处理任务的情况下,完全可以采用微处理器来实现曼彻斯特码的编码和解码。本设计提出了一种简单有效的曼彻斯特码解调方法,并选用高速AVR 单片机及软件编程实现了曼彻斯特码的编解码。 1 小功率无线传输系统工作原理 小功率无线传输系统一般由射频发射机和接收监视器两部分组成。射频发射机采集和发射信息;接收监视器接收信息,并根据接收到的信息执行相应的操作。 1.1 射频发射机模块 射频发射机一般采用电池供电,以遥控车门开关 (RKE)系统为例,电池需要连续工作3~5年,低功耗设计是电路设计的关键。在此射频发射机主控MCU 选用Atmel 公司的高性能、低功耗微控制器ATmega48V 。该芯片工作电压最低可达1.8V ,具有5种省电休眠模式,适合低功耗应用场合。根据处理器工作状态的不同进入相应的休眠模式。在掉电模式下耗电小于1μA ,极大地降低了功耗。 射频发射机的系统框图如图1所示。MCU 首先对数据进行曼彻斯特码编码,然后把数据送到射频发射芯片发射。 1.2 射频接收监视器模块 接收监视器的主控MCU 采用Atmel 公司的高性能、高速RISC 微控制器ATmega169。该芯片内嵌了4*25段的LCD 驱动器,通过它可以在LCD 上显示一些用户关心的状态信息,如轮胎气压信息等。ATmega169单片机的T/C1具有一个捕捉单元,可用来捕捉外部事件,并为其赋予时间标记以说明此事件发生的时刻。外部事件发生的触发信号可由引脚ICP1(输入捕捉引脚)输入,也可通过模拟比较器单元实现。 本设计采用T/C1的输入捕捉单元接收数据, 即曼彻斯特码数据从引脚ICP1输入。这种数据接收处理方法要求MCU 对外部输入事件具有足够的处理能力,微控制器ATmega169工作在16MHz 时性能高达16MIPS 。实验证明,当数据波特率为10kHz 时,系统能够正确接收数据。 接收监视器的系统框图如图2所示。射频信号经接收芯片解调,输出的曼码数据经过引脚ICP1输入到MCU ,MCU 利用单片机的T/C1的引脚捕捉功能虽然能够实现曼码数据电平时间精确测量,但存在一个明显的不足,就是对干作者简介:王建国(1954-),男,教授,主研方向:智能仪器仪表 与计算机控制技术;孙敬华、曹丙霞,硕士生 收稿日期:2005-11-08 E-mail :sunjinghua-2001@https://www.doczj.com/doc/1b4620835.html,

曼彻斯特解码原则+125K EM4100系列RFID卡解码源程序分析

曼彻斯特解码原则+125K EM4100系列RFID卡解码源程序分析 曼彻斯特解码原则 1.曼彻斯特编码 曼彻斯特编码(Manchester Encoding),也叫做相位编码(PE),是一个同步时钟编码技术,被物理层使用来编码一个同步位流的时钟和数据。曼彻斯特编码被用在以太网媒介系统中。曼彻斯特编码提供一个简单的方式给编码简单的二进制序列而没有长的周期没有转换级别,因而防止时钟同步的丢失,或来自低频率位移在贫乏补偿的模拟链接位错误。在这个技术下,实际上的二进制数据被传输通过这个电缆,不是作为一个序列的逻辑1或0来发送的(技术上叫做反向不归零制(NRZ))。相反地,这些位被转换为一个稍微不同的格式,它通过使用直接的二进制编码有很多的优点。 曼彻斯特编码,常用于局域网传输。在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作时钟信号,又作数据信号;从高到低跳变表示"1",从低到高跳变表示"0"。还有一种是差分曼彻斯特编码,每位中间的跳变仅提供时钟定时,而用每位开始时有无跳变表示"0"或"1",有跳变为"0",无跳变为"1"。 对于以上电平跳变观点有歧义:关于曼彻斯特编码电平跳变,在雷振甲编写的<<网络工程师教程>>中对曼彻斯特编码的解释为:从低电平到高电平的转换表示1,从高电平到低电平的转换表示0,模拟卷中的答案也是如此,张友生写的考点分析中也是这样讲的,而《计算机网络(第4版)》中(P232页)则解释为高电平到低电平的转换为1,低电平到高电平的转换为0。清华大学的《计算机通信与网络教程》《计算机网络(第4版)》采用如下方式:曼彻斯特编码从高到低的跳变是0 从低到高的跳变是1。 两种曼彻斯特编码是将时钟和数据包含在数据流中,在传输代码信息的同时,也将时钟同步信号一起传输到对方,每位编码中有一跳变,不存在直流分量,因此具有自同步能力和良好的抗干扰性能。但每一个码元都被调成两个电平,所以数据传输速率只有调制速率的1/2。 就是说主要用在数据同步传输的一种编码方式。 【在曼彻斯特编码中,用电压跳变的相位不同来区分1和0,即用正的电压跳变表示0,用负的电压跳变表示1。因此,这种编码也称为相应编码。由于跳变都发生在每一个码元的中间,接收端可以方便地利用它作为位同步时钟,因此,这种编码也称为自同步编码。】 2. 曼彻斯特编码(Manchester Encoding),也叫做相位编码(PE);常用于局域网传输。在曼

一种简便的ID卡曼彻斯特解码方法

一种简便的ID卡曼彻斯特解码方法 我这里介绍的是常用的125KHz的ID卡。ID卡内固化了64位数据,由5个区组成:9个引导位、10个行偶校验位“PO~P9′’、4个列偶校验位“PC0~PC3”、40个数据位“D00~D93”和1个停止位S0。9个引导位是出厂时就已掩膜在芯片内的,其值为“111111111”,当它输出数据时,首先输出9个引导位,然后是10组由4个数据位和1个行偶校验位组成的数据串,其次是4个列偶校验位,最后是停止位“0”。“D00~D13”是一个8位的晶体版本号或ID识别码。“D20~D93”是8组32位的芯片信息,即卡号。注意校验位都是偶校验,网上有些资料写的是奇校验,很明显是错的,如果是奇校验的话,在一个字节是FF 的情况下,很容易就出现9个1,这样引导位就不是唯一的了,也就无法判断64位数据的起始位了。 数据结构如下图:

我读的一个ID卡数据是111111111 10001 00101 00000 00011 00000 01010 00000 11011 00110 01100 01100,对应的ID卡号是01050d36。 ID卡数据采用曼彻斯特编码,1对应着电平下跳,0对应着电平上跳。每一位数据的时间宽度都是一样的(1T)。由于电路参数的差别,时间宽度要实际测量。解码芯片采用U2270B,单片机采用89S52。U2270B的输出脚把解码得到的曼彻斯特码输出到89S52的INT脚。在89S52的外部中断程序中完成解码。 在没有ID卡在读卡器射频范围内时,U2270B的输出脚会有杂波输出,ID卡进入读卡器射频范围内后,会循环发送64位数据,直到ID卡离开读卡器的有效工作区域。 根据ID卡的数据结构,64位数据的最后一位停止位是0。最开始的9位引导位是1,可以把0111111111做为引导码。也就是说在ID卡进入读卡器工作范围后,丢掉ID卡发送的第一个64位码,检测最后1位0,然后检测ID卡发送的第2个64位码的9个引导码111111111,引导码检测成功后,解码剩余的55位码。得到ID卡的数据。然后丢掉ID卡发送的第3个64位码,检测第3个64位码的最后1位0,再检测ID卡发送的第4个64位码。这样连续3次检测到同一个码,就认为解码到了正确的ID卡号。 之所以要丢掉ID卡发送的第一个64位数据,是因为U2270B在没有ID卡刷卡时,也会输出波形到89S52的INT脚,这样将无法判断ID卡数据的头码。从第2个码开始解码能确保检测的头码正确。丢掉第3个码的原因是在检测第2个码时,最后一位停止位也被解码,那么就不能采用 0111111111来检测第3个码了,只能检测第3个码的最后1位0,再解码第4个码。 下面详细介绍解码原理,程序中要用到的变量定义如下: Bit_over:为0,表示1位数据处理完,为1,表示当前处于数据位的跳变处。Head_start:检测到头码0时,把head_start置1,然后连续检测到8次下降沿时间间隔大于0.75T,小于1.25T,并且 head_start为1,置位头码标志head_flag。Head_start的作用就是保证是连续检测到0111111111。 Head_flag:头码标志,检测到0111111111后置1。 Prev_bit:保存当前数据位的值,下一位数据的值要根据当前位的值来判断。Pulse_width:16 位数据,保存INT脚两次下降沿之间的时间间隔。 Bit_cnt:检测完头码后,每次检测5位数据,也就是一行。 Row:行数,不包括头码,总共11行,用来判断64位数据是否接收完。 Buff[11]:缓冲区,用来保存接收的11行数据。每个数据只有低5位有效。 Id_data[11]:保存缓冲区的11个数据,进行校验,得到ID卡号。

曼彻斯特编解码器

工具软件实训报告 项目名称:曼彻斯特编解码器指导老师: 系科: 专业: 姓名: 学号:

目录: 一:实训要求 (3) 二:实训原理 (3) 三:实训思路 (4) 四:实训步骤 (4) 五:原理图、仿真结果图以及结论分析 (5) 1.曼彻斯特编解码器(实现16bit数据的编解码) (5) 1.1曼彻斯特编解码器电路原理图: (5) 1.2模块详解 (6) 1.3仿真图以及分析 (10) 六:个人总结 (11)

一:实训要求 (1)通过学习原理图输入设计的方法掌握使用工具软件Quartus Ⅱ设计小型数字电路; (2)查阅文献,了解曼彻斯特编解码器的基本原理,并提出在Quartus Ⅱ软件环境下用VHDL进行仿真的方案。 (3)完成设计对编码器的要求:能够对输入的16bit数据进行曼彻斯特编码,输入有时钟、使能、16bit并行数据、写信号等;输出有编码结束和曼彻斯特编码信号(都为1位信号)等。 (4)完成设计对解码器要求:能够把输入的串行曼彻斯特码解码成原先的并行数据,输入有时钟、曼彻斯特码输入(1bit)、使能信号等,输出有提取的同步时钟信号、解码完成(1bit),并行数据(16bit)等。 二:实训原理 曼彻斯特编码,也叫做相位编码(PE),是一个同步时钟编码技术,在以太网媒介系统中,被物理层使用来编码一个同步位流的时钟和数据。它的每一个数据比特都是由至少一次电压转换的形式所表示的。在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作为时钟信号,又作为数据信号。按照曼彻斯特码在IEEE 802.4(令牌总线)以及IEEE 802.3 (以太网)中的规定,本次实训将从高电平到低电平的

曼彻斯特编码

曼彻斯特编码(Manchester Encoding),也叫做相位编码(PE),是一个 曼彻斯特编码 同步时钟编码技术,被物理层使用来编码一个同步位流的时钟和数据。曼彻斯特编码被用在以太网媒介系统中。曼彻斯特编码提供一个简单的方式给编码简单的二进制序列而没有长的周期没有转换级别,因而防止时钟同步的丢失,或来自低频率位移在贫乏补偿的模拟链接位错误。在这个技术下,实际上的二进制数据被传输通过这个电缆,不是作为一个序列的逻辑1或0来发送的(技术上叫做反向不归零制(NRZ))。相反地,这些位被转换为一个稍微不同的格式,它通过使用直接的二进制编码有很多的优点。 曼彻斯特编码,常用于局域网传输。在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作时钟信号,又作数据信号;从高到低跳变表示"1",从低到高跳变表示"0"。还有一种是差分曼彻斯特编码,每位中间的跳变仅提供时钟定时,而用每位开始时有无跳变表示"0"或"1",有跳变为"0",无跳变为"1"。 对于以上电平跳变观点有歧义:关于曼彻斯特编码电平跳变,在雷振甲编写的<<网络工程师教程>>中对曼彻斯特编码的解释为:从低电平到高电平的转换表示1,从高电平到低电平的转换表示0,模拟卷中的答案也是如此,张友生写的考点分析中也是这样讲的,而《计算机网络(第4版)》中(P232页)则解释为高电平到低电平的转换为1,低电平到高电平的转换为0。清华大学的《计算机通信与网络教程》《计算机网络(第4版)》采用如下方式:曼彻斯特编码从高到低的跳变是 0 从低到高的跳变是 1。 两种曼彻斯特编码是将时钟和数据包含在数据流中,在传输代码信息的同时,也将时钟同步信号一起传输到对方,每位编码中有一跳变,不存在直流分量,因此具有自同步能力和良好的抗干扰性能。但每一个码元都被调成两个电平,所以数据传输速率只有调制速率的1/2。 [编辑本段] 编码方式 就是说主要用在数据同步传输的一种编码方式。 【在曼彻斯特编码中,用电压跳变的相位不同来区分1和0,即用正的电压跳变表示0,用负的电压跳变表示1。因此,这种编码也称为相位编码。由于跳变都发生在每一个码元的中间,接收端可以方便地利用它作为位同步时钟,因此,这种编码也称为自同步编码。】 【关于数据表示的约定】 事实上存在两种相反的数据表示约定。 第一种是由G. E. Thomas, Andrew S. Tanenbaum等人在1949年提出的,它规定0是由低-高的电平跳变表示,1是高-低的电平跳变。 第二种约定则是在IEEE 802.4(令牌总线)和低速版的IEEE 802.3 (以太网)中规定, 按照这样的说法, 低-高电平跳变表示1, 高-低的电平跳变表示0。 由于有以上两种不同的表示方法,所以有些地方会出现歧异。当然,这可以在差分曼彻斯特编码(Differential Manchester encoding)方式中克服. 曼切斯特和差分曼切斯特编码是原理基本相同的两种编码,后者是前者的改进。他们的特征是在传输的每一位信息中都带有位同步时钟,因此一次传输可以允许有很长的数据位。 曼切斯特编码的每个比特位在时钟周期内只占一半,当传输“1”时,在时钟周期的前一半为高电平,后一半为低电平;而传输“0”时正相反。这样,每个时钟周期内必有一次跳变,这种跳变就是位同步信号。

1553B总线中曼彻斯特编解码器的设计

1553B总线中曼彻斯特编解码器的设计 时间:2011-04-11 来源:现代电子技术作者:武鹏,毕君懿 关键字:1553B总线曼彻斯特编解码器 0 引言曼彻斯特码是一种总线数据传输双极性码。在数字信号基带传输中,通过这种信道编码技术可使传送数据同时携带时钟信息,故也称其为自同步曼彻斯特码。在信道传输中曼彻斯特码有很好的抗干扰能力。接收端可以将分离出的时钟用于解码,从而简化了解码过程。 针对曼彻斯特码特点,可采用位同步方法提取时钟,常采用滤波法和数字锁相环法。滤波法采用的窄带滤波器不适合数字电路使用。数字锁相环法通过比较接收码元和本地码元为定时时钟的相位来添加扣除时钟脉冲,以达到调整相位的目的,但电路实现过于复杂。本文提出的时钟分离电路比数字锁相环简单,而且提取出来的时钟可以准确地采样到曼彻斯特码信号。 1 曼彻斯特码 曼彻斯特码是一种广泛用于以太网、短距离无线通信、航空电子综合系统中总线数据传输的双极性码。它的每个码元中点都存在一个电平跳变,1信号为一个从1到0的负跳变;0信号为一个从0到1的正跳变。由于曼彻斯特码在频谱中存在很强的定式分量,解码时可将分离出的时钟用来解码。另一方面,1553B传输电缆呈容性负载特性,所以在信号传输中,直流和低频分量将受到很大的衰减。曼彻斯特码频谱中不存在直流分量,而且低频分量也大大减小,很适合在1553B电缆中传输。 MIL-STD-1553B协议中采用的曼彻斯特码数据格式如图1所示。 同步头:占三位码元长度。命令字或状态字同步头的前1.5倍码元长度为高电平;后1.5倍码元长度为低电平,数据字同步头刚好相反。同步头用于区分字的类型以及标识字传输开始。 数据:16位数据位。图中bit3为数据最高位,依次递减,bit18为数据最低位。 奇偶校验位:这里采用奇校验。将16位数据按位同或的结果作为奇校验位。 2 曼彻斯特编码器的设计 由于曼彻斯特码的每个码元在其中心存在电平跳变,所以编码器的发送时钟频率至少应选择信息传输速率的2倍频。 通常编码器的实现方式有2种,基于移位寄存器,或者数据选择器。移位寄存器型编码器需要在编码开始后将同步头位、数据位、奇偶校验位通过字符格式编排器编排成一个并行数据,然后在发送时钟的控制下串行移位输出;数据选择器型编码器需要在编码开始后启动一个计数器,在计数器的控制下分别送出同步头、数据位、奇偶效验位。本文的编码器采用后者,其结构框图如图2所示。

曼彻斯特编解码器

工具软件实训报告 项目名称: 曼彻斯特编解码器 指导老师: 系科: 专业: 姓名: 学号: 目录: 一:实训要求 (2) 二:实训原理 (2) 三:实训思路 (3) 四:实训步骤 (3) 五:原理图、仿真结果图以及结论分析 (4) 1、曼彻斯特编解码器(实现16bit数据得编解码) (4) 1、1曼彻斯特编解码器电路原理图: (4) 1、2模块详解 (4) 1、3仿真图以及分析...................... 错误!未定义书签。六:个人总结、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、11

(1)通过学习原理图输入设计得方法掌握使用工具软件Quartus Ⅱ设计小型数字电路; (2)查阅文献,了解曼彻斯特编解码器得基本原理, 并提出在Quartus Ⅱ软件环境下用VHDL进行仿真得方案。 (3)完成设计对编码器得要求:能够对输入得16bit数据进行曼彻斯特编码,输入有时钟、使能、16bit并行数据、写信号等;输出有编码结束与曼彻斯特编码信号(都为1位信号)等。 (4)完成设计对解码器要求:能够把输入得串行曼彻斯特码解码成原先得并行数据,输入有时钟、曼彻斯特码输入(1bit)、使能信号等,输出有提取得同步时钟信号、解码完成(1bit),并行数据(16bit)等。 二:实训原理 曼彻斯特编码,也叫做相位编码(PE),就是一个同步时钟编码技术,在以太网媒介系统中,被物理层使用来编码一个同步位流得时钟与数据。它得每一个数据比特都就是由至少一次电压转换得形式所表示得。在曼彻斯特编码中,每一位得中间有一跳变,位中间得跳变既作为时钟信号,又作为数据信号。按照曼彻斯特码在IEEE 802、4(令牌总线)以及IEEE 802、3 (以太网)中得规定,本次实训将从高电平到低电平得跳变表示“0”,从低电平到高电平得跳变表示“1”。

曼彻斯特解码原则+KEM系列RFID卡解码源程序分析

曼彻斯特解码原则+K-EM系列RFID卡解码源程序分析

————————————————————————————————作者:————————————————————————————————日期:

曼彻斯特解码原则+125K EM4100系列RFID卡解码源程序分析 曼彻斯特解码原则 1.曼彻斯特编码 曼彻斯特编码(Manchester Encoding),也叫做相位编码(PE),是一个同步时钟编码技术,被物理层使用来编码一个同步位流的时钟和数据。曼彻斯特编码被用在以太网媒介系统中。曼彻斯特编码提供一个简单的方式给编码简单的二进制序列而没有长的周期没有转换级别,因而防止时钟同步的丢失,或来自低频率位移在贫乏补偿的模拟链接位错误。在这个技术下,实际上的二进制数据被传输通过这个电缆,不是作为一个序列的逻辑1或0来发送的(技术上叫做反向不归零制(NRZ))。相反地,这些位被转换为一个稍微不同的格式,它通过使用直接的二进制编码有很多的优点。 曼彻斯特编码,常用于局域网传输。在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作时钟信号,又作数据信号;从高到低跳变表示"1",从低到高跳变表示" 0"。还有一种是差分曼彻斯特编码,每位中间的跳变仅提供时钟定时,而用每位开始时有无跳变表示"0"或"1",有跳变为"0",无跳变为"1"。 对于以上电平跳变观点有歧义:关于曼彻斯特编码电平跳变,在雷振甲编写的<<网络工程师教程>>中对曼彻斯特编码的解释为:从低电平到高电平的转换表示1,从高电平到低电平的转换表示0,模拟卷中的答案也是如此,张友生写的考点分析中也是这样讲的,而《计算机网络(第4版)》中(P232页)则解释为高电平到低电平的转换为1,低电平到高电平的转换为0。清华大学的《计算机通信与网络教程》《计算机网络(第4版)》采用如下方式:曼彻斯特编码从高到低的跳变是0从低到高的跳变是1。 两种曼彻斯特编码是将时钟和数据包含在数据流中,在传输代码信息的同时,也将时钟同步信号一起传输到对方,每位编码中有一跳变,不存在直流分量,因此具有自同步能力和良好的抗干扰性能。但每一个码元都被调成两个电平,所以数据传输速率只有调制速率的1/2。 就是说主要用在数据同步传输的一种编码方式。 【在曼彻斯特编码中,用电压跳变的相位不同来区分1和0,即用正的电压跳变表示0,用负的电压跳变表示1。因此,这种编码也称为相应编码。由于跳变都发生在每一个码元的中间,接收端可以方便地利用它作为位同步时钟,因此,这种编码也称为自同步编码。】 2.曼彻斯特编码(Manchester Encoding),也叫做相位编码(PE);常用于局域网传输。

Verilog VHDL 曼彻斯特编码器

1.5.什么叫“综合”?一般“综合”包含哪些过程? 答:在电子设计领域中“综合”的概念可以表示为:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。 综合包含的过程:对VHDL或Verilog HDL进行处理分析,并将其转换成电路结构或模块,这时不考虑实际器件实现,即完全与硬件无关,这个过程是一个通用电路原理图形成的过程:第2步,对实际实现目标器件的结构进行优化,并使之满足各种约束条件,优化关键路径,等等。 2.10 使用Quartus II的 Mega Wizard Plug-In Manager宏功能模块中的PLL设计一个能实现图题2.10波形的电路元件(包括一个VHDL文件和一个*.bsf原理图图标)。其中:inclk0为电路的主频输入端,频率为50MHz;areset为异步置位端,c2和主频inclk0同频率。c1为主频inclk0的倍频输出信号。C0为c2的反相信号。Locked为相位控制信号,也是输出使能控制信号。( 2014am) 3.20 试用VHDL 语言设计一个曼彻斯特编码器。已知有时钟信号clk_d、时钟的倍频信号clk及时钟的反相信号clk_dn。串行数据输入为data_s,编码输出为mcode_out,输出使能信号为clk_lock_in,高电平有效(2012am)(2013am)(2014am) 提示:曼彻斯特码(Manchester Code)又称为数字双相码或分相码(Split-phase Code)。它的编码规则是:用分别持续半个码元周期的正(高)、负(低)电平组合表示信码“1”;用分别持续半个码元周期的负(低)、正(高)电平组合表示信码“0”。 图题3.20 用倍频时钟设计Manchester Code

曼彻斯特码

曼彻斯特码Manchester code (又称裂相码、双向码),一种用电平跳变来表示1或0的编码,其变化规则很简单,即每个码元均用两个不同相位的电平信号表示,也就是一个周期的方波,但0码和1码的相位正好相反。 其对应关系为: 0--》01 1--》10 信码0 1 0 0 1 0 1 1 0 双向码01 10 01 01 10 01 10 10 01 曼彻斯特编码是一种自同步的编码方式,即时钟同步信号就隐藏在数据波形中。在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作时钟信号,又作数据信号;从高到低跳变表示"1",从低到高跳变表示"0"。还有一种是差分曼彻斯特编码,每位中间的跳变仅提供时钟定时,而用每位开始时有无跳变表示"0"或"1",有跳变为" 0",无跳变为"1"。 两种曼彻斯特编码是将时钟和数据包含在数据流中,在传输代码信息的同时,也将时钟同步信号一起传输到对方,每位编码中有一跳变,不存在直流分量,因此具有自同步能力和良好的抗干扰性能。但每一个码元都被调成两个电平,所以数据传输速率只有调制速率的1/2。 曼彻斯特编码 曼彻斯特编码(Manchester Encoding),也叫做相位编码(PE),是一个同步时钟编码技术,被物理层使用来编码一个同步位流的时钟和数据。曼彻斯特编码被用在以太网媒介系统中。曼彻斯特编码提供一个简单的方式给编码简单的二进制序列而没有长的周期没有转换级别,因而防止时钟同步的丢失,或来自低频率位移在贫乏补偿的模拟链接位错误。在这个技术下,实际上的二进制数据被传输通过这个电缆,不是作为一个序列的逻辑1或0来发送的(技术上叫做反向不归零制(NRZ))。相反地,这些位被转换为一个稍微不同的格式,它通过使用直接的二进制编码有很多的优点。 曼彻斯特编码,常用于局域网传输。在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作时钟信号,又作数据信号;从低到高跳变表示"0",从高到低跳变表示"1"。还有一种是差分曼彻斯特编码,每位中间的跳变仅提供时钟定时,而用每位开始时有无跳变表示"0"或"1",有跳变为"0",无跳变为"1"。 对于以上电平跳变观点有歧义:关于曼彻斯特编码电平跳变,在雷振甲编写的<<网络工程师教程>>中对曼彻斯特编码的解释为:从低电平到高电平的转换表示1,从高电平到低电平的转换表示0,模拟卷中的答案也是如此,张友生写的考点分析中也是这样讲的,而《计算机网络(第4版)》中(P232页)则解释为高电平到低电平的转换为1,低电平到高电平的转换为0。清华大学的《计算机通信与网络教程》《计算机网络(第4版)》采用如下方式:曼彻斯特编码从高到低的跳变是 1 从低到高的跳变是0。

曼彻斯特编解码电路设计

中南大学 本科生毕业论文(设计) 题目曼彻斯特编解码电路设计 学生姓名李天栋 指导教师肖大光娄田心 学院信息科学与工程学院 专业班级通信工程03级2班 完成时间2007年5月

目录 目录 .......................................... 错误!未定义书签。摘要 .......................................... 错误!未定义书签。ABSTRACT ...................................... 错误!未定义书签。第一章绪论 ................................... 错误!未定义书签。 项目背景.................................... 错误!未定义书签。 项目研究内容和任务.......................... 错误!未定义书签。 论文各部分主要内容.......................... 错误!未定义书签。第二章曼彻斯特码的原理及其编码规则............ 错误!未定义书签。 曼彻斯特码简介及其编码规则.................. 错误!未定义书签。 曼彻斯特码原理.............................. 错误!未定义书签。 曼彻斯特码的应用范围........................ 错误!未定义书签。 曼彻斯特码在LAN中的应用.................. 错误!未定义书签。 曼彻斯特码在测井系统中的应用.............. 错误!未定义书签。第三章曼彻斯特编解码方案...................... 错误!未定义书签。

曼彻斯特编码

曼彻斯特编码 曼彻斯特编码(Manchester Encoding),也叫做相位编码(PE),是一个同步时钟编码技术,被物理层使用来编码一个同步位流的时钟和数据。曼彻斯特编码被用在以太网媒介系统中。曼彻斯特编码提供一个简单的方式给编码简单的二进制序列而没有长的周期没有转换级别,因而防止时钟同步的丢失,或来自低频率位移在贫乏补偿的模拟链接位错误。在这个技术下,实际上的二进制数据被传输通过这个电缆,不是作为一个序列的逻辑1或0来发送的(技术上叫做反向不归零制(NRZ))。相反地,这些位被转换为一个稍微不同的格式,它通过使用直接的二进制编码有很多的优点。 曼彻斯特编码,常用于局域网传输。在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作时钟信号,又作数据信号;从低到高跳变表示"0",从高到低跳变表示"1"。还有一种是差分曼彻斯特编码,每位中间的跳变仅提供时钟定时,而用每位开始时有无跳变表示"0"或"1",有跳变为"0",无跳变为"1"。 对于以上电平跳变观点有歧义:关于曼彻斯特编码电平跳变,在雷振甲编写的<<网络工程师教程>>中对曼彻斯特编码的解释为:从低电平到高电平的转换表示1,从高电平到低电平的转换表示0,模拟卷中的答案也是如此,张友生写的考点分析中也是这样讲的,而《计算机网络(第4版)》中(P232页)则解释为高电平到低电平的转换为1,低电平到高电平的转换为0。清华大学的《计算机通信与网络教程》《计算机网络(第4版)》采用如下方式:曼彻斯特编码从高到低的跳变是 1 从低到高的跳变是0。 两种曼彻斯特编码是将时钟和数据包含在数据流中,在传输代码信息的同时,也将时钟同步信号一起传输到对方,每位编码中有一跳变,不存在直流分量,因此具有自同步能力和良好的抗干扰性能。但每一个码元都被调成两个电平,所以数据传输速率只有调制速率的1/2。 就是说主要用在数据同步传输的一种编码方式。 【在曼彻斯特编码中,用电压跳变的相位不同来区分1和0,即用正的电压跳变表示0,用负的电压跳变表示1。因此,这种编码也称为相应编码。由于跳变都发生在每一个码元的中间,接收端可以方便地利用它作为位同步时钟,因此,这种编码也称为自同步编码。】 Manchester encoding uses the transition in the middle of the timing window to determine the binary value for that bit period. In Figure , the top waveform moves to a lower position so it is interpreted as a binary zero. The second waveform moves to a higher position and is interpreted as a binary one . 【关于数据表示的约定】 事实上存在两种相反的数据表示约定。

曼彻斯特编码的verilog实现

module bianma(din,rst,clk16x,clk96,start,tx,sr,state,clk_en,man); input rst,clk16x,start; input[7:0] din; output tx,clk96,sr,state,clk_en,man; reg clk_en; reg[7:0] sr; reg clk96; reg tx,man; reg[3:0] state; reg[2:0] cnt; always @(posedge clk16x) begin cnt<=cnt+1; if(cnt==7) clk96<=~clk96; end always @(negedge clk16x or negedge start or posedge rst) begin if(rst) begin clk_en<=1'd0;end else if(!start) begin clk_en<=1'b1;end else if(state==4'd12) begin clk_en<=1'b0;end end always @(negedge clk96 or posedge rst) begin if(rst) begin tx<=1'b1;sr<=8'b0;end else if(state==4'd1) begin sr<=din;end else if(state==4'd2) begin tx<=1'b0;end else if((state>=4'd3)&&(state<=4'd10)) begin tx<=sr[0]; sr[6:0]<=sr[7:1];sr[7]<=1'b1;end else if(state==4'd11) begin tx<=1'b1;end else tx<=1'b1; end always begin if((state>=4'd3)&&(state<=4'd10)) begin man<=tx^clk96;end else man<=1'b0; end always @(posedge clk96 or posedge rst or negedge clk_en) begin if(rst) state<=4'b0000; else if(!clk_en) state<=4'b0000; else state<=state+1; end endmodule

相关主题
文本预览
相关文档 最新文档