数字信号采集
本文为大家介绍由TMS320F2812和ADS8365构成的多路数据采集存储系统设计。
TMS320F2812是一款TI高性能TMS320C28x系列32位定点DSP处理器,TL2812-EVM是基于TI TMS320F2812而研发的一款高性能DSP开发板,采用核心板+底板方式,尺寸为185mm*135mm,底板采用沉金无铅工艺的两层板设计,它为用户提供了SOM-TL2812核心板的测试平台,用于快速评估核心板的整体性能。
TI主推高性能 TMS320C28x系列TMS320F2812 32位定点微控制单元(MCU),主频高达150MHz;具备I2C、SPI、CAN、PWM等总线接口,适用于各种控制类工业设备;体积小、性能强、便携性高,同时适用于多种手持设备;符合高低温、振动测试,满足工业环境应用。
ADS8365是一种高速、低功耗、6通道同步采样与转换、单+5V供电的模数转换芯片。转换最大采样吞吐率可达5MHz,并带有80dB共模抑制的全插分输入通道以及6个差分采样保持放大器。引脚内部还带有2.5V基准电压和高速并行接口。
ADS8365的数据读出可采用直接地址读方式、FIFO读方式、循环读方式,因此与TMS320F2812的接口至少有3种互连方案。本采集系统选择直接地址读方式,由XA[2:0]作为变换结果寄存器低位地址,当ADS8365的CS引脚为高电平时,其数据总线处于高阻状态,当CS引脚置低电平时并口数据总线上输出当前数据。具体的连接电路如图1所示。
ADS8365可使用单独的外部晶振,或使用TMS320F2812I/O口模拟晶振,本系统使用TMS320F2812EVA的T1PWM来产生ADS8365的CLK时钟输入信号。为了实现六个通道的同步采样,把TMS320F2812的GPIOB14引脚与ADS8365的HOLDA、HOLDB、HOLDC信号相连,控制3个ADC采样/保持模块的同步。EOC连接到TMS320F2812的XINT1。
若要构成12/24等多通道数据采集,可以利用TMS320F2812的低位地址线进行ADS8365的CS扩展,其余信号如CLK和HOLDX可以与上述控制信号线接在一起。在本系统中,由传感器输出的电压信号范围是±5V,而ADS8365芯片的模拟输入端能接收的信号范围是±2.5V,因此在ADS8365前端用功率运放电路实现信号的调理,本文采用OPA227芯片来实现。原理图如图2所示。
图2双极性信号输入电平转换电路原理图OPA227是TI公司生产的高精度、低噪声运算放大器,具有8MHz的带宽,开环增益可达160dB,偏置电压75μV,可应用于信号采集和通信设备中。图2中下面的OPA227是跟随电路,用来提供2.5V的参考电压;上面的OPA227用来实现电平信号的运算。在实际应用中还应在输入端加一个OPA227用来提高输入阻抗,增强系统的抗干扰能力。图中R1、R2分别选择2k和10k温漂较小的精密电阻。
TMS320F2812芯片提供了良好的C语言开发环境,使用C语言缩短了开发周期,降低了编程的复杂性。下面先给出程序流程图,由流程图可以看出程序的执行顺序:首先,上电后由硬件复位ADS8365,初始化TMS320F2812,设置相应的系统主频及与采样有关的高速外设时钟频率;然后配置TMS320F2812与AD转换芯片工作用到的事件管理器的Gpio口;最后初始化中断向量表,将Adc_isr()采集中断服务程序的入口地址放在对应EOC输入引脚XINT的向量地址处,并且配置成由低电平触发进入中断,最后使能系统中断,等待EOC中断信号的到来。
触发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;}
3.2TMS320F2812的初始化
TMS320F2812的初始化包括系统的初始化、GPIO的初始化和外设中断的初始化,分别叙述如下:
(1)TMS320F2812系统的初始化包括看门狗的配置、系统及外设时钟的配置、片内RAM使用的配置等。
(2)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)外设和中断的初始化,配置可屏蔽及不可屏蔽中断,使系统的中断可以找到有效的地址。3.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;
开始系统、GPIO、ADS8365、XINT1初始化ADC_READY中断使能、T1PWM输出进入主循环,启动采样、等待中断结束CHC1_Data[idx]=*ptrCHC1;}4实验结果及波形在ADS8365采样、转换结束后,该芯片的EOC引脚置低,同时使F2812的XINT引脚置低,这样进入中断处理程序,F2812发出指令依次从ADS8365的6个寄存器里读取数据。从图5我们可以清楚看到,从触发ADS8365开始采样到F2812读取数据的完整过程。设计。解决了“无刷双馈电机控制系统”课题中有关物理量同步采样的关键问题。同时该设计方案在电机控制、多轴定位系统、多通道数据采集等场合有着广泛的应用,能满足高速交变电压信号采集的高精度和高实时性要求。
全部0条评论
快来发表一下你的评论吧 !