基于CAN/RS485雙層網(wǎng)絡(luò)的遠(yuǎn)程抄表系統(tǒng)設(shè)計(jì)
仲裁場:由標(biāo)志符和遠(yuǎn)程發(fā)送請求位(RTR)組成。
控制場:數(shù)據(jù)長度碼和兩個保留位。
數(shù)據(jù)場:包括0 ~8個字節(jié),每個字節(jié)8位。
CRC:CRC序列與CRC界定符。
應(yīng)答場(ACK):應(yīng)答間隙與應(yīng)答界定符。
遠(yuǎn)程幀的組成格式和數(shù)據(jù)幀類似包括幀起始、仲裁場、控制場、CRC和應(yīng)答場,與數(shù)據(jù)幀相反,遠(yuǎn)程幀的RTR位是隱位,遠(yuǎn)程幀不存在數(shù)據(jù)場。
出錯幀由兩個不同的場組成,第一個場由來自各站的錯誤標(biāo)志疊加得到,第二個場是出錯界定符。
超載幀包括兩個位場,超載標(biāo)志和超載界定符。
幀間空間包括間歇場和總線空閑場。
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。本文引用地址:http://m.butianyuan.cn/article/157780.htm
網(wǎng)橋的微控制器采用TI的MSP430F449,它負(fù)責(zé)整個網(wǎng)橋的監(jiān)控任務(wù)。CAN控制器接口電路由CAN通信控制器SJA1000和CAN總線收發(fā)器82C250組成,為了提高系統(tǒng)的可靠性和抗干擾能力,可以在SJA1000和82C250之間增加光耦合電路。RS-485總線端所使用的是內(nèi)部具有光耦合的差動收發(fā)器MAX1480。網(wǎng)橋中設(shè)計(jì)的LED,可用于網(wǎng)橋上的上電指示,總線收發(fā)狀態(tài)及故障情況指示,網(wǎng)橋的看門狗采用了一片X25045。X25045除了具有看門狗和上電復(fù)位功能外,內(nèi)部還集成了512個字節(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ì)上是一個物理標(biāo)準(zhǔn),以字節(jié)為單位進(jìn)行數(shù)據(jù)通信,不帶有任何其它附屬信息,其格式完全由用戶自己定義。所以在考慮設(shè)計(jì)RS-485幀格式時(shí),應(yīng)該參考CAN總線的幀格式。具體設(shè)計(jì)RS-485幀格式時(shí)可以參考以下格式:
第一個字段為地址字段,占用一個字節(jié),作為RS-485子網(wǎng)的多機(jī)通信地址用。在RS-485網(wǎng)絡(luò)中,只能采用一主多從的方式進(jìn)行通信,網(wǎng)絡(luò)中必須有一個主控節(jié)點(diǎn),在此網(wǎng)橋?yàn)橹骺毓?jié)點(diǎn),通過查詢點(diǎn)名的方式進(jìn)行通信。第二到第四字段與CAN報(bào)文中的同名字段定義相同,實(shí)際上這三個字段是一個完整的CAN報(bào)文。網(wǎng)橋在進(jìn)行轉(zhuǎn)發(fā)時(shí)只需要將這三個字段構(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)文的幀格式長度不同,在轉(zhuǎn)發(fā)報(bào)文時(shí),要進(jìn)行幀格式的轉(zhuǎn)換。在轉(zhuǎn)發(fā)報(bào)文后,要對相應(yīng)的FIFO緩沖區(qū)進(jìn)行參數(shù)調(diào)整。另外在主監(jiān)控程序中,如上位機(jī)對網(wǎng)橋有狀態(tài)請求或網(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ì)量儀表和遠(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ù)采集和集中管理。
評論