張喜生,岑宏杰
(深圳職業技術學院 電子與通信工程學院, 廣東 深圳 518055)
一種物聯網能耗監測計量終端的設計*
張喜生,岑宏杰
(深圳職業技術學院 電子與通信工程學院, 廣東 深圳 518055)
設計了一種應用于物聯網能耗監測系統的無線計量終端方案,該計量終端的核心電路由微控制器STM8L152和電能計量單元ATT7053構成,無線收發器使用CC1101,使用軟件Atom Threads作為操作系統,并移植TI的SimpliciTI無線網絡協議,可以實時計量用電設備的用電量、液晶顯示電壓、電流、功率等電參數,定時保存數據并通過433MHz無線通信上報給數據網關和服務器.計量終端也支持現場紅外通信抄表.
物聯網;電能計量;STM8L152;ATT7053;Atom Threads
目前,建筑能耗約占我國社會總能耗的三分之一,與工業、交通并列成為能源消耗大戶.國家節能目標是在“十二五”末,建筑節能要達到1.16億噸標準煤.在建筑能耗中,大型公共建筑高耗能的問題突出,約4%城鎮建筑面積消耗超過全國城鎮年耗電量的20%.因此,促進公共建筑合理用電、節約能源,直接關系國家節能減排戰略目標的實現.建筑節能運行需要建立在完善的能耗數據統計分析基礎之上,缺乏建筑能耗基礎數據的支持,就無法采取有效的節能措施.結合建筑能耗監測的實際需求[1-3],我們開發了一種無線計量終端,可應用于物聯網能耗監測系統,對建筑能耗實現動態監測.
物聯網能耗監測系統由無線計量終端、數據網關、服務器構成.其中服務器負責系統數據的保存記錄、瀏覽展示、統計分析和報表生成等,數據網關負責采集存儲終端數據,并進行局域網和無線網絡的協議轉換和數據轉發,計量終端實現電能計量和用電狀態監測,定時上傳數據到服務器數據庫,對異常用電情況進行監測并實時上報服務器.能耗監測系統結構如圖1所示.

圖1 能耗監測系統結構
計量終端實現電能計量主要有2種方案,一種采用MCU加ADC實現,該種方法使用 ADC采樣電壓和負載電流,經過乘法運算后算出有功功率,對時間積分得到用電量.此方案對 ADC、MCU性能要求比較高,需要在軟件上對采樣數據進行濾波算法處理,否則精度難以保證.另一種技術方案是采用MCU加專用電能計量芯片,此類計量芯片在內部集成了高精度模數轉換、諧波處理電路、乘法器等,可以將電能轉化為脈沖或數字量,簡化電路和軟件的設計,并且計量精度符合國家標準.

圖2 無線計量終端硬件框圖
經過分析比較,本設計采用第二種方案,選擇ATT7053作為計量終端的計量芯片.該芯片是帶零線計量的單相多功能計量芯片,具有高精度、低功耗、帶SPI數字接口等特點,工作電壓3.0~3.6 V.芯片集成3路19位sigma-delta ADC,采樣速率高達28 kHz,在3000:1的動態范圍內功率測量精度小于0.1%,可同時計算2個通道的有功功率、無功功率,支持斷相防竊電,默認工作電流為2.4 mA,輸入通道支持獨立的增益配置,可外接錳銅或電流互感器作為電流采樣器件,滿足能耗監測系統對電能監測的要求[4].
此外,計量終端還提供液晶顯示、電量斷電保存、實時時鐘、紅外通信、無線通信、負載供電控制等功能.液晶顯示、實時時鐘、電量斷電保存功能使用外部電路和芯片實現,會使電路設計復雜,功耗加大,成本上升.綜合考慮集成度、功耗等因素,本設計選用ST公司的STM8L152作為計量終端的微控制器,該MCU為8位超低功耗單片機,內部集成1~16 MHz振蕩器、1k字節EEPROM、RTC、4×28段LCD驅動、SPI接口等外設,可在1.65~ 3.6V電壓范圍內工作,有5種低功耗模式,在低功耗運行時電流可以小于6μA.此外,STM8L152還具備完整的安全監控特性,包括代碼保護、Flash讀寫保護、后備時鐘、雙看門狗、電源監控等,可以在惡劣的電磁干擾環境中提供充分的多級保護.充分利用STM8L152的特性,可滿足設計低功耗要求,同時減少器件、降低成本[5].計量終端的硬件結構如圖2所示.
ATT7053和STM8L152通過SPI接口連接,過零中斷輸出引腳/IRQ連接到MCU的PA3 I/O引腳.ATT7053使用5.5296MHz外部晶振,須并聯10MΩ的偏置電阻,同時將XTALO引腳連接到STM8L152的OSC_IN引腳,時鐘經分頻后作為內部RTC時鐘源使用,而MCU主時鐘則選擇內部16 MHz RC振蕩器作為時鐘源.這樣在共用一個晶振的情況下,既保證了RTC時鐘信號精度,又可使MCU運行在較高頻率上.ATT7053的2路分別對電壓、電流采樣,不使用的輸入通道引腳短接后接到AGND,以避免可能存在過高的共模信號.為避免大信號導致串擾和量程溢出,同時保證小信號精度,采用分壓電路將電壓通道的采樣范圍控制在100~ 300 mV,ADC內部開1倍增益,保證70%Un和60%Un輸入時的測量精度符合國標要求.因為電流通道采用錳銅采樣,輸入信號較小,所以ADC內部開16倍增益.
無線通信采用CC1101作為RF收發器,該芯片支持數據包處理、數據緩沖、突發數據傳輸、清晰信道評估、連接質量指示等功能,集成了一個高度可配置的調制解調器,支持不同的調制格式,數據傳輸率最高可達500 kbps,CC1101通過SPI接口與STM8L152連接,實現參數配置、工作模式選擇、數據通訊等.MCU通過片選引腳切換,選擇CC1101或ATT7053進行SPI通信[6].
無線計量終端支持紅外通信,以實現現場抄表和參數調校.紅外接收芯片使用IRM3638,當接收到載波為38kHz的紅外信號時,芯片內部電路處理后DO引腳輸出低電平,無38kHz信號時輸出高電平.DO引腳連接到STM8L152的TIM1定時器輸入引腳,用定時器硬件進行紅外信號的捕獲和解碼,以減小MCU運算負載.STM8L152有4個定時器,支持定時器級聯控制.發送紅外信號時,用TIM3定時器產生紅外調制信號,TIM2產生38kHz載波,TIM3以門控模式去控制TIM2,TIM2的輸出通道驅動紅外發射管產生紅外通信信號.
STM8L152內部集成4×28段LCD驅動器,使用其中4個COM和17個SEG,驅動定制的4×17段碼液晶,顯示7位數字以及電量、功率、電壓、電流和溫度等單位符號.計量終端電路使用NTC熱敏電阻測量安裝位置的溫度.熱敏電阻與精密電阻串聯,用ADC采集NTC的電壓變化,計算得到NTC的當前阻值,再通過查找的阻溫特性表得到當前溫度并在液晶顯示.MCU和計量單元電路如圖3所示.

圖3 無線計量終端MCU和計量單元電路圖
無線計量終端軟件按功能分為電能計量、液晶顯示、無線通信、紅外通信等幾個任務模塊,各模塊需及時響應電能計量、斷電保存、液晶刷新,數據通信等服務請求.為了保證系統的實時性能,軟件采用開源操作系統Atom threads作為軟件平臺,Atom threads是一款輕量級實時調度操作系統,支持優先級搶占式和時間片調度,提供基本的互斥、信號、定時、隊列功能,占用的CPU資源少,目標代碼尺寸小,特別適合應用于本計量終端設計上.計量終端的軟件邏輯層次如圖4所示.
3.1 RTOS配置
Atom threads 內核已支持STM8微控制器,在項目路徑下新建portsstm8stm8l15x-periphs文件夾,將ST公司的STM8L152的外設固件庫添加至該路徑下.Atom threads默認使用TIM1定時器作作為節拍發生器,為系統提供計時基準.在定時中斷中,內核檢查軟件定時器和定時任務,并執行相應的回調函數.在本設計中TIM1已用于紅外信號的編解碼,為此改用TIM4來提供系統節拍,首先修改Atom threads內核文件AtomPort.c中的archInitSystemTickTimer()函數,使能TIM4,將分頻系數設為256,計數值為250,在內部16MHz RC振蕩器下,系統節拍為4ms/tick.其次,使能TIM4的溢出中斷,并在TIM4中斷服務程序中先清除標志位,然后調用系統節拍處理函數atomTimerTick().由于在中斷內可能會產生任務切換,所以在進入和退出中斷時分別調用atomIntEnter()和atomIntExit().
Atom threads系統啟動后,先要進行MCU硬件初始化配置,然后通過atomOSInit()初始化系統和啟動空閑任務,再調用archInitSystemTickTimer()使能節拍定時器,最后通過atomThreadCreate()創建應用任務.要給每個應用任務分配一個任務控制塊,以保存任務切換時的上下文數據.
3.2 電能計量任務
電能計量任務主要是負責電量實時計量和電量數據保存.任務啟動后,首先驗證計量終端的校表參數是否完整正確.如果參數校驗錯誤,則液晶提示錯誤并進入校表狀態.如果參數正確,則根據參數初始化ATT7053后,任務開始定時讀取計量脈沖計數,進行電量計算和定時保存.任務流程如圖5所示.

圖4 無線計量終端軟件邏輯層次
ATT7053校表參數主要包括脈沖常數、功率增益、相位校正、小信號功率校正、電流電壓轉換系數等,除電流電壓轉換系數外,其他參數均要寫入ATT7053.在校表流程中得到這些參數后,計算CRC16校驗碼,和參數一起保存在STM8L152的Flash中,在每次計量任務初始化時重新計算校驗碼,校驗一致則進行電能計量,否則重新進行校表.
MCU通過SPI讀取ATT7053,地址0x0D寄存器為有功能量寄存器,數值表示電能脈沖個數,單位為1/EC kWh(EC為校表時得到的脈沖常數),因此程序將該數值除以脈沖常數即可得到電能值.在計量任務更新電量時,檢查當前電量是否大于已保存電量值0.01kWh,如是則將當前電量和當前系統時間保存到EEPROM中.
EEPROM有擦寫次數壽命限制,因此程序分配多個存儲位置作為電量保存用,并根據用電量單調遞增的特點設計損耗均衡算法,在保存電量時平均使用各個存儲位置,延長EEPROM的使用壽命.
在斷電保存電量的設計中,利用了STM8L152的片上可編程電壓檢測器.該檢測器可以編程設定一個電壓閾值,在供電電壓低于該值時觸發中斷.本設計中MCU供電電壓為3.3V,電壓檢測器閾值選擇2.85V,而STM8L152可以在1..65~3.6V范圍內工作.由于電源回路特性,在斷電時電壓會緩慢下降,當電壓下降到2.85V時,電壓檢測器觸發PVD中斷,MCU在中斷服務中將當前電量保存到EEPROM,實現斷電電量保存.
3.3 紅外通信任務
紅外通信任務負責收發紅外數據,有初始化、監聽接收、解碼執行、編碼發送4個狀態.計量終端的紅外通信以主從方式工作,平常處于接收狀態,收到命令并解析正確后才進入編碼發送狀態,任務狀態如圖6所示.

圖5 計量任務流程圖

圖6 紅外通信任務狀態圖
初始化配置TIM1的通道1、2為捕獲輸入模式,在監聽接收狀態對紅外接收引腳的電平進行脈寬測量.STM8L152的TIM1定時器通道1、2提供了邊沿觸發捕獲功能,通道1還具備雙邊沿觸發定時器復位功能.利用這些特性,配置通道1工作在下降沿觸發,通道2工作在上升沿觸發,設置雙邊沿復位定時器.這樣當接收到紅外信號時,通道1捕獲寄存器保存高電平脈寬數據,而通道2捕獲寄存器保存低電平脈寬數據,同時清零定時器計數值,開始下一個電平脈寬測量.使能通道2的DMA功能,將其設為burst模式.當觸發捕獲時,DMA自動搬移捕獲寄存器數據到緩沖區,這樣在整個紅外接收過程中,無需MCU干預,極大提高了系統的實時性.
經過模式匹配和解碼得到紅外數據后,校驗紅外指令的校驗碼,如果校驗錯誤則將數據丟棄并返回到監聽接收狀態,否則執行指令并將響應數據進行編碼和封裝,放入發送緩沖區,通過TIM3、TIM2級聯控制,由TIM2輸出通道驅動紅外發射管.
3.4 無線通信任務
計量終端的無線通信采用CC1101作為RF收發器,它與STM8L152通過SPI接口連接,輸出引腳GD0和GD2連接到MCU的IO口,作為收發狀態的信號引腳.CC1101的配置寄存器數量多且互相關聯,可以使用TI提供的軟件工具SmartRF輔助配置,將其生成的寄存器值導出為H文件添加到項目中.為了方便對配置進行管理,寄存器值以結構體組織,在SPI寫入CC1101時設置頭字節的burst位,以寄存器連續地址訪問.在完成初始化后,對FIFO進行讀寫實現無線數據收發.
通信協議采用SimpliciTI,它是一個基于連接的無線網絡通訊協議,支持點對點和星型連接兩種網絡拓撲結構.協議移植工作主要是重寫底層射頻接口函數,在MRFI函數中調用SPI接口函數實現CC1101特定設置和狀態讀?。疅o線通信任務啟動后先初始化協議棧,向底層注冊通信處理回調函數,然后發送加入網絡的廣播請求,AP節點響應之后獲得地址和網絡信標,應用層程序就可以調用API建立連接,連接建立后,應用程序可通過SMPL API實現網絡通信[7].
3.5 液晶刷新任務
液晶刷新任務負責驅動液晶,定時更新顯示電量、電壓、電流、功率以及通信狀態等數據,這些數據由其他任務通過信號或隊列發送給液晶刷新任務.根據液晶參數,配置液晶驅動器偏壓比為1/3,占空比為1/4.LCD和RTC共用同一個時鐘源,在配置LCD時鐘信號時需要兼顧RTC時鐘.此外配置LCD使用內部電源,調整LCD_CR2的對比度控制位來改變對比度,以使液晶顯示效果最好.
本文設計的無線計量終端,已實際應用于我們設計的物聯網能耗監測系統.在系統中,計量終端對用電設備進行電能計量和保存,實時監測異常用電情況,將電量數據通過無線網絡發送給網關,網關通過以太網傳輸到服務器.經實際測試,計量終端計量準確可靠、通信響應快,整體運行情況良好.計量終端采用高集成MCU和專用計量芯片,在保證性能的同時簡化了電路,降低了成本.此外,計量終端使用無線連接整體布線成本低,安裝靈活,在物聯網能耗監測領域有較良好的應用前景.
[1] 林志明,黃興,張珂.建筑能耗監測平臺構建及實現技術研究[J].節能,2014(1):4-7.
[2] 楊孝鵬.國內外建筑能耗監測平臺建設調查與研究[J].工程與建設,2011(01):83-84.
[3] 谷立靜,郁聰.我國建筑能耗數據現狀和能耗統計問題分析[J].中國能源,2011(02):38-41.
[4] 鉅泉光電科技(上海)股份有限公司.ATT7051A/53A用戶手冊(V1.7)[Z].[2013-03-21].鉅泉光電科技(上海)股份有限公司,http://www.hitrendtech.com.
[5] STMicroelectronics Inc. RM0031: STM8L05xx, STM8L15xx, STM8L162x, STM8AL31xx and STM8AL3Lxx microcontroller family Rev.10 [M/OL]. 2012-10-01.
[6] TI Inc. CC1101 Low-Power Sub-1 GHz RF Transceiver Rev.I[M/OL].[2013-11-05].http://www.ti.com/lit/ds/ symlink/cc1101.pdf.http://www.st.com/st-web-ui/static/a ctive/en/resource/technical/document/reference_manual/ CD00218714.pdf
[7] TI Inc. Introduction to SimpliciTI Rev.B [EB/OL].[2008-12-01].http://www.ti.com/lit/ml/swru130b /swru130b.pdf.
Design of Energy Meter for Energy Consumption Monitoring System Based on IOT
ZHANG Xisheng, CEN Hongjie
(School of Electronic and Communication Engineering, Shenzhen Polytechnic, Shenzhen, Guangdong 518055, China)
In this paper, we propose a scheme of wireless energy meter to realize the energy consumption system. Main circuit of meter is composed of a MCU STM8L152, a metering IC ATT7053 and a RF receiver CC1101. Meter is operated by Atom threads RTOS and a porting of SimpliciTI wireless protocol form TI. The meter can measure energy consumed by electrical equipment, display voltage, current, power and energy on LCD, and record energy data that can be transmitted to gateway and server through 433MHz wireless network regularly. Energy meter reading can also berealized with infrared communication.
Internet of things; energy meter; STM8L152; ATT7053; Atom Threads
TP391.44;TN929.5
A
1672-0318(2015)01-0007-05
10.13899/j.cnki.szptxb.2015·01, 002
2014-11-12
*項目來源:深圳職業技術學院校級重點科研資助項目(2210K3010002)
張喜生(1965-),男,山西代縣人,副教授,主要研究方向為軟件技術、網絡技術、移動互聯技術.