摘要:介紹了一種基于CAN總線的電力抄表方案,設計了系統(tǒng)的軟硬件,并詳細地闡述了其工作原理。該系統(tǒng)利用AT89C52微處理器與多片8259A中斷控制器配合,實現(xiàn)分布式的電表數(shù)據(jù)的實時采集、傳輸、存儲以及顯示等功能。針對采集數(shù)據(jù)準確度低的問題,采用了中斷采集方式,不僅提高了采集數(shù)據(jù)的準確度,而且提高了系統(tǒng)的可靠性。
關鍵詞:CAN總線 中斷方式 電力抄表系統(tǒng)
CAN總線簡介
CAN為多主方式工作,網(wǎng)絡上任一節(jié)點均可以在任意時刻主動向網(wǎng)絡上其他節(jié)點發(fā)送信息;CAN網(wǎng)絡上的節(jié)點信息分成不同的優(yōu)先級,可滿足不同的實時要求; CAN采用非破壞性總線仲裁技術;CAN只需通過報文濾波即可實現(xiàn)點對點、一點對多點及全局廣播等幾種方式傳送接收數(shù)據(jù);CAN的直接通信距離最遠可達 10km(速率5kbit/s以下),通信速率最高可達1Mbit/s(此時通信距離最長為40m);CAN的每幀信息都有CRC校驗及其他檢錯措施,保證了數(shù)據(jù)出錯率極低;CAN的通信介質可為雙絞線、同軸電纜或光纜,選擇靈活。
系統(tǒng)方案設計
系統(tǒng)由以下部分組成:脈沖電度表、電量采集器、CAN轉換器、調制解調器、上位機。系統(tǒng)的結構框圖如圖1所示。
圖1 電力抄表系統(tǒng)結構框圖
由圖1可知,電量采集器實時采集居民樓脈沖電度表輸出的脈沖信號,經(jīng)CAN接口傳至CAN總線上,再經(jīng)CAN轉換器轉換和Modem實現(xiàn)上位機與下位機的通信,從而完成數(shù)據(jù)的采集、存儲、計量、顯示等功能,對整個小區(qū)每個用戶的情況實現(xiàn)實時監(jiān)控。
系統(tǒng)工作原理
電度量的采集
根據(jù)轉盤式電度表的結構,它的脈沖與轉盤所轉的圈數(shù)成正比,脈沖數(shù)累計后再乘以系數(shù)即可得到相應的電度量。為提高脈沖計量的準確性,軟件設計時采用定時連續(xù)采樣的方法。一個有效的電脈沖寬度在50ms以上,設計采用的定時周期為16ms.對于正常脈沖,定時采樣連續(xù)測得脈沖為高電平的次數(shù)≥2,見圖2。若脈沖寬度太小,測得次數(shù)不夠2次,這時可以把這個脈沖去掉。
圖2 脈沖采樣檢查示意圖
電量采集器
電量采集器的主要功能是對脈沖數(shù)據(jù)計數(shù)以及與上位機通信。它的核心器件是AT89C52微處理器與中斷控制器8259A.系統(tǒng)中,中斷源超過8級,故 8259A采用級聯(lián)方式。每個電量采集器下有5片8259A級聯(lián),從而滿足32路電量信號的輸入。電量采集器的原理框圖如圖3所示。
圖3 電量采集器原理框圖
系統(tǒng)中,8259A用來配合AT89C52控制外部中斷源。8259A為AT89C52分析、判斷、決定中斷請求信號的優(yōu)先權。來自多個電表的中斷信號經(jīng)輸入處理電路后被送到8259A.其中的一路為高電平時,8259A的IRR(中斷請求寄存器)相應位置位;接著,8259A對其IRR和IMR(中斷屏蔽寄存器)提供的情況進行分析處理,當某路中斷源未被IMR屏蔽,且該路中斷源的優(yōu)先級別高于CPU正在處理事務的級別時,8259A的17引腳產(chǎn)生一個高電平,再經(jīng)過專門的中斷申請與響應電路變?yōu)榈碗娖?
,就向AT89C52提出中斷請求,而其余的中斷信號排隊等待并保存。這樣脈沖信號就不會丟失,保證了系統(tǒng)采集信號的準確度。之后,儀表技術與傳感器得到中斷申請的AT89C52會比較當前運行程序與中斷申請的優(yōu)先級別,經(jīng)中斷申請與響應電路向8259A發(fā)回中斷響應信號
這時,AT89C52轉去執(zhí)行中斷服務程序。
為保護采集到的數(shù)據(jù),設計中采用了存儲器。存儲區(qū)可分為兩個區(qū):一個工作區(qū),存儲實時的電度量,隔一定時間刷新1次;一個備份區(qū)備份6個月的電度量,以防有用信息的丟失。
為方便用戶查詢,系統(tǒng)可在采集器中設計顯示電路LCM103,實現(xiàn)就地顯示。把它的引腳CS、WR、DA2TA和單片機的相關接口連接就可以實現(xiàn)其顯示功能。多個中斷源的數(shù)據(jù)在LCM103中采用輪流顯示方式。LCM03的10位可以分別定義為用戶戶別、表別與顯示數(shù)據(jù)。第10位為戶別,第8位為表別,其余位表示各表耗用能量的數(shù)字,第3位是小數(shù)點。第9位和第7位為空格,以便讀數(shù)清晰。
設計時,在LCM103的VDD與VLCD引腳之間加511kΩ的電阻,以使顯示亮度適中。
CAN接口轉換器
CAN轉換器由CAN控制器SJA1000和CAN驅動器PCA82C250組成。CAN轉換器負責接收上位機下達的命令并向上傳送本站點的電量,1組CAN總線上最多可掛110個站點,其框圖如圖4所示。
圖4 CAN控制器接口功能框圖
CAN轉換器
為了實現(xiàn)單片機與上位機的通信,設計了TTL電平與RS-232之間轉換的接口,如圖5所示。AT89C52本身不含控制器,所以采用了CAN控制器SJA1000和CAN驅動器PCA82C250。
圖5 RS232/CAN轉換器功能框圖
CAN總線通信波特率
計算出小區(qū)控制室上位機與電量采集器中單片機通信的波特率為40.5Kbit/s,取50Kbit/s,此時CAN總線的通信距離達1.5km,如果控制室建于負荷中心,此通信距離可以滿足要求。此時總線定時寄存器BTR0與BTR1分別為BTR0=47H=01000111B,BTR1=2FH= 0011111B.此外,為使系統(tǒng)內各站點工作時同步,上位機必須在整點時刻向各站點發(fā)布校時命令。
軟件設計
主要對采集器主程序的設計作簡要說明。它包括初始化與數(shù)據(jù)采集處理兩部分。初始化程序包括對8259A初始化。在數(shù)據(jù)采集部分,采集器主程序采取循環(huán)采集數(shù)據(jù)的方式,并對接受到的命令進行分類,然后轉相應的命令處理子程序。主程序流程圖如圖6所示。
系統(tǒng)抗干擾措施
(1)在系統(tǒng)設計中,選用了X5045芯片,該芯片中設有看門狗電路??撮T狗電路對CPU進行實時監(jiān)測,如果CPU落入死循環(huán)中,看門狗電路能及時發(fā)現(xiàn)并使整個系統(tǒng)復位。在軟件編程上,設置每隔1s訪問1次看門狗電路。若程序跑飛或超過了設置時間(本系統(tǒng)設為1.4s)沒有訪問看門狗芯片,X5045芯片將自動輸出復位脈沖,直到程序運行正常。
(2)數(shù)據(jù)采集器中設有濾波電路,對各種表產(chǎn)生的電脈沖信號進行濾波,防止信號在傳輸過程中可能受到的干擾。
(3)利用X5045芯片的電源監(jiān)控功能設置電源監(jiān)測電路及掉電保護電路,以防止掉電后數(shù)據(jù)丟失。
結束語
基于CAN總線的電力抄表系統(tǒng)采用了智能數(shù)據(jù)采集,通過CAN總線進行數(shù)據(jù)通信交換,系統(tǒng)響應速度快,抗干擾能力強;網(wǎng)絡的可靠性高,通信波特率高,數(shù)據(jù)傳輸量大;結構簡單,安裝、維護方便。系統(tǒng)可以方便地實現(xiàn)實時監(jiān)測、高速數(shù)據(jù)采集、查表打印、系統(tǒng)監(jiān)控等功能,具有較好的應用前景。