基于ARM9電能質(zhì)量監(jiān)測儀的數(shù)據(jù)采集
2 接口驅(qū)動
設(shè)備驅(qū)動程序的任務(wù)包括自動配置和初始化子程序,負責檢測所要驅(qū)動的硬件設(shè)備是否能正常工作。如果該設(shè)備正常,則對這個設(shè)備及其相關(guān)的設(shè)備驅(qū)動程序需要的軟件狀態(tài)進行初始化。
Linux下的設(shè)備驅(qū)動程序被組織為一組完全不同任務(wù)的函數(shù)的集合。編寫A/D驅(qū)動,主要完成對A/D器件控制寄存器和數(shù)據(jù)寄存器的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,
}
下面介紹其中幾個重要的函數(shù):
(1)adcmaxl324_write函數(shù):調(diào)用該函數(shù),通過雙向數(shù)據(jù)線DATAO~DATA7向MAX1324寫人數(shù)據(jù)OxOOFF,把MAX1324設(shè)置成8通道同時轉(zhuǎn)換的模式;(2)ademax1324_ioctl函數(shù):Ioctl函數(shù)跟蹤信號,啟動A/D轉(zhuǎn)換;(3)adcmax1324_read函數(shù):read函數(shù)把中斷處理函數(shù)中讀到的數(shù)據(jù)發(fā)到用戶程序。
最后在init()中完成初始化工作。包括注冊設(shè)備驅(qū)動程序和申請系統(tǒng)資源。在編寫驅(qū)動程序時通常編寫成模塊的形式,在模塊加載時調(diào)用初始化函數(shù)module_init(),在卸載時調(diào)用卸載模塊函數(shù)module_exit()。
3 結(jié)束語
文中實現(xiàn)了基于ARM9的電能質(zhì)量監(jiān)測儀數(shù)據(jù)采集的設(shè)計。介紹了硬件電路及其相關(guān)軟件,經(jīng)實驗測試,基于MAX1324ECM的上述數(shù)據(jù)采集電路,實測準確度可以達到±0.5%,實驗結(jié)果如表1所示,因此MAX1324ECM完全適用于電能質(zhì)量監(jiān)測中的數(shù)據(jù)采集。
評論