由于信道中存在干扰,数字信号在信道中传输的过程中会产生误码.为了提高通信质量,保证通信的正确性和可靠性,通常采用差错控制的方法来纠正传输过程中的错误.本文的目的就是研究如何通过差错控制的方法以提高通信质量,保证传输的正确性和可靠性.重点研究一种信道编解码的算法和逻辑电路的实现方法,并在硬件上验证,利用码流传输的测试方法,对设计进行测试.在以上的研究基础之上,横向扩展和课题相关问题的研究,包括FPGA实现和高速硬件电路设计等方面的研究. 纠错码技术是一种通过增加一定的冗余信息来提高信息传输可靠性的有效方法.RS码是一种典型的纠错码,在线性分组码中,它具有最强的纠错能力,既能纠正随机错误,也能纠正突发错误.在深空通信,移动通信以及数字视频广播等系统中具有广泛的应用,随着RS编码和解码算法的改进和相关的硬件实现技术的发展,RS码在实际中的应用也将更加广泛. 在研究中,对所研究的问题进行分解,集中精力研究课题中的重点和难点,在各个模块成功实现的基础上,成功的进行系统组合,协调各个模块稳定的工作. 在本文中的EDA设计中,使用了自顶向下的设计方法,编解码算法每一个子模块分开进行设计,最后在顶层进行元件例化,正确实现了编码和解码的功能. 本文首先介绍相关的数字通信背景;接着提出纠错码的设计方案,介绍RS(31,15)码的编译码算法和逻辑电路的实现方法,RTL代码编写和逻辑仿真以及时序仿真,并讨论了FPGA设计的一般性准则以及高速数字电路设计的一些常用方法和注意事项;最后设计基于FPGA的硬件电路平台,并利用静态和动态的方法对编解码算法进行测试. 通过对编码和解码算法的充分理解,本人使用Verilog HDL语言对算法进行了RTL描述,在Altera公司Cyclone系列FPGA平台上面实现了编码和解码算法. 其中,编码的最高工作频率达到158MHz,解码的最高工作频率达到91MHz.在进行硬件调试的时候,整个系统工作在30MHz的时钟频率下,通过了硬件上的静态测试和动态测试,并能够正确实现预期的纠错功能.
上传时间: 2013-07-01
上传用户:liaofamous
本文提出了一种高速Viterbi译码器的FPGA实现方案。这种Viterbi译码器的设计方案既可以制成高性能的单片差错控制器,也可以集成到大规模ASIC通信芯片中,作为全数字接收的一部分。 本文所设计的Viterbi译码器采用了基四算法,与基二算法相比,其译码速率在理论上约提升一倍。加一比一选单元是Viterbi译码器最主要的瓶颈所在,本文在加一比一选模块中采用了全并行结构的设计方法,这种方法虽然增加了硬件的使用面积,却有效的提高了译码器的速率。在幸存路径管理部分采用了两路并行回溯的设计方法,与寄存器交换法相比,回溯算法更适用于FPGA开发设计。为了提高译码性能,减小译码差错,本文采用较大译码深度的回溯算法以保证幸存路径进行合并。实现了基于FPGA的误码测试仪,在FPGA内部完成误码验证和误码计数的工作。 与基于软件实现译码过程的DSP芯片不同,FPGA芯片完全采用硬件平台对Viterbi译码器加以实现,这使译码速率得到很大的提升。针对于具体的FPGA硬件实现,本文采用了硬件描述语言VHDL来完成设计。通过对译码器的综合仿真和FPGA实现验证了该方案的可行性。译码器的最高译码输出速率可以达到60Mbps。
上传时间: 2013-04-24
上传用户:181992417
DFT(离散傅立叶变换)作为将信号从时域转换到频域的基本运算,在各种数字信号处理中起着核心作用
上传时间: 2013-08-04
上传用户:wangdean1101
CAN-bus(Corltroller Area Network)即控制器局域网,是国际上应用最广泛的现场总线之一。它是一种多主方式的串行通讯总线,在工业控制通讯方面拥有高位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。作为一种灵活,可靠的通讯系统,CAN总线已被广泛运用于各个工业控制现场。 基于FPGA+DSP的CAN总线通讯系统设计主要目标是完成CAN总线的多节点可靠高速性传输,通过各节点之间的数据通信以及结点处理单元内部对数据的处理实现整个通信系统间各个单元的协同工作。 本论文中的 CAN 总线通讯系统是完成红外目标探测系统和控制系统与图像处理系统的实时通信,其硬件部分采用 DSP+FPGA 作为核心通讯处理单元,通过对 DSP硬件编程和FPGA逻辑模块的设计实现了在处理单元外部CAN总线多节点之间的信息可靠性传输以及处理单元内部DSP和FPGA基于SPI的串行通信,从而完成了在FPGA中对CAN总线数据的处理和运用。
上传时间: 2013-05-23
上传用户:dyy618
本文研制的数据采集器,用于采集导弹过载模拟试车台的各种参数,来评价导弹在飞行过程中的性能,由于试车台是高速旋转体,其工作环境恶劣,受电磁干扰大,而且设备要求高,如果遇到设备故障或设备事故,其损失相当巨大,保证设备的安全性和可靠性较为困难。 本文在分析数字通信技术的基础上,选用了基于现场可编程逻辑阵列(FPGA)采用脉冲编码调制(PCM)通信实现多路数据采集器的设计,其优点是FPGA技术在数据采集器中可以进行模块化设计,增加了系统的抗干扰性、灵活性和适应性,并且可以将整个PCM通信系统设计成可编程序系统,用户只要稍加变更程序,则系统的被测路数、帧结构、码速率、标度等均可改变以适应任何场合。并且采用合理的纠错和加密编码能够实现数据在传输工程中的完整性和安全性。 通过对PCM通信的特点研究,研制了一套集采集与传输的系统。文章给出了各个模块的具体建模与设计,系统采用的是FPGA技术来实现数据采集和信号处理,采用VHDL实现了数字复接器和分接器、编解码器、调制与解调模块的建模与设计。采用基于NiosII实现串口通讯,构建了实时性和准确性通信网络,实现了数据的采集。 测试数据和数据采集的实验结果证明,采用FPGA技术实现PCM信号的编码、传输、解码,能够有较强的抗干扰性、抗噪声性能好、差错可控、易加密、易与现代技术结合,并且误码率较低,要远远优于传统的方法。
上传时间: 2013-04-24
上传用户:com1com2
扩频通信技术是信息时代的三大高技术通信传输方式之一,与常规的通信技术相比。具有低截获率、强抗噪声、抗干扰性,具有信息隐蔽和多址通信等特点,目前已从军事领域向民用领域迅速发展。在民用化之后,它被迅速推广到各种公用和专用通信网络之中,如卫星通信、数据传输、定位、测距等系统中。 扩频通信技术中,最常见的是直接序列扩频通信(DSSS)系统,然而目前专用扩频芯片大部分功能都已固化。缺少产品开发的灵活性。其次,目前用FPGA与DSP相结合实现的直接序列扩频的收发系统比较多,系统复杂且成本高。另外,现代扩频通信系统在接收和发送端需要完成许多快速复杂的信号处理,这对电路的可靠性和处理速度提出了更高的要求。因此,设计一个全部用FPGA技术实现的扩频通信收、发系统具有较强的实际应用价值。 根据FPGA的高速并行处理能力和全硬件实现的特点,采用直接序列扩频技术,借助QuartusⅡ6.0及Protel99se工具,完成了系统的软件仿真和硬件电路设计。实验结果表明,比用传统的FPGA与DSP相结合实现方式,提高了处理速度,减少了硬件延时。同时采用了流水线技术,提高了系统并行处理的能力。并且系统功能可以通过程序来修改和升级,与专用扩频芯片相比,具有很大的灵活性。所有模块都集成在一个芯片中,提高了系统的稳定性和可靠性。
上传时间: 2013-05-18
上传用户:天天天天
本文针对由FPGA构成的高速数据采集系统数据处理能力弱的问题,提出FPGA与单片机实现数据串行通信的解决方
上传时间: 2013-04-24
上传用户:cuicuicui
·摘要: 针对DSP芯片TS201的LINK口互连在高速数据通信中存在数据错误、突发数据块传输不稳定等缺点,在分析其通信协议的基础上,并结合实际应用,提出了设计LINK口通信的关键要求,给出设计的要点,设计与实现了TS201的LINK 121互连以及FPGA(Xilinx公司的XC4VFX60)与TS201 LINK口互连,得到了实际测试结果;结果表明,所设计的LINK口互连具备的优点有
上传时间: 2013-06-08
上传用户:417313137
给出了采用INT51X1 芯片设计低压电力线高速数据传送模块的设计方案。
上传时间: 2013-12-21
上传用户:thesk123
AVR高速嵌入式单片机原理与应用(修订版)详细介绍ATMEL公司开发的AVR高速嵌入式单片机的结构;讲述AVR单片机的开发工具和集成开发环境(IDE),包括Studio调试工具、AVR单片机汇编器和单片机串行下载编程;学习指令系统时,每条指令均有实例,边学习边调试,使学习者看得见指令流向及操作结果,真正理解每条指令的功能及使用注意事项;介绍AVR系列多种单片机功能特点、实用程序设计及应用实例;作为提高篇,讲述简单易学、适用AVR单片机的高级语言BASCOMAVR及ICC AVR C编译器。 AVR高速嵌入式单片机原理与应用(修订版) 目录 第一章ATMEL单片机简介1.1ATMEL公司产品的特点11.2AT90系列单片机简介21.3AT91M系列单片机简介2第二章AVR单片机系统结构2.1AVR单片机总体结构42.2AVR单片机中央处理器CPU62.2.1结构概述72.2.2通用寄存器堆92.2.3X、Y、Z寄存器92.2.4ALU运算逻辑单元92.3AVR单片机存储器组织102.3.1可下载的Flash程序存储器102.3.2内部和外部的SRAM数据存储器102.3.3EEPROM数据存储器112.3.4存储器访问和指令执行时序112.3.5I/O存储器132.4AVR单片机系统复位162.4.1复位源172.4.2加电复位182.4.3外部复位192.4.4看门狗复位192.5AVR单片机中断系统202.5.1中断处理202.5.2外部中断232.5.3中断应答时间232.5.4MCU控制寄存器 MCUCR232.6AVR单片机的省电方式242.6.1休眠状态242.6.2空闲模式242.6.3掉电模式252.7AVR单片机定时器/计数器252.7.1定时器/计数器预定比例器252.7.28位定时器/计数器0252.7.316位定时器/计数器1272.7.4看门狗定时器332.8AVR单片机EEPROM读/写访问342.9AVR单片机串行接口352.9.1同步串行接口 SPI352.9.2通用串行接口 UART402.10AVR单片机模拟比较器452.10.1模拟比较器452.10.2模拟比较器控制和状态寄存器ACSR462.11AVR单片机I/O端口472.11.1端口A472.11.2端口 B482.11.3端口 C542.11.4端口 D552.12AVR单片机存储器编程612.12.1编程存储器锁定位612.12.2熔断位612.12.3芯片代码612.12.4编程 Flash和 EEPROM612.12.5并行编程622.12.6串行下载662.12.7可编程特性67第三章AVR单片机开发工具3.1AVR实时在线仿真器ICE200693.2JTAG ICE仿真器693.3AVR嵌入式单片机开发下载实验器SL?AVR703.4AVR集成开发环境(IDE)753.4.1AVR Assembler编译器753.4.2AVR Studio773.4.3AVR Prog783.5SL?AVR系列组态开发实验系统793.6SL?AVR*.ASM源文件说明81第四章AVR单片机指令系统4.1指令格式844.1.1汇编指令844.1.2汇编器伪指令844.1.3表达式874.2寻址方式894.3数据操作和指令类型924.3.1数据操作924.3.2指令类型924.3.3指令集名词924.4算术和逻辑指令934.4.1加法指令934.4.2减法指令974.4.3乘法指令1014.4.4取反码指令1014.4.5取补指令1024.4.6比较指令1034.4.7逻辑与指令1054.4.8逻辑或指令1074.4.9逻辑异或指令1104.5转移指令1114.5.1无条件转移指令1114.5.2条件转移指令1144.6数据传送指令1354.6.1直接数据传送指令1354.6.2间接数据传送指令1374.6.3从程序存储器直接取数据指令1444.6.4I/O口数据传送指令1454.6.5堆栈操作指令1464.7位指令和位测试指令1474.7.1带进位逻辑操作指令1474.7.2位变量传送指令1514.7.3位变量修改指令1524.7.4其它指令1614.8新增指令(新器件)1624.8.1EICALL-- 延长间接调用子程序1624.8.2EIJMP--扩展间接跳转1634.8.3ELPM--扩展装载程序存储器1644.8.4ESPM--扩展存储程序存储器1644.8.5FMUL--小数乘法1664.8.6FMULS--有符号数乘法1664.8.7FMULSU--有符号小数和无符号小数乘法1674.8.8MOVW--拷贝寄存器字1684.8.9MULS--有符号数乘法1694.8.10MULSU--有符号数与无符号数乘法1694.8.11SPM--存储程序存储器170 第五章AVR单片机AT90系列5.1AT90S12001725.1.1特点1725.1.2描述1735.1.3引脚配置1745.1.4结构纵览1755.2AT90S23131835.2.1特点1835.2.2描述1845.2.3引脚配置1855.3ATmega8/8L1855.3.1特点1865.3.2描述1875.3.3引脚配置1895.3.4开发实验工具1905.4AT90S2333/44331915.4.1特点1915.4.2描述1925.4.3引脚配置1945.5AT90S4414/85151955.5.1特点1955.5.2AT90S4414和AT90S8515的比较1965.5.3引脚配置1965.6AT90S4434/85351975.6.1特点1975.6.2描述1985.6.3AT90S4434和AT90S8535的比较1985.6.4引脚配置2005.6.5AVR RISC结构2015.6.6定时器/计数器2125.6.7看门狗定时器 2175.6.8EEPROM读/写2175.6.9串行外设接口SPI2175.6.10通用串行接口UART2175.6.11模拟比较器 2175.6.12模数转换器2185.6.13I/O端口2235.7ATmega83/1632285.7.1特点2285.7.2描述2295.7.3ATmega83与ATmega163的比较2315.7.4引脚配置2315.8ATtiny10/11/122325.8.1特点2325.8.2描述2335.8.3引脚配置2355.9ATtiny15/L2375.9.1特点2375.9.2描述2375.9.3引脚配置2395 .10ATmega128/128L2395.10.1特点2405.10.2描述2415.10.3引脚配置2435.10.4开发实验工具2455.11ATmega1612465.11.1特点2465.11.2描述2475.11.3引脚配置2475.12AVR单片机替代MCS51单片机249第六章实用程序设计6.1程序设计方法2506.1.1程序设计步骤2506.1.2程序设计技术2506.2应用程序举例2516.2.1内部寄存器和位定义文件2516.2.2访问内部 EEPROM2546.2.3数据块传送2546.2.4乘法和除法运算应用一2556.2.5乘法和除法运算应用二2556.2.616位运算2556.2.7BCD运算2556.2.8冒泡分类算法2556.2.9设置和使用模拟比较器2556.2.10半双工中断方式UART应用一2556.2.11半双工中断方式UART应用二2566.2.128位精度A/D转换器2566.2.13装载程序存储器2566.2.14安装和使用相同模拟比较器2566.2.15CRC程序存储的检查2566.2.164×4键区休眠触发方式2576.2.17多工法驱动LED和4×4键区扫描2576.2.18I2C总线2576.2.19I2C工作2586.2.20SPI软件2586.2.21验证SLAVR实验器及AT90S1200的口功能12596.2.22验证SLAVR实验器及AT90S1200的口功能22596.2.23验证SLAVR实验器及具有DIP40封装的口功能第七章AVR单片机的应用7.1通用延时子程序2607.2简单I/O口输出实验2667.2.1SLAVR721.ASM 2667.2.2SLAVR722.ASM2677.2.3SLAVR723.ASM2687.2.4SLAVR724.ASM2707.2.5SLAVR725.ASM2717.2.6SLAVR726.ASM2727.2.7SLAVR727.ASM2737.3综合程序2747.3.1LED/LCD/键盘扫描综合程序2747.3.2LED键盘扫描综合程序2757.3.3在LED上实现字符8的循环移位显示程序2757.3.4电脑放音机2777.3.5键盘扫描程序2857.3.6十进制计数显示2867.3.7廉价的A/D转换器2897.3.8高精度廉价的A/D转换器2947.3.9星星灯2977.3.10按钮猜数程序2987.3.11汉字的输入3047.4复杂实用程序3067.4.110位A/D转换3067.4.2步进电机控制程序3097.4.3测脉冲宽度3127.4.4LCD显示8字循环3187.4.5LED电脑时钟3247.4.6测频率3307.4.7测转速3327.4.8AT90S8535的A/D转换334第八章BASCOMAVR的应用8.1基于高级语言BASCOMAVR的单片机开发平台3408.2BASCOMAVR软件平台的安装与使用3418.3AVR I/O口的应用3458.3.1LED发光二极管的控制3458.3.2简易手控广告灯3468.3.3简易电脑音乐放音机3478.4LCD显示器3498.4.1标准LCD显示器的应用3498.4.2简单游戏机--按钮猜数3518.5串口通信UART3528.5.1AVR系统与PC的简易通信3538.5.2PC控制的简易广告灯3548.6单总线接口和温度计3568.7I2C总线接口和简易IC卡读写器359第九章ICC AVR C编译器的使用9.1ICC AVR的概述3659.1.1介绍ImageCraft的ICC AVR3659.1.2ICC AVR中的文件类型及其扩展名3659.1.3附注和扩充3669.2ImageCraft的ICC AVR编译器安装3679.2.1安装SETUP.EXE程序3679.2.2对安装完成的软件进行注册3679.3ICC AVR导游3689.3.1起步3689.3.2C程序的剖析3699.4ICC AVR的IDE环境3709.4.1编译一个单独的文件3709.4.2创建一个新的工程3709.4.3工程管理3719.4.4编辑窗口3719.4.5应用构筑向导3719.4.6状态窗口3719.4.7终端仿真3719.5C库函数与启动文件3729.5.1启动文件3729.5.2常用库函数3729.5.3字符类型库3739.5.4浮点运算库3749.5.5标准输入/输出库3759.5.6标准库和内存分配函数3769.5.7字符串函数3779.5.8变量参数函数3799.5.9堆栈检查函数3799.6AVR硬件访问的编程3809.6.1访问AVR的底层硬件3809.6.2位操作3809.6.3程序存储器和常量数据3819.6.4字符串3829.6.5堆栈3839.6.6在线汇编3839.6.7I/O寄存器3849.6.8绝对内存地址3849.6.9C任务3859.6.10中断操作3869.6.11访问UART3879.6.12访问EEPROM3879.6.13访问SPI3889.6.14相对转移/调用的地址范围3889.6.15C的运行结构3889.6.16汇编界面和调用规则3899.6.17函数返回非整型值3909.6.18程序和数据区的使用3909.6.19编程区域3919.6.20调试3919.7应用举例*3929.7.1读/写口3929.7.2延时函数3929.7.3读/写EEPROM3929.7.4AVR的PB口变速移位3939.7.5音符声程序3939.7.68字循环移位显示程序3949.7.7锯齿波程序3959.7.8正三角波程序3969.7.9梯形波程序396附录1AT89系列单片机简介398附录2AT94K系列现场可编程系统标准集成电路401附录3指令集综合404附录4AVR单片机选型表408参 考 文 献412
上传时间: 2013-11-08
上传用户:xcy122677