微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于S3C2440的能量色散X射线荧光光谱仪

基于S3C2440的能量色散X射线荧光光谱仪

时间:12-20 来源:互联网 点击:

X射线荧光分析是一种快速、准确而又经济的多元素分析方法[1]。目前,X射线荧光分析技术已被广泛应用于地质、冶金、化工、材料、石油、医疗等领域,尤其是能量色散X射线荧光EDXRF(Energy Dispersive X-Ray Fluorescence)光谱仪,由于具有体积小、价格低廉、自动化程度高等优点,已成为普遍多元素同时分析的有力手段。

EDXRF光谱仪利用X射线荧光对于不同元素具有不同能量的特点,依靠探测器实现对测试样品中元素的定性、定量分析。随着电子学技术、计算机科学技术以及半导体材料的发展,特别是嵌入式技术的应用,为X射线荧光光谱仪智能化、小型化及高性能提供了必要的硬件基础。本文提出了基于S3C2440嵌入式处理器的便携式EDXRF光谱仪的设计方案,用于分析检测合金、矿石中的多种元素。

1 方案设计

便携式EDXRF光谱仪采用X射线管作为激发源,Si-PIN探测器作为X射线探测器。X射线打到测试样品后,X射线荧光光量子通过探测器转变为一定形状和数量的电脉冲。该电脉冲经前置放大处理后,变为可测电脉冲信号。本方案采用S3C2440高性能的嵌入式处理器,外扩高速A/D转换芯片AD7676,由S3C2440硬件定时和AD7676组成数字脉冲分析器,将可测电脉冲信号变成数字信号,实现EDXRF光谱的采集。

S3C2440以ARM920T为内核,支持Windows CE操作系统。本系统基于Windows CE系统上的AD7676驱动程序,在应用程序层控制AD7676的工作,实现了EDXRF光谱的采集、存储、分析。其整体方案如图1所示。

2 硬件设计

2.1 AD7676

AD7676是美国模拟器件公司生产的16位高速(500 kS/s)SAR ADC[2],内置16位高速采样ADC、差分输入结构、内部转换时钟、纠错电路以及串行和并行系统接口。

AD7676的采样数据读取有两种方式:转换完成后读取和采样中读取。图2所示为采样中读取方式时序,当AD7676转换结束后,忙信号变为低电平,保持片选信号为低,使得转换及读信号由高变低,此时数据总线上出现上次转换后的数据。采样中读取方式时,在转换完成后,可同时读取数据及启动下一次采样,消耗时间少,适用于本系统。

2.2 数字脉冲分析器

数字脉冲分析器由信号处理电路(信号调理、放大)、高速AD转换器(AD7676)及S3C2440处理器组成,图3所示为系统电路框图。

X射线荧光光量子通过SI-PIN探测器转变为电脉冲,经调理、前置放大处理后变为可测电脉冲信号传给AD7676采样处理。为了保证采样的正确性,采用基准电压芯片为AD7676提供基准电压,同时为了防止电源串入的干扰,采用专用的DC-DC隔离电源使得模拟部分电源与数字处理部分电源隔离。S3C2440处理器与AD7676之间的数据总线采用数据缓冲器SN74LVC16245驱动。

3 基于Windows CE的AD7676驱动程序开发

由图3可知,AD7676被直接映射到S3C2440系统内存,所以其驱动程序采用单片式流接口设备驱动模型。同时当AD7676转换结束后,采用中断方式通知S3C2440读取转换结果,并启动下一次转换。AD7676驱动程序由内核部分和流接口函数部分组成。内核部分完成中断的处理,包括中断的使能、禁止、唤醒中断服务线程等工作;流接口函数完成AD7676的打开、关闭、初始化以及数据的读、写操作。

3.1 内核部分

系统硬件电路采用中断方式对AD7676进行数据的读取,以提高S3C2440的使用效率。Windows CE对中断的响应过程如图4所示[3]。

参照时序图,修改Windows CE中与中断相关的内核文件,完成物理中断到逻辑中断的映射。主要工作如下:(1)修改oalintr.h文件,完成中断向量的注册;(2)修改cfw.c文件,完成中断允许、中断禁止和中断完成操作。经过修改Windows CE内核文件,完成物理中断Eint0到逻辑中断号SYSINTR_ADC的映射,就可以利用Windows CE提供的API函数完成物理中断Eint0的操作。

3.2 流接口函数

Windows CE流接口驱动程序是动态链接库,由设备管理器统一加载、管理和卸载。在Windows CE中,流接口函数一共有10个,所开发的驱动程序采用了其中的7个接口函数:AD7676_Deinit、AD7676_Init、AD7676_Open、AD7676_IoControl、AD7676 _Read、AD7676 _Write、AD7676_Close。

流接口函数需要完成两个主要方面的工作:AD7676数据结构的建立、流接口函数代码的实现。其中AD7676初始化、中断服务程序最为重要。

(1)PADC_CONTEXT AD7676_Init(LPCTSTR pContext,LPCVOID lpvBusContext)
AD7676_Init接口函数在驱动程序加载时,由设备管理器调用,主要完成硬件初始化,如映射设备物理内存、配置相关寄存器、创建中断事件、中断服务线程等工作。

AD7676_Init接口函数按照图5所示调用顺序完成驱动的初始化工作。调用成功

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top