合成孔径雷达信号处理机系统的任务就是对雷达回波信号进行距离向和方位向的二维数据脉冲压缩,从而得到地面目标的高分辨率图像。该系统是一个实时信号处理系统,系统数据量大,运算复杂。该系统A/D转换模块的采样率为200Mbyte/s,雷达回波信号I/Q正交双通道,每通道采样2048点,脉冲重复频率为1.4kHz,则数据率为5.6Mbyte/s。系统在算法上主要完成距离向和方位向的脉冲压缩,还要完成距离徙动校正和运动补偿。根据合成孔径雷达成像算法,系统主要由A/D数据采集模块、预处理模块、标量处理模块、矢量处理模块、后处理模块、中心控制及数据显示模块组成。其中A/D数据采集模块的A/D转换器用MAXIM公司的SPT7750芯片,其采样率为200Mbyte/s,分辨率为8bit。预处理用TMS320C6201定点处理器,峰值运算速率为1600mips。标量处理模块用多片ADSP2106X来完成。矢量处理模块用LH9124/9320芯片组来完成。后处理用TMS320C31来完成。中心控制器用i386EX单片机来完成,图象显示及人机接口用具有ISA总线及PCI总线的ALL IN ONE 来完成。显而易见,这是一个多处理器系统。
作为一个系统,多个处理器必须交换数据,系统才能协同并行工作。处理器间交换数据可以有两种方法,一种是利用标准总线结构实现板间数据传输,如VME、Compact PCI总线等,利用这种方法传输数据要求本板有总线控制器接口电路,还要有0槽卡,系统复杂,成本高,这里不作讨论。另一种是利用共享存储体的方法,这是本文讨论的重点。两个处理器要交换数据则必须要有两个处理器都可以访问的共享存储体,一个处理器将数据写入存储体,而由另一处理器将数据时分读出,这种方法可以实现处理器总线的隔离,使两个处理器间可以有效地交换数据,实现数据共享。两个处理器要共同访问一个存储体有这样几种方法,其一是双口RAM法、其二是先进先出的FIFO法、其三是总线开关加存储器法。这三种方法所要注意的问题是处理器间信号的握手,即当一个处理器给存储体写入数据后产生旗标通知另一处理器将数据取走。另一个问题是两个处理器访问同一存储单元可能产生的冲突。下面就分别讨论这三种方法。
1 用双口RAM实现两个处理器间数据交换
双口RAM是一种双端口器件,允许两个处理器各访问一个端口,每一个处理器都可以将双口RAM看作自己的本地存储器。双口RAM的每个端口都有各自的数据、地址、控制总线,允许处理器对存储器的任何地址执行随机读写操作。当两个处理器同时对同一地址单元操作(如同时写、或一个写一个读),双口RAM会自动产生BUSY信号表示冲突。一般此BUSY信号接至处理器的READY端,使其读或写时序延长,最终读出或写入。
IDT公司的IDT7133是一种典型的双口RAM芯片,其管脚分布如图1所示。其中IO0~15表示数据总线、A0~10表示地址总线、R/W、CE、OE分别表示读/写、片选、读选通,BUSY是IDT7133的输出信号表示冲突,L、R分别表示左右端口,读写管脚中的L、U表示16Bit数据的低字节、高字节的区分,字母上方的—号表示该信号低电平有效。
作为雷达数字信号处理机的一个子系统的一部分,笔者设计了一个电路用于ISA总线和i386EX单片机交换数据,其示意性原理图如图1所示。
其中EXD0~15和i386EX单片机的数据总线相连,EXB1~11和i386EX的地址总线相连,EXOE#、EXWRL#、EXWRH#由i386EX状态信号、读写信号组合产生,EXCS#由i386EX高端地址译码产生。ISAD0~15和ISA数据总线相连,ISAB1~11和ISA的地址总线相连,ISAOER#、ISAWRL#、ISAWRH#、ISACS#是由ISA总线的地址、读写、状态组合产生,BUSY驱动i386EX的READY信号,结果表明i386EX和ISA总线间可以有效可靠地交换数据。