基于HPI接口的双CPU水中目标探测平台设计
自动目标识别系统ATR(Automatic Target Recognition)的基本功能是对目标进行探测、识别及分类[1],而水中目标探测平台是一种特殊的自动目标识别系统。
水中ATR平台一般需要对信号进行连续采集并且实时处理, 以获取目标的特征信息,从而进行目标识别和参数估计。由于水中ATR平台工作环境的特殊性,要求整个硬件系统具有极低的功耗。以往的水中ATR平台一般采用ADC+DSP(Digital Signal Processor)+FPGA(Field Programmable Gates Array)构架[2]来实现目标的检测与识别。FPGA主要负责地址译码和数据缓存,这种设计结构简化了DSP软件设计任务。但是由于FPGA工作电流一般是几十毫安,导致系统功耗较大。为了克服传统的基于单CPU的探测平台功耗高、控制复杂等缺点,本系统采用了MCU+DSP的双CPU的结构。该结构的关键在于快速高效地实现两者之间通信。传统的基于串行多通道缓冲串口McBSP(Multichannel Buffered Serial Ports)的通信模式通信带宽利用率低,数据传输速率低,成为整个系统实时处理的瓶颈。为此,本文设计了基于HPI (Host Port Interface)接口的MSP430与DSP主从式双CPU目标探测系统,使ATR平台满足系统低功耗和实时性的需求。
1 HPI接口
目前比较常用的多CPU之间连接方式主要有两种:直接互连和间接互连。直接互连主要通过SPI串口、HPI并口实现互连;间接互连主要通过FPGA、CPLD等可编程逻辑器件、双端口RAM、FIFO存储器等实现互连。
在ATR平台中,主要考虑使用直接互连方法。一方面,没有额外增加器件,降低了系统功耗;另一方面,大大简化了多CPU之间的硬件连接。SPI接口方式连接简单,但数据传输的理论传输速度只能达到12.5 MB/s,在一些实时性要求比较高的场合,数据传输成为整个信号处理能力提高的瓶颈,致使多CPU之间通信效率下降。而DSP的HPI接口提供了一个16 bit的并行数据接口,理论传输速度达到50 MB/s,远高于串行接口传输速度。因此,选用HPI接口可以很容易地实现大容量数据的快速传输。通过HPI,主机可以访问DSP内部的双访问数据存储器(DARAM),此时,DSP相当于主机的一个外设。
2 系统设计
根据工程设计要求,水中ATR平台必须具备低功耗特点,因此选择德州仪器公司的超低功耗微控制器MSP430F149作为系统的主CPU。其拥有5种低功耗模式,在低功耗模式LPM3下,只需要2.0 μA供电电流,采用3.3 V供电情况下,全速运行也只需要420 μA的电流。它还拥有多种时钟模式,通过程序控制,可以灵活地选择不同的时钟来降低系统功耗[4]。选择TI DSP家族中功耗优化产品TMS320C55X系列中的TMS320VC5509A作为从CPU,其最高主频为200 MHz,功耗仅为C54的1/6。可以根据所需时钟不同灵活选择1.2 V、1.35 V和1.6 V内核电压[5],电压越高,DSP最高主频越大,功耗越大,在实际的设计过程中,根据算法实时性需求,灵活选择内核电压以达到降低系统功耗的目的。
MSP430F149主要负责数据采集,DSP电源管理,以及一些运算量比较小的算法的实现(如系统中的预警检测算法)TMS320VC5509A主要实现运算量较大的目标识别及参数估计算法。双CPU之间通信采用HPI接口,实现主从机之间的无缝连接。具体硬件结构框图如图1所示。
系统的基本工作流程是信号经过模拟预处理之后,在单片机MSP430的控制下,利用其内部的ADC对经调理后的信号进行采样。将采集到的数据做预警检测,当预警发现可疑目标时启动DSP,MSP430将需要分析的数据传输到DSP中,进行高阶谱分析、小波变换等参数估计及特征提取算法,最后把结果传回MSP430,再由单片机控制其他电路工作。
2.1 电源模块
本模块主要是由双输出电源调整芯片TPS73HD301和外围器件构成。具体硬件连接如图2所示。
THP73HD301输出3.3 V和1.2 V两路直流电源,其使能引脚接入到MSP430的IO口,可以方便地实现DSP电源的控制,从而决定DSP的工作与否。只有在需要进行参数估计及特征提取等运算量大的运算时才启动DSP。这样的电源设计模式可以有效地控制系统功耗。因为系统的功耗主要集中在DSP上,而MSP430的功耗极低。
2.2 数据采集
系统数据采集主要由MSP430内部的12 bit ADC12完成,其最高采样率达200 KS/s;具有多种转换模式,可以通过软件灵活选择;依据系统采样要求,对ADC12内部寄存器进行配置。配置的内容主要包括采样选择通道、参考电压、采样时钟、采样模式、采样保持时间等。根据采样时序要求,需要配置的寄存器有ADC12CTL0、ADC12CTL1、ADC12MCTLx。本系统中选择单通道重复采样模式,采样触发源选择Timer_A.OUT1,采样频率完全由Timer_A来决定,在ADC12的中断服务程序中读取采样结果。只有需要进行数据搬移时才中断MSP430的CPU,CPU上电工作,这种"Sleep/Wake"工作体制使得功耗较大的CPU工作时间大大减少,从而降低了系统功耗。
此外,HPI传输数据时,ADC数据存储采用"乒乓操作",在RAM中开辟一个缓冲区,当该缓冲区半满时,读数据指针指向整个缓冲区开始,写数据指针指向另外一半缓冲区开始。这样的设计保证数据高效、快速地传输到DSP中。
2.3 信号处理模块
数字信号处理的核心是TI公司的低功耗16 bit定点DSP-TMS320VC5509A,其拥有一个增强型主机接口(HPI),可以与主处理器(如PC、DSP、ARM、51系列、MSP430系列单片机)构成主从构架处理器,增强系统的灵活性和可操作性。
信号处理模块的主要作用就是对采集到的数据作进一步的分析,以便更加可靠地探测到目标。信号处理算法主要包括有限带宽声源级估计、高阶谱分析中的双谱分析、小波分析等。此外,在搭建好硬件DSP平台上编写相应的驱动程序如(与MSP430通信的HPI接口程序、I2C模式的Bootloader程序)。程序的开发均采用模块化编程,以便于后续资源的利用。
在本系统中,为了进一步降低系统功耗,在编写信号处理模块程序时,采用"Sleep/Wake"工作体制,当数据需要实时处理时,系统各个模块均处于工作状态,此时功耗达到最大值。数据处理完毕后系统进入低功耗或者DSP掉电模式,此时系统进入微功耗状态,功耗达到最低值;微功耗状态和工作状态之间的切换由系统内部中断源产生。双CPU通信就是基于此机制,由HPI中断源唤醒DSP,DSP开始工作,MSP430进入低功耗模式。DSP结束数据处理之后,中断源唤醒MSP430,MSP430开始工作,DSP进入低功耗模式,这种交替的Sleep-Wake-Sleep模式使MSP430和DSP交替工作,DSP工作时间大大减少,有效地降低了系统功耗。延长了水中ATR平台的工作时间。