(完整word)红外遥控协议分析之:NEC协议

合集下载

nec协议

nec协议

竭诚为您提供优质文档/双击可除nec协议篇一:necprotocolnec协议necprotocoltomyknowledgetheprotocolidescribeherewasdevelopedby nec.iveseenverysimilarprotocoldescriptionsontheinte rnet,andtheretheprotocoliscalledjapaneseFormat.idoadmitthatidontknowexactlywhodevelopedit.whatidok nowisthatitisusedinmylateVcRproducedbysanyoandwasma rketedunderthenameofFisher.necmanufacturedtheremote controlic.thisdescriptionwastakenfromtheVcRsservicemanual.tho sewerethedays,whenservicemanualswerefulledwithusefu linformation!Features8bitaddressand8bitcommandlengthaddressandcommandare transmittedtwiceforreliabilitypulsedistancemodulati oncarrierfrequencyof38khzbittimeof1.125msor2.25ms modulationthenecprotocolusespulsedistanceencodingpulseisofathebits.each560μslong38khzcarrierburst(about21cycles).alogical"1"ta kes2.25mstotransmit,whilealogical"0"isonlyhalfoftha t,being1.125ms.therecommendedcarrierduty-cycleis1/4 or1/3.protocolthepictureaboveshowsatypicalpulsetrainofthenecproto col.withthisprotocolthelsbistransmittedfirst.inthis caseaddress$59andcommand$16istransmitted.amessageisstartedbya9msagcburst,whichwasusedtosetth egainoftheearlieriRreceivers.thisagcburstisthenfoll owedbya4.5msspace,whichisthenfollowedbytheaddressan dcommand.addressandcommandaretransmittedtwice.these condtimeallbitsareinvertedandcanbeusedforverificati onofthereceivedmessage.thetotaltransmissiontimeisco nstantbecauseeverybitisrepeatedwithitsinvertedlengt h.ifyourenotinterestedinthisreliabilityyoucanignore theinvertedvalues,oryoucanexpandtheaddressandcomman dto16bitseach!acommandistransmittedonlyonce,evenwhenthekeyonthere motecontrolremainspressed.every110msarepeatcodeistr ansmittedforaslongasthekeyremainsdown.thisrepeatcod eissimplya9msagcpulsefollowedbya2.25msspaceanda560μsburst.extendednecprotocolthenecprotocolissowidelyusedthatsoonallpossibleaddr esseswereusedup.bysacrificingtheaddressredundancyth eaddressrangewasextendedfrom256possiblevaluestoappr oximately65000differentvalues.thiswaytheaddressrang ewasextendedfrom8bitsto16bitswithoutchanginganyothe rpropertyoftheprotocol.thecommandredundancyisstillp reserved.thereforeeachaddresscanstillhandle 256differentcommands.keepinmindthat256addressvaluesoftheextendedprotocol areinvalidbecausetheyareinfactnormalnecprotocoladdr esses.wheneverthelowbyteistheexactinverseofthehighb yteitisnotavalidextendedaddress.externallinksexamplecommandsthetablebelowliststhemessagessentbytheremotecontrol ofmylateFisher530VcR(itserveduswellduringits20years longlife).篇二:红外遥控协议分析之:nec协议红外遥控编码传输协议生产厂家对红外遥控的编码做了严格的规范,目前国内外主流的红外遥控编码传输协议有十多种,如nec、philipsRc-5、philipsRc-6、philipsRc-mm、philipsRecs80、Rca、x-sat、itt、jVc、sharp、nokianRc17和sonysiRc等。

红外遥控原理与nec协议介绍

红外遥控原理与nec协议介绍

红外遥控原理与nec协议介绍
红外遥控原理与NEC协议介绍
在现代家居中,我们经常使用的电器设备多数都配备了红外遥控功能,这是一种非常方便的控制方式,它使得我们可以在不接触设备的情况下,方便地控制它们的开关、调节等操作。

那么,红外遥控是如何实现的呢?NEC协议又是什么?
红外遥控原理
红外遥控所用的信号是红外线,光波的频率高于红外线的频率,因此红外线是我们肉眼无法看到的。

当我们按下遥控器上的按钮后,遥控器内部的红外LED会发出一个特定频率的光波,这个光波会通过空气传递到电器设备中的红外接收器(IR Receiver)。

红外接收器会将接
收到的光波转化为电信号,并将其传递给设备的中央处理器,中央处理器便会根据接收到的电信号执行相应的操作。

NEC协议介绍
NEC是红外遥控信号最为常用的协议之一,它是由日本NEC公司开发的。

NEC协议采用了脉冲编码调制技术(Pulse Coded Modulation, PCM),将发送的数据进行脉冲编码,以使接收端可以正确地解码。

NEC
协议的传输速率为38kHz,每个数据包由4个字节组成,其中第一个字节表示设备地址,第二个字节表示设备地址的反码,第三个字节表示数据码,第四个字节表示数据码的反码。

NEC协议可以支持多达256个设备地址,因此可以同时控制多个设备。

总结
红外遥控技术在现代家居中得到广泛应用,它是一种方便、快捷的控制方式,使得我们可以在不接触设备的情况下控制它们。

NEC协议是红外遥控信号最为常用的协议之一,它采用了脉冲编码调制技术,能够支持多达256个设备地址,因此能够满足多设备控制的需求。

红外 协议

红外 协议

红外协议红外协议是一种应用于红外通信的通信规约,用于红外遥控和红外通讯等场景中。

红外协议主要分为红外遥控协议和红外通信协议两部分。

红外遥控协议是指将遥控设备发送的红外信号编码成特定的协议格式,经过红外传感器接收并解码后,再由目标设备根据协议规则执行相应的操作。

常见的红外遥控协议有NEC、RC-5、RC-6等。

NEC红外协议是一种最常见的红外遥控协议,通常用于电视遥控器、空调遥控器等。

NEC协议通过调制红外载频信号来表示数字信号。

每个数字信号由9ms的起始位和4.5ms的起始位隔开,然后由16位地址码、16位数据码和8位反码构成。

地址码用于区分不同的遥控器设备,数据码表示遥控器键值。

接收设备在解码后,通过判断地址码和数据码来判断是哪个键被按下。

RC-5红外协议也是一种常见的红外遥控协议,常用于DVD遥控器、音响遥控器等家电设备中。

RC-5协议将每个红外信号分为两个连续的半周期。

每个半周期由1.778ms的载频信号和1.778ms的无载频信号组成。

一个完整的信号由13位二进制数据构成,其中1位为起始位,5位为地址码,6位为命令码,1位为反码。

接收设备通过解码操作,根据地址码和命令码执行相应的功能。

RC-6红外协议是RC-5的升级版,具有更高的功能扩展性和更低的误码率。

RC-6协议将红外信号延长到2.667ms的载频信号和2.667ms的无载频信号。

一个完整的信号由20位二进制数据构成,其中1位为起始位,2位为系统码,5位为地址码,8位为命令码,1位为反码,3位为扩展码。

接收设备在解码后,根据地址码和命令码进行区分和执行命令。

红外通信协议是指将红外信号用于设备之间的通讯,实现数据的传输和交互。

常用的红外通信协议有IrDA(红外数据通信协议)和红外遥测通信协议。

IrDA红外通信协议是一种用于近距离高速红外通信的协议。

它采用了扩频技术和差分编码技术,能够在红外载频信号中传输数字数据。

IrDA协议规定了通信双方的通信速率、数据格式、时序等参数,保证了数据的可靠传输和解码。

常用红外遥控协议

常用红外遥控协议

常用红外遥控协议一、NEC协议NEC ProtocolTo my knowledge the protocol I describe here was developed by NEC. I've seen very similar protocol descriptions on the internet, and there the protocol is called Japanese Format.I do admit that I don't know exactly who developed it. What I do know is that it is used in my late VCR produced by Sanyo and was marketed under the name of Fisher. NEC manufactured the remote control IC.This description was taken from the VCR's service manual. Those were the days, when service manuals were fulled with useful information!Features•8 bit address and 8 bit command length•Address and command are transmitted twice for reliability•Pulse distance modulation•Carrier frequency of 38kHz•Bit time of 1.125ms or 2.25msModulationThe NEC protocol uses pulse distance encoding of the bits. Each pulse is a 560µs long 38kHz carrier burst (about 21 cycles). A logical "1" takes 2.25ms to transmit, while a logical "0" is only half of that, being 1.125ms. The recommended carrier duty-cycle is 1/4 or 1/3.ProtocolThe picture above shows a typical pulse train of the NEC protocol. With this protocol the LSB is transmitted first. In this case Address $59 and Command $16 is transmitted. A message is started by a 9ms AGC burst, which was used to set the gain of the earlier IR receivers. This AGC burst is then followed by a 4.5ms space, which is then followed by the Address and Command. Address and Command are transmitted twice. The second time all bits are inverted and can be used for verification of the received message. The total transmission time is constant because every bit is repeated with its inverted length. If you're not interested in this reliability you can ignore the inverted values, or you can expand the Address and Command to 16 bits each!A command is transmitted only once, even when the key on the remote control remains pressed. Every 110ms a repeat code is transmitted for as long as the key remains down. This repeat code is simply a 9ms AGC pulse followed by a 2.25ms space and a 560µs burst.Extended NEC protocolThe NEC protocol is so widely used that soon all possible addresses were used up. By sacrificing the address redundancy the address range was extended from 256 possible values to approximately 65000 different values. This way the address range was extended from 8 bits to 16 bits without changing any other property of the protocol.The command redundancy is still preserved. Therefore each address can still handle 256 different commands.Keep in mind that 256 address values of the extended protocol are invalid because they are in fact normal NEC protocol addresses. Whenever the low byte is the exact inverse of the high byte it is not a valid extended address.二、RC5遥控协议Philips RC-5 ProtocolThe RC-5 code from Philips is possibly the most used protocol by hobbyists, probably because of the wide availability of cheap remote controls.The protocol is well defined for different device types ensuring compatibility with your whole entertainment system. Lately Philips started using a new protocol called RC-6 which has more features.Features• 5 bit address and 6 bit command length (7 command bits for RC5X)•Bi-phase coding (aka Manchester coding)•Carrier frequency of 36kHz•Constant bit time of 1.778ms (64 cycles of 36 kHz)ModulationThe protocol uses bi-phase modulation (or so-called Manchester coding) of a 36kHz IR carrier frequency. All bits are of equal length of 1.778ms in this protocol, with half of the bit time filled with a burst of the 36kHz carrier and the other half being idle. A logical zerois represented by a burst in the first half of the bit time. A logical one is represented by a burst in the second half of the bit time. The pulse/pause ratio of the 36kHz carrier frequency is 1/3 or 1/4 which reduces power consumption.ProtocolThe drawing below shows a typical pulse train of an RC-5 message. This example transmits command $35 to address $05.The first two pulses are the start pulses, and are both logical "1". Please note that half a bit time is elapsed before the receiver will notice the real start of the message. Extended RC-5 uses only one start bit. Bit S2 is transformed to command bit 6, providing for a total of 7 command bits. The value of S2 must be inverted to get the 7th command bit though!The 3rd bit is a toggle bit. This bit is inverted every time a key is released and pressed again. This way the receiver can distinguish between a key that remains down, or is pressed repeatedly.The next 5 bits represent the IR device address, which is sent with MSB first. The address is followed by a 6 bit command, again sent with MSB first.A message consists of a total of 14 bits, which adds up to a total duration of 25 ms. Sometimes a message may appear to be shorter because the first half of the start bit S1 remains idle. And if the last bit of the message is a logic "0" the last half bit of the message is idle too.As long as a key remains down the message will be repeated every 114ms. The toggle bit will retain the same logical level during all of these repeated messages. It is up to the receiver software to interpret this auto repeat feature.三、RC6遥控协议Philips RC-6 ProtocolRC-6 is, as may be expected, the successor of the RC-5 protocol. Like RC-5 the new RC-6 protocol was also defined by Philips. It is a very versatile and well defined protocol.Because of this versatility its original definition is many pages long. Here on my page I will only summarize the most important properties of this protocol.Features•Different modes of operation, depending on the intended use•Dedicated Philips modes and OEM modes•Variable command length, depending on the operation mode•Bi-phase coding (aka Manchester coding)•Carrier frequency of 36kHz•Manufacturer PhilipsModulationRC-6 signals are modulated on a 36 kHz Infra Red carrier. The duty cycle of this carrier has to be between 25% and 50%.Data is modulated using Manchester coding. This means that each bit (or symbol) will have both a mark and space in the output signal. If the symbol is a "1" the first half of the bit time is a mark and the second half is a space. If the symbol is a "0" the first half of the bit time is a space and the second half is a mark.Please note that this is the opposite of the RC-5 protocol!The main timing unit is 1t, which is 16 times the carrier period (1/36k * 16 = 444µs). With RC-6 a total of 5 different symbols are defined:•The leader pulse, which has a mark time of 6t (2.666ms) and a space time of 2t(0.889ms). This leader pulse is normally used to set the gain of the IR receiver unit.•Normal bits, which have a mark time of 1t (0.444ms) and space time of 1t(0.444ms). A "0" and "1" are encoded by the position of the mark and space in thebit time.•Trailer bits, which have a mark time of 2t (0.889ms) and a space time of 2t(0.889ms). Again a "0" and "1" are encoded by the position of the mark and spacein the bit time.The leader and trailer symbols are only used in the header field of the messages, which will be explained in more detail below.RC-6 Mode 0I can only describe operation mode 0 because I have never actually seen other modes in use than the one my Philips TV understands. The way I understand it the other modes can vary extremely from mode 0.Mode 0 is a dedicated Philips Consumer Electronics mode. It allows control of up to 256 independent devices, with a total of 256 commands per device.The command is a concatenation of different information. I will cover these different components from left to right.Header fieldThe Header field consists of 3 different components.•First the leader symbol LS is transmitted. Its purpose is to adjust the gain of the IR receiving unit.•This leader symbol is followed by a start bit SB which always has the value "1".Its purpose is to calibrate the receiver's timing.•The mode bits mb2 ... mb0 determine the mode, which is 0 in this case, thus all three bits will be "0".•Finally the header is terminated by the trailer bit TR. Please note that the bit time of this symbol is twice as long as normal bits! This bit also serves as thetraditional toggle bit, which will be inverted whenever a key is released. Thisallows the receiver to distinguish between a new key or a repeated key.Control FieldThis field holds 8 bits which are used as address byte. This means that a total of 256 different devices can be controlled using mode 0 of RC-6.The msb is transmitted first.Information FieldThe information field holds 8 bits which are used as command byte. This means that each device can have up to 256 different commands.The msb is transmitted first.Signal Free TimeThe Signal Free time is a period in which no data may be transmitted (by any device). It is important for the receiver to detect the signal free time at the end of a message to avoid incorrect reception.The signal free time is set to 6t, which is 2.666ms.四、天威定义遥控协议1、数据格式如下:2、电平定义:3、载波定义:4、说明:引导码+设备码+键码+循环延时引导码= 3640us (高电平)+ 1800us(低电平)设备码= 32位:格式:用户码0(T)8位+ 用户码1(W)8位+ 用户码2(S)8位+ 用户码3(X)8位键码= 16位:格式:数据码0(8位)+数据码1(8位)“0”= 380us (高电平)+ 380us(低电平)“1”= 380us (高电平)+ 1350us(低电平)循环延时=50ms误差:5%“高电平”为红外线载波调制,“低电平”为无红外线载波调制五、Sharp协议Sharp ProtocolI only have little information on this protocol. It is used in VCRs that are produced by Sharp, that is why I gave it the name Sharp protocol.Features•8 bit command, 5 bit address length•Pulse distance modulation•Carrier frequency of 38kHz•Bit time of 1ms or 2msModulationThe Sharp protocol uses a pulse distance encoding of the bits. Each pulse is a 320µs long 38kHz carrier burst (about 12 cycles). A logical "1" takes 2ms to transmit, while a logical "0" is only 1ms. The recommended carrier duty-cycle is 1/4 or 1/3.ProtocolIn the picture above you see a typical pulse train sending the command $11 and address $03. The Address is sent first and consists of 5 bits. Next comes the 8 bit command. In both cases the LSB of the data is sent first.I don't exactly know the purpose of the Expansion and Check bits that follow the command. Both bits were fixed in the example that I had at hand.I can only guess that the Check bit is used to find out whether we are receiving a normal or inverted message.One complete command sequence consist of 2 messages. The first transmission is exactly as described above. The second transmission follows the first one after a delay of 40ms, and basically contains the same information. The only difference is that all bits, except those from the address field, are inverted. This way the receiver can verify if the received message is reliable or not.。

红外遥控协议_红外编解码彻底解析

红外遥控协议_红外编解码彻底解析

10
buf1=RECEIVE;
//
}
else{
switch(state1){
case 10:sbuf2=sbuf1>>4;
//
sbuf2=~sbuf2;
//
if((sbuf2&0x0f)!=(sbuf1&0x0f)) //
{
//
if(sbuf1==TAIL)
//
{
//
buf1=RECEIVE; //
“1”
0.56ms,
1.
9ms
4.5ms
0.52ms, 0.68ms
4.5ms 1.04ms
“0”
64 128
“0” “1”
PWM 64 128?
2
MCS-51 CPU CPU
500ms
CPU microchip pic16
128
PWM
120ms “”
winbond w741 1us
holtek ht48 256
void send_ack_iic(void);
void send_nack_iic(void);
bit receive_ack_iic(void);
void start_iic(void);
void stop_iic(void);
void write_key_data(unsigned char a);
static unsigned char sbuf1,sbuf2,rsbuf1,rsbuf2; //sbuf1,sbuf2
rsbuf1,rsbuf2
EA="0";
//
if(RI){
RI="0";

NEC协议的红外遥控程序(任意IO口)

NEC协议的红外遥控程序(任意IO口)

/**************************************************************************** NEC_INF_S.h用于NEC协议的遥控器与51单片机结合的驱动程序,可用任意IO口,不占用中断资源。

用户码8位,分布于2-17个脉冲;按键码8位,分布于18-33个脉冲。

皆为前8原码,后8反码,并且接收数据时低位在前,高位在后。

主控器为51单片机,晶振频率为11.0592MHz。

注意:由于未用中断,所以信号的接收是靠查询方式的,可能会漏掉若干次红外信号。

*****************************************************************************/ #include<reg52.h>#define uchar unsigned char#define uint unsigned int#define N 5000//用于在while()中循环时超时跳出的数的上限,可小刀sbit nec_dat=P3^3;//任意IO口,用到哪个自己改哪个uchar nec_id[2]={0};//遥控器的编码号,第一个为原码,第二个为反码uchar nec_data[2]={0};//遥控器的命令号,第一个为原码,第二个为反码uchar nec_status=0;//遥控器的按键状态信息。

0:无按键;1:一次按键;2:连续按键uchar nec_actflag=0;//用于带到主函数里的按键响应标志。

0:不动作;1:动作#ifndef NEC_INF_S_h#define NEC_INF_S_hvoid nec_init();//初始化函数,注意一定要拉高,拉低就错误了void nec_delay();//延时0.8ms左右,要求要非常精确,这是正确读数的关键void nec_pulsedat();//读第2到第32个脉冲,第一个脉冲已判定void nec_getdat();//扫描式读遥控器的数据,可能有时会扫描不到#endifvoid nec_init()//初始化函数,注意一定要拉高,拉低就错误了{nec_dat=1;}void nec_delay()//延时0.8ms左右,要求要非常精确,这是正确读数的关键{uchar i;for(i=0;i<245;i++);}/*void nec_act()//按键响应程序,根据自己需要写{nec_getdat();//先扫描一遍红外信号if(nec_actflag==1)//如果是正确的红外信号才处理,否则跳过{if(nec_data[0]==~nec_data[1])//验证所接收数据是否正确{switch(nec_data[0])//自己写所需要的程序段{case 69:/*点亮二极管,让蜂鸣器发声,什么都行,写在这里*/ break;case 70: /*以下都一样,对应的遥控器按键见图1-1*/ break;case 71: break;case 68:break;case 64:break;case 67:break;case 7:break;case 21:break;case 9:break;case 22:break;case 25:break;case 13:break;case 12:break;case 24:break;case 94:break;case 8:break;case 28:break;case 90:break;case 66:break;case 82:break;case 74:break;}}nec_actflag=0;}}*/void nec_pulsedat()//读第2到第32个脉冲,第一个脉冲已判定{uchar i=0;uint num=0;for(i=1;i<32;i++){num=0;while((nec_dat==0)&&(num<N))num++;nec_delay();{if((i>=1)&&(i<=7))nec_id[0]=nec_id[0]|(0x01<<i);if((i>=8)&&(i<=15))nec_id[1]=nec_id[1]|(0x01<<(i-8));if((i>=16)&&(i<=23))nec_data[0]=nec_data[0]|(0x01<<(i-16));if((i>=24)&&(i<=31))nec_data[1]=nec_data[1]|(0x01<<(i-24));num=0;while((nec_dat==1)&&(num<N))num++;}else{if((i>=1)&&(i<=7))nec_id[0]=nec_id[0]&(~(0x01<<i));if((i>=8)&&(i<=15))nec_id[1]=nec_id[1]&(~(0x01<<i-8));if((i>=16)&&(i<=23))nec_data[0]=nec_data[0]&(~(0x01<<i-16));if((i>=24)&&(i<=31))nec_data[1]=nec_data[1]&(~(0x01<<i-24));}}}void nec_getdat()//扫描式读遥控器的数据,可能有时会扫描不到{uint num=0;if(nec_dat==1){num=0;while((nec_dat==1)&&(num<N))num++;}nec_delay();if(nec_dat==0){nec_delay();if(nec_dat==0){nec_delay();if(nec_dat==0){nec_delay();if(nec_dat==0){nec_status=1;num=0;while((nec_dat==0)&&(num<N))num++;num=0;while((nec_dat==1)&&(num<N))num++;}}}}if(nec_status==1){num=0;while((nec_dat==0)&&(num<N))num++;if(nec_dat==1){nec_delay();nec_delay();nec_delay();if(nec_dat==1)nec_status=2;else{nec_id[0]=0x01;nec_pulsedat();}}else{nec_id[0]=0x00;nec_pulsedat();}nec_actflag=1;//一次按键的响应程序}if(nec_status==2){//持续按键的响应程序}nec_status=0;//必须归零,非常重要}图1-1 红外遥控器按键对应的接收码图1-2 本程序使用的遥控器注意:本程序适用于NEC协议的红外遥控器,但是每一款遥控器的按键码可能不同,需要自己找到自己手头上遥控器的按键码资料来对程序进行改动。

nec遥控协议

nec遥控协议
款遥控器的按键码可能不同,需要自己找到自己手头上遥控 器的按键码资料来对程序进行改动。本程序没有占用单片机 的中断资源,但是直接导致的问题就是单片机不一定能接收 到每次遥控器发来的信号,即其相应的灵敏度大打折扣了, 不过对于一般小程序来说妨碍不大,建议在较大的程序中或 者遥控部分非常重要的程序中使用带中断的红外驱动。记得 把nec_act();这个函数放在主函数中的大循环中,要不断查
原码,第二个为反码
ucharnec_status=0;//遥控器的按键状态信息。0:无按
键;1:一次按键;2:连续按键
ucharnec_actflag=0;//用于带到主函数里的按键响应
标志。0:不动作;1:动作
#ifndefnec_inF_s_h
#definenec_inF_s_h
voidnec_init();//初始化函数,注意一定要拉高,拉
就错误了
(
nec_dat=1;
}
voidnec_delay()//延时0.8ms左右,要求要非常精确,
这是正确读数的关键
(
uchari;
for(i=0;i }
/*voidnec_act()//按键响应程序,根据自己需要写
(
nec_getdat() ; //先扫描一遍红外信号
if(nec_actflag==1)//如果是正确的红外信号才处理,
(
num=0;while((nec_dat==0)
if(nec_dat==1)
(
nec_delay();nec_delay();nec_delay();
if(nec_dat==1)nec_status=2;
else
(
nec_id[0]=0x01;

nec红外协议

nec红外协议

nec红外协议NEC红外协议。

NEC红外协议是一种用于红外遥控器通信的协议标准,广泛应用于家电、电子设备等领域。

它采用了38kHz的载波频率,通过调制不同的脉宽来实现数据的传输,具有传输距离远、抗干扰能力强等优点。

本文将对NEC红外协议的原理、格式、编码方式等进行详细介绍,以便对该协议有更深入的了解。

NEC红外协议的原理是通过调制38kHz的载波信号来传输数据。

在NEC协议中,逻辑“0”和逻辑“1”分别用不同的脉宽来表示,通常逻辑“0”用560us的脉宽表示,而逻辑“1”用1690us的脉宽表示。

通过这种方式,接收端可以根据脉宽的不同来解析出发送端发送的数据,从而实现通信的目的。

NEC红外协议的格式通常包括引导脉冲、地址码、反码、命令码等部分。

其中,引导脉冲是一个9ms的高电平脉冲和4.5ms的低电平脉冲交替组成,用于唤醒接收器;地址码用来表示遥控器的地址信息;反码是地址码的反码,用于提高数据传输的可靠性;命令码用来表示具体的操作命令,比如开关机、音量调节等。

通过这样的格式组织,NEC红外协议可以实现对各种遥控器指令的准确传输。

NEC红外协议的编码方式是采用了32位的编码格式,其中包括8位的地址码、8位的地址反码、8位的命令码和8位的命令反码。

这种编码方式可以保证数据的准确性和可靠性,同时也便于接收端对数据进行解析和识别。

通过这种编码方式,NEC红外协议可以实现对各种遥控器指令的精准传输。

总的来说,NEC红外协议作为一种广泛应用的红外遥控器通信协议,具有传输距离远、抗干扰能力强、编码方式简单等优点。

通过对NEC红外协议的原理、格式、编码方式等方面的介绍,相信读者对该协议有了更深入的了解,可以更好地应用于实际的产品开发和设计中。

总结一下,NEC红外协议在红外遥控器通信领域有着重要的地位,其原理简单明了,格式清晰规范,编码方式可靠性高。

相信随着科技的不断发展,NEC红外协议将会有更广泛的应用和发展。

红外遥控协议分析之:NEC协议

红外遥控协议分析之:NEC协议

红外遥控编码传输协议生产厂家对红外遥控的编码做了严格的规范,目前国内外主流的红外遥控编码传输协议有十多种,女口 NEC 、Philips RC-5、Philips RC-6、Philips RC-MM 、Philips RECS80、 RCA 、 X-Sat 、ITT 、JVC 、Sharp 、Nokia NRC17 和 Sony SIRC 等。

国内最常用的规范有两种: NEC 和Sony SIRC 。

这两种规范的调制方式分别为: PPM(脉冲间隔调制)和PWM (脉冲宽度调制)。

谈到这两个概念,我需要具体讲解一下,因为我在 网上查阅相关资料时甚是郁闷,好多说法相互矛盾。

有说NEC 属于PWM 的因为它的脉宽 不同,PPM 的脉宽是固定的。

而细心地朋友如果探究到 NEC 的典型芯片的芯片手册时,会发现上面这种说法是错误的。

比如 UPD6121这款红外远程控制芯片的调制方式为PPM 。

后来终于在一家国外的网站上找到了能够自圆其说的解释。

个人认为比较正确,拿来和大家分享。

要想认清红外遥控编码传输协议的具体内容,我想还是先捡其重点来讲一下, 编码规范中最重要的当属调制这部分了。

而主流的调制方式有两种分别为 PPM 和PWM ,当然其他 还有好几种,这里先不讲解,免得糊涂了。

本文就先介绍下 PPM 和PWM 的区别。

PPM ( Pulse Position Modulation),其实更加准确的说法应该是PDM(Pulse DistaneeModulation)即脉冲间隔调制:------ :----- 225ms ------------- ------- 112ms ---- IE33上图为典型编码规范 NEC 协议的调制图,为PPM 调制。

可以看出不管是“0”还是“1 ”, 有高频调制波的地方(下文称其为脉冲)其宽度都是相同的位560us ,而脉冲间的间隔则是不同的:“1”时为(2.25ms-560us),“0”时为(1.12ms-560us)。

红外通信的协议问题

红外通信的协议问题

红外通信的协议问题红外通信是一种无线通信技术,通过红外线传输数据。

它广泛应用于电子设备之间的数据传输和遥控通信等领域。

而在红外通信中,协议是确保数据传输可靠和准确的关键因素之一。

本文将探讨红外通信中的协议问题,包括常见的红外通信协议和其特点,以及如何选择适合的红外通信协议。

一、红外通信协议的种类在红外通信领域,存在多种不同的通信协议。

常见的红外通信协议有以下几种:1. 红外DAVIC协议:DAVIC(Digital Audio-Visual Council)是一种用于音频和视频设备之间通信的协议。

它采用红外光来进行数据交换,并具有良好的稳定性和可靠性。

2. 红外RC5协议:RC5是一种用于红外遥控设备之间通信的协议,由飞利浦公司开发。

它采用32位的二进制编码,可以实现多种功能控制,如音量调节、频道切换等。

3. 红外NEC协议:NEC是一种用于红外遥控设备之间通信的协议,由NEC公司开发。

它采用16位的二进制编码,具有较高的传输速率和灵活性。

4. 红外SIR协议:SIR(Serial Infrared)是一种用于红外通信的标准协议,常用于红外打印机和红外数据传输设备。

它采用红外线传输数据,具有高速和稳定性的特点。

5. 红外IrDA协议:IrDA(Infrared Data Association)是一种基于红外线的无线通信标准。

它采用光学通信方式,可以实现高速数据传输和广域覆盖。

二、红外通信协议的特点不同的红外通信协议具有各自的特点和应用领域。

以下是红外通信协议的一些共同特点:1. 传输距离有限:红外线传输受到传输距离的限制,通常在几米到十几米范围内,无法实现长距离通信。

2. 容易受到干扰:红外通信对于直射和明确的传输路径要求较高,容易受到物体遮挡或强光干扰等因素影响,导致信号衰减或中断。

3. 传输速率较低:与其他无线通信方式相比,红外通信的传输速率较低,通常在几百位/秒到几兆位/秒之间。

4. 协议丰富:红外通信协议种类繁多,可以根据具体需求选择不同的协议,以实现不同的功能和性能要求。

(合同范本)NEC协议的红外遥控器驱动程序

(合同范本)NEC协议的红外遥控器驱动程序

NEC协议的红外遥控器按键对应数字一览(合同范本)NEC协议的红外遥控器驱动程序是不是觉得红外遥控+51单片机是绝妙组合?但是在编程时才发现超级纠结?其实也没那么纠结,自己摸索摸索,总能找出办法来的。

本程序占用了51单片机的定时器0以及中断1两个资源,为的是使单片机能接收到每一个红外脉冲信号,一个都不能少。

如果舍不得用这两个资源,还有另一种查询的办法,就是不一定每个信号都能收到,可自己琢磨一下。

需要全套NEC协议红外遥控器资料的,到网上找,到处都有,而且很全。

另外,对着资料写程序如果实在写不出,可以找个示波器,把波形录下来好好研究研究。

毕竟有些时候资料会过时,只要里面有一点东西变化了,程序就完全不一样了。

这种弯路,尽量少走。

本程序只是头文件,具体到应用上还要各位自己动脑筋了,希望对大家有所帮助。

共同学习,共同进步!69**************************************************************** INF_NEC.h用于NEC 协议的遥控器,主控器为 51单片机。

用户码8位,分布于2-17个脉冲; 按键码8位,分布于18-33个脉冲。

皆为前8原码,后8反码。

注意:本驱动占用 51单片机的外部中断1以及定时器0两个资源,编程时注意 不要再乱动这两个资源。

***************************************************************** #include<reg52.h> #define uchar unsigned char#define uint unsigned int#ifndef __INF_NEC__#define __INF_NEC__ extern void nec_init();extern void nec_act();#endifvoid nec_init(){TMOD=(TMOD&0xf0)|0x02; // 定时器0模式2, 8位自动重装TH0=0x19;TL0=0x19;ET0=1;TR0=0;IT1=1;EX1=1;EA=1;} void nec_act()//按键功能程序 {if((nec_dat[0]==~nec_dat[1])&&(nec_flag==3)){switch(nec_dat[0]){case 69: break;case 70: break;case 71: break;case 68:break;case 64:break;case 67:break;case 7:break;case 21:break;/****/uchar nec_flag=0;//nec_flag:遥控码的标志位。

红外遥控协议分析之:NEC协议

红外遥控协议分析之:NEC协议

红外遥控编码传输协议生产厂家对红外遥控的编码做了严格的规范,目前国内外主流的红外遥控编码传输协议有十多种,如NEC、Philips RC-5、Philips RC-6、Philips RC-MM、Philips RECS80、 RCA、X-Sat、ITT、JVC、Sharp、Nokia NRC17和Sony SIRC等。

国内最常用的规范有两种:NEC和Sony SIRC。

这两种规范的调制方式分别为:PPM(脉冲间隔调制)和PWM(脉冲宽度调制)。

谈到这两个概念,我需要具体讲解一下,因为我在网上查阅相关资料时甚是郁闷,好多说法相互矛盾。

有说NEC属于PWM的因为它的脉宽不同,PPM的脉宽是固定的。

而细心地朋友如果探究到NEC的典型芯片的芯片手册时,会发现上面这种说法是错误的。

比如UPD6121这款红外远程控制芯片的调制方式为PPM。

后来终于在一家国外的网站上找到了能够自圆其说的解释。

个人认为比较正确,拿来和大家分享。

要想认清红外遥控编码传输协议的具体内容,我想还是先捡其重点来讲一下,编码规范中最重要的当属调制这部分了。

而主流的调制方式有两种分别为PPM和PWM,当然其他还有好几种,这里先不讲解,免得糊涂了。

本文就先介绍下PPM和PWM的区别。

PPM(Pulse Position Modulation),其实更加准确的说法应该是PDM(Pulse Distance Modulation)即脉冲间隔调制:上图为典型编码规范NEC协议的调制图,为PPM调制。

可以看出不管是“0”还是“1”,有高频调制波的地方(下文称其为脉冲)其宽度都是相同的位560us,而脉冲间的间隔则是不同的:“1”时为(2.25ms-560us),“0”时为(1.12ms-560us)。

由此得来PPM的称号。

再来看下PWM的调制波形吧:显然可以看出,“1”的脉冲宽度为1.2ms,“0”的为600us。

而脉冲间隔不管是“0”还是“1”,均为600us。

红外协议之NEC协议

红外协议之NEC协议

红外协议之NEC协议NEC协议载波:38khz其逻辑1与逻辑0的表⽰如图所⽰:逻辑1为2.25ms,脉冲时间560us;逻辑0为1.12ms,脉冲时间560us。

所以我们根据脉冲时间长短来解码。

推荐载波占空⽐为1/3⾄1/4。

NEC协议格式:⾸次发送的是9ms的⾼电平脉冲,其后是4.5ms的低电平,接下来就是8bit的地址码(从低有效位开始发),⽽后是8bit的地址码的反码(主要是⽤于校验是否出错)。

然后是8bit 的命令码(也是从低有效位开始发),⽽后也是8bit 的命令码的反码。

以上是⼀个正常的序列,但可能存在⼀种情况:你⼀直按着1个键,这样的话发送的是以110ms为周期的重复码,如下图:就是说,发了⼀次命令码之后,不会再发送命令码,⽽是每隔110ms时间,发送⼀段重复码。

重复码由9ms⾼电平和2.25ms的低电平以及560us的⾼电平组成。

需要注意的是:1838红外⼀体接收头为了提⾼接受灵敏度。

输⼊⾼电平,其输出的是相反的低电平。

搞了⼀个下午和晚上,NEC解码出来还是有点细微差错。

查了很久,也没有收获。

⼼⾥有点⼩郁闷。

今早起来,仔细地看了看他⼈的参考代码。

突然被下⾯⼀个⼩⼩的细节折服了。

请注意这段代码:1void hal_NEC_decode(uchar *addr,uchar *addrt,uchar *comm,uchar *commt)2 {3 uchar i,j,k;4 uchar tmp1=0;56while(NECFinshFlag==0);7 NECFinshFlag=0;89for(i=0,k=1;i<4;i=i+1)10 {11for(j=1;j<=8;j++)12 {13if(NECTimerTable[k++] > 7)14 {15 tmp1 |=0x80;16 }17 tmp1 >>=1;18 }19switch(i)20 {21case0:*addr=tmp1;break;22case1:*addrt=tmp1;break;23case2:*comm=tmp1;break;24case3:*commt=tmp1;break;25 }26 tmp1=0;27 }28 }最后tmp1的值是被右移了1位。

红外遥控协议 NEC

红外遥控协议   NEC

∙方便理解所看到的波形是从红外接收管出来的信号,跟协议所说的信号高低(0或1)刚好相反。

∙NEC协议是众多红外遥控协议的其中一种,除NEC外,还有RC5、RC6等其它的。

市面上买到的非学习型万能电视遥控器大多集成一种或多种编码是NEC型的,我买的二个遥控器中就有三种以上编码是NEC的。

∙NEC编码的一帧(通常按一下遥控器按钮所发送的数据)由引导码、地址码及数据码组成,,如下图所示,把地址码及数据码取反的作用是加强数据的正确性。


∙引导码及数据的定义如下图所示,当一直按住一个按钮的时候,会隔110ms左右发一次引导码(重复),并不带任何数据

∙以下是用示波器采集到的一直按住某个按钮时的波形:

∙按一下按钮的波形:。

NEC协议的红外遥控器驱动程序

NEC协议的红外遥控器驱动程序

是不是觉得红外遥控 +51单片机是绝妙组合?但是在编程时才发现超级纠结?其实也 没那么纠结,自己摸索摸索,总能找出办法来的。

本程序占用了 51单片机的定时器 0以及中断1两个资源,为的是使单片机能接收到每 一个红外脉冲信号, 一个都不能少。

如果舍不得用这两个资源,还有另一种查询的办法,就 是不一定每个信号都能收到,可自己琢磨一下。

需要全套NEC 协议红外遥控器资料的,到网上找,到处都有,而且很全。

另外,对着资料写程序如果实在写不出,可以找个示波器,把波形录下来好好研究研 究。

毕竟有些时候资料会过时,只要里面有一点东西变化了, 程序就完全不一样了。

这种弯 路,尽量少走。

本程序只是头文件,具体到应用上还要各位自己动脑筋了,希望对大家有所帮助。

共 同学习,共同进步! 69 70 71 68 64 67 07 21 09 22 25 13 12 24 94 08 28 90 66 82 74 NEC 协议的红 外遥控器按 键对应数字 一览/******************************************************************INF_NEC.h用于NEC 协议的遥控器,主控器为 51单片机。

用户码8位,分布于2-17个脉冲;按键码8位,分布于18-33个脉冲。

皆为前8原码,后8反码。

注意:本驱动占用 51单片机的外部中断1以及定时器0两个资源,编程时注意 不要再乱动这两个资源。

*******************************************************************/#in clude<reg52.h> #defi ne uchar un sig ned char#defi ne uint un sig ned intuchar nec_cod[2]={0,1};〃遥控器的编号,编号 uchar nec_dat[2]={0,1};〃遥控器的数据,数据 #ifndef __INF_NEC_#defi ne __INF_NEC extern void n ec_i nit(); extern void n ec_act();#en difvoid nec_init() //外中断1及定时器0的初始化函数{TMOD=(TMOD&0xf0)|0x02; // 定时器0模式2,8位自动重装//11.0592MHz 晶振,计数 230次,大概时间 250us//定时器0使能,先关着〃外部中断1使能,用来接收红外信号〃开总中断void nec_act()//按键功能程序{if(( nec_dat[0]==~ nec_dat[1]) &&(n ec_flag==3)){switch( nec_dat[0]){case 69: break;case 70: break;case 71: break;case 68:break;case 64:break; uchar nec_flag=0;//nec_flag:遥控码的标志位。

红外码遥控传输协议

红外码遥控传输协议

红外遥控编码传输协议生产厂家对红外遥控的编码做了严格的规范,目前国内外主流的红外遥控编码传输协议有十多种,如NEC、Philips RC-5、Philips RC-6、Philips RC-MM、Philips RECS80、 RCA、X-Sat、ITT、JVC、Sharp、Nokia NRC17和Sony SIRC等。

国内最常用的规范有两种:NEC和Sony SIRC。

这两种规范的调制方式分别为:PPM(脉冲间隔调制)和PWM(脉冲宽度调制)。

谈到这两个概念,我需要具体讲解一下,因为我在网上查阅相关资料时甚是郁闷,好多说法相互矛盾。

有说NEC属于PWM的因为它的脉宽不同,PPM的脉宽是固定的。

而细心地朋友如果探究到NEC的典型芯片的芯片手册时,会发现上面这种说法是错误的。

比如UPD6121这款红外远程控制芯片的调制方式为PPM。

后来终于在一家国外的网站上找到了能够自圆其说的解释。

个人认为比较正确,拿来和大家分享。

要想认清红外遥控编码传输协议的具体内容,我想还是先捡其重点来讲一下,编码规范中最重要的当属调制这部分了。

而主流的调制方式有两种分别为PPM和PWM,当然其他还有好几种,这里先不讲解,免得糊涂了。

本文就先介绍下PPM和PWM的区别。

PPM(Pulse Position Modulation),其实更加准确的说法应该是PDM(Pulse DistanceModulation)即脉冲间隔调制上图为典型编码规范NEC协议的调制图,为PPM调制。

可以看出不管是“0”还是“1”,有高频调制波的地方(下文称其为脉冲)其宽度都是相同的位560us,而脉冲间的间隔则是不同的:“1”时为(2.25ms-560us),“0”时为(1.12ms-560us)。

由此得来PPM的称号。

再来看下PWM的调制波形吧显然可以看出,“1”的脉冲宽度为1.2ms,“0”的为600us。

而脉冲间隔不管是“0”还是“1”,均为600us。

第二章-红外线通信协议概述

第二章-红外线通信协议概述

2 红外线通信协议概述2.1红外线通信概念红外通信是利用红外技术实现两点间的近距离保密通信和信息转发。

它一般由红外发射和接收系统两部分组成。

发射系统对一个红外辐射源进行调制后发射红外信号,而接收系统用光学装置和红外探测器进行接收,就构成红外通信系统。

特点:保密性强,息容量大,结构简单,既可以是室内使用,也可以在野外使用,由于它具有良好的方向性,适用于国防边界哨所与哨所在之间的保密通信,但在野外使用时易受气候的影响。

红外通讯技术利用红外线来传递数据,是无线通讯技术的一种。

红外通讯技术不需要实体连线,简单易用且实现成本较低,因而广泛应用于小型移动设备互换数据和电器设备的控制中,例如笔记本电脑、PDA、移动电话之间或与电脑之间进行数据交换,电视机、空调器的遥控等。

由于红外线的直射特性,红外通讯技术不适合传输障碍较多的地方,这种场合下一般选用RF无线通讯技术或蓝牙技术。

红外通讯技术多数情况下传输距离短、传输速率不高。

为解决多种设备之间的互连互通问题,1993年成立了红外数据协会(IrDA, Infared Data Association)以建立统一的红外数据通讯标准。

1994年发表了IrDA 1.0规范。

红外线通信是一种廉价、近距离、无线、低功耗、保密性强的通讯方案,主要应用于近距离的无线数据传输,也有用于近距离无线网络接入。

从早期的IRDA 规范(115200bps)到ASKIR(1.152Mbps),再到最新的FASTIR(4Mbps),红外线接口的速度不断提高,使用红外线接口和电脑通信的信息设备也越来越多。

红外线接口是使用有方向性的红外线进行通讯,由于它的波长较短,对障碍物的衍射能力差,所以只适合于短距离无线通讯的场合,进行“点对点”的直线数据传输,因此在小型的移动设备中获得了广泛的应用。

红外线通讯发展早期存在着规范不统一的问题,许多公司都开发出自己的一套红外通讯标准,但不能与其它公司有红外功能的设备进行红外通讯,因此缺乏兼容性。

nec,ir,协议

nec,ir,协议

竭诚为您提供优质文档/双击可除nec,ir,协议篇一:nec码红外遥控完整编码红外遥控编码程序如下:nec.sectiondataa_Rem_codedb;keydatacodea_customeR_1db;遥控器头码(客户码)低八位a_customeR_2db;遥控器头码(客户码)高八位#definecus_6221_100110100b;1234h#definecus_6221_200010010b;@------------------------------------------------nec_code.sectioncode;@*************subRoutine[xx]:sendRemotecode*** *********;;遥控码发送:send_Remote_code:clrwdt;清除进位标志,检测遥控发送的有效的按键szfg_sendactive;sz表示以0结尾的字符串jmpReady_send;跳转到Ready_send模块retReady_send:nec_code:mova,a_key_num;将数值发送到寄存器a中,直接寻址movm_tblp,atabRdla_Rem_code;查表专用指令moVa,cus_6221_1;读取遥控头码(客户码)低八位数值moVa_customeR_1,amoVa,cus_6221_2moVa_customeR_2,a以上为Ready_send运行模块,同时是为后面nec码发送的准备;首先将一个按键的数值已以直接寻址方式发送到寄存器a中,将寄存器a的是发送到m_tblp中,然后查表a_Rem_code,将cus_6221_1的值发送到寄存器中,在赋值给遥控器头码(客户码)低八位a_customeR_1,同理,将cus_6221_2赋值给遥控器头码(客户码)低八位a_customeR_2,随后即开始发送nec遥控码。

nec引导码发送并开始编译:;;---startingsendnecRemotecode---send_nec:;checknokeycodeffhsizaa_Rem_code;取出变量的大小jmpleadnec_code;跳转指令Ret;返回地址出栈,从而实现转移到返回地址处leadnec_code:;1instructioncycle=8.79usclrpn_iR;highlevel9ms(455khz:1023cycle)mova,002d;[( 3*168)+5]*2=1018mova_sR13,aleadind_code_00:mova,168dmovm_acc,aleadind_code_01:sdzm_acc;结果为零,则跳过下一条指令jmpleadind_code_01sdza_sR13jmpleadind_code_00nop2nop2nop;空操作指令,占用一个机器周期,用于延时或程序指令的对齐setpn_iR;置位标志,即将某一位置1 clrwdtmova,001d;lowlevel2.5ms(284cycle)mova_sR13,a;[(4*69)+5]*1=281lead_code_04:mova,70dmovm_acc,alead_code_05:nopsdzm_accjmplead_code_05sdza_sR13jmplead_code_04clrwdtszfg_Repeat;checkRepeatkey jmpRepeat_codemova,001d;lowlevel2.0ms(227cycle) mova_sR13,a;[(4*55)+5]*1=225lead_code_06:mova,53dmovm_acc,alead_code_07:nopsdzm_accjmplead_code_07sdza_sR13jmplead_code_06clrwdtnop2;------------------------ ;;客户码编译:cusnec_code:mova,002dmova_sR13,amoVa,oFFseta_customeR_1 moVm_mp0,acustom_pRo:mova,008dmova_sR11,a;8databitnopcustom_bit_blclrpn_iRmova,20dcustom_bit_bl_1:sdzm_accjmpcustom_bit_bl_1clrwdtnopcustom_bit_bh:setpn_iR;0.56ms->63cycle;[(3*20)+2]=62;00.56ms->63c ycle;11.68ms->191cyclenoprrm_indiRect1;mova,18dszm_indiRect1.7;mova,61dcustom_bit_bh_0:sdzm_accjmpcustom_bit_bh_0clrwdtsdza_sR11jmpcustom_bit_blincm_mp0sdza_sR13jmpcustom_pRo;;---------------------------;;数据码编译:data6nec_bit:mova,002dmova_sR13,adata_pRo: mova,008dmova_sR11,anopdata_bit_bl: clrpn_iRmova,20ddata_bit_bl_1: sdzm_acc jmpdata_bit_bl_1 clrwdtnopdata_bit_bh: setpn_iRnoprra_Rem_code; mova,18dsza_Rem_code.7 mova,61ddata_bit_bh_0:;8databit;0.53ms->60cycle;[(3*19)+2]= 59;00.53ms->60cycle;11.58ms->179cyclesdzm_accjmpdata_bit_bh_0clrwdtsdza_sR11jmpdata_bit_blcpla_Rem_codesdza_sR13jmpdata_pRo;0.53ms->60cycleclrpn_iR;[(3*19)+2]=59mova,20ddata_bit_bl_2:sdzm_accjmpdata_bit_bl_2clrwdtsetpn_iR;---Framedelaytimeprocess---mova,004d;Repetitiontime=108ms(12286cycle)mova_sR13,a;scankey=2471cycle;sendcode=7349cycleFdtp_loop_01:;12286-2471-7349=2466mova,152d;[(4*152)+5]*4=2452movm_acc,aFdtp_loop_02:nopsdzm_accjmpFdtp_loop_02clrwdtsdza_sR13jmpFdtp_loop_01mova,3dmovm_acc,aFdtp_loop_03:sdzm_accjmpFdtp_loop_03nop2ret;--------------------------------;;重复码编译:Repeat_code:;0.56ms->63cycleclrpn_iR;[(3*20)+2]=62mova,19dRep_bit_bl_3:sdzm_accjmpRep_bit_bl_3clrwdtsetpn_iR;---RepeatFramedelaytimeprocess--- mova,016dmova_sR13,aRep_delay_02:mova,130dmovm_acc,aRep_delay_03:nopsdzm_accjmpRep_delay_03clrwdtsdza_sR13jmpRep_delay_02mova,07d。

常用红外线遥控信号协议详解(完整版)

常用红外线遥控信号协议详解(完整版)

电子报/2006年/7月/16日/第013版资料(开发)常用红外遥控信号传输协议详解(一)四川杨叶珍编者按:红外遥控器应用非常广泛,但由于各个厂家设计的遥控器种类各异,因而针对各类不同电子产品,采用的红外遥控器也就不完全相同,除了遥控器本身的造型外,起决定因素的是红外遥控信号传输协议。

目前,多数电子设计人员在设计产品遥控部分时,大多采用现成的遥控套件,或依靠现成的红外遥控接收程序,直接进行应用。

这一切原因,源于大多电子设计工程师难以了解到更多的红外遥控信号传输协议,故此仅能“照搬”制作。

本文(将分3期连续)介绍常见的8种红外遥控信号传输协议,这些协议是非常实用的,不仅是一套全面的红外遥控协议概念,更便于掌握和选择设计更优异的红外遥控产品。

常用的红外线信号传输协议有ITT协议、NEC协议、Nokia NRC协议、Sharp协议、Philips RC -5协议、Philips RC-6协议,Philips RECS-80协议,以及Sony SIRC协议等,下面分别进行介绍。

一、ITT协议ITT是最早的一种红外线传输协议。

该协议没有象其他协议那样使用载波频率传输红外线信号,而是用宽度为10μs的14个脉冲进行遥控命令的传送,通过改变脉冲的间距对命令进行编码。

用ITT协议传输数据非常可靠,而且功耗极低。

在欧洲,包括ITT(国际电话电报公司)、Greatz、Schaub-Lorenz、Fin-lux、Nokia等在内的很多公司均采用此协议做用户电子标签。

1.主要特性:每条信息只有14个非常窄的脉冲(脉宽10μs),不对信号进行调制;采用脉冲距离编码;电池寿命极长;4位地址码、6位命令码;带时间自校准,发送器中可使用RC振荡器;通信速度快,发送一条信息只需1.7ms~2.7ms;应用该协议的器件生产厂家有Intermetal、Micronas 等。

2.协议:14个脉冲传送1条红外信息,每个脉冲宽10μs,用三种不同的脉冲周期来区别每位所表达的内容:100μs表示二进制的“0”,200μs表示“1”, 300μs表示预备脉冲或结束脉冲。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

红外遥控编码传输协议
生产厂家对红外遥控的编码做了严格的规范,目前国内外主流的红外遥控编码传输协议有十多种,如NEC、Philips RC-5、Philips RC-6、Philips RC-MM、Philips RECS80、 RCA、X-Sat、ITT、JVC、Sharp、Nokia NRC17和Sony SIRC等。

国内最常用的规范有两种:NEC和Sony SIRC。

这两种规范的调制方式分别为:PPM(脉冲间隔调制)和PWM(脉冲宽度调制)。

谈到这两个概念,我需要具体讲解一下,因为我在网上查阅相关资料时甚是郁闷,好多说法相互矛盾。

有说NEC属于PWM的因为它的脉宽不同,PPM的脉宽是固定的。

而细心地朋友如果探究到NEC的典型芯片的芯片手册时,会发现上面这种说法是错误的。

比如UPD6121这款红外远程控制芯片的调制方式为PPM。

后来终于在一家国外的网站上找到了能够自圆其说的解释。

个人认为比较正确,拿来和大家分享。

要想认清红外遥控编码传输协议的具体内容,我想还是先捡其重点来讲一下,编码规范中最重要的当属调制这部分了。

而主流的调制方式有两种分别为PPM和PWM,当然其他还有好几种,这里先不讲解,免得糊涂了。

本文就先介绍下PPM和PWM的区别。

PPM(Pulse Position Modulation),其实更加准确的说法应该是PDM(Pulse Distance Modulation)即脉冲间隔调制:
上图为典型编码规范NEC协议的调制图,为PPM调制。

可以看出不管是“0”还是“1”,有高频调制波的地方(下文称其为脉冲)其宽度都是相同的位560us,而脉冲间的间隔则是不同的:“1”时为(2.25ms-560us),“0”时为(1.12ms-560us)。

由此得来PPM的称号。

再来看下PWM的调制波形吧:
显然可以看出,“1”的脉冲宽度为1.2ms,“0”的为600us。

而脉冲间隔不管是“0”还是“1”,均为600us。

从而PPM和PWM的两个概念认识清楚!当然不同规范中PPM和PWM 这两种调制方式的脉宽及脉冲间隔可能不同,上面两个图只是示例而已。

红外遥控协议分析之:NEC协议
NEC协议特点:
8位地址和8位命令,为提高可靠性,地址和命令都分别传输2次,第2次为反码传输
脉冲间隔调制:38kHz载波频率
每一位时间为1.12ms(0)或2.25ms(1)
调制采用脉冲间隔时间调制每一位。

每一个脉冲都是560uS长度的38kHz载波脉冲,占空比为1/4或1/3(约21个周期)。

逻辑1:2.25ms 逻辑0:1.12ms
上图是NEC协议的一个典型脉冲发送图。

此协议LSB最低位先传送。

例子:
此图传送的地址是$59、命令是$16。

一个信息发送是由9ms的AGC自动增益控制脉冲开头,在早期的IR红外接收器中用来设置增益。

接着是4.5ms空闲,然后是地址、命令。

地址和命令都传送2次,第二次的地址和命令是反码,可以用来校验接收到的信息。

总的传输时间是固定的,因为每一位都有反码传送。

如果遥控器上的按键一直按着,这个命令也只发送一次,但是会每110ms发送一次重复码,直到遥控器按键释放。

重复码比较简单:一个9mS的AGC脉冲、2.25mS间隔、560uS 脉冲:
整体效果:。

相关文档
最新文档