便攜式數(shù)據(jù)采集系統(tǒng)的設計
1 引言
數(shù)據(jù)采集在石油探采領域應用廣泛.幾乎涵蓋石油探采的各個環(huán)節(jié)。傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)由于可操作性差、用戶界面不夠友好、人機交互困難等缺點已不能適應現(xiàn)在的需求。隨著現(xiàn)代電子技術和嵌人式技術的發(fā)展,基于嵌入式技術的數(shù)據(jù)采集系統(tǒng)以其強大的功能、友好的界面、簡易的操作受到用戶的青睞。這里介紹一種以S3e2410為核心基于嵌入式Linux的數(shù)據(jù)采集系統(tǒng)的設計方案,其中采用多通道高速A/D轉換器ADS8364。
2 器件選型
2.1 ADS8364簡介
ADS8364是高速、低功耗、6通道同時采樣和轉換的16位A/D轉換器。采用+5 V工作電壓。3.3 V和5 V可選的接口電壓;80 dB共模抑制比的全差分輸入通道,內部+2.5 V參考電壓;6個模擬輸入分3組,每個輸入端有一個A/D轉換器和保持信號用于保證多通道同時采樣和轉換;差分輸入范圍為-VREF~+VREF;其6個16 bit AID轉換器同時工作,3個保持信號(HOLDA、HOLDB、HOLDC)啟動指定通道轉換。
當這3個保持信號同時有效時,6通道的A/D轉換器同時轉換,并將轉換結果保存在6個寄存器,每個讀操作,ADS8364輸出16位數(shù)據(jù),地址選通信號(A0、Al、A2)從具體的寄存器中讀取數(shù)據(jù)。地址/模式(ADD)信號選擇單通道、單周期或FIFO模式。正常工作時,ADS8364的REFOUT與REFIN連接可提供+2.5 V的參考電壓。
ADS8364本身產生的噪聲很小,但為獲得更好性能,輸入信號的噪聲峰值必須小于50μV。當采用5 MHz外部時鐘時,ADS8364.轉換時間為3.2μs,其采集時間為0.8μs。為獲得最大輸出數(shù)據(jù)率,可在下一個轉換期間讀取數(shù)據(jù)。
2.2 S3c2410簡介
S3e2410是三星半導體公司生產的用于移動終端的高性能SoC處理器,它也是一款低成本、低功耗、小體積、高性能的16/32 bit的RISC微控制器。該處理器基于ARM920T內核,主要面向移動設備終端。該系統(tǒng)設計利用S3e2410的低功耗、高性能等特點實現(xiàn)一種鋰電池供電的手持式,PDA功能的數(shù)據(jù)采集系統(tǒng)。
3 系統(tǒng)的硬件設計
3.1 ADS8364與S3c2410的接口設計
ADS8364通過向DVCC提供3.3 V或5 V電壓,其接口電壓為3.3 V或5 V,這樣可以實現(xiàn)ADS8364和5 V總線接口的5I系列單片機,以及3.3 V總線接口的DSP和ARM等接口連接。
該系統(tǒng)采用處理器S3e24lO與ADS8364接口無需附加任何的接口電壓轉換器,只需把ADS8364的接口電壓設置成3.3 V,可將兩者總線直接連接。圖1為S3e2410與ADS8364的接口電路。由圖1可看出,S3c2410與ADS8364的接口電路無需任何附加硬件邏輯電路,S3e2410的GPF4引腳與ADS8364的EOC引腳相連,將GPF4設置為中斷模式,用于接收ADS8364轉換結束中斷。將GPB5~GPB7設置為輸出模式,分別與ADS8364的HOLDA~HOLDC相連,用于選中3組A/D轉換器(每組2個)啟動轉換,S3C2410的BANK2片選信號nGCS2與ADS8364的CS相連,將A/D轉換器作為外部物理地址映射到S3C2410相應內核空間,位于外部I/O接口BANK2地址空間0x10000000~0x18000000。只要對BANK2進行寫操作,并將GPB5~GPB7分別設置000~111中某個數(shù)值就可以產生ADS8364的啟動相應通道轉換的信號。S3c2410的A2~A4分別連接ADS8364的AO~A2,將ADS8364的6個讀數(shù)通道映射到Linux操作系統(tǒng)的地址為0x10000000、0x10000004、Oxl0000008、Oxl000000C、Oxl0000010、Oxl0000014。
[!--empirenews.page--]
3.2 ADS8364的前端調理電路
由于輸入的模擬信號變化范圍較大,通常不在器件所要求范圍內。在高精度、高要求的采樣電路中,為使輸入的模擬信號與采樣所需信號相匹配,通常在采樣電路前加入前端調理電路,以縮放和平移所采樣的信號,從而使調理后的信號適合轉換器的模擬輸入要求。
ADS8364的模擬輸入可采用單端和差分輸入。單端輸入時,一IN端輸入的是共模電壓(CV),而+IN的輸入則圍繞共模電壓擺動,輸入范圍為CV+VREF和CV—VREF,VREF的大小決定共模電壓的變化。差分輸入時,輸入幅值在一IN和+IN之間變化。每個輸入端的幅值分別是CV+1/2VREF~CV—1/2VREF,差分輸入電壓范圍為+VREF和VREF,所以VREF也決定輸入電壓范圍。圖2為ADS8364的前端調理電路,其中R1和R2的取值用來改變OPA227輸入的電壓范圍。
4 系統(tǒng)軟件設計
本系統(tǒng)采用S3e2410為控制器,采用Linux為嵌入式系統(tǒng)的操作系統(tǒng),在設計系統(tǒng)軟件時,需分別設計應用和驅動程序。其中,應用程序采用跨平臺的GUI設計工具Qt設計軟件的界面,利用ADS8364的驅動程序提供的接口函數(shù)完成數(shù)據(jù)采集,包括選擇啟動ADS8364的3對通道中的某對通道進行轉換、讀取選定通道的數(shù)據(jù)、顯示各種參數(shù)的數(shù)值。圖3為應用程序界面。并給出運行在嵌入式操作系統(tǒng)中的顯示效果。該嵌入式系統(tǒng)采用3.4英寸的觸摸屏作為顯示器,可直接采用觸摸方式操作軟件,軟件操作更人性化;驅動程序可提供操作硬件設備ADS8364的各種函數(shù)。該驅動程序是整個軟件設計的關鍵點和難點。
[!--empirenews.page--]
Linux設備驅動程序實現(xiàn)的功能包括驅動程序的注冊與注銷、設備的打開與釋放、設備的讀寫操作、設備的控制操作等。當用戶需要通過設備文件與硬件通信時,必須通過調用open、read、write、close、ioctl等系統(tǒng)函數(shù)實現(xiàn),這些函數(shù)都由file_operations結構體的函數(shù)指針成員給出入口地址,file_operations結構體的每一個成員名都對應一個系統(tǒng)函數(shù)嗍。用戶進程利用系統(tǒng)調用在對設備文件進行諸如read、write操作時,系統(tǒng)調用通過設備文件的主設備號找到相應的設備驅動程序,然后讀取該數(shù)據(jù)結構相應的函數(shù)指針,接著把控制權交給該函數(shù)。因此,編寫設備驅動程序就是編寫file_operations數(shù)據(jù)結構的各個函數(shù)指針對應的各個函數(shù),隨著Linux設備驅動程序的復雜程度越來越高,file operations結構體的成員數(shù)越來越多,但并不是每種設備的驅動程序都需要利用file_operations中的全部功能,大多數(shù)驅動程序只是利用其中一部分,對于驅動程序中無需提供的功能,只需將相應位的數(shù)值設為NULL。本系統(tǒng)將ADS8364作為字符型設備設計驅動程序,對于字符設備來說,file_operations結構體中要提供的主要入口有:打開設備文件open()、釋放設備文件release()、讀取A/D轉換的數(shù)據(jù)read()、啟動A/D轉換和選取A/D轉換的讀數(shù)通道號write()、A/D轉換參數(shù)快速設置ioctl()。
結合ADS8364與S3c24lO的接口電路,設計驅動程序時,采用中斷方式或者查詢方式讀取轉換數(shù)據(jù)。采用查詢方式在驅動程序中需將通用輸入輸出引腳GPF4設置成輸入模式,在應用程序中反復查詢GPF4的輸入狀態(tài),當查詢到低電平時表明A/D轉換器完成一次轉換,此時可調用驅動程序中的read()函數(shù)讀取轉換結果;采用中斷方式需在驅動程序中將GPF4設置中斷方式,將中斷觸發(fā)方式設置下降沿觸發(fā),ADS8364產生的EOC信號觸發(fā)Linux系統(tǒng)的外中斷EINT4,應用程序只需打開ADS8364所對應的設備文件,并采用write()函數(shù)啟動相應通道開始轉換,然后由驅動程序中的中斷服務函數(shù)將數(shù)據(jù)存放到一個全局變量中,應用程序通過read()函數(shù)讀取數(shù)據(jù),因此,利用中斷方式采集數(shù)據(jù)速度更高、讀數(shù)控制更簡單。圖4為采用中斷方式的程序流程。
5 測試結果
該系統(tǒng)已應用于某油田的井口多參數(shù)采集裝置,前端分別接壓力、流量、流速、溫度等傳感器,用來測量采油井井口的多種參數(shù)。經測試,該系統(tǒng)與傳統(tǒng)的基于單片機的多參數(shù)測量裝置相比,具有界面美觀,易操作,精度高,可方便利用存儲卡或U盤存儲重要設置參數(shù)、系統(tǒng)運行狀態(tài)的數(shù)據(jù)和測量數(shù)據(jù),便于使用者管理和維修等優(yōu)點。表1為該系統(tǒng)設計所測量值與實際值的對比情況。
從表1看出,該系統(tǒng)的測量誤差很小,其中所測量的多個電壓點,相對誤差都小于O.08%,這樣的精度可滿足數(shù)據(jù)采集應用需求。
6 結束語
本文提出的基于嵌入式Linux技術的便攜式數(shù)據(jù)采集系統(tǒng),與傳統(tǒng)的單片機或DSP技術實現(xiàn)的數(shù)據(jù)采集系統(tǒng)相比較,具有功耗低、體積小、用戶操作界面友好、采集精度高、便于擴展升級等優(yōu)點。ARM的片上資源豐富,Linux操作系統(tǒng)的功能強大,該系統(tǒng)通過外接不同傳感器可實現(xiàn)多種參數(shù)采集,利用系統(tǒng)的豐富GPIO接口編程設計多個外部設備控制動作,完成多通道PWM輸出。該系統(tǒng)在石油鉆采、工廠自動化等領域具著廣泛的應用前景。