基于CAN總線/RS485接口的雙層網(wǎng)絡(luò)遠程抄表系統(tǒng)設(shè)計
網(wǎng)橋的微控制器采用TI的MSP430F449,它負責整個網(wǎng)橋的監(jiān)控任務(wù)。CAN控制器接口電路由CAN通信控制器SJA1000和CAN總線收發(fā)器82C250組成,為了提高系統(tǒng)的可靠性和抗干擾能力,可以在SJA1000和82C250之間增加光耦合電路。RS-485總線端所使用的是內(nèi)部具有光耦合的差動收發(fā)器MAX1480。網(wǎng)橋中設(shè)計的LED,可用于網(wǎng)橋上的上電指示,總線收發(fā)狀態(tài)及故障情況指示,網(wǎng)橋的看門狗采用了一片X25045。X25045除了具有看門狗和上電復位功能外,內(nèi)部還集成了512個字節(jié)的串行EEPROM,用于保存網(wǎng)橋參數(shù)配置等信息。網(wǎng)橋的配置可通過CAN總線或RS-485總線實現(xiàn),通過網(wǎng)橋的適當配置可以很方便的實現(xiàn)報文的過濾。
4.2集中抄表器的軟件設(shè)計
網(wǎng)橋總線數(shù)據(jù)的接受均采用中斷的方式,在主監(jiān)控中實現(xiàn)數(shù)據(jù)的發(fā)送,內(nèi)存采用FIFO機制管理。
由于RS-485總線與CAN總線是兩種不同的總線形式。相互進行數(shù)據(jù)通訊時,需要進行協(xié)議轉(zhuǎn)換。CAN總線標準具有物理層和數(shù)據(jù)鏈路層協(xié)議,以幀為單位進行數(shù)據(jù)通信,而且每幀均攜帶相應(yīng)的ID標志符,而RS-485本質(zhì)上是一個物理標準,以字節(jié)為單位進行數(shù)據(jù)通信,不帶有任何其它附屬信息,其格式完全由用戶自己定義。所以在考慮設(shè)計RS-485幀格式時,應(yīng)該參考CAN總線的幀格式。具體設(shè)計RS-485幀格式時可以參考以下格式:
第一個字段為地址字段,占用一個字節(jié),作為RS-485子網(wǎng)的多機通信地址用。在RS-485網(wǎng)絡(luò)中,只能采用一主多從的方式進行通信,網(wǎng)絡(luò)中必須有一個主控節(jié)點,在此網(wǎng)橋為主控節(jié)點,通過查詢點名的方式進行通信。第二到第四字段與CAN報文中的同名字段定義相同,實際上這三個字段是一個完整的CAN報文。網(wǎng)橋在進行轉(zhuǎn)發(fā)時只需要將這三個字段構(gòu)成的CAN報文發(fā)送即可,使網(wǎng)橋中的協(xié)議轉(zhuǎn)換更為容易實現(xiàn)。最后的校驗字段可用于網(wǎng)橋接受報文時的校驗,以保證數(shù)據(jù)的可靠。軟件設(shè)計流程見圖4。
主監(jiān)控程序根據(jù)接受緩沖區(qū)中是否有報文,決定數(shù)據(jù)是否發(fā)送以及發(fā)送給誰。如果接
受CAN子網(wǎng)數(shù)據(jù)緩沖區(qū)中有報文則向RS-485子網(wǎng)轉(zhuǎn)發(fā),如果接受RS-485子網(wǎng)數(shù)據(jù)緩沖區(qū)有數(shù)據(jù)則向CAN子網(wǎng)轉(zhuǎn)發(fā)。由于CAN報文和自定義的RS-485報文的幀格式長度不同,在轉(zhuǎn)發(fā)報文時,要進行幀格式的轉(zhuǎn)換。在轉(zhuǎn)發(fā)報文后,要對相應(yīng)的FIFO緩沖區(qū)進行參數(shù)調(diào)整。另外在主監(jiān)控程序中,如上位機對網(wǎng)橋有狀態(tài)請求或網(wǎng)橋本身有故障,網(wǎng)橋可以向上位機返回本機狀態(tài)。該功能便于系統(tǒng)的故障定位,管理中心計算機通過運行遠程抄表管理軟件可以提前發(fā)現(xiàn)系統(tǒng)故障,增強了系統(tǒng)的可維護性。
5.結(jié)束語
由CAN總線和RS-485總線組成的雙層網(wǎng)絡(luò)結(jié)構(gòu),有效地實現(xiàn)了戶用計量儀表和遠程管理計算機的有效數(shù)據(jù)通訊。它們無論在硬件連線,還是軟件編程都具有很好的兼容性。在實驗室條件下,通過系統(tǒng)運行檢驗表明,系統(tǒng)運行平穩(wěn),可靠性較高,實現(xiàn)了高效率的遠程數(shù)據(jù)采集和集中管理。
評論