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