DSP系统设计大作业学院:电子工程学院专业:信息对抗技术班级:021231姓名:学号:02123指导教师:秦国栋1、比较DSP,FPGA,ARM三类芯片的优缺点?答:DSP(digitalsingnalprocessor)是一种独特的微处理器,有自己的完整指令系统,是以数字信号来处理大量信息的器件。一个数字信号处理器在一块不大的芯片内包括有控制单元、运算单元、各种寄存器以及一定数量的存储单元等等,在其外围还可以连接若干存储器,并可以与一定数量的外部设备互相通信,有软、硬件的全面功能,本身就是一个微型计算机。DSP采用的是哈佛设计,即数据总线和地址总线分开,使程序和数据分别存储在两个分开的空间,允许取指令和执行指令完全重叠。也就是说在执行上一条指令的同时就可取出下一条指令,并进行译码,这大大的提高了微处理器的速度。另外还允许在程序空间和数据空间之间进行传输,因为增加了器件的灵活性。其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。由于它运算能力很强,速度很快,体积很小,而且采用软件编程具有高度7的灵活性,因此为从事各种复杂的应用提供了一条有效途径。根据数字信号处理的要求,DSP芯片一般具有如下主要特点:(1)在一个指令周期内可完成一次乘法和一次加法;(2)程序和数据空间分开,可以同时访问指令和数据;(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;(4)具有低开销或无开销循环及跳转的硬件支持;(5)快速的中断处理和硬件I/O支持;(6)具有在单周期内操作的多个硬件地址产生器;(7)可以并行执行多个操作;(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。当然,与痛用微处理器相比,DSP芯片的其他通用功能相对较弱些。FPGA是英文FieldProgrammableGateArray(现场可编程门阵列)的缩写,它是在PAL、GAL、PLD等可编程器件的基础上进一步发展的产物,是专用集成电路(ASIC)中集成度最高的一种。FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个新概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。用户可对FPGA内部的逻辑模块和I/O模块重新配置,以实现用户的逻辑。它还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改。作为专用集成电路(ASIC)领域中的一种半定制电路,FPGA既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。可以毫不夸张的讲,FPGA能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路,都可以用FPGA来实现。FPGA如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统。通过软件仿真,我们可以事先验证设计的正确性。在PCB完成以后,还可以利用FPGA的在线修改能力,随时修改设计而不必改动硬件电路。使用FPGA来开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。目前FPGA的品种很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。ARM(AdvancedRISCMachines/microprocessor)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。ARM架构是面向低预算市场设计的第一款RISC微处理器,基本是32位单片机的行业标准,它提供一系列内核、体系扩展、微处理器和系统芯片方案,四个功能模块可供生产厂商根据不同用户的要求来配置生产。由于所有产品均采用一个通用的软件体系,所以相同的软件可在所有产品中运行。目前ARM在手持设备市场占有90以上的份额,可以有效地缩短应用程序开发与测试的时间,也降低了研发费用。它们的区别是什么呢?DSP主要是用来计算的,比如进行加密解密、调制解调等,优势是强大的数据处理能力和较高的运行速度。ARM具有比较强的事务管理功能,可以用来跑界面以及应用程序等,其优势主要体现在控制方面;而FPGA可以用VHDL来编程,灵活性强,由于能够进行编程、除错、再编程和重复操作,因此可以充分地进行设计开发和验证。当电路有少量改动时,更能显示出FPGA的优势,其现场编程能力可以延长产品在市场上的寿命,而这种能力可以用来进行系统升级或除错。2、给出DSP设计实例,并用框图详细解释。DSP设计实例题目:基于DSP的纸币号码识别系统(1)、概要近年来,钱币、特别是纸币被抢劫事件不断发生,严重影响了社会治安,也使银行在经济上受到了严重的损失。如果被抢劫的钱币不能在市场上流通,将从一个方面抑制银行抢劫事件的发生。其中一种解决方案是记录每一捆纸币的号码,将被抢劫的纸币号码建立一个数据库。在货币流通市场提供一种纸币号码自动识别装置,比如说与点钞机结合,将货币号码识别数据与被抢劫号码数据库比较,一旦有相同号码出现,便可确认目前流通的钱币为被抢劫的钱币,从而限制其流通,同时也有利于抢劫案件的侦破。另外,由于纸币号码的唯一性,通过识别纸币上的号码,可以帮助识别假币。国外有一种验钞打号机,可以对典型的纸币,比如美元、英镑等进行自动识别和号码打印,这种装置的典型识别速度为1张/秒。不过还没有点钞机附带号码自动识别装置的文献报道。近些年,国内也有一些单位研制开发纸币号码自动识别装置,例如南京航空航天大学开发了一种基于单片机的纸币号码识别系统[3],利用线阵CCD实现纸币图象的采集,利用单片机实现号码的定位与识别。其主要问题是难以提高号码的识别速度。哈尔滨工业大学开发了一种基于DSP的纸币号码识别系统[4],其识别速度为8张/秒,但该速度为在PC机上的仿真结果,实际样机没有实现。此外,该系统采用CIS(即接触式线型图象传感器)获得纸币图像信号,存在传感器磨损问题。针对以上情况,本文给出一种基于DSP的纸币号码识别系统,利用面阵CCD摄象机采集纸币号码图象,即每秒采集25幅图象,而目前的点钞机点钞速度为每秒十几张左右,从而可以实现与点钞机的配合使用。该系统由以下几个部分组成:(1)、利用Philip公司专业视频解码器SAA7113实现纸币号码图像的数字化;(2)、利用TI公司的数字信号处理器TMS320VC5410实现数字纸币号码图像的采集和处理;(3)、利用TI公司的异步串行接口芯片TL16C550完成整个系统与PC机之间的通信。(2)、设计原理及框图基于DSP的纸币号码识别系统的工作原理:从面阵CCD摄像头摄取的纸币模拟视频图像,经专业视频解码器转换为数字图像。数字视频信号经图像缓存FIFO存入DSP的数据空间,作为后续图像识别的数据来源。视频解码器同时分离出行场同步信号和象素时钟参考信号,作为图像缓存模块的控制信号。为了保存和记录号码,经识别后的纸币号码数据存储在快速闪烁存储器FLASH中,或根据需要通过异步串口传送给PC机。复杂可编程逻辑器件CPLD在整个系统中起到全局逻辑控制和对采集的纸币图像实现开窗处理的作用。系统的总体结构框图如图1所示。(3)、图像采集模块3.1视频解码芯片SAA7113在系统中的应用SAA7113是一种高集成度并且支持隔行扫描、多种数据输出格式的视频解码器,内置的I2C界面提供了简单的对芯片内部电路的控制功能。对SAA7113的控制主要包括对输入模拟信号的预处理、色度和亮度的控制,输出数据格式及输出图象同步信号的选择控制等。在整个系统中对图象的识别处理主要是针对灰度图像进行的,在SAA7113所提供的多种数据输出格式中,RAW格式在8位输出管脚上直接输出与象素时钟相对应的象素灰度值,此种数据格式与其它格式相比对灰度图像的采集将更直接。SAA7113的输出RTS0和RTS1是多功能复用管脚,通过对子地址寄存器SA12写入不同的控制字,可将两输出管脚配置为行同步、帧同步、奇偶场同步等不同的信号。在本系统中将RTS0设置为行同步信号,RTS1设置为场同步信号,同时SAA7113还输出象素时钟的同步参考信号LLC。通过I2C总线协议对SAA7113的各个控制寄存器进行设置,使其满足系统要求。由于DSP芯片是处理型的器件,它的控制能力比较弱,通用I/O口比较少,而单片机具有很好的控制功能,因此对SAA7113的初始化工作使用AT89C51单片机来完成。AT89C51单片机内部无硬件I2C总线接口,在此将单片机的P1.0口设置为串行数据线SDA,P1.1设置为串行时钟线SCL,通过软件模拟I2C总线,对视频解码器SAA7113进行初始化,其硬件原理如图2所示。3.2使用CPLD实现对图像的开窗处理利用象素时钟LLC2和行同步信号HS实现行截取的VHDL程序:process(LLC2,HS)variabletemp:std_logic_vector(10downto0);beginif(LLC2'eventandLLC2='1')thenif(HS='1')thentemp:=temp+'1';if(temp80andtemp241)thenHref='1';elseHref='0';endif;elseHref='0';endif;endif;endprocess;从SAA7113输出的数字视频图像为整幅图像,可是对识别有用的图像大小为40x200,为减少图像数据的存储量和处理量。通过调整CCD摄像头与点钞机之间的位置,利用视频解码器的行、场同步信号HS、VS和象素时钟参考信号LLC,使用VHDL语言,对感兴趣的图像区域进行开窗处理。具体做法为:在场信号VS为高的期间,对行信号HS进行计数,使感兴趣的图像期间的场信号输出为高,在其它区域其场信号为低,这样得到新的场信号VREF。与场截取相类,利用行信号HS和象素时钟LLC2,得到新的行信号HREF。这样通过两个计数器实现了图像的开窗处理。本文给出了对图像进行开窗处理的框图,并给出了行截取的VHLD程序,对列的截取VHDL程序与行截取相类似。3.3利用DSP实现图像的采集SAA7113上电初始化之后将一直处于工作状态,其象素时钟参考信号LLC为27MHz,为象素时钟的二倍,即象素时钟为13.5MHz。这么快的时钟频率如果直接进行图像采集的话将出现数据丢失的现象。本文采用了先进先出阵列FIFO作为图像缓存,将图像数据先存入FIFO中,通过DSP读取FIFO中的图像数据,来完成图像的采集。CCD摄像头输出PAL制,场频为50Hz的视频信号,其行周期为64us,场周期为20ms。在本系统中图像大小为40x200,通过示波器可看到截取后的场周期为2.56ms,而DSP的读写周期为10ns,通过DSP的读写程序所需时间大约为3ms左右,与点钞机相连接,将有充足的时间实现图像的采集。由于FIFO是没有片选的,对FIFO控制主要是对其读写信号有效的控制。FIFO写有效