曼彻斯特编解码电路设计
【2017年整理】一种简便的ID卡曼彻斯特解码方法
一种简便的ID卡曼彻斯特解码方法我这里介绍的是常用的125KHz的ID卡。
ID卡内固化了64位数据,由5个区组成:9个引导位、10个行偶校验位“PO~P9′’、4个列偶校验位“PC0~PC3”、40个数据位“D00~D93”和1个停止位S0。
9个引导位是出厂时就已掩膜在芯片内的,其值为“111111111”,当它输出数据时,首先输出9个引导位,然后是10组由4个数据位和1个行偶校验位组成的数据串,其次是4个列偶校验位,最后是停止位“0”。
“D00~D13”是一个8位的晶体版本号或ID识别码。
“D20~D93”是8组32位的芯片信息,即卡号。
注意校验位都是偶校验,网上有些资料写的是奇校验,很明显是错的,如果是奇校验的话,在一个字节是FF 的情况下,很容易就出现9个1,这样引导位就不是唯一的了,也就无法判断64位数据的起始位了。
数据结构如下图:我读的一个ID卡数据是111111111 10001 00101 00000 00011 00000 01010 00000 11011 00110 01100 01100,对应的ID卡号是01050d36。
ID卡数据采用曼彻斯特编码,1对应着电平下跳,0对应着电平上跳。
每一位数据的时间宽度都是一样的(1T)。
由于电路参数的差别,时间宽度要实际测量。
解码芯片采用U2270B,单片机采用89S52。
U2270B的输出脚把解码得到的曼彻斯特码输出到89S52的INT脚。
在89S52的外部中断程序中完成解码。
在没有ID卡在读卡器射频范围内时,U2270B的输出脚会有杂波输出,ID卡进入读卡器射频范围内后,会循环发送64位数据,直到ID卡离开读卡器的有效工作区域。
根据ID卡的数据结构,64位数据的最后一位停止位是0。
最开始的9位引导位是1,可以把0111111111做为引导码。
也就是说在ID卡进入读卡器工作范围后,丢掉ID卡发送的第一个64位码,检测最后1位0,然后检测ID卡发送的第2个64位码的9个引导码111111111,引导码检测成功后,解码剩余的55位码。
基于CPLD的曼彻斯特编码技术_王奇
语 言进 行设 计 , 使 用 , 仿真 图形
是 发送端 的并行 信 号 的 时钟 信 号 , 在 切 的 二倍 频 时 钟 信 可 以看 出 ,
进行 仿真 , 仿 真 的数 据编 码速 率设 为
以 是 由外 部提供 的 中进 行 分频 , 产生需要的 号
在 倍频时钟的 几 升沿
几 分频 频 位 计数 器
曼彻 斯特码
在曼 彻斯 特编码 〔 '一 冲 , 每一 位 的中间 有一 个跳 变 ,
位 中间 的跳变 既作 时钟信 号 , 又 作数 据信 号 。 从 高 到低 跳变 表示 “ ” , 从低 到高 跳变表 示 “ ” 。
从 曼 彻 斯特 码 的特 点 可 以看 出曼彻 斯 特 码 是一 种
间节 点更 加可靠 , 进 而通 信成 功的概 率不 断地提 高 。 本文 提 出 了一 种基 于反 馈评 价 信任 机制 的模 型 , 通
' , 一
过 节点 间在通 信 结 束后 互 相反 馈 信任 信 息来 计 算 节 点
的信 任 度 , 同时也 考 虑 到节 点 的信 任 率 , 通 过 仿 真试 验 看 出 , 信 任机 制模 型通信 成功 的概 率还 是很 高 的 。 相 较 于改 进前 的模 型 , 系统在 抑制 恶意 节点 的效 率也 有所 提 高 。 参考 文献
N 6t w or k
and C O m m u ni Ca t i on
基于
的曼彻斯特编码技术
王 奇 , 王英 民 , 牛 奕龙 , 陶林 伟
西北 工 业 大 学 , 陕西 西 安
摘 要
研 究 了曼彻 斯 特 编 解码 方 法 , 采 用
语 言在
上 实现 了编 解 码 , 使 系统 的功 能 高 仿真 了 速 率 下 的编 解 码 , 结果 和
通信原理实验15曼彻斯特码编解码实验
实验十五曼彻斯特码编解码实验实验内容1. 熟悉曼彻斯特码编码实验2.熟悉曼彻斯特码译码实验一、实验目的1.掌握曼彻斯特码的编解码规则的过程2.掌握曼彻斯特码的编解码原理3. 学习通过CPLD编程实现曼彻斯特码编译码实验二、实验电路工作原理在实际的基带传输系统中,并不是所有码字都能在信道中传输。
例如,含有直流和低频成分的基带信号就不适宜在信道中传输,因为它有可能造成信号严重畸变。
同时,一般基带传输系统都从接收到的基带信号流中提取收定时信号,而收定时信号却又依赖于传输的码型,如果码型出现长时间的连“0”或连“1”符号,则基带信号可能会长时间的出现0电位。
从而使收定时恢复系统难以保证收定时信号的准确性。
实际的基带传输系统还可能提出其它要求,因而对基带信号也存在各种可能的要求。
归纳起来,对传输用的基带信号的主要要求有两点:①对各种代码的要求,期望将原始信息的符号编制成适合于传输用的码型,②对所传码型的电波波形要求,期望电波波形适宜于在信道中传输。
前一问题称为传输码型选择,后一问题称为基带脉冲的选择。
这是两个既有独立性又有联系的问题,也是基带传输原理中十分重要的两个问题。
传输码(又称线路码)的结构将取决于实际信道特性和系统工作的条件。
在较为复杂的基带传输系统中,传输码的结构应具有下列主要特性:①能从其相应的基带信号中获取定时信息;②相应的基带信号无直流成分和只有很小的低频成分;③不受信息源统计特性的影响,即能适应于信息源的变化;④尽可能地提高传输码型的传输效率;⑤具有内在的检错能力,等等。
曼彻斯特码(Manchester code)又称裂相码、双向码,是一种用电平跳变来表示1或0的编码,它是计算机网络中常用的两种编码方法(曼彻斯特编码和差分曼彻斯特编码)。
未经编码的二进制基带数字信号就是高电平和低电平不断交替的信号。
至于用低电平代表1或0都是可以的。
使用这种最简单的基带信号的最大问题就是当出现一长串的连1或0时,在接收端无法收到的比特流中提取位同步信号。
简单的曼彻斯特编码的C语言实现
简单的曼彻斯特编码的C语言实现曼彻斯特编码是减小信号交流分量,实现固定信号占空比的基本方法。
用C语言实现如下:#include <stdio.h>#define uint8_t unsigned char#define uint16_t int#define BOOL int#define TRUE 1#define FALSE 0BOOL app_ManchesterEncode(uint8_t *indata,uint8_t *outdata,uint16_t inlength);BOOL app_ManchesterDecode(uint8_t *indata,uint8_t *outdata,uint16_t inlength);uint8_t indata[10]={0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef,0x43,0xb8};uint8_t middata[20];uint8_t outdata[10];uint16_t inlength;int main(){int length=10;int i=0;app_ManchesterEncode(indata,middata,length);if(app_ManchesterDecode(middata,outdata,length*2)==FALSE)printf("decode failed!\n");printf("in:");for(i=0;i<length;i++)printf(" %2.2x",indata[i]);printf("\n");printf("mid:");for(i=0;i<length*2;i++)printf(" %2.2x",middata[i]);printf("\n");printf("out:");for(i=0;i<length;i++)printf(" %2.2x",outdata[i]);printf("\n");}BOOL app_ManchesterEncode(uint8_t *indata,uint8_t *outdata,uint16_t inlength) {uint16_t i=0;uint8_t j=0;for(i=0;i<inlength;i++){outdata[2*i]=0;outdata[2*i+1]=0;for(j=0;j<8;j++)if(j<4)outdata[2*i+1]|=(((indata[i]>>j)&0x01)?2:1)<<j*2;elseoutdata[2*i]|=(((indata[i]>>j)&0x01)?2:1)<<(j*2-8);}return TRUE;}BOOL app_ManchesterDecode(uint8_t *indata,uint8_t *outdata,uint16_t inlength) {uint16_t i=0;uint8_t j=0;for(i=0;i<inlength/2;i++){outdata[i]=0;for(j=0;j<8;j++){if(j<4){if((indata[2*i+1]>>(j*2)&0x03)==0x01);else if((indata[2*i+1]>>(j*2)&0x03)==0x02)outdata[i]|=0x01<<j;else{printf("at i=%d j=%d data:%2.2x ",i,j,indata[2*i+1]&0x03);return FALSE;}}else{if((indata[2*i]>>(j*2-8)&0x03)==0x01);else if((indata[2*i]>>(j*2-8)&0x03)==0x02)outdata[i]|=0x01<<j;else{printf("at i=%d j=%d\n",i,j);return FALSE;}}}}return TRUE;}。
曼彻斯特解码原则+125K EM4100系列RFID卡解码源程序分析
曼彻斯特解码原则+125K EM4100系列RFID卡解码源程序分析曼彻斯特解码原则1.曼彻斯特编码曼彻斯特编码(Manchester Encoding),也叫做相位编码(PE),是一个同步时钟编码技术,被物理层使用来编码一个同步位流的时钟和数据。
曼彻斯特编码被用在以太网媒介系统中。
曼彻斯特编码提供一个简单的方式给编码简单的二进制序列而没有长的周期没有转换级别,因而防止时钟同步的丢失,或来自低频率位移在贫乏补偿的模拟链接位错误。
在这个技术下,实际上的二进制数据被传输通过这个电缆,不是作为一个序列的逻辑1或0来发送的(技术上叫做反向不归零制(NRZ))。
相反地,这些位被转换为一个稍微不同的格式,它通过使用直接的二进制编码有很多的优点。
曼彻斯特编码,常用于局域网传输。
在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作时钟信号,又作数据信号;从高到低跳变表示"1",从低到高跳变表示"0"。
还有一种是差分曼彻斯特编码,每位中间的跳变仅提供时钟定时,而用每位开始时有无跳变表示"0"或"1",有跳变为"0",无跳变为"1"。
对于以上电平跳变观点有歧义:关于曼彻斯特编码电平跳变,在雷振甲编写的<<网络工程师教程>>中对曼彻斯特编码的解释为:从低电平到高电平的转换表示1,从高电平到低电平的转换表示0,模拟卷中的答案也是如此,张友生写的考点分析中也是这样讲的,而《计算机网络(第4版)》中(P232页)则解释为高电平到低电平的转换为1,低电平到高电平的转换为0。
清华大学的《计算机通信与网络教程》《计算机网络(第4版)》采用如下方式:曼彻斯特编码从高到低的跳变是0 从低到高的跳变是1。
两种曼彻斯特编码是将时钟和数据包含在数据流中,在传输代码信息的同时,也将时钟同步信号一起传输到对方,每位编码中有一跳变,不存在直流分量,因此具有自同步能力和良好的抗干扰性能。
Verilog_VHDL_曼彻斯特编码器
1.5.什么叫“综合”?一般“综合”包含哪些过程?答:在电子设计领域中“综合”的概念可以表示为:将用行为和功能层次表达的电子系统转换为低层次的便于具体实现的模块组合装配的过程。
综合包含的过程:对VHDL或Verilog HDL进行处理分析,并将其转换成电路结构或模块,这时不考虑实际器件实现,即完全与硬件无关,这个过程是一个通用电路原理图形成的过程:第2步,对实际实现目标器件的结构进行优化,并使之满足各种约束条件,优化关键路径,等等。
2.10 使用Quartus II的 Mega Wizard Plug-In Manager宏功能模块中的PLL设计一个能实现图题2.10波形的电路元件(包括一个VHDL文件和一个*.bsf原理图图标)。
其中:inclk0为电路的主频输入端,频率为50MHz;areset为异步置位端,c2和主频inclk0同频率。
c1为主频inclk0的倍频输出信号。
C0为c2的反相信号。
Locked为相位控制信号,也是输出使能控制信号。
( 2014am)3.20 试用VHDL 语言设计一个曼彻斯特编码器。
已知有时钟信号clk_d、时钟的倍频信号clk及时钟的反相信号clk_dn。
串行数据输入为data_s,编码输出为mcode_out,输出使能信号为clk_lock_in,高电平有效(2012am)(2013am)(2014am)提示:曼彻斯特码(Manchester Code)又称为数字双相码或分相码(Split-phase Code)。
它的编码规则是:用分别持续半个码元周期的正(高)、负(低)电平组合表示信码“1”;用分别持续半个码元周期的负(低)、正(高)电平组合表示信码“0”。
图题3.20 用倍频时钟设计Manchester Code图题3.20 用双时钟设计Manchester Code 的仿真结果hsu_manchester_code_vmodule hsu_manchester_code_v ( clk,clk_d,clk_dn,data_s,clk_lock_in,mcode_out); input clk,clk_d,clk_dn,data_s,clk_lock_in;output mcode_out;reg mcode_out;reg temp_mcode_out;reg temp_mcode_out_ddn;always ( posedge clk or posedge clk_lock_in )beginif (clk_lock_in==1'b1)if (data_s==1'b1)temp_mcode_out<=clk_d;elsetemp_mcode_out<=1'b0;elsetemp_mcode_out=1'b0;endalways ( posedge clk or posedge clk_lock_in )beginif (clk_lock_in==1'b1)if (data_s==1'b0)temp_mcode_out_ddn<=clk_dn;elsetemp_mcode_out_ddn<=1'b0;elsetemp_mcode_out_ddn=1'b0;Endalways ( posedge clk or posedge clk_lock_in )beginif (clk_lock_in==1'b1)mcode_out<=temp_mcode_out;temp_mcode_out_ddn;elsemcode_out<=1'b0;endendmodule3.21 试用VHDL 语言设计一个求两个数中最大值的程序,要求用函数调用的方法设计。
曼彻斯特编码的FPGA设计方案
曼彻斯特编码的FPGA设计方案1 绪论1.1 背景及目的意义曼彻斯特编码是一种自同步的编码方式,即时钟同步信号就隐藏在数据波形中。
在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作时钟信号,又作数据信号;从高到低跳变表示"1",从低到高跳变表示"0"。
还有一种是差分曼彻斯特编码,每位中间的跳变仅提供时钟定时,而用每位开始时有无跳变表示"0"或"1",有跳变为"0",无跳变为"1"。
在曼彻斯特编码中,用电压跳变的相位不同来区分1和0,即用正的电压跳变表示0,用负的电压跳变表示1。
因此,这种编码也称为相应编码。
由于跳变都发生在每一个码元的中间,接收端可以方便地利用它作为位同步时钟[1]。
由于技术的发展,现代通信体现出了越来越高的要求:1.能有效实现各子系统之间的数据传输,且满足特定的通信特性;2.通信子系统相对独立地工作,对应用软件尽可能透明,且占用主机的时间尽可能少;3.通信系统灵活,易于修改;4.通信子系统具有较强的抗干扰能力。
在数据通信领域,开发一个数据通信系统,选择一种好的数据编码方式是非常重要的,关系到整个系统的可行性、稳定性、通信质量以及以后系统的工作效率等方面。
如何实现开发出更高可行性、可靠性及稳定性的通信系统,这正是研究曼彻斯特码的目的和意义所在。
1.2 国外研究现状曼彻斯特码采用跳变沿来表示0或1,与二进制码相比,具有如下优点:1.波形在每一位元中间都有跳变,因此具有丰富的定时信息,便于接收端提取定时信号。
若采用二进制传输,当出现连续的0或1时,则无法区分两位元之间的边界;2.由于曼彻斯特码在每一位元中都有电平的转变,因此,传输时无直流分量,可降低系统的功耗。
而对于二进制波形,当出现连续的1时,将有直流分量的产生;3.曼彻斯特码传输方式非常适合于多路数据的快速切换。
曼彻斯特编解码电路设计毕业设计
毕业设计(论文)题目名称:曼彻斯特编解码电路设计学生姓名:院(系):电子信息学院专业班级:电气10602指导教师:辅导教师:时间:2010年3月15日至2010年6月10日目录毕业设计(论文)开题报告 (V)曼彻斯特编解码电路设计 (12)Manchester encoding and decoding circuit (13)前言 0曼彻斯特编解码电路设计 (1)1 选题背景 (1)普通NRZ码存在的问题 (1)应用背景 (1)2 方案论证 0曼彻斯特码简介 0曼彻斯特编解码解析 0曼彻斯特编解码具体实现方式 (1)方案选择 (2)3 硬件电路设计 (5)系统实物照片展示 (5)系统的硬件框图 (6)AT89S52单片机简介 (7)单片机外围电路 (9)信号调理电路 (13)4 软件设计 (16)资源利用 (16)曼彻斯特码编解码方式分析 (18)程序流程图 (19)编码实现 (21)改良方向 (24)参考文献 (26)致谢 (27)附录1:地下液位测量系统实物照片 (28)长江大学毕业设计(论文)任务书学院(系)电子信息学院专业电气工程及自动化班级电气10602学生姓名熊香春指导教师/职称吴爱平/讲师1.毕业设计(论文)题目曼彻斯特编解码电路设计2.毕业设计(论文)起止时刻:2010年3月15日-2010年6月10日3.毕业设计(论文)所需资料及原始数据(指导教师选定部份)所需资料:(1)《MCS-51单片机原理与应用》(2)《单片机的C语言编程》(3) 通信原理原始数据传输速度为20Kb/S,一帧数据有16个字节,一帧的命令有2个字节。
4.毕业设计(论文)应完成的主要内容(1)利用C语言编程实现曼彻斯特编码、解码模块,并在PROTUES软件中仿真;(2)设计曼彻斯特信号调理电路;(3)毕业论文中必需包括如下内容:大体原理介绍、整体框图、软件流程图、软件原理介绍、源程序清单。
5.毕业设计(论文)的目标及具体要求利用单片机和C语言编程实现曼彻斯特编码、解码模块,并在PROTUES软件中仿真通过;通过单片机最小系统,辅之外围电路,能够实现编解码。
STM32的曼彻斯特编译码系统设计
STM32的曼彻斯特编译码系统设计引言由于曼彻斯特(MancheSTer)编码具有传输时无直流分量,时钟提取方便等特点,被广泛地应用于以太网、车辆总线、工业总线中。
现在工程上常用的曼彻斯特编译码芯片为HD-6408和HD-6409,但是这种芯片有一些不足。
首先,该芯片在传输速率和每帧数据中的有效位数等方面都做了严格的限制。
其次,使用该芯片需要增加额外的硬件电路,提高了系统成本。
使用FPGA做曼彻斯特编译码成本高,而且开发周期长。
本文提出了一种基于STM32F103RET6的编译码系统方案,利用了STM32F103RET6强大的定时器功能,采用灵活的编译码方式,传输速率和数据帧格式都可以根据需要完全自行定义。
STM32F103RET6自带DMA 的功能使得数据编码不再需要频繁的定时中断,提高了编码速率,节约了CPU的资源。
该设计方案实现方法简单、稳定、灵活,应用范围广泛。
1 曼彻斯特码曼彻斯特编码是一种自动同步的编码方式即时钟同步信号就隐藏在数据波形中。
在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作为时钟信号,又作为数据信号。
每个码元均用两个不同相位的电平信号表示,与用高、低电平表示的非归零二进制码相比,在连“0”或连“1”的情况下更易于提取同步时钟信息。
并且曼彻斯特码传输时没有直流分量,可以降低系统的功耗,且有很强的抗干扰能力。
图1所示是最常用的一种曼彻斯特编码方法,当传送信号为“1”时,曼彻斯特编码由高电平跳变为低电平;若传送的信息为“0”,曼彻斯特由低电平跳变为高电平,在一个数据周期内保持低电平无跳变则表示空闲。
图1 曼彻斯特编码2 STM32F103RET6的定时器与DMA简介控制器采用ST公司的STM32微处理器,STM32系列微处理器基于ARM Cortex-M3内核,采用高效的哈佛结构三级流水线,达到 1.25DMIPS /MHz,这里我们选用增强型的STM32F103RET6.它具有如下特征:72 MHz系统时钟频率、512 KB闪存程序存储器、64 KBSRAM、8个定时器、3个12位模数转换器、1个数模转换器,1个CAN接口、7通道DMA控制器,以及SPI、USART、I2C、I2S、USB接口等。
超大规模集成电路论文
课程论文(超大规模集成电路设计)题目基于CPLD的曼彻斯特编解码器设计专业学生姓名学号得分基于CPLD的曼彻斯特编解码器设计引言虽然计算机通信的方法和手段多种多样,但都必须依靠数据通信技术。
数据通信就是将数据信号加到数据传输信道上进行传输,并在接收点将原始发送的数据正确地恢复过来。
由于计算机产生的一般都是数字信号,因此计算机之间的通信实际上都属于数据通信。
曼彻斯特码编解码器是1553B总线接口中不可缺少的重要组成部分,曼彻斯特码编解码器设计的好坏直接影响总线接口的性能,在数控测井系统和无线监控等领域,曼彻斯特码编解码器都有广泛应用。
1 数据通信系统结构图1所示是数据通信系统的基本构成。
在计算机通信中,通信双方传递的信息必须进行量化并以某种形式进行编码后才能进行传输。
机内信号不论采用哪一种编码方法,它们的基本信号都是脉冲信号,为了减少信号在传输媒质上的通信带宽限制,以及噪音、衰减、时延等影响,也由于同步技术的需要,操作时都需要对简单的脉冲信号进行一些不同的变换,以适合传输的需要。
这样就会产生许多不同的代码,通常有不归零电平(NRZ-L)码,逢“1”反转(NRZ-1)码,曼彻斯特码和差分曼彻斯特等。
图2所示是部分编码方式的波形图。
由图2可知,不归零码的制码原理是用负电平表示“0”,正电平表示“1”,其缺点是难以分辨一位的结束和另一位的开始;发送方和接收方必须有时钟同步;若信号中“0”或“1”连续出现,信号直流分量将累加,这样就容易产生传播错误。
曼彻斯特码(Manchester)的原理是每一位中间都有一个跳变,从低跳到高表示“0”,从高跳到低表示“1”。
这种编码方式克服了NRZ码的不足。
每位中间的跳变即可作为数据,又可作为时钟,因而能够自同步。
曼彻斯特编码特点是每传输一位数据都对应一次跳变,因而利于同步信号的提取,而且直流分量恒定不变。
缺点是数据编码后,脉冲频率为数据传输速度的2倍。
差分曼彻斯特码(Differential Manchester)的原理是每一位中间都有一个跳变,每位开始时有跳变表示“0”,无跳变表示“1”。
曼彻斯特解码器
DS01470A_CN 第 2 页
© 2013 Microchip Technology Inc.
AN1470
图 3: CLC 功能
与 - 或- OR AND 或 - 异或 OR - XOR
lcxg1 lcxq lcxg2 lcxg3 lcxg4 lcxq
lcxg1 lcxg2 lcxg3 lcxg4
图 7:
数据捕捉
© 2013 Microchip Technology Inc.
DS01470A_CN 第 5 页
AN1470
或 - 异或配置中的 CLC 模块用于从此配置中提取时钟 (图 8)。
图 8:
时钟提取
这本质上就是曼彻斯特解码器,其中 CLC OR-XOR 为 时钟,D 为数据。如果使用时钟信号的上升沿捕捉 D 的
AN1470
曼彻斯特解码器
本节和下文所介绍的方法均基于图1所示的符合G.E.Thomas 标准的曼彻斯特编码。该方法很灵活,可轻松移植到 IEEE 802.3。 根据模块的空闲状态、 单片机引脚的上电配 置以及接收的第一个位,首次电平转换会存在一些差异 并需要考虑某些事项 (转换基于编码方法) 。启动和空 闲状态将在本文档的 “同步”一节中讨论。 CLC 模块非常灵活,通过对各个模块的输入或输出极性 进行取反即可轻松应用到各种场合。还可以在软件中控 制NCO模块的空闲状态。 下文讨论的方法假定数据在每 个位时间的前半部分可用。 下面是一个符合 G.E. Thomas 编码标准的编码位流示例 (图 5)。 此信号将被解码成时钟线和数据线,如图 6 所示。
LCxMODE<2:0> = 000 000 LCxMODE<2:0>=
LCxMODE<2:0> = 001 001 LCxMODE<2:0>=
基于FPGA的曼彻斯特编解码器设计
基于FPGA的曼彻斯特编解码器设计摘要:曼彻斯特码是一种性能良好的数字基带信号传输码,在工作原理的基础上,运用FPGA技术,利用VHDL设计完成曼彻斯特编解码器并用软件MAX +plusⅡ进行仿真,仿真结果与理论分析一致。
关键词:FPGA;VHDL;曼彻斯特码;编码器;解码器0引言曼彻斯特码简明有效时序却比较复杂,特别是在编码器接口的设计上需要大量的逻辑电路,FPGA的出现正好缓解了这个难题。
由于FPGA具有开发周期短、开发费用低、集成度高、性能稳定、结构灵活、成品不需要测试等诸多特点,所以越来越多的科学技术人员选择运用FPGA技术来进行电子电路的设计[1]。
1FPGA原理及开发工具1.1FPGA原理FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,其内部包括3个部分:输入输出模块IOB(Input Output Block)、可配置逻辑模块CLB(Configurable Logic Block)以及内部连线(Interconnect)[2]。
FPGA是由存放在片内RAM中的程序来设置其工作状态的,所以工作时要对片内RAM进行编程。
用户能够根据不同的配置模式来选择不同的编程方式。
加电的时候,FPGA需要将EPROM中的数据读入片内编程RAM中,配置完成后FPGA就进入工作状态。
因为掉电以后FPGA会恢复成白片,内部的逻辑关系会全部消失,所以FPGA 能够反复使用。
另外,FPGA的编程不需要专门的FPGA编程器,只需要用通用的EPROM、PROM编程器就可以解决,当需要修改FPGA 的功能时,换一片EPROM就能够达到效果。
同一片FPGA,不同的编程数据,能够产生不同的电路功能。
所以FPGA的使用十分灵活[3]。
1.2MAX +plusⅡ软件MAX +plusⅡ软件是由美国的Altera公司负责研究开发的。
MAX +plusⅡ作为一种EDA软件,提供了业界唯一一个真正与结构没有关系的、全部集成化的可编程的设计环境,它为设计者提供了丰富的库单元,使设计者能够随时调用[4]。
曼彻斯特编码的微控制器单线仿真器设计
曼彻斯特编码的微控制器单线仿真器设计
张立新;赵海;宁尚波
【期刊名称】《单片机与嵌入式系统应用》
【年(卷),期】2023(23)1
【摘要】本文为一款带OCDS的8051 MCU设计了一种单线仿真器,采用曼彻斯特编码。
该仿真器使用STM32处理器,加上外围电路形成仿真器电路板,然后对STM32进行编程,实现仿真器的软件功能。
仿真器负责将主机USB发出的调试命令转换为单线协议,然后发给MCU的OCDS,进而控制MCU的运行。
测试结果表明,该仿真器可以对MCU实现软件代码下载、启动与停止、断点设置、单步执行及存储访问等功能,该单线仿真器对其他形式仿真器也具有一定参考价值。
【总页数】5页(P15-18)
【作者】张立新;赵海;宁尚波
【作者单位】无锡学院物联网工程学院;江苏集萃智能集成电路设计技术研究所有限公司
【正文语种】中文
【中图分类】TP36
【相关文献】
1.基于FPGA的变速率曼彻斯特编码设计
2.基于ISO的RFID芯片曼彻斯特编码电路设计
3.基于FPGA的类曼彻斯特编码发送模块设计
4.基于ISO的RFID芯片曼彻斯特编码电路设计
5.基于FPGA技术的曼彻斯特编码器设计
因版权原因,仅展示原文概要,查看原文内容请购买。
曼彻斯特解码程序
曼彻斯特解码1、变量定义 (2)2、Manchest初始化 (2)3、Manchest解码信号翻转 (3)4、过滤错误的卡号 (4)5、获取正确的卡号 (5)6、Manchest获取卡号数据 (6)7、通过中断采样获取刷卡数据 (9)1、变量定义#define TH1_370US_H 0XFE //晶振11.0592MHZ,12T模式#define TL1_370US_L 0XAB#define SIGNAL_FLIP_TIME 10 //每隔100ms翻转一次读卡信号#define REPEAT_TIME 5 //500ms后重复读卡#define CLEAR_CARD_TIME 20 //2S后清除卡号数据#define MANCHEST_TIME 5sbit PULSE = P3^2;sbit RFEN = P3^5; //曼彻斯特解码脉冲信号sbit MANCHEST0= P3^2; //wiegand0sbit MANCHEST1= P3^3; //wiegand1uchar code CheckingTab[32]={ //接收到10组卡号的偶校验0X00,0X01,0X01,0X00,0X01,0X00,0X00,0X01, //这里数值是低五位的偶校验值0X01,0X00,0X00,0X01,0X00,0X01,0X01,0X00,0X01,0X00,0X00,0X01,0X00,0X01,0X01,0X00,0X00,0X01,0X01,0X00,0X01,0X00,0X00,0X01};uchar WGCardBuf[5]; //卡号uchar CopyCardBuf[5]; //备份卡号uchar ManchestBuf[11]; //暂存接收到的11组数据uchar idata g_ucManchestTime = MANCHEST_TIME; //uchar idata g_ucDWithCardTime= 0; //隔500ms处理该卡号uchar idata g_ucPreambleFlag = 0;uchar idata g_ucERAgainTimer = 0; //每隔100ms翻转一次RFENuchar idata g_ucStoreGroupCnt= 0; //接收到几组数据,这里为11组才可能正确uchar idata g_ucEGroupBitCnt = 0; //每组数据有5个为,5=4位卡号+1位偶校验uchar idata g_ucPreambleCount= 0; //9位为1的引导码uchar idata g_ucRemvoeCardTime=0; //隔多久清除以前的卡号数据,这里为3s2、Manchest初始化/******************************************************************** 函数原型:ManchestInit功能:曼彻斯特解码变量初始化输入:无输出:无说明:无*-------------------------------------------------------------------- *修改时间| 修改者| 备注*-------------------------------------------------------------------- *2012-02-14 Oscar First********************************************************************/ void ManchestInit(void) //初始化读卡参数{RFEN = 1;g_ucPreambleFlag = 0;g_ucStoreGroupCnt = 0;g_ucEGroupBitCnt = 5;g_ucPreambleCount = 9;g_ucERAgainTimer = SIGNAL_FLIP_TIME;}3、Manchest解码信号翻转/******************************************************************** 函数原型:ProcessManchestSignal功能:manchest解码的翻转信号输入:无输出:无说明:无*-------------------------------------------------------------------- *修改时间| 修改者| 备注*-------------------------------------------------------------------- *2012-02-14 Oscar First********************************************************************/ void ProcessManchestSignal(void){if((g_ucDWithCardTime!=0)&&(--g_ucDWithCardTime==0)){}if((g_ucRemvoeCardTime!=0)&&(--g_ucRemvoeCardTime==0)){CopyCardBuf[0] = 0; //清除卡号缓冲区CopyCardBuf[1] = 0;CopyCardBuf[2] = 0;CopyCardBuf[3] = 0;CopyCardBuf[4] = 0;}RFEN = ~RFEN;g_ucPreambleFlag = 0;g_ucPreambleCount= 9;if(RFEN){EX0 = 1;EX1 = 1;}else{EX0 = 0;EX1 = 0;}}4、过滤错误的卡号/******************************************************************** 函数原型:CalibrationCardData功能:一张卡号,如果出现全部相同的数字或者该卡号只有两种数据,则认为是错误的卡号。
曼彻斯特编解码电路设计
中南大学本科生毕业论文(设计)题目曼彻斯特编解码电路设计学生姓名李天栋指导教师肖大光娄田心学院信息科学与工程学院专业班级通信工程03级2班完成时间2007年5月目录目录 (I)摘要 (IV)ABSTRACT (V)第一章绪论 (6)1.1项目背景 (6)1.2项目研究内容和任务 (6)1.3论文各部分主要内容 (6)第二章曼彻斯特码的原理及其编码规则 (8)2.1曼彻斯特码简介及其编码规则 (8)2.2曼彻斯特码原理 (8)2.3曼彻斯特码的应用范围 (10)2.3.1 曼彻斯特码在LAN中的应用 (12)2.3.2 曼彻斯特码在测井系统中的应用 (12)第三章曼彻斯特编解码方案 (14)3.1编码电路 (14)3.2解码电路 (20)3.3同步信号提取电路 (21)3.3.1 利用电压比较器整形曼码 (23)3.3.2 利用微分电路检出曼码跳变沿 (24)3.3.3 全波整流电路 (26)3.3.4 窄带滤波电路 (29)3.3.5 锁相环 (32)第四章运用VHDL语言对同步方法仿真 (35)4.1VHDL语言简介 (35)4.2VHDL语言仿真 (35)第五章 PROTEL软件绘制电路图简介 (38)5.1P ROTEL软件简介 (38)5.2电路图绘制 (38)第六章结论与展望 (41)参考文献 (42)致谢 (43)附录 (44)摘要在电信领域,曼彻斯特码是一种数据通讯线性码,它的每一个数据比特都是由至少一次电压转换的形式所表示的。
曼彻斯特编码因此被认为是一种自定时码。
自定时意味着数据流的精确同步是可行的。
每一个比特都准确的在一预先定义时间时期的时间中被传送。
曼彻斯特编码已经被许多高效率且被广泛使用的电信标准所采用,例如以太网电讯标准. 曼彻斯特编码是一种超越传统数字传输的信道编码技术,由于其具有隐含时钟、去除了零频率信号的特性使得它在石油勘探测井中得到广泛的应用。
报告论述了曼彻斯特码的原理,介绍了其编码规则。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中南大学本科生毕业论文(设计)题目曼彻斯特编解码电路设计学生姓名李天栋指导教师肖大光娄田心学院信息科学与工程学院专业班级通信工程03级2班完成时间2007年5月目录目录 .......................................... 错误!未定义书签。
摘要 .......................................... 错误!未定义书签。
ABSTRACT ...................................... 错误!未定义书签。
第一章绪论 ................................... 错误!未定义书签。
项目背景.................................... 错误!未定义书签。
项目研究内容和任务.......................... 错误!未定义书签。
论文各部分主要内容.......................... 错误!未定义书签。
第二章曼彻斯特码的原理及其编码规则............ 错误!未定义书签。
曼彻斯特码简介及其编码规则.................. 错误!未定义书签。
曼彻斯特码原理.............................. 错误!未定义书签。
曼彻斯特码的应用范围........................ 错误!未定义书签。
曼彻斯特码在LAN中的应用.................. 错误!未定义书签。
曼彻斯特码在测井系统中的应用.............. 错误!未定义书签。
第三章曼彻斯特编解码方案...................... 错误!未定义书签。
解码电路.................................... 错误!未定义书签。
同步信号提取电路............................ 错误!未定义书签。
利用电压比较器整形曼码.................... 错误!未定义书签。
利用微分电路检出曼码跳变沿................ 错误!未定义书签。
全波整流电路.............................. 错误!未定义书签。
窄带滤波电路.............................. 错误!未定义书签。
锁相环.................................... 错误!未定义书签。
第四章运用VHDL语言对同步方法仿真............. 错误!未定义书签。
VHDL语言简介 ............................... 错误!未定义书签。
VHDL语言仿真 ............................... 错误!未定义书签。
第五章 PROTEL软件绘制电路图简介............... 错误!未定义书签。
P ROTEL软件简介............................... 错误!未定义书签。
电路图绘制.................................. 错误!未定义书签。
第六章结论与展望 ............................. 错误!未定义书签。
参考文献 ...................................... 错误!未定义书签。
附录 .......................................... 错误!未定义书签。
摘要在电信领域,曼彻斯特码是一种数据通讯线性码,它的每一个数据比特都是由至少一次电压转换的形式所表示的。
曼彻斯特编码因此被认为是一种自定时码。
自定时意味着数据流的精确同步是可行的。
每一个比特都准确的在一预先定义时间时期的时间中被传送。
曼彻斯特编码已经被许多高效率且被广泛使用的电信标准所采用,例如以太网电讯标准. 曼彻斯特编码是一种超越传统数字传输的信道编码技术,由于其具有隐含时钟、去除了零频率信号的特性使得它在石油勘探测井中得到广泛的应用。
报告论述了曼彻斯特码的原理,介绍了其编码规则。
对其特点和应用范围进行了说明。
提出了曼彻斯特编解码方案,重点运用VHDL语言对同步信号提取电路进行了硬件仿真。
以及对使用Protel软件绘制电路图进行了介绍。
系统成功实现了曼彻斯特码数据传送的要求而且电路简单,性能稳定。
关键词:曼彻斯特码,同步信号,VHDL仿真ABSTRACTThe Manchester code is one kind of data communication linearity codes. All its dada bits are shown by at least once voltage changing. This is why Manchester code is called self-acting timing code. Self-acting timing means the feasibility of the precise synchronization of data stream. Each bit is transmitted accurately in the period that defined in advance. Manchester codes have been adopted by many telecom standards that have high efficiency and are been used widely, such as Ethernet communication standard. Manchester code is a coding technology for channel that exceeds the traditional data transmission. The characteristics that including crytic clock and eliminating the signals in zero frequency have made it been used in the detecting well of oil widely.The thesis mainly discusses the theory of the Manchester code and its coding rules, it also explains its characteristics and use range. The theory puts forward the Manchester coding and decoding proposals and conducts the hardware simulating on the synchronized signal pick-up module with the VHDL language , it also uses the Protel software to make the system circuit diagram. This proposalhas successfully met the requirement of Manchester code date transfer and it is also sample in the circuit and stable in the capability.KEY WORDS: Manchester code,VHDL,Synchronism signal第一章绪论项目背景测井技术发展到今天,已经发生了很大的变化:一是由模拟测井技术发展到了数字测井技术;二是由数字测井技术发展到了数控测井技术。
进入90年代,成像测井技术获得了较大的发展,测井系统中需要传送的数据信息量越来越大,为此必须解决数据的高速传输与正确接收两个问题,如相关编码技术、缆芯多路复用技术、基带均衡技术等用以提高数据传输速率和降低误码率.在测井数据传输系统中,由于曼彻斯特码既能提供足够的定时分量,又无直流漂移,编码过程相对简单,因而曼彻斯特(Manchester)码是测井数据传输中常用的编码方式之一。
曼彻斯特码,又称数字双相码或分相码。
在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作时钟信号,又作数据信号;从高到低跳变表示"1",从低到高跳变表示"0"。
曼彻斯特编码是将时钟和数据包含在数据流中,在传输代码信息的同时,也将时钟同步信号一起传输到对方,每位编码中有一跳变,不存在直流分量,因此具有自同步能力和良好的抗干扰性能。
但每一个码元都被调成两个电平,所以数据传输速率只有调制速率的1/2。
曼彻斯特码是主要用在数据同步传输的一种编码方式。
由于曼彻斯特码有如此多的优点,所以在现代通信中得到了广泛的应用。
本课题设计了一种利用曼彻斯特编码实现数据传输的通信系统。
本文的主要工作就是研究曼彻斯特码编码器的设计及实现。
项目研究内容和任务本项目主要研究曼彻斯特码编码器的硬件设计和实现。
为了能顺利完成曼彻斯特码的编解码任务,实现数据传输它应该包括这样几个部分:编码电路,解码电路,以及同步信号提取电路。
在本次设计中,为了验证电路系统能否顺利完成曼彻斯特码的编解码功能,我们采取了比软件仿真更加直观,与最终产品更加贴近的硬件验证方式。
在该方式中需要使用VHDL语言对系统进行仿真。
论文各部分主要内容第二章详细说明了曼彻斯特码编码的特点,规则以及应用。
第三章介绍了曼彻斯特编解码系统的总体结构和功能概述、硬件组成。
第四章详细说明了利用VHDL语言对系统的同步信号提取模块进行仿真的过程。
第五章介绍了利用PROTEL的电路图绘制。
第六章是对本次设计的小结和展望。
第二章曼彻斯特码的原理及其编码规则曼彻斯特码简介及其编码规则在电信领域,曼彻斯特码,(也称作相位码或者PE)是一种数据通讯线性码,它的每一个数据比特都是由至少一次电压转换的形式所表示的曼彻斯特编码被因此被认为是一种自定时码。
自定时意味着数据流的精确同步是可行的。
每一个比特都准确的在一预先定义时间时期的时间中被传送。
但是,今天有许许多多的复杂的编码方法(例如8B/10B编码),在达到同等目的情况下只需要更少带宽负荷并且只有更少的同步信号相位模糊.二进制码与曼彻斯特码波形的对比关系如下。
图二进制码与曼彻斯特码波形曼彻斯特码原理用于数字基带传输的码型种类较多,Manchester码是其中常用的一种。