0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在XC9500系列CPLD芯片上实现曼彻斯特码编解码器的设计

电子设计 来源:郭婷 作者:电子设计 2019-08-01 08:00 次阅读

引言

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

1 数据通信系统结构

在XC9500系列CPLD芯片上实现曼彻斯特码编解码器的设计

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

在XC9500系列CPLD芯片上实现曼彻斯特码编解码器的设计

由图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所示。

在XC9500系列CPLD芯片上实现曼彻斯特码编解码器的设计

该逻辑可南进程实现。输人的时钟为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,这说明该解码过程是正确的。

在XC9500系列CPLD芯片上实现曼彻斯特码编解码器的设计

2.2 编码

编码是解码的逆过程。编码的过程也可以分为两部分:一是检测编码周期是否开始,以决定产生正跳变沿;二是对串行的数据进行编码,之后编码周期结束。编码器的输入时钟(clk2x)为2MHz。当写信号(wr)为高电平时,开始产生正跳变沿,并使clklx-enable为高电平,这样,正跳变沿产生完成即开始编码过程。将clk2x进行二分频可得到clklx,这样可使归零制的数据(nrz)与clklx相对应。此后再在clklx_enable高电平和clk2x正跳变的情况下,将归零制码(nrz)转换成相应的曼彻斯特码(meo)。最后,当写信号(wr)为低电平时,以使clklx_enable为低电平,结束编码过程。

在XC9500系列CPLD芯片上实现曼彻斯特码编解码器的设计

图5所示其编码时序仿真波形图,图中,clk2x采用2MHz的时钟,nrz为串行输入的归零制码(10101100),meo为串行输出的曼彻斯特码。由图可见,从刚开始的跳变沿之后,输出meo也为10101100,证明编码过程正确。

3 基于CPLD的曼彻斯特码实现

为了确保设计的可行性,操作时必须对设计进行时序仿真。为了提高CPLD芯片的性能及资源利用率,应采用专门的综合软件来对设计进行优化和综合。本设计采用Synplify7.3进行综合,并采用Active-HDL6.1进行时序仿真。在Synplify中使用有效的代码可以优化组合逻辑、减少逻辑延时,从而提高整体性能。此外,本设计还进行了多个文件的分块设计,然后将这些文件映射到顶层文件进行综合,并运用VHDL对单个文件进行编写、仿真和优化。在用到组合逻辑时,Syn-plify会尽量避免锁存器的出现,节省逻辑单元。Synplify和其它综合软件一样,编译后所生成的电子设计交换格式文件(EDIF)可以在Active-HDL中进行编译、仿真、分配引脚和其它优化处理。因此,采用Active-HDL6.1和Synplify7.3相结合对CPLD进行设计、优化、综合,可以提高系统性能和

芯片资源的利用率。

CPLD(Complex Programmable Logic Device复杂可编程逻辑器件)的内部结构为“与或阵列”。该结构来自于典型的PAL、GAL器件结构。由于任意一个组合逻辑都可以用“与一或”表达式来描述,所以该“与或阵列”结构能实现大量的组合逻辑功能。CPLD和FPGA的主要区别如下:

(1) 布线能力

CPLD内连率高,不需要人工布局布线来优化速度和面积,较FPGA更适合于EDA芯片设计的可编程验证;

(2) 延迟可预测能力

CPLD连续式布线结构决定了时序延时是均匀的和可预测的,而FPGA的分段式布线结构则决定了其不可预测时间延迟;

(3) 集成度的不同

CPLD的集成度一般在500~50000门。而FP-GA的集成度一般在1K~10M门;

(4) 应用范围的不同

CPLD逻辑能力强而寄存器少,适用于控制密集型系统,而FPGA逻辑能力较弱但寄存器多,适于数据密集型系统。

CPLD和FPGA的共同优点一是规模越来越大,实现功能越来越强,同时可以实现系统集成。二是研制开发费用低,不承担投片风险,使用方便。三是通过开发工具在计算机上完成设计,电路设计周期短,同时不需要设计人员了解很深的IC知识,EDA软件易学易用。此外通过FPGA和CPLD开发的系统成熟后,还可以进行A-SIC设计,以形成批量生产。

事实上,本设计在Xilinx公司的XC9500系列CPLD(xc95108pq100-7)芯片上进行了实现。并针对其特点对设计进行了最后的优化。该编解码器共占用了149个逻辑单元,占总逻辑资源的8%,因此,十分有利于今后对其进行完善和功能的添加。

4 结束语

本设计具有一定的通用性,它的逻辑大部分只涉及到编、解码器本身;而它与外部的接口十分简单,只要对其读、写并对跳变沿信号进行有效控制,就能使其正常工作。本设计十分独立,由于选用器件资源比较丰富,故对其进行功能添加也十分方便,只需添加电路设计而不必对原有电路进行修改。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    453

    文章

    50387

    浏览量

    421752
  • 解码器
    +关注

    关注

    9

    文章

    1130

    浏览量

    40675
  • cpld
    +关注

    关注

    32

    文章

    1247

    浏览量

    169199
收藏 人收藏

    评论

    相关推荐

    采用复杂控制逻辑器件和VHDL语言实现曼彻斯特编解码器的设计

    之间的通信实际都属于数据通信。曼彻斯特编解码器是1553B总线接口中不可缺少的重要组成部分。曼彻斯特
    发表于 08-03 15:53 1687次阅读
    采用复杂控制逻辑器件和VHDL语言<b class='flag-5'>实现</b><b class='flag-5'>曼彻斯特</b><b class='flag-5'>编解码器</b>的设计

    音频编解码器技术

    语音编解码器技术的发展一定程度上处于静止状态,但音频编解码器技术一直向前演进。音频编解码器朝更多的环绕声通道发展就是一个趋势。
    发表于 02-03 16:17 4983次阅读

    CPLD XC9500是否有任何序列?

    。同样,CPLD XC9500是否有任何序列?我所理解的是.jed文件是SHIFT-DR状态下而不是.bit文件传输的。它是否正确?传输.jed文件后,XC9500是否还需要JSTA
    发表于 01-15 09:47

    XC9500系列CPLD遥控编程该怎么设计?

    XC9500系列CPLD器件是由多个功能块(FB)和IO块(IOB)组成,可用开关矩阵Fast CONNECT完全互连的子系统,IOB提供输入和输出的缓冲,每个FB提供具有36个输入和18个输出
    发表于 09-30 06:02

    编解码器的工作原理是什么?

    编解码器是用于对数字媒体文件(如歌曲或视频)进行压缩或解压缩的软件。Windows Media Player 和其他程序使用编解码器来播放并创建数字媒体文件。
    发表于 04-06 09:00

    怎么利用VHDL语言实现卷积编解码器的设计

    如何使用VHDL语言设计卷积编解码器
    发表于 04-29 06:39

    请问怎样去设计曼彻斯特编解码器

    一种基于CPLD曼彻斯特编解码器设计。
    发表于 05-06 10:32

    如何控制曼彻斯特编解码器

    怎样运用CPLD去控制曼彻斯特编解码器
    发表于 05-07 07:09

    基于CPLD的卷积编解码器的设计

    卷积是一种性能优良的差错控制编码。本文阐述了卷积编解码器的基本工作原理,MAX+PLUS2 软件平台上,给出了利用复杂可编程逻辑器件设计的(2,1,6)卷积
    发表于 08-10 08:39 24次下载

    EDA卷积编解码器实现技术

    EDA卷积编解码器实现技术针对某扩频通信系统数据纠错编码的需要, 构造并分析了(2 , 1 , 6) 卷积编解码器的基本工作原理, 提出
    发表于 12-05 16:17 0次下载

    什么是音频编解码器

    什么是音频编解码器编解码器(编码/解码器)转换成模拟信号的数字码流,另一个相同的编解码器转换为数字流回到成模拟信
    发表于 05-03 23:48 4045次阅读

    CPLD控制曼彻斯特编解码器

    讨论如何使用CPLD实现单片机与曼彻斯特编解码器的接口。设计时采用自顶向下的流程,具体电路可灵活地添加到各种曼彻斯特
    发表于 06-16 07:40 1370次阅读
    用<b class='flag-5'>CPLD</b>控制<b class='flag-5'>曼彻斯特</b><b class='flag-5'>编解码器</b>

    用FPGA实现1553B总线接口中的曼编解码器

    摘要: 介绍用FPGA设计实现MIL-STD1553B部接口中的曼彻斯特编解码器。该设计采用VHDL硬件描述语言编程,并且专门的综合工具Synplify对设计进行综合、优化,
    发表于 04-19 21:38 1607次阅读
    用FPGA<b class='flag-5'>实现</b>1553B总线接口中的曼<b class='flag-5'>码</b><b class='flag-5'>编解码器</b>

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

    设计出基于FPGA的曼彻斯特编解码器是影响整个总线系统通信质量的关键。本设计采用硬件描述语言(Verilog)设计电路,ISE完成综合和布局布线的工作,并用modelSim进行仿真验证。深入
    发表于 12-28 10:36 95次下载
    基于FPGA的<b class='flag-5'>曼彻斯特</b><b class='flag-5'>编解码器</b>设计

    用FPGA器件与VHDL语言实现曼彻斯特编解码器的设计

    曼彻斯特编码、解码器是1553B总线接口中不可缺少的重要组成部分。曼彻斯特编解码器设计的好坏
    的头像 发表于 04-24 08:24 5058次阅读