首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
一种基于CPLD的曼彻斯特编解码器设计
来源:本站整理  作者:佚名  2009-02-24 10:49:24



引言

  虽然计算机通信的方法和手段多种多样,但都必须依靠数据通信技术。数据通信就是将数据信号加到数据传输信道上进行传输,并在接收点将原始发送的数据正确地恢复过来。由于计算机产生的一般都是数字信号,因此计算机之间的通信实际上都属于数据通信。曼彻斯特码编解码器是1553B总线接口中不可缺少的重要组成部分。曼彻斯特码编解码器设计的好坏直接影响总线接口的性能。在数控测井系统和无线监控等领域,曼彻斯特码编解码器都有广泛应用。

  1 数据通信系统结构

数据通信系统的基本构成

  图1所示是数据通信系统的基本构成。在计算机通信中,通信双方传递的信息必须进行量化并以某种形式进行编码后才能进行传输。机内信号不论采用哪一种编码方法,它们的基本信号都是脉冲信号,为了减少信号在传输媒质上的通信带宽限制,以及噪音、衰减、时延等影响,也由于同步技术的需要,操作时都需要对简单的脉冲信号进行一些不同的变换,以适合传输的需要。这样就会产生许多不同的代码,通常有不归零电平(NRZ-L)码,逢“1”反转(NRZ-1)码,曼彻斯特码和差分曼彻斯特等。图2所示是部分编码方式的波形图。

部分编码方式的波形图

  由图2可知,不归零码的制码原理是用负电平表

示“0”,正电平表示“1”,其缺点是难以分辨一位的结束和另一位的开始;发送方和接收方必须有时钟同步;若信号中“0”或“1”连续出现,信号直流分量将累加。这样就容易产生传播错误。曼彻斯特码(Manchester)的原理是每一位中间都有一个跳变,从低跳到高表示“0”,从高跳到低表示“1”。这种编码方式克服了NRZ码的不足。每位中间的跳变即可作为数据,又可作为时钟,因而能够自同步。曼彻斯特编码特点是每传输一位数据都对应一次跳变,因而利于同步信号的提取,而且直流分量恒定不变。缺点是数据编码后,脉冲频率为数据传输速度的2倍。差分曼彻斯特码(Differential Manchester)的原理是每一位中间都有一个跳变,每位开始时有跳变表示“0”,无跳变表示“1”。位中间跳变表示时钟,位前跳变表示数据。这种方式的优点是时钟、数据分离,便于提取。

  2 曼彻斯特编解码器的设计

  可编程逻辑器件的出现为数字系统的设计带来了很大的灵活性.而VHDL (VHSIC HardwareDescription Language)是一种功能强大的硬件设计语言,可用简洁的代码来进行复杂控制逻辑的设计。为此,本文采用VHDL语言来对曼彻斯特编解码器进行描述,并用Active-HDL进行编译,最后用Synplify进行综合。

  2.1 解码

  根据曼彻斯特码的特点,可将该码的解码过程分成三部分:一是启动解码时钟,即通过检测一个数据跳变沿来使能时钟。二是对曼彻斯特码形式的数据进行解码。三是将串行数据转换成并行数据。解码器的逻辑框图如图3所示。

解码器的逻辑框图

  该逻辑可南进程实现。输人的时钟为clkl6x的时钟,串行的曼彻斯特码的数据与单倍的时钟相对应。首先,串行的曼码由clk16x的时钟采样,之后再将采样到的数据先后存放在两个寄存器中,当两个寄存器中的值不一致时,即开始解码过程,从而完成检测数据变化的进程。分频计数进程用来产生clklx,并用分频计数的结果来实现1/4和3/4点的采样。根据曼彻斯特码的性质,对1/4和3/4点采样可以准确的恢复成NRZ码。此后在clklx的驱动下,控制字计数器开始计数,直到8个clklx之后,计数器归零。解码进程则在clkl6x的驱动下,对1/4和3/4采样点的数据进行解码,从而得到曼码相对应的NRZ码。紧接着将解码得到的每一位NRZ码移入8位的移位寄存器,当控制字寄存器计到8时(即8位移位寄存器溢出的时候),再将8位NRZ码一起输出到数据寄存器,最后输出数据寄存器中被解码好的NRZ码。

  图4所示是采用该设计的曼彻斯特码的时序仿真波形,clkl6x采用16 MHz的时钟,mdi为输入的曼码(10101100)。最后输出dout为十六进制AC,这说明该解码过程是正确的。

采用该设计的曼彻斯特码的时序仿真波形

  2.2 编码

[1] [2]  下一页

关键词:

  • 好的评价
      0%(0)
  • 差的评价
      0%(0)

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:74,898.44000 毫秒