1. 引言
目前我國普遍采用戶用計(jì)量?jī)x表即水表,、電表、燃?xì)獗?、熱表(四表)安裝在用戶室內(nèi), 抄表人員走家串戶,,手工抄表采集數(shù)據(jù),,然后結(jié)算的計(jì)量收費(fèi)方式。為了有效解決入戶抄表收費(fèi)存在的諸多弊端, 我國從90年代初開始研制全電子式電能表,并且取得了一定的成果,。目前已研制出多種遠(yuǎn)程抄表系統(tǒng),,常用的有用基于電力線載波的抄表系統(tǒng),基于RS-485總線的抄表系統(tǒng)等,。
基于電力線載波的抄表系統(tǒng),,減少了系統(tǒng)由于布線帶來的成本,但是由于信號(hào)和強(qiáng)電在同一根線上傳輸,,傳輸過程中不可避免地存在強(qiáng)電場(chǎng)的干擾,,信號(hào)的可靠性受到影響,而且隨著傳輸距離的增大,,信號(hào)的衰減較快,,影響了抄表數(shù)據(jù)的可靠性;基于RS-485的抄表系統(tǒng)是較為理想的一種遠(yuǎn)程抄表系統(tǒng),,它采用的是主從式的通信方式,,任何時(shí)候只允許一個(gè)節(jié)點(diǎn)向網(wǎng)絡(luò)發(fā)送數(shù)據(jù),所以RS-485多采用主從結(jié)構(gòu)的命令型通信方式來防止數(shù)據(jù)通訊故障,,數(shù)據(jù)通信時(shí)必須由主節(jié)點(diǎn)接收到管理主機(jī)的命令,,然后由主節(jié)點(diǎn)向各個(gè)從節(jié)點(diǎn)傳達(dá)命令,從節(jié)點(diǎn)的數(shù)據(jù)依次送至主節(jié)點(diǎn),,最后再由主節(jié)點(diǎn)將各從節(jié)點(diǎn)的數(shù)據(jù)發(fā)送至管理主機(jī),。從數(shù)據(jù)通信過程可以看出,如果主節(jié)點(diǎn)出現(xiàn)故障,,則整個(gè)系統(tǒng)會(huì)陷入癱瘓狀態(tài),。另外,隨著居民區(qū)的用戶的不斷擴(kuò)大,,要求抄表系統(tǒng)現(xiàn)場(chǎng)數(shù)據(jù)通信距離也隨之增加,,由于采用485總線在9600bps下能達(dá)到的最遠(yuǎn)傳輸距離小于1200米,因而需要增加一個(gè)或多個(gè)中繼以實(shí)現(xiàn)數(shù)據(jù)的較遠(yuǎn)發(fā)送和接收,。因?yàn)?85為半雙工通信,,中繼器在工作中必須判斷網(wǎng)絡(luò)數(shù)據(jù)流向,所以中繼器的結(jié)構(gòu)復(fù)雜,,導(dǎo)致增加了系統(tǒng)成本,,降低了系統(tǒng)的可靠性。
CAN(Controller Area Network)是控制器局域網(wǎng)的簡(jiǎn)稱它是德國Bosch公司在1986年開發(fā)的一種串行數(shù)據(jù)通信總線,。CAN網(wǎng)絡(luò)上的節(jié)點(diǎn)不分主從,,任一節(jié)點(diǎn)均可在任意時(shí)刻主動(dòng)地向網(wǎng)絡(luò)上其他節(jié)點(diǎn)發(fā)送信息,通信方式靈活,,利用這一特點(diǎn)可方便地構(gòu)成多機(jī)備份系統(tǒng),,CAN采用非破壞性總線仲裁技術(shù),,當(dāng)多個(gè)節(jié)點(diǎn)同時(shí)向總線發(fā)送信息時(shí),優(yōu)先級(jí)較低的節(jié)點(diǎn)會(huì)主動(dòng)地退出,,而最高優(yōu)先級(jí)的節(jié)點(diǎn)可不受影響地繼續(xù)傳輸數(shù)據(jù),,從而節(jié)省了總線沖突的仲裁時(shí)間。
針對(duì)它們各自的特點(diǎn),我們采用符合國際標(biāo)準(zhǔn)ISO 11898的CAN總線技術(shù)和目前儀表和自動(dòng)化裝置常用的RS-485總線構(gòu)成雙層網(wǎng)絡(luò)結(jié)構(gòu),,這種網(wǎng)絡(luò)結(jié)構(gòu)有效地解決了系統(tǒng)的建設(shè)成本高,、數(shù)據(jù)管理困難、可靠性不高以及可擴(kuò)展性能差等問題,。
2.系統(tǒng)的總體設(shè)計(jì)框架
本系統(tǒng)采用雙層網(wǎng)絡(luò)的構(gòu)架,,見圖1。
目前我國四表普遍安裝在戶內(nèi),工作環(huán)境不算惡劣,,所以本系統(tǒng)低層網(wǎng)絡(luò)采用 RS-485總線,。它具有結(jié)構(gòu)簡(jiǎn)單、成本低廉,、對(duì)布線要求不高的特點(diǎn),;而且RS-485總線在9600bps下最遠(yuǎn)傳輸距離可以達(dá)到1200米,完全能夠完成一棟樓家用控制器與集中控制器遠(yuǎn)程通訊的距離需求;再加上它們之間的通訊數(shù)據(jù)量小,數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)單,,所以RS-485總線能夠可靠地完成低層數(shù)據(jù)采集的需要,。高層網(wǎng)絡(luò)采用兼容性能好,、可靠性能高,、數(shù)據(jù)傳輸速度快、傳輸距離遠(yuǎn)(在5000bps時(shí)傳輸距離10km)的CAN總線,。CAN總線采用短幀結(jié)構(gòu),傳輸時(shí)間短,受干擾概率低,;有CRC校驗(yàn)和出錯(cuò)標(biāo)定能力;而且具有故障節(jié)點(diǎn)自動(dòng)脫離CAN總線等功能,,特別適合所處環(huán)境惡劣,,數(shù)據(jù)交換較頻繁的集中控制器與管理中心計(jì)算機(jī)之間的通信。
系統(tǒng)由家用控制器,、集中控制器,、管理中心主機(jī)組成二級(jí)分布式監(jiān)控式系統(tǒng)。家用控制器以單片機(jī)為核心,能接收耗能表(四表)送出的脈沖信號(hào),并且進(jìn)行計(jì)數(shù),、數(shù)據(jù)處理,、保存數(shù)據(jù)、發(fā)送用戶信息和顯示用戶狀態(tài)信息等功能,為了提高可靠性,,配有獨(dú)立的備用電源供電,。集中控制器可對(duì)一定數(shù)量的家用控制器進(jìn)行集中管理,將各家用控制器采集到的數(shù)據(jù)傳送至管理中心,同時(shí)為了保證用戶信息的安全,將采集到的數(shù)據(jù)進(jìn)行備份處理,,同樣它也有備用電源可在停電時(shí)繼續(xù)給控制器供電,。一般情況下,一棟樓配置一個(gè)集中控制器,。小區(qū)管理中心主機(jī)通過運(yùn)行遠(yuǎn)程抄表管理軟件來處理下位機(jī)傳送來的數(shù)據(jù)信息,例如進(jìn)行統(tǒng)計(jì)、交費(fèi)管理,、報(bào)表,、網(wǎng)絡(luò)事故報(bào)警等操作。為了降低系統(tǒng)的設(shè)計(jì)成本,,RS-485與CAN皆采用價(jià)格低廉的雙絞線連接,。
3. CAN總線的通信協(xié)議
3.1 CAN總線上的電平
CAN總線具有兩種邏輯狀態(tài):隱性或顯性。在隱性狀態(tài)下VCANL和VCANH被固定于平均電壓電平,,Vdiff近似為零,。顯性狀態(tài)以大于最小閾值的差分電壓來表示。
顯位(0):VCANH 3.5V,,VCANL 1.5V
隱位(1):VCANH 2.5V,,VCANL 2.5V
3.2 總線仲裁
仲裁期間,每個(gè)進(jìn)行發(fā)送的節(jié)點(diǎn)都將其發(fā)送的位電平與監(jiān)控總線電平進(jìn)行比較,任何發(fā)送一個(gè)隱性位而監(jiān)視到一個(gè)顯性位電平的節(jié)點(diǎn)立即變成接收器,而不破壞總線上的任何信息,等到總線空閑時(shí),再重新發(fā)送報(bào)文。報(bào)文標(biāo)識(shí)符的二進(jìn)制數(shù)值越低,其優(yōu)先級(jí)越高,。
3.3 CAN總線的報(bào)文格式
CAN技術(shù)規(guī)范定義了CAN報(bào)文格式,。CAN定義了四種不同的幀,數(shù)據(jù)幀,、遠(yuǎn)程幀,、出錯(cuò)幀、超載幀,。
數(shù)據(jù)幀的組成格式見圖2,。
幀起始:1個(gè)顯位,標(biāo)志幀的開始,。
仲裁場(chǎng):由標(biāo)志符和遠(yuǎn)程發(fā)送請(qǐng)求位(RTR)組成,。
控制場(chǎng):數(shù)據(jù)長(zhǎng)度碼和兩個(gè)保留位。
數(shù)據(jù)場(chǎng):包括0 ~8個(gè)字節(jié),,每個(gè)字節(jié)8位,。
CRC:CRC序列與CRC界定符。
應(yīng)答場(chǎng)(ACK):應(yīng)答間隙與應(yīng)答界定符,。
遠(yuǎn)程幀的組成格式和數(shù)據(jù)幀類似包括幀起始,、仲裁場(chǎng)、控制場(chǎng),、CRC和應(yīng)答場(chǎng),,與數(shù)據(jù)幀相反,遠(yuǎn)程幀的RTR位是隱位,,遠(yuǎn)程幀不存在數(shù)據(jù)場(chǎng),。
出錯(cuò)幀由兩個(gè)不同的場(chǎng)組成,第一個(gè)場(chǎng)由來自各站的錯(cuò)誤標(biāo)志疊加得到,第二個(gè)場(chǎng)是出錯(cuò)界定符,。
超載幀包括兩個(gè)位場(chǎng),超載標(biāo)志和超載界定符,。
幀間空間包括間歇場(chǎng)和總線空閑場(chǎng)。
4. 集中抄表器的硬件設(shè)計(jì)
4.1集中抄表器的硬件設(shè)計(jì)
由于底層采用的是RS-485,而網(wǎng)絡(luò)上層采用的是CAN總線協(xié)議,,這就要求集中抄表器不但具有數(shù)據(jù)采集,、數(shù)據(jù)備份,而且應(yīng)該具有協(xié)議轉(zhuǎn)換的網(wǎng)橋功能,。CAN與RS-485總線轉(zhuǎn)換網(wǎng)橋的設(shè)計(jì)原理圖見圖3,。
網(wǎng)橋的微控制器采用TI的MSP430F449,它負(fù)責(zé)整個(gè)網(wǎng)橋的監(jiān)控任務(wù),。CAN控制器接口電路由CAN通信控制器SJA1000和CAN總線收發(fā)器82C250組成,,為了提高系統(tǒng)的可靠性和抗干擾能力,可以在SJA1000和82C250之間增加光耦合電路,。RS-485總線端所使用的是內(nèi)部具有光耦合的差動(dòng)收發(fā)器MAX1480,。網(wǎng)橋中設(shè)計(jì)的LED,可用于網(wǎng)橋上的上電指示,,總線收發(fā)狀態(tài)及故障情況指示,,網(wǎng)橋的看門狗采用了一片X25045。X25045除了具有看門狗和上電復(fù)位功能外,,內(nèi)部還集成了512個(gè)字節(jié)的串行EEPROM,,用于保存網(wǎng)橋參數(shù)配置等信息。網(wǎng)橋的配置可通過CAN總線或RS-485總線實(shí)現(xiàn),,通過網(wǎng)橋的適當(dāng)配置可以很方便的實(shí)現(xiàn)報(bào)文的過濾,。
4.2集中抄表器的軟件設(shè)計(jì)
網(wǎng)橋總線數(shù)據(jù)的接受均采用中斷的方式,在主監(jiān)控中實(shí)現(xiàn)數(shù)據(jù)的發(fā)送,,內(nèi)存采用FIFO機(jī)制管理,。
由于RS-485總線與CAN總線是兩種不同的總線形式。相互進(jìn)行數(shù)據(jù)通訊時(shí),,需要進(jìn)行協(xié)議轉(zhuǎn)換。CAN總線標(biāo)準(zhǔn)具有物理層和數(shù)據(jù)鏈路層協(xié)議,,以幀為單位進(jìn)行數(shù)據(jù)通信,,而且每幀均攜帶相應(yīng)的ID標(biāo)志符,而RS-485本質(zhì)上是一個(gè)物理標(biāo)準(zhǔn),,以字節(jié)為單位進(jìn)行數(shù)據(jù)通信,,不帶有任何其它附屬信息,其格式完全由用戶自己定義,。所以在考慮設(shè)計(jì)RS-485幀格式時(shí),,應(yīng)該參考CAN總線的幀格式。具體設(shè)計(jì)RS-485幀格式時(shí)可以參考以下格式:
第一個(gè)字段為地址字段,,占用一個(gè)字節(jié),,作為RS-485子網(wǎng)的多機(jī)通信地址用,。在RS-485網(wǎng)絡(luò)中,只能采用一主多從的方式進(jìn)行通信,,網(wǎng)絡(luò)中必須有一個(gè)主控節(jié)點(diǎn),,在此網(wǎng)橋?yàn)橹骺毓?jié)點(diǎn),通過查詢點(diǎn)名的方式進(jìn)行通信,。第二到第四字段與CAN報(bào)文中的同名字段定義相同,,實(shí)際上這三個(gè)字段是一個(gè)完整的CAN報(bào)文。網(wǎng)橋在進(jìn)行轉(zhuǎn)發(fā)時(shí)只需要將這三個(gè)字段構(gòu)成的CAN報(bào)文發(fā)送即可,,使網(wǎng)橋中的協(xié)議轉(zhuǎn)換更為容易實(shí)現(xiàn),。最后的校驗(yàn)字段可用于網(wǎng)橋接受報(bào)文時(shí)的校驗(yàn),以保證數(shù)據(jù)的可靠,。軟件設(shè)計(jì)流程見圖4,。
主監(jiān)控程序根據(jù)接受緩沖區(qū)中是否有報(bào)文,決定數(shù)據(jù)是否發(fā)送以及發(fā)送給誰,。如果接
受CAN子網(wǎng)數(shù)據(jù)緩沖區(qū)中有報(bào)文則向RS-485子網(wǎng)轉(zhuǎn)發(fā),,如果接受RS-485子網(wǎng)數(shù)據(jù)緩沖區(qū)有數(shù)據(jù)則向CAN子網(wǎng)轉(zhuǎn)發(fā)。由于CAN報(bào)文和自定義的RS-485報(bào)文的幀格式長(zhǎng)度不同,,在轉(zhuǎn)發(fā)報(bào)文時(shí),,要進(jìn)行幀格式的轉(zhuǎn)換。在轉(zhuǎn)發(fā)報(bào)文后,,要對(duì)相應(yīng)的FIFO緩沖區(qū)進(jìn)行參數(shù)調(diào)整,。另外在主監(jiān)控程序中,如上位機(jī)對(duì)網(wǎng)橋有狀態(tài)請(qǐng)求或網(wǎng)橋本身有故障,,網(wǎng)橋可以向上位機(jī)返回本機(jī)狀態(tài),。該功能便于系統(tǒng)的故障定位,管理中心計(jì)算機(jī)通過運(yùn)行遠(yuǎn)程抄表管理軟件可以提前發(fā)現(xiàn)系統(tǒng)故障,,增強(qiáng)了系統(tǒng)的可維護(hù)性,。
5.結(jié)束語
由CAN總線和RS-485總線組成的雙層網(wǎng)絡(luò)結(jié)構(gòu),有效地實(shí)現(xiàn)了戶用計(jì)量?jī)x表和遠(yuǎn)程管理計(jì)算機(jī)的有效數(shù)據(jù)通訊,。它們無論在硬件連線,,還是軟件編程都具有很好的兼容性。在實(shí)驗(yàn)室條件下,,通過系統(tǒng)運(yùn)行檢驗(yàn)表明,,系統(tǒng)運(yùn)行平穩(wěn),可靠性較高,,實(shí)現(xiàn)了高效率的遠(yuǎn)程數(shù)據(jù)采集和集中管理,。