1、ASK调制

“幅移键控”又称为“振幅键控”,也有称为“开关键控”(通断键控),所以又记作OOK信号。ASK是一种相对简单的调制方式。幅移键控(ASK)相当于模拟信号中的调幅,只不过与载频信号相乘的是二进制数码而已。幅移就是把频率、相位作为常量,而把振幅作为变量,信息比特是通过载波的幅度来传递的。二进制振幅键控(2ASK), 由于调制信号只有0或1两个电平,相乘的结果相当于将载频或者关断,或者接通,它的实际意义是当调制的数字信号为“1”时,传输载波;当调制的数字信号为“0”时,不传输载波。一般载波信号用余弦信号,而调制信号是把数字序列转换成单极性的基带矩形脉冲序列,而这个通断键控的作用就是把这个输出与载波相乘,就可以把频谱搬移到载波频率附近。

2、几个周期

2.1、时钟周期:也称为振荡周期或晶振周期,定义为时钟频率的倒数,即晶振的振荡频率的倒数,计为:T(时)=1/f(osc)。时钟周期是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us。

2.2、状态周期:状态周期是振荡周期的二倍。振荡周期也称为晶振周期,振荡周期是单片机的基本时间单位。振荡脉冲经二分频成为时钟信号,时钟信号的周期称为状态周期。若时钟晶振的振荡频率为fosc,则时钟信号的状态周期Tosc=(1/fosc)*2。(即为振荡频率的倒数的2倍)。例如:晶振频率为12MHZ,则时钟周期Tosc=(1/12us)*2。

2.3、机器周期:单片机的基本操作周期。在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。一个操作周期内,单片机完成一项基本操作。

2.4、指令周期:执行一条指令所需要的时间,一般由若干个机器周期组成。指令不同,所需的机器周期数也不同。对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。

综上所述:一个机器周期 = 6个状态周期 = 12个时钟周期。

3、位码

红外编码波形的基本单位,为分AD(地址码、数据码)位和SYNC(同步码)位,每“位”波形由两个脉冲周期构成,每个脉冲周期含有16个时钟周期。位码使用两个脉冲信号表示一个编码值,其中,两个连续窄脉冲表示编码值“0”;两个连续宽脉冲表示编码值“1”;一个窄脉冲和一个宽脉冲表示“F”,也就是地址码的“悬空”。即每个位码bit用2bit表示:00 或01或10表示0码;11表示1码。

如下图所示,编码芯片PT2262发出的编码信号经过整形电路之后得到的脉冲波形图。由:地址码、数据码、同步码组成。地址码和数据码都用宽度不同的脉冲来表示,两个窄脉冲表示“0”; 两个宽脉冲表示“1”; 一个窄脉冲和一个宽脉冲表示“F”,也就是地址码的“悬空”;同步码为时间较长的低电平间隔,下图为PT2262编码图:

如上图,发射端每发送一次信号都会携带多组编码字码,每段编码字码值相同,二进制值为0B010101010101010100001100,对应的十六进制码值为:0x55550C。从图中可以看出,发送码的周期是相等的,只是脉冲宽度不同(宽脉冲与窄脉冲之比为3:1)。而同步码的低电平时间约为这个周期的8倍。

解码的关键是识别同步码,然后对后面的字码的脉冲宽度进行识别,就可以解出这个编码。PT2262每次发射时至少发射4组字码,每组字码由25个脉冲组成,前24个脉冲为地址和数据,最后一个脉冲和一低电平间隔组成同步码。

4、单片机解码思路:

下面我们来说说如何用51单片机对其进行解码。由于程序结构不复杂,就不再画程序流程图了。

红外线经一体化接收模块解码后送到单片机的外部中断0,单片机设置外部中断下降沿触发(即外部中断0为跳变沿触发方式,从高到低的负跳变触发进入中断处理函数进行解码操作);

首先我们把T0设置为16位定时器模式,工作在定时状态,初始化值为0,在晶振的工作频率为11.0592MHz时计满最大值计数值的时间为:71111us。由于同步码周期与地址数据周期都远小于定时器0的定时时间,所在定时器0正常工作时,是不会溢出的;

T1用作延时,设置其定时为1ms(本示例中没有用到T1功能);

在EX0=1(外部中断0启动)并且EA=1(使能所有中断)后,当下降沿到来时进入到中断处理函数,T0在TR0的控制下启动与停止计时;

当接收到下降沿后,先判断当前的电平状态,检测到是低电平时则把T0计时器归零开始计数低电平的时间宽度,电平状态发生变化时停止计数。取TH0和TL0之和即可根据该低电平的时间宽度值来识别是否为同步码。只有先识别出同步码,才开始接收后续脉冲数据进行24位解码操作。

判断电平宽度,检测是否为同步码时,事实上超过10ms即有可能为同步码。初步找出同步码后,根据同步码低电平宽度取得宽脉冲低电平宽度值,根据同步码低电平宽度取得窄脉冲低电平宽度值,由上面的PT2262编码格式图可以看出,同步码低电平持续时间是宽脉冲低电平持续时间的32倍,是窄脉冲低电平持续时间的10(或11)倍,后续的24位数据的宽、窄脉冲低电平持续时间宽度进行比较,满足一定的范围时,即可解析出发射端送出的编码。

注意:因为生产接收模块的厂家不同,标准不一,我遇到过有的模块把接收信号反向了,这时就需要找寻时间宽度较长的高电平来初步识别同步码了。

以下为示例代码说明部分:

/********************************************************************************************************************************************************************************

*  文件名:Decode.c  (zqjun@HK 2014-05)

*  描  述:用一个外部中断IO脚配合定时器0实现对2262系列编码信号进行软解码, PT2262的输出信号经LM358整形放大后由单片机P3.2口输入,作为单片机的外部中断源。

*  编  码:A0 -- A11 中的每bit用2bit表示:0码:00 ;1码:11

*  硬  件:PT2262发射模块、LM358+R25.接收模块、STC89C52RC单片机

*  晶  振:11.0592MHz

*  说  明:

1、PT2262输出编码包括8位地址码、4位数据码、1位同步码,共13位,顺序:A0 A1 -- A10 A11 + 同步码 + A0 A1 -- A10 A11 + 同步码,连续发四次。

2、四个振荡周期为1个编码计时单位,记作T,除同步码外,编码中只有2种类别的组合脉冲取名长脉冲和短脉冲,其中:长脉冲由3T高电平、1T低电平组成;短脉冲由1T高电平、3T低电平组成。

3、同步码,由1T高电平31T低电平组合(实际测试同步码低电平宽度基本在10ms以上)。

4、只需测量低电平或者高电平长短,即可知是长还是短脉冲,超过12T时间没有脉冲变化就有可能是同步码。

**********************************************************************************************************************************************************************************/

单片机实现PT2262解码原理相关推荐

  1. 单片机实现PT2262解码示例代码

    /*************************************************************************************************** ...

  2. 红外控制解码原理与实现

    背景介绍: 作为一种近距离通讯的方法,红外通讯在我们的日常生活中就有很多应用,电视遥控器,空调遥控以及风扇遥控这些都是典型应用,但是红外控制具体是怎么样实现的,这里将为大家做简单讲解. 内容概述: 1 ...

  3. 计算机键盘无线遥控器实现方法,详解红外遥控器作为单片机输入键盘的接口原理和方法...

    描述 对于工业控制微机系统来说输入设备键盘几乎是必不可少的.在按键数目较少时,一般直接利用按键控制接口线的高低电平来表示,因此需要相应的接口支持,由于单片工业控制微机系统接口线数目有限,为了减少占用接 ...

  4. 2-51单片机ESP8266学习-AT指令(开发板51单片机自动冷启动下载原理)

    前言:了解就行,不必深究 上一篇链接 http://www.cnblogs.com/yangfengwu/p/8720148.html 源码链接:https://pan.baidu.com/s/1wT ...

  5. 单片机搭建环境烧录方法_单片机仿真器的工作原理解析

    仿真器出现的原因 1.早期的单片机内部没有ROM,比如8031.8032,这种单片机只能外部扩展紫外擦除的EPROM存储器,就是芯片上带窗口的ROM.紫外擦除的ROM需要用紫外灯照射较长时间(10分钟 ...

  6. 哈夫曼编解码原理与实现【转载】

    1. 哈夫曼编解码原理 霍夫曼编码(Huffman Coding)是一种编码方法,霍夫曼编码是可变字长编码(VLC)的一种. 霍夫曼编码使用变长编码表对源符号(如文件中的一个字母)进行编码,其中变长编 ...

  7. [原创]桓泽学音频编解码(7):MP3 和 AAC 中huffman解码原理,优化设计与参考代码中实现...

    1 不同标准中的huffman解码原理 1.1标准MP3的huffman解码原理 在MP3即mpeg-1 audio标准中,无噪声编码模块的输入是一组576个己量化的频谱数据.无噪声编码首先对频谱进行 ...

  8. yolov5的anchors及bbox的编解码原理

    yolov5的anchors的编解码原理 yolov5的anchors及bbox的编解码原理 1.anchor的生成 1)base anchor的生成 2)base anchor的平移和复制 2.bb ...

  9. 彻底弄懂base64的编码与解码原理

    作者介绍 背景 base64的编码原理网上讲解较多,但解码原理讲解较少,并且没有对其中的内部实现原理进行剖析.想要彻底了解base64的编码与解码原理,请耐心看完此文,你一定会有所收获. 涉及算法与逻 ...

最新文章

  1. Docker核心技术之网络管理
  2. android 自定义打包,android 自定义打包后的app名称
  3. 在Windows Server2016中安装SQL Server2016(转)
  4. flink source 同步_大数据面试题-Flink
  5. DeepMind最新研究:如何将「大语言模型」 训练到最优?
  6. 软件开发工程师应该具备哪些证书_智能展厅设计应该具备哪些特点?
  7. jsx 调用php,JavaScript_JavaScript的React框架中的JSX语法学习入门教程,什么是JSX? 在用React写组件的 - phpStudy...
  8. 浙大版c语言程序设计第三版答案
  9. 《非暴力沟通》-- 马歇尔.卢森堡
  10. magicbook装深度linux,荣耀Magicbook 2019锐龙版装Deepin 20后亮度无法调节的解决
  11. 让计算机读懂你的心 记李航老师计算机前沿讲座
  12. e01文件镜像SHA1值
  13. centos格式化优盘命令_centos 格式化分区
  14. POJ 1565 Skew Binary
  15. mfc 中文乱码转换为正常中文_MFC下遇到的字符集和中文乱码问题
  16. Sutherland-Hodgeman 多边形裁剪算法
  17. 迷你播放器--第一阶段(6)--添加搜索定位功能(进阶)-使用filter过滤以及对汉语拼音的排序匹配
  18. GPS时间同步系统揭秘各种时间同步方式
  19. linux查看cp2102,微雪电子CP2102(type A)USB转USART简介
  20. 2020.07.24日自编译L大源码openwrt固件x86软路由精简版

热门文章

  1. 从顶会论文看2022年推荐系统序列建模的趋势
  2. 数据的计算(大数据)
  3. jq、js 添加/删除class
  4. JAVA——JSch
  5. 混沌工程之ChaosBlade(一):建立混沌工程思想
  6. elasticsearch教你使用搜索引擎
  7. SVN:无校验和记录解决办法
  8. Windows 11系统映像恢复到新硬盘的3种方式
  9. 计算机c盘满了怎么移到d盘去,Win10电脑c盘满了怎么转移到d盘?
  10. 已知圆柱体的底面半径c语言,C语言编程题带答案