ECAN-101是億佰特研發(fā)生產(chǎn)的小型CAN總線與RS485串口協(xié)議數(shù)據(jù)轉(zhuǎn)換設(shè)備,具有體積小巧、方便安裝等特點(diǎn)的高性價(jià)比CAN轉(zhuǎn)設(shè)備。前文前文介紹了CAN轉(zhuǎn)RS485協(xié)議轉(zhuǎn)換設(shè)備透明轉(zhuǎn)換模式、CAN轉(zhuǎn)RS485協(xié)議轉(zhuǎn)換設(shè)備透明帶標(biāo)識(shí)轉(zhuǎn)換模式,本文繼續(xù)講解CAN轉(zhuǎn)RS485串口設(shè)備的modbus轉(zhuǎn)換模式。
Modbus協(xié)議是一種標(biāo)準(zhǔn)的應(yīng)用層協(xié)議,廣泛應(yīng)用于各種工控場(chǎng)合。該MODBUS協(xié)議開(kāi)放,實(shí)時(shí)性強(qiáng),通訊驗(yàn)證機(jī)制好,非常適用于通信可靠性要求較高的場(chǎng)合,DTU模塊在串口側(cè)使用的是標(biāo)準(zhǔn)Modbus RTU協(xié)議格式,所以CAN DTU模塊不僅支持用戶使用Modbus RTU協(xié)議,CAN轉(zhuǎn)設(shè)備也可以直接和其它支持Modbus RTU協(xié)議的設(shè)備相接口。在CAN側(cè),制定了一個(gè)簡(jiǎn)單易用的分段通訊格式來(lái)實(shí)現(xiàn)Modbus通訊,一個(gè)長(zhǎng)度大于一個(gè)CAN報(bào)文最大數(shù)據(jù)長(zhǎng)度的信息進(jìn)行分段以及重組的方法,“數(shù)據(jù)1”用于分段標(biāo)識(shí)數(shù)據(jù),傳輸?shù)?/span>Modbus協(xié)議內(nèi)容即可從“數(shù)據(jù)2”字節(jié)開(kāi)始,如果協(xié)議內(nèi)容大于7個(gè)字節(jié),那么將剩下的協(xié)議內(nèi)容照這種分段格式繼續(xù)轉(zhuǎn)換,直到轉(zhuǎn)換完成。當(dāng)CAN總線上不存在其他數(shù)據(jù),可以不設(shè)置幀過(guò)濾器。即可完成通訊。當(dāng)總線上面有其他數(shù)據(jù)則需要設(shè)置過(guò)濾器。區(qū)分設(shè)備接收數(shù)據(jù)來(lái)源。根據(jù)此方式??梢詫?shí)現(xiàn)一條總線上面存在多個(gè)主機(jī)的通訊。在CAN總線上傳輸?shù)臄?shù)據(jù)不需要CRC效驗(yàn)方式。CAN總線上的數(shù)據(jù)效驗(yàn)已經(jīng)具有更加完善的效驗(yàn)方式。CAN轉(zhuǎn)設(shè)備在modbus轉(zhuǎn)換模式下,設(shè)備支持的是Modbus驗(yàn)證和轉(zhuǎn)發(fā),而不是Modbus的主機(jī)或者從機(jī),用戶按照Modbus協(xié)議通訊即可。
分段傳輸協(xié)議:
一個(gè)長(zhǎng)度大于一個(gè)CAN報(bào)文最大數(shù)據(jù)長(zhǎng)度的信息進(jìn)行分段以及重組的方法,CAN報(bào)文時(shí),“數(shù)據(jù)1”用于分段標(biāo)識(shí)數(shù)據(jù),分段報(bào)文格式如下,傳輸?shù)?/span>Modbus協(xié)議內(nèi)容即可從“數(shù)據(jù)2”字節(jié)開(kāi)始,如果協(xié)議內(nèi)容大于7個(gè)字節(jié),那么將剩下的協(xié)議內(nèi)容照這種分段格式繼續(xù)轉(zhuǎn)換,直到轉(zhuǎn)換完成。
分段標(biāo)記:表明該報(bào)文是否是分段報(bào)文。該位為0表示單獨(dú)報(bào)文,為1表示屬于被分段報(bào)文中的一幀。
分段類型:表明是第一段、中間段的還是最后段。
分段計(jì)數(shù)器:每一個(gè)段的標(biāo)志,表示該段在整個(gè)報(bào)文中的序號(hào),如果是第幾個(gè)段,計(jì)數(shù)器的值就是幾。這樣在接收時(shí)就能夠驗(yàn)證是否有分段被遺失。共使用5Bit,范圍為0~31。
串行接口采用的是標(biāo)準(zhǔn)的Modbus RTU協(xié)議,所以用戶幀符合此協(xié)議即可。如果傳輸?shù)膸环?/span>Modbus RTU格式,那么模塊會(huì)將接收到的幀丟棄,而不予轉(zhuǎn)換。
對(duì)于CAN總線的Modbus協(xié)議數(shù)據(jù),無(wú)需做循環(huán)冗余校驗(yàn)(CRC16),模塊按照分段協(xié)議接收,接收完一幀解析后自動(dòng)加上循環(huán)冗余校驗(yàn)(CRC16),轉(zhuǎn)換成Modbus RTU幀發(fā)送至串行總線。如果接收到的數(shù)據(jù)不符合分段協(xié)議,則將該組數(shù)據(jù)丟棄不予轉(zhuǎn)換。
串口側(cè)Modbus RTU數(shù)據(jù)(十六進(jìn)制):
01 03 14 00 0A 00 00 00 00 00 14 00 00 00 00 00 17 00 2C 00 37 00 C8 4E 35
第一個(gè)字節(jié)01是Modbus RTU的地址碼,轉(zhuǎn)換成CAN報(bào)文幀的ID.7-ID.0:最后2個(gè)字節(jié)(4E 35)為Modbus RTU的CRC校驗(yàn),丟掉不轉(zhuǎn)換。
最終轉(zhuǎn)成CAN數(shù)據(jù)報(bào)文如下:
第1幀CAN報(bào)文:81 01 03 14 00 0A 00 00
第2幀CAN報(bào)文:a2 00 00 00 14 00 00 00
第3幀CAN報(bào)文:a3 00 00 17 00 2C 00 37
第4幀CAN報(bào)文:c4 00 c8
CAN報(bào)文的幀類型(標(biāo)準(zhǔn)幀或擴(kuò)展幀)通過(guò)配置軟件設(shè)置;
每個(gè)CAN報(bào)文的第一個(gè)數(shù)據(jù)都有分段信息來(lái)填充(81、a2、a3和c4),該信息不轉(zhuǎn)換到Modbus RTU幀中,僅做為報(bào)文的確認(rèn)控制信息。
相關(guān)文章推薦:
什么是控制器局域網(wǎng)CAN,can總線有哪些優(yōu)勢(shì)及特點(diǎn)?
【教程】Ebyte CAN分析軟件—ECAN Tools工具
基于CAN報(bào)文固定協(xié)議轉(zhuǎn)換器轉(zhuǎn)發(fā)教程
CAN轉(zhuǎn)RS485數(shù)據(jù)ECAN-101智能協(xié)議轉(zhuǎn)換設(shè)備AT指令集
今天的分享就到這里啦,EBYTE每一天都致力于更好的助力物聯(lián)化、智能化、自動(dòng)化的發(fā)展,提升資源利用率,更多CAN模組、CAN DTU協(xié)議轉(zhuǎn)換設(shè)備等產(chǎn)品更多資料,感興趣的小伙伴可以登錄我們的億佰特官網(wǎng)和企業(yè)公眾號(hào)(微信號(hào):cdebyte)進(jìn)行了解,也可以直接撥打400電話咨詢技術(shù)專員!
7 X 24 銷售服務(wù)熱線
4000-330-990深圳辦事處柯經(jīng)理:18218726658 杭州辦事處戴經(jīng)理:17512568697
常州辦事處崔經(jīng)理:15906110783 南京辦事處葛經(jīng)理:17626012283
業(yè)務(wù)郵箱:support@cdebyte.com
全國(guó)銷售投訴電話:19934352316
地址:四川省成都市高新西區(qū)西區(qū)大道199號(hào)B5棟(前臺(tái)座機(jī):028-61543675)
?? 成都億佰特電子科技有限公司【版權(quán)所有】 蜀ICP備13019384號(hào)-3