1.1 数字信号处理器DSP
DSP芯片,又称为数字信号处理器,是一种特别适用于进行实时数字信号处理的微处理器,采用它能满足系统计算量大的要求。它的主要特点是:(1)它内部采用的是程序空间和数据空间分开的哈佛结构,允许同时取指令和取操作数;(2)芯片内多采用分离的总线结构,这样可保证一个极其周期内可以多次访问程序空间和数据空间;(3)采用流水线结构,在程序运行中取指、译码、取操作数和执行阶段是重叠的;(4)芯片内部一般都包括多个处理单元,它们可以在一个指令周期内同时进行运算;(5)DSP数字系统中设置了一些特殊的DSP指令,能更好地满足数字信号处理应用的需要;(6)指令周期短,如TMS320F240 的指令周期可达50ns;(7)硬件配置强,接口功能强,片内具有串行口、主机接口、DMA控制器、锁相环时钟产生器和在片仿真测试访问口等。DSP芯片的这些特点,使其在各个领域得到越来越广泛的应用。
1.2 通用串行总线USB
USB(通用串行总线)协议是一些PC大厂商为了解决日益增加的PC外设与有限的主板插槽之间的矛盾而制定的一种串行通信标准。USB接口是一个快速的、双向的、同步的、低成本的、动态的串行连接接口,支持主机和并发存取外设之间的数据交换。所连的外设通过主机调度和基于令牌的协议共享USB带宽。USB 的主要优点有:(1)速度快;(2)设备配置和安装容易。所有的USB设备支持热拔插,系统对其进行自动配置;(3)能够采用总线供电;(4)易于扩展; (5)使用灵活,USB共有4种传输模式:控制传输、同步传输、中断传输、块传输,以适用不同的设备的需要;(5)容错性强,USB协议规定了对各种可能遇到的错误的处理和恢复机制,保证了数据传输的正确性,同时,对设备的热拔插处理迅速且不影响系统的正常工作;(6)实现成本低,USB对系统与PC的集成进行了优化,适合于开发低成本的外设。由于这些优点,USB的应用范围很广。
下面本文将介绍一个具体的基于DSP和USB技术的数字采集与处理系统给水泵运行状态监测系统。本系统需要对给水泵运行过程中的过程量和机械量进行采集,需要对振动信号进行处理,下面分别介绍系统的工作原理、总体设计、硬件设计和软件设计。
2 系统工作原理和总体设计
给水泵运行状态监测系统主要完成各路机械量和过程量的采集,并对各振动信号进行阶比谱分析,计算振动幅度的平均值,并将采集数据和分析结果上传PC机,为在线检修系统的专家系统提供给水泵的运行状态信息;同时就地简单显示给水泵的状态信息,并提供给水泵振动幅值越限和轴向位移越限报警。系统的特点是计算量大,通信数据量大,而且给水泵运行状态监测仪必须提供实时的状态数据,这就对实时性提出了较高的要求。根据系统的这些特点我们采用DSP(数字信号处理器)+USB(通用串行接口)的方案来满足系统的需求。给水泵状态监测系统由信号调理电路、A/D转换器、DSP处理器、SRAM、LCD、键盘以及基于PLD的接口和逻辑控制电路组成。系统的总体设计框图如图1所示。
3 系统硬件设计
系统硬件部分的主要内容包括DSP最小系统的设计、通信模块的设计、人机接口模块的设计、调理电路的设计和电源模块的设计。
DSP小系统包括复位电路、时钟电路、SRAM接口、Flash memory接口和逻辑控制电路等。这里的DSP控制器选用的是TMS320F240,它具有强大的外设功能,能为基于控制的应用设计提供高性价比的解决方案。
本系统采用了两种通信接口,分别为USB和RS232接口。USB接口用于仪表向PC机上传数据。RS232接口主要用于调试和用于与慢速外设接口,当系统上传的数据不多时也可用于仪表向PC机传输数据,这样可以简化PC机软件的设计。下面分别对这两个接口进行介绍。
3.1 RS232接口
DSP控制器TMS320F240内含有一个全双工的串行接口,通过编程可以很方便的实现RS232串行通信。通信标准采用RS-232C。这里采用 MAX232芯片完成电平转换工作。MAX232芯片是MAXIM公司生产的低功耗、单5V电源供电,双RS232发送/接收器,它具有驱动能力,不需要外加任何驱动电路。采用MAX232的串行通信接口电路如图2所示。
3.2 USB接口
USB具有完全的即插即用特性,不占用中断等系统资源,提供多种数据传输方式以及能达到较高的数据传输速率等特点。使用USB接口可以减少系统的体积,降低系统的功耗,使仪表与系统的接口更加方便。
从技术上说,USB是一个电缆总线协议,用于主机与可访问辅助设备的数据交换。通过一个由主机分配的令牌协议,辅助设备共享USB的带宽。一个完整的USB系统是由USB主机、集线器、连接电缆和USB外设组成。本文研究的给水泵运行状态监测仪属于USB外设。
本文选用的USB通信芯片是PDIUSBD12。它是一款性价比很高的器件,通常用在基于MCU的系统中,能够通过高速通用并行接口与微控制器通信,同时也支持本地的DMA传输。PDIUSBD12与TMS320F240的接口电路如图3所示。
PDIUSBD12和其他常见的接口芯片一样,也是通过向芯片写入控制字来操作的。首先向芯片写入一个字节的命令字,通知芯片按一定的方式处理下面的数据,然后对芯片读写一个或多个字节的数据,这些数据包括的内容可能是地址、数据以及一些设置位。
4 系统软件设计
本系统采用C和汇编混合编程,主程序框架采用C语言编制,关键算法(如FIR、FFT等)用汇编语言实现。
给水泵运行状态监测仪的主要任务是:完成过程量与机械量的采集,滤波,对机械量进行谱分析,将所采集的数据和分析结果上传给PC机,同时,就地简单显示给水泵的运行状态信息等。
我们把系统设计成前后台系统,也可称作为超循环系统。应用程序是一个无限的循环,循环中调用相应的函数来完成相应的操作,这部分可以看成后台行为。中断服务程序处理异步事件,这部分可以看成前台行为。后台也可以叫做任务级,前台也叫中断级。时间相关性很强的关键操作一定是靠中断程序保证的。后台程序完成的功能包括:过程量的采集和滤波,轴振采样周期的确定,并根据采样周期初始化定时器0,FFT变换,将采集的数据和分析后的数据放在发送缓冲区,将待显示的信息写入显示缓冲区,对PC机传下来的命令和数据信息做相应处理。后台程序的流程图如图4所示。
前台程序主要包括3个定时中断和键盘中断服务子程序。定时器0中断,主要用于机械量数据采集和抗混叠滤波;定时器1中断,为RS232串行通信提供发送节拍;定时器2中断,为显示器的刷新提供时钟节拍;键盘中断,完成键盘的扫描和获取键值。以定时器0中断子程序的程序流程图如图5所示。
5 结束语
本文虽以给水泵为例,但并不局限于给水泵,更换信号调理板,对于其他转子机械的运行状态监测同样适用。本系统也可以作为数据采集与处理的一个通用平台,具有广阔的应用前景。