rc5协议.docx
- 文档编号:9714999
- 上传时间:2023-02-06
- 格式:DOCX
- 页数:13
- 大小:24.11KB
rc5协议.docx
《rc5协议.docx》由会员分享,可在线阅读,更多相关《rc5协议.docx(13页珍藏版)》请在冰豆网上搜索。
rc5协议
竭诚为您提供优质文档/双击可除
rc-5协议
篇一:
Rc-5飞利浦及扩展协议(saa3010(t))遥控器解码程序对比
Rc-5飞利浦及扩展协议(saa3010(t))遥控器解码程序对比
这次主要是完成单片机接收红外摇控器发出的数据
本程序中,dataout引脚接到p3.2口.在接收头的电源和地端接上滤波电容会使误码率更加低.
saa3030t是使用Rc-5编码,两位起始位(为11),一位控制位(控制位在前后两次按键中交替改变),系统码5位(00000),指令码6位。
注意:
连续发波形时,重复码波形与第一次发射的波形相同。
总的波形为:
16位等待时间+2位扫描时间+起始位+控制位+系统码+指令码。
最主要的是确定手上的saa3010(t)遥控器一位时间是多少,才能够确定定时时间。
先低后高为‘1’,先高后低为‘0’,高低时间相同,图就不画了。
//saa3010_Rc5
//接收红外遥控器(infraredremotecontroltransmitter)发出的数据
//芯片型号:
saa3010,它采用Rc-5协议//芯片资料:
/datasheet-pdf/pdf/18953/philips/saa3010.html
//利用与p0口相连的发光二极管输出接收到的按键对应码,并将它输出到串口,用于遥控,p0口为0灯亮。
//pc使用了girder来触发自定义的功能
#include#defineucharunsignedchar
ucharykdatas[3];//遥控码(一帧14位),ykdatas[0]:
0,1为startbits,2为controlbit,yktype=0//ykdatas[1]:
3~7为systembits,yktype=1
//ykdatas[2]:
8~13为commandbits,yktype=2
sbitykin=p3^2;//数据输入位
ucharykcount,yktype;//遥控已接收位数,一帧的各段标志bitykend;//接收结束标志
//延时a*1ms
voiddelayms(unsignedinta)
{
unsignedinti,j;
for(i=a;i>0;i--)
for(j=100;j>0;j--);}
voidykinit()//遥控接收初始化
{
ykdatas[0]=ykdatas[1]=ykdatas[2]=0;
ykcount=0;
yktype=0;
ykend=0;}
voidtime0()interrupt1
{
//第一次进入中断前,定时1/4位的时间:
445us,以后则定时一位时间1.778ms
//即在3/4位时间时,判断该位是1还是0//实际测试中,位时间只在1.820ms(+-0.1ms),定时1/4位的时间:
454usbitin=~ykin;
//一体化解码后,有载频部分变为低电平,即低电平实际为1,高电平实际为0
//设置定时器初值
//模式1:
12mhz,1820us
th0=0xF8;
tl0=0xe4;
ykdatas[yktype]=ykdatas[yktype]|in;//将数据放入最低位
ykcount++;
if(ykcount==3)//获取完startbits和controlbit,共3位
{
yktype=1;
}
elseif(ykcount==8)//获取完systembits,共5位
{
yktype=2;
}
elseif(ykcount==13)//获取完commondbits,共6位
{
yktype=3;
}
elseif(yktype==3)//等待最后1/4位时间结束,实际延时1位时间
{
ykend=1;
ykcount=0;
yktype=0;
tR0=0;//接收结束,停止定时器0
return;
}
else//将数据左移一位,以便将一下位数据并于最低位
{
ykdatas[yktype]=ykdatas[yktype] }}
//初始化串口
voidRsinit()
{
tmod|=0x20;//t1工作方式2
th1=tl1=0xfd;//装入初值,以后是自动重载的8位计数器
tR1=1;//启动t1
sm0=0;
sm1=1;//方式1
Ren=1;//允许接收
ea=1;//开中断
es=1;//允许串口中断
pcon=0x00;//串口波特率不加倍.即设置smod=0;}
//写一字节数据到串口,使用程序查询方式检测发送情况
voidRswritebyte(unsignedcharbyte)
{
es=0;//关中断
sbuF=byte;
while(!
ti);//检测是否发送完
ti=0;//清0发送中断标志
es=1;//开中断,以允许接收数据时使用中断方式}
voidserial()interrupt4//串口中断是4
{
p1=sbuF;
Ri=0;//清0接收中断标志}
voiddisplay()//显示接收的数据
{
p0=~ykdatas[2];
Rswritebyte(ykdatas[2]);}
voidmain(void)
{
tmod=0x01;//t0选用方式1(16位定时)
ie=0x82;//开总中断,开定时器0中断
ykin=1;
Rsinit();
while
(1)
{
ykinit();
th0=0xFe;//模式1,12mhz,454us
tl0=0x3a;
while(ykin);//等待低电平,一帧开始
tR0=1;//启动定时器0,接收红外遥控器发来的数据
while(!
ykend);//等待接收结束
display();
delayms(200);
}}
Rc-5红外遥控程序!
20xx年03月19日星期一20:
19
这个程序是我从网上找来的,原作者是刘玉宏
不过我没看出来他用的什么片子,我用at89s51没法编译
现在已经改过来了,嘿嘿,希望能对大家学Rc-5协议有些帮助
include
//波特率发生器的初值(115200波特率)xtal11.0592m
//#definebRgR1_data00//#definebRgR0_data0x50
sbitway_0=p2^0;//sbitled_RecieVe=p0^6;
unsignedcharbdatabuffer;//发往串口的缓冲器
sbitway0=buffer^0;unsignedcharirtype;//Rc5一帧的各段的标志
unsignedcharcount,buf_s[3];//红外接收位寄存器unsignedcharend;//红外一帧接收结束标志
voidt0_service(void)interrupt1using1
{
//第一次进入中断,为定时1/4位的时间445us
//以后则定时一位时间1.778ms进入中断
way0=~way_0;//一体化解码后,有载频的部分变为低电平
th0=(0xffff-1522)/256;
tl0=(0xffff-1522)%256;
count++;
if((irtype==0)
count=0;
irtype=1;
buffer=0;
}
elseif((irtype==1)
buf_s[1]=buffer;
count=0;
irtype=2;
buffer=0;
}
elseif((irtype==2)
buf_s[2]=buffer;
p0=~buffer;
count=0;
irtype=3;
buffer=0;
}
elseif(irtype==3)//等最后半位结束,实际延时1位时间
{
ti=0;
count=0;
irtype=0;
buffer=0;
end=1;
tR0=0;//解码结束,定时器停止
return;
}
buffer=buffer //if(way0==1)buffer++;}
voidpowerup(void)
{
tmod=0x21;//定时器1为方式2
tl1=0xfd;//置初值,波特率为9600
th1=0xfd;
pcon=0x00;//smod=0
//tR0=1;
tR1=1;//启动定时器1
ie=0x82;
scon=0x50;}
voidmain(void)
{
unsignedchari;
way_0=1;//输入首先写1
powerup();
while
(1)
{
buffer=0;
irtype=0;
count=0;
end=0;
th0=(0xffff-381)/256;
tl0=(0xffff-381)%256;
while(way_0);//等待低电平,一帧的开始
tR0=1;//开始定时,红外接收
while(!
end);//等一帧解码结束for(i=0;i {
ti=0;
sbuF=buf_s[i]+0x30;
while(!
ti);
saa3010红外遥控解码的c程序
20xx-08-2711:
01
本程序本人测试没有通过,要作参考的可能要根据自己的实际情况调整~!
来源:
http:
///article.aspid=60
/*********************************************************************************************功能:
红外解码。
*硬件条件:
1.cpu型号:
at89s52
*2.晶振:
12.000mhz
*3.用跳线帽短接p2.3__si2
*用跳线帽短接p2.2__Rck2
*用跳线帽短接p2.1__sck2
*4.用跳线帽短接hw-iRq__p3.2
*5.欲完成本实验,还需另行准备一个遥控器,型号为
saa-3010t。
*注意:
在saa-3010t遥控器的身份码中,大多数是0x55,可是有一小部分的码是0x56,一定要注意区分。
*
*下面是一般的saa-3010t电视遥控器的码值表
***********************************************************
**[开关]55d2[静音]55d3*
**[1]55ab[2]55ac[3]55ad[4]55b2*
**[5]55b3[6]55b4[7]55b5[8]55ca*
**[9]55cb[0]55aa[单/双]55cc[调谐]5554*
**[节目+]56aa[节目-]56ab[微调+]56cd[微调-]56d2*
**[音量+]552a[存储]56cb[召回]55d5*
**[音量-]552b[爱好]55d4[定时]56b4*
**[对比+]5552[色彩+]5532[亮度+]5526[录像]564a*
**[对比-]5553[色彩-]5533[亮度-]55d2[电视]5655*
**********************************************************
*
*作者:
poweR
*日期:
20xx年12月12号
*斯凯科技主页:
*斯凯科技论坛:
/bbs
*********************************************************************************************/
#include"reg52.h"//包含头文件
/*与编译器无关的数据类型定义*/
/********************************************************************************************/
typedefunsignedcharuint8;//无符号8位整型变量
篇二:
红外遥控协议分析之:
nec协议
红外遥控编码传输协议
生产厂家对红外遥控的编码做了严格的规范,目前国内外主流的红外遥控编码传输协议有十多种,如nec、philipsRc-5、philipsRc-6、philipsRc-mm、philipsRecs80、Rca、x-sat、itt、jVc、sharp、nokianRc17和sonysiRc等。
国内最常用的规范有两种:
nec和sonysiRc。
这两种规范的调制方式分别为:
ppm(脉冲间隔调制)和pwm(脉冲宽度调制)。
谈到这两个概念,我需要具体讲解一下,因为我在网上查阅相关资料时甚是郁闷,好多说法相互矛盾。
有说nec属于pwm的因为它的脉宽不同,ppm的脉宽是固定的。
而细心地朋友如果探究到nec的典型芯片的芯片手册时,会发现上面这种说法是错误的。
比如upd6121这款红外远程控制芯片的调制方式为ppm。
后来终于在一家国外的网站上找到了能够自圆其说的解释。
个人认为比较正确,拿来和大家分享。
要想认清红外遥控编码传输协议的具体内容,我想还是先捡其重点来讲一下,编码规范中最重要的当属调制这部分了。
而主流的调制方式有两种分别为ppm和pwm,当然其他还有好几种,这里先不讲解,免得糊涂了。
本文就先介绍下ppm和pwm的区别。
ppm(pulsepositionmodulation),其实更加准确的说法应该是pdm(pulsedistancemodulation)即脉冲间隔调制:
上图为典型编码规范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脉冲:
整体效果:
篇三:
第二章,红外线通信协议概述
2红外线通信协议概述
2.1红外线通信概念
红外通信是利用红外技术实现两点间的近距离保密通信和信息转发。
它一般由红外发射和接收系统两部分组成。
发射系统对一个红外辐射源进行调制后发射红外信号,而接收系统用光学装置和红外探测器进行接收,就构成红外通信系统。
特点:
保密性强,息容量大,结构简单,既可以是室内使用,也可以在野外使用,由于它具有良好的方向性,适用于国防边界哨所与哨所在之间的保密通信,但在野外使用时易受气候的影响。
红外通讯技术利用红外线来传递数据,是无线通讯技术的一种。
红外通讯技术不需要实体连线,简单易用且实现成本较低,因而广泛应用于小型移动设备互换数据和电器设备的控制中,例如笔记本电脑、pda、移动电话之间或与电脑之间进行数据交换,电视机、空调器的遥控等。
由于红外线的直射特性,红外通讯技术不适合传输障碍较多的地方,这种场合下一般选用RF无线通讯技术或蓝牙技术。
红外通讯技术多数情况下传输距离短、传输速率不高。
为解决多种设备之间的互连互通问题,1993年成立了红外数据协会(irda,infareddataassociation)以建立统一的红外数据通讯标准。
1994年发表了irda1.0规范。
红外线通信是一种廉价、近距离、无线、低功耗、保密性强的通讯方案,主要应用于近距离的无线数据传输,也有用于近距离无线网络接入。
从早期的iRda规范(115200bps)到askiR(1.152mbps),再到最新的FastiR(4mbps),红外线接口的速度不断提高,使用红外线接口和电脑通信的信息设备也越来越多。
红外线接口是使用有方向性的红外线进行通讯,由于它的波长较短,对障碍物的衍射能力差,所以只适合于短距离无线通讯的场合,进行“点对点”的直线数据传输,因此在小型的移动设备中获得了广泛的应用。
红外线通讯发展早期存在着规范不统一的问题,许多公司都开发出自己的一套红外通讯标准,但不能与其它公司有红外功能的设备进行红外通讯,因此缺乏兼容性。
自1993年起,由hp、compaq、intel等多家公司发起成立了红外数据协会(infrareddataassociation,简称iRda),建立了统一的红外数据通信标准。
一年以后,第一个iRda的红外数据通讯标准——irda1.0发布,又称为siR(serialinfraRed),它是基于hp开发出来的一种异步的、半双工的红外通信方式。
通过对串行数据脉冲和光信号脉冲编解码实现红外数据传输。
irda1.0的最高通讯速率只有115.2kbps,适应于串行端口的速率。
1996年,该协会发布了irda1.1标准,即FastinfraRed,简称为FiR。
FiR采用了全新的4ppm调制解调技术,其最高通讯速率达到4mbps,这个标准是目前运用得最普遍的标准,我们在采购红外产品时也应注意这标准的产品。
继iRda1.1之后,iRda又发布了通讯速率高达16mbps的VFiR技术(VeryFastinfraRed)。
不断提高的速率使红外线使它在短距无线通信领域占有一席之地,而不仅是数据线缆的替代。
红外线的传输距离为1~100cm,传输方向的定向角30度,点对点直线数据传输。
基于红外线的传输技术最近几年有了很大发展。
目前广泛使用的家电遥控器几乎都是采用的红外线传输技术。
作为无线局域网的传输方式,红外线方式的最大优点是不受无线电干扰,且它的使用不受国家无线管理委员会的限制。
但是,红外线对非透明物体的透过性较差,导致传输距离受限制。
红外线是波长在750nm至1mm之间的电磁波,它的频率高于微波而低于可见光,是一种人的眼睛看不到的光线。
红外通信一般采用红外波段内的近红外线,波长在0.75um至25um之间。
红外数据协会(iRda)成立后,为了保证不同厂商的红外产品能够获得最佳的通信效果,红外通信协议将红外数据通信所采用的光波波长的范围限定在850至900nm之内。
iRda标准包括三个基本的规范和协议:
物理层规范(physicallayerlinkspecification)、链接建立协议(linkaccessprotocol:
irlap)和链接管理协议(linkmanagementprotocol:
irlmp)。
物理层规范制定了红外通信硬件设计上的目标和要求,irlap和irlmp为两个软件层,负责对链接进行设置、管理和维护。
在irlap和irlmp基础上,针对一些特定的红外通信应用领域,iRda还陆续发布了一些更高级别的红外协议,如tinytp、irobex、ircomm、irlan、irtran-p和irbus等等
2.2近红外,中红外与远红外
根据使用者的要求不同,红外线划分范围很不相同。
通过大气的波段划分
近红外波段1~3微米,中红外波段3~5微米,远红外波段8~14微米。
根据红外光谱划
近红外波段1~3微米,中红外波段3~40微米,远红外波段40~1000微米医学领域划分
近红外区0.76~3微米
近红外线或称短波红外线,波长0.76~1.5微米,穿入人体组织较深,约5~10毫
米;
远红外线或称长波红外线,波长4~400微米,穿透组织深度3-5毫米。
近红外(nearinfrared),波长在780~3000nm范围的电磁波。
对植物十分敏感。
现代近红外光谱(niR)分析技术是近年来分析化学领域迅猛发展的高新分析技术,越来越引起国内外分析专家的注目,在分析化学领域被誉为分析“巨人”,它的出现可以说带来了又一次分析技术的革命。
近红外光谱(niR)分析技术是分析化学领域迅猛发展的高新分析技术,越来越引起国内外分析专家的注目,在分析化学领域被誉为分析“巨人”,它的出现可以说带来了又一次分析技术的革命。
近红外区域是人们最早发现的非可见光区域。
但由于物质在该谱区的倍频和合频吸收信号弱,谱带重叠,解析复杂,受当时的技术水平限制,近红外光谱“沉睡”了近一个半世纪。
直到20世纪60年代,随着商品化仪器的出现及norris等人所做的大量工作,提出物质的含量与近红外区内多个不同的波长点吸收峰呈线性关系的理论,并利用niR漫反射技术测定了农产品中的水分、蛋白、脂肪等成分,才使得近红外光谱技术曾经在农副产品分析中得到广泛应用。
到60年代中后期,随着各种新的分析技术的出现,加之经典近红外光谱分析技术暴露出的灵敏度低、抗干扰性差的弱点,使人们淡漠了该技术在分析测试中的应用,此后,近红外光谱进入了一个沉默的时期。
70年代产生的化学计量学(chemometrics)学科的重要组成部分——多元校正技术在光谱分析中的成功应用,促进了近红外光谱技术的推广。
到80年代后期,随着计算机技术的迅速发展,带动了分析仪器的数字化和化学计量学的发展,通过化学计量学方法在解决光谱信息提取和背景干扰方面取得的良好效果,加之近红外光谱在测样技术上所独有的特点,使人们重
新认识了近红外光谱的价值,近红外光谱在各领域中的应用研究陆续展开。
进入90年代,近红外光谱在工业领域中的应用全面展开,有关近红外光谱的研究及应用文献几乎呈指数增长,成为发展最快、最引人注目的一门独立的分析技术。
由于近红外光在常规光纤中具有良好的传输特性,使近红外光谱在在线分析领域
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- rc5 协议