基于ARM9電能質量監測儀的數據采集
2 接口驅動
設備驅動程序的任務包括自動配置和初始化子程序,負責檢測所要驅動的硬件設備是否能正常工作。如果該設備正常,則對這個設備及其相關的設備驅動程序需要的軟件狀態進行初始化。
Linux下的設備驅動程序被組織為一組完全不同任務的函數的集合。編寫A/D驅動,主要完成對A/D器件控制寄存器和數據寄存器的open0,closeO,read0,writeO等的操作,并在file_operations中注冊。
static struct file_operations adcmax1324_fops={
open:ademaxl324_open,
ioctl:adcmaxl324_ioctl,
read:adcmaxl324_read,
write:ademaxl324_write,
release:adcmaxl324_release,
}
下面介紹其中幾個重要的函數:
(1)adcmaxl324_write函數:調用該函數,通過雙向數據線DATAO~DATA7向MAX1324寫人數據OxOOFF,把MAX1324設置成8通道同時轉換的模式;(2)ademax1324_ioctl函數:Ioctl函數跟蹤信號,啟動A/D轉換;(3)adcmax1324_read函數:read函數把中斷處理函數中讀到的數據發到用戶程序。
最后在init()中完成初始化工作。包括注冊設備驅動程序和申請系統資源。在編寫驅動程序時通常編寫成模塊的形式,在模塊加載時調用初始化函數module_init(),在卸載時調用卸載模塊函數module_exit()。
3 結束語
文中實現了基于ARM9的電能質量監測儀數據采集的設計。介紹了硬件電路及其相關軟件,經實驗測試,基于MAX1324ECM的上述數據采集電路,實測準確度可以達到±0.5%,實驗結果如表1所示,因此MAX1324ECM完全適用于電能質量監測中的數據采集。
評論