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