基于DSP和USB技术的数据采集与处理系统
1 引言 采用dsp(数字信号处理器)作为控制器,而采用usb(通用串行总线)和上位机相连接将是数据采集处理系统的一种可能的发展趋势。 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芯片低功耗、单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 结束语 本文虽以给水泵为例,但并不局限于给水泵,更换信号调理板,对于其他转子机械的运行状态监测同样适用。本系统也可以作为数据采集与处理的一个通用平台,具有广阔的应用前景。
|