專用芯片ATT7022C的電參數(shù)測(cè)量模塊設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:給出一種基于電能計(jì)量芯片ATT7022C和LPC2138的電參數(shù)測(cè)量模塊的設(shè)計(jì)方案。詳細(xì)描述了硬件電路接口和電能計(jì)量芯片與ARM通信接口的實(shí)現(xiàn)過(guò)程。通過(guò)實(shí)驗(yàn)對(duì)芯片進(jìn)行軟件校表,實(shí)現(xiàn)了電參數(shù)的精確測(cè)量。設(shè)計(jì)的電參數(shù)測(cè)量模塊具有實(shí)時(shí)顯示和與上位機(jī)通信的功能。
關(guān)鍵詞:ATT7022C;LPC2138;軟件校表
引言
隨著國(guó)家經(jīng)濟(jì)的快速發(fā)展,各行業(yè)對(duì)能源的需求量越來(lái)越大。煤炭、石油等不可再生資源的大量消耗使得存儲(chǔ)量越來(lái)越少,能源短缺必將會(huì)影響國(guó)家經(jīng)濟(jì)的發(fā)展。而煤炭、石油的開(kāi)采又會(huì)耗掉大量的電能,特別是石油的開(kāi)采,抽油機(jī)經(jīng)常會(huì)出現(xiàn)“空抽”的現(xiàn)象,大量的電能被耗費(fèi)。因此,提高用電的效率和質(zhì)量是緩解能源危機(jī)的一種方式,這就需要對(duì)電網(wǎng)運(yùn)行狀況進(jìn)行實(shí)時(shí)監(jiān)測(cè)。為了獲得電網(wǎng)的電參數(shù)信息,本文采用電能計(jì)量芯片ATT7022C結(jié)合ARM微控制器設(shè)計(jì)電參數(shù)測(cè)量模塊。該模塊可以使用液晶實(shí)時(shí)顯示數(shù)據(jù),也可以把采集的電參數(shù)傳輸?shù)缴衔粰C(jī)來(lái)對(duì)電網(wǎng)的狀況進(jìn)行實(shí)時(shí)監(jiān)測(cè)。
1 ATT7022C芯片介紹
ATT7022C芯片是鉅泉光電科技(上海)有限公司推出的一款高精度三相電能專用計(jì)量芯片。它適用于三相三線和三相四線的接線方式,其內(nèi)部結(jié)構(gòu)框圖如圖1所示。該芯片集成了7路二階sigma-delta ADC,參考電壓電路以及包括功率、有效值、功率因數(shù)、能量等的數(shù)字信號(hào)處理電路。芯片內(nèi)置溫度測(cè)量傳感器,提供基波有功、基波無(wú)功校表脈沖輸出;還具有ADC采樣數(shù)據(jù)緩存功能,緩存長(zhǎng)度為240,可以實(shí)時(shí)保存原始采樣數(shù)據(jù)。同時(shí)芯片還支持單通道、雙通道和三通道的同步采樣功能,供用戶進(jìn)行采樣數(shù)據(jù)的分析。芯片提供一個(gè)SPI接口與外部MCU進(jìn)行數(shù)據(jù)傳遞,外部控制器只需要通過(guò)SPI總線對(duì)各寄存器進(jìn)行讀寫(xiě)操作,就可以得到三相電參數(shù)的值。為了得到精確的電參數(shù)數(shù)值,必須進(jìn)行校表操作。芯片支持純軟件校表,經(jīng)過(guò)校正的儀表,有功精度可高達(dá)0.5級(jí),無(wú)功精度可達(dá)2級(jí)。
2 電參數(shù)測(cè)量模塊設(shè)計(jì)方案
電參數(shù)測(cè)量模塊的總體結(jié)構(gòu)框圖如圖2所示。模塊主要由電參數(shù)實(shí)時(shí)測(cè)量、LCD顯示、存儲(chǔ)、與上位機(jī)通信等部分組成。LCD液晶主要用來(lái)顯示電壓、電流、耗能、功率因數(shù)、時(shí)間、溫度等參數(shù)。模塊采用RS485總線或無(wú)線組網(wǎng)傳輸?shù)姆绞桨褱y(cè)量的各種電參數(shù)傳輸?shù)缴衔粰C(jī),對(duì)電網(wǎng)的運(yùn)行狀況進(jìn)行實(shí)時(shí)的監(jiān)測(cè)。
模塊設(shè)計(jì)的目標(biāo)是以較低能耗實(shí)時(shí)測(cè)量、顯示電參數(shù),并能夠與上位機(jī)進(jìn)行通信。這就要求處理器的運(yùn)行速度要快、功耗要低。LPC2138芯片可以滿足這個(gè)要求。它有2個(gè)SPI、I2C接口、多達(dá)47個(gè)可承受5 V電壓的通用I/O口,以及帶有獨(dú)立電源與時(shí)鐘源的實(shí)時(shí)時(shí)鐘模塊。
電能計(jì)量芯片復(fù)位時(shí)內(nèi)部的能量寄存器將復(fù)位為0。如果發(fā)生意外斷電,芯片中能量寄存器中的值將會(huì)丟失,設(shè)計(jì)時(shí)選用AT24C02芯片保存能量寄存器的值。在軟件程序設(shè)計(jì)中,當(dāng)負(fù)載消耗1度電或其他數(shù)據(jù)量的時(shí)候刷新一次存儲(chǔ)器。
實(shí)時(shí)時(shí)鐘采用ARM系統(tǒng)與外接電池共同供電的方式,當(dāng)系統(tǒng)意外斷電時(shí),時(shí)鐘模塊可由外部電池供電,保證時(shí)鐘的正常運(yùn)行。值得注意的是,實(shí)時(shí)時(shí)鐘初始化時(shí),第一次把準(zhǔn)確的時(shí)間寫(xiě)到時(shí)鐘芯片后,時(shí)鐘就開(kāi)始正確地運(yùn)行,然后應(yīng)當(dāng)把程序中的時(shí)鐘初始化函數(shù)去掉,把整個(gè)程序再加載一遍。否則,模塊每次復(fù)位都會(huì)對(duì)時(shí)鐘初始化一次,這樣時(shí)鐘就不能正確地運(yùn)行了。
3 硬件設(shè)計(jì)
3.1 模塊外圍電路設(shè)計(jì)
ATT7022C外圍電路如圖3所示。在設(shè)計(jì)時(shí),為使電源的紋波和噪聲減小到最低,要在芯片的各個(gè)電源引腳使用10μF和0.1μF電容進(jìn)行去耦。在圖3中,V1P/V1N、V3P/V3N、V5P/V5N分別是A、B、C三相的電流采集通道;V2P/V2N、V4P/V4N、V6P/V6N分別是A、B、C三相的電壓采集通道。電路連接時(shí),把ATT7022C的SP1口、SIG、CS、RESET分別與LPC2138的SPI口、P0.28、P0.29、P0.30相連進(jìn)行通信。SIG為握手信號(hào),控制器通過(guò)該引腳監(jiān)測(cè)芯片的運(yùn)行狀況。SEL為三相電接線方式選擇引腳。電能芯片內(nèi)部有300 kΩ上拉電阻,當(dāng)該引腳懸空時(shí)為三相四線接線方式,當(dāng)該引腳接地時(shí)為三相三線的接線方式。在硬件電路連接時(shí)必須要注意的是,電能計(jì)量芯片與LPC2138的電源要共地,否則控制器讀寫(xiě)芯片將會(huì)出錯(cuò)。
3.2 信號(hào)采集模塊
電壓、電流采集采用雙端差分信號(hào)輸入的方式采集數(shù)據(jù)。正常工作時(shí)最大輸入電壓為±1.5 V.2個(gè)引腳內(nèi)部都有ESD保護(hù)電路,最大承受電壓為±6V。
電壓信號(hào)的采集可選擇分壓方式或互感器方式。本系統(tǒng)為了能得到較穩(wěn)定的信號(hào),決定采用互感器來(lái)采集信號(hào)。這樣不僅起到了電氣隔離的作用。還可防止電流過(guò)大燒毀芯片。由于電能計(jì)量芯片的電壓通道在互感器的次級(jí)電壓為0.5 V時(shí)有較好的精確度和線性度,所以在設(shè)計(jì)時(shí),選擇LCTV3JCF-220V/0.5V規(guī)格的電壓互感器作為電壓信號(hào)的采集端。電壓采集電路如圖4(a)所示。電路中的1.2 kΩ電阻和0.01μF電容構(gòu)成了抗混疊濾波器。REFO信號(hào)連接電能計(jì)量芯片輸出的2.4 V參考電壓,這個(gè)電壓起到直流偏置的作用。
電流信號(hào)的采集是通過(guò)把電流互感器輸出的電流信號(hào)并接一個(gè)適當(dāng)?shù)碾娮?,采集電阻兩端電壓的方式?lái)間接測(cè)量電流值。電流通道在采集電壓為0.1 V時(shí)芯片有較好的精確度和線性度,因此在設(shè)計(jì)時(shí)選用HTTA-5 A/5 mA規(guī)格的電流互感器。在輸入額定電流的情況下,輸出的電流信號(hào)并接20 Ω的電阻可以得到0.1 V的電壓信號(hào)。值得注意的是,電流互感器的選擇應(yīng)根據(jù)實(shí)際應(yīng)用時(shí)初級(jí)電路中電流大小的范圍而選擇,電阻也要相應(yīng)地變化,保證輸入的信號(hào)在0.1 V左右。電流采集電路如圖4(b)所示。
4 軟件設(shè)計(jì)
模塊的軟件設(shè)計(jì)首先是對(duì)各部分的通信接口進(jìn)行初始化,然后對(duì)芯片進(jìn)行校正,接著把實(shí)驗(yàn)校正的值寫(xiě)入ATT7022C的各個(gè)寄存器。最后,在主函數(shù)的循環(huán)語(yǔ)句中瀆取芯片各個(gè)寄存器的數(shù)據(jù)進(jìn)行顯示、存儲(chǔ)、向上位機(jī)傳輸。
4.1 ATT7022C與LPC2138的SPI接口函數(shù)
圖5、圖6分別為ATT7022C芯片的SPI接口讀、寫(xiě)時(shí)序圖。圖中,CS為芯片的片選信號(hào)線;SCLK為時(shí)鐘信號(hào)線;DIN為串行數(shù)據(jù)輸入線,用于把用戶的數(shù)據(jù)、命令、地址傳輸?shù)紸TT7022C芯片,它與ARM處理器的SPI總線的MOSI連接通信;DOUT為串行數(shù)據(jù)輸出線,用于從ATT7022C芯片讀取數(shù)據(jù),它與ARM處理器的SPI總線的MISO連接通信。從圖5中可以看出,當(dāng)向ATT7022C芯片寫(xiě)一個(gè)字節(jié)數(shù)據(jù)時(shí),SCLK高電平時(shí)在DIN引腳準(zhǔn)備好數(shù)據(jù),一個(gè)時(shí)鐘下降沿,就把一位數(shù)據(jù)寫(xiě)入芯片中。當(dāng)從ATT7022C讀取一個(gè)字節(jié)數(shù)據(jù)時(shí),一個(gè)時(shí)鐘上升沿,芯片會(huì)把一位數(shù)據(jù)傳輸?shù)紻OUT引腳,ARM讀取該引腳得到一位數(shù)據(jù)。使用ARM的SPI總線,數(shù)據(jù)在SCLK高電平時(shí)有效,所以在設(shè)置SPI控制寄存器時(shí)CPOL位應(yīng)置0。SPI傳輸?shù)牡谝晃粩?shù)據(jù)在第二個(gè)時(shí)鐘沿被采樣,CPHA位應(yīng)置1。ARM與ATT7022C芯片進(jìn)行數(shù)據(jù)通信時(shí),需要先向ATT7022C芯片寫(xiě)入8位的命令字,然后才能通過(guò)SPI接口讀出或?qū)懭?4位數(shù)據(jù)。數(shù)據(jù)傳輸時(shí)高位在先,LSBF位應(yīng)置0。在數(shù)據(jù)傳輸?shù)倪^(guò)程中CS要保持在低電平的狀態(tài),傳輸完成后應(yīng)把CS拉高。同時(shí)設(shè)置SPI總線為主模式、禁止SPl的中斷。
SPI的接口函數(shù)如下:
程序運(yùn)行時(shí),要想知道通信函數(shù)是否正確,可以通過(guò)讀取校表數(shù)據(jù)校驗(yàn)和寄存器的值來(lái)判斷。在芯片復(fù)位后未寫(xiě)校表數(shù)據(jù)前,它里面存儲(chǔ)的復(fù)位數(shù)據(jù)是定值。發(fā)送命令字0x3E或0x5F,讀取24位數(shù)據(jù)。在三相四線模式下,值是0x043C73;在三相三線模式下,值是0x16BC73。如果是其他值.則程序有誤。
4.2 芯片的校表
校表是設(shè)計(jì)的關(guān)鍵環(huán)節(jié),芯片校表流程如圖7所示。所有的校正都是在校表寄存器參數(shù)為0的條件下進(jìn)行的。
以A相電壓、電流的校正為例說(shuō)明芯片的校表過(guò)程。
(1)A相電壓的校正
電壓輸入為238 V,功率因數(shù)為1。在校正寄存器Ugain為0時(shí),讀A相電壓有效值寄存器Vu的值,十六進(jìn)制為0x25d75c,十進(jìn)制為2 479 964。代入公式計(jì)算得到測(cè)量電壓有效值:Urms=Vu×210/223=Vu/213=2 479 964/8192=302.73。Ur為標(biāo)準(zhǔn)表讀出的實(shí)際輸入電壓有效值即238 V,校表時(shí)Ur用2倍標(biāo)準(zhǔn)表的電壓值計(jì)算,即Ur=2×238=476。Ugain為A相電壓的校正寄存器的值。當(dāng)Ugain=Ur/Urms-1=476/302.73-1=0.572 358 207>0時(shí),則Ugain=INT(Ugain×223)=4 801 289=0x494309,最后把0x494309寫(xiě)入A相電壓的校正寄存器,則完成A相電壓的校正。校表完成后,處理器讀出的值要縮小2倍才能得到最終的測(cè)量電壓有效值:Urms=Vu/213/2=Vu/214。
(2)A相電流的校正
電流輸入為4 A,功率因數(shù)為1,在校正寄存器Igain為0時(shí),讀A相電流有效值寄存器Li的值。十六進(jìn)制為0x56d60,轉(zhuǎn)化成十進(jìn)制為355 680。代入公式計(jì)算得到測(cè)量電流有效值:Irms=Ii×210/223=Ii/213=355 680/8 192=43.417 968 75。Ir為標(biāo)準(zhǔn)表讀出的實(shí)際輸入電流有效值即4 A。校表時(shí)Ir用24倍的電流輸入值代入計(jì)算,即Ir=4×24=64。Igain為A相電流的校正寄存器的值。當(dāng)Igain=Ir/Irms-1=64/43.417 968 75-1=0.474 044 084 57>0時(shí),則Igain=INT(Igain×223)=3 976 570=0x3cad7a。最后把0x3cad7a寫(xiě)入A相電流的校正寄存器,則完成A相電流的校正。校表完成后,處理器讀出的值要再縮小24倍,才能得到最終的測(cè)量值,即Irms=Ii/213/24=Ii/217。
其他參數(shù)的校正要根據(jù)ATT7022C的各個(gè)參數(shù)的校表公式來(lái)完成,這里不再贅述。校表完成后使用自耦調(diào)壓器調(diào)節(jié)負(fù)載兩端的電壓、電流,得到的測(cè)量數(shù)據(jù)如表1、表2所列。
結(jié)語(yǔ)
通過(guò)基于ATT7022C和LPC2138的硬件電路設(shè)計(jì)、軟件的編程、校表及PCB板的制作,最終完成了整個(gè)模塊的設(shè)計(jì)。通過(guò)實(shí)驗(yàn)得到的測(cè)量數(shù)據(jù)誤差較小,在模塊測(cè)量誤差允許的范圍內(nèi)。模塊具有采集數(shù)據(jù)速度快、耗能低的特點(diǎn),并能長(zhǎng)期穩(wěn)定運(yùn)行,達(dá)到了模塊設(shè)計(jì)的預(yù)期目標(biāo)。該模塊可用于電力系統(tǒng)、礦井電網(wǎng)、抽油機(jī)等電參數(shù)的精確測(cè)量。