当前位置:首页 > 单片机 > 单片机
[导读]摘要:根据红外遥控芯片BA5104的编码格式,探讨使用AVR单片机ATmega16进行软件解码的两种方法:外部中断解码法和输入捕获功能解码法。详细阐述这两种解码方法的思路,并给出相应的解码中断服务子程序。分析这两种解码

摘要:根据红外遥控芯片BA5104的编码格式,探讨使用AVR单片机ATmega16进行软件解码的两种方法:外部中断解码法和输入捕获功能解码法。详细阐述这两种解码方法的思路,并给出相应的解码中断服务子程序。分析这两种解码方法的优缺点,得出输入捕获功能解码法比外部中断解码法效率更高、解出的遥控码更稳定、可靠的结论。
关键词:AVR单片机;捕获模式;解码;红外遥控芯片

    用BA5104芯片构成的红外遥控发射器电路具有外接元件少、成本低廉、器件本身功耗低、电源电压适应范围宽、工作稳定可靠等特点,因此广泛应用于遥控风扇、灯器、电热水器等各类家用电器中。BA5104芯片解码常用BA5204、BA820X系列、SM5032C等芯片进行硬件解码,这种解码方法缺乏灵活性。目前许多电子产品和电气设备以单片机作为核心控制器且逐渐采用红外遥控器进行操作,采用软件解码代替硬件解码,对于设备的升级和改造提供极大的灵活性,降低开发成本。

1 BA5104芯片构成的红外遥控发射器电路
    
由红外遥控芯片BA5104构成的红外遥控发射器电路如图1所示。K1~K8为遥控器的输入按键,由于BA5104的按键输入端内接有上拉电阻无键按下时,电路没有电流流通,无编码信号输出。当电路中有任一键按下时,振荡电路起振,产生455 kHz的振荡信号,经BA5104内部电路进行12分频,得到38 kHz的载波信号。按键的绾码信息和C1、C2的状态信息经内部电路进行编码调制,由15脚串行输出,经三极管Q1,Q2构成的达灵顿电路放大,驱动经外发射管发射38 kHz的已调制红外载波信号。14脚输出高电平,点亮发射状态指示灯LED1。



2 BA5104芯片的编码格式
    
BA5104的编码格式瑚为:每一帧遥控码的长度为12位,包括3位起始码位、2位用户码位、7位指令码位。每一帧遥控码的时间间隔为4T,其中T=1.687 9 ms为每一位遥控码的周期。一帧遥控码如图2所示。遥控码“0”用1/4T的高电平、3/4T的低电平表示,遥控码“1”用3/4T的高电平、1/4T的低电平表示,一位遥控码的波形如图3所示。



3 BA5104芯片的软件解码方法
3.1 测出接收脉冲下降沿刭上升沿的时间间隔并保存
    
解码的关键是要测出接收脉冲下降沿到上升沿的时间间隔,行之有效的方法有两种:外部中断法输入捕获功能法,下面分别进行介绍。
3.1.1 外部中断法
    
用AVR单片机ATmega16的外部中断INT0接收解码BA5104芯片的电路如图4所示。PC838为一体化红外接收头,YM12864为中文液晶显示器,用于显示下降沿中断至上升沿中断之间的时间间隔及解码成功后的遥控码。


    外部中断法的解码思路:PCF838的输出端未接收到红外遥控信号时保持高电平,接收到红外遥控信号时,输出端从高电平变成低电平,形成下降沿,低电平持续一段时间后,红外遥控信号消失,输出端又从低电平变成高电平,形成上升沿。单片机ATmega16的外部中断可以由编程者自由设置为上升沿中断或下降沿中断,初始化时先将ATmega16的外部中断INT0设置为下降沿中断,当INT0发生下降沿中断时用定时器/计数器T/C1记录发生的时间并保存在t1中,然后设置外部中断INT0为上升沿中断,当外部中断INT0又一次触发中断时将发生的时间保存在t2中,再次将外部中断INT0为下降沿中断。最后计算从下降沿中断至上升沿中断之间的时间间隔并保存在事先开辟的数据存储区中,直到接收完一帧遥控码,外部中断INT0发生的过程如图5所示。外部中断INT0的中断服务子程序如下:
    
3.1.2 输入捕获功能法
    
用AVR单片机ATmega16的输入捕获功能ICP1接收解码BA5104芯片的电路如图6所示。


    输入捕获功能法的思路:初始化时先将ATmega16的T/C1设置为输入捕获模式,下降沿捕获中断。当ICP1引脚检测到下降沿时产生捕获中断,将计数寄存器TCNT1中的计数值自动写入捕捉寄存器ICR1,在捕获中断程序中将ICR1的值保存到变量t1中,之后将T/C1设置为上升沿捕获中断;当ICP1引脚检测到上升沿时再一次产生捕获中断,此时将ICR1的值保存在变量t2中,然后将TENT1的计数值清0,并将T/C1设置为上升沿捕获。最后进行计算便可得到下降沿捕获中断至上升沿捕获中断之间的时间间隔并保存在数据缓冲区中,直到接收完12位遥控码。输入捕获中断发生的过程如图7所示。ICP1捕获中断服务子程序如下:
    
3.2 遥控码“0”和遥控码“1”的提取
    
根据BA5104芯片的编码格式,当保存在数据缓冲区中的数值为1/4T=1/4×1.687 9ms≈422μs时,判定为接收到遥控码“0”;当数据缓冲区中的数值为3/4T=3/4x1.687 9 ms≈126 6μ时,判定为接收到遥控码“1”。在实际应用中,由于单片机和红外遥控发射器所使用的晶振频率与标称值有一定的偏差,所以在编写程序时要留有一定的容限误差。提取12位遥控码的子程序如下:
    

4 测试结果与分析
    
测试条件:AVR单片机ATmega16外接晶振为8 MHz,系统内部进行8分频。经过实验,用外部中断法和输入捕获功能法均能测出接收脉冲下降沿到上升沿的时间间隔。表1为测试所得的结果。在实验中发现,用外部中断法测得的第一帧遥控码的第1位(即S2)比较容易受到外界的干扰,造成解码偶尔会出现错误。而用输入捕获功能法进行解码极少出现错误,主要是因为ATmega16工作在输入捕获模式并打开噪音消除功能时,单片机以时钟频率连续4次采样ICP1引脚,当4次采样数据相同时,才认为输入捕获信号有效,具有较强的抗干扰能力。外部中断法要占用单片机的一个外部中断源和内部的一个定时器,而输入捕获功能法仅占用单片机内部的一个定时器。由此可见输入捕获功能解码法明显优于外部中断解码法。



5 结束语
    
用AVR单片机进行软件解码红外遥控芯片BA5104的2种方法均已在实际电路中得到验证。经过分析和比较,得出输入捕获功能解码法优于外部中断解码法的结论。文中介绍的2种解码方法只是针对以BA5104芯片组成的遥控器,对于其它不同编码格式的遥控器,解码的思路是相同的,只须根据实际遥控器的编码格式将程序中的一些参数修改即可,不用更换接收电路,非常方便。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

上海2025年9月5日 /美通社/ -- 由上海市经济和信息化委员会、上海市发展和改革委员会、上海市商务委员会、上海市教育委员会、上海市科学技术委员会指导,东浩兰生(集团)有限公司主办,东浩兰生会展集团上海工业商务展览有...

关键字: 电子 BSP 芯片 自动驾驶

无锡2025年8月29日 /美通社/ -- 2025年8月27日,正值中国与瑞士建交75周年这一历史性时刻,在北京隆重举办的中瑞商业大奖颁奖典礼上,作为中瑞经贸合作的标杆企业,布勒凭借在创新研发和数字化转型领域的卓越表现...

关键字: 解码 数字化 AN SMART

9月1日消息,继小鹏、零跑后,现在小米汽车也宣布了8月的交付量。

关键字: 小米汽车 芯片

上海2025年8月26日 /美通社/ -- 在全球数字经济加速演进的时代浪潮中,海量数据资源正成为企业发展的双刃剑。超66%的企业面临"数据沉睡"危机——分散于供应链、财务、客户运营等数十个系统的业务...

关键字: AI 模型 软件 数据分析

当地时间 8 月 22 日,美国芯片制造商英特尔公司宣布与美国联邦政府达成协议,后者将向英特尔普通股投资 89 亿美元,以每股 20.47 美元的价格收购 4.333 亿股英特尔普通股,相当于该公司 9.9% 的股份。

关键字: 英特尔 半导体 芯片

在当今数字化时代,人工智能(AI)和高性能计算(HPC)的迅猛发展对 GPU 芯片的性能提出了极高要求。随着 GPU 计算密度和功耗的不断攀升,散热问题成为了制约其性能发挥的关键因素。传统的风冷方案已难以满足日益增长的散...

关键字: 人工智能 高性能计算 芯片

8月20日消息,博主数码闲聊站暗示,9月底大概率只有小米16系列会亮相,其它骁龙8 Elite 2旗舰、天玑9500旗舰新品都将排到10月份,新机大乱斗会在国庆假期之后开始。

关键字: 小米雷军 芯片

8月21日消息,据媒体报道,英伟达宣布将自研基于3nm工艺的HBM内存Base Die,预计于2027年下半年进入小规模试产阶段,此举旨在弥补其在HBM领域的技术与生态短板。

关键字: 英伟达 黄仁勋 芯片 显卡

继寻求收购英特尔10%的股份之后,近日又有消息称,特朗普政府正在考虑通过《芯片法案》资金置换股权的方式,强行收购美光、三星、台积电三大芯片巨头的股份。若此举落地,美国政府将从“政策扶持者”蜕变为“直接股东”,彻底重塑全球...

关键字: 芯片 半导体

在集成电路设计流程中,网表作为连接逻辑设计与物理实现的关键桥梁,其分模块面积统计对于芯片性能优化、成本控制和资源分配具有重要意义。本文将详细介绍如何利用 Python 实现网表分模块统计面积的功能,从网表数据解析到面积计...

关键字: 网表 芯片 分模块
关闭