新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于CAN總線的多用戶電能表設計

        基于CAN總線的多用戶電能表設計

        作者: 時間:2011-10-20 來源:網絡 收藏

          0 引言

          在實際應用中, 越來越多像學校、工廠宿舍等用戶密集場合,采用了一塊表計量多個用戶的,這種新型電能表對于降低人力與管理成本是顯而易見的。然而,盡管采用通信方式種類繁多,系統的通信不穩定一直是難以解決的問題。在本設計中,采用通信的方式設計新表,能滿足通信穩定、實時準確的要求;而且該表增加可透支用電的設計,解決了眾多欠費即斷電,給不能及時繳費的用戶帶來不便的問題。

          1 CAN 總線與電能表的特點

          1.1 CAN 的優點

          CAN(controller area network)是一種應用在生產現場、在微機化測控設備之間實現雙向串行多節點數字通信的現場總線。CAN與其他總線有明顯優勢:1. 具有非破壞性仲裁,支持競爭,通信采用“多主對等”方式;2.組網非常靈活,通信速度最大可到1Mb/s;3.CAN總線采用CRC檢驗并有錯誤處理功能,當節點錯誤時,能自動關閉輸出,使總線上的其它節點及通信不受影響。這些特點為電能表穩定通信提供了條件。

          1.2 多用戶電能表的特點

          1、電力部門上位機通過RS232 接口轉CAN 總線接入網絡采集各電能表。通過上位機軟件實時監控電能表,具有分時計費、對表設置繳費管理模式和修改參數等功能。

          2、該電能表有過載保護功能,當用戶負載超過允用最大負載時,表自動對該用戶斷電。

          3、該表還具有透支模式,用戶可現場操作,能提供定量的臨時供電,為不方便及時繳費的欠費斷電用戶提供了便利。

          2 多用戶電能表硬件設計

          電能表硬件系統結構如圖1所示, 整個系統由7大部分組成: 選擇及放大電路、A/D轉換電路、斷電控制模塊、CAN通訊模塊、LED顯示、存儲器FM1608,X5045和單片機AT89C52。當用戶用電時,對應的CT(電流互感線器)和PT(電壓互感線器)產生感應電壓小信號,小信號由選擇及放大電路選擇通道和放大后,至A/D轉換電路變為數字信號,由單片機(AT89C52)進行處理,將數據保存至FM1608/X5045中,同時由LED顯示電量,當有通信時,單片機將數據經由CAN通信模塊,上傳至上位機。


        圖1 系統總體框圖

          2.1 選擇及放大電路設計

          選擇及放大電路由多路選擇電路和兩級放大電路組成。單片機引腳P2.0片選一74HC377芯片控制5片CD4051芯片使能端,P0口放送一字節編碼字,字節前5位片選5個CD4051的INH,后3位控制A/B/C引腳,選擇其中一條電流或電壓感應通路,而使其他通路處于斷開狀態。

          放大電路由兩片LM358芯片級聯,將所選的通路的小信號線性放大,放大到適應A/D芯片處理的采樣信號,信號進入A/D芯片后,由模擬信號轉化為數字信號,這樣單片機才能進行數據處理。多路選擇及放大電路如圖2。


        圖 2 多路選擇及放大電路

          2.2 A/D轉換電路和存儲電路的設計

          A/D轉換電路選用AD574A芯片,它是一種快速12位逐次比較式A/D轉換芯片,這里直接與8位AT89C52相連。不需要外接時鐘和參考電壓等電路就可以正常工作。

          在用戶用電時,AD574A將感應的模擬信號轉換為12位的數字信號,P2.2端口片選,控制AD574A的工作狀態的讀取數據,P0端口通過兩次讀取A/D芯片輸出的12位數據。當32路中某一電流和電壓感應數據讀入MCU內部寄存器后,和參數進行乘法運算,得出能量數據,并累加在FM1608芯片相應地址中。

          FM1608芯片可萬億次以上的讀寫次數,掉電數據大于10年。MCU由RD、WR對其片選,P0通過鎖存芯片,對FM1608尋址和讀寫數據操作,當數據累加達到0.1度時重新歸零。

          X5045芯片有看門狗定時器和保存數據功能,當程序陷入死循環時,X5045 Rst引腳發出復位信號,使單片機復位重啟,保障了電能表正常工作;X5045內部相應地址中保存了該表的通信地址,32戶電量度數、用電模式、功率限制,還有感應線圈的調整參數等。

          開關K1-K3外接P1.2-P1.4,K1-K2設置表參數;K3為用戶鍵,當LED顯示某戶電量時,長按K3超過5秒,MCU發給該戶繼電器閉合指令,實現電源供電。這部分的電路圖如下圖3。


        圖3 A/D轉換和存儲電路框圖

          2.3 顯示電路設計

          顯示電路由兩片MC1413P驅動數碼管、一片CD4051芯片、2片74HC377芯片、及4個兩位數碼管組成。單片機由X5045中依次讀取32戶的用電數據,譯碼為數碼管顯示數字的字節,復用P1端口輸出,經由兩片74HC377鎖存器鎖存,再由CD4051芯片動態選擇其中一路,通過MC1413P驅動數碼管,送到a—g及DP上.對8位LED的動態掃描。前兩位數碼管顯示用戶編碼,后面六位為用戶用電總度數。

          2.4 斷電控制模塊設計

          該模塊控制繼電器的通斷電,斷電控制模塊主要由AT89C2051、1片74LS138、8片74HC377,32片BH3023芯片和32個繼電器組成。當存儲電路X5045中管理通斷電控制地址的數據發生變化時,AT89C52通過TXD向斷電控制模塊發送字節,斷電控制模塊根據字節,通過AT89C2051引腳P3.2-P3.4編碼輸出,由74LS138片選相關74HC377芯片,同時P1口對該鎖存器輸出一個字節,到達所在BH3023芯片,BH3023芯片對其管理的繼電器發送命令,繼電器做出通斷反應。

          2.5 CAN通信模塊設計

          CAN通信模塊負責上位機與電能表的通信,當上位機下達指令時,通信模塊譯碼并傳給AT89C52;AT89C52根據指令內容,做出上傳數據、修改參數或給斷電控制模塊發指令等。


        圖4 CAN模塊電路框圖

          通信模塊主要由AT89C51、X5045、SJA1000、PCA82C250芯片組成。SJA1000是一個獨立的控制器,有BasicCAN和PeliCAN兩種不同的模式,SJA1000的內部功能模塊主要有:接口

          管理邏輯、接收FIFO 隊列、接收濾波器、發送緩沖器和CAN核心模塊。CAN核心模塊基于

          CAN2. 0B的協議執行對CAN幀的發送和接收。

          CAN通信模塊中X5045芯片主要用途為看門狗定時器,當AT89C51陷入死循環時,X5045發出重啟電平,使AT89C51復位重啟,保障了CAN通信正常工作。模塊框圖如圖4所示。

          3 多用戶電能表軟件設計

          該表軟件采用模塊化設計,*立分為計量存儲顯示、CAN 通信模塊、斷電控制模塊三大主程序。為了實現每個主程序的功能, 又把各主程序劃分為若干個相應功能子程序或小模塊。主程序的作用是系統的初始化、中斷管理以及各功能模塊的調用等。

          3.1 計量存儲顯示程序設計

          計量存儲顯示模塊硬件設計比較復雜,時序要求嚴格, CPU內程序存儲器容量有限,所以軟件采用匯編語言編制,以更好地控制時序和代碼空間。整個程序采用模塊化編程,主要包含初始化模塊、電量采集模塊、數據存儲模塊、信息顯示模塊、串行通信模塊、供電控制模塊等。

          軟件設計過程中,考慮到采集數據不能出現錯采、漏采等現象以及高可靠性要求,必須采用必要的軟件抗干擾措施,如軟件陷阱、指令冗余、程序運行監視、數據校驗、數據備份、數據寫入存儲器判斷等措施。其主程序流程設計思想如圖5所示。


        圖5 計量存儲顯示主程序框圖

          3.2 CAN通信模塊程序設計

          CAN通信模塊主程序包括看門狗的初始化子程序(X5045_Rstdog()); 串行通信初始化子程序(Serial_init()); SJA1000 初始化程序子設計(CAN_Init()); 發送程序子設計(CAN_Send_Trans()); 以及接收程序設計子程序(CAN_Rece_Trans())。

          CAN通信模塊上電或復位后,先串行通信初始化程序負責設置波特率,讀取電能表表號等;接著CAN初始化程序主要是對SJA1000寄存器的初始化,包括:定義BasicCAN、驗收屏蔽碼、總線的位速率、位周期內的采樣點和采樣數量、管腳RX0、TX0的輸入輸出模式和配置。這些完成后,要清除SJA1000的復位請求標志進入工作模式, SJA1000準備進行報文的發送和接收;最后程序進入循環等待中。當上位機有指令下達,引起中斷,調用中斷函數和相關的發送接收子程序。

          該主程序設計采用基于Keil C的C語言進行編程,調用基本庫函數來實現各種功能。

          3.3 斷電模塊程序設計

          斷電模塊上電或復位后,程序先進行串行端口波特率初始化等,接著進入循環等待狀態,串行中斷發生時,調用串行通信中斷函數,由P3.0端口接收數據并解碼,對P3.2-P3.4端口賦值,接著等待74LS138反應時間后,對P0端口賦值,再等待外部芯片反應時間后,退出中斷函數。

          結束語

          隨著科學技術的發展,智能產品設計更注重于人性化的特點。本電能表設計形成產品后市場前景廣闊, 對于我國電力市場的規劃管理,小區生活品質提升將起到積極的作用。

          本文作者創新點:1.在多用戶電能表中采用成熟的CAN總線通信技術;2.在硬件和軟件方面增加了可透支用電的人性化設計。

        c語言相關文章:c語言教程


        數字通信相關文章:數字通信原理


        電能表相關文章:電能表原理


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 宝应县| 河津市| 弥勒县| 宝兴县| 永顺县| 高雄县| 海晏县| 杭州市| 博兴县| 加查县| 酒泉市| 嘉义市| 杭锦旗| 务川| 扎兰屯市| 乌拉特中旗| 湘西| 平远县| 社旗县| 池州市| 乌拉特后旗| 南和县| 当雄县| 宝山区| 碌曲县| 潢川县| 库伦旗| 越西县| 肇州县| 富川| 福鼎市| 柳江县| 岢岚县| 海口市| 沧源| 车致| 大足县| 永平县| 中宁县| 平凉市| 玉树县|