引言
在實際應用中, 越來越多像學校、工廠宿舍等用戶密集場合,采用了一塊表計量多個用戶的多用戶電能表,這種新型電能表對于降低人力與管理成本是顯而易見的。然而,盡管采用通信方式種類繁多,多用戶電能表系統(tǒng)的通信不穩(wěn)定一直是難以解決的問題。在本設計中,采用CAN總線通信的方式設計新表,能滿足通信穩(wěn)定、實時準確的要求;而且該表增加可透支用電的設計,解決了眾多多用戶電能表欠費即斷電,給不能及時繳費的用戶帶來不便的問題。
1 CAN 總線與電能表的特點
1.1 CAN 的優(yōu)點
CAN(controller area network)是一種應用在生產現場、在微機化測控設備之間實現雙向串行多節(jié)點數字通信的現場總線。CAN與其他總線有明顯優(yōu)勢:1. CAN總線具有非破壞性仲裁,支持競爭,通信采用“多主對等”方式;2.CAN總線組網非常靈活,通信速度最大可到1Mb/s;3.CAN總線采用CRC檢驗并有錯誤處理功能,當節(jié)點錯誤時,能自動關閉輸出,使總線上的其它節(jié)點及通信不受影響。這些特點為電能表穩(wěn)定通信提供了條件。
1.2 多用戶電能表的特點
1、電力部門上位機通過RS232 接口轉CAN 總線接入網絡采集各電能表。通過上位機軟件實時監(jiān)控電能表,具有分時計費、對表設置繳費管理模式和修改參數等功能。
2、該電能表有過載保護功能,當用戶負載超過允用最大負載時,表自動對該用戶斷電。
3、該表還具有透支模式,用戶可現場操作,能提供定量的臨時供電,為不方便及時繳費的欠費斷電用戶提供了便利。
2 多用戶電能表硬件設計
電能表硬件系統(tǒng)結構如圖1所示, 整個系統(tǒng)由7大部分組成: 選擇及放大電路、A/D轉換電路、斷電控制模塊、CAN通訊模塊、LED顯示、存儲器FM1608,X5045和單片機AT89C52。當用戶用電時,對應的CT(電流互感線器)和PT(電壓互感線器)產生感應電壓小信號,小信號由選擇及放大電路選擇通道和放大后,至A/D轉換電路變?yōu)?a target="_blank">數字信號,由單片機(AT89C52)進行處理,將數據保存至FM1608/X5045中,同時由LED顯示電量,當有通信時,單片機將數據經由CAN通信模塊,上傳至上位機。
圖1 系統(tǒng)總體框圖
2.1 選擇及放大電路設計
選擇及放大電路由多路選擇電路和兩級放大電路組成。單片機引腳P2.0片選一74HC377芯片控制5片CD4051芯片使能端,P0口放送一字節(jié)編碼字,字節(jié)前5位片選5個CD4051的INH,后3位控制A/B/C引腳,選擇其中一條電流或電壓感應通路,而使其他通路處于斷開狀態(tài)。
放大電路由兩片LM358芯片級聯,將所選的通路的小信號線性放大,放大到適應A/D芯片處理的采樣信號,信號進入A/D芯片后,由模擬信號轉化為數字信號,這樣單片機才能進行數據處理。多路選擇及放大電路如圖2。
圖 2 多路選擇及放大電路
2.2 A/D轉換電路和存儲電路的設計
A/D轉換電路選用AD574A芯片,它是一種快速12位逐次比較式A/D轉換芯片,這里直接與8位AT89C52相連。不需要外接時鐘和參考電壓等電路就可以正常工作。
在用戶用電時,AD574A將感應的模擬信號轉換為12位的數字信號,P2.2端口片選,控制AD574A的工作狀態(tài)的讀取數據,P0端口通過兩次讀取A/D芯片輸出的12位數據。當32路中某一電流和電壓感應數據讀入MCU內部寄存器后,和參數進行乘法運算,得出能量數據,并累加在FM1608芯片相應地址中。
FM1608芯片可萬億次以上的讀寫次數,掉電數據大于10年。MCU由RD、WR對其片選,P0通過鎖存芯片,對FM1608尋址和讀寫數據操作,當數據累加達到0.1度時重新歸零。
X5045芯片有看門狗定時器和保存數據功能,當程序陷入死循環(huán)時,X5045 Rst引腳發(fā)出復位信號,使單片機復位重啟,保障了電能表正常工作;X5045內部相應地址中保存了該表的通信地址,32戶電量度數、用電模式、功率限制,還有感應線圈的調整參數等。
開關K1-K3外接P1.2-P1.4,K1-K2設置表參數;K3為用戶鍵,當LED顯示某戶電量時,長按K3超過5秒,MCU發(fā)給該戶繼電器閉合指令,實現電源供電。這部分的電路圖如下圖3。
圖3 A/D轉換和存儲電路框圖
2.3 顯示電路設計
顯示電路由兩片MC1413P驅動數碼管、一片CD4051芯片、2片74HC377芯片、及4個兩位數碼管組成。單片機由X5045中依次讀取32戶的用電數據,譯碼為數碼管顯示數字的字節(jié),復用P1端口輸出,經由兩片74HC377鎖存器鎖存,再由CD4051芯片動態(tài)選擇其中一路,通過MC1413P驅動數碼管,送到a—g及DP上.對8位LED的動態(tài)掃描。前兩位數碼管顯示用戶編碼,后面六位為用戶用電總度數。
2.4 斷電控制模塊設計
該模塊控制繼電器的通斷電,斷電控制模塊主要由AT89C2051、1片74LS138、8片74HC377,32片BH3023芯片和32個繼電器組成。當存儲電路X5045中管理通斷電控制地址的數據發(fā)生變化時,AT89C52通過TXD向斷電控制模塊發(fā)送字節(jié),斷電控制模塊根據字節(jié),通過AT89C2051引腳P3.2-P3.4編碼輸出,由74LS138片選相關74HC377芯片,同時P1口對該鎖存器輸出一個字節(jié),到達所在BH3023芯片,BH3023芯片對其管理的繼電器發(fā)送命令,繼電器做出通斷反應。
2.5 CAN通信模塊設計
CAN通信模塊負責上位機與電能表的通信,當上位機下達指令時,通信模塊譯碼并傳給AT89C52;AT89C52根據指令內容,做出上傳數據、修改參數或給斷電控制模塊發(fā)指令等。
圖4 CAN模塊電路框圖
通信模塊主要由AT89C51、X5045、SJA1000、PCA82C250芯片組成。SJA1000是一個獨立的控制器,有BasicCAN和PeliCAN兩種不同的模式,SJA1000的內部功能模塊主要有:接口
管理邏輯、接收FIFO 隊列、接收濾波器、發(fā)送緩沖器和CAN核心模塊。CAN核心模塊基于
CAN2. 0B的協(xié)議執(zhí)行對CAN幀的發(fā)送和接收。
CAN通信模塊中X5045芯片主要用途為看門狗定時器,當AT89C51陷入死循環(huán)時,X5045發(fā)出重啟電平,使AT89C51復位重啟,保障了CAN通信正常工作。模塊框圖如圖4所示。
3 多用戶電能表軟件設計
該表軟件采用模塊化設計,*立分為計量存儲顯示、CAN 通信模塊、斷電控制模塊三大主程序。為了實現每個主程序的功能, 又把各主程序劃分為若干個相應功能子程序或小模塊。主程序的作用是系統(tǒng)的初始化、中斷管理以及各功能模塊的調用等。
3.1 計量存儲顯示程序設計
計量存儲顯示模塊硬件設計比較復雜,時序要求嚴格, CPU內程序存儲器容量有限,所以軟件采用匯編語言編制,以更好地控制時序和代碼空間。整個程序采用模塊化編程,主要包含初始化模塊、電量采集模塊、數據存儲模塊、信息顯示模塊、串行通信模塊、供電控制模塊等。
軟件設計過程中,考慮到采集數據不能出現錯采、漏采等現象以及高可靠性要求,必須采用必要的軟件抗干擾措施,如軟件陷阱、指令冗余、程序運行監(jiān)視、數據校驗、數據備份、數據寫入存儲器判斷等措施。其主程序流程設計思想如圖5所示。
圖5 計量存儲顯示主程序框圖
3.2 CAN通信模塊程序設計
CAN通信模塊主程序包括看門狗的初始化子程序(X5045_Rstdog()); 串行通信初始化子程序(Serial_init()); SJA1000 初始化程序子設計(CAN_Init()); 發(fā)送程序子設計(CAN_Send_Trans()); 以及接收程序設計子程序(CAN_Rece_Trans())。
CAN通信模塊上電或復位后,先串行通信初始化程序負責設置波特率,讀取電能表表號等;接著CAN初始化程序主要是對SJA1000寄存器的初始化,包括:定義BasicCAN、驗收屏蔽碼、總線的位速率、位周期內的采樣點和采樣數量、管腳RX0、TX0的輸入輸出模式和配置。這些完成后,要清除SJA1000的復位請求標志進入工作模式, SJA1000準備進行報文的發(fā)送和接收;最后程序進入循環(huán)等待中。當上位機有指令下達,引起中斷,調用中斷函數和相關的發(fā)送接收子程序。
該主程序設計采用基于Keil C的C語言進行編程,調用基本庫函數來實現各種功能。
3.3 斷電模塊程序設計
斷電模塊上電或復位后,程序先進行串行端口波特率初始化等,接著進入循環(huán)等待狀態(tài),串行中斷發(fā)生時,調用串行通信中斷函數,由P3.0端口接收數據并解碼,對P3.2-P3.4端口賦值,接著等待74LS138反應時間后,對P0端口賦值,再等待外部芯片反應時間后,退出中斷函數。
結束語
隨著科學技術的發(fā)展,智能產品設計更注重于人性化的特點。本電能表設計形成產品后市場前景廣闊, 對于我國電力市場的規(guī)劃管理,小區(qū)生活品質提升將起到積極的作用。
-
芯片
+關注
關注
453文章
50254瀏覽量
421126 -
單片機
+關注
關注
6030文章
44500瀏覽量
632195 -
CAN總線
+關注
關注
145文章
1926瀏覽量
130578
發(fā)布評論請先 登錄
相關推薦
評論