工作频率是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信号强制拉低,直到其他电源达到设计的可*状态,以确保配置过程的正确完成。
EP2S30F484的(Vccint)是由TP54312提供,1.2V(Vccpll_a/Vccpll_d)是TP73633提供,3.3V(Vccpd)是TP78601提供,整个系统的3.3V供电是TP75533提供。不同电源的供电时序经过设计并实验测量出,是符合设计要求,当然也保证了观瞄系统的正常运行。
在每种电源设计的时候,都加入了二极管反向保护和瞬态电压抑制器进行瞬间过冲保护。同一种电源的模拟和数字部分也用电感隔离开了,相应的模拟地层和数字地层之间也物理分隔开,在合适的位置点用Ferrite Bead(铁氧体磁珠)做了连接,最大程度的减小EMI。主图像处理板是一块10层PCB的设计,电源和地就有4层,所有电源和部分时钟都在内电层或地层划分出来,信号层没有长距离的供电回路和时钟走线。
● VHDL程序设计
系统的软件设计包括对FPGA的VHDL程序编写和对DSP的汇编程序编写两部分。
在FPGA设计中采用VHDL语言设计,不仅大大简化了设计复杂逻辑电路的难度,而且可以充分发挥FPGA内部资源的优势。在Quartus II5.0集成开发环境下,对整个FPGA运算模块采用了自顶向下的设计方式。首先,用Block图的方式按照系统中所用芯片划分,设计了逻辑总体,把所有FPGA的资源合理分配到相应的物理引脚,规划好顶层逻辑。接着,在每个Block下编写VHDL程序,实现具体的控制逻辑。采用模块化、规则化和局部化的技术,既提高了设计效率,又减少设计的复杂性。
对于EP2S30F484,使用一个统一的全局时钟,并采用同步时序的设计方法。FPGA内部的所有模块都使用一个全局时钟,统一复位。在具体功能模块设计的时候,可以调用一些Altera公司的内部核和LPM功能块。这些模块具有结构独立的设计输入、高效的设计映射和工具独立的设计输入,不仅节省大量的FPGA资源,提高了设计效率,而且使系统性能得到提高。

图4 系统软件流程图
|