摘è¦ï¼šä»‹ç´¹äº†ä¸€ç¨®åŸºäºŽCAN總線的電力抄表方案,è¨(shè)計(jì)了系統(tÇ’ng)的軟硬件,并詳細(xì)地闡述了其工作原ç†ã€‚該系統(tÇ’ng)利用AT89C52微處ç†å™¨èˆ‡å¤šç‰‡8259A䏿–·æŽ§åˆ¶å™¨é…åˆï¼Œå¯¦(shÃ)ç¾(xià n)分布å¼çš„電表數(shù)據(jù)的實(shÃ)時(shÃ)采集ã€å‚³è¼¸ã€å˜å„²ä»¥åŠé¡¯ç¤ºç‰åŠŸèƒ½ã€‚é‡å°é‡‡é›†æ•¸(shù)據(jù)準(zhÇ”n)確度低的å•é¡Œï¼Œé‡‡ç”¨äº†ä¸æ–·é‡‡é›†æ–¹å¼ï¼Œä¸åƒ…æé«˜äº†é‡‡é›†æ•¸(shù)據(jù)的準(zhÇ”n)確度,而且æé«˜äº†ç³»çµ±(tÇ’ng)çš„å¯é 性。
é—œ(guÄn)éµè©žï¼šCAN總線 䏿–·æ–¹å¼ 電力抄表系統(tÇ’ng)
CAN總線簡介
CAN為多主方å¼å·¥ä½œï¼Œç¶²(wÇŽng)絡(luò)上任一節(jié)點(diÇŽn)å‡å¯ä»¥åœ¨ä»»æ„時(shÃ)刻主動å‘ç¶²(wÇŽng)絡(luò)上其他節(jié)點(diÇŽn)發(fÄ)é€ä¿¡æ¯ï¼›CANç¶²(wÇŽng)絡(luò)上的節(jié)點(diÇŽn)ä¿¡æ¯åˆ†æˆä¸åŒçš„優(yÅu)å…ˆç´šï¼Œå¯æ»¿è¶³ä¸åŒçš„實(shÃ)時(shÃ)è¦æ±‚ï¼› CAN采用éžç ´å£žæ€§ç¸½ç·šä»²è£æŠ€è¡“(shù)ï¼›CANåªéœ€é€šéŽå ±(bà o)文濾波å³å¯å¯¦(shÃ)ç¾(xià n)點(diÇŽn)å°é»ž(diÇŽn)ã€ä¸€é»ž(diÇŽn)å°å¤šé»ž(diÇŽn)åŠå…¨å±€å»£æ’ç‰å¹¾ç¨®æ–¹å¼å‚³é€æŽ¥æ”¶æ•¸(shù)據(jù)ï¼›CAN的直接通信è·é›¢æœ€é (yuÇŽn)å¯é”(dá) 10km(速率5kbit/s以下),通信速率最高å¯é”(dá)1Mbit/sï¼ˆæ¤æ™‚(shÃ)通信è·é›¢æœ€é•·ç‚º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Ã)采集居民樓脈沖電度表輸出的脈沖信號,經(jÄ«ng)CAN接å£å‚³è‡³CAN總線上,å†ç¶“(jÄ«ng)CAN轉(zhuÇŽn)æ›å™¨è½‰(zhuÇŽn)æ›å’ŒModem實(shÃ)ç¾(xià n)ä¸Šä½æ©Ÿ(jÄ«)èˆ‡ä¸‹ä½æ©Ÿ(jÄ«)çš„é€šä¿¡ï¼Œå¾žè€Œå®Œæˆæ•¸(shù)據(jù)的采集ã€å˜å„²ã€è¨ˆ(jì)é‡ã€é¡¯ç¤ºç‰åŠŸèƒ½ï¼Œå°æ•´å€‹(gè)å°å€(qÅ«)æ¯å€‹(gè)用戶的情æ³å¯¦(shÃ)ç¾(xià n)實(shÃ)時(shÃ)監(jiÄn)控。
系統(tÇ’ng)工作原ç†
電度é‡çš„采集
æ ¹æ“š(jù)轉(zhuÇŽn)盤å¼é›»åº¦è¡¨çš„çµ(jié)æ§‹(gòu),它的脈沖與轉(zhuÇŽn)盤所轉(zhuÇŽn)的圈數(shù)æˆæ£æ¯”,脈沖數(shù)累計(jì)åŽå†ä¹˜ä»¥ç³»æ•¸(shù)å³å¯å¾—到相應(yÄ«ng)的電度é‡ã€‚為æé«˜è„ˆæ²–計(jì)é‡çš„æº–(zhÇ”n)確性,軟件è¨(shè)計(jì)時(shÃ)采用定時(shÃ)連續(xù)采樣的方法。一個(gè)有效的電脈沖寬度在50ms以上,è¨(shè)計(jì)采用的定時(shÃ)周期為16ms.å°äºŽæ£å¸¸è„ˆæ²–,定時(shÃ)采樣連續(xù)測得脈沖為高電平的次數(shù)≥2,見圖2。若脈沖寬度太å°ï¼Œæ¸¬å¾—次數(shù)ä¸å¤ 2次,這時(shÃ)å¯ä»¥æŠŠé€™å€‹(gè)脈沖去掉。
圖2 脈沖采樣檢查示æ„圖
é›»é‡é‡‡é›†å™¨
é›»é‡é‡‡é›†å™¨çš„主è¦åŠŸèƒ½æ˜¯å°è„ˆæ²–數(shù)據(jù)計(jì)數(shù)以åŠèˆ‡ä¸Šä½æ©Ÿ(jÄ«)é€šä¿¡ã€‚å®ƒçš„æ ¸å¿ƒå™¨ä»¶æ˜¯AT89C52微處ç†å™¨èˆ‡ä¸æ–·æŽ§åˆ¶å™¨8259A.系統(tÇ’ng)ä¸ï¼Œä¸æ–·æºè¶…éŽ8級,故 8259A采用級è¯(lián)æ–¹å¼ã€‚æ¯å€‹(gè)é›»é‡é‡‡é›†å™¨ä¸‹æœ‰5片8259Aç´šè¯(lián),從而滿足32路電é‡ä¿¡è™Ÿçš„輸入。電é‡é‡‡é›†å™¨çš„åŽŸç†æ¡†åœ–如圖3所示。
圖3 電é‡é‡‡é›†å™¨åŽŸç†æ¡†åœ–
系統(tÇ’ng)ä¸ï¼Œ8259A用來é…åˆAT89C52æŽ§åˆ¶å¤–éƒ¨ä¸æ–·æºã€‚8259A為AT89C52分æžã€åˆ¤æ–·ã€æ±ºå®šä¸æ–·è«‹æ±‚信號的優(yÅu)先權(quán)。來自多個(gè)é›»è¡¨çš„ä¸æ–·ä¿¡è™Ÿç¶“(jÄ«ng)輸入處ç†é›»è·¯åŽè¢«é€åˆ°8259A.å…¶ä¸çš„一路為高電平時(shÃ),8259Açš„IRRï¼ˆä¸æ–·è«‹æ±‚寄å˜å™¨ï¼‰ç›¸æ‡‰(yÄ«ng)ä½ç½®ä½ï¼›æŽ¥è‘—,8259Aå°å…¶IRRå’ŒIMRï¼ˆä¸æ–·å±è”½å¯„å˜å™¨ï¼‰æä¾›çš„æƒ…æ³é€²(jìn)行分æžè™•ç†ï¼Œç•¶(dÄng)æŸè·¯ä¸æ–·æºæœªè¢«IMRå±è”½ï¼Œä¸”è©²è·¯ä¸æ–·æºçš„優(yÅu)先級別高于CPUæ£åœ¨è™•ç†äº‹å‹™(wù)的級別時(shÃ),8259Açš„17引腳產(chÇŽn)生一個(gè)高電平,å†ç¶“(jÄ«ng)éŽå°ˆé–€çš„䏿–·ç”³è«‹èˆ‡éŸ¿æ‡‰(yÄ«ng)電路變?yÅu)榈碗娖?

,就å‘AT89C52æå‡ºä¸æ–·è«‹æ±‚ï¼Œè€Œå…¶ä½™çš„ä¸æ–·ä¿¡è™ŸæŽ’隊(duì)ç‰å¾…å¹¶ä¿å˜ã€‚é€™æ¨£è„ˆæ²–ä¿¡è™Ÿå°±ä¸æœƒä¸Ÿå¤±ï¼Œä¿è‰äº†ç³»çµ±(tÇ’ng)采集信號的準(zhÇ”n)確度。之åŽï¼Œå„€è¡¨æŠ€è¡“(shù)èˆ‡å‚³æ„Ÿå™¨å¾—åˆ°ä¸æ–·ç”³è«‹çš„AT89C52會比較當(dÄng)å‰é‹(yùn)行程åºèˆ‡ä¸æ–·ç”³è«‹çš„優(yÅu)先級別,經(jÄ«ng)䏿–·ç”³è«‹èˆ‡éŸ¿æ‡‰(yÄ«ng)電路å‘8259A發(fÄ)å›žä¸æ–·éŸ¿æ‡‰(yÄ«ng)信號

這時(shÃ),AT89C52轉(zhuÇŽn)去執(zhÃ)è¡Œä¸æ–·æœå‹™(wù)程åºã€‚
為ä¿è·(hù)采集到的數(shù)據(jù),è¨(shè)計(jì)ä¸é‡‡ç”¨äº†å˜å„²å™¨ã€‚å˜å„²å€(qÅ«)å¯åˆ†ç‚ºå…©å€‹(gè)å€(qÅ«):一個(gè)工作å€(qÅ«),å˜å„²å¯¦(shÃ)時(shÃ)的電度é‡ï¼Œéš”一定時(shÃ)間刷新1次;一個(gè)備份å€(qÅ«)備份6個(gè)月的電度é‡ï¼Œä»¥é˜²æœ‰ç”¨ä¿¡æ¯çš„丟失。
為方便用戶查詢,系統(tÇ’ng)å¯åœ¨é‡‡é›†å™¨ä¸è¨(shè)計(jì)顯示電路LCM103,實(shÃ)ç¾(xià n)就地顯示。把它的引腳CSã€WRã€DA2TA和單片機(jÄ«)的相關(guÄn)接å£é€£æŽ¥å°±å¯ä»¥å¯¦(shÃ)ç¾(xià n)其顯示功能。多個(gè)䏿–·æºçš„æ•¸(shù)據(jù)在LCM103ä¸é‡‡ç”¨è¼ªæµé¡¯ç¤ºæ–¹å¼ã€‚LCM03çš„10ä½å¯ä»¥åˆ†åˆ¥å®šç¾©ç‚ºç”¨æˆ¶æˆ¶åˆ¥ã€è¡¨åˆ¥èˆ‡é¡¯ç¤ºæ•¸(shù)據(jù)。第10ä½ç‚ºæˆ¶åˆ¥ï¼Œç¬¬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Å«)動器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Å«)動器PCA82C250。
圖5 RS232/CAN轉(zhuÇŽn)æ›å™¨åŠŸèƒ½æ¡†åœ–
CAN總線通信波特率
計(jì)算出å°å€(qÅ«)æŽ§åˆ¶å®¤ä¸Šä½æ©Ÿ(jÄ«)與電é‡é‡‡é›†å™¨ä¸å–®ç‰‡æ©Ÿ(jÄ«)通信的波特率為40.5Kbit/s,å–50Kbit/sï¼Œæ¤æ™‚(shÃ)CAN總線的通信è·é›¢é”(dá)1.5kmï¼Œå¦‚æžœæŽ§åˆ¶å®¤å»ºäºŽè² (fù)è·ä¸å¿ƒï¼Œæ¤é€šä¿¡è·é›¢å¯ä»¥æ»¿è¶³è¦æ±‚ã€‚æ¤æ™‚(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ì)
主è¦å°é‡‡é›†å™¨ä¸»ç¨‹åºçš„è¨(shè)計(jì)作簡è¦èªªæ˜Žã€‚它包括åˆå§‹åŒ–與數(shù)據(jù)采集處ç†å…©éƒ¨åˆ†ã€‚åˆå§‹åŒ–程åºåŒ…括å°8259Aåˆå§‹åŒ–。在數(shù)據(jù)采集部分,采集器主程åºé‡‡å–循環(huán)采集數(shù)據(jù)的方å¼ï¼Œå¹¶å°æŽ¥å—到的命令進(jìn)行分類,然åŽè½‰(zhuÇŽn)相應(yÄ«ng)的命令處ç†å程åºã€‚ä¸»ç¨‹åºæµç¨‹åœ–如圖6所示。
系統(tǒng)抗干擾措施
(1)在系統(tÇ’ng)è¨(shè)計(jì)ä¸ï¼Œé¸ç”¨äº†X5045芯片,該芯片ä¸è¨(shè)有看門狗電路。看門狗電路å°CPU進(jìn)行實(shÃ)時(shÃ)監(jiÄn)測,如果CPUè½å…¥æ»å¾ªç’°(huán)ä¸ï¼Œçœ‹é–€ç‹—é›»è·¯èƒ½åŠæ™‚(shÃ)發(fÄ)ç¾(xià n)并使整個(gè)系統(tÇ’ng)復(fù)ä½ã€‚在軟件編程上,è¨(shè)ç½®æ¯éš”1s訪å•1次看門狗電路。若程åºè·‘飛或超éŽäº†è¨(shè)置時(shÃ)間(本系統(tÇ’ng)è¨(shè)為1.4s)沒有訪å•看門狗芯片,X5045芯片將自動輸出復(fù)ä½è„ˆæ²–,直到程åºé‹(yùn)行æ£å¸¸ã€‚
(2)數(shù)據(jù)采集器ä¸è¨(shè)有濾波電路,å°å„種表產(chÇŽn)生的電脈沖信號進(jìn)行濾波,防æ¢ä¿¡è™Ÿåœ¨å‚³è¼¸éŽç¨‹ä¸å¯èƒ½å—到的干擾。
(3)利用X5045芯片的電æºç›£(jiÄn)控功能è¨(shè)置電æºç›£(jiÄn)æ¸¬é›»è·¯åŠæŽ‰é›»ä¿è·(hù)é›»è·¯ï¼Œä»¥é˜²æ¢æŽ‰é›»åŽæ•¸(shù)據(jù)丟失。
çµ(jié)æŸèªž
基于CAN總線的電力抄表系統(tÇ’ng)采用了智能數(shù)據(jù)采集,通éŽCAN總線進(jìn)行數(shù)據(jù)通信交æ›ï¼Œç³»çµ±(tÇ’ng)響應(yÄ«ng)速度快,抗干擾能力強(qiáng);網(wÇŽng)絡(luò)çš„å¯é 性高,通信波特率高,數(shù)據(jù)傳輸é‡å¤§ï¼›çµ(jié)æ§‹(gòu)簡單,安è£ã€ç¶è·(hù)方便。系統(tÇ’ng)å¯ä»¥æ–¹ä¾¿åœ°å¯¦(shÃ)ç¾(xià n)實(shÃ)時(shÃ)監(jiÄn)測ã€é«˜é€Ÿæ•¸(shù)據(jù)é‡‡é›†ã€æŸ¥è¡¨æ‰“å°ã€ç³»çµ±(tÇ’ng)監(jiÄn)控ç‰åŠŸèƒ½ï¼Œå…·æœ‰è¼ƒå¥½çš„æ‡‰(yÄ«ng)ç”¨å‰æ™¯ã€‚