ADS8364的读(RD)信号端也是有源低电平信号。当CS为低时,在读信号(RD)的下降沿,ADS8364中寄存器的内容将被更新。这意味着在每个读序列之前,RD信号必须被触发,这样才能更新输出缓冲器。通过TMS320F2812的中断子程序将ADS8364的RD引脚置低可以保存输入的数据,之后可再将RD引脚置高。
2 软件设计
在实际工作中,智能节点将采集到的数据或频谱值发送到上位机进行存贮、处理。上位机通过CAN接口与智能节点通信。
智能节点的程序是在TI提供的开发工具Code Composer Studio上用C语言开发。在开发过程中,使用了TI公司提供的C281×C/C++头文件库。该头文件库利用结构体和联合体的形式对F2812的各个寄存器进行了定义,用户可以通过C语言直接对处理器内部的寄存器进行访问。
由于MS320F2812没有独立的程序存储空间和数据存储空间,是统一编址的,因此用户首先要根据需要通过配置链接命令文件(.cmd文件)对存储空问进行划分。
为了实现数据的FFT变换,开发过程中还使用了TI公司提供的FFT函数库。FFT函数库提供了32位复数FFT变换(CFFT32)和实数FFT变换(RFFT32)两种模块,可以进行128、256、512和1024点的复数和实数FFT变换。需要注意的是变换中所使用的数据是Qx格式,因此对变换后的结果需要进行格式转换才能得到真实数值。
智能节点的主程序流程为:加电后,程序先初始化,进入主循环后就不断进行数据采集和阈值判断,如有收到上位机命令(CAN接口接收中断)就转入中断处理程序,根据上位机的不同命令选择不同的处理方式。如采集到的数据超出阈值,优先向上位机发送报警信息。
3 结束语
本文设计的智能节点已在多个监测和故障诊断系统中得到应用,实践证明该模块工作可靠,能满足工程中分布式数据采集与监测需要。