嵌入式數據采集系統中的ADS8364驅動(dòng)程序設計
1 引言
數據采集系統的工作原理就是將被測對象(外部世界或現場(chǎng))的各種參量(可以是物理量,也可以是化學(xué)量,生物量)通過(guò)各種傳感元件做適當轉換后,再經(jīng)信號調理、采樣、量化、編碼、傳輸等步驟,最后送到服務(wù)器進(jìn)行數據處理和存儲記錄的過(guò)程。用于數據采集的成套設備稱(chēng)為數據采集系統(Data Acquisition System,DAS)。
數據采集系統一般包括傳感器、放大器、濾波器、A/D采樣轉換電路、微處理器等元件。數據采集系統基本組成示意圖如圖1所示。A/D轉換電路在數據采集系統中起著(zhù)至關(guān)重要的作用,它的轉換精度和工作可靠度直接關(guān)系著(zhù)整個(gè)采集系統的工作性能。由于篇幅有限,本文僅就該數據采集系統中的A/D轉換芯片ADS8364的驅動(dòng)開(kāi)發(fā)過(guò)程加以概述。
圖1 數據采集系統組成示意圖
2 ADS8364的功能簡(jiǎn)介
ADS8364是美國TI公司生產(chǎn)的一種高速、低能耗、6通道同步采樣轉換、單+5V供電、16位高速并行接口的高性能模數轉換芯片。并帶有6個(gè)80dB共模抑制的全差分輸入通道以及6個(gè)4μs連續近似的模數轉換器、6個(gè)差分采樣/保持放大器[1]。 ADS8364的6個(gè)模擬輸入分為3組(A,B和C),每個(gè)輸入端都有一個(gè)ADCs保持信號以用來(lái)保證幾個(gè)輸入通道能同時(shí)進(jìn)行采樣和轉換,因此不同模擬輸入通道信號之間的相位差異得以保存。當3個(gè)保持信號同時(shí)被選通時(shí),6個(gè)ADCs同步轉換,其轉換結果將保存在6個(gè)寄存器中。采樣頻率最高為 250KHz,抗噪性能好。
3 設備驅動(dòng)程序開(kāi)發(fā)的基本原理
設備驅動(dòng)程序是操作系統內核和機器硬件之間的接口,它為應用程序屏蔽了硬件的細節,將應用程序對設備的操作轉化為對相應的設備文件的操作,使應用程序可以象操作普通文件一樣,用處理普通文件的標準系統調用來(lái)打開(kāi)、關(guān)閉和讀寫(xiě)設備。設備驅動(dòng)程序作為內核的一部分,主要完成如下功能:對設備進(jìn)行初始化和釋放;完成硬件與內核的數據交互;完成內核與應用層的數據交互;對可能出現的錯誤進(jìn)行檢測和處理。
在Linux系統中,打開(kāi)的設備在內核內部由設備文件結構標識,內核使用file_operations(文件操作)結構訪(fǎng)問(wèn)驅動(dòng)程序的函數。每個(gè)文件都與自己的函數集相關(guān)聯(lián)(通過(guò)包含在設備中指向file_operations結構的指針實(shí)現),這些操作主要負責系統調用的實(shí)現。用戶(hù)進(jìn)程利用系統調用對設備文件進(jìn)行操作時(shí),系統調用通過(guò)設備的主設備號找到相應的設備驅動(dòng)程序,然后讀取這個(gè)數據結構相應的函數指針,接著(zhù)把控制權交給該函數,這就是 Linux的設備驅動(dòng)程序工作的基本原理。由此可見(jiàn),編寫(xiě)設備驅動(dòng)程序的主要工作就是編寫(xiě)file_operations中的子函數,完成對設備的操作。
為了實(shí)現設備的獨立性,Linux把設備分成三種類(lèi)型:字符設備(character device),塊設備(block device)和網(wǎng)絡(luò )設備(network device)[2]。每類(lèi)設備都有獨特的管理控制方式和不同的驅動(dòng)程序,這樣就可以把控制不同設備的驅動(dòng)程序與操作系統的其它部分分離開(kāi)來(lái),不但便于對不同設備的管理,而且為系統中增加和撤銷(xiāo)某種設備提供了很多方便。在此,我們是把ADS8364看作字符設備來(lái)驅動(dòng)的,其驅動(dòng)程序就是字符設備驅動(dòng)程序。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論