FPGA解码曼彻斯特
2OO4年5月
May 2004
汕头大学学报 (自然科学版) 第l9卷 第2期
V01.19 No.2
用FPGA实现曼彻斯特编解码
林艺文,方展伟
( iJ头火 。r乜r ‘ 自、 稃系、 『J头 515063)
摘 要:使用MAXPLUSII和FP(;A CompilerII软件及 VHDL硬件描述语言,采用自顶向下
设计方法设计曼彻斯特编解码器,每帧数据包括同步字、有效数据和冗余校验位三部分,
最终在Altem公司的FPGA芯片 10K10I C84—4进行验证.实验结果表明,FPGA能很好...
2OO4年5月
May 2004
汕头大学学报 (自然科学版) 第l9卷 第2期
V01.19 No.2
用FPGA实现曼彻斯特编解码
林艺文,方展伟
( iJ头火 。r乜r ‘ 自、 稃系、 『J头 515063)
摘 要:使用MAXPLUSII和FP(;A CompilerII软件及 VHDL硬件描述语言,采用自顶向下
设计
设计曼彻斯特编解码器,每帧数据包括同步字、有效数据和冗余校验位三部分,
最终在Altem公司的FPGA芯片 10K10I C84—4进行验证.实验结果表明,FPGA能很好地
实现曼彻斯特编解码器,而且该编解码方式具有抗干扰能力强,传输速率高等优点.
关键词:n A;曼彻斯特码;VHDI ;CItC
中图分类号:TN915.05 文献标识码:A 文章编号:1001.4217(2004)02—0063.06
0 引 言
由于曼彻斯特编码的每个码元的巾心部分都存在电平跳变,而且方波周期内正、负
电平各占一半,因此在频谱中存在很强的定刚分量,不存在直流分量,在 “以太网”和
短距离无线通信等数据传输系统中碍到广泛的应用.通常采用的办法是用单片机的串行
I/O口或者专用的曼彻斯特编码译码器HD15530来完成曼彻斯特的编解码,但这两种方
法都有许多不足之处:第一、在利f日单片机或专用芯片进行编解码时,对传输的数据只
能进行奇偶校验,在条件比较恶劣的场合,特别是在无线通信,数据极易出错,奇偶校
验不能检测出这类突发性错误;第 二、单片机的串口通信和专用芯片在传输速率和每帧
的有效数据位数等方面都作了严格的限制;第三、在要求高速的传输速率的场合,单片
机和专业芯片都难以实现 。 .
在现代电子设计领域,VHDL和现场可编程逻辑器件的广泛应用使数字系统设计更
为灵活,大大缩短了开发周期 .本文用VH1)L实现曼彻斯特编解码.设计中使用Al—
tera公司开发的MAXPLUSⅡ进行仿真和布线,而使用Synopsys公司的FPGA—CompilerⅡ
进行综合.
1 编译码设计思想
本文的设计即采用的编译码规则是根据 HD一15530曼彻斯特编解码器进行改进的 .
假设传输的数据精度为l2位,以98BH为例,其码型结构如图1所示,数据0用0l(零
相位的一个周期的方波)表示,1则用10(7c相位的一个周期的方波).
收稿日期:2003.104)7
作者简介:林艺文(1979~),男,福建东山人.硕,}1研究生
基金项目:汕头大学基金会课题(NO.140—934046)
维普资讯 http://www.cqvip.com
汕头大学学报 (自然科学版) 第 19卷
同步字 I 有效数据 I CRC检验
图 1 曼彻斯特编码的码型结构图
其中,同步字有两种类型:低电平在先高电平在后为命令同步;高电平在先低电平
在后为数据同步.高低电平的宽度均为1.5位,因此同步字宽度为3位
由于每个数据位的中点都存在跳变,编码器需要大于或等于二倍频于所传数据速率
的系统时钟.为了减少功耗和提高电路的可实现性,本文采用二倍频的时钟和单极性曼
彻斯特编码.由图1可看到每帧的最后四位为校验位.为了提高系统的检错/纠错能力本
文采用循环冗余校验.循环冗余码(cac)是在严密的代数学理论基础上建立的,它特别
适合于检测和纠错错误,一则因为它有很强的检测能力,二则是因为编码器及错误检测
纠错电路都很容易实现.根据CRC的编码思想 J,对于(16,12)码,可由 +1确定
生成多项式为 G( )= +1.
2 编码器时序及结构
当系统时钟(CLK)的上升沿到来时,如果编码使能(ENABLE)为高,编码周期将开
始并持续一个帧长或20个编码时钟(即40个系统时钟)周期.同时,如果同步选择(SYN
— SELECr)为高时,产生一个数据同步字;为低时,产生一个命令同步字.当编码器准
备好接收数据时,发送数据(SEND
— DATA)变为高电平,并保持l2个编码时钟周期.在
编码时钟的上升沿对串行数据输入(DATAIN)进行抽样和编码.
根据上面的编码规则和时序说明,电路设计使用硬件描述语言(VHDL)来实现,并
用Altera公司的 芯片进行验证.设计中采用自顶向下的设计方法,将整个编码系
统分成各个模块,编码总体模块框图如图2所示.
图2 曼彻斯特编码总体框图
维普资讯 http://www.cqvip.com
第2期 林艺文等:用FPGA实现曼彻斯特编解码 65
由于数据是串行输入的,因此上图中的CRCC采用串行CRC编码方法.通常,串行
CRC的编码可由线性反馈移位寄存器(LFSR)来实现.I.,FSR使用异或运算及移位除法运
算来产生 CRC校验码.现以本文所用到的CRC码为例来说明串行 CRCC的VI-IDL的实
现.主要程序节录如下:
BEGⅡ、『
PROCESS(c~)
BEGⅡ
Ⅱ’rst= 1 THEN
reg_crc~= 000/I;
ELSIF elk event AND clk= 1 THEN
IF enable= 1 THEN
reg_crc(0)~=temp_x;
reg_crc(1)~=reg_crc(0);
reg_crc(2)~reg cm(1);
reg_crc(3)~=reg_cm(2);
ELSE
reg_crc~ t
EDN IF;
END IF;
END PROCESS;
temp_x~reg__crc(3)XOR datain;
creout~reg_crc(3);
END behave;
3 解码器时序及结构
解码器不停地检测输入信号.当检测到同步字,开始解码周期并判断是数据同步字
(COM—DATA为1)还是命令同步字(COM—DATA为0).随后输出数据(DATAOUT),同时
使接收数据(TAKE—DATA)为高电平,并持续12个解码时钟(111196个系统时钟)周期.在
接收数据和进行CRC时,有效字(vAT,m—wOfu))保持低电平,如果传输无出错,有效
字(V 6 皿一W0fu))变为高电平.
检测输入信号值的方法:根据曼彻斯特编码的原理,也需要大于或等于二倍频于所
传数据速率的解码时钟.为了提高解码的准确性,本文采用八倍频于数据速率的时钟,
因此可以采用 “测四取三”的方法,即对每个编码的前半部分进行四次采样,取其大于
等于三的相同值作为测量值.如果没有三个相同的值,解码器不作响应,如表 1所示
(其中 “ ”表示 “0”或 “1”).这种判定方法具有一定的滤波功能,提高了准确度.
1)同步字的判定
检测同步字是解码的关键.只有检测到同步字,才开始解码周期,因此解码器要不
停地监视是否有同步字出现.
维普资讯 http://www.cqvip.com
汕头大学学报
2)解码
在同步字出现后,采用上面 “测四取
三”的判定方法进行解码,获得有效数据
和冗余码.
3)循环冗余码校验
将解码得到的有效数据和冗余码(共l6
位)进行循环冗余校验.如果余数为零,则
认为传输中无数据出错,否则输出出错信
号,以便进行出错处理.
“测四取三”和同步字判定各自采用一
组移位寄存器来实现.在每个系统时钟的
上升沿进行采样,并放入移位寄存器再根
据表 1判定信号值.将使用 “测四取蔓”
方法检测到的信号值放人另一组寄存器.
由寄存器的前9位判定同步字,如表2所示.
0(x)111O0lD
0oOl11XXX
数据同步字
命令同步字(】。。(不全为零)
表 1和表2的VHDL描述是比较容易的.本文采用Case一 en语句实现.解码器的
总体模块框图如图3所示.
4 仿真及FPGA实现
图3 曼彻斯特解码总体框图
为了优化结果,在进行复杂HDL设汁时,基本上都会使用专业的逻辑综合软件,
而不使用PLD/FPOA厂家的集成开发软件中自带的逻辑综合功能.这里使用 FPOA
CompilerII进行综合,输出edf文件,导往MAXPLUSⅡ进行仿真和布线.并在 FPGA芯片
EPF10K10LC84-4上实现,其时序仿真波形如图4和图5.
图4是编码仿真.由于syn select为高表示数据同步字(即ll1000),如果syn s 为
_
elect
低则为命令同步字(1~0000111).此时输入数据为98BH.图5是解码仿真.由于采用 “测
四取三”的方法,可以看到即使输入信号有小的毛刺也能正确解码,得到的数据也为
98BH,而且valid word变为高表示传输不出错.
维普资讯 http://www.cqvip.com
第2期 林艺文等:用FPGA实现曼彻斯特编解码 67
ilk"syn selecI 1
. —
J \
B'-rat 0
B'-enable 1
—
■ 。 l
ilk"clk 1 ]几几几n n几几几n n几几几几门几n r]n n几n几n nnn几几几n n几n n n 门n几几八n几n nn
ilk"datain 0 r] 厂-] r_] 厂_]
—i send data 0 / /
3:ullmo2:u2.1n D18
. X X .X.!X!X X!X!X.!.X .X X !.X 堕X! .X !.X ! X望)( 0
—i dataout 1 几 厂]厂_]几 I-]厂],厂_] 厂_]⋯ ] r_] n
R 匣 二] 皿 Time.匝匾二] inte rval匝亘[]
iD--syn select 0
嗣 rst 0
嗣 enable 1
一 / | 。 I
iD-clk 1
iP-datain 0
send data 1 \ \- -
_ 3:ul o2: In D6
. .匹 砭 回匝 题延施 。
I dat80u1 1 厂] n厂_]几 n n厂] n nj1 n
图4 编码仿真图
Ref.匝亟二二二]团 Time匝 [] Inle~aI匝亟 二]
5 结束语
图5 解码仿真图
对于数字处理技术来讲,软件和硬件各有特点,比如硬件在实时性要求很高的场合
就比软件要好.本文的设计能很好地解决单片机编解码系统和专用芯片的问题,使传输
速率和数据
的灵活性得到提高.随着可编程器件和EDA工具的发展,相信采用硬
件描述语言设计硬件系统将会越来越方便,愈来愈受到广大电子设计人员的喜欢.
参考文献:
[1]何立民.单片机高级教程[M].北京:北京航空大学出版社,2000.
[2] HD15530 Datasheet[DB/0L].h郇://www.21ic.corn.
[3] 卢毅,赖杰.VHDL与数字电路设计[M].北京:科学出版社。2001.4
一一一一一一一一
一 咖 墨l 啊_啊
维普资讯 http://www.cqvip.com
68 汕头大学学报 (自然科学版) 第 19卷
[4] 王耿,姜智忠.用HDL语言实现循环兀余校验[J].微电子学与计算机,2002,5:4~6
[5] 曹志刚,钱亚生.现代通信原理[M].北京:清华大学出版社,1992.
The Implementation of Manchester Encoder and
Decoder Utilizing FPGA
uN Y/一wen FANG Zhan-wei
(Department of Electronic Engineering,Shantou University,Shantou 515063,China)
Abstract:A Manchester Coder-Decoder is designed using the software MAXPLUS U,
FPGA
_
Compiler 1I and the hard 旧托descriptive language VHDL in line with the top—down method,
to be implemented in an EPF10K10LC84—4 chip of PFGA type manufactured by Ahera Co..De—
co,tile p~ ess included synchronous head,data bits determination and CRC checking.The experi—
ment results have proved that FPGA Can implement Manchester Coding—Decoding and this kind of
Coding-Decoding method has many advantages such as strong anti—interference ability and the high
data transmission rate.etc.
Key words:FPGA;Manchester;VHDL;CRC
维普资讯 http://www.cqvip.com
本文档为【FPGA解码曼彻斯特】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。