电子大神的日记本,供应链专家的功夫茶盘,在这里记录、分享与共鸣。

登录以开始

用SoC的DMA方式记录井下钻具的振动

用SoC的DMA方式记录井下钻具的振动

 

引言

从上个世纪九十年代起,电子技术在钻井井下得到应用。但井下钻具的振动会给很多传感器带来不利影响,特别是对测量井下钻头姿态的惯性导航传感器影响巨大,在随钻振动环境中,如果对信号不作处理,根本就不能测量出正确的井斜角和方位角,也就无法实现井眼轨迹随钻控制的要求。本文介绍应用SoC芯片中的DMA技术对振动的高速采集和存储功能的实现方法,并给出了钻井环境中测试的结果。

方法的提出

传统的数据采集方法采用CPU直接控制的方式进行数据采集,数据传送需要经过CPU的中转才能存入存储器,传送速度慢且采集速率受到CPU的限制,极大影响了系统的采样频率,不能满足对振动信号高速采集的要求。而在DMA传送方式下,数据传送不经过CPU,由DMA控制器来实现内存和外设之间数据的直接快速传送。在XTCS的测控系统中,CPU采用的SoC芯片中集成有DMA,将其与其它器件协同工作就可以实现采集与存储的同时进行,达到高速采集信号的目的,得到高保真的井下振动信号。

系统介绍

该采集系统以C8051F060 SoC为核心,C8051F060内部集成有ADC和DMA。另外,以大容量存储芯片K9F2808作为数据存储器。系统结构如图1所示。.

点击开大图

图1 信号采集系统结构图

该系统应用于井下相关信号的检测装置。由于通过压力与振动传感器所采集的压力和振动信号比较微弱,故还需放大电路对信号进行调理放大。传感器的输出均为模拟信号,采集数据时会受到噪声的干扰,为了消除噪声并提高电路的共模抑制比和输入阻抗,该采集放大电路使用了前置输入缓冲器三运放结构。由于SoC内的ADC0只能采集正信号,因而在经过调理放大电路后设有偏置电路,将-5V ~ +5V的电压转换为0V~+2.5V,以利于信号的采集。

CPU控制多路选择开关进行信号的采集,然后通过ADC转换,在DMA的传送方式下,采集的数据直接写入存储器K9F2808中,在DMA存储数据的同时,ADC也一直进行采集。经软件测试,即采用SoC内集成的定时器2记录采集一页512个字节所需时间是1.277ms,而向片外存储器K9F2808写一页数据需要0.722ms。ADC采集一页的时间小于DMA向片外写一页数据的时间,因而可实现数据采集与存储的同时进行,而不会出现数据覆盖丢失现象,实现快速准确的数据采集。

硬件部分

C8051F060单片机与51系列单片机内核兼容,其内部集成有两个16位SAR(逐次比较)ADC和一个DMA功能模块。片内有4352个字节的数据存储器、64KB 闪存和64KB的数据存储器接口,可以进行系统编程。两个SAR ADC的精度为16位,可作为两个单端或一个差分转换器。若采用DMA直接将数据存储到RAM中,就不再需要额外的软件开销。

K9F2808UOC存储器是NAND结构的超大容量数据存储器件,在MP3、U盘、数码相机和PDA中有广泛的应用。其电源电压为1.7V~3.6V,体积小,功耗低,按页进行读写,按块擦除,通过I/O口分时复用作为命令/地址/数据,端口支持实时双向输入输出。将闪存的各控制端口与SoC的P3口连接,通用I/O口与SoC的P7口连接,通过控制SoC口线的输出,可实现对FLASH存储器的读、写、擦除操作。图2为芯片的接口电路图。

点击开大图

图1 信号采集系统结构图

该系统应用于井下相关信号的检测装置。由于通过压力与振动传感器所采集的压力和振动信号比较微弱,故还需放大电路对信号进行调理放大。传感器的输出均为模拟信号,采集数据时会受到噪声的干扰,为了消除噪声并提高电路的共模抑制比和输入阻抗,该采集放大电路使用了前置输入缓冲器三运放结构。由于SoC内的ADC0只能采集正信号,因而在经过调理放大电路后设有偏置电路,将-5V ~ +5V的电压转换为0V~+2.5V,以利于信号的采集。

CPU控制多路选择开关进行信号的采集,然后通过ADC转换,在DMA的传送方式下,采集的数据直接写入存储器K9F2808中,在DMA存储数据的同时,ADC也一直进行采集。经软件测试,即采用SoC内集成的定时器2记录采集一页512个字节所需时间是1.277ms,而向片外存储器K9F2808写一页数据需要0.722ms。ADC采集一页的时间小于DMA向片外写一页数据的时间,因而可实现数据采集与存储的同时进行,而不会出现数据覆盖丢失现象,实现快速准确的数据采集。

硬件部分

C8051F060单片机与51系列单片机内核兼容,其内部集成有两个16位SAR(逐次比较)ADC和一个DMA功能模块。片内有4352个字节的数据存储器、64KB 闪存和64KB的数据存储器接口,可以进行系统编程。两个SAR ADC的精度为16位,可作为两个单端或一个差分转换器。若采用DMA直接将数据存储到RAM中,就不再需要额外的软件开销。

K9F2808UOC存储器是NAND结构的超大容量数据存储器件,在MP3、U盘、数码相机和PDA中有广泛的应用。其电源电压为1.7V~3.6V,体积小,功耗低,按页进行读写,按块擦除,通过I/O口分时复用作为命令/地址/数据,端口支持实时双向输入输出。将闪存的各控制端口与SoC的P3口连接,通用I/O口与SoC的P7口连接,通过控制SoC口线的输出,可实现对FLASH存储器的读、写、擦除操作。图2为芯片的接口电路图。

点击开大图

图3 下位机主程序流程图

这里,晶振初始化主要完成对外部振荡器使用的配置;端口初始化完成对端口p0~p7的初始化配置;串口初始化完成对定时计数器T0和T1的配置及对波特率的设定;ADC0初始化对ADC0进行配置;DMA0初始化主要完成对DMA0的配置,设置外部数据存储器开始值,ADC0开启模式等;定时器3初始化主要完成对重装载值的设定,激发ADC0进行采集;片外存储器K9F2808的擦除程序完成对K9F2808内数据的擦除。

性能测试与室内实验

硬软件调试结束后,我们把测试电路和传感器送到石油仪器仪表质量检验中心的标准振动台上,在(10g,1000Hz)、(25g,100Hz)、 (25g,200Hz)、(25g,1000Hz)条件下对测试系统进行标定,证明对振动幅度的测量精度为1%,振动频率的测量精度为5‰,这样的精度可以满足导向钻井系统对振动测量的要求。

参考文献:

  1. 周静,付鑫生.利用敏感井底钻具振动传递地面信息的方法[J] . 石油学报,2005.2

  2. 童长飞. C8051F系列单片机开发与C语言编程[M]. 北京:北京航空航天大学出版社,2005

  3. C8051F060X Data sheet

  4. K9F2808(16)Q(U)OC datasheet

博主
EDN_001
EDN_001's Blog
EDN_001
点击跳转