红外编码与解码的VHDL实现

红外编码与解码的VHDL实现
红外编码与解码的VHDL实现

红外编码与解码的VHDL实现

红外遥控在家电中应用广泛,采用VHDL语言设计红外遥控器的控制系统,该系统通过了实时仿真的验证,可现实键值读入,红外发射码的生成及发送功能。电路模块的程序代码可重复使用,可方便的嵌入到各类需要红外遥控控制器的嵌入式系统中,本次窗帘的遥控器电路就是用VHDL语言编写,并下载至CPLD中执行。

红外遥控作为一种单向红外通讯技术,因其具有性能稳定、使用方便以及成本低廉等特点,已经在消费电器中得到了普遍的应用。随着对电器产品智能化和使用便利性要求的进一步提高,红外遥控的应用已经从传统家电领域向智能设备等新领域扩展。由于集成电路制造工艺的设计水平的不断提高,将此类奋力电路功能集成到嵌入式系统中已成为可能。本文设计脉冲信号调制采用了PPM方式,红外遥控系统采用了VHDL语言编写,来实现该电路的功能。

市场上的红外遥控器种类繁多,一般有这些类型uPD6121、TC9012、

M50560-001、SA3010等等

不管遥控器的种类如何,其编码方式大多类似,本文以比较典型的uPD6121为例,要想用可编程逻辑器件编写其内部电路模块,首先得了解整个电路的工作原理,

以下是uPD6121红外遥控器的主要原理。

载波波形:

图 4-14 红外载波波形

使用455kHZ晶体,经内部分频电路、信号被调制在37.91kHZ的频率上,占空比为:

1/3,1/3的占空比有助于提高红外线的发射效率。

数据格式:

数据格式包括了引导码、用户码、数据码、和数据反码,编码总占32位。数据反码是数据码反向后的编码,编码时可用于对数据纠错。(注:第二段用户码也可以在遥控应用电路中被设置成第一段用户码的反码。

图 4-15 uPD6121编码前数据格式

使用455kHZ晶体时各代码所占用的时间

图 4-16 uPD6121编码后数据格式

位定义:

用户码或者数据码中的每一位可以是位‘0’,也可以是位‘1’。区分‘0’和‘1’是利用脉冲的时间间隔来区分,这种编码方式称为脉冲位置调制方式,英文简称PPM。

图 4-17 uPD6121的位定义

uPD6121G按键输出波形有两种方式:一种是每次按键都输出完整的一帧数据;另一种是按键按下相同的按键后每发送完整的一帧数据后,在发送重复码,知道按键松开。

重复码

图 4-18 uPD6121重复码波形

单一按键波形

图 4-19 uPD6121单一按键波形

连续按键波形

图 4-20 uPD6121连续按键波形

4.4.1、EPM3128ATC100-10复杂可编程逻辑器件芯片介绍

EPM3128ATC100-10是ALTERA公司MAX3000A CPLD系列中的一种。MAX3000A 系列的CPLD采用成本优化的0.3um,四层金属生产工艺,提供32到512个宏单元。

3.3V的MAX3000A CPLD系列提供商业级和工业级常用的速度等级和封装,是那些对成本敏感,大批量应用的企业的理想选择方案。

MAX3000A系列产品的特性:

图 4-21 max3000a系列产品特性

EPM3128ATC100-10特点:

逻辑门:2500

逻辑阵列块(LAB):8

宏单元(Macrocells):128

用户IO口:76

非用户IO口:20

JTAG 下载口:4

合计:100

封装:TQFP

图 4-22 EPM3128ATC100-10 封装芯片中包含四个专用输入口(GCLK1,OE1,GLCRn,OE2(GCLK2)),分别为是全

局时钟、全局使能、全局清零、全局时钟/使能信号,这几个信号有专用的连线与CPLD内部的每个宏单元相连,信号到每个宏单元的延时相同且延时最短,如果不用这些引脚可以将其接地。

4.4.2、红外遥控器模块的原理图

红外遥控模块的硬件部分原理图较为简单,该电路主要由键盘扫描电路、红外发射部分组成,而编码调制部分由软件部分负责。

图4-23 红外遥控发射电路图

由于ALTERA公司的3.3V/2.5V的MAX3000A芯片的IO脚兼容5V,所以键盘扫描电路的上拉电源可以接5V。D1为红外发射管,D2为红外发射指示灯。

4.5、主控制板每个模块功能介绍

主控制板电路除了CPLD的最小系统之外主要有双门限电压比较电路、数码管扫描显示电路、按键脉冲发生电路、红外接收电路(上面已有介绍)、电机驱动电路(上面有介绍)以及一些接插件等。

4.5.1、CPLD最小系统绍

CPLD的最小系统主要是电源电路、程序的下载电路以及时钟输入电路(作为纯组合逻辑时可不接)几部分组成。

电源电路:

采用5V电源适配器供电经AMS1117稳压后产生3.3V电压给CPLD供电。CPLD的每个电源引脚均要接滤波电容,典型值0.1uF。

图 4-24 电源部分

电容C5~C12为芯片的每个电源引脚的旁路滤波电容,起电荷池作用,以平滑电流变化引起的电源电压的波动,当芯片电流突然增大时,旁路滤波电容放电以降低芯片的电压波动。

旁路滤波电容通常选用10~100nF的瓷片电容,瓷片电容的特点是:电感小,等效串联电阻低,用作旁路滤波电容非常合适。

下载电路:

ALTERA公司提供了多种编程下载电缆,如ByteBlasterMV、ByteBlaster Ⅱ并行下载电缆,目前更好的选择是采用USB接口的USB-Blaster下载电缆。

图 4-25 10芯接口引脚图

下载电路原理图:

图 4-26 下载电路

时钟电路:

CPLD的主时钟采用25MHZ有源晶振,电路图如下:

图 4-27 时钟电路

5.1、红外遥控编码原理与设计

由于EPM3128A芯片的宏单元数量的有限性,在编写红外编码发射电路时,不得不考虑芯片资源的节约问题,所以本设计编写的红外遥控编码原理与uPD6121稍微有所差别,uPD6121格式中数据码和用户码均为8bit,这样编码或者解码时会占用很多的寄存器,及占用CPLD内部很多的可编程触发器。而本文设计的遥控器只有16个按键,没有那么多种数据要编码发射,且EPM3128A芯片资源也是有限的,所以对用户码和数据码均设定义为4bit。本文设计的红外编码采用PPM编码方式,下面是其编码信息。

载波信号:f=38khz;占空比1/3;

位定义:a为一个时间单位时间长度是38kHZ的16个时钟周期,即a=1÷38kHZ ×16=0.421ms(这样有助于时钟分频,减少触发器使用的数量)

图 5-2 位定义

数据格式:

数据格式中包含了引导码、数据码、数据反码、用户码、用户码,除引导码外其余均为4bit,编码总占16bit。其中引导码的高电平6.74ms=16a,低电平3.37ms=8a。

图 5-3 编码前数据格式

每按一次按键发送一帧数据

图 5-4 编码后数据格式

红外遥控编码的主要电路有,键盘扫描电路、PPM编码电路、时钟分频电路、以及调制电路等组成。

时钟分频电路:产生整个电路所需要的所有时钟频率

键盘扫描电路:产生4位键值信号

PPM编码电路:对要发送的数据进行编码后发送

调制电路:38kHZ的频率与PPM编码后的串行输出信号进行相与即可

很明显电路的关键是对要发送的数据进行PPM编码,为了充分利用EPM3128A 有限的宏单元,选择一个良好的PPM编码的实现方式显的非常的重要。

下面是两种PPM编码方式:

有PPM编码的位定义可知,

原码 1—〉1000

0—〉10

方案1:

首先在PPM编码过程中省去了引导码(方案2同样),只对要发送的数据进行PPM编码论述。

由编码格式可知,要发送的数据的有效信号位数长短不一,不能用简单的逻辑变换将原信号转变为要发送的PPM编码信号后再移位输出。数据必须按照顺序装载在移位寄存器的前半部分。将数据码、数据反码、用户码、用户码分别装入16位缓冲寄存器中,用38kHZ、占空比为1/3的频率(频率不固定,其周期最好大于时间a)对这16位缓冲寄存器进行逐位采样,当待译码为1时采样得到的信号为1000,当待译码为0时得到的信号10,并依次装入64位移位寄存器,移位寄存器若有空余位,则全部补零。当装载完成后,移位寄存器进行移位,在移位的过程中,需要对移位的位数进行计数,当移位寄存器寄满64位时停止移位。实际应用时最好在移位寄存器前加一个输出位。该方案的实现方法较为简单,但是会浪费系统很多的资源,紧紧这两个寄存器就需占用80个可编程触发器,当要发送的数据过长,用这样的方法编码简直就是不切实际的。

其逻辑框2图如下:

图 5-5 方案1 编码原理框图

方案2:

方案2也是本人被芯片有限的资源逼出来的一种实现方案,方案若有啥不足之处,请多多指教。

当键盘扫描模块得到稳定键值数据时,将数据码、数据反码、用户码(用户码可以设定为4bit常量)分别装载于寄存器中。并且启动PPM编码发送电路。数据码、数据反码。用户码、用户码分时装载于缓冲寄存器(4bit)中,再由缓冲寄存器装载于移位寄存器(5bit、右移)的4个高位中,及移位寄存器的最低位(输出位)不装载。

自由计数器是两位模值可控计数器,当移位寄存器的移出位是‘0’时,自由计数器计数值由“00”―〉“01”―〉“00”变化,当移位寄存器输出位是‘1’时,自由计数器计数值由“00”―〉“01”―〉“10”―〉“11”―〉“00”变化。自由计数器每次清零时,产生移位时钟,以对移位寄存器中的数据进行移位。当移位满4位时,产生地址时钟信号,以对地址发生器做加1处理。

地址发生器由两位计数器构成,地址时钟信号每来一次脉冲,计数器加1,四位地址分别为“00”“01”“10”“11”。分别对应数据码、数据反码、用户码、用户码。

比较器的功能是,将自由计数器的输出值与“01”比较,当自由计数器输出“01”时,比较器输出为‘1’,其余数值时比较器输出‘0’。这样当移位寄存器的输出位是‘1’时,比较器就按顺序输出‘1’‘0’‘0’‘0’,当移位寄存器输出位是‘0’时,比较器就按顺序输出‘1’‘0’。

图 5-6 方案2 编码原理框图

了解数据发送的基本结构后,在程序编写时,关键是在无“时间缝隙”的情况下,分别将数据调制发送出去,所以把握好整个电路中的每一个时钟的上升沿和下降沿显的非常的重要。方案2虽然在结构上貌似麻烦了一点,但是它可以节约芯片的资源,而且当数据量越大时效果越明显。无疑对于像触发器比较匮乏的MAX3000A系列的CPLD来实现类似于NEC的uPD6121的编码规则,是一个良好的实现方案。

遥控器除了遥控编码当然还有键盘扫描电路。

键盘是4*4键盘,行线接的电阻是上啦电阻,阻值一般为几个K,作用是限流。

CPLD循环输出行信号(KX[3..0])“1110”“1101”“1011”“0111”,当没有按键按下时,CPLD的列输入信号(KY[3..0])为“1111”。当有按键按下时,例如,按下1键,此时KX[3..0]行信号输出为“0111”,此时输入端KY[3..0]检测到的信号将是“0111”。可以在编写程序时,将输出信号KX[3..0]于输入信号KY[3..0]同时判断,如刚刚举的例子,可以认为当数据“KX&KY”为“01110111”时,可以译成数据1,同理可得其它按键的编码。

键盘扫描程序设计思想:

循环输出行信号“1110”“1101”“1011”“0111”。检测列信号输入,将行、列信号相并“K_CODE<=KX_TEMP&KY”。

译键值,将行、列相并的信号“K_CODE”译成“0000”“0001”“0010”“0011”

“0100”“0101”“0110”“0111”“1000”“1001”“1010”“1011”“1100”“1101”“1110”“1111”,并且锁存。

去抖动,在译每一个键值后,为了防止按键抖动,加了一个计数环节,一旦检测到列信号后就译码,紧跟着进入计数环节,此时键抖动不会进入其它环节,这样可以防止键的抖动。

5.2、红外解码原理与设计

红外接收器接收到的红外信号后,输出电平与信号的有无一般是反向的,但是在硬件电路连接时,在其输出脚接了PNP管,信号从三极管的集电极输出至CPLD。所以,CPLD需要解码的数据与其发射时数据的相位是同相的。一般文献在介绍红外解码时,选用VHDL语言的有限状态机对红外信号进行解码,用有限状态机解码的优点有很多,本文不再冗述。本文主要是基于寄存器或者计数器的状态对整个电路的解码流程进行详细的数据流描述,这样可以更好了解电路的硬件结构以节约整个电路资源。

下面就以其发射时的波形对红外解码电路进行阐述。

图 5-7 编码后数据格式

解码流程结构图:

图 5-8 红外解码流程结构图

解码电路:输入信号 Din、时钟信号38khz和输出信号code[7..0]。

流程1:当红外信号的第一个上升沿来临时,锁存器锁存输出至‘1’,开始起始码解码过程,当起始码解码完成后,对输出标志位至‘1’,启动数据码解码过程。(起始码电路后面详细阐述)

流程2:当红外信号的第二个上升沿来临时,位地址加‘1’。

流程3:当红外信号的第二个下降沿(及数据码的第一个下降沿),延时计数器复位,开始倒计时计数(实际为下降沿后一个很短的低电平信号对延时计数器复位)。

流程4:延时计数器为模值为24的到计时计数器,当计数器为1是,输出为‘1’,即产生clk脉冲。(延时计数器的模值计算:当数据码的下降沿来临时开始延时,延时的时间宽度最好在1.5a,a是数据码最小脉冲的宽度。也就是说,当下一位数据为0时,延时后的脉冲信号要对准下一位数据码的高电平的中间部分,这样即使编码器的晶振时钟与解码器的晶振时钟有所误差也不会产生解码错误。至于延时计数器的时钟频率,最好远远高于红外信号的数据传输速率。当然,频率越高,计数器的模值就越大,适当就好。38k频率时钟的周期t=1/16a,所以选择了模值为24的倒计时计数器。)

流程5:clk时钟根据位地址将Din反向后装载于code[7],上升沿触发.

流程6:再重复整个数据解码过程7次,解出所有数据码及其反码。(后八位在实际测试时未解码,读者可以适当修改电路后再解码)

位地址与数据装载于缓冲寄存器的关系如下:

CASE ADDRESS IS

WHEN “0001”=>CODE(7)<=NOT DIN;

WHEN “0010”=>CODE(6)<=NOT DIN;

WHEN “0011”=>CODE(5)<=NOT DIN;

WHEN “0100”=>CODE(4)<=NOT DIN;

WHEN “0101”=>CODE(3)<=NOT DIN;

WHEN “0110”=>CODE(2)<=NOT DIN;

WHEN “0111”=>CODE(1)<=NOT DIN;

WHEN “0100”=>CODE(0)<=NOT DIN;

WHEN OTHERS=>NULL;

END CASE;

当完成整个解码过程后要产生一个使能信号,一个脉冲沿,还有四位有效数据。

解起始码部分:

图 5-9 起始码解码框图

起始码部分由16a的高电平和8a的低电平组成,用38khz的频率对红外信号Din进行采样。起初,当采样信号为1时累加器1加一处理,如果其中有一次为0,则对累加器清零。直到采满15次连续的‘1’信号后,再对Din信号的低电平采样,同理踩满连续7个‘0’信号后,输出起始码有效信号。如果连续的‘0’信号中出现一个或者多个高电平信号,则对累加器1和累加器2全部清零,恢复初始解码状态。比较器的大小并无固定的值,根据采样时钟而定,允许累加器的数值有所偏差,采样频率越高,越是能够采的比较精确的起始码,但频率越高,累加器位数也越多,适可而已即可。

注:大顺与你分享

曼彻斯特解码程序

曼彻斯特解码 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 5 sbit PULSE = P3^2; sbit RFEN = P3^5; //曼彻斯特解码脉冲信号 sbit MANCHEST0= P3^2; //wiegand0 sbit MANCHEST1= P3^3; //wiegand1 uchar 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翻转一次RFEN uchar 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; //隔多久清除以前的卡号数据,这里为3s 2、Manchest初始化 /******************************************************************** 函数原型:ManchestInit 功能:曼彻斯特解码变量初始化 输入:无 输出:无 说明:无

基于单片机模拟红外编码解码的设计

开放实验报告 课题名称基于单片机的红外解码器的设计学生姓名 系、年级专业信息工程系、11、12级电子信息工程指导教师江世明 2014年 5 月20日

基于单片机的红外解码器的设计 一.实验目的 1、了解红外编码原理,模拟红外发射信号; 2、用程序实现红外编码的解码; 二.实验内容 设计基于单片机的红外解码器,实现红外遥控信号智能解码,要求制作出实物,实现解码功能。 三.电路设计 1、红外编码原理 在实际应用中红外编码将二进制码调制到38MHz的载波频率上,通过在空中传播,由红外接收头接收之后,由内部的解调电路进行解调, 解调出来的就是我们发送的那些二进制码。红外编码方式根据日本NEC 协议编码。每次发送四个字节:用户码,用户反码,数据码,数据反码。数据 0和 1的区别通常体现在高低电平的时间长短上。一次按键首先发送9ms的低电平和4.5ms的高电平的引导码。 实际生活中,用遥控器发出的信号与上面的信号是相反的,经过红外线接收头解码以后就和上图一样了,值得大家注意的是发射模块的芯片不同,引导区的时间和数据都有所不同,但解决的方法都是一样的。 引导码后就是用户码。但是怎么来区分0和1呢?前面我们提到了PWM(脉宽调制)。根据脉冲的宽度来区别0和1.0.56ms低电平之后接0.56ms高电平为0,接1.12ms高电平为1.

2、红外解码方法 在实际生活中红外解码一般由红外接收头接收并解码。解码时先跳过9ms 高电平和4.5ms的低电平,然后跳过0.56ms的低电平,最后通过循环等待搞电平的结束并计时。通过判断高电平时间的长短来区分0(0.56ms)和1(1.12ms)。最后判断接收到的四个字节(用户码,用户反码,数据码,数据反码)中数据码和取反后的数据反码相不相等。 3、红外编解码电路 四、程序设计 见附录 五、系统仿真

红外遥控解码实验报告

嵌入式系统试验报告 1.红外遥控解码实验 1.1 实验目的

了解红外遥控编码并用单片机捕捉信号及解码 熟悉LCD1602的驱动 1.2 实验设备 T1838一体化红外接收头 DT9122D芯片制作 89S51 1.3 实验内容 红外一体化接收头接收到红外遥控发射器所发射的信号,并将此信号进行整形和反相送入单片机端口。经过软件译码,将译码结果(按键代码)昂数码管显示。 1.4 实验预习要求 遥控编码知识 ME850单片机开发实验仪集成有一路一体化红外接收头,并配有红外发射器,能够做红外接收与解码实验 了解简单的单片机的开发的环境 要有一定的C语言基础 1.5 实验原理 所谓解码就是能用单片机把以不同宽度的脉冲区别开来,一种比较好思路就是计算两次下降沿间隔时间,当单片机外部中断1口有下降沿时中断一次,并启动定时器,定时器定50us,当下次下降沿到来时我们计算定时器中断的次数,这样我们就能很好的区分不同宽度的脉冲了。

1.6 实验步骤 将JP21的8个短接子全部用短接帽短接,使DG0-DG7与P2端口接通 将JP22的9个短接子全部用短睫毛短接,使A-DP与P0端口接通,VCC向数码管模块供电 将JP10的短接子用短接帽短接,使红外接头U16的数据线与P3.2端口接通。 将JP24的短接子用短接帽短接,禁止LCD1602显示功能,否则数码管将不能正常显示。 第一次使用遥控器要去下电池盖下的隔离胶片。 1.7 实验电路原理分析 ME850选用T1838一体化红外接收头,接受来自红外遥控器的红外遥控信号。T1838集成红外接收二极管、放大、解调、整形等电路在同一封装上。T1838负责红外遥控信号的解调,将调制在38KHZ上的红外脉冲信号解调并倒相输入到单片机的P3.2引脚,由单片机进行高电平与低电平宽度的测量 T1838的输出端通过JP10与AT89S52的P3.2连接,既可以受用中断的方式也可以使用查询方式来编程 1.8 实验参考程序分析 #include #define uint unsigned int #define uchar unsigned char sbit ir=P3^3;//红外端口

曼彻斯特码原理与应用

曼彻斯特码 1 曼彻斯特原理介及其编码规则 (1) 2 曼彻斯特码的各方面应用 (3) 3 曼彻斯特码与差分曼彻斯特码 (5) 1 曼彻斯特原理介及其编码规则 Manchester编码是一种常用的基带信号编码。它具有内在的时钟信息,因而能使网络上的每一个系统保持同步。在Manchester编码中,时间被划分为等间隔的小段,其中每小段代表一位数据。每一小段时间本身又分为两半,前半个时间段所传信号是该时间段传送比特值的反码,后半个时间段传送的是比特值本身。可见在一个时间段内,其中间点总有一次信号电平的变化,因此携带有信号传送的同步信息而不需另外传送同步信号。 Manchester编码采用电平由高到低变化的下降沿代表0,电平由低到高变化的上升沿代表1;发送和接收的同步工作方式保证了信息传递的方便和可靠。 为了减少控制器与位置反馈单元之间的连线数目,信息的传递可采用两根线的串行方式。发送端和接收端的同步靠信息脉冲串之前的同步脉冲串来实现。 在电信领域,曼彻斯特码,(也称作相位码或者PE)是一种数据通讯线性码,它的每一个数据比特都是由至少一次电压转换的形式所表示的曼彻斯特编码被因此被认为是一种自定时码。自定时意味着数据流的精确同步是可行的。每一个 图1 二进制码和曼彻斯特码对比图 比特都准确的在一预先定义时间时期的时间中被传送。但是,今天有许许多多的复杂的编码方法(例如8B/10B编码),在达到同等目的情况下只需要更少带宽负荷并且只有更少的同步信号相位模糊。

二进制码与曼彻斯特码波形的对比关系如图1所示。 在曼彻斯特编码中,用电压跳变的相位不同来区分1和0,即用正的电压跳变表示0,用负的电压跳变表示1。因此,这种编码也称为相应编码。由于跳变都发生在每一个码元的中间,接收端可以方便地利用它作为位同步时钟,因此,这种编码也称为自同步编码。 用于数字基带传输的码型种类较多,Manchester码是其中常用的一种。Manchester码是一种用跳变沿(而非电平)来表示要传输的二进制信息(0或1),一般规定在位元中间用下跳变表示“1”,用上跳变表示“0”. 曼彻斯特编码被被认为是一种自定时码自定时意味着数据流的精确同步是可行的。每一个比特都准确的在一预先定义时间时期的时间中被传送。 在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作时钟信号,又作数据信号;从高到低跳变表示"1",从低到高跳变表示"0"。还有一种是差分曼彻斯特编码,每位中间的跳变仅提供时钟定时,而用每位开始时有无跳变表示"0"或"1",有跳变为"0",无跳变为"1"。 曼彻斯特编码提供了一种简单的方法在长时间段内没有电平跳变的情况下,仍然能够对任意的二进制序列进行编码,并且防止在这种情况下同步时钟信号的丢失以及防止低通模拟电路中低频直流飘移所引起的比特错误。如果保证传送的编码交流信号的直流分量为零并且能够防止中继信号的基线漂移,那么很容易实现信号的恢复和防止能量的浪费。曼彻斯特码具有丰富的位定时信息。 在物理层的同步时钟编码技术用来将时钟和数据编码统一在一个同步比特数据流中。在这项技术中,在电缆上被传送的真实二元数据不是以一连串的逻辑序列1或者0来表示的(这项技术也是一种不归零码NRZ)。这些要传送的数据比特被转换成一个略微不同格式,比起直接用二进制码(i.e. NRZ)来有许多的优势。 在曼彻斯特编码方案中,比特周期中间的0到1跳变表示逻辑0,比特周期中间的1到0的跳变表示逻辑1。注意信号跳变不一定在‘bitboundaries’比特边界(一个比特和另外一个比特)之间的分界线,但是总是发生在每个比特的中间位置.曼彻斯特编码的规则列出如下表1所示。

vhdl课程设计(电子钟+闹铃)

数字钟的设计 一、系统功能概述 (一)、系统实现的功能: 1、具有“时”、“分”、“秒”的十进制数字显示(小时从00 ~ 23)。 2、具有手动校时、校分、校秒的功能。 3、有定时和闹钟功能,能够在设定的时间发出闹铃声。 4、能进行整点报时。从59分50秒起,每隔2秒发一次低音“嘟”的信号,连续5次, 最后一次为高音“嘀”的信号。 (二)、各项设计指标: 1、显示部分采用的6个LED显示器,从高位至低位分别显示时、分、秒。 2、有一个设置调闹钟定时时间、正常时间的按钮,选择调的对象。 3、有三个按钮分别调时、分、秒的时间。 4、有一个按钮用作开启/关闭闹铃。 5、另外需要两个时钟信号来给系统提供脉冲信号,使时钟和闹钟正常工作,分别为1Hz、 1kHz的脉冲。 二、系统组成以及系统各部分的设计 1、系统结构描述//要求:系统(或顶层文件)结构描述,各个模块(或子程序)的功能描述;(一)系统的顶层文件: 1、顶层文件图:(见下页) 2、各模块的解释: (1)、7个输入量clk_1khz、clk_1hz、key_slt、key_alarm、sec_set、min_set、hour_set:其中clk_1khz为闹铃模块提供时钟,处理后能产生“嘟”、“嘀”和变化的闹铃声音;clk_1hz为计时模块提供时钟信号,每秒计数一次;key_slt选择设置对象:定时或正常时间;key_alarm能够开启和关闭闹铃;sec_set、min_set、hour_set用于设置时间或定时,与key_slt相关联。各按键输出为脉冲信号。 (2)、CNT60_A_SEC模块: 这个模块式将clk_1hz这个时钟信号进行60进制计数,并产生一个分钟的触发信号。该模块能将当前计数值实时按BCD码的格式输出。将该输出接到两位LED数码后能时时显示秒的状态。通过alarm_clk可以选择设置对象为时间还是定时值。在设置时间模式上,key上的一个输入脉冲可以将clk的输入信号加一。在设置定时模式上,key 上的脉冲只修改定时值,不影响时间脉冲clk的状态。 同时该模块具有两个输出口out_do、out_di来触发整点报时的“嘟”、“嘀”声音。 (3)、CNT60_A_MIN模块: 这个模块式将CNT60_A_SEC的输出信号进行60进制计数,并产生一个时位的触发信号。该模块能将当前计数值实时按BCD码的格式输出。将该输出接到两位LED数码后能时时显示分的状态。通过alarm_clk可以选择设置对象为时间还是定时值。在设置时间模式上,key上的一个输入脉冲可以将clk的输入信号加一。在设置定时模式上,key上的脉冲只修改定时值,不影响时间脉冲clk的状态。 同时该模块具有三个输出口out_do、out_di、out_alarm来触发整点报时的“嘟”、“嘀”、闹铃声音。

曼彻斯特码编解码的FPGA设计与实现

武汉理工大学 本科生毕业设计(论文)开题报告

目录 摘要 .......................................................................................................................................................... I ABSTRACT ............................................................................................................................................. II 1 绪论 (1) 1.1 背景及目的意义 (1) 1.2 国内外研究现状 (1) 1.2.1 在电信业的应用 (1) 1.2.2 在工业控制中的应用 (2) 1.2.3 在车辆总线中的应用 (2) 1.2.4 在石油勘测探井中的应用 (2) 1.3 项目研究内容及组织结构 (2) 2. 开发工具及仿真软件 (4) 2.1 FPGA原理 (4) 2.2 QuartusⅡ (5) 2.2.1 QuartusⅡ系统的特点 (5) 2.2.2 Quartus II下的FPGA设计 (6) 2.2.3 QuartusⅡ的仿真 (8) 2.3 Modelsim (8) 3 曼彻斯特码 (10) 3.1 数字通信中位同步与线路编码 (10) 3.2 曼彻斯特码及几种相关的二元码码型介绍 (11) 3.2.1 曼彻斯特码 (11) 3.2.2 单极性非归零波形 (12) 3.2.3 密勒码――曼彻斯特码的一种变形码 (12) 3.3 曼彻斯特码及几种常见二元码的包含定时信息的讨论 (12) 3.4曼彻斯特码的优点 (18) 3.5曼彻斯特码的应用范围 (19) 3.5.1在LAN中的应用 (19) 3.5.2在测井系统中的应用 (19) 3.6 曼彻斯特编码规则 (20) 4 系统方案设计 (23) 4.1 编码电路的设计 (23) 4.1.1 并串转换器的设计 (24) 4.1.2 NRZ码转换为曼彻斯特码 (25) 4.2 解码电路的设计 (26) 4.2.1 总体设计 (26) 4.2.2 各模块设计 (27) 5系统功能的实现 (30) 5.1 Verilog HDL语言简介 (30)

vhdl数字时钟设计

数字时钟设计 一、题目分析 1、功能介绍 1)具有时、分、秒计数显示功能,以24小时循环计时。 2)时钟计数显示时有LED灯的花样显示。 3)具有调节小时、分钟及清零的功能。 4)具有整点报时功能。 2、总体方框图 3、性能指标及功能设计 1)时钟计数:完成时、分、秒的正确计时并且显示所计的数字;对秒、分——60进制计数,即从0到59循环计数,时钟——24进制计数,即从0到23循环计数,并且在数码管上显示数值。 2)时间设置:手动调节分钟、小时,可以对所设计的时钟任意调时间,这样使数字钟真正具有使用功能。我们可以通过实验板上的键7和键4进行任意的调整,因为我们用的时钟信号均是1HZ的,所以每LED灯变化一次就来

一个脉冲,即计数一次。 3)清零功能:reset为复位键,低电平时实现清零功能,高电平时正常计数。可以根据我们自己任意时间的复位。 4)蜂鸣器在整点时有报时信号产生,蜂鸣器报警。产生“滴答.滴答”的报警声音。 5)LED灯在时钟显示时有花样显示信号产生。即根据进位情况,LED不停的闪烁,从而产生“花样”信号。 二、选择方案 1、方案选择 方案一:根据总体方框图及各部分分配的功能可知,本系统可以由秒计数器、分钟计数器、小时计数器、整点报时、分的调整以及小时的调整和一个顶层文件构成。采用自顶向下的设计方法,子模块利用VHDL语言设计,顶层文件用原理图的设计方法。显示:小时采用24进制,而分钟均是采用6进制和10进制的组合。 方案二:根据总体方框图及各部分分配的功能可知,本系统可以由秒计数器、分钟计数器、小时计数器、整点报时、分的调整以及小时的调整和一个顶层文件构成。采用自顶向下的设计方法,子模块利用VHDL语言设计,顶层文件用原理图的设计方法。显示:小时采用24进制,而分钟和秒均60进制。 终上所述,考虑到试验时的简单性,故我选择了方案二。 三、细化框图 根据自顶向下的方法以及各功能模块的的功能实现上述设计方案应系统细化框图:

基于AVR单片机的曼彻斯特编解码及其应用_王建国

—258 — 基于A VR 单片机的曼彻斯特编解码及其应用 王建国,孙敬华,曹丙霞 (中国海洋大学工程学院,青岛 266071) 摘 要:提出了一种在较高通信速率(10kbps)下用A VR 单片机软件实现曼彻斯特码编解码的方法。介绍了小功率无线传输系统的工作原理和通信协议。详细阐述了用软件识别同步时钟、起始符、同步头和数据的技术方法。 关键词:曼彻斯特编解码;无线通信;A VR 单片机 Manchester Code/decode Based on A VR and Its Application WANG Jianguo, SUN Jinghua, CAO Bingxia (Engineering College, Ocean University of China, Qingdao 266071) 【Abstract 】The paper introduces a hi-efficient coding/decoding method to apply A VR MCU to code/decode Manchester at 10kbps successfully,principle and communication protocol in wireless communicating systems of low power. It provides in detail a technique about how to identify initial flag, synchronization code and data. 【Key words 】Manchester code/decode; Wireless communication; A VR 计 算 机 工 程Computer Engineering 第32卷 第20期 Vol.32 № 20 2006年10月 October 2006 ·工程应用技术与实现· 文章编号:1000—3428(2006)20—0258—03 文献标识码:A 中图分类号:TP368.2 随着无线通信芯片技术的发展,越来越多的便携式或电池供电的无线传输设备进入人们日常生活中。例如,遥控车门开关(RKE)系统、汽车轮胎压力监视系统(TPMS)、无线内窥镜系统、蓝牙技术等。这种小功率无线传输系统的关键技术是在低电流消耗和信道干扰较强的情况下实现数据稳定可靠的传输。 曼彻斯特码由于其特殊的性能,被广泛应用于小功率无线传输系统中。曼彻斯特编码是串行数据传输的一种重要的编码方式。曼彻斯特编码最大的优点是:数据和同步时钟统一编码,曼码中含有丰富的时钟信号,直流分量基本为零,接收器能够较容易恢复同步时钟,并同步解调出数据,具有很好的抗干扰性能,这使它更适合于信道传输。 传统的曼彻斯特码的编解码一般采用专用芯片电路实现,数据的串/并转换和信号的合成都通过硬件电路实现,导致电路复杂,系统成本提高。考虑到目前微处理器功能不断提高,在不影响系统微处理器完成其它处理任务的情况下,完全可以采用微处理器来实现曼彻斯特码的编码和解码。本设计提出了一种简单有效的曼彻斯特码解调方法,并选用高速AVR 单片机及软件编程实现了曼彻斯特码的编解码。 1 小功率无线传输系统工作原理 小功率无线传输系统一般由射频发射机和接收监视器两部分组成。射频发射机采集和发射信息;接收监视器接收信息,并根据接收到的信息执行相应的操作。 1.1 射频发射机模块 射频发射机一般采用电池供电,以遥控车门开关 (RKE)系统为例,电池需要连续工作3~5年,低功耗设计是电路设计的关键。在此射频发射机主控MCU 选用Atmel 公司的高性能、低功耗微控制器ATmega48V 。该芯片工作电压最低可达1.8V ,具有5种省电休眠模式,适合低功耗应用场合。根据处理器工作状态的不同进入相应的休眠模式。在掉电模式下耗电小于1μA ,极大地降低了功耗。 射频发射机的系统框图如图1所示。MCU 首先对数据进行曼彻斯特码编码,然后把数据送到射频发射芯片发射。 1.2 射频接收监视器模块 接收监视器的主控MCU 采用Atmel 公司的高性能、高速RISC 微控制器ATmega169。该芯片内嵌了4*25段的LCD 驱动器,通过它可以在LCD 上显示一些用户关心的状态信息,如轮胎气压信息等。ATmega169单片机的T/C1具有一个捕捉单元,可用来捕捉外部事件,并为其赋予时间标记以说明此事件发生的时刻。外部事件发生的触发信号可由引脚ICP1(输入捕捉引脚)输入,也可通过模拟比较器单元实现。 本设计采用T/C1的输入捕捉单元接收数据, 即曼彻斯特码数据从引脚ICP1输入。这种数据接收处理方法要求MCU 对外部输入事件具有足够的处理能力,微控制器ATmega169工作在16MHz 时性能高达16MIPS 。实验证明,当数据波特率为10kHz 时,系统能够正确接收数据。 接收监视器的系统框图如图2所示。射频信号经接收芯片解调,输出的曼码数据经过引脚ICP1输入到MCU ,MCU 利用单片机的T/C1的引脚捕捉功能虽然能够实现曼码数据电平时间精确测量,但存在一个明显的不足,就是对干作者简介:王建国(1954-),男,教授,主研方向:智能仪器仪表 与计算机控制技术;孙敬华、曹丙霞,硕士生 收稿日期:2005-11-08 E-mail :sunjinghua-2001@https://www.360docs.net/doc/8115748514.html,

红外遥控信号的解码

红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。 1 红外遥控系统 通用红外遥控系统由发射和接收两大部分组成。应用编/解码专用集成电路芯片来进行控制操作,如图1所示。发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。 图1 红外线遥控系统框图 2 遥控发射器及其编码 遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以日本NEC的uPD6121G组成发射电路为例说明编码原理(一般家庭用的DVD、V CD、音响都使用这种编码方式)。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征: 采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图2所示。

图2 遥控码的“0”和“1” (注:所有波形为接收端的与发射相反) 上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,如图3所示。 图3 遥控信号编码波形图 UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。UPD6121G最多额128种不同组合的编码。 遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间,图4为发射波形图。 图4 遥控连发信号波形 当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码由一个引导码(9ms),一个结果码(4.5ms),低8位地址码(9ms~18ms),高8位地址码(9ms~18ms),8位数据

VHDL数字钟设计报告

VHDL数字钟设计报告 一. 数字钟总体设计方案: 1.1设计目的 ①正确显示时、分、秒; ②可手动校时,能分别进行时、分的校正; ③整点报时功能; 1.2设计思路 数字钟的设计模块包括:分频器、去抖动电路、校时电路、“时、分、秒”计数器、校时闪烁电路、 整点报时和译码显示电路。 每一个功能模块作为一个实体单独进行设计,最后再用VHDL的例化语句将各个模块进行整合,生成 顶层实体top。 该数字钟可以实现3个功能:计时功能、设置时间功能和报时功能。 二.数字钟模块细节 2.1 分频器(fenpin) 本系统共需3种频率时钟信号(1024Hz、512Hz、1Hz)。为减少输入引脚,本系统采用分频模块,只需由外部提供1024Hz基准时钟信号,其余三种频率时钟信号由分频模块得到。 分频原理:为以1024Hz基准时钟经1024分频得到512Hz,1Hz频率时钟信号。 分频器管脚 代码:

library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity fenpin is port(clk1024:in std_logic; clk1,clk512:out std_logic ); end fenpin ; architecture cml of fenpin is begin process (clk1024) variable count1: integer range 0 to 512; variable q1: std_logic; begin if clk1024' event and clk1024='1' then if count1=512 then q1:=not q1; count1:=0; else count1:=count1+1; end if; end if; clk1<=q1; end process; process(clk1024) variable count512: integer range 0 to 1; variable q512: std_logic; begin if clk1024' event and clk1024='1' then if count512=1 then q512:=not q512; count512:=0; else count512:=count512+1; end if; end if; clk512<=q512; end process; end cml; 2.2 校时电路(jiaoshi)

曼彻斯特解码原则+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。 两种曼彻斯特编码是将时钟和数据包含在数据流中,在传输代码信息的同时,也将时钟同步信号一起传输到对方,每位编码中有一跳变,不存在直流分量,因此具有自同步能力和良好的抗干扰性能。但每一个码元都被调成两个电平,所以数据传输速率只有调制速率的1/2。 就是说主要用在数据同步传输的一种编码方式。 【在曼彻斯特编码中,用电压跳变的相位不同来区分1和0,即用正的电压跳变表示0,用负的电压跳变表示1。因此,这种编码也称为相应编码。由于跳变都发生在每一个码元的中间,接收端可以方便地利用它作为位同步时钟,因此,这种编码也称为自同步编码。】 2. 曼彻斯特编码(Manchester Encoding),也叫做相位编码(PE);常用于局域网传输。在曼

一种简便的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位码。得到ID卡的数据。然后丢掉ID卡发送的第3个64位码,检测第3个64位码的最后1位0,再检测ID卡发送的第4个64位码。这样连续3次检测到同一个码,就认为解码到了正确的ID卡号。 之所以要丢掉ID卡发送的第一个64位数据,是因为U2270B在没有ID卡刷卡时,也会输出波形到89S52的INT脚,这样将无法判断ID卡数据的头码。从第2个码开始解码能确保检测的头码正确。丢掉第3个码的原因是在检测第2个码时,最后一位停止位也被解码,那么就不能采用 0111111111来检测第3个码了,只能检测第3个码的最后1位0,再解码第4个码。 下面详细介绍解码原理,程序中要用到的变量定义如下: Bit_over:为0,表示1位数据处理完,为1,表示当前处于数据位的跳变处。Head_start:检测到头码0时,把head_start置1,然后连续检测到8次下降沿时间间隔大于0.75T,小于1.25T,并且 head_start为1,置位头码标志head_flag。Head_start的作用就是保证是连续检测到0111111111。 Head_flag:头码标志,检测到0111111111后置1。 Prev_bit:保存当前数据位的值,下一位数据的值要根据当前位的值来判断。Pulse_width:16 位数据,保存INT脚两次下降沿之间的时间间隔。 Bit_cnt:检测完头码后,每次检测5位数据,也就是一行。 Row:行数,不包括头码,总共11行,用来判断64位数据是否接收完。 Buff[11]:缓冲区,用来保存接收的11行数据。每个数据只有低5位有效。 Id_data[11]:保存缓冲区的11个数据,进行校验,得到ID卡号。

红外遥控原理及解码程序

红外遥控系统原理及单片机 红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅完全可靠而且能有效地隔离电气干扰。 1 红外遥控系统 通用红外遥控系统由发射和接收两大部分组成。应用编/解码专用集成电路芯片来进行控制操作,如图1所示。发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。 图1 红外线遥控系统框图 2 遥控发射器及其编码 遥控发射器专用芯片很多,根据编码格式可以分成两大类,这里我们以运用比较广泛,解码比较容易的一类来加以说明,现以日本NEC 的uPD6121G组成发射电路为例说明编码原理(一般家庭用的DVD、VCD、音响都使用这种编码方式)。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征:采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周

期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图2所示。 图2 遥控码的“0”和“1” (注:所有波形为接收端的与发射相反)上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,如图3示。 图3 遥控信号编码波形图 UPD6121G产生的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的电器设备,防止不同机种遥控码互相干扰。该芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。UPD6121G最多额128种不同组合的编码。 遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为108ms。一组码本身的持续时间随它包含的二进制“0”和“1”的个数不同而不同,大约在45~63ms之间,图4为发射波形图。

曼彻斯特编解码器

工具软件实训报告 项目名称:曼彻斯特编解码器指导老师: 系科: 专业: 姓名: 学号:

目录: 一:实训要求 (3) 二:实训原理 (3) 三:实训思路 (4) 四:实训步骤 (4) 五:原理图、仿真结果图以及结论分析 (5) 1.曼彻斯特编解码器(实现16bit数据的编解码) (5) 1.1曼彻斯特编解码器电路原理图: (5) 1.2模块详解 (6) 1.3仿真图以及分析 (10) 六:个人总结 (11)

一:实训要求 (1)通过学习原理图输入设计的方法掌握使用工具软件Quartus Ⅱ设计小型数字电路; (2)查阅文献,了解曼彻斯特编解码器的基本原理,并提出在Quartus Ⅱ软件环境下用VHDL进行仿真的方案。 (3)完成设计对编码器的要求:能够对输入的16bit数据进行曼彻斯特编码,输入有时钟、使能、16bit并行数据、写信号等;输出有编码结束和曼彻斯特编码信号(都为1位信号)等。 (4)完成设计对解码器要求:能够把输入的串行曼彻斯特码解码成原先的并行数据,输入有时钟、曼彻斯特码输入(1bit)、使能信号等,输出有提取的同步时钟信号、解码完成(1bit),并行数据(16bit)等。 二:实训原理 曼彻斯特编码,也叫做相位编码(PE),是一个同步时钟编码技术,在以太网媒介系统中,被物理层使用来编码一个同步位流的时钟和数据。它的每一个数据比特都是由至少一次电压转换的形式所表示的。在曼彻斯特编码中,每一位的中间有一跳变,位中间的跳变既作为时钟信号,又作为数据信号。按照曼彻斯特码在IEEE 802.4(令牌总线)以及IEEE 802.3 (以太网)中的规定,本次实训将从高电平到低电平的

基于NEC标准的红外编码及解码原理及进程

基于NEC 标准的 主要器件:AT89c51、HS0038HS0038工作频率为38 kHz,能对得到TTL 电平的编码信号,再送给外只有3 个引脚: VS 、GND 和原理:采用 常用电器的NEC 38KHZ (即脉宽调制的方法)信息传给单片机,再通过单片机编码:NEC 标准:用 0.56ms 用0.565ms 高电平+1.685ms 发送的格式:引导码+用户码电平+4.5ms 的低电平组成。用第二次发送的用户码可为第一次是为了判断发送的信息是否正确注意:上面说的低电平和高电平志。即低电平期间不发射38KH 间发射38KHZ 的红外波。 标准的红外编码及解码原理及进程0038红外接收头、红外发射管、 能对收到遥控信号进行放大、检波、整形、解再送给单片机,经单片机解码并执行相关控制程1个脉冲信号输出引脚,使用方便,性能可EC 标准实现红外编码及解码。将要发送的通法)的载波发送出去,再由一体化红外接收单片机程序实现解码。 ms 的高低平+0.565ms 的低电平代表数据中5ms 的低电平代表数据中的1。 户码+用户码+操作码+操作反码。引导码为成。用户码和操作码均用8位的十六进制发送。 第一次发送用户码的反码,也可不为,发送反码,操作码也一样。 高电平不是实际的电平概念,只是个代表0和38KHZ 的红外波,此时发射管可亮可灭 。高电平 形、解调,制程序,对可靠。 数据通过头接收把中的0,9ms 的高送。 反码主要1的标高电平期

发射电路:如上图所示,D1为红外发射管,9014为低噪小功率NPN三极管,R1为10欧姆,R2为50欧姆,为了使发射管发射的距离加长常使R2为零, R1为4.7K欧姆。 功能:优势:通过对NEC标准红外编码的学习,可同时控制多个接收装置而不产生干扰。因红外发射芯片的地址码为固定的一个,只能控制单独的一个装置 或控制相同地址码的装置,且只能控制与遥控器上键数相同的功能,大多数为 十多个。而学习编码的优势是只用一个单片机就能至少有256个地址码(地址码不取反的话地址码将更多),一个地址码有对应的多个受控装置,可见学习 红外编码可大大节约资源。 解码原理及编程参考上面的编码原理。 实现中的问题:搜集资料不容易,且相同标准一个协议大家说的都不尽相同, 让人很难搞准那个是对的。 焊接的电路没理想的那么好使,红外接收头的距离没开发板上的接受的距离远。红外发射的距离更短,只有十多厘米。 进程:电路已焊接好,程序已写好,下面进入调试阶段。电路还需改进,尽可 能使其发射的距离加长。

1553B总线中曼彻斯特编解码器的设计

1553B总线中曼彻斯特编解码器的设计 时间:2011-04-11 来源:现代电子技术作者:武鹏,毕君懿 关键字:1553B总线曼彻斯特编解码器 0 引言曼彻斯特码是一种总线数据传输双极性码。在数字信号基带传输中,通过这种信道编码技术可使传送数据同时携带时钟信息,故也称其为自同步曼彻斯特码。在信道传输中曼彻斯特码有很好的抗干扰能力。接收端可以将分离出的时钟用于解码,从而简化了解码过程。 针对曼彻斯特码特点,可采用位同步方法提取时钟,常采用滤波法和数字锁相环法。滤波法采用的窄带滤波器不适合数字电路使用。数字锁相环法通过比较接收码元和本地码元为定时时钟的相位来添加扣除时钟脉冲,以达到调整相位的目的,但电路实现过于复杂。本文提出的时钟分离电路比数字锁相环简单,而且提取出来的时钟可以准确地采样到曼彻斯特码信号。 1 曼彻斯特码 曼彻斯特码是一种广泛用于以太网、短距离无线通信、航空电子综合系统中总线数据传输的双极性码。它的每个码元中点都存在一个电平跳变,1信号为一个从1到0的负跳变;0信号为一个从0到1的正跳变。由于曼彻斯特码在频谱中存在很强的定式分量,解码时可将分离出的时钟用来解码。另一方面,1553B传输电缆呈容性负载特性,所以在信号传输中,直流和低频分量将受到很大的衰减。曼彻斯特码频谱中不存在直流分量,而且低频分量也大大减小,很适合在1553B电缆中传输。 MIL-STD-1553B协议中采用的曼彻斯特码数据格式如图1所示。 同步头:占三位码元长度。命令字或状态字同步头的前1.5倍码元长度为高电平;后1.5倍码元长度为低电平,数据字同步头刚好相反。同步头用于区分字的类型以及标识字传输开始。 数据:16位数据位。图中bit3为数据最高位,依次递减,bit18为数据最低位。 奇偶校验位:这里采用奇校验。将16位数据按位同或的结果作为奇校验位。 2 曼彻斯特编码器的设计 由于曼彻斯特码的每个码元在其中心存在电平跳变,所以编码器的发送时钟频率至少应选择信息传输速率的2倍频。 通常编码器的实现方式有2种,基于移位寄存器,或者数据选择器。移位寄存器型编码器需要在编码开始后将同步头位、数据位、奇偶校验位通过字符格式编排器编排成一个并行数据,然后在发送时钟的控制下串行移位输出;数据选择器型编码器需要在编码开始后启动一个计数器,在计数器的控制下分别送出同步头、数据位、奇偶效验位。本文的编码器采用后者,其结构框图如图2所示。

相关文档
最新文档