曼彻斯特编解码器

合集下载

一种基于时钟提取的曼彻斯特编解码设计

一种基于时钟提取的曼彻斯特编解码设计

interference power. In this paper,through the analysis of the traditional decoding scheme,a Manchester
code decoder based on clock extraction scheme is proposed to eliminate the phase accumulation error of the
SONG Yi⁃ding1,WANG Zhen⁃hua1,TIAN Qiao⁃hong2,MA Zhi⁃min1
(1. Software Company of Xuji Electric Co.,Ltd.,Xuchang 461000,China;2. Henan Mobile Xuchang
Branch,Xuchang 461000,China)
位误差且会不断的累积。文中提出的一种基于时钟提
线路编码格式,其通过高低脉冲的方式进行二进制
取的编解码设计,可以有效的从曼彻斯特码流中提取
编码的传输,可以有效地消除直流成分,同时提供了
同步时钟,结构灵活、性能稳定,取得了良好的效果。
一种同步机制,保证了发送端与接收端信号的同步,
1 曼彻斯特码工作原理
具有时钟恢复和抗干扰性强的特点,广泛应用于各
clock system. The structure is flexible and the performance is stable. At the same time,the whole emus
design is simulated with the ISIM software of XILINX Company,and the feasibility and correctness of

曼彻斯特编码在列控中心数据传输中的研究——解码器设计

曼彻斯特编码在列控中心数据传输中的研究——解码器设计

随着列 车运行 速 度不 断 提 高 , 由轨 道 电路 将 闭
塞信息送至车载设备的方式 , 在信息量方面已经ቤተ መጻሕፍቲ ባይዱ
能满 足列 车 安 全 高 速 行 驶 的 要 求 。为 适 应 铁 路 发 展 , 证运输 安全 , 足运 营需 求 , 应 提 速 战 略 和 保 满 适
1 曼 彻斯 特 码 分 析
概率 为 0 4 .。
8—
铁道通信信号
20 0 8年第 4 4卷第 l 2期

CC R 校验 器
曼彻斯 特解码 器 缓冲 区
接收 状态
图 8 硬 件 模 块 图 图 4 解 码 器 内部 电路 结 构 图
字码 ) 入端 ;h cu为 解码 后 数 据输 出端 ;t 输 suh s p为 o
数 据 出错 后输 出信号 ( 出错 变 为 高 电平 )j ga ;ngo为 i
曼彻斯 特编码 的分析 以及曼彻斯 特解 码模块 的设计
曼彻 斯特码 的功率 谱公式 为 :

A卜 2 ( 6 一 十 2 ) ) ( (
】 A 2 ( 1 )
与仿真 。
列 控 中心是 列 车运 行控 制 系统 的 核心 , 可 以 它
4(-) P P[ 1
传输车 站联锁 、 超速 防 护 系统 所需 要 的 全部 地 面 信 息, 通过 驱动接 口控制 相应 的道 岔 和信 号 机 。列 控 信 息传输 媒介— —轨 道 电路 和 点式 设 备 , 信 息传 将 送给 C C T S车载设备 。 保证 数据传 输 的实 时性 与可靠性 是保证 列车 行 车安全 的必要条 件 ; 因此 对 曼彻 斯 特 编码 的分 析 有 助于提 高数据传 输 的安 全性 能 。

用FPGA实现曼彻斯特编解码_林艺文

用FPGA实现曼彻斯特编解码_林艺文

收稿日期:2003210207作者简介:林艺文(1979~),男,福建东山人,硕士研究生.基金项目:汕头大学基金会课题(NO 1140-934046)用FPG A 实现曼彻斯特编解码林艺文,方展伟(汕头大学电子信息工程系,汕头 515063)摘 要:使用M AXP LUS Ⅱ和FPG A C om piler Ⅱ软件及VH D L 硬件描述语言,采用自顶向下设计方法设计曼彻斯特编解码器,每帧数据包括同步字、有效数据和冗余校验位三部分,最终在Altera 公司的FPG A 芯片EPF10K 10LC8424进行验证.实验结果表明,FPG A 能很好地实现曼彻斯特编解码器,而且该编解码方式具有抗干扰能力强,传输速率高等优点.关键词:FPG A ;曼彻斯特码;VH D L ;CRC中图分类号:T N915105 文献标识码:A 文章编号:100124217(2004)022*******0 引 言由于曼彻斯特编码的每个码元的中心部分都存在电平跳变,而且方波周期内正、负电平各占一半,因此在频谱中存在很强的定时分量,不存在直流分量,在“以太网”和短距离无线通信等数据传输系统中得到广泛的应用.通常采用的办法是用单片机的串行I/O 口或者专用的曼彻斯特编码译码器H D15530来完成曼彻斯特的编解码,但这两种方法都有许多不足之处:第一、在利用单片机或专用芯片进行编解码时,对传输的数据只能进行奇偶校验,在条件比较恶劣的场合,特别是在无线通信,数据极易出错,奇偶校验不能检测出这类突发性错误;第二、单片机的串口通信和专用芯片在传输速率和每帧的有效数据位数等方面都作了严格的限制;第三、在要求高速的传输速率的场合,单片机和专业芯片都难以实现[1,2].在现代电子设计领域,VH D L 和现场可编程逻辑器件的广泛应用使数字系统设计更为灵活,大大缩短了开发周期[3].本文用VH D L 实现曼彻斯特编解码.设计中使用Al 2tera 公司开发的MAXP LUS Ⅱ进行仿真和布线,而使用Synopsys 公司的FPG A C om piler Ⅱ进行综合.1 编译码设计思想本文的设计即采用的编译码规则是根据H D 215530曼彻斯特编解码器进行改进的[2].假设传输的数据精度为12位,以98BH 为例,其码型结构如图1所示,数据0用01(零相位的一个周期的方波)表示,1则用10(π相位的一个周期的方波).2004年5月M ay 2004汕头大学学报(自然科学版)Journal of Sh antou U niversity (N atural Science)第19卷 第2期V ol 119N o 12图1 曼彻斯特编码的码型结构图其中,同步字有两种类型:低电平在先高电平在后为命令同步;高电平在先低电平在后为数据同步.高低电平的宽度均为115位,因此同步字宽度为3位由于每个数据位的中点都存在跳变,编码器需要大于或等于二倍频于所传数据速率的系统时钟.为了减少功耗和提高电路的可实现性,本文采用二倍频的时钟和单极性曼彻斯特编码.由图1可看到每帧的最后四位为校验位.为了提高系统的检错/纠错能力本文采用循环冗余校验.循环冗余码(CRC )是在严密的代数学理论基础上建立的,它特别适合于检测和纠错错误,一则因为它有很强的检测能力,二则是因为编码器及错误检测纠错电路都很容易实现.根据CRC 的编码思想[4,5],对于(16,12)码,可由x 16+1确定生成多项式为G (x )=x 4+1.2 编码器时序及结构当系统时钟(C LK )的上升沿到来时,如果编码使能(E NABLE )为高,编码周期将开始并持续一个帧长或20个编码时钟(即40个系统时钟)周期.同时,如果同步选择(SY N SE LECT )为高时,产生一个数据同步字;为低时,产生一个命令同步字.当编码器准备好接收数据时,发送数据(SE ND DAT A )变为高电平,并保持12个编码时钟周期.在编码时钟的上升沿对串行数据输入(DAT AI N )进行抽样和编码.根据上面的编码规则和时序说明,电路设计使用硬件描述语言(VH D L )来实现,并用Altera 公司的FPG A 芯片进行验证.设计中采用自顶向下的设计方法,将整个编码系统分成各个模块,编码总体模块框图如图2所示.图2 曼彻斯特编码总体框图46汕头大学学报(自然科学版)第19卷由于数据是串行输入的,因此上图中的CRCC 采用串行CRC 编码方法.通常,串行CRC 的编码可由线性反馈移位寄存器(LFSR )来实现.LFSR 使用异或运算及移位除法运算来产生CRC 校验码.现以本文所用到的CRC 码为例来说明串行CRCC 的VH D L 的实现.主要程序节录如下:BEGI NPROCESS (clk )BEGI NIF rst =′1′THE Nreg crc α″0000″;E LSIF clk ′event AND clk =′1′THE NIF enable =′1′THE Nreg crc (0)αtem p x ;reg crc (1)αreg crc (0);reg crc (2)αreg crc (1);reg crc (3)αreg crc (2);E LSEreg crc α″0000″;E DN IF ;E ND IF ;E ND PROCESS ;tem p x αreg crc (3)X OR datain ;crcout αreg crc (3);E ND behave ;3 解码器时序及结构解码器不停地检测输入信号.当检测到同步字,开始解码周期并判断是数据同步字(C OM DAT A 为1)还是命令同步字(C OM DAT A 为0).随后输出数据(DAT AOUT ),同时使接收数据(T AKE DAT A )为高电平,并持续12个解码时钟(即96个系统时钟)周期.在接收数据和进行CRC 时,有效字(VA LI D W ORD )保持低电平,如果传输无出错,有效字(VA LI D W ORD )变为高电平.检测输入信号值的方法:根据曼彻斯特编码的原理,也需要大于或等于二倍频于所传数据速率的解码时钟.为了提高解码的准确性,本文采用八倍频于数据速率的时钟,因此可以采用“测四取三”的方法,即对每个编码的前半部分进行四次采样,取其大于等于三的相同值作为测量值.如果没有三个相同的值,解码器不作响应,如表1所示(其中“x ”表示“0”或“1”).这种判定方法具有一定的滤波功能,提高了准确度.1)同步字的判定检测同步字是解码的关键.只有检测到同步字,才开始解码周期,因此解码器要不停地监视是否有同步字出现.56第2期林艺文等:用FPG A 实现曼彻斯特编解码2)解码在同步字出现后,采用上面“测四取三”的判定方法进行解码,获得有效数据和冗余码.3)循环冗余码校验将解码得到的有效数据和冗余码(共16位)进行循环冗余校验.如果余数为零,则认为传输中无数据出错,否则输出出错信号,以便进行出错处理.表1 信号值的判定采样1采样2采样3采样4信号值111x1110111011101111000x000100010010000“测四取三”和同步字判定各自采用一组移位寄存器来实现.在每个系统时钟的上升沿进行采样,并放入移位寄存器再根据表1判定信号值.将使用“测四取三”方法检测到的信号值放入另一组寄存器.由寄存器的前9位判定同步字,如表2所示.表2 同步字的判定寄存器的前9位同步字类型000111000数据同步字000111xxx命令同步字(xxx不全为零)表1和表2的VH D L描述是比较容易的.本文采用Case2When语句实现.解码器的总体模块框图如图3所示.图3 曼彻斯特解码总体框图4 仿真及FPG A实现为了优化结果,在进行复杂H D L设计时,基本上都会使用专业的逻辑综合软件,而不使用P LD/FPG A厂家的集成开发软件中自带的逻辑综合功能.这里使用FPG A C om pilerⅡ进行综合,输出ed f文件,导往MAXP LUSⅡ进行仿真和布线.并在FPG A芯片EPF10K10LC8424上实现,其时序仿真波形如图4和图5.图4是编码仿真.由于syn select为高表示数据同步字(即111000),如果syn select为低则为命令同步字(即000111).此时输入数据为98BH.图5是解码仿真.由于采用“测四取三”的方法,可以看到即使输入信号有小的毛刺也能正确解码,得到的数据也为98BH,而且valid w ord变为高表示传输不出错.66汕头大学学报(自然科学版)第19卷图4 编码仿真图图5 解码仿真图5 结束语对于数字处理技术来讲,软件和硬件各有特点,比如硬件在实时性要求很高的场合就比软件要好.本文的设计能很好地解决单片机编解码系统和专用芯片的问题,使传输速率和数据格式的灵活性得到提高.随着可编程器件和E DA 工具的发展,相信采用硬件描述语言设计硬件系统将会越来越方便,愈来愈受到广大电子设计人员的喜欢.参考文献:[1]何立民.单片机高级教程[M].北京:北京航空大学出版社,2000.[2]H D15530Datasheet[DB/0L ].http ://w w w 121ic 1com.[3]卢毅,赖杰.VH D L 与数字电路设计[M].北京:科学出版社,2001. 4.76第2期林艺文等:用FPG A 实现曼彻斯特编解码86汕头大学学报(自然科学版)第19卷[4]王耿,姜智忠.用H D L语言实现循环冗余校验[J].微电子学与计算机,2002,5:4~6.[5]曹志刚,钱亚生.现代通信原理[M].北京:清华大学出版社,1992.The Implementation of Manchester E ncoder andDecoder U tilizing FPGALIN Yi2wen,F ANG Zhan2wei(Department of E lectronic Engineering,Shantou University,Shantou 515063,China)Abstract:A Manchester C oder2Decoder is designed using the s oftware MAXP LUSⅡ, FPG A C om pilerⅡand the hardware descriptive language VH D L in line with the top2down method, to be im plemented in an EPF10K10LC8424chip of PFG A type manu factured by Altera C o..De2 coding process included synchronous head,data bits determination and CRC checking.The experi2 ment results have proved that FPG A can im plement Manchester C oding2Decoding and this kind of C oding2Decoding method has many advantages such as strong anti2interference ability and the high data transmission rate,etc.K ey w ords:FPG A;Manchester;VH D L;CRC。

基于FPGA的曼彻斯特码编解码器的实现

基于FPGA的曼彻斯特码编解码器的实现
上对 数字 系统 建模 , 然后 利 用 电子设 计 自动 化 工 具 进
编码 过程具 体可 分 为三部 分 :1 检测 编码周 期 是 ()
否 开始 , 辨别 同步 头信 号 ( 令/ 据 ) 生相 应 的同 并 命 数 产 步信 号 ;2 对 1 数 据进 行 编 码 ;3 附加 奇 偶 校 验 () 6位 ()
1 Vei gHDL硬 件 描 述 语 言 r o l
V ro D ei gH L是 目前 应 用最 为广 泛 的 硬 件 描 述 语 l
图 1 曼彻 斯 特 码 Ⅱ编 码 的码 型 结 构
2 1 编 码设 计与 实现 .
言 , 以在算 法级 、 可 门级 到 开关级 的多 种抽 象设 计层 次
O 引 言
在油 田测 井 中 , 多 种 仪 器 都 采用 曼 彻 斯 特 码 将 很 所采 集 的大 量信 息传送 给 地面测 井 系统 。曼彻 斯特 编
码是 串行数 据传 输 的一 种 重 要 的 编码 方 式 , 有 很 好 具 的抗 干 扰性 能 , 常情况 下 通过 HD15 0曼 彻斯 特 码 通 3 5
不必 过 多考 虑 门级及 工 艺 实 现 的具 体 细 节 , 只需 根 据 系统 设计 的要 求施 加 不 同的 约束 条 件 , 可设 计 出 实 即
际 电路 J 。
2 曼 彻 斯 特 码 编解 码 器 的 总体 设 计
图 2 编 码 状 态 转 换 图
本文 的设 计遵 循 曼 彻 斯 特码 编 译 码 规 则 , 现 了 实
编译 码器 来 实 现 。利 用 F G P A来 实 现 H 5 3 D1 5 0的 功
变 原来通 讯 电路 的情 况 下 , 将该 模 块 与 脉 冲 中子 能 谱 测 井仪通 讯 系统 对 接 , 现 了用 F G 实 P A替 代 HD 53 150

曼彻斯特码原理与应用

曼彻斯特码原理与应用

曼彻斯特码1 曼彻斯特原理介及其编码规则12 曼彻斯特码的各方面应用43 曼彻斯特码与差分曼彻斯特码61 曼彻斯特原理介及其编码规则Manchester编码是一种常用的基带信号编码。

它具有内在的时钟信息,因而能使网络上的每一个系统保持同步。

在Manchester编码中,时间被划分为等间隔的小段,其中每小段代表一位数据。

每一小段时间本身又分为两半,前半个时间段所传信号是该时间段传送比特值的反码,后半个时间段传送的是比特值本身。

可见在一个时间段内,其中间点总有一次信号电平的变化,因此携带有信号传送的同步信息而不需另外传送同步信号。

Manchester编码采用电平由高到低变化的下降沿代表0,电平由低到高变化的上升沿代表1;发送和接收的同步工作方式保证了信息传递的方便和可靠。

为了减少控制器与位置反馈单元之间的连线数目,信息的传递可采用两根线的串行方式。

发送端和接收端的同步靠信息脉冲串之前的同步脉冲串来实现。

在电信领域,曼彻斯特码,(也称作相位码或者PE)是一种数据通讯线性码,它的每一个数据比特都是由至少一次电压转换的形式所表示的曼彻斯特编码被图1 二进制码和曼彻斯特码对比图因此被认为是一种自定时码。

自定时意味着数据流的精确同步是可行的。

每一个比特都准确的在一预先定义时间时期的时间中被传送。

但是,今天有许许多多的复杂的编码方法(例如8B/10B编码),在达到同等目的情况下只需要更少带宽负荷并且只有更少的同步信号相位模糊。

二进制码与曼彻斯特码波形的对比关系如图1所示。

在曼彻斯特编码中,用电压跳变的相位不同来区分1和0,即用正的电压跳变表示0,用负的电压跳变表示1。

因此,这种编码也称为相应编码。

由于跳变都发生在每一个码元的中间,接收端可以方便地利用它作为位同步时钟,因此,这种编码也称为自同步编码。

用于数字基带传输的码型种类较多,Manchester码是其中常用的一种。

Manchester码是一种用跳变沿(而非电平)来表示要传输的二进制信息(0或1),一般规定在位元中间用下跳变表示“1”,用上跳变表示“0”. 曼彻斯特编码被被认为是一种自定时码自定时意味着数据流的精确同步是可行的。

Verilog_VHDL_曼彻斯特编码器

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图题3.20 用双时钟设计Manchester Code 的仿真结果hsu_manchester_code_vmodule hsu_manchester_code_v ( clk,clk_d,clk_dn,data_s,clk_lock_in,mcode_out); input clk,clk_d,clk_dn,data_s,clk_lock_in;output mcode_out;reg mcode_out;reg temp_mcode_out;reg temp_mcode_out_ddn;always ( posedge clk or posedge clk_lock_in )beginif (clk_lock_in==1'b1)if (data_s==1'b1)temp_mcode_out<=clk_d;elsetemp_mcode_out<=1'b0;elsetemp_mcode_out=1'b0;endalways ( posedge clk or posedge clk_lock_in )beginif (clk_lock_in==1'b1)if (data_s==1'b0)temp_mcode_out_ddn<=clk_dn;elsetemp_mcode_out_ddn<=1'b0;elsetemp_mcode_out_ddn=1'b0;Endalways ( posedge clk or posedge clk_lock_in )beginif (clk_lock_in==1'b1)mcode_out<=temp_mcode_out;temp_mcode_out_ddn;elsemcode_out<=1'b0;endendmodule3.21 试用VHDL 语言设计一个求两个数中最大值的程序,要求用函数调用的方法设计。

曼彻斯特编码的FPGA设计方案

曼彻斯特编码的FPGA设计方案

曼彻斯特编码的FPGA设计方案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.曼彻斯特码传输方式非常适合于多路数据的快速切换。

曼彻斯特编解码电路设计毕业设计

曼彻斯特编解码电路设计毕业设计

毕业设计(论文)题目名称:曼彻斯特编解码电路设计学生姓名:院(系):电子信息学院专业班级:电气10602指导教师:辅导教师:时间:2010年3月15日至2010年6月10日目录毕业设计(论文)开题报告 (V)曼彻斯特编解码电路设计 (12)Manchester encoding and decoding circuit (13)前言 0曼彻斯特编解码电路设计 (1)1 选题背景 (1)普通NRZ码存在的问题 (1)应用背景 (1)2 方案论证 0曼彻斯特码简介 0曼彻斯特编解码解析 0曼彻斯特编解码具体实现方式 (1)方案选择 (2)3 硬件电路设计 (5)系统实物照片展示 (5)系统的硬件框图 (6)AT89S52单片机简介 (7)单片机外围电路 (9)信号调理电路 (13)4 软件设计 (16)资源利用 (16)曼彻斯特码编解码方式分析 (18)程序流程图 (19)编码实现 (21)改良方向 (24)参考文献 (26)致谢 (27)附录1:地下液位测量系统实物照片 (28)长江大学毕业设计(论文)任务书学院(系)电子信息学院专业电气工程及自动化班级电气10602学生姓名熊香春指导教师/职称吴爱平/讲师1.毕业设计(论文)题目曼彻斯特编解码电路设计2.毕业设计(论文)起止时刻:2010年3月15日-2010年6月10日3.毕业设计(论文)所需资料及原始数据(指导教师选定部份)所需资料:(1)《MCS-51单片机原理与应用》(2)《单片机的C语言编程》(3) 通信原理原始数据传输速度为20Kb/S,一帧数据有16个字节,一帧的命令有2个字节。

4.毕业设计(论文)应完成的主要内容(1)利用C语言编程实现曼彻斯特编码、解码模块,并在PROTUES软件中仿真;(2)设计曼彻斯特信号调理电路;(3)毕业论文中必需包括如下内容:大体原理介绍、整体框图、软件流程图、软件原理介绍、源程序清单。

5.毕业设计(论文)的目标及具体要求利用单片机和C语言编程实现曼彻斯特编码、解码模块,并在PROTUES软件中仿真通过;通过单片机最小系统,辅之外围电路,能够实现编解码。

超大规模集成电路论文

超大规模集成电路论文

课程论文(超大规模集成电路设计)题目基于CPLD的曼彻斯特编解码器设计专业学生姓名学号得分基于CPLD的曼彻斯特编解码器设计引言虽然计算机通信的方法和手段多种多样,但都必须依靠数据通信技术。

数据通信就是将数据信号加到数据传输信道上进行传输,并在接收点将原始发送的数据正确地恢复过来。

由于计算机产生的一般都是数字信号,因此计算机之间的通信实际上都属于数据通信。

曼彻斯特码编解码器是1553B总线接口中不可缺少的重要组成部分,曼彻斯特码编解码器设计的好坏直接影响总线接口的性能,在数控测井系统和无线监控等领域,曼彻斯特码编解码器都有广泛应用。

1 数据通信系统结构图1所示是数据通信系统的基本构成。

在计算机通信中,通信双方传递的信息必须进行量化并以某种形式进行编码后才能进行传输。

机内信号不论采用哪一种编码方法,它们的基本信号都是脉冲信号,为了减少信号在传输媒质上的通信带宽限制,以及噪音、衰减、时延等影响,也由于同步技术的需要,操作时都需要对简单的脉冲信号进行一些不同的变换,以适合传输的需要。

这样就会产生许多不同的代码,通常有不归零电平(NRZ-L)码,逢“1”反转(NRZ-1)码,曼彻斯特码和差分曼彻斯特等。

图2所示是部分编码方式的波形图。

由图2可知,不归零码的制码原理是用负电平表示“0”,正电平表示“1”,其缺点是难以分辨一位的结束和另一位的开始;发送方和接收方必须有时钟同步;若信号中“0”或“1”连续出现,信号直流分量将累加,这样就容易产生传播错误。

曼彻斯特码(Manchester)的原理是每一位中间都有一个跳变,从低跳到高表示“0”,从高跳到低表示“1”。

这种编码方式克服了NRZ码的不足。

每位中间的跳变即可作为数据,又可作为时钟,因而能够自同步。

曼彻斯特编码特点是每传输一位数据都对应一次跳变,因而利于同步信号的提取,而且直流分量恒定不变。

缺点是数据编码后,脉冲频率为数据传输速度的2倍。

差分曼彻斯特码(Differential Manchester)的原理是每一位中间都有一个跳变,每位开始时有跳变表示“0”,无跳变表示“1”。

RFID—曼彻斯特解码器

RFID—曼彻斯特解码器

谢谢观赏
RFID标签芯片
—曼彻斯特简码器
电路与系统
冯海洋
2012.3.4
曼彻斯特简码器
功能描述
曼彻斯特解码器的功能是对模拟前端解调出来的 曼彻斯特码进行解码,并提取同步时钟。 具体分为四步:
1.对曼彻斯特码进行同步,消除可能产生的毛刺。 2.对数据的帧头进行识别。 3.对分隔符进行识别。 4.对数据进行解码
一个曼彻斯特码是由两个NRZ码构成。
曼彻斯特简码器
上升沿检测方法
根据数据延迟输出可以很好的判读上升沿,其具体实现 电路如下:
曼彻斯特简码器
下降沿检测方法
根据数据延迟输出可以很好的判读下降沿,其具体实现 电路如下:
曼彻斯特简码器
电路设计
根据其功能描述进行设计,本设计中主要部分为一 个状态机,其状态转移图如下:
曼彻斯特简码器
曼彻斯特码
曼彻斯特码是由NRZ码构成的,其共有四种状态,分 别如下:
曼彻斯特简码器 曼彻斯特解码算法
当NRZ为“01”的时候,曼彻斯特码为“0”;当 NRZ为“10”的时候,曼彻斯特码为“1”;当 NRZ为“11”和“00”的时候,曼彻斯特码不存 在。因为时钟频率为1.28MHz,而曼彻斯特码 的传输速率为40KHz,所以只需要设计一个32 位计数器,在计数器计数到一半的时候进行判 断。若其为上升沿,则输出为“0”;若其为下 降沿,则输出为“1”。
曼彻斯特简码器
状态机描述
S_quiet :当复位时候进入此状态,此状态下检测到的输入数据为低电平,若检 测到上升沿则转换至S_preamble_detect状态,否则状态保持不变。 S_preamble_detect:帧头检测域,由一个持续时间至少为400s的稳定的无调制 的载波组成。此状态下,输入数据一直为高电平,若检测到数据的下降沿,状态 转换至S_preamble状态,否则状态保持不变。 S_preamble:检测帧头9个“01”。利用计数器对“01”的个数进行计数。若结果 为9 时,则说明帧头正确,状态转换至S_delimiter 状态;若结果为10,则说明该信 号为阅读器发送的再同步信号,此时,解码器输出再同步信号resynce,状态转换 至S_quiet状态;否则状态转换至S_quiet状态。

使用示波器 (InfiniiVision X ) 解码基于曼彻斯特编码 ASK 调制的汽车遥控钥匙通信

使用示波器 (InfiniiVision X ) 解码基于曼彻斯特编码 ASK 调制的汽车遥控钥匙通信

是德科技解码基于曼彻斯特编码 ASK 调制的汽车遥控钥匙通信使用是德科技 InfiniiVision X 系列示波器应用指南引言在汽车遥控钥匙的研发和调试阶段,有时需要解码以曼彻斯特编码为基础的幅移键控(ASK)钥匙通信。

解码钥匙射频猝发数据包需要在数字解码之前先进行解调。

是德科技 InfiniiVisionX 系列示波器中的协议解码是以硬件技术(实时解码)为基础,解调都是以硬件方式执行。

InfiniiVision 示波器可以采用一种特殊的触发模式和触发输出信号,在示波器内部(以迂回的方式)对钥匙射频信号进行数字解调。

本应用指南概要性地介绍了曼彻斯特编码,并就如何探测和捕获汽车遥控钥匙信号、如何对每个猝发脉冲/数据包进行硬件解调,以及如何在是德科技的 InfiniiVision 3000T 和 4000A X 系列示波器上使用用户可定义的曼彻斯特/NRZ 触发和解码选件(DSOXT3NRZ/DSOX4NRZ)对 2kbps 至 5 Mbps 数据速率传输的消息进行解码和触发。

曼彻斯特编码概述除了部分汽车遥控钥匙是基于频移键控(FSK)方式,大多数遥控钥匙串行通信均采用曼彻斯特编码的幅移键控(ASK)方式。

采用曼彻斯特编码时,位周期中点附近的位跳变决定了发射和/或接收位的极性。

位周期中间的上升跳变/边沿通常对应逻辑“0”,而位周期中间的下降跳变则对应逻辑“1”,如图 1 中的解调波形时序图所示。

处于位边界处或附近位置的跳变忽略不计。

图 1. 基于曼彻斯特编码的位极性。

在空中“嗅探”遥控钥匙信号的一种方法是将环形天线连接到 BNC 电缆,然后将 BNC 电缆连接到示波器的输入通道,如图 2 所示。

就我们在本应用指南中所展示的密钥卡测量示例而言,我们将此环形天线连接到示波器通道 1 输入(阻抗设定为50-Ω)。

如果没有环形天线,您可以将标准 10:1 无源探头的接地导线连接到探头前端来简单制作一个。

请注意,由于大多数汽车钥匙均基于 315 MHz 或 433.92 MHz 射频载波频率,因此建议使用 1 GHz 或更高带宽的示波器进行测试。

曼彻斯特解码器

曼彻斯特解码器

DS01470A_CN 第 2 页
© 2013 Microchip Technology Inc.
AN1470
图 3: CLC 功能
与 - 或- OR AND 或 - 异或 OR - XOR
lcxg1 lcxq lcxg2 lcxg3 lcxg4 lcxq
lcxg1 lcxg2 lcxg3 lcxg4
图 7:
数据捕捉
© 2013 Microchip Technology Inc.
DS01470A_CN 第 5 页
AN1470
或 - 异或配置中的 CLC 模块用于从此配置中提取时钟 (图 8)。
图 8:
时钟提取
这本质上就是曼彻斯特解码器,其中 CLC OR-XOR 为 时钟,D 为数据。如果使用时钟信号的上升沿捕捉 D 的
AN1470
曼彻斯特解码器
本节和下文所介绍的方法均基于图1所示的符合G.E.Thomas 标准的曼彻斯特编码。该方法很灵活,可轻松移植到 IEEE 802.3。 根据模块的空闲状态、 单片机引脚的上电配 置以及接收的第一个位,首次电平转换会存在一些差异 并需要考虑某些事项 (转换基于编码方法) 。启动和空 闲状态将在本文档的 “同步”一节中讨论。 CLC 模块非常灵活,通过对各个模块的输入或输出极性 进行取反即可轻松应用到各种场合。还可以在软件中控 制NCO模块的空闲状态。 下文讨论的方法假定数据在每 个位时间的前半部分可用。 下面是一个符合 G.E. Thomas 编码标准的编码位流示例 (图 5)。 此信号将被解码成时钟线和数据线,如图 6 所示。
LCxMODE<2:0> = 000 000 LCxMODE<2:0>=
LCxMODE<2:0> = 001 001 LCxMODE<2:0>=

基于FPGA的曼彻斯特编解码器设计

基于FPGA的曼彻斯特编解码器设计

基于FPGA的曼彻斯特编解码器设计摘要:曼彻斯特码是一种性能良好的数字基带信号传输码,在工作原理的基础上,运用FPGA技术,利用VHDL设计完成曼彻斯特编解码器并用软件MAX +plusⅡ进行仿真,仿真结果与理论分析一致。

关键词:FPGA;VHDL;曼彻斯特码;编码器;解码器0引言曼彻斯特码简明有效时序却比较复杂,特别是在编码器接口的设计上需要大量的逻辑电路,FPGA的出现正好缓解了这个难题。

由于FPGA具有开发周期短、开发费用低、集成度高、性能稳定、结构灵活、成品不需要测试等诸多特点,所以越来越多的科学技术人员选择运用FPGA技术来进行电子电路的设计[1]。

1FPGA原理及开发工具1.1FPGA原理FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,其内部包括3个部分:输入输出模块IOB(Input Output Block)、可配置逻辑模块CLB(Configurable Logic Block)以及内部连线(Interconnect)[2]。

FPGA是由存放在片内RAM中的程序来设置其工作状态的,所以工作时要对片内RAM进行编程。

用户能够根据不同的配置模式来选择不同的编程方式。

加电的时候,FPGA需要将EPROM中的数据读入片内编程RAM中,配置完成后FPGA就进入工作状态。

因为掉电以后FPGA会恢复成白片,内部的逻辑关系会全部消失,所以FPGA 能够反复使用。

另外,FPGA的编程不需要专门的FPGA编程器,只需要用通用的EPROM、PROM编程器就可以解决,当需要修改FPGA 的功能时,换一片EPROM就能够达到效果。

同一片FPGA,不同的编程数据,能够产生不同的电路功能。

所以FPGA的使用十分灵活[3]。

1.2MAX +plusⅡ软件MAX +plusⅡ软件是由美国的Altera公司负责研究开发的。

MAX +plusⅡ作为一种EDA软件,提供了业界唯一一个真正与结构没有关系的、全部集成化的可编程的设计环境,它为设计者提供了丰富的库单元,使设计者能够随时调用[4]。

曼彻斯特编解码器

曼彻斯特编解码器

工具软件实训报告项目名称:曼彻斯特编解码器指导老师:系科:专业:姓名:学号:目录:一:实训要求 (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 (以太网)中的规定,本次实训将从高电平到低电平的跳变表示“0”,从低电平到高电平的跳变表示“1”。

三:实训思路以下为曼彻斯特编解码器的实现框图:有上图可知,此次的曼彻斯特编解码电路包括三个部分:信号产生部分、编码电路部分和解码电路部分。

其中,信号产生部分用来产生一个循环的16位二进制数据编码作为普通的信号输入;编码部分则将输入的信号编码为曼彻斯特码,然后输出显示;解码部分负责将获得的曼彻斯特码解码成普通的二进制数据编码。

曼彻斯特码编解码原理

曼彻斯特码编解码原理

曼彻斯特码编解码原理曼彻斯特编码,也叫做相位编码(PE),是⼀个同步时钟编码技术,在以太⽹媒介系统中,被物理层使⽤来编码⼀个同步位流的时钟和数据。

它的每⼀个数据⽐特都是由⾄少⼀次电压转换的形式所表⽰的。

曼彻斯特编码因此被认为是⼀种⾃定时码。

⾃定时意味着数据流的精确同步是可⾏的。

每⼀个⽐特都准确的在⼀个预先定义时间时期的时间中被传送。

这样的编码⽅式可以在长时间没有电平跳变的情况下,仍然对任意的⼆进制数据进⾏编码,并且防⽌在这种情况下同步时钟信号的丢失以及防⽌低通模拟电路中低频直流飘移所引起的⽐特错误。

同时,如果保证传送的编码交流信号的直流分量为零并且能够防⽌中继信号的基线漂移,那么就很容易实现信号的恢复和防⽌能量的浪费。

另外,曼彻斯特码还具有丰富的位定时信息。

原理:曼彻斯特码是通过电平的跳变来对⼆进制数据“0”和“1”进⾏编码的,对于何种电平跳变对应何种数据,实际上有两种不同的数据约定:第⼀种约定是由G. E. Thomas,Andrew S. Tanenbaum等⼈在1949年提出的,它规定“0”是由低到⾼的电平跳变表⽰,“1”是由⾼到低的电平跳变;第⼆种约定则是在IEEE802.4(令牌总线)以及IEEE 802.3 (以太⽹)中规定,按照这样的说法,由低到⾼的电平跳变表⽰“1”,由⾼到低的电平跳变表⽰“0”。

在实际⼯程上,这两种约定在⼀定范围内均有应⽤。

为了便于描述,若⽆特殊说明,曼彻斯特码的编码规则均采⽤第⼆种约定,即从低电平跳变到⾼电平表⽰“1”,从⾼电平跳变到低电平表⽰“0”。

普通数字信号与曼彻斯特编码对⽐如图。

优点:数据和同步时钟统⼀编码,曼码中含有丰富的时钟信号,直流分量基本为零,接收器能够较容易恢复同步时钟,并同步解调出数据,具有很好的抗⼲扰性能,这使它更适合于信道传输。

曼彻斯特编码器的设计对⽐普通⼆进制码的波形和曼彻斯特码的波形可知,曼彻斯特码在⼀个码元的开始时刻要对普通信号进⾏⼀次采样,并且有可能会发⽣⼀次跳变,在码元的中间位置⼀定发⽣跳变,因此编码信号的频率是数据时钟频率的两倍。

曼彻斯特编解码电路设计

曼彻斯特编解码电路设计

中南大学本科生毕业论文(设计)题目曼彻斯特编解码电路设计学生姓名李天栋指导教师肖大光娄田心学院信息科学与工程学院专业班级通信工程03级2班完成时间2007年5月目录目录 (I)摘要 (IV)ABSTRACT (V)第一章绪论 (6)1.1项目背景 (6)1.2项目研究内容和任务 (6)1.3论文各部分主要内容 (6)第二章曼彻斯特码的原理及其编码规则 (8)2.1曼彻斯特码简介及其编码规则 (8)2.2曼彻斯特码原理 (8)2.3曼彻斯特码的应用范围 (10)2.3.1 曼彻斯特码在LAN中的应用 (12)2.3.2 曼彻斯特码在测井系统中的应用 (12)第三章曼彻斯特编解码方案 (14)3.1编码电路 (14)3.2解码电路 (20)3.3同步信号提取电路 (21)3.3.1 利用电压比较器整形曼码 (23)3.3.2 利用微分电路检出曼码跳变沿 (24)3.3.3 全波整流电路 (26)3.3.4 窄带滤波电路 (29)3.3.5 锁相环 (32)第四章运用VHDL语言对同步方法仿真 (35)4.1VHDL语言简介 (35)4.2VHDL语言仿真 (35)第五章 PROTEL软件绘制电路图简介 (38)5.1P ROTEL软件简介 (38)5.2电路图绘制 (38)第六章结论与展望 (41)参考文献 (42)致谢 (43)附录 (44)摘要在电信领域,曼彻斯特码是一种数据通讯线性码,它的每一个数据比特都是由至少一次电压转换的形式所表示的。

曼彻斯特编码因此被认为是一种自定时码。

自定时意味着数据流的精确同步是可行的。

每一个比特都准确的在一预先定义时间时期的时间中被传送。

曼彻斯特编码已经被许多高效率且被广泛使用的电信标准所采用,例如以太网电讯标准. 曼彻斯特编码是一种超越传统数字传输的信道编码技术,由于其具有隐含时钟、去除了零频率信号的特性使得它在石油勘探测井中得到广泛的应用。

报告论述了曼彻斯特码的原理,介绍了其编码规则。

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

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

曼彻斯特码编解码的FPGA设计与实现首先,我们需要了解曼彻斯特编码的原理。

曼彻斯特编码将原始数据流分为两个时钟周期,每个时钟周期分为两个等时长的时间片。

根据原始数据的高低电平来确定时间片内信号的取值。

如果原始数据为0,则在时间片的中间边沿处信号发生跳变;如果原始数据为1,则在时间片的开始边沿处信号发生跳变。

编码后的数据流中,跳变表示1,不跳变表示0。

接下来,我们将使用FPGA设计和实现曼彻斯特码编解码器。

首先,我们需要在FPGA上实现一个时钟产生器,用于生成系统的时钟信号。

然后,我们可以使用FPGA上的逻辑门和触发器来实现曼彻斯特编解码逻辑。

对于曼彻斯特编码器,我们可以使用一个D触发器和一个异或门来实现。

D触发器的输入连接到原始数据流,时钟信号作为时钟输入。

异或门的一个输入连接到D触发器的输出,另一个输入连接到D触发器的Q输出。

异或门的输出即为编码后的数据流。

对于曼彻斯特解码器,我们可以使用两个D触发器和一个与门来实现。

第一个D触发器的输入连接到编码后的数据流,时钟信号作为时钟输入。

第二个D触发器的输入连接到第一个D触发器的Q输出,时钟信号作为时钟输入。

与门的一个输入连接到第一个D触发器的Q输出,另一个输入连接到第二个D触发器的Q输出。

与门的输出即为解码后的数据流。

在设计和实现时,我们需要注意时钟的频率和时序的约束。

FPGA提供了丰富的开发工具和资源,我们可以使用Verilog或VHDL等HDL语言进行设计和仿真。

使用FPGA开发板进行验证和测试时,可以将编解码器的输入和输出连接到开发板的IO接口上,通过外部设备进行数据输入和输出,然后通过开发板上的LED或显示屏等显示解码结果。

总结而言,曼彻斯特码编解码的FPGA设计和实现需要借助FPGA的逻辑门和触发器等资源,使用Verilog或VHDL等HDL语言进行设计和仿真,最终通过开发板进行验证和测试。

通过这种方式,我们可以实现高效可靠的曼彻斯特码编解码器,满足通信系统对于数据传输的需求。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

工具软件实训报告项目名称: 曼彻斯特编解码器指导老师:系科:专业:姓名:学号:目录:一:实训要求 (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”。

以下为曼彻斯特编解码器得实现框图:有上图可知,此次得曼彻斯特编解码电路包括三个部分:信号产生部分、编码电路部分与解码电路部分。

其中,信号产生部分用来产生一个循环得16位二进制数据编码作为普通得信号输入;编码部分则将输入得信号编码为曼彻斯特码,然后输出显示;解码部分负责将获得得曼彻斯特码解码成普通得二进制数据编码。

三个相对独立得模块相互协同工作,共同完成曼彻斯特编解码得工作。

四:实训步骤(1)建立工程;(2)编写VHDL文件,建立目标器件;(3)绘制电路原理图并编译;(4)进行仿真以及分析仿真后得波形文件;(5)完成实训报告。

五:原理图、仿真结果图以及结论分析1、曼彻斯特编解码器(实现16bit数据得编解码)1、1曼彻斯特编解码器电路原理图:1、2模块详解1、2、1分频器模块library ieee;use ieee、std_logic_1164、all;use ieee、std_logic_unsigned、all;entity clks isport(clk:in std_logic; --基准时钟clk0,clk1,clk2:buffer std_logic); --分频出得三个时钟,分别输入循环编--码模块、曼彻斯特编码模块、曼彻斯特解码模块end clks;architecture behav of clks issignal a:integer:=0;signal b:integer:=0;beginprocess(clk)beginclk0<=clk;end process;process(clk)beginif clk'event and clk='1' thenif a=2 thena<=0;clk1<='1';elsea<=a+1;clk1<='0';end if;end if;end process;process(clk)beginif clk'event and clk='1' thenif b=5 thenb<=0;clk2<='1';elseb<=b+1;clk2<='0';end if;end if;end process;end behav;1、2、2循环编码模块library ieee;use ieee、std_logic_1164、all;use ieee、std_logic_unsigned、all; entity recycle isport(clk2:in std_logic;datain:out std_logic);end recycle;architecture behav of recycle issignal i:integer:=0;beginprocess(clk2)beginif clk2'event and clk2='1' thenif i=15 theni<=0;elsei<=i+1;end if;end if;end process;process(clk2)beginif clk2'event and clk2='1' thencase i iswhen 0 => datain<='1';when 1 => datain<='0';when 2 => datain<='1';when 3 => datain<='1';when 4 => datain<='0';when 5 => datain<='1';when 6 => datain<='0';when 7 => datain<='0';when 8 => datain<='0';when 9 => datain<='0';when 10 => datain<='1';when 11 => datain<='1';when 12 => datain<='0';when 13 => datain<='1';when 14 => datain<='0';when 15 => datain<='0';when others => datain<=null;end case;end if;end process;end behav;1、2、3曼彻斯特编码模块library ieee;use ieee、std_logic_1164、all;use ieee、std_logic_unsigned、all;entity mcode isport(clk1: in std_logic;datain: in std_logic;dataout: out std_logic);end mcode;architecture behav of mcode issignal con:std_logic_vector(1 downto 0); signal s:std_logic;beginprocess(clk1)beginif clk1'event and clk1='1' thenif datain='1' thencon<="01"; --上升沿表示'1'elsecon<="10"; --下降沿表示'0'end if;end if;end process;process(clk1)Beginif clk1'event and clk1='1' thenif s='1' thendataout<=con(1);s<=not s;elsedataout<=con(0);s<=not s;end if;end if;end process;end behav;说明:曼彻斯特码就是用“01”与“10”来表示普通二进制数据中得“1”与“0”得,因此在实际电路设计中,我们很容易产生一个与数据信号具有相同频率得检测时钟,用来对传入得数据信号进行检测。

当检测信号检测到输入信号就是“1”时,选择器就输出“01”给寄存器,由寄存器完成并串转化功能,然后再将串行数据输出;当输入信号就是“0”时,选择器就输出“10”给寄存器由寄存器完成并串转化功能,然后再将串行数据输出,这样,输出得串行数据就就是曼彻斯特码。

1、2、4曼彻斯特解码模块library ieee;use ieee、std_logic_1164、all;use ieee、std_logic_unsigned、all;entity mdecode isport(clk0:in std_logic;dedatain: in std_logic;dedataout:out std_logic;count: buffer std_logic_vector(2 downto 0));end mdecode;architecture behav of mdecode issignal con:std_logic_vector(1 downto 0);beginprocess(clk0)beginif clk0'event and clk0='1' thenif count=5 thencount<="000";elsecount<=count+1;end if;end if;end process;process(clk0)beginif clk0'event and clk0='1' thencon(1)<=con(0);con(0)<=dedatain;end if;end process;process(clk0)beginif clk0'event and clk0='1' thenif count=4 thenif con="10" thendedataout<='0';elsif con="01" thendedataout<='1';end if;end if;end if;end process;end behav;说明:曼彻斯特解码电路设计得关键就是如何准确地从曼彻斯特码得数据流中提取出“10”与“01”信号,并且把它们转换成普通二进制编码中得“0”与“1”。

相关文档
最新文档