当前位置首页 > 学术论文 > 毕业论文
搜柄,搜必应! 快速导航 | 使用教程  [会员中心]

红外遥控软件编解码简析

文档格式:DOCX| 8 页|大小 204.22KB|积分 20|2023-04-05 发布|文档ID:197585514
第1页
下载文档到电脑,查找使用更方便 还剩页未读,继续阅读>>
1 / 8
此文档下载收益归作者所有 下载文档
  • 版权提示
  • 文本预览
  • 常见问题
  • 红外遥控软件编解码简析摘要:介绍如何用 SONIX 单片机实现红外编解码,并讨论 SONIX 系列芯片在实现红外遥控 中的优势所在文中给出红外发射和接收硬件原理图,并给出相应程序关键词:Buzzer输出,外部电平变化中断引言:红外线遥控是目前应用最广泛的一种通信和遥控手段由于红外线遥控器具有体积小 功耗低、功能强、成本低等特点因此在家电产品中有着广泛的应用相比与专用的控制芯 片,微控制器具有开发灵活的特点,用户可以随意制定编解码格式o SONIX 8bit MCU中的 SN8P25xx、SN8P26xx系列拥有丰富的资源,在红外应用中有着独特的优势:CHIPROMRAMStackTimerRTCI/OGreenModePWMT0TC0BuzzerSN8P2501A1K*16484VVV12VVSN8P2602A1K*16484VVV12VVSN8P26044K*161288VVV24VV1、 1K的ROM, 48bit的RAM完全可以用来开发普通的红外遥控产品,4K的ROM,128bit 的 RAM 可用做高端复杂的红外遥控产品2、 Buzzer输出功能可以方便的实现38K载波,1/2个计时计数器,上升下降沿可选的 外部中断便于灵活接收和解码。

    3、 5V/4MHZ条件下,正常工作电流2〜3mA,睡眠电流小于1uA,便于电池供电系统一、 红外编码格式说明用户采用红外模块时,编码格式非常灵活目前市场上的红外编码格式非常多,每家公 司都可以自己定义一种编解码格式下面以一种比较常用的格式来做分析说明(示意图中高 电平代表38K载波输出):导航码(Load Code):导航码用来通知接受器其后为遥控数据,解码部分在接受到这 个信号后就可以开始解码~系统码(ID Code):系统码用来区分是哪一机型的数据,接收端依此来判断后续的数 据是否为须执行的指令数据码(Data code):数据码用来区分是哪一个键被按下,接收端根据数据码做 出应该执行什么动作的判断数据帧间的空闲时间:有用信号中两帧数据间的空闲时间 红外遥控数据传输系统中的关键是数据传输的可靠性因此有些公司也会在系统码和数 据码后面分别再传送一个同样的码或反码,供误码校验用在红外遥控编码中数据位的格式一般如下图所示,通过低电平的时间不同,来区别 0 和 1在解码的时候既可以根据总的时间长度不同来解码,也可以根据低电平时间的不同来红外遥控的发射接收电路比较简单,其中接收电路可以使用集成红外接收器成品。

    接 收器包括红外接收管和信号处理IC接收器对外只有3个引脚:Vcc、GND和1个脉冲信 号输出P0与单片机接口非常方便,如图所示① Vcc接系统的电源正极(+ 5V);② GND接系统的地线(0V);③ 脉冲信号输出接CPU的中断输入引脚采取这种连接方法,软件解既可工作于查询 方式,也可工作于中断方式但需要注意的两点:一是注意发射接收管的驱动电流;二是要注意接收部分的滤波措 施,上图中C2就是用做稳定输出波形,但注意C2不可太大三、 红外编码发射接收软件实现部分1、 红外编码发射部分软件实现方法:红外发射管需要靠38K的载波驱动,才能将信号发送出去有的MCU没有BUZZER输出功能,不能靠硬件实现 38K 载波,就必须用软件模拟 38K 载波的输出而我们 SN8P25XX, SN8P26XXS系列的BUZZER输出功能配合适当的震荡频率,可以很方便的实 现 38K 载波的输出红外发射部分的软件实现一般可以分为两种:纯软件编码发射,计时器编码发射纯软件编码发射:根据编码格式,利用延时取得适当的时间段来控制载波的输出时间 和输出间隔时间,达到编码正确发送的目的这种方式思路简单容易实现,但比较浪费资源, 实时性不高,也不利于程序的移植。

    计时器编码发射:根据编码格式,采用计时器中断取得合适的时间段来控制载波的输 出时间和输出间隔时间这种方法充分利用了系统的资源,执行效率很高,并很容易实现程 序的移植现采用SN8P2602A,外部晶振为3.58MHz所做的一款简单的遥控器,其编码发射流程图见图 1开始巾讥足件发送克码是否发送芫前同1足吉靛判斷是否bit=i返冋『帕足种垃送疋片伸始师取 K bit红外编码发送子程序设宜f info hiT~O盪置bit完 皿标志忡.址f intu bir-1图12、 红外编码接收部分软件实现方法: 根据数据帧中不同的数据位格式和 MCU 中的资源,重要数据解码接收在程序设计 中存在很大差别一般有几种情况:纯软件解码、计时器解码、外部中断和计时器配合解码 等纯软件解码:根据数据格式采用延时方式来取得合理的采样时间,每到达一次采样 时间就测电平变化以确定解码数值此种方法对MCU资源要求不高,无需计时器,也无需 外部电平变换中断源,其实现方法也比较简单,并可以进行软件滤波处理但此方法在解码 过程中不能并行处理其他事,所以在比较复杂的系统中不推荐应用计时器解码:可以有两种思路来实现解码:一种方式是根据数据位格式利用计时器 取得合理的采样时间,每达到一次采样时间就检测电平变化,根据在设定的时间内检测到高 电平(或低电平)的次数来确定解码数值。

    另一种方法是累计电平变化的时间,计算两次电 平变化之间的时间,再根据时间的长短来确定解码数值外部中断和计时器配合解码:利用外部中断的下降沿中断功能侦测编码信号的电平 变化,利用计时器采样检测电平,累计时间以确定解码数值此种方式效率高,解码灵敏, 可以实现各种复杂系统中的准确解码但在应用外部中断做信号变化侦测的时候,要注意外 部干扰信号,需要在外部电路中做好滤波措施在 SONIX 的 SN8P25XX,SN8P26XX 系列中都有电平变化的外部中断源,因此非常 适合各种编码格式的解码下面为采用方式三解码的程序流程图,如下图开始主程序收码标志位=1YLOAD CODE 收码 ~ 完成标志位=1YV Td_code收码完成〜二标志位=]YV" DATA_CODE 收码'完成标志位=1 '恢复解码前初始状态返回取解码计时 计数器的值判断对应的 值是否为1Y」*取解码计时 计数器的值J取解码计时r计数器的值N判断对应的值是否为11 N存储数据存储数据0存储数据0存储 数据_"判断LOAD CODE- -■收码是否完成'YN 判断 DATA CODE N 是否收码完成置LOADCODE收码完成标志位置DATA CODE收码完成标志位并恢复解码前状态解码子程序主程序模块判断是否为LOAD CODEY置LOAD CODE完成标志位fpOOirqNN码计数decode start-J解码了程序中断模块解码计数器 内容加f脱屈码 计时器 的值片 置位解 码i[吋 完成标清汁时计数器 丼起位丄「程序 解码标志位油巾肚标志位四、 红外编解码设计中的注意点1、红外产品中遥控部分工作系统一般比较简单,并且实现准确的波形也相对比较简 单。

    因此在确定编码格式的时候要充分考虑到解码的方便性,准确性这主要要从数据码0 和1的编码时间长短方面来考虑一般说来,时间T不宜过短,越短对解码部分MCU的工 作速度要求越高,误码率也会随之增加但如果 T 的时间过长,将降低数据传输速率下 面为NEC格式采用的编码时间,可做参考1T 3T560us ibSOus2、红外编码信号的发射一般是通过按键输入来发射相应的信息码因此,在检测到 按键按下后,一般有两种处理方法:一种是在按键按下的过程中一直发送数据,按键弹起发 送完最后一帧完整数据后便停止发送或直接停止发送这样一般不会出现误码的情况另一 种是在检测到按键按下后,固定发送几帧数据,然后停止发射但此方法不能保证接收方每 次都完整收码,误码率较高。

    点击阅读更多内容
    卖家[上传人]:magui
    资质:实名认证