基于SOPC的红外解码IP核设计与实现
扫描二维码
随时随地手机看文章
摘要:提出一种红外解码IP核在SoPC系统中的设计与实现方案,重点研究红外系统的数据编码和传输机制,红外解码电路的HDL设计,IP核的制作及在SoPC系统中的应用。该方案的红外发送接收芯片分别是TC9012和DS338S,在DE2开发板对IP核进行测试。结果表明,红外解码IP能顺利地添加到SoPC系统中,实现快速、稳定、正确的红外解码功能,达到预期设计目标。
关键词:红外解码;Avalon总线;IP核;SoPC
0 引言
红外通信作为一种简便的无线通信技术在电子设备中具有广泛的应用。它的主要优点是无需专门申请特定频率的使用执照;具有移动通信设备所必需的体积小,功率低的特点;传输速率适合家庭和办公室使用的网络;信号无干扰,传输准确度高;成本低廉。
SoPC技术是在可编程逻辑器件的基础上发展起来的一种灵活、高效的嵌入式系统解决方案。它将处理器、存储器、I/O口、常用外设等系统设计所需要的部件以IP核的形式集成到一片FPGA器件上,构建成一个可编程的片上系统,实现特定的逻辑功能。其中,IP核可理解为一段具有特定电路功能的硬件描述语言程序,该程序与集成电路工艺无关,可以移植到不同的半导体工艺中去生产集成电路芯片。因此,IP核的设计与复用是SoPC设计中解决设计层次、产品成本、设计周期和降低风险的关键环节,是SoPC设计中的关键技术。
本文提出一种红外解码IP核在SoPC系统中的设计与实现方法,重点研究红外系统的数据编码和传输机制、红外解码电路的HDL设计、IP核的制作及在SoPC系统中的应用方法。
1 红外通信原理与Avalon总线规范
1.1 红外通信原理
本文采用的红外接收部分的硬件电路由红外发射芯片TC9012和红外接收芯片DS338S组成。DS338S的输出信号IR_out接入FPGA的GPIO,实现红外解码功能。硬件电路图如图1所示。
发射端TC9012发送的红外数据帧的格式如图2所示。
每帧含有32 b,包含2次8位用户码,8位数据码和8位数据码的反码及最后位的同步位。其中,用户码是由硬件决定的,通过解码用户码来识别控制单位是否有权控制设备。数据反码是用于验证数据码是否正确的。引导码由4.5 ms的载波和4.5 ms的载波关断波形所构成,作为用户码、数据码以及他们的反码的先导。TC9012采用PPM(Pulse Phase Modulation)脉冲相位调制方式完成数据的发送。载波、同步位、位元‘0’和‘1’和引导码的波形如图3所示。由图可知,载波频率为38 kHz,占空比为1/3;同步位(SY)是标志最后一位编码“0”或“1”的标识位,它只有0.56 ms的有载波信号构成;位元0由0.56 ms的有载波部分和0.565 ms的空闲部分构成;位元1由0.56 ms的有载波部分和1.69 ms的空闲部分构成。[!--empirenews.page--]
红外接收端DS338S内含高速高灵敏度PIN光电二极管和低功耗、高增益前置放大IC,采用外屏蔽,在红外遥控系统中作为接收器使用。IR M-338S的输入/输出波形如图4所示。
由图可知,在进行红外解码的时候,输入信号是从IRM-338S接收管送出的信号,接收管的输出信号与发射端的发射信号是倒相关系。
1.2 Avalon总线规范简介
Avalon总线是Altera公司专门为SoPC推出的一套片内总线系统,是SoPC解决方案中的核心部分。本设计采用的是Avalon-MM总线接口,该总线接口是内存映射系统下用于主从设备之间通信的读写接口,采用主从式的传输方式,即由一个主控端外设发起并控制传输过程,而从属端外设响应经由总线模块发来的信号完成整个传输。Avalon-MM定义了一组接口信号和总线时序,具体的接口信号见表1。
[!--empirenews.page--]
2 红外解码IP核的设计
红外解码IP核包括红外解码逻辑和Avalon总线接入逻辑两个部分,其端口描述如图5所示。
2.1 红外解码逻辑的设计
红外解码逻辑的设计核心是:采用脉冲计数的方法,检测IRM-338S接收管输出的IR_OUT信号在连续两次跳沿间处于高电平或低电平的时间,进而判断出每个位元的类型和对应信息,把位元信息组成字节,将字节还原成帧,实现红外解码。该逻辑的设计框架见图6。
(1)时钟分频逻辑。在红外通信协议中,IR_OUT信号在连续2次跳沿间的最小电平持续时间为0.56 ms。为精确检测该电乎的持续时间,选取周期为40μs时钟脉冲信号对电平进行计数。该时钟脉冲信号由Avalon总线的csi_clock_clk信号分频得到。位元检测解码逻辑:检测IR_OUT信号的跳沿,以跳沿为计数起始和结束点,使用时钟脉冲信号对位元电平进行计数。位元解码逻辑将计数结果转换成位元信息,并输
出位元结束信号。在位元解码逻辑中,考虑到实际硬件误差,用不同的计数范围对应各种位元信息,具体对应关系见表2。
[!--empirenews.page--]
(2)字节检测解码逻辑。检测位元结束信号并进行计数,将连续8个位元的信息填充成1个字节,输出字节结束信号。帧检测解码逻辑:检测字节结束信号并进行计数,将连续4个字节的信息填充成1个红外数据帧,输出解码结束信号,用于产生中断;使用SignaltapⅡ对设计的红外解码逻辑进行测试,其中位元检测解码逻辑时序见图7。由图可知,在40μs时钟脉冲信号下,位元“0”的高电平持续14个脉冲,低电平持续14个脉冲;位元“1”的高电平持续14个脉冲,低电平持续43个脉冲。测试结果与理论分析一致。
2.2 Avalon总线接入逻辑
Avalon总线接入逻辑实现总线中断时序和总线读时序,将红外解码逻辑输出的解码结束信号以中断的方式发送到Avalon总线上,供Avalon总线上的主设备响应中断,读取帧解码结果。中断逻辑和总线读逻辑的Verilog描述见图8。
3 红外解码IP核的测试与小结
完成红外解码IP核的设计后,可应用SoPC Builder提供的元件编辑器(Component Editor)将IP核封装成基于Avalon总线中的AvaIon-MM设备,使用该IP核,在使用过程中要注意信号类型的映射关系、接口和时序等选项的配置。
在DE2平台上,使用该IP核完成的作品《基于NIOS Ⅱ多核技术的魔方智能求解系统》参加了2011 Altera亚洲创新设计大赛获二等奖。该系统中与红外解码IP核相关的信号时序见图9。
4 结语
反复测试和实际使用结果表明,红外解码IP核能实现快速、稳定、正确的红外解码功能,达到预期设计目标。