tms320c图像处理系统(基于TMS320F2812同步数据采集系统的设计)
tms320c图像处理系统(基于TMS320F2812同步数据采集系统的设计)图2 ADS8365和TMS320F2812连接图ADS8365的数据读出可采用直接地址读方式、FIFO读方式、 循环读方式, 因此与 TMS320F2812 的接口至少有 3种互连方案。本采集系统选择直接地址读方式,由 XA[2:0]作为变换结果寄存器低位地址,当ADS8365的CS引脚为高电平时,其数据总线处于高阻状态,当CS引脚置低电平时并口数据总线上输出当前数据。具体的连接电路如图 2所示。1 TMS320F2812芯片介绍图1 ADS8365时序图3 TMS320F2812和ADS8365的接口设计
为了实现高速同步数据采集,本文介绍了一种基于TMS320F2812 DSP芯片与AD转换芯片ADS8365构成的高速、并行高精度数据采集系统。主要内容包括两种芯片功能的介绍、硬件接口电路的设计及相关软件设计等。
电力拖动控制系统中的电压、电流及转速信号采样的准确性和实时性,对控制系统的精度有很大的影响。在“无刷双馈电机控制系统”课题的研究中,采用TI公司的TMS320F2812芯片作为控制器,该芯片的ADC模块只能同时对两路信号并行采样,而在“无刷双馈电机控制系统”中要控制能量的双向流动,即要对整流侧、逆变侧和中间直流环节的多路电压、电流及转速信号进行实时采样,显然直接用F2812芯片的ADC模块无法保证采样的同步性。
为了实现同步采样功能,本文在硬件上采用了带同步信号发生电路的同步采样芯片,即使用美国德州仪器公司推出的ADS8365芯片与TMS320F2812芯片构成采样控制系统。ADS8365有六路高速同步采样通道,用两片即可以满足本系统的要求。
本文在介绍ADS8365芯片和TMS320F2812芯片功能和特点的基础上,详细阐述了一片 ADS8365和TMS320F2812的硬件接口电路和软件编程方法,并对两片ADS8365扩展方法进行了简要的介绍[1]。
同步数据采集系统硬件设计1 TMS320F2812芯片介绍
图1 ADS8365时序图
3 TMS320F2812和ADS8365的接口设计
ADS8365的数据读出可采用直接地址读方式、FIFO读方式、 循环读方式, 因此与 TMS320F2812 的接口至少有 3种互连方案。本采集系统选择直接地址读方式,由 XA[2:0]作为变换结果寄存器低位地址,当ADS8365的CS引脚为高电平时,其数据总线处于高阻状态,当CS引脚置低电平时并口数据总线上输出当前数据。具体的连接电路如图 2所示。
图2 ADS8365和TMS320F2812连接图
ADS8365可使用单独的外部晶振,或使用TMS320F2812 I/O口模拟晶振,本系统使用TMS320F2812 EVA的T1PWM 来产生ADS8365的CLK时钟输入信号。为了实现六个通道的同步采样,把TMS320F2812的GPIOB14引脚与 ADS8365的HOLDA、 HOLDB、 HOLDC信号相连,控制 3 个ADC采样/保持模块的同步。
EOC连接到TMS320F2812 的 XINT1。若要构成 12/ 24 等多通道数据采集,可以利用 TMS320F2812的低位地址线进行 ADS8365的 CS扩展,其余信号如 CLK和 HOLDX可以与上述控制信号线接在一起。
在本系统中,由传感器输出的电压信号范围是 ±5 V,而ADS8365芯片的模拟输入端能接收的信号范围是±2.5 V,因此在ADS8365前端用功率运放电路实现信号的调理,本文采用OPA227芯片来实现。原理图如图 3所示。
图3 双极性信号输入电平转换电路原理图
OPA227是 TI公司生产的高精度、低噪声运算放大器,具有8MHz的带宽,开环增益可达160 dB,偏置电压75μV,可应用于信号采集和通讯设备中。图3中下面的OPA227是跟随电路,用来提供2.5 V的参考电压;上面的OPA227用来实现电平信号的运算。在实际应用中还应在输入端加一个OPA227用来提高输入阻抗,增强系统的抗干扰能力。图中R1、R2分别选择2kΩ和10kΩ温漂较小的精密电阻[3]。
数据采集系统软件设计TMS320F2812芯片提供了良好的C语言开发环境,使用C语言缩短了开发周期,降低了编程的复杂性。下面先给出程序流程图(图4),由流程图可以看出程序的执行顺序:首先,上电后由硬件复位ADS8365,初始化TMS320F2812,设置相应的系统主频及与采样有关的高速外设时钟频率;然后配置TMS320F2812与AD转换芯片工作用到的事件管理器的Gpio口;最后初始化中断向量表,将Adc_isr()采集中断服务程序的入口地址放在对应 EOC输入引脚 XINT的向量地址处,并且配置成由低电平触发进入中断,最后使能系统中断,等待 EOC中断信号的到来。
图4 采样系统程序流程图
1 ADS8365的初始化
触发ADS8365的复位引脚,可以确保读指针指向第一个数据位置。作为TMS320F2812初始化的一部分,由TMS320F2812的GPIOF1引脚提供复位信号给ADS8365的引脚 RESET,当系统时钟稳定后RESET被触发为低电平,从而确保了从ADC输出的数据对应于通道A0、A1、B0、B1、C0、C1的排列。下面为ADS8365的复位参考程序:
void ResetADS8365(void)
{
GpioDataRegs.GPFCLEAR.all = 0x0001; asm (" RPT #200 || NOP");
GpioDataRegs.GPFSET.all = 0x0001;
}
2 TMS320F2812的初始化
TMS320F2812的初始化包括系统的初始化、GPIO的初始化和外设中断的初始化,分别叙述如下:
①TMS320F2812系统的初始化包括看门狗的配置、系统及外设时钟的配置、片内RAM使用的配置等。
②GPIO的初始化,为了方便与ADS8365通信,TMS320F2812把GPIOA、GPIOB和GPIOF的部分引脚配置成通用输入输出口。其中包括由EOC引脚触发的外部中断引脚和ADS8365需要的转换时钟引脚等。参考程序如下:
void InitGpio(void)
{ EALLOW;
GpioMuxRegs.GPAMUX.all=0x0003;
GpioMuxRegs.GPADIR.all=0xFFFF;
GpioMuxRegs.GPEMUX.all=0x0003;
GpioMuxRegs.GPEDIR.all=0x0003;
GpioMuxRegs.GPEQUAL.all=0x0000;
GpioMuxRegs.GPFMUX.all=0x0000;
GpioMuxRegs.GPFDIR.all=0x0005;
EDIS;
}
③外设和中断的初始化,配置可屏蔽及不可屏蔽中断,使系统的中断可以找到有效的地址。
3 信号采样程序
在上述配置结束后,启动T1PWM输出信号给ADS8365的CLK引脚,在确认ADS8365芯片准备好的情况下启动采样信号,程序如下:
void ToggleHOLDx(int channel)
{
GpioDataRegs.GPACLEAR.all = channel;
asm (" RPT #25 || NOP");
GpioDataRegs.GPASET.all = channel;
}
在执行完上述程序后,ADS8365的6路通道同时开始采样,在完成采样后将EOC引脚置低,触发TMS320F2812的外部中断程序,在中断程序中依次读取ADS8365的6个采样信号存储寄存器,并保存到预先指定的位置,等待主程序处理。该段程序如下:
void read_ADD()
{
CHA0_Data[idx] = *ptrCHA0;
CHA1_Data[idx] = *ptrCHA1;
CHB0_Data[idx] = *ptrCHB0;
CHB1_Data[idx] = *ptrCHB1;
CHC0_Data[idx] = *ptrCHC0;
CHC1_Data[idx] = *ptrCHC1;
}
实验结果及波形在ADS8365采样、转换结束后,该芯片的EOC引脚置低,同时使F2812的XINT引脚置低,这样进入中断处理程序,F2812发出指令依次从ADS8365的6个寄存器里读取数据。从图5我们可以清楚看到,从触发ADS8365开始采样到F2812读取数据的完整过程。
图5 ADS8365输出波形
结束语本文以ADS8365模数转换芯片为基础,详细讨论了TMS320F2812和ADS8365的接口原理和程序设计。解决了“无刷双馈电机控制系统”课题中有关物理量同步采样的关键问题。同时该设计方案在电机控制、多轴定位系统、多通道数据采集等场合有着广泛的应用,能满足高速交变电压信号采集的高精度和高实时性要求[4]。
(本文选编自《电气技术》,原文标题为“基于TMS320F2812同步数据采集系统的设计”,作者为詹哲军、张爱玲等。)