基于DSP的数据采集系统开发与实现
现代工业生产中,生产规模不断扩大,朝着大型化、高速化、自动化和连续化的方向发展。因此对机械设备性能的要求也越来越高。很多大型石油、化工、石化、电力、钢铁等部门都采用了单机、满负荷、连续性的生产操作方式,其中的大型旋转机械就成为了现代化大规模生产中的关键设备。一旦出现停机故障,将导致全厂的停产,其经济损失是十分巨大的。同时还有可能招致重大的伤亡事故。由此,大型旋转机械的在线状态监测和故障诊断技术便应运而生。而如何获得大量而广泛的状态量(振动、力、位移、噪声、温度、压力和流量等)是其中的关键。本文介绍的基于TMS320F2812的多功能同步数据采集卡,利用卡上的DSP控制芯片不仅可以实现多种数据的采集,还可以对所采集的数据进行实时的信号处理,大大地提升了整个系统的性能。
1 TMS320F2812体系结构
TMS320F2812是TMS320C28X系列芯片中性能最好的一种,最高频率为150MHz,处理速度可达150MIPS,指令周期为6.67ns。
同TMS320C2000TM平台中前代产品相比,F2812的程序总线包括22位的地址总线和32位的数据总线,数据总线包括32位的地址总线和32位的数据总线。较之C24X/C240X的16位地址总线,F2812大幅提高了可寻址范围。同时,32位的数据总线可以实现单周期的32位指令。其片内的32×32位MAC具有处理64位数的能力,可用于处理高精度的数字运算,完全可以替代其它更贵的浮点数处理器。在振动信号的频谱分析中,这种优势就更为明显了。在中断响应方面,F2812自动保存上下文的功能加快了中断响应速度,用户可以在更短的时限内完成更多的异步事件,这在多路信号采集系统中大幅提高了系统的实时性。
在外设方面,F2812也有不少新特点。除了保留前代产品的4个16位通用定时器以外,F2812又增加了3个32位的定时器。可更方便地实现大范围转轴转速信号的采集,以及提供更为灵活的数据采样模式。F2812内部拥一个12位的增强型A/D转换器,其A/D转换速率高达80ns。而其中的两个独立的8路模拟开关给用户提供了同时采集不同种类信号的实现方法。在片内存储器方面,F2812包括128K字的FLASHMEMORY、1K字的0TPMEMORY和18K字的片上RAM和4K字的BOOT ROM。丰富的片上存储资源可满足用户处理大量数据的需求。在安全方面,F2812采用128位的密码来保护用户的程序。
2 数据采集卡的硬件实现
数据采集卡的硬件实现利用F2182的众多新特性,数据采集卡可以处理:16路异步或同步模拟信号、16路数字信号、6路转速信号。采用PCI接口与上位机相连。其系统结构如图1所示。
2.1 转速信号采集的实现
根据工业现场中旋转机械的实际情况,数据采集卡采集的转速范围一般为30~18000r/min(周期范围为33ms~2s)。如此大的转速范围对定时器的计数脉冲和计数位数都提出了要求。若定时器计数脉冲过大,则分辨率降低;但是如果计数脉冲太小,则需要计数器的位数足够大。
C2000TM系列的前代产品内置16位定时器很难满足要求,一般常用多个定时器级连来达到要求,而F2812新增的3个32位定时器则弥补了前系列DSP产品的不足。
F2812的事件管理模块EV共有6个捕获单元,每个单元的施密特触发器可以捕获到相关引脚的跳变。可监测的跳变可以是上升沿、下降沿或者两者都监测。利用捕获单元的中断功能和定时器就可以很容易地实现对转速周期的测量,并且为转轴的振动测试提供采样的基频。其测量流程如图2。
2.2 模拟信号采集的实现
TMS320F2812芯片中集成了一个伪双12位A/D转换器模块。该模块内部实际上只有一个A/D转换器,在内部逻辑的控制下它可以很快的速度连续采样转换两次,相当于两个A/D转换器。用户可以同时启动这两个A/D转换器进行采样,也可以启动某个A/D转换器,让它连续采样两次。
同传统A/D相比,嵌入式A/D具有如下的特点:在A/D模块的硬件资源配置好了之后,用户可以用软件指令随时启动A/D采样,并获得A/D转换的结果。同传统A/D不同的是,采集功能单元的硬件资源配置还有一部分是通过软件完成的。
利用F2812内部增强型A/D可以在一块采集卡上实现对同步、异步模拟信号的采集和A/D转换。其示意图如图4所示。
在F2812片内有两个独立的8路模拟开关,既可以单独使用也能级连使用。如图4所示同步信号送入ADCINA模块,其它信号直接送入ADCINB模块,然后由DSP内部的12位A/D转换模块进行A/D转换。用户还可以根据实际应用对外部采样电路进行调整,以满足不同的要求。
运用TMS320F2812片内集成的A/D转换器进行数据采集。程序首先对A/D进行初始化,当A/D非常忙时,启动16个A/D通道进行转换,主程序进入死循环;当A/D正常转换完毕后,进入中断服务子程序。中断服务程序将16个A/D转换结果读入数组al[16]中,并再次启动16个A/D通道进行转换,如此循环往复。程序设计使用C++语言编写源程序。A/D初始化子程序框图如图6所示。中断服务子程序流程如图7所示。
2.3 数字信号采集的实现
数字信号可以利用F2812的数字I/0直接获得。F2812共有多达56个I/0共享引脚。多数I/0既可以作为普通的I/0引脚,也可以作为其它功能引脚。通过对I/0控制寄存器编程可以指定这些共享引脚是I/0还是其它功能引脚。当引脚为I/0时,读出I/0模块的数据和方向寄存器相应位的结果就可以得到所测数字信号的值了。如果读出的结果为0,则相应引脚为低电平;结果为1,则相应引脚为高电平。
3 数据采集卡的软件模块
数据采集卡上的软件主要分为系统配置、转速采集、模拟信号采集转换、数字信号采集、数据处理和上位通信等模块。在实际应用中可以根据需求进行配置。
4 结束语
该开发平台运用于石油化工领域内的烟气轮机振动故障检测中流量、温度、压力、密封差压、各点振动位移、催化剂含尘量等参数的模拟数据采集,通过分析可以看出因为TMS320F2812芯片内包含了A/D和SRAM,SRAM代替了价格昂贵的FIFO,所以这种采集方法可以大大提高采样速度和精度,并且可以降低硬件设计的成本和时间,为下一步基于DSP实时数字信号处理和分析设计奠定了良好的基础。
|