FPGA的基准时钟为来自DSP输出的32MHz时钟,经过片内数字时钟网络(PLL),可以得到系统所需要的多种时钟。
图文混合主要是控制观瞄系统显示屏的显示内容与相应的位置。利用EP2S30F484的内部RAM配置了许多独立的小RAM块,DSP根据不同的控制命令向这些RAM块写入不同的显示内容。FPGA再根据显示位置的分布,以记数的方式在屏幕上控制显示内容输出,达到图文混合。
由于StratixII FPGA使用SRAM来存储配置数据,而SRAM存储器在掉电后数据会丢失,因此每次StratixII FPAG上电时,必须下载一次配置数据。选择正确、合适的配置方案是利用FPGA进行设计的一个重要环节。Altera公司的FPGA共有多种配置方案,其中FPP、AS、PS、PPA和JTAG 配置方案适用于Stratix II系列FPGA。本设计采用了一种Advanced configuration Combine的配置方案。因为在系统研发阶段,考虑到要频繁地向FPGA写入设计文件,和EP2S30F484直接相连的标准JTAG必不可少,ByteMasterMV下载线一端接PC的并口,另一端与板上引出的JTAG底座连接。存储配置数据并完成自动配置的是EPCS16,它是Altera专为StratixII设计的增强型配置器件。当设计完成后,利用ByteMasterMV下载线直接将QuartusII输出的配置信息直接写入增强型配置器件中,以后在独立工作状态下,系统一上电启动,就开始了AS(FAST)方式的自动配置。
使用JTAG配置电路时,主要用到4个必需的管脚:TDI、TDO、TMS和TCK及一个可选的管脚TRST。在电路板上,要根据JTAG 标准的要求,引出2×5的JTAG底座。要注意的是,TMS和TDI管脚必须接1kΩ的上拉电阻。
QuartusII 5.0中一个非常实用的工具是软逻辑分析仪,它通过标准JTAG的方式就提供给用户可视化的在线分析能力。只要把ByteMasterMV电缆连接在EP2S30F484的JTAG头上,添加逻辑分析文件,在里面定义好要观察的信号,触发信号、方式,时钟,采样深度等参数,编译完成后从JTAG下载到FPGA内部,就可以运行,并实时的获得图形化的分析结果。
● DSP设计
ADSP2183是的高速增强定点16位数字信号处理芯片。作为主控芯片,ADSP2183的接口主要可分为图像串行传输接口、串行通信接口、TL16C552A控制接口、字节存储区间接口、I/O空间接口、重叠数据存储区间接口、EZ-ICE控制接口及其他一些IO接口。对DSP主要就是设计存储器地址空间,ADSP2183有4个独立的存储空间:数据存储器、程序存储器、字节存储器、I/O存储器。它们都有相应的片选,支持外部访问。其中,字节存储器空间达到4MB,支持从廉价的8位存储器引导和实时存取。如图3所示,ADSP2183的所有数据线、地址线、存储器片选、中断控制和部分I/O都连到了EP2S30F484上。DSP可以像访问内部存储器一样,访问在FPGA内部配置出的RAM块,与FPGA高速的传送数据。DSP的三个外部中断源是有优先级安排的。因为如果在一场的20ms时间里面不能协助完成图像旋转所需要的计算,则会发生图像停滞或者跳变,严重影响观瞄效果。所以场中断是外部中断源中优先级最高的,接下来是UART产生的中断,因为它直接影响实时的图文混合与显示结果,最后才是控制台产生的中断,人手操作的时间和人眼感受变化的时间毕竟和以上两种相比有比较大的差异。
图3 系统硬件结构
工作频率是26.32MHz,所以这里接一个16MHz系统时钟,其内部自动输出一个精确的32MHz时钟到CLKOUT,同时给FPGA作为全局时钟使用。ADSP2183使用一个2×7的Emulator接口进行调试和仿真。
观瞄系统旋转的精确角度值由系统中的方位解算器产生,以粗通道、精通道各高8位的方式表示,其中解算器是36速比的。FPGA通过组合CS0、CS1、INH这三个片选信号发送给方位解算器,然后一次连续从总线上读回粗通道高、粗通道低、精通道高、精通道低总共四个8位二进制值的角度值,DSP按顺序把四个值组合成一个19位的完整角度值。这样的角度值最高精度达到 0.02个密位(6000个密位表示360°),满足系统设计提出的精度要求。由DSP完成消像旋的协同计算,将计算结果通过DSP的数据总线返回至FPGA。
ADSP2183内部没有非易失性存储器,程序和数据必须依靠外部扩展存储器。在系统加电或复位时,如果ADSP2183的BMODE和MMAP都为低,就会以BDMA(字节DMA)的方式通过DSP的引导加载(Boot loader)机制将程序和数据转移到片上存储器中执行。过程是:ADSP2183从字节存储器空间装载最前的32个程序存储器字,然后开始执行。装载程序就在这32个字中。装载程序连续的从字节口装载,直到整个程序装载完成为止。这里使用的是SST公司的SST29LE010,8位的1Mbit EEPROM作为DSP的字节存储器。它是3.3V单电源,可以分页,每页128字节,最多1024页,支持Page-Write(页写)和JEDEC标准的在线编程,使用起来方便可靠。
红外热像仪及其控制电路以RS422方式发送串行数据,TL16C552A按照通信协议接收到,自动转换成并行数据,ADSP2183直接用程序方式从数据总线上读回。DSP发送给热像仪的串行数据也是经过TL16C552A并串转换,再由RS422驱动的。考虑到ADSP2183和外部的通信任务就是控制命令、工作参数的发送和状态字的返回,数据传输需求较低且数据流零散的特点,这里使用德州仪器公司的TL16C552A双异步通信器就可以胜任了。
另外,系统中还加入了一个串行EEPROM器件,Microchip公司93LC66B Microwire 串行EEPROM。因为电视观瞄系统中需要一些动态的参数,来进行不同的处理以适应特殊的场合需求。比如不同光学机构的零位角度不同、命令的调整、系统运行过程对特定参数或者错误信息的记录,等等。都需要系统每次能够记录这些参数,并且在断电以后存储这些参数。由于参数并不多,所以不需要额外设计复杂的FLASH存储空间。93LC66B的使用十分方便,确定好EEPROM的ORG状态,就只需要把93LC66B的DI、DO、SCK和CS这几根引脚与ADSP2183的Flag引脚正确连接,然后在DSP中对Flag编程,就可以实现对EEPROM的各种操作。
● 电源设计
现在以ASIC、DSP、FPGA等组成的系统中芯片都是低功耗设计,供电部分也变得越来越复杂。不仅对不同电平值的电压精度、输出电流、纹波、冲击等要求十分严格,而且同一个芯片的不同电平的上电时序也有了要求。整个系统的电源设计都采用了美国德州仪器公司的电源器件。
ADSP2183的供电相对比较简单,这里主要讨论FPGA的供电。手册规定,EP2S30F484的电源基本分为这几种:核心供电(Vccint)为1.2V;各个BANK的I/O口供电(Vccio),锁相环数字供电(Vccpll_d)为1.2V,锁相环模拟供电(Vccpll_a)为1.2V。还有Vccpd为3.3V),它是StratixII FPGA新定义的一个供电,其作用是为所有相关的3.3V/2.5V的配置输入缓冲器和JTAG相关引脚提供稳定可靠的供电。它要求从0~3.3V的抬升时间必须小于100ms,否则Stratix II FPAG将不能配置成功。但是如果确实不能保障这样苛刻的要求,就必须人为地把nCONFIG信号强制拉低,直到其他电源达到设计的可靠状态,以确保配置过程的正确完成。