基于S3C2440的能量色散X射線熒光光譜儀
X射線熒光分析是一種快速、準(zhǔn)確而又經(jīng)濟(jì)的多元素分析方法[1]。目前,X射線熒光分析技術(shù)已被廣泛應(yīng)用于地質(zhì)、冶金、化工、材料、石油、醫(yī)療等領(lǐng)域,尤其是能量色散X射線熒光EDXRF(Energy Dispersive X-Ray Fluorescence)光譜儀,由于具有體積小、價(jià)格低廉、自動(dòng)化程度高等優(yōu)點(diǎn),已成為普遍多元素同時(shí)分析的有力手段。
EDXRF光譜儀利用X射線熒光對(duì)于不同元素具有不同能量的特點(diǎn),依靠探測(cè)器實(shí)現(xiàn)對(duì)測(cè)試樣品中元素的定性、定量分析。隨著電子學(xué)技術(shù)、計(jì)算機(jī)科學(xué)技術(shù)以及半導(dǎo)體材料的發(fā)展,特別是嵌入式技術(shù)的應(yīng)用,為X射線熒光光譜儀智能化、小型化及高性能提供了必要的硬件基礎(chǔ)。本文提出了基于S3C2440嵌入式處理器的便攜式EDXRF光譜儀的設(shè)計(jì)方案,用于分析檢測(cè)合金、礦石中的多種元素。
1 方案設(shè)計(jì)
便攜式EDXRF光譜儀采用X射線管作為激發(fā)源,Si-PIN探測(cè)器作為X射線探測(cè)器。X射線打到測(cè)試樣品后,X射線熒光光量子通過探測(cè)器轉(zhuǎn)變?yōu)橐欢ㄐ螤詈蛿?shù)量的電脈沖。該電脈沖經(jīng)前置放大處理后,變?yōu)榭蓽y(cè)電脈沖信號(hào)。本方案采用S3C2440高性能的嵌入式處理器,外擴(kuò)高速A/D轉(zhuǎn)換芯片AD7676,由S3C2440硬件定時(shí)和AD7676組成數(shù)字脈沖分析器,將可測(cè)電脈沖信號(hào)變成數(shù)字信號(hào),實(shí)現(xiàn)EDXRF光譜的采集。
S3C2440以ARM920T為內(nèi)核,支持Windows CE操作系統(tǒng)。本系統(tǒng)基于Windows CE系統(tǒng)上的AD7676驅(qū)動(dòng)程序,在應(yīng)用程序?qū)涌刂艫D7676的工作,實(shí)現(xiàn)了EDXRF光譜的采集、存儲(chǔ)、分析。其整體方案如圖1所示。
2 硬件設(shè)計(jì)
2.1 AD7676
AD7676是美國(guó)模擬器件公司生產(chǎn)的16位高速(500 kS/s)SAR ADC[2],內(nèi)置16位高速采樣ADC、差分輸入結(jié)構(gòu)、內(nèi)部轉(zhuǎn)換時(shí)鐘、糾錯(cuò)電路以及串行和并行系統(tǒng)接口。
AD7676的采樣數(shù)據(jù)讀取有兩種方式:轉(zhuǎn)換完成后讀取和采樣中讀取。圖2所示為采樣中讀取方式時(shí)序,當(dāng)AD7676轉(zhuǎn)換結(jié)束后,忙信號(hào)變?yōu)榈碗娖?,保持片選信號(hào)為低,使得轉(zhuǎn)換及讀信號(hào)由高變低,此時(shí)數(shù)據(jù)總線上出現(xiàn)上次轉(zhuǎn)換后的數(shù)據(jù)。采樣中讀取方式時(shí),在轉(zhuǎn)換完成后,可同時(shí)讀取數(shù)據(jù)及啟動(dòng)下一次采樣,消耗時(shí)間少,適用于本系統(tǒng)。
2.2 數(shù)字脈沖分析器
數(shù)字脈沖分析器由信號(hào)處理電路(信號(hào)調(diào)理、放大)、高速AD轉(zhuǎn)換器(AD7676)及S3C2440處理器組成,圖3所示為系統(tǒng)電路框圖。
X射線熒光光量子通過SI-PIN探測(cè)器轉(zhuǎn)變?yōu)殡娒}沖,經(jīng)調(diào)理、前置放大處理后變?yōu)榭蓽y(cè)電脈沖信號(hào)傳給AD7676采樣處理。為了保證采樣的正確性,采用基準(zhǔn)電壓芯片為AD7676提供基準(zhǔn)電壓,同時(shí)為了防止電源串入的干擾,采用專用的DC-DC隔離電源使得模擬部分電源與數(shù)字處理部分電源隔離。S3C2440處理器與AD7676之間的數(shù)據(jù)總線采用數(shù)據(jù)緩沖器SN74LVC16245驅(qū)動(dòng)。
3 基于Windows CE的AD7676驅(qū)動(dòng)程序開發(fā)
由圖3可知,AD7676被直接映射到S3C2440系統(tǒng)內(nèi)存,所以其驅(qū)動(dòng)程序采用單片式流接口設(shè)備驅(qū)動(dòng)模型。同時(shí)當(dāng)AD7676轉(zhuǎn)換結(jié)束后,采用中斷方式通知S3C2440讀取轉(zhuǎn)換結(jié)果,并啟動(dòng)下一次轉(zhuǎn)換。AD7676驅(qū)動(dòng)程序由內(nèi)核部分和流接口函數(shù)部分組成。內(nèi)核部分完成中斷的處理,包括中斷的使能、禁止、喚醒中斷服務(wù)線程等工作;流接口函數(shù)完成AD7676的打開、關(guān)閉、初始化以及數(shù)據(jù)的讀、寫操作。
3.1 內(nèi)核部分
系統(tǒng)硬件電路采用中斷方式對(duì)AD7676進(jìn)行數(shù)據(jù)的讀取,以提高S3C2440的使用效率。Windows CE對(duì)中斷的響應(yīng)過程如圖4所示[3]。
參照時(shí)序圖,修改Windows CE中與中斷相關(guān)的內(nèi)核文件,完成物理中斷到邏輯中斷的映射。主要工作如下:(1)修改oalintr.h文件,完成中斷向量的注冊(cè);(2)修改cfw.c文件,完成中斷允許、中斷禁止和中斷完成操作。經(jīng)過修改Windows CE內(nèi)核文件,完成物理中斷Eint0到邏輯中斷號(hào)SYSINTR_ADC的映射,就可以利用Windows CE提供的API函數(shù)完成物理中斷Eint0的操作。
3.2 流接口函數(shù)
Windows CE流接口驅(qū)動(dòng)程序是動(dòng)態(tài)鏈接庫(kù),由設(shè)備管理器統(tǒng)一加載、管理和卸載。在Windows CE中,流接口函數(shù)一共有10個(gè),所開發(fā)的驅(qū)動(dòng)程序采用了其中的7個(gè)接口函數(shù):AD7676_Deinit、AD7676_Init、AD7676_Open、AD7676_IoControl、AD7676 _Read、AD7676 _Write、AD7676_Close。
流接口函數(shù)需要完成兩個(gè)主要方面的工作:AD7676數(shù)據(jù)結(jié)構(gòu)的建立、流接口函數(shù)代碼的實(shí)現(xiàn)。其中AD7676初始化、中斷服務(wù)程序最為重要。
(1)PADC_CONTEXT AD7676_Init(LPCTSTR pContext,LPCVOID lpvBusContext)
AD7676_Init接口函數(shù)在驅(qū)動(dòng)程序加載時(shí),由設(shè)備管理器調(diào)用,主要完成硬件初始化,如映射設(shè)備物理內(nèi)存、配置相關(guān)寄存器、創(chuàng)建中斷事件、中斷服務(wù)線程等工作。
AD7676_Init接口函數(shù)按照?qǐng)D5所示調(diào)用順序完成驅(qū)動(dòng)的初始化工作。調(diào)用成功后,將返回AD7676數(shù)據(jù)結(jié)構(gòu)的首地址[4]。
(2)中斷服務(wù)線程AD7676_ISR
AD7676_ISR中斷服務(wù)線程是中斷處理的核心部分,負(fù)責(zé)將緩沖區(qū)中的數(shù)據(jù)讀至系統(tǒng)內(nèi)存[3]。
DWORD AD7676_ISR(PVOID pContext){
PHW_INDEP_INFO pHead=(PHW_INDEP_INFO)
pContext;
ULONG WaitReturn;
While(!Done()){
WaitReturn=WaitForSingleObject((PHW_INDEP_
INFO)pContext,INFINITE);
if(WaitReturn==WAIT_OBJECT_0){
……//讀取AD7676轉(zhuǎn)換后的數(shù)據(jù)
InterruptDone(pHead->dwIntID);
}
}
return 0;
}
4 定性分析應(yīng)用實(shí)例
利用此方案設(shè)計(jì)的便攜式EDXRF光譜儀對(duì)某被測(cè)樣品進(jìn)行了定性分析。圖6所示為該被測(cè)樣品經(jīng)過光滑、扣背景后的譜線,圖中標(biāo)出了Ni的Kα線與Kβ線、Au的Lα線與Lβ線。
表1為對(duì)圖6譜線經(jīng)尋峰、能量刻度后,計(jì)算獲得的被測(cè)樣品中元素已知能量值與測(cè)量值的對(duì)比。
從表1元素已知能量值與測(cè)量值之間的相對(duì)誤差可以看出,使用此方案獲得的譜線經(jīng)過光滑、扣背景、尋峰、能量刻度后,完全能達(dá)到定性分析的要求。
評(píng)論