基于DSP和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 结束语
本文虽以给水泵为例,但并不局限于给水泵,更换信号调理板,对于其他转子机械的运行状态监测同样适用。本系统也可以作为数据采集与处理的一个通用平台,具有广阔的应用前景。
- Linux系统下USB摄像头驱动程序开发(04-25)
- 基于uClinux嵌入式系统的汽车黑匣子的设计(07-08)
- 基于WinCE操作系统的通用USB数控键盘设计(08-05)
- 基于WinCE的ARM视频监控系统(11-14)
- 基于LabVIEW的USB实时数据采集处理系统的实现(03-26)
- 基于DSP和USB的高速数据采集与处理系统设计(05-01)