2 MEMS陀螺仪信号处理平台系统任务分析
MEMS信号处理系统划分为三个独立的任务:数据采集任务、陀螺信号处理任务和上位机通信任务。各个任务之间通过DSP/BIOS的旗语信号量进行同步和协调。
数据采集任务是负责对MEMS陀螺的信号进行采集。该任务是系统的关键部分,优先级最高,执行时间比其他任务短,因此选用DSP/BIOs的硬件中断模块(HWI)。硬件中断模块(HWI)具有严格的实时性和高优先级,一旦SPIFIFO接收寄存器被外部ADC写满,立即产生相应的中断,CPU立即挂起当前的任务,调用相应的中断服务程序数据采集任务,将FIFO缓冲区内的采样值读入接收数据缓冲区,启动后续采样。这时中断服务程序退出,CPU的控制权返还给先前的任务。
陀螺信号处理任务负责对采集到的数字量信号进行小波除噪和温度补偿等算法处理。在设计时引入了DSP/BIOS的另一种线程类型TSK来实现。任务是独立使用的CPU进程,真正体现了多线程的思想,支持阻塞和优先级抢断。
TSK共有15个优先级,每个任务均有自己独立的堆栈,响应延时比较长,适合对实时性要求不是很高的进程。TSK对象的优先级低于硬件中断(HWI),可根据任务的优先级和当前执行状况调度或抢占任务。陀螺信号处理任务在数据采集任务的空闲周期执行,也就是在采样值写入FIFO缓冲区这段时间执行。当数据采集任务执行完成,发送旗语信号量SEM_PROC陀螺信号的处理任务,对数据缓冲区内的采样值进行处理,如果没有收到旗语信号量SEM_PROC任务自动挂起。
上位机通信任务负责系统与外部通信,将处理完成的数据通过SCI接口传输给上位机。上位机通信任务同样采用DSP/BIOS中的TSK线程实现。上位机通信任务的优先级低于任务陀螺信号处理任务,在数据采集和信号处理的间隙执行。陀螺信号处理任务执行完成,发送旗语信号量SEM-XMIT上位机通信任务,将数据送出。
3 MEMS信号处理平台软件设计方案
MEMS陀螺仪信号处理平台的软件设计包括DSP程序设计、FPGA控制和时序程序设计。DSP编程的主要任务是初始化、管理板上的资源,并实现前端数字信号处理的算法。这里以TI公司提供的功能强大的CCS(Code Composer Studio)为集成开发环境。
系统上电复位后。首先完成DSP自身的初始化,包括配置RAM模块,设置I/O模式、定时器模式、中断等,然后程序进人循环状态,等待中断。
FPGA的软件设计主要包括对A/D的采集控制、数据存储与传输的控制、信号的预处理和同步时序的产生与控制。首先由FPGA把A/D采集来的MEMS陀螺仪的数据存储在FPGA中,然后由FPGA对采集来的信号进行预处理,然后等待DSP的控制信号把预处理的信号送入DSP中进行信号处理和传输。系统软件的设计方案如图3所示。
4 结 语
本文设计的MEMS陀螺信号处理平台,能够完成三轴陀螺信号的采集和处理,并将处理过的MEMS陀螺信号发送给主机,由于采用了TI公司高性能的DSP芯片TMS320VC33,并在软件设计中采用了DSP/BIOS多任务机制,使得该信号处理平台具有体积小,精度高,实时性好等优点,能够满足对MEMS陀螺信号处理,在实际应用中具有一定的参考价值。