MAXQ3120多功能電表參考設(shè)計
為何要使用另一種電表
目前常用的機械結(jié)構(gòu)的電表已經(jīng)存在了約一個世紀(jì)。在此期間,它如實可靠地記錄著電能,因此電力公司能夠準(zhǔn)確地向客戶收取費用。這種基于旋轉(zhuǎn)金屬圓盤的機械式千瓦-時電表不考慮輸入電壓或功率因數(shù),只跟蹤記錄實際的用電量(圖1)。
圖1. 美國得克薩斯州某住宅使用的一款機械式電表。機械式電表通過旋轉(zhuǎn)的圓盤測量有功功率。機械式顯示器指示出電表出廠后的累計用電量。 而能源工業(yè)正在發(fā)生著變革,使得傳統(tǒng)的機械式電表不得不淡出市場。首先,用電量在不同的時段極不均衡,而目前客戶在用電高峰時沒有節(jié)能的動機。因此,電力公司現(xiàn)在認識到必須對其發(fā)電設(shè)備和配電網(wǎng)絡(luò)進行工程改進以應(yīng)對用電高峰,哪怕一天中的大部分時間內(nèi)都未充分使用其裝備容量。其次,當(dāng)電壓和電流同相傳送時配電效率是最高的。傳輸給負載的有功功率為: preal = v x i x cos
式中 為電壓和電流波形之間的相位差。遺憾的是,許多連接到電力線路的設(shè)備都表現(xiàn)為較大的感性負載,如感應(yīng)電動機和熒光燈,這使得電流相位滯后于電壓相位。直到現(xiàn)在,電力公司對大多數(shù)住宅用戶的這種低效情況仍然束手無策。這是因為監(jiān)測時段、峰值用電量和功率因數(shù)并據(jù)此進行收費的成本太高了。
多功能、多費率電表改變了這種狀況,從而對電能的利用更為有利。利用由微控制器控制的千瓦-時電表,電力公司可以跟蹤用戶在用電高峰時段的用電量或者超過合同規(guī)定的用電量,并據(jù)此收取更高的費用。如果用戶使用了大的感性負載,電力公司也可以收取更多費用,同時使用該數(shù)據(jù)有助于修正這些低效情況。 maxq3120微控制器基于maxim/dallas semiconductor的maxq? risc架構(gòu),不但可勝任這些任務(wù),還可提供更多功能。本文提出一種基于maxq3120的電表參考設(shè)計,并能滿足國際電表市場的要求。
maxq3120電表參考設(shè)計
maxq3120電表參考設(shè)計為全功能、具有用戶定制功能的標(biāo)準(zhǔn)電表(圖2)。定制范圍由設(shè)計者根據(jù)市場需求而定。
圖2. maxq3120電表參考設(shè)計可為滿足特定需要進行定制。電表底部配有功率、負載、網(wǎng)絡(luò)和脈沖輸出連接點;光通信和可見的電表脈沖led位于lcd上方。 iec 61036是所有電表都必須遵循的主要國際標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)對電氣、機械和環(huán)境要求做出了規(guī)定,并提出兩個精度等級:1級精度在幾乎整個可用電流范圍的標(biāo)稱精度為1%,2級精度的標(biāo)稱精度為2%。表1總結(jié)了符合標(biāo)準(zhǔn)的電表的其他關(guān)鍵要求。 iec 61036 (或縮略版本)是公認的電表標(biāo)準(zhǔn),但多功能電表的要求遠沒這樣普遍。本電表參考設(shè)計為1級電表,定制為符合中國多功能電表通信標(biāo)準(zhǔn)(dl/t 645),但可進行調(diào)整以適應(yīng)任何國家或工業(yè)標(biāo)準(zhǔn)。
maxq3120外設(shè)
maxq3120的核心是maxq20內(nèi)核,其工作頻率為8mhz,含有32k字節(jié)閃存和512字節(jié)ram-完成多功能電表的任務(wù)綽綽有余。因maxq3120內(nèi)含兩個16位、-模數(shù)轉(zhuǎn)換器(adc),可以精確測量瞬時電壓和電流。這兩個adc通道每48μs完成1次新的轉(zhuǎn)換,即轉(zhuǎn)換速率為20667采樣/秒。這些數(shù)據(jù)轉(zhuǎn)換器的前端帶可編程增益放大器(增益可達16倍),非常適合監(jiān)測電壓和電流波形。要將原始電壓和電流采樣值轉(zhuǎn)換成可用的用電量信息,需要強大的數(shù)學(xué)運算能力。為此,maxq3120集成了1個帶40位累加器的16
x 16位乘法器。該乘法器在單個時鐘周期內(nèi)即可完成一次運算,因與cpu內(nèi)核緊密地集成在一起,所以效率極高。
maxq3120還提供一個堅固的通信模塊。包括兩路uart,其中一路具有特殊邏輯電路,可輕松實現(xiàn)紅外數(shù)據(jù)傳輸。另外,maxq3120集成了一個lcd控制器,可驅(qū)動的段數(shù)高達112段
- 與傳統(tǒng)的、常采用機電式計數(shù)器的電表相比,性能更好,更經(jīng)濟。如果你需要根據(jù)每天的不同時段差異計費,則需要一個精確時鐘。maxq3120包含一個電池備份的時鐘模塊,具有亞秒計數(shù)器和報警功能。該時鐘具有數(shù)字微調(diào)功能,時鐘精度優(yōu)于4ppm
(每月約10秒)。
通信 - 物理層
中國多功能電表標(biāo)準(zhǔn)規(guī)定兩種通信類型:一類是住宅樓內(nèi)或小型街道的多個電表通過有線網(wǎng)絡(luò)連接,通過該網(wǎng)絡(luò)向主計算機(一般為pc)發(fā)送用戶數(shù)據(jù);另一類是用于手持、非接觸抄表器的紅外連接。
有線網(wǎng)絡(luò)基于多點rs-485標(biāo)準(zhǔn),工作速率為1200位/秒。rs-485標(biāo)準(zhǔn)將網(wǎng)絡(luò)規(guī)模限制為32個站點;然而,現(xiàn)在的rs-485收發(fā)器能夠支持更多的站點,遠遠超出了eia網(wǎng)絡(luò)規(guī)范給出的最多32個站點。例如,本參考設(shè)計使用的max3072
rs-485收發(fā)器為1/8單位負載器件,允許總線上最多掛接256個收發(fā)器。
與rs-485通道不同,紅外(ir)通道不是基于眾所周知的物理層標(biāo)準(zhǔn)。dl/t 645沒有使用標(biāo)準(zhǔn)紅外鏈路(如irda)來傳輸數(shù)據(jù),而是規(guī)定了一種開/關(guān)調(diào)制技術(shù),即有調(diào)制ir光束時表示0,無ir光束表示1。在這種方式下,通道空閑時為狀態(tài)1。字符信元的第一個1-0跳變表示起始位,與第一次探測到載波光束相對應(yīng)。這一技術(shù)的細節(jié)信息如圖3所示。
圖3. dl/t 645多功能電表標(biāo)準(zhǔn)規(guī)定的ir通信示意圖。通過調(diào)制ir光束發(fā)送數(shù)據(jù),有信號表示0,無信號則表示1。 通信 - 數(shù)據(jù)包格式
物理層一旦確定,則必須定義數(shù)據(jù)包格式。由于電表環(huán)境要求不同于通用數(shù)據(jù)網(wǎng)絡(luò)要求,通信規(guī)范給出了不同于其他網(wǎng)絡(luò)環(huán)境下的數(shù)據(jù)包格式(見圖4)。
圖4. dl/t 645規(guī)定的幀格式包括一系列固定域和可變域。該幀格式在ir和rs-485通信模式下是相同的。
該數(shù)據(jù)包格式有以下幾點非常獨特,包括:沒有源地址。總是由主機啟動通信過程,而且每個網(wǎng)絡(luò)上只有一個主機。主機沒有地址。
網(wǎng)絡(luò)上的電表不能啟動通信過程。只有主機才能要求電表發(fā)送數(shù)據(jù)。主機不能協(xié)助解決任何意外情況,這是因為在許多情況下實際上沒有網(wǎng)絡(luò)。主機為手持終端,電力公司員工每個月會攜帶該終端到現(xiàn)場抄表。所有意外情況都必須由電表本身來處理。
主機到電表的數(shù)據(jù)包總長度規(guī)定不允許超過50個字符,從電表到主機的總長度不超過200個字符。在參考設(shè)計中,雙向包長度都保持為50個字符。
cmd域表示主機告訴電表如何操作。多數(shù)情況下,命令為讀或?qū)懠拇嫫?。但cmd域也可以命令電表清除其最大需量寄存器,接收通信口令,或者設(shè)置時間或日期。
欲了解dl/t 645協(xié)議的完整說明,請參考電表參考設(shè)計規(guī)范。圖5所示為參考設(shè)計的軟件架構(gòu)。
圖5. 參考設(shè)計軟件包括多項任務(wù),并通過任務(wù)輪被依次調(diào)用。任務(wù)通過一系列全局變量來通信,其中最重要的部分是消息板。消息板是一組標(biāo)志,各任務(wù)通過設(shè)置標(biāo)志來將關(guān)鍵事件通知給其他任務(wù)。 參考設(shè)計中的寄存器
dl/t 645定義了大量的寄存器,來設(shè)置工作參數(shù)、讀取用電量或其他測量值。一個寄存器包含一個信息項,并具有一個16位地址。例如,地址為0xc030的寄存器指定了有功電表常數(shù)(每千瓦-時脈沖數(shù))。在registermanager.c的源代碼注釋里有完整的寄存器列表及其功能說明,參考設(shè)計中包含該程序。
寄存器管理程序(registermanager.c)對所有寄存器進行分類并管理其任務(wù),從許多方面來說都是電表軟件系統(tǒng)的核心。重要的是,要認識到電表里的許多任務(wù)都需要訪問寄存器數(shù)據(jù),而不只是來自通信子系統(tǒng)的簡單請求需要訪問寄存器數(shù)據(jù)。寄存器管理程序根據(jù)系統(tǒng)其他任務(wù)發(fā)出的讀取和寫入寄存器請求,完成相應(yīng)操作。例如,如果顯示管理程序需要知道一個特定值要在lcd上顯示多長時間,它必須從寄存器管理程序獲取該值,隨后寄存器管理程序再從外部eeprom獲取該值。
對于大多數(shù)寄存器讀操作,寄存器管理程序只需簡單地向readeeprom子程序發(fā)送請求。這一過程比表面上看起來的情況更復(fù)雜。如果eeprom仍忙于前一個寫周期操作,可能需要幾毫秒時間才能完成讀周期,cpu絕不能被任一個任務(wù)占用如此長的時間。在這些情況下,將掛起寄存器管理程序,所有其他任務(wù)繼續(xù)運行。隨后,一旦eeprom重新準(zhǔn)備就緒,寄存器管理程序?qū)⒒謴?fù)運行,并且一般會持續(xù)運行到任務(wù)完成。對eeprom的寫請求也如此處理。
非eeprom寄存器
一些寄存器讀操作所要讀取的數(shù)據(jù)并未存儲在eeprom中。對這些讀操作,寄存器管理程序必須調(diào)用一些其他資源,大多數(shù)情況下會是一些數(shù)字信號處理(dsp)程序。
例如,如果請求讀取寄存器0xb611(rms電壓,a相),寄存器管理程序請求dsp函數(shù)來計算下一電源周期的rms電壓值。注意,在50hz電源頻率下,這可能需要長達40ms時間,因為dsp程序必須等待,直到電源電壓發(fā)生下一次正轉(zhuǎn)換,然后累計下一個周期的數(shù)據(jù)。同樣,寄存器管理程序必須發(fā)出dsp任務(wù)請求,并在dsp任務(wù)數(shù)據(jù)就緒之前處于掛起狀態(tài)。
另外,寫某些eeprom寄存器會使dsp的參數(shù)發(fā)生改變。例如,寫寄存器0xc030 (有功電表常數(shù))必須更新eeprom來反應(yīng)新數(shù)值,同時需要設(shè)置dsp程序的常數(shù),這樣才能精確產(chǎn)生電表脈沖。在這些情況下,寄存器管理程序首先更新eeprom,然后執(zhí)行必要的計算,更新受寄存器寫操作影響的ram變量。
dsp子系統(tǒng)的功能
如果稱寄存器管理程序為電表的心臟,那么dsp子系統(tǒng)就是電表的大腦。dsp子系統(tǒng)處理絕大多數(shù)電表實際測量功能,包括:
電流和電壓的實時測量
有功功率和無功功率計算
功率因數(shù)計算
供電頻率估算
按需計算rms電壓和電流
產(chǎn)生電表脈沖
dsp函數(shù)是電表參考設(shè)計中惟一以中斷方式運行的代碼段。原因很清楚:要進行太多其他操作,以至軟件無法及時輪詢dsp子系統(tǒng)。該中斷每48μs產(chǎn)生一次,或者說8mhz時鐘頻率下每384個指令周期發(fā)生一次。中斷程序占到cpu處理能力的25%到30%。中斷程序提供多組數(shù)據(jù)輸出。
中斷程序還檢測電壓通道的過零點。為避免過零檢測發(fā)生錯誤,將采樣值送給由軟件實現(xiàn)的單極點低通濾波器處理。注意,該濾波器只用于過零檢測;用于電能計算的采樣值不進行任何濾波。
產(chǎn)生電表脈沖
許多電表都在每使用一定量電能時產(chǎn)生一個脈沖。電表脈沖可以采用led閃爍的方式提供可見的用電指示信號,或采用觸點閉合方式驅(qū)動機械式計數(shù)器來指示千瓦-時用電量。參考設(shè)計中既提供了可見的脈沖led,又備有一個光耦實現(xiàn)觸點閉合功能。在給定負載下產(chǎn)生脈沖的速率稱為電表常數(shù),常以每千瓦-時的脈沖數(shù)給出。因此,脈沖之間的間隔與負載的凈有功功率成反比。一般來說,產(chǎn)生的脈沖速率與負載功率之間的關(guān)系可由以下公式表示:
脈沖周期(秒) = 3600 / 電表常數(shù)(每kwh的脈沖數(shù)) x 負載(kw)
根據(jù)該式,對于1kw有功負載,電表常數(shù)為1600脈沖/千瓦-時的電表每2.25秒將產(chǎn)生一個脈沖。
本參考設(shè)計的標(biāo)稱工作電壓為220v,支持的最大電流為40a。這就是說,在8.8kw的最大負載功率下,如果電表常數(shù)為1600脈沖/千瓦-時,則每256ms產(chǎn)生一個脈沖。所以,要在所有負載情況下保持1%的精度,電表脈沖必須精確到約2.5ms。
其它所有模塊
盡管寄存器管理程序是系統(tǒng)中的最大功能模塊,dsp花費的處理能力最大,仍然需要關(guān)注其他軟件模塊。這些模塊為用戶提供需要的大多數(shù)元素,并在電表環(huán)境中執(zhí)行重要的任務(wù)。
通信子系統(tǒng)
如上所述,通信在多功能電表中至關(guān)重要。在軟件系統(tǒng)中,這一重要工作由5個任務(wù)完成,這5個任務(wù)是:串口驅(qū)動器、消息檢查器、消息譯碼器、消息格式器和消息構(gòu)建器。
圖6. 總是由主機發(fā)起與電表參考設(shè)計的通信。然后,消息從消息檢查器流向消息譯碼器、寄存器管理程序、消息格式器和消息構(gòu)建器,最后回到主機。 最好將這些系統(tǒng)當(dāng)作兩個對稱路徑看待:包括消息檢查器和消息譯碼器的入站路徑,以及由消息格式器和消息構(gòu)建器組成的出站路徑。串口驅(qū)動器位于鏈路的頂端,寄存器管理程序則位于底部(圖6)。
串口驅(qū)動器
乍一看,串口驅(qū)動器好像沒有什么作用。畢竟,maxq外設(shè)中的uart系統(tǒng)基本上是自動工作的。如果要發(fā)送一個字符,你只需將其置于輸出緩沖器中;要接收一個字符,你只需讀輸入緩沖器即可。
但要記?。河袃蓚€uart通道,而ram中只有一個通信緩沖器。我們必須提供一套機制來激活某一通道,并確保另一非活動通道不會對信息產(chǎn)生干擾。一般來說,當(dāng)一個字符到達某一端口時,如果另一端口還沒有激活,則到達字符將激活該端口。
消息檢查器
消息檢查器就像哨兵一樣檢查輸入數(shù)據(jù)流,確保嚴(yán)格滿足條件的數(shù)據(jù)才能送達系統(tǒng)其他部分。特別是消息格式必須正確,必須尋址該電表或者具有廣播地址,校驗和必須正確,并且必須具有合理的命令域。
消息譯碼器
消息譯碼器實際完成主機要求的操作。通常,要求的操作是讀寫寄存器,但消息譯碼器還在完成主機要求的其他任務(wù)中起到重要作用。
例如,一個特定命令用于設(shè)置電表地址。另一特定命令用于清除電表的最大需量寄存器。有一個命令對時間和日期進行同步,還有一個獨立命令進行口令保存。其中一些操作會改變寄存器的內(nèi)容,但并不是嚴(yán)格的寄存器寫操作。
消息譯碼器還必須處理多段響應(yīng)數(shù)據(jù)包。因為主機可以采用單個命令以“通配符”方式讀多個相關(guān)寄存器,響應(yīng)數(shù)據(jù)常常會超出通信緩沖器的容量。如果確實超出容量,電表必須發(fā)送一個標(biāo)志,指示響應(yīng)數(shù)據(jù)只是一部分,后續(xù)還有更多數(shù)據(jù)到達。消息譯碼器和消息格式器協(xié)同工作,使多消息響應(yīng)機制平穩(wěn)運行。
消息格式器
發(fā)送寄存器數(shù)據(jù)時,消息格式器處理所有要求的格式轉(zhuǎn)換和分節(jié)。消息格式器也在寫請求之后發(fā)出應(yīng)答消息。
消息構(gòu)建器
作為響應(yīng)信息發(fā)送前的最后一步,消息構(gòu)建器對包進行格式化,并每次一個字節(jié)發(fā)送結(jié)果到串口驅(qū)動器。消息構(gòu)建器是系統(tǒng)中較簡單的任務(wù)之一。它首先發(fā)送包頭字段,然后是數(shù)據(jù),最后計算校驗和。
處理異步事件
這時,你也許會認為所有事件都是基于同一時鐘發(fā)生的,要么是驅(qū)動adc通道的采樣時鐘,要么是cpu時鐘。實際上,有許多事件無法和任何時鐘同步。這些事件由異步事件管理器處理。
例如,異步事件管理器監(jiān)測dsp子系統(tǒng),確定何時更新eeprom。當(dāng)dsp子系統(tǒng)累計到足夠的電能時,就向異步事件管理器告警,接下來異步事件管理器開始更新eeprom寄存器。異步事件管理器同時還履行停電統(tǒng)計功能。根據(jù)dl/t
645電表標(biāo)準(zhǔn),必須記錄每次停電情況。異步事件管理器剛好在斷電前,將時間保存到電池備份的cpu寄存器內(nèi),供電恢復(fù)后將信息恢復(fù)并存儲到eeprom中。通過這種方法,每次停電的時刻和持續(xù)時間都可以記錄下來。
時段表管理器
時段表管理器根據(jù)鐘點、日期或其他基于時鐘或日歷的標(biāo)準(zhǔn)改變計費率。
圖7. 時段表管理器指示系統(tǒng)累計用電量使用情況,并存于多個資費寄存器之一中。它將當(dāng)前時間和日期與時鐘、日歷設(shè)置進行比較,主機可以通過軟件調(diào)整該設(shè)置。
雖然時段表管理器結(jié)構(gòu)相當(dāng)簡單,但乍一看可能很難理解。如圖7最右邊的結(jié)構(gòu)所示,將每天24小時劃分為不同的收費時段。在該圖解中,一天的時段表有3個條目:資費2從0530時開始,資費3從1800時開始,資費1從2200時開始。最多可以提供14種日時段表,而每天又可以最多提供10個資費時段。
內(nèi)部日歷選擇有效的日時段表。每天午夜,電表都檢查是否有新的日時段表生效。在以上圖表中,日時段表5從4月后期生效,一直持續(xù)到6月初,然后日時段表3生效。
你也可以設(shè)置一周中的某些天為"周末"日期(這樣全年都遵循某一特定日時段表),而全年中的某些天為“假日” (這樣每個假日都遵循特定的日時段表)。
結(jié)語
maxq3120電表參考設(shè)計構(gòu)成了多功能、多費率電表的基礎(chǔ)??梢詮谋驹O(shè)計出發(fā),構(gòu)建適合自己特定需求的電表。為進一步給用戶提供幫助,dallas
semiconductor/maxim提供硬件和軟件調(diào)試器以及開發(fā)工具。有許多供應(yīng)商提供第三方開發(fā)工具??梢詮奈覀兙W(wǎng)站的maxq?開發(fā)工具找到所有這些信息。
評論