为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 曼彻斯特码介绍

曼彻斯特码介绍

2017-10-14 7页 doc 90KB 70阅读

用户头像

is_321635

暂无简介

举报
曼彻斯特码介绍曼彻斯特码介绍 11.8 曼彻斯特编码器、译码器设计实例 曼彻斯特(Manchester)码又称裂相码、双向码,是信道编码常用的码型。本节分析曼彻斯特码的特征,给出曼彻斯特码的编码电路与译码电路,用Verilog HDL语言进行建模与仿真。 11.8.1 曼彻斯特码介绍 曼彻斯特码(Manchester code,又称裂相码、双向码),是一种用电平跳变来表示1或0的编码,其变化规则很简单,即每个码元均用两个不同相位的电平信号表示,也就是一个周期的方波,但0码和1码的相位正好相反。 其对应关系为: 0=>01(相位为...
曼彻斯特码介绍
曼彻斯特码介绍 11.8 曼彻斯特编码器、译码器设计实例 曼彻斯特(Manchester)码又称裂相码、双向码,是信道编码常用的码型。本节分析曼彻斯特码的特征,给出曼彻斯特码的编码电路与译码电路,用Verilog HDL语言进行建模与仿真。 11.8.1 曼彻斯特码介绍 曼彻斯特码(Manchester code,又称裂相码、双向码),是一种用电平跳变来表示1或0的编码,其变化规则很简单,即每个码元均用两个不同相位的电平信号表示,也就是一个周期的方波,但0码和1码的相位正好相反。 其对应关系为: 0=>01(相位为零); 1=>10(相位为180)。 波形图如图11-64所示。 曼彻斯特编码是一种自动同步的编码方式,即时钟同步信号就隐藏在数据波形中。在曼彻斯特编码中,每一位的中间有一次跳变,中间的跳变既作时钟信号,又作数据信号;从高到低跳变表示"1",从低到高跳变表示"0"。曼彻斯特编码是将时钟和数据包含在数据流中,在传输代码信息的同时,也将时钟同步信号一起传输到对方,每位编码中有一次跳变,不存在直流分量,因此具有自同步能力和良好的抗干扰性能。但每一个码元都被调制成两个电平,所以数据传输速率只有调制速率的1/2。 11.8.2 曼彻斯特码编码器 根据曼彻斯特码的码型特点,设计曼彻斯特编码器的方法如下: 如果输入数据为"1",则转换为"10";如果输入数据为"0",则转化为"10",然后把它们串行化输出。Verilog HDL代码如下: , module mcode(clk, databin, datamout); , , input clk; //时钟信号 , input databin; //数据输入 , , output datamout; //曼彻斯特编码输出 , , reg datamout; ? reg flag; //标志信号 ,, reg [1:0] com; ,, ,, always @(posedge clk) ,, begin ,, if(flag == 1'b0) ,, begin ,, if(databin == 1'b0) //当数据为"0"时,转换为"01" ,, begin ,, com <= 2'b01; ,? end ,, else //当数据为"1"时,转换为"10" ,, begin ,, com <= 2'b10; ,, end ,, end ,, end ,, ,, always @(posedge clk) //曼彻斯特编码输出进程 ,, begin ,? if(flag == 1'b1) ,, begin ,, datamout <= com[1]; ,, flag <= ~flag; ,, end ,, else ,, begin ,, datamout <= com[0]; ,, flag <= ~flag; ,, end ,? end ,, ,, endmodule 代码分析: 由于曼彻斯特码在码型上实际是把原来的一个码元转换成两个码元,因此每输出两个码元才进行一次数据码元的采样,用标志信号flag来指示。 保存文件为mcode.v,单击Files ? Create/Update ? Create Symbol Files for Current File命令,为mcode.v产生原理图模块。新建一个原理图文件,在原理图空白处双击,在弹出的Symbol对话框中选择Project ?mcode模块,单击OK按钮退出Symbol对话框。在原理图的适当位置放置mcode模块,并添加输入输出模块。保存原理图为manchester.bdf,模块连接图如图 所示。 11-65 编译工程文件,编译无误后单击Processing ? Generate Functional Simulation Netlist,产生功能仿真网表。新建波形仿真文件,加入输入输出信号,设置系统时钟信号clk的周期为10ns,单击选中输入数据信号databin,单击 按钮设置输入数据信号databin为随机数,周期为20ns,即为时钟周期的2倍,如图11-66所示。 保存波形文件为 manchester.vwf,单击 按钮进行曼彻斯特编码器的波形仿真,波形仿真如图11-67所示。 波形仿真报告说明: 编码输出信号datamout符合曼彻斯特编码规则,当输入信号databin是"1"时,编码输出信号datamout为"10";当输入信号databin是"0"时,编码输出信号datamout为"01",曼彻斯特编码器得到正确波形仿真。 11.8.3 曼彻斯特译码器 曼彻斯特译码的功能:把接收到的曼彻斯特编码译码还原为曼彻斯特编码前的基带信号,如图11-68所示。 曼彻斯特译码器的关键是从曼彻斯特编码的数据流中准确提取"01"和"10",并把它转换为"0"与"1"。假设曼彻斯特编码的数据流为"01010101",如果从第一位开始译码,则结果为"0000";如果从第二位开始译码,则结果为:"111"和头尾两个曼彻斯特码。因此,如果曼彻斯特编码数据流中只有"1"或只有"0"的编码,那么是不能准确得到译码结果的;如果曼彻斯特编码数据流中出现"00",则"00"前后的码元必定是"1";如果曼彻斯特编码数据流中出现"11",则"00"前后的码元必定是"0"。根据前面的分析,可以把"00"与"11"作为曼彻斯特编码译码的标志位,即如果检测到"00"或"11",则从后一个"1"或"0"开始以每两个码元为一组进行曼彻斯特译码,还原出基带信号。Verilog HDL代码如下: , module mdecode(clk, datamin, databout); , , input clk; //时钟输入 , input datamin; //曼彻斯特编码输入 , , output databout; //曼彻斯特译码输出 , , reg databout; ? reg [1:0] com; ,, reg flag; ,, reg syn; ,, ,, always @(posedge clk) ,, begin ,, com <= {com[0], datamin}; ,, end ,, ,, always @(posedge clk) ,? begin ,, if((com == 2'b11) || (com == 2'b00)) //检测"11"和"00" ,, begin ,, flag <= 2'b11; ,, syn <= 1'b1; ,, end ,, else ,, begin ,, syn <= 1'b0; ,, end ,? end ,, ,, always @(posedge clk) //曼彻斯特译码输出进程 ,, begin ,, if((syn == 1'b1) || (flag == 2'b11)) ,, begin ,, case(com) ,, 2'b01: ,, databout <= 1'b0; ,, 2'b10: ,? databout <= 1'b1; ,, default: ,, databout <= databout; ,, endcase ,, end ,, end ,, ,, endmodule 保存文件为mdecode.v,单击Files ? Create/Update ? Create Symbol Files for Current File命令,为mdecode.v产生原理图模块。打开原理图文件manchester.bdf,在原理图空白处双击,在弹出的Symbol对话框中选择Project ?mdecode模块,单击OK按钮退出Symbol对话框。在原理图的适当位置放置mdecode模块,并添加输入输出模块,各个模块的连接如图11-69所示。 保存原理图为mdecode.bdf。编译工程文件,编译无误后单击Processing ? Generate Functional Simulation Netlist,产生功能仿真网表。打开波形仿真文件manchester.vwf,加入输入输出信号,保存波形文件,单击 按钮进行曼彻斯特译码器的波形仿真,波形仿真报告如图11-70所示。 波形仿真报告说明: 对图11-70分析看出,曼彻斯特译码输出与曼彻斯特编码输入的数据基本一致,曼彻斯特译码器得到正确的波形仿真。当发送命令wrisg的上升沿有效时,启动发送数据。串行数据的波形与发送数据dataout相一致,UART的发送模块得到正确验证。
/
本文档为【曼彻斯特码介绍】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索