在設(shè)計電表時,通信往往是最后考慮的問題。目前的電表設(shè)計需要收集越來越多的信息,并且能夠自動地把這些信息傳輸?shù)诫娏?。在MAX3120電表參考設(shè)計中,通信子系統(tǒng)的工作既是用于這一目的。 為什么要進(jìn)行通信?在設(shè)計電表時,通信往往是最后考慮的問題。傳統(tǒng)電表使用老式的被動通信方式傳輸用電信息:抄表員定期抄表并讀取數(shù)值。而新一代電表需要收集的信息越來越多。如果對工作人員進(jìn)行培訓(xùn),用手工方式從每個電表收集大量數(shù)據(jù),并且還要滿足精度要求,似乎是不切實際的想法。取而代之的是利用電子裝置自動把用電信息傳輸?shù)诫娏?。在MAX3120電表參考設(shè)計中,通信子系統(tǒng)既是用于這一目的。兩個通道MAX3120電表參考設(shè)計中包括兩個通信通道:一個用于與手持終端通信的紅外(IR)通道,另一個是完全隔離的多點RS-485通道。兩個通道使用相同的通信協(xié)議,但具體工作情況有所不同。紅外通道始終是點對點模式;手持終端每次只能與一個電表通信。由于手持終端不能同時訪問多個電表,因此電表可單方面響應(yīng)廣播消息。但是,在網(wǎng)絡(luò)環(huán)境中,這種工作方式會導(dǎo)致嚴(yán)重的數(shù)據(jù)沖突。RS-485通道的工作情況與之不同。由于網(wǎng)絡(luò)中有許多電表(雖然不會有一個以上的主機(jī)),沒有電表能夠發(fā)送數(shù)據(jù)包以響應(yīng)網(wǎng)絡(luò)廣播。主機(jī)發(fā)出一個消息后,主機(jī)收發(fā)器需要經(jīng)過一定延時,為接收數(shù)據(jù)做好準(zhǔn)備。因此,謹(jǐn)慎的措施是在電表響應(yīng)之前設(shè)置一個傳輸延時,以防數(shù)據(jù)丟失。通信原理盡管有傳輸通道之分,通信協(xié)議所使用的原理卻是相同的。首先,鏈路特征相同:通道以1200比特每秒的速率進(jìn)行通信,處于異步工作方式,使用一個終止位和偶校驗。其次,如圖1所示,鏈接協(xié)議是相同的。最后,用于兩個通道的命令含義相同:在IR通道上發(fā)送命令,與在RS-485通道上發(fā)送命令所起到的作用相同。圖1. 通信協(xié)議示意圖數(shù)據(jù)包具有以下結(jié)構(gòu):開始標(biāo)志: 1個字節(jié),0x68. 電表地址: 6個字節(jié),為變量。網(wǎng)絡(luò)中的每個電表都具有一個唯一的網(wǎng)絡(luò)地址。相比之下,主機(jī)(運行網(wǎng)絡(luò)的個人計算機(jī)或手持終端)沒有地址;主機(jī)用來啟動所有通信過程,是電表發(fā)送任何消息的目標(biāo)。因此,地址字段的功能是主機(jī)向電表發(fā)送消息的目標(biāo)地址,以及電表向主機(jī)發(fā)送消息的源地址。地址99 99 99 99 99 99作為廣播地址予以保留。 分隔符號: 一個字節(jié),0x68. 命令字節(jié): 一個字節(jié),具有以下格式:命令字節(jié)中包括如下字段:一個方向位: 當(dāng)數(shù)據(jù)包由主機(jī)發(fā)送給電表時清零,當(dāng)數(shù)據(jù)包由電表發(fā)送給主機(jī)時置1。一個誤差位: 用于指示電表檢測到主機(jī)發(fā)送的消息中存在誤碼。一
[工業(yè)電器網(wǎng)-cnelc]個冗余位: 指示電表對某條消息的響應(yīng)時間過長,該消息已被劃分成多條消息。一個功能字段::0x01: 讀操作,表示主機(jī)要求讀取電表的某些寄存器值。0x02: 讀下一個數(shù)據(jù),表示主機(jī)接收到多條消息標(biāo)記,要求讀取下一部分。0x03: 重讀操作,指示主機(jī)沒有正確接收上一個消息段,要求重新發(fā)送該消息段。0x04: 寫操作,主機(jī)要求在電表寄存器中存儲一個值。這個數(shù)據(jù)包括2個字節(jié)的寄存器地址長度可變的數(shù)據(jù)。 0x08: 同步操作。這個數(shù)據(jù)字段包含時間和日期。如果電表的內(nèi)部時鐘與消息中給出的時間和日期不同,并且相差小于10分鐘,那么內(nèi)部時鐘調(diào)整為給出的時間,否則,內(nèi)部時間不變,返回一個誤差指示信號。0x0A: 設(shè)置網(wǎng)絡(luò)地址,始終是一條廣播消息。該數(shù)據(jù)字段包含6個字節(jié)的地址,電表將它作為網(wǎng)絡(luò)地址。電表的設(shè)置地址按鈕激活表明它接受該地址。 0x0C: 改變波特率命令。波特率可以更改為給定的速率,但只在本次事務(wù)中有效,以后又會恢復(fù)到1,200bps。 0x0F: 改變密碼命令。該數(shù)據(jù)字段包含8個字節(jié),包含:(1) 超級用戶密碼標(biāo)志符(通常為零); (2) 超級用戶密碼; (3) 改變密碼的標(biāo)志符;(4) 新密碼。 0x10: 清除最大需求量寄存器命令。當(dāng)電表接收到該命令時,會清零全月中幾個子域中的最大需求寄存器。長度標(biāo)記: 一個字節(jié)。表示整個消息的長度,從開始標(biāo)志到終止標(biāo)志。數(shù)據(jù): 變量。校驗和: 一個字節(jié)。這是消息中所有字節(jié)以256為模后的求和數(shù),從開始標(biāo)志到終止標(biāo)志。 紅外通道工作特性。 終止標(biāo)志:一個字節(jié),0x16。 紅外通道工作特性紅外通道按照簡單的音頻調(diào)制技術(shù)工作。即有紅外光束(38kHz調(diào)制頻率,波長850nm)時表示‘0’,無紅外光束表示‘1’。下圖(圖2)顯示了字母‘A’ (0x41)的傳輸過程。圖2. 紅外通道音頻調(diào)制技術(shù)示意圖通過MAX3120 CPU中的調(diào)制器傳輸紅外線的物理通道很容易實現(xiàn),該調(diào)制器集成了其中一個定時通道的輸出和其中一個UART通道。通過一個外部集成的紅外接收器進(jìn)行解調(diào)(圖3)。圖3. 一個外部集成的紅外接收器,用于解調(diào)RS-485通道工作特性RS-485通道有兩個特殊要求,因此比紅外通道更加復(fù)雜:RS-485通道采用精確的半雙工通信,必須與線纜進(jìn)行電氣隔離。第一個必要條件可以借助于MAXIM的半雙工收發(fā)器實現(xiàn),可達(dá)到滿意的效果。第二個必要條件可以通過使用價格低廉的光藕進(jìn)行電氣隔離,見圖4。圖4. 通過使用一個MAXIM的半雙工收發(fā)器和價格低廉的光耦實現(xiàn)RS-485通信