基于DSP的硬件、软件开发流程.doc
周期内完成。快速的指令周期 目前,C6000系列、C5000系列的最高工作主频已经 达到600MHz,指令周期降到了1.67ns,随着微电子技术的不断发展,工作频率 还将进一步提高,指令周期进一步缩短。特殊的DSP指令DSP芯片有专门为数字信号处理而设计的指令系统。 此外,DSP还具有良好的多机并行运行特性、内部RAM等不同于普通单片机的 特点,正是由于这些特征,使得DSP芯片非常适合于实时的数字信号处理。 3.2.2DSP的硬件设计流程第一步:设汁硬件实现方案,根据性能指标、成本、工期等,确定最优的硬 件实现方案。控制、通信、人机接口、总线等基本部件,他们大致的确定原则如下:根据采样 频率、精度、是否要求片上自带采保、多路器、基准电源等来确定A/D型号:内存(EPROM,SDRAM,SBSRAM等的选择主要考虑工作频率、内存容量位长、接口 方式、工作电压等。第三步:进行原理图的设计,原理图的设计是关键的一步,在原理图的设计 时必须清楚的了解器件的使用和系统的开发,对于些关键的环节有必要做一 定的仿真。原理图设计的成功与否,是DSP系统能否正常工作的最重要的个 因素。第四步:PCB图的设计,PCB即印刷电路板,PCB的设计要求设计人员清楚 布线工艺和系统原理图。第五步:硬件调试。3.2.3DSP系统软件编程的步骤(1、用汇编语言、c语言或汇编语言和c语言的混合编程来编写程序,然 后把它们分别转化成TMS320的汇编语言并送到汇编语言编译器进行编译,生成 目标文件。(2、将目标文件送入链接器进行链接,得到可执行文件。(3、将可执行文件调入到调试器进行调试,检查运行结果是否正确,如果 正确进入第四步,如果不正确则返回第一步。(4、进行代码转换,将代码写入EEPROM,并脱离仿真环境运行程序,检 查结果是否正确。(5、软件测试,如果测试结果合格,则软件调试完毕,如果不合格,返回 第一步。在完成系统的软硬件设计之后,将进行系统集成。所谓系统集成,是 将软硬件结合起来,并在实际系统中运行,进行系统测试,在系统测试中往往可 能会出现些问题,如精度不够等。出现问题时,一般采用修改软件的方法,如果软件修改无法解决,则必须调整硬件。如果系统测试结果符合指标,则设 计完毕。3.3图像处理芯片的选取处理器设计过程中图像处理芯片的选取至关重要,要兼顾到性能和价格两 方面。由图像处理器的总体结构图可以看出,DSP和FPGA是关键的部件,这里 主要介绍它们的选取原则及其所选芯片的性能。3.3.1DSP芯片的选取DSP芯片的选型,要综合考虑各种性能指标,选择性价比最好的芯片。一 般可以从速度的要求、开发环境、片内/外存储空间的大小、工作电压、封装形 式等方面来考虑。TMS320C6X系列DSP是TI公司最新的一款高端并行处理的数 字信号处理器,其CPU采用了VelOCiTI结构种高性能的超长指令字VLIW 结构,使得该芯片特别适用于多信道数字信号处理。VelociTI是一种高性能的 VLIW结构,配合TMS320C6X系列DSP特殊的内部结构和独特的指令集,在指令 的获取、分配、执行和数据存储方面几乎没有什么限制,并且它的编译器充分 利用了它的这种结构上的特点,能够产生当前效率最高的代码。TMS320C6X系 列芯片的种类很多,这里考虑到性能、成本等因素,选取了TMS320C620l,下 面对该芯片的特点进行一些简单介绍。TMS320C6201是TMS320C6X系列中的一款高性能定点DSP芯片,该处理器 由3个主要部分组成:中央处理单元CPU、外部设备和存储器。外部设备包括一 个DMA控制器、电源控制单元、外部存储器接口或主机端口、两个定时器和一 个锁相环时钟发生器。芯片内部结构如图39所示:兰!竺!:!竺!3-9TMS320C6201芯片结构 +_÷÷斗 ÷j图该芯片的主要特征如下:(1,CPU采用超长指令字(VLIW结构,通过增加片内指令级并行度获得高 性能。工作频率200MHz,指令周期5ns,每个时钟周期最多可以并行执行8条 指令,从而可以实现1600MIPS的定点运算能力。(2,CPU内核具有两个乘法器、6个算术逻辑单元,这8个功能模块共用 一个程序计数器和一个控制单元。每个功能模块由一个32位指令控制,各功能 模块可并行操作,共享32个32位通用寄存器,8个功能模块分为相同的两组, 属于两个数据通道。(3,内部的存储器包括512KBit的数据存储器和5I 2KBit的程序存储器, 它们中的一部分可配置成高速缓存(Cache。(4,IMA控制器支持4个独立的DMA可编程通道和一个辅助DMA通道。(5,16位主机接口(HPI,使得主机设备可以直接访问CPU的存储空间, 通过内部或外部存储空间,主机和CPU可以交换信息。主机也可以利用HPI直 接访问映射进地址空间的外围设备。(6,32位外部存储器接口(EMIF,寻址空间是4GB,具有非常强的对外接 口能力,存储器可方便的配置不同速度、不同容量、不同复杂度的存储器,为 硬件开发人员带来了很大的方便。(7,两个32位定时器,两个多通道缓冲串口(McBSP,支持收发时钟独立 的连续全双工通信。3.3.2FPGA芯片的选取FPGA是20世纪80年代中期出现的一种新型可编程逻辑器件,现已广泛应 用于通信、计算机、图像处理等诸多领域。FPGA采用了类似于掩膜可编程门阵 列的结构,继承了门阵列逻辑器件密度高和通用性强的优点,其芯片中包含的 LUT和触发器非常多,往往都是几千万以上,如果用芯片价格除以逻辑单元数 量,PPGA的平均逻辑单元成本则大大降低,所以如果设计一个复杂的时序逻辑, 需使用到大量触发器,使用FPGA就是一个很好的选择。FPGA包括三类可编程资源:可编程逻辑模块(CLB,是排列规则的实现基本 逻辑功能的单元,又叫宏单元:可编程输入输出模块(10B、连接芯片与外部封 装:可编程内部互连(PI,将内部各个CLB,lOB联接起来,CLB和lOB的具体 逻转功能及它们的互连关系由配置数据决定。本系统中接口的逻辑、系统的互连、以及数据通道都是由FPGA完成的,另 外,FPGA外扩了一些I/O口,以检测现场的传感器和输出控制信号,用Prom 来存放FPGA的配置数据。FPGA采用的是Xilinx公司的SpartanXL系列FPGA 芯片,这是一种基于SRAM的现场可编程门阵列。下表给出了SpartanXL系列 FPGA的一些参数。整个FPGA的设计实现在XilinxISE4.1开发平台上完成,该 系统支持设计输入、逻辑仿真、设计实现(设计综合和时序仿真等系统开发全过程。表3-2SPARTANXL系列FPGA的参数器件 XCS05X1XCSlOxl XCS20x1XCS30xl XCS40x1最大逻辑门 50 CLBs 101014水1420*2024*2428*28 10Bs 824综合考虑成本和性能等因素,我们选用了SpartanXL系列的XCS30xl,与之 匹配的Prom为17S30XL。选用容量相对较大的FPGA的一个主要目的是将一些 简单且重复量大的运算由FPGA来实现,在数据采集的同时进行图像预处理。3.4基于FPGA的视频数据采集电路设计3.4.1SAA7111A芯片介绍选用不同的视频解码芯片,系统的构成和功能也有所不同,PHILIPS公司 和TI公司都推出了不少视频解码芯片,本系统采用Philips公司的SAA7111A。 SAA7111A是一个两路视频预处理芯片,该芯片内部包含了抗混叠滤波器,A/D 转换器,自动嵌位和增益控制器,时钟发生器,多制式数字解码器,亮度/对比 度/饱和度控制电路,颜色空间矩阵等,适合于将PAL制式和NTSC制式的模拟 视频信号,解码为CCIR一601兼容的数字值。整个芯片的初始化通过写12C总线 来进行。输出信号包括A/D结果、行同步信号HREF、场同步信号VREF、奇偶场 信号RTSO、像素时钟LLC2等。3.4.2sAA7111A模拟视频输入以及时钟系统的设计SAA7111A芯片提供四个模拟视频输入接口和两路输入通道,每路输入通道 包含嵌位电路、模拟放大器、抗混叠滤波器和8位模数转换器。四个输入接口 分别为All,A12,A21,A22,其中All,A12共用一个视频通道,A21,A22共用 另外一个视频通道。可兼容4路CVBS信号选择输入,2路Yc信号选择输入, 或者2路CVBS和1路YC信号选择输入。通过12C总线设定地址为02的寄存器 中的MODE2,MODEl,MODEO三个控制位的值,选择特定的工作模式。在视频输 入端需要连接22nF的电容和阻值分别为27和47欧姆的两个电阻。视频解码芯片的时钟可以分为来自外部的时钟和来自内部的时钟。外部时 钟只需要接入一个频率为24.576aHz的晶振,由XTAL管脚和XTALl管脚连接外 部时钟信号。芯片内部还有一个时钟产生电路CGC(Clock Generation Circtlit 可以驱动晶体振荡器,产生系统行锁定时钟LLC(27aBz,LLC2(13.5Mlz和时 钟参考信号CREF(13.5MHz,相对LLC2有一定的延时。时钟的产生还受到片选 信号CE的影响,高电平有效,低电平时SAA71IlA被复位,该管脚不产生周期 信号。输入信号FEI=o,允许数据输出,FEI=1,三态隔离。可由FP6A来控制22