APP下载

基于DSP的多通道数据采集系统设计

2020-01-10成晓炜范涛

现代计算机 2019年34期
关键词:外设子程序芯片

成晓炜,范涛

(西安石油大学电子工程学院,西安710065)

0 引言

在石油钻井中,获得精确的钻具姿态信息(井斜角I、方位角A、工具面角T)是实现井下全角度导向钻井的关键因素[1-2]。石油钻井中使用测斜仪对井下钻具姿态参数进行测量,受机械制造、加工,以及传感器安装等工艺水平的影响,实际上测斜仪各轴与理想坐标系各轴并不重合,即存在位置误差。位置误差引起的井斜角测量误差可达30%,严重影响钻具姿态测量的精确性。在如今石油钻井中,井上工作人员需要对井下的工况进行实时的掌握,这就需要对井下钻具的姿态信息,温度等信息进行实时的采集。早期采用单片机对井下各种参数进行数据的采集,但其外设硬件电路设计复杂、数据处理能力不强、运算速度慢,因此并不适合如今的设计[3-4]。

针对以上问题,系统选用TMS320F2812作为核心控制器。这款DSP芯片硬件支持32位定点数快速运算、代码编写简单、精度高、算法移植性好,具备ADC、SPI、SCI等丰富功能外设,可简化硬件电路的设计难度。本系统使用ADI公司生产的模数转换芯片AD7606进行数据的采集,AD7606是一款16位8通道的双极性同步采样SAR ADC,具有片内过压保护功能,可简化信号调理电路,降低成本。

1 硬件结构及引脚功能介绍

1.1 主控芯片TMS320F2812介绍

系统采用TI公司生产的TMS320F2812型DSP为系统主控芯片,其为32位定点微控制处理器,主频高达150MHz,芯片内核采用1.9V直流电源供电,外设引脚采用3.3V直流电源供电,其外设硬件电路主要包括电源供电电路、时钟电路、复位电路、TATG仿真接口电路等,并且具备SPI、SCI、CAN 等总线接口,体积小,性能强,外设集成度高,同时对于不同的工作环境拥有不同温度级别的芯片,可适用于多种控制类工业设备。

1.2 A/D转换芯片

本设计采用16位8通道AD7606,片内集成输入放大器、过压保护电路、二阶模拟抗混叠滤波器、模拟多路复用器、2.5V基准电压源、基准电压缓冲以及高速串行和并行接口。AD7606采用单电源5V供电,可以对±5V和±10V真双极性输入信号,同时所有通道均能以高达200KSPS的吞吐速率采样。AD7606共有64个引脚,除去供电与接地的部分引脚外,

DB0~DB15引脚表示并行数据输出位,用来传输AD转换得到的数据,是ADC与控制器之间进行数据通信的通道。REFIN/REFOUT引脚表示基准电压输入/输出,如果此引脚置高时,将提供2.5V片内基准电压供外部使用;置低时,可以将外部的2.5V基准电压供给AD使用[5]。

1.3 硬件结构设计

系统总体硬件设计如下图所示,主要包括DSP的最小系统和AD采样模块电路。DSP最小系统包括由TPS767D301组成的芯片供电电路、时钟电路、复位电路、JATG仿真接口电路。AD模块主要是将传感器采集到的信号经过数字滤波后传到AD7606进行数据的模数转换,AD采样值为±10V。为提高系统的数据采集精度,系统采用ADR421基准电压芯片为ADC提供基准电压,ADC将采集到的信号通过DB0~DB15引脚与DSP的外部接口XINTF连接进行数据的通信。

图1 系统结构图

2 软件设计

系统软件部分采用模块化编程,系统控制程序主要由主程序、XINTF子程序、定时器中断子程序、AD7606初始化程序等组成。系统主程序如图2所示,主要负责DSP系统的初始化,包括时钟初始化、中断初始化、初始化系统等任务[6]。

图2 系统主程序流程图

XINTF子程序主要完成的是AD7606与DSP芯片之间的数据通信。TMS320F2812的外部接口XINTF采用非复用异步总线,通常用来扩展SRAM、ADC等模块。XINTF接口是DSP2812与外部设备进行通信的重要接口,这些接口与DSP片内的存储空间相互对应,当ADC与DSP通信时,DSP处理器通过对存储空间进行读/写操作,从而控制外部接口,在使用XINTF与AD7606进行通信时,无论是读操作还是写操作,DSP都作为主设备,外部设备作为从设备,ADC不能控制F2812的外部接口信号线,只能读取、判断信号线的状态,来进行数据的传输。

定时器中断子程序用来提供一个中断信号,用来启动ADC模块,通过查阅AD7606的数据手册,配合ADC时序图,中断子程序可以更加快速地进行ADC模块的启动与运行。

ADC初始程序主要功能在于DSP对于ADC芯片的控制,DSP提供控制信号,用来进行ADC的启动、数据传输、时序控制等,其部分程序如下所示:

interrupt void cpu_timer0_isr(void)

SET_ADCLK;//启动转换信号

DELAY_US(1);//给予适当的电平延时

CLR_ADCLK;

DELAY_US(1);

while(AD_BUSY)//等待转换结束

for(i=0;i<8;i++)

DOUT[i]=AD7656_BASIC;//读取 8路 AD通道数据

conv_flg=1;

EALLOW;//确认此中断以从组1接收更多中断

PieCtrlRegs.PIEACK.all=PIEACK_GROUP1;

EDIS;}

3 系统性能测试

为了验证该数据采集系统的可行性,对其进行性能测试,输入信号为Keithley 2280S-32-6高精度测量直流电源给出,测量值由AD采样模块通过数据采集经过数据重建得到,由表1可以看出该数据采集系统的误差值在0.01V以下,而DSP2812内部的12位AD采样模块采样精度在0.1V,可见此数据采集系统的精度要比利用单片机内部采样模块精度提高十倍以上。

表1 AD采样结果测试

4 结语

本文描述了以16位AD采样芯片AD7606和TI公司TMS320F2812型DSP分别为采样芯片和控制芯片的数据采集系统的设计,给出了AD7606以及DSP硬件连接方案,同时提出了软件编程的基本框架。目前该软硬件设计方案已经运用在具体数据采集实验测试当中,8通道的数据采集可以实现井下工况的多种信号同时测量,具有实际的使用和参考作用。

猜你喜欢

外设子程序芯片
芯片测试
多通道采样芯片ADS8556在光伏并网中的应用
浅谈子程序在数控车编程中的应用
子程序在数控车加工槽中的应用探索
西门子840D系统JOG模式下PLC调用并执行NC程序
74HC164芯片的应用
Microchip推出具备双ADC外设的全新器件,扩展其低成本8位PIC®单片机产品线
简化编程与子程序嵌套的应用
贴身呵护 必不可少的PSP外设
外设天地行情