基于ARM9電能質(zhì)量監(jiān)測(cè)儀的數(shù)據(jù)采集
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要: 介紹了基于ARM9電能質(zhì)量監(jiān)測(cè)儀數(shù)據(jù)采集系統(tǒng)設(shè)計(jì),討論了由MAX1324構(gòu)成的8通道14位同步采樣,及其與核心板ARM9-S3C2410的接口,實(shí)現(xiàn)了8路差動(dòng)模入的瞬時(shí)采樣。該數(shù)據(jù)采集系統(tǒng)較好地滿足了電能質(zhì)量監(jiān)測(cè)儀對(duì)數(shù)據(jù)采集的特殊要求。
關(guān)鍵詞: MAX1324;ARM9;同步采樣;數(shù)據(jù)采集
為了保證電力系統(tǒng)安全、可靠、高效地運(yùn)行,高質(zhì)量的電能供給是一項(xiàng)重要的工作。為此,利用便攜式電能質(zhì)量監(jiān)測(cè)儀對(duì)電網(wǎng)電能質(zhì)量參數(shù)進(jìn)行準(zhǔn)確地測(cè)量。ARM9的主頻高、速度快、內(nèi)存容易擴(kuò)展,可以運(yùn)行嵌入式Linux操作系統(tǒng),為應(yīng)用程序的設(shè)計(jì)提供了方便的條件,其開發(fā)板所用的處理器是ARM9-S3C2410。基于ARM9-S3C2410的電能質(zhì)量監(jiān)測(cè)儀的整體結(jié)構(gòu)框圖,如圖1所示。
由圖1可知,該系統(tǒng)的硬件除了已經(jīng)擴(kuò)充了存儲(chǔ)器的ARM9-S3C2410A核心板外,還包括外圍信號(hào)調(diào)理、鍵盤及顯示等電路,以MAX1324組成的A/D和信號(hào)調(diào)理電路,是該數(shù)據(jù)采集的重要內(nèi)容,文中主要介紹這一部分的硬件和相關(guān)軟件設(shè)計(jì)。
1 數(shù)據(jù)采集的硬件設(shè)計(jì)
開發(fā)板ST2410的硬件資源豐富,提供了40腳外部擴(kuò)展接口,通過(guò)該接口,可以方便地?cái)U(kuò)展信號(hào)采集等外圍電路。信號(hào)調(diào)理部分電路的具體結(jié)構(gòu),如圖2所示。
1.1 信號(hào)調(diào)理電路
模擬信號(hào)輸入前端電路,是利用電壓互感器(PT)和電流互感器(CT),對(duì)被采樣電壓和電流進(jìn)行隔離和電平轉(zhuǎn)換。一次互感先將電力電網(wǎng)的高壓、大電流轉(zhuǎn)換成標(biāo)準(zhǔn)的交流100 V和5 A,二次互感器再將其轉(zhuǎn)換成A/D芯片MAX1324輸入所要求的-10~+10 V電平,從而得到電力系統(tǒng)公共連接點(diǎn)的全部原始數(shù)據(jù)。
抗混疊濾波器的作用,是將輸入信號(hào)中的高頻分量濾除,以防止被測(cè)信號(hào)的高頻干擾與有用的低頻信號(hào)發(fā)生混疊,影響測(cè)量精度??够殳B濾波采用壓控電壓源二階低通濾波器,如圖3所示??紤]到本裝置需要監(jiān)測(cè)1~50次諧波,要求在50~50×50 Hz頻率范圍內(nèi)的幅頻特性曲線越平坦越好。
1.2 A/D轉(zhuǎn)換
因?yàn)樵跍y(cè)量電網(wǎng)的三相不平衡參數(shù)時(shí),要用到中性線的電壓和電流,雖然從理論上,可以通過(guò)相電壓和相電流算出中性線的電壓和電流值,但是,測(cè)量值應(yīng)該更加接近物理現(xiàn)實(shí)。所以,最好同時(shí)測(cè)量電網(wǎng)中用戶公共連接點(diǎn)的三相電壓、三相電流和中性線的電壓與電流,共計(jì)8路模入信號(hào)。多路信號(hào)的同步采樣可以有效克服因通道轉(zhuǎn)換而產(chǎn)生的相差問(wèn)題,所以A/D應(yīng)該選用8路同步采樣芯片。美信公司的MAX1320和MAX1324都是適合上述設(shè)計(jì)要求的專用芯片,MAX1324的模入電壓范圍為±10 V,比MAX1320芯片的輸入電壓范圍寬。在同樣干擾和噪聲條件下,A/D轉(zhuǎn)換的相對(duì)精度會(huì)高一些,所以采用MAX1324,它內(nèi)部集成了8個(gè)獨(dú)立的采樣保持器和8通道的多路開關(guān),容易實(shí)現(xiàn)8路模擬量的瞬時(shí)采集,其轉(zhuǎn)換結(jié)果以補(bǔ)碼的形式按順序輸出。
對(duì)于一個(gè)已經(jīng)給定轉(zhuǎn)換位數(shù)的ADC,它對(duì)信號(hào)所能離散數(shù)據(jù)位的電平值是確知的,14位MAX125提供214級(jí)的離散電平為2×10 V/214≈1.22 mV,相對(duì)分辨率可達(dá)±0.025%。在國(guó)家諧波測(cè)量標(biāo)準(zhǔn)中,對(duì)于規(guī)定的畸變率,電流的測(cè)量精度要求相對(duì)高一些,考慮到各種情況,實(shí)踐亦證明采用14位的ADC是完全可以滿足諧波測(cè)量的設(shè)計(jì)要求的。
電能質(zhì)量監(jiān)測(cè)儀的ARM處理器芯片S3C2410A內(nèi)部還帶有8通道1O位的A/Dc。根據(jù)上述分析可知,10位A/D難以滿足諧波監(jiān)測(cè)儀對(duì)數(shù)據(jù)采集的要求,而且該A/DC也不具備同步采樣功能。然而在測(cè)量電網(wǎng)基波的頻率時(shí),國(guó)家標(biāo)準(zhǔn)要求對(duì)工頻的測(cè)量精度是50±0.01 Hz,這意味著在一個(gè)周期內(nèi),要采集50÷0.0l=5 000個(gè)點(diǎn)以上,所以A/D轉(zhuǎn)換時(shí)間在20 ms/5 000=4μs以下。頻率測(cè)量對(duì)幅值的精度要求并不高,只要能夠正常判斷正負(fù)值即可。ARM芯片內(nèi)10位A/D的轉(zhuǎn)換速度最高可達(dá)500 ksps(2μs),所以,用以測(cè)量電網(wǎng)的基波頻率正合適。這樣,MAX1324和ARM內(nèi)的A/DC分別用作諧波和頻率測(cè)量就各盡所能了。
1.3 MAX1324與處理器S3C2410的硬件接口
MAX1l324與處理器S3C2410的接口如圖4所示,MAX1324的模擬供電電壓是5 V,而MAX1324允許的數(shù)字供電電壓范圍為2.7~5.25 V,圖中是3.3 V。這樣,可以不用電平轉(zhuǎn)換而直接與S3C2410的數(shù)字I/O接口相連。
在進(jìn)行數(shù)據(jù)采集時(shí),操作過(guò)程分為以下3步:(1)首先要將MAX1324的工作方式設(shè)置為8個(gè)通道的瞬時(shí)采樣,引腳ALLON接高電平,拉低和時(shí),向數(shù)據(jù)線D0~D7寫入全“1”,這樣8個(gè)通道就能都被選中,實(shí)現(xiàn)同步ADC;(2)拉低ARM的GPAl2端子,使CONVST引腳為低電平,輸入信號(hào)在采樣保持器達(dá)到穩(wěn)定的電平后,再由CONVST的上升沿開始啟動(dòng)A/D,這里的多通道轉(zhuǎn)換是按通道號(hào)由低到高的順序進(jìn)行,當(dāng)最后一個(gè)通道的轉(zhuǎn)換結(jié)束后,所有通道轉(zhuǎn)換結(jié)束信號(hào)跳變?yōu)榈碗娖?,轉(zhuǎn)換結(jié)果先儲(chǔ)存于片內(nèi)對(duì)應(yīng)的14位×8的SRAM中;(3)讀取模數(shù)轉(zhuǎn)換結(jié)果數(shù)據(jù),其方式有兩種:一種是查詢方式,MAX1324的引腳接到S3C2410的一個(gè)I/0引腳上,S3C2410啟動(dòng)A/D轉(zhuǎn)換后,不斷地查詢這個(gè)I/0引腳是否為低電平,以判斷轉(zhuǎn)換是否結(jié)束,然后再依次讀取轉(zhuǎn)換后的數(shù)字信號(hào);另一種是中斷方式,MAX1324的引腳直接接到S3C2410的一個(gè)外部中斷引腳上,一旦轉(zhuǎn)換結(jié)束,則向S3C2410申請(qǐng)中斷,S3C2410就會(huì)進(jìn)入中斷服務(wù)程序,依次讀取MAX1324轉(zhuǎn)換后的數(shù)據(jù)。為了提高CPU的使用效率,采用中斷方式,圖4中MAX1324的引腳接到S3C2410的外部中斷EINT3的引腳上。當(dāng)A/D數(shù)據(jù)轉(zhuǎn)換結(jié)束后,就會(huì)向S3C2410的EINT3發(fā)出低電平,當(dāng)EINT3引腳為低電平時(shí),就會(huì)先后向MAX1324的引腳發(fā)出8個(gè)讀脈沖,控制選通引腳分時(shí)讀取MAX1324轉(zhuǎn)換后的8個(gè)通道ADC數(shù)據(jù)。
2 接口驅(qū)動(dòng)
設(shè)備驅(qū)動(dòng)程序的任務(wù)包括自動(dòng)配置和初始化子程序,負(fù)責(zé)檢測(cè)所要驅(qū)動(dòng)的硬件設(shè)備是否能正常工作。如果該設(shè)備正常,則對(duì)這個(gè)設(shè)備及其相關(guān)的設(shè)備驅(qū)動(dòng)程序需要的軟件狀態(tài)進(jìn)行初始化。
Linux下的設(shè)備驅(qū)動(dòng)程序被組織為一組完全不同任務(wù)的函數(shù)的集合。編寫A/D驅(qū)動(dòng),主要完成對(duì)A/D器件控制寄存器和數(shù)據(jù)寄存器的open0,closeO,read0,writeO等的操作,并在file_operations中注冊(cè)。
static struct file_operations adcmax1324_fops={
open:ademaxl324_open,
ioctl:adcmaxl324_ioctl,
read:adcmaxl324_read,
write:ademaxl324_write,
release:adcmaxl324_release,
}
下面介紹其中幾個(gè)重要的函數(shù):
(1)adcmaxl324_write函數(shù):調(diào)用該函數(shù),通過(guò)雙向數(shù)據(jù)線DATAO~DATA7向MAX1324寫人數(shù)據(jù)OxOOFF,把MAX1324設(shè)置成8通道同時(shí)轉(zhuǎn)換的模式;(2)ademax1324_ioctl函數(shù):Ioctl函數(shù)跟蹤信號(hào),啟動(dòng)A/D轉(zhuǎn)換;(3)adcmax1324_read函數(shù):read函數(shù)把中斷處理函數(shù)中讀到的數(shù)據(jù)發(fā)到用戶程序。
最后在init()中完成初始化工作。包括注冊(cè)設(shè)備驅(qū)動(dòng)程序和申請(qǐng)系統(tǒng)資源。在編寫驅(qū)動(dòng)程序時(shí)通常編寫成模塊的形式,在模塊加載時(shí)調(diào)用初始化函數(shù)module_init(),在卸載時(shí)調(diào)用卸載模塊函數(shù)module_exit()。
3 結(jié)束語(yǔ)
文中實(shí)現(xiàn)了基于ARM9的電能質(zhì)量監(jiān)測(cè)儀數(shù)據(jù)采集的設(shè)計(jì)。介紹了硬件電路及其相關(guān)軟件,經(jīng)實(shí)驗(yàn)測(cè)試,基于MAX1324ECM的上述數(shù)據(jù)采集電路,實(shí)測(cè)準(zhǔn)確度可以達(dá)到±0.5%,實(shí)驗(yàn)結(jié)果如表1所示,因此MAX1324ECM完全適用于電能質(zhì)量監(jiān)測(cè)中的數(shù)據(jù)采集。