|
基于ARM9電能質量監測儀的數據采集
黃 磊 ,楊維翰 ,許 昆
為了保證電力系統安全、可靠、高效地運行,高質量的電能供給是一項重要的工作。為此,利用便攜式電能質量監測儀對電網電能質量參數進行準確地測量。ARM9的主頻高、速度快、內存容易擴展,可以運行嵌入式Linux操作系統,為應用程序的設計提供了方便的條件,其開發板所用的處理器是ARM9一S3C2410。基于ARM9一S3C2410的電能質量監測儀的整體結構框圖,如圖1所示。

由圖1可知,該系統的硬件除了已經擴充了存儲器的ARM9一$3C2410A核心板外,還包括外圍信號調理、鍵盤及顯示等電路,以MAX1324組成的A/D和信號調理電路,是該數據采集的重要內容,文中主要介紹這一部分的硬件和相關軟件設計。
1 數據采集的硬件設計 開發板ST2410的硬件資源豐富,提供了40腳外部擴展接口,通過該接口,可以方便地擴展信號采集等外圍電路。信號調理部分電路的具體結構,如圖2所示。

1.1 信號調理電路 模擬信號輸入前端電路,是利用電壓互感器(PT)和電流互感器(CT),對被采樣電壓和電流進行隔離和電平轉換。一次互感先將電力電網的高壓、大電流轉換成標準的交流100 V和5 A,二次互感器再將其轉換成A/D芯片MAX1324輸入所要求的一10~+lO V電平,從而得到電力系統公共連接點的全部原始數據。
抗混疊濾波器的作用,是將輸入信號中的高頻分量濾除,以防止被測信號的高頻干擾與有用的低頻信號發生混疊,影響測量精度。抗混疊濾波采用壓控電壓源二階低通濾波器,如圖3所示。考慮到本裝置需要監測1—50次諧波,要求在50~50×50 Hz頻率范圍內的幅頻特性曲線越平坦越好。

1.2 AD轉換 因為在測量電網的三相不平衡參數時,要用到中性線的電壓和電流,雖然從理論上,可以通過相電壓和相電流算出中性線的電壓和電流值,但是,測量值應該更加接近物理現實。所以,最好同時測量電網中用戶公共連接點的三相電壓、三相電流和中性線的電壓與電流,共計8路模人信號。多路信號的同步采樣可以有效克服因通道轉換而產生的相差問題,所以A/D應該選用8路同步采樣芯片。美信公司的MAX1320和MAX1324都是適合上述設計要求的專用芯片,MAX1324的模人電壓范圍為±10 V, 比MAX1320芯片的輸入電壓范圍寬。在同樣干擾和噪聲條件下,A/D轉換的相對精度會高一些,所以采用MAX1324,它內部集成了8個獨立的采樣保持器和8通道的多路開關,容易實現8路模擬量的瞬時采集,其轉換結果以補碼的形式按順序輸出。
對于一個已經給定轉換位數的ADC,它對信號所能離散數據位的電平值是確知的,l4位MAX125提供2M級的離散電平為2 X 10 V/2¨ 1.22 mV,相對分辨率可達±0.025% 。在國家諧波測量標準中,對于規定的畸變率,電流的測量精度要求相對高一些,考慮到各種情況,實踐亦證明采用14位的ADC是完全可以滿足諧波測量的設計要求的。
電能質量監測儀的ARM處理器芯片$3C2410A內部還帶有8通道l0位的A/DC。根據上述分析可知,10位A/D難以滿足諧波監測儀對數據采集的要求,而且該A/DC也不具備同步采樣功能。然而在測量電網基波的頻率時,國家標準要求對工頻的測量精度是50±0.01 Hz,這意味著在一個周期內,要采集50÷0.01=5 000個點以上,所以A/D轉換時間在20 ms/5 000=4 s以下。頻率測量對幅值的精度要求并不高,只要能夠正常判斷正負值即可。ARM芯片內10位A/D的轉換速度最高可達500 ksps(2 p,s),所以,用以測量電網的基波頻率正合適 J。這樣,MAX1324和ARM內的A/DC分別用作諧波和頻率測量就各盡所能了。
1.3 M 324與處理器S3C2410的硬件接口 MAX1324與處理器$3C2410的接口如圖4所示,MAX1324的模擬供電電壓是5 V,而MAX1324允許的數字供電電壓范圍為2.7~5.25 V,圖中是3.3 V。這樣,可以不用電平轉換而直接與$3C2410的數字I/,O接口相連。

在進行數據采集時,操作過程分為以下3步: (1)首先要將MAX1324的工作方式設置為8個通道的瞬時采樣,引腳ALLON接高電平,拉低cS和WR時,向數據線 ~D 寫入全“1”,這樣8個通道就能都被選中, 實現同步ADC;
(2)拉低ARM 的GPA12端子,使CONVST引腳為低電平,輸入信號在采樣保持器達到穩定的電平后,再由CONVST的上升沿開始啟動A/D,這里的多通道轉換是按通道號由低到高的順序進行,當最后一個通道的轉換結束后,所有通道轉換結束信號EOLC跳變為低電平,轉換結果先儲存于片內對應的14位×8的SRAM中;
(3)讀取模數轉換結果數據,其方式有兩種:一種是查詢方式,MAX1324的EOLC引腳接到$3C2410的一個I/0引腳上,$3C2410啟動A/D轉換后,不斷地查詢這個I/0引腳是否為低電平,以判斷轉換是否結束,然后再依次讀取轉換后的數字信號;另一種是中斷方式,MAX1324的EOLC引腳直接接到$3C2410的一個外部中斷引腳上,一旦轉換結束,則向$3C2410申請中斷,S3C2410就會進人中斷服務程序,依次讀取MAX1324轉換后的數據。為了提高CPU的使用效率,采用中斷方式, 圖4中MAX1324的EOLC引腳接到$3C2410的外部中斷EINT3的引腳上。當A/D數據轉換結束后,EOLC就會向$3C2410的EINT3發出低電平, 當EINT3引腳為低電平時,就會先后向MAX1324的RD引腳發出8個讀脈沖,控制選通CS引腳分時讀取MAXI324轉換后的8個通道ADC數據。
2 接口驅動 設備驅動程序的任務包括自動配置和初始化子程序,負責檢測所要驅動的硬件設備是否能正常工作。如果該設備正常,則對這個設備及其相關的設備驅動程序需要的軟件狀態進行初始化。
Linux下的設備驅動程序被組織為一組完全不同任務的函數的集合。編寫A/D驅動,主要完成對A/D器件控制寄存器和數據寄存器的open0,close0,read0,write0等的操作, 并在file—operations中注冊 。 static struct file_ operations adcmax1 324_ fops= { open:adcmax1 324 一open, ioctl: adcmax1 324 _ iocfl, read:adcmax1 324_ read, write:adcmaxl 324 _ write, release: adcmaxl 324 _ release, } 下面介紹其中幾個重要的函數: (1)adcmax1324一write函數:調用該函數,通過雙向數據線DATA0~DATA7向MAX1324寫入數據OxOOFF,把MAX1324設置成8通道同時轉換的模式; (2)adcmax1324一ioctl函數:Ioctl函數跟蹤信號,啟動A/D轉換;(3)adcmax1324一read函數:read函數把 中斷處理函數中讀到的數據發到用戶程序。 最后在init()中完成初始化工作。包括注冊設備驅動程序和申請系統資源。在編寫驅動程序時通常編寫成模塊的形式,在模塊加載時調用初始化函數module— init(),在卸載時調用卸載模塊函數module_ exit()。
3 結束語

文中實現了基于北京ARM 9開發板的電能質量監測儀數據采集的設計。介紹了硬件電路及其相關軟件,經實驗測試,基于MAX1324ECM的上述數據采集電路,實測準確度可以達到-4-0.5% ,實驗結果如表1所示,因此AX1324ECM完全適用于電能質量監測中的數據采集。
|