在CPLD基础上的曼彻斯特编码技术
出处:王 奇,王英民,牛奕龙,陶林伟 发布于:2011-08-23 20:49:50
在工业现场控制网络中,曼彻斯特码由于编码方式简单易行、无直流分量,且含有丰富的时钟信息,常被用作高速基带数据传输。曼彻斯特编码已经广泛应用在数控测井和无线监控等领域。
本文主要介绍一种通过CPLD来实现曼彻斯特编解码的方法,在CPLD内部完成并/串、串/并转换以及曼彻斯特编解码,提高了编解码的通用性,大大节省了开发成本,并且可以实现更高的编码速率。
1 曼彻斯特码
在曼彻斯特编码中,每一位的中间有一个跳变,位中间的跳变既作时钟信号,又作数据信号。从高到低跳变表示“0”,从低到高跳变表示“1”。
从曼彻斯特码的特点可以看出曼彻斯特码是一种自同步码,且没有直流分量,因此抗干扰能力强。但其缺点是编码后每一个码元都被调成2个电平,所以数据传输速率只有调制速率的1/2。
2 可编程逻辑器件的选择
系统中CPLD器件选择Altera公司的MAX7000系列的EPM7128AETC100-10。EPM7128AE系列CPLD具有2 500个可用门,内部具有128个宏单元,多可用I/O引脚100个,时钟可达192.3 MHz,使用3.3 V电压供电。
本文的编解码分别在2个CPLD中完成。编码端的CPLD内部程序框图如图1所示,首先锁存并行信号,然后根据编码时钟把并行数据用移位寄存器进行并/串转换,曼彻斯特编码模块对串行NRZ数据进行编码输出。
解码端的CPLD内部程序框图如图2所示,首先曼彻斯特解码模块把输入的曼彻斯特码解码成NRZ码,并从码元中提取同步时钟,然后在移位寄存器中对串行NRZ码完成串/并转换,把并行信号锁存到锁存器中并输出。
3 曼彻斯特编解码器设计
3.1 编码器设计
(1)同步头
解码时,何时开始一个解码周期是解码正确与否的关键,为此在曼彻斯特码的前面增加了4个时钟周期(此时钟是数据传输速率的2倍)的高电平作为同步头。编码时首先输出同步头,接着输出曼彻斯特码元。解码器检测到此同步头时启动一个解码周期。
(2)曼彻斯特编码
根据曼彻斯特码的特点,常规设计方法是将NRZ码和时钟信号相异或进行编码,这种方法的缺点是会在数据的跳变沿产生毛刺。
设计中采用如下编码方式:
选用二倍频于数据传输速率的时钟,当时钟个数为奇数时,曼彻斯特码等于NRZ码;当时钟个数为偶数时,曼彻斯特码等于NRZ码取反。
这种编码方式简单易行,而且解决了常规通过异或方式编码产生的毛刺现象。
3.2 解码器设计
曼彻斯特解码框图如图4所示,主要分为4个部分:同步头检测电路、同步时钟提取器、解码的判决器和计数器。
其中同步头检测电路和判决器采用VHDL语言设计,同步时钟提取器和计数器使用原理图方式设计。
下面分别介绍这4部分:
(1)同步头检测电路
同步头检测电路有2个功能:检测同步头和去掉同步头。
(2)同步时钟提取器
曼彻斯特码的一个优点是本身含有时钟信息,可以很方便地进行位同步。时钟提取器就是要从曼彻斯特码中提取出同步时钟。从曼彻斯特码的特点可以看出每个码元中间都有跳变,时钟提取电路提取出跳变信息,以此来恢复出位同步时钟。
同步时钟提取电路如图5所示,DataIn是输入的曼彻斯特码;CLK16x是解码用的高倍时钟;DataIn2是曼彻斯特码经过2次时延后的信号,此信号与经过1次时延的信号异或运算得到曼彻斯特码的跳变信息;CLR是从曼彻斯特码中提取出的跳变信息,把这个跳变信息作为计数器的清零信号,同时利用高倍时钟就可以从输入的曼彻斯特码中恢复出同步时钟,图5中CLKOUT是同步时钟的输出端。
(3)判决器
判决器是曼彻斯特解码的部分,采用16倍频于传输速率的时钟作为解码时钟。解码流程图如图6所示。在接收到曼彻斯特码后使用16倍频的时钟对信号进行采样,为了正确解码出一位NRZ码,需要进行16次采样,即一个解码周期等于16个时钟周期。
解码时设置了2个计数器:tHigh和tClock。tHigh用于记录每16次采样时前8次采样的高电平的个数。如果tHigh等于8,那么原始码元就是“1”,反之为“0”。在每次采样时tClock都会加1,记录采样的次数。当tClock等于16时,一个解码周期完成,将tHigh和tClock清零。
在实际设计中,为了提高对解码的抗干扰能力,将tHigh的判决门限设定为8-2,即6,当tHigh≥6就认为原始信号是“1”,反之为“0”。
3.3 软件仿真
(1)编码仿真
本文使用VHDL语言进行设计,使用MAX+PLUS II进行仿真,仿真的数据编码速率设为2 MB/s,仿真图形如图7所示。其中D[05]是发送端的并行信号;DSP_CLK是由外部提供的40 MHz的时钟信号,在CPLD中进行10分频,产生需要的4 MHz的二倍频时钟信号;MAN_OUT是终的曼彻斯特码。从图7可以看出,曼彻斯特码的前面有4个时钟周期的高电平,是编码信号的同步头。
从图7中还可以看出,输入的并行信号是0xA756,由于程序中使数据的位在前,位在后,因此进行并串转换后的NRZ码是0110,1010,1110,0101,对应的曼彻斯特码为01 10 10 01,10 01 10 01,10 10 10 01,01 10 01 10。
(2)解码仿真
仿真时所用的解码时钟是16 MHz,仿真图如图8所示。其中,DataIn是输入的曼彻斯特码,速率是原始数据速率的2倍,即4 MB/s;DataIn2是由输入信号延迟一个时钟周期产生的;CLK16x是外部提供的16 MHz高倍时钟信号;CLR是从曼彻斯特码提取的跳变信息;CLKOUT是恢复出的时钟信号;enable是同步头检测电路产生的使能信号;NRZ是判决器输出的NRZ码;q[015]是解码出的数据,从图8中可以看出其值为0xA756,正确解码了输入的曼彻斯特码。
本文使用VHDL语言在Altera公司的EMP7128AETC100-10实现了曼彻斯特编解码,在MAX+PLUS II下正确实现了2 MHz时钟下的编解码。比专用器件具有更高的速率和更好的灵活性。大大增加了曼彻斯特编解码的可移植性,并且为编解码器的扩展预留了足够的空间。
版权与免责声明
凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。
本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。
如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
- MOLEX 441331000高密度板对板连接器技术解析2025/4/24 11:24:50
- 电镀工艺_电镀工艺的原理是什么2024/12/20 17:21:15
- 复合材料的的特性与分类2024/12/13 17:45:22
- 详细介绍8种最常用的排序算法2024/10/28 17:17:12
- 异步的八种实现方式2024/9/29 17:13:56