随着计算机和集成电路技术的不断发展,基于EDA技术的芯片设计正在成为电子系统设计的主流.现场可编程门阵列(FPGA)作为一种可编程专用集成电路(ASIC)已经广泛应用于计算机、通信、航空航天等各个领域.一般来讲,FPGA多用于高速通信和高速信号处理领域,以发挥其处理速度快的特点,本文将其应用于一低速低功耗系统——某水下远程遥控接收系统,主要用其在频域来实现水下远程遥控的解码,取得了令人满意的效果.该文主要做了以下几方面的工作.首先,深入研究和分析了在频域实现水下远程遥控解码的原理并进行了遥控指令编码设计;其次,用ALTERA公司的CYCLONE系列FPGA芯片完成了水下远程遥控FPGA解码芯片的设计工作,包括硬件描述语言(VHDL)编码、电路前后仿真、综合和布局布线工作,并对设计的FPGA解码芯片进行了初步的功耗估算:最后设计制作了一块FPGA解码芯片电路验证测试板,并完成了电路调试和测试.实验测试结果表明,用FPGA实现水下远程遥控解码电路的方案是可行的,可以有效地缩小系统体积、提高系统可靠性,在保证系统性能情况下做到更低的功耗,还可以实现在系统配置和编程,使得系统的调试、升级和维护更加灵活方便.
上传时间: 2013-06-03
上传用户:zoushuiqi
//遥控解码子程序,LC7461,用户码为11C//external interrupt0void isr_4(){ unsigned char r_count;//定义解码的个数 unsigned long use_data=0;//定义16位的用户码,只用到13位 unsigned long use_code=0;//定义16位的用户反码,只用到13位 unsigned long data=0;//定义16位数据码,包括8位数据码和反码 unsigned char data_h=0;//数据反码 unsigned char data_l=0;//数据码 _clrwdt();// _delay(7000);//7461解码,延时7000// _delay(7000);//7461解码,延时7000//_delay(7000);//7461解码,延时7000 if(remote==1) goto error; while(remote==0);//wait to high //_delay(9744);count_delay=0; while(count_delay<143); if(remote==1) goto error; /////用户码解码use_data//////////add////////////////////////// for(r_count=13;r_count>0;r_count--) { while(remote==0);//wait to high count_delay=0; while(count_delay<24);//_delay(1680); _c=remote; if(_c==1) { _lrrc(&use_data); count_delay=0; while(count_delay<32);//_delay(2200);//wait to low } else _lrrc(&use_data); } _nop(); //if(remote==1) //_delay(1680);//wait to low while(remote==1);//wait to low _nop(); ////////用户码解码finish/////////add/////////add//////// /////用户码反码解码use_code//////////add////////////////////////// for(r_count=13;r_count>0;r_count--) { while(remote==0);//wait to high count_delay=0; while(count_delay<24);//_delay(1680); _c=remote; if(_c==1) { _lrrc(&use_code); count_delay=0; while(count_delay<32);//_delay(2200);//wait to low } else _lrrc(&use_code); } _nop(); //if(remote==1) // _delay(1680);//wait to low while(remote==1);//wait to low _nop(); ////////用户码反码解码finish/////////add/////////add//////// ////数据码解码开始////data_l为用户码,data_h为数据码反码//////////// for(r_count=16;r_count>0;r_count--) { while(remote==0);//wait to high count_delay=0; while(count_delay<24);//_delay(1680); _c=remote; if(_c==1) { _lrrc(&data); count_delay=0; while(count_delay<32);//_delay(2200);//wait to low } else _lrrc(&data); } ////数据码解码结束//////////////////////////////////////////////// data_l=data; data_h=data>>8; ///用户码////// use_data>>=3; use_code>>=3; use_code=~use_code; //////// ////如果用户码等与0x11c并且数据码和数据反码都校验一致,解码成功 //if((~data_h==data_l)&&use_data==0x11c)//使用用户码 //跳过用户码 if(~data_h==data_l)//如果数据码和数据反码(取反后)相等,解码正确 { _nop(); r_data=data_l;//r_data为解出的最终数据码 } //否则解码不成功 _nop(); _nop();error: //r_data=nocode; _nop(); _nop(); _nop();}
上传时间: 2014-03-27
上传用户:shenlan
6221红外遥控解码程序
上传时间: 2015-01-28
上传用户:cuibaigao
红外线遥控解码器,该程序实现将红外遥控器发出的红外线解码,并通过LCD显示出来
上传时间: 2013-12-27
上传用户:Zxcvbnm
用汇编语言编写的51单片机红外遥控解码程序
上传时间: 2015-05-15
上传用户:TF2015
RC5红外遥控 解码程序.. AVR单片机
上传时间: 2013-12-03
上传用户:叶山豪
遥控器的解码程序,讲解遥控解码的原理,程序,具体的步骤,比较的好用
上传时间: 2013-12-16
上传用户:litianchu
用C语言写的红外遥控解码程序,,,, 语法上没错,但解码完成后有错,,没个按键的都一样,,不知道什么问题,望指点,,EMAIL:wjsjdeng@sina.com.cn
上传时间: 2014-01-27
上传用户:iswlkje
红外遥控解码,有头文件,希望大家或喜欢
上传时间: 2013-12-18
上传用户:小儒尼尼奥
一个很实用的遥控解码lcd显示驱动程序。
上传时间: 2016-01-18
上传用户:SimonQQ