摘要:以Altera FPGA系列Cyclone EPlC12Q240C8器件为载体,通过SoPC 技术构建嵌入式软核Nios II 处理器平台,运用Verilog HDL硬件插遮语言设计等精度测量载波频IP核、红外信号解调IP 核、红外编码脉宽测量IP核和红外发送调制逻辑电路,以实现载波的精确测量、红外信号解调、脉宽侧量和调制功能,并给出了外围硬件电路和软件设计方案。实验表明,该遥控器解决了单片机困时钟频率低而无法对载波频率进行测量的瓶颈,实现对任何一款普通遥控器的按键编码学习,真正完成了学习型遥控器的学习功能。
0引言
红外遥控器在家电产品中被广泛应用,但各产晶的遥控器采用了不同的频率或编码方式,导致这些遥控器不能相互通用,这给人们的生活带来了诸多不便。针对这个间题,很多厂家设计和生产了一种称为万能遥控器的红外信号遥控装置,这类遥控器大多数采用复制遥控器红外波形达到学习目的,其方法简单,实现来较方便,通过对不同普通遥控器发出的红外线编码进行学习和存储,可以对多个家用电器进行遥控,从而可以减少家庭屮遥控器的数目。但是,这类遥控器通常采用专用ASIC 或单片机来实现,并且只能接收单一载波的红外信号编码,导致实际使用时有诸多局限,主要体现在:如果家用电器遥控装置的载波频率不同。万能遥控器将无能为力蚤不同的家用电器使用单一的遥控器界面,容易产生混淆和误操作蚤受存储空间的限制,能够支持的遥控器数目有限。
因此,本文设计了一种基于Nios Ⅱ的红外学习型遥控器, 把载波频率测量、红外信号解调、脲宽测量、调制发送IP核集中到FPGA器件上,极大地简化外围硬件电路,利用了Nios软核CPU 的32位处理器,可以很好地对脉宽进行精确测量,同时提高处理速度,能够精确地对载波频率进行测量,并将原始的红外信号进行最太程度上无失真还原,解决了单片机因时钟频率低无法对载波频率进行测量的瓶颈,实瑰了对各种各样红外遥控的学习,真正完成了学习型遥控器的学习功能。
1 整体设计方案
系统主要由Nios Ⅱ处理器、Avalon总线、EPCS控制器、SDRAM控制器、FLASH控制器、输入输出I/O口、等精度测量载波频率IP核、红外信号解调IP核、红外编码脉宽测量IP核、红外发送调制逻辑电路、中断控制器等组成,如图1所示。上电后,系统通过EPCS调用系统配置信息,系统进行初始化。当“学习”键按下时,通过I/O口中断产生一个测量红外载波频率请求信号,此时“常习”指示灯亮。当检测到外部遥控红外信
号时,处理器通过 Avalon总线调用等精度测量载波频率IP核开始测量频率,“学习”指示灯熄灭表示学习载波频率成功。接下来通过“家电”按键即可将该载波频率储存到该家电红外编码FLASH 载波频率存储区域。对应的“家电”指示灯亮,表示可以进入该家电红外遥控信号学习或发送阶段。学习时,只需将家电遥控器发送窗对准学习型遥控器的接收窗,发送红外遥控信号。此时Nios软核处理器会通过Avalon总线调用红外信号解调IP核和红外编码脉宽测量IP 核,完成红外信号的解调和一帧完整编码脉宽高低电平时间测量(此过程中处理的所有数据存储在 SDRAM中)。当“学习”灯再次亮起,表示该信号已得到确认。按下学习型遥控器的任一功能键,即可将该信号送到指定的该家电接键FLASH存储区域;发送时,先选择“家电”选择键(即选,定了载波频率),然后按下“功能键”时,Nios Ⅱ处理器会自动调用FLASH存储数据,通过红外发送逻辑电路调制到载波上,完成红外信号还原。
2 硬件电路设计
2.1 主控制电路设计
主控制电路主要以Altera FPGA 系列 CycloneEPlC12Q240C8器件为载体,通过SoPC 技术构建嵌入式软核Nios Ⅱ处理器平台,运用Verilog HDL硬件描述语言设计等精度测量载波频率IP核、红外信号解调IP 核和红外编码脉宽测量IP核和红外发送调制逻辑电路,以实现载波的精确测量,红外信号解调、脉宽测量和调制功能。复位电路用了专用看门狗芯片CAT1025,以避免电路的死循环,同时也可以通过手动接下复位键,使系统重新启动。时钟是采用外部时钟方式,其频率为50 MHz。主控制电路图如图2所示。
2.2 外圃硬件电路设计
2.2.1 按键与指示电路
为了简化软件程序,结合FPGA 多I/O口的优势,本设计采用独立按键方式,当按键按下时,FPGA对应的I/O口会检测到低电平;按键弹起时,FPGA对应的I/O口会检测到高电平。对于指示电路,采用不同颜色的发送三极管来指示不同的状态或控制不同的家用电器,当其中的一个指示灯闪烁时,表示正在学习对应的家电遥控器或者是发送对应的家电遥控信号。
2.2.2 红外接收和发送电路
红外接收电路由红外三极管、三极管9014及电阻组戚。当未检测到红外信号时,红外接收二极管电阻很大(近似于短路),三极管9014处于截止状态,此时IRECEIVE端检测到高电平蚤当检测到红外信号时,红处接收二极管电限较小,这时三极管9014 发射极正偏,集电极反偏,三极管处于放太状态。红外信号通过共发射极晚路放大后输入到FPGA 的 I/O口18脚,交给Nios 软核处理。发送时,经过红外发送调制逻辑电平调制后的红外信号从FPGA I/O口16脚输出,红外信号通过三极管9014再次倒相放大后从集电极输出,驱动红外发射管辐射出红外调制信号,从而实现红外遥控信号的再生。红外发送和接收电路如图3所示。
2.2.3 存储电路
存储电路主要由AM29LV320DT(4MB l6位并行总线)FLASH芯片和K4S641632 H(64MB l6位并行总线) SDRAM芯片组成。其中的SDRAM芯片起缓冲数据的作用,保存处理器及外部交换的数据信息,掉电或复位后数据菝失。FLASH 闪速存储器。用于SoPC 系统的程序存放和需要掉电保存的数据存放,但是,FLASH的读操作比 SDRAM慢。写速度更加缓慢(相对T SDRAM而言)。Nios Ⅱ系统启动后,在Nios Ⅱ的Boot程序把存放在FLASH中的程字复制到SDRAM后,再运行。
3 软件设计
当系统上电后进人等待状态。当检测到学习键按下时候,系统进入学习状态。在学习过程中,Nios处理器写人频率测量控制字,通过Avalon总线调用频率测量IP核对载波频率进行测量。测量完成后,检测到有启动解调控制字和测量脉宽控制字写人,即开始对红外信号解调同时对解调后的信号的脉宽进行测量。测量完成后,处理器会将数据写入对应存储区域,完成本次学习过程。如图4所示。还原信号时,处理器写入发送调制控制字,通过Avalon总线控制红外发送调制逻辑电路,发送完成后返回等待状态,等待下一次发送。如图5所示。
4.系统功能仿真
为了验证该学习型遥控器的原理、硬件系统和软件系统,选用21K8型飞利浦电视遥控器,RM-FDLC7461型NEO电视遥控器和RM-687C 型索尼电视遥控器作为实验对象,分别按这三个遥控器的“电源”功能键,发送红外遥控信号,它们对应的载渡频率分别为36kHz,38kHz 和40kHz,学习型遥控器的红外接收二极管接收到红外信号,并通过三极管9014放大,送入FPGA 的 I/O口l8脚,利用Quartus Ⅱ软件中的集成仿真器可对学习型遥控器进行功能仿真。首先建立一个工程,全部编译通过后,然后对其功能和时序遴行仿真测试,如图6~图8所示。通过比较图6~图8中的己经滤掉载波红外信号High_En和红外发送调制逻辑电路输出的信事情IR_code f的波形可看出,接收和发射的高电平维持的时间相同,数据一致,电平也一致。由仿真结果表明,21K8型飞利浦电视遥控器、RM-FDLC7461 型 NEO 电视遥控器和RM-687C型索尼电视遥控器的“电源”功能键代码和学习型遥控器笈出的代码,两者相同,表示学习成功。同时也表明该遥控器可以精确地测量不同载波的红外遥控信号,解决了单片机因时钟频率低而无法对载波频率进行测量的瓶颈。
5结语
该学习遥控器通过SOPC技术构建嵌入式软核Nios Ⅱ处理器平台,运用Verilog HDL语言设计等精度测量载波频率IP核、红外信号解调IP核、红处编码脉宽测量和红外信号调制逻辑电路,把载波的精确测量,红处信号解调、脉宽测量和调制集中以Altera FPGA系列CycloneEP1C12Q240Q240C8器件上,极大地简化外围硬件电路。实验表明,该遥控器解决了单片机因时钟频率低而无法对载波频率进行测量的瓶颈,实现了对任何一款普通遥控器的按键编码学习,真正完成了学习型遥控器的学习功能。