YC-CAN-RTU是一款用于CAN-Modbus現(xiàn)場(chǎng)總線與RS-232總線或RS-485總線之間數(shù)據(jù)轉(zhuǎn)換的協(xié)議型轉(zhuǎn)換器,支持標(biāo)準(zhǔn)Modbus RTU協(xié)議。集成1路RS-232通道、1路RS-485通道、1路CAN-Modbus通道,可以方便地嵌入使用RS-232接口和RS-485接口的節(jié)點(diǎn)上,在不需要改變?cè)杏布Y(jié)構(gòu)的前提下使設(shè)備獲得CAN-Modbus通訊接口,實(shí)現(xiàn)RS-232或RS-485設(shè)備與CAN-Modbus網(wǎng)絡(luò)之間的連接及數(shù)據(jù)通訊。
透明傳輸
串行幀到CAN通道
設(shè)備以 PC端軟件配置好的 CAN幀類型和 ID作為 CAN發(fā)送的類型和 ID, 不斷轉(zhuǎn)發(fā) RS-232接口接收到的數(shù)據(jù)。
當(dāng) 232接口收到連續(xù) 8個(gè)字節(jié)或者不夠 8個(gè)字節(jié)但一幀結(jié)束會(huì)立即轉(zhuǎn)發(fā)到
CAN總線,即如果一幀串口數(shù)據(jù)多于 8個(gè)字節(jié)則每次發(fā)送 8個(gè)字節(jié)直到最后一
段不足 8個(gè)字節(jié),如果一幀串口數(shù)據(jù)少于 8個(gè)字節(jié)則一次發(fā)完。
串行幀轉(zhuǎn) CAN幀信息用戶不用管,里面包含了幀信息(標(biāo)準(zhǔn)幀還是擴(kuò)展幀) 以及數(shù)據(jù)字節(jié)長(zhǎng)度;幀 ID是由用戶在軟件配置的,下次配置之前永遠(yuǎn)保持不變。
CAN通道到串行幀
當(dāng) CAN總線收到一幀 CAN信息(一幀 CAN數(shù)據(jù)小于等于 8個(gè)字節(jié))會(huì)立即轉(zhuǎn)發(fā)到 232接口。如果使能了“CAN幀信息發(fā)送到串行幀”則會(huì)把幀信息填充在第一個(gè)字節(jié),如果使能了“CAN幀 ID發(fā)送到串行幀”則會(huì)把幀信息填充在之后的 2(標(biāo)準(zhǔn)幀)或 4(擴(kuò)展幀)個(gè)字節(jié),之后填充數(shù)據(jù)。
帶標(biāo)志轉(zhuǎn)換
串行幀到CAN通道
帶標(biāo)志轉(zhuǎn)換可以通過配置軟件指定 CAN發(fā)送時(shí)的 ID類型,在串行幀第幾個(gè)字節(jié)開始(從 0開始)、ID長(zhǎng)度是多少(1-4)。
232接口收到一幀串行數(shù)據(jù)會(huì)根據(jù)上述配置取出ID的并以此作為CAN發(fā)送
ID發(fā)送這一幀串行數(shù)據(jù)。
帶標(biāo)志轉(zhuǎn)換同樣是邊收邊轉(zhuǎn)發(fā),只要 232接口收到這幀已經(jīng)包含的完整 ID
并且數(shù)據(jù)夠了 8個(gè)字節(jié)或一幀結(jié)束就立即轉(zhuǎn)發(fā)。
串行幀 | 幀信息 | 幀信息 | 幀信息 | 幀信息 | ||
數(shù)據(jù) 1 | 幀 ID | ID | ID | ID | ||
數(shù)據(jù) 2 | 數(shù)據(jù)域 | 數(shù)據(jù) 1 | 數(shù)據(jù) 11 | 。 | ||
數(shù)據(jù) 3 ID | 數(shù)據(jù) 2 | 數(shù)據(jù) 12 | 。 | |||
數(shù)據(jù) 4 ID | 數(shù)據(jù) 5 | 數(shù)據(jù) 13 | 。 | |||
數(shù)據(jù) 5 | 數(shù)據(jù) 6 | 數(shù)據(jù) 14 | 。 | |||
。 | 數(shù)據(jù) 7 | 數(shù)據(jù) 15 | 。 | |||
數(shù)據(jù) n-2 | 數(shù)據(jù) 8 | 數(shù)據(jù) 16 | 數(shù)據(jù) n-1 | |||
數(shù)據(jù) n-1 | 數(shù)據(jù) 9 | 。 | 數(shù)據(jù) n | |||
數(shù)據(jù) n | 數(shù)據(jù) 10 | 。 |
如上表格:配置為帶標(biāo)志轉(zhuǎn)換模式,以標(biāo)準(zhǔn)幀發(fā)送,ID長(zhǎng)度為 2,ID從第
2字節(jié)開始(從 0開始計(jì)數(shù))。只要 232接口收到前 4個(gè)字節(jié)就確定了 ID,收完了
前 10個(gè)字節(jié)就開始發(fā)送了,之后每收 8個(gè)字節(jié)就發(fā)送,直到這一幀發(fā)完。下一幀串行幀收到 4個(gè)字節(jié)之后重新設(shè)置發(fā)送 ID。
注意事項(xiàng):串行幀中 ID長(zhǎng)度與 CAN發(fā)送 ID對(duì)應(yīng)關(guān)系
串行幀中 ID長(zhǎng)度與 CAN發(fā)送 ID對(duì)應(yīng)關(guān)系 | ||
ID 長(zhǎng)度 | 標(biāo)準(zhǔn)幀 | 擴(kuò)展幀 |
1 | ID 低 8 位 | ID 最低 8 位(7-0) |
2 | ID 高 3 位,ID 低 8 位 | ID 15-8 位,ID 7-0 位 |
3 | 空字節(jié),ID 高 3 位,ID 低 8 位 |
ID 23-16 位,ID 15-8 位,ID 7-0 位 |
4 | 空字節(jié),空字節(jié),ID高 3位,ID低 8位 |
ID 最高五位,ID 23-16 位, ID 15-8 位,ID 7-0 位 |
CAN 通道到串行幀
當(dāng)CAN 收到一幀數(shù)據(jù)也會(huì)立即轉(zhuǎn)發(fā)到232接口,同時(shí)會(huì)在相應(yīng)位置填充CAN 幀 ID,因?yàn)榇袔袷皆颍詣?wù)必保證軟件配置的CAN信息(CAN類型、
ID 長(zhǎng)度)與 CAN 網(wǎng)絡(luò)一致。
CAN 幀 | 串行幀 | |
幀信息 |
標(biāo)準(zhǔn)幀 0x00+數(shù)據(jù)字節(jié)長(zhǎng)度 擴(kuò)展幀 0x80+數(shù)據(jù)字節(jié)長(zhǎng)度 |
數(shù)據(jù) 1 |
幀 ID | 標(biāo)準(zhǔn)幀 11 位,擴(kuò)展幀 29 位 | 數(shù)據(jù) 2 |
數(shù)據(jù)域 | 數(shù)據(jù) 1 | ID 高 3 位 |
數(shù)據(jù) 2 | ID 低 8 位 | |
數(shù)據(jù) 3 | 數(shù)據(jù) 3 | |
數(shù)據(jù) 4 | 數(shù)據(jù) 4 | |
數(shù)據(jù) 5 | 數(shù)據(jù) 5 | |
數(shù)據(jù) 6 | 數(shù)據(jù) 6 | |
數(shù)據(jù) 7 | 數(shù)據(jù) 7 | |
數(shù)據(jù) 8 | 數(shù)據(jù) 8 |
注意事項(xiàng):CAN發(fā)送 ID填充到串行幀規(guī)則
CAN 發(fā)送 ID 填充到串行幀規(guī)則 | ||
串行幀 ID 長(zhǎng)度 | 填充規(guī)則 | |
標(biāo)準(zhǔn)幀 | 1 | ID 低 8 位 |
2 | ID 高 3 位,ID 低 8 位 | |
3 | 空字節(jié),ID 高 3 位,ID 低 8 位 | |
4 | 空字節(jié),空字節(jié),ID高 3位,ID低 8位 | |
擴(kuò)展幀 | 1 | ID 最低 8 位(7-0) |
2 | ID 15-8 位,ID 7-0 位 | |
3 | ID 23-16 位,ID 15-8 位,ID 7-0 位 | |
4 | ID 最高五位,ID 23-16 位,ID 15-8 位,ID 7-0 位 |
Modbus 轉(zhuǎn)換
Modbus 轉(zhuǎn) CAN 模式中設(shè)備并不作為 Modbus 主站或者從站,只負(fù)責(zé)把
Modbus 幀通過 CAN 發(fā)送出去,另一個(gè)使用相同協(xié)議的設(shè)備還原 Modbus 并把應(yīng)答 Modbus 幀發(fā)到 CAN 網(wǎng)絡(luò)。
RS-485采用標(biāo)準(zhǔn) Modbus RTU協(xié)議,所以用戶在軟件配置時(shí)務(wù)必確保設(shè)置是否符合 Modbus RTU協(xié)議。
Modbus RTU協(xié)議對(duì)規(guī)定,數(shù)據(jù)格式為 1位起始位,8位數(shù)據(jù)位,1位停止位,偶校驗(yàn)(也可以奇校驗(yàn)或者無校驗(yàn),如果無校驗(yàn)則把停止位設(shè)為兩位),
CRC16Modbus 校驗(yàn),Modbus一幀最長(zhǎng)為 256字節(jié)。
設(shè)備收到完整一幀 Modbus會(huì)進(jìn)行 CRC校驗(yàn), 如果沒有錯(cuò)誤會(huì)把這條
Modbus 幀通過 CAN 發(fā)送到 CAN 網(wǎng)絡(luò),但不會(huì)發(fā)送最后兩個(gè)字節(jié)的 CRC,因?yàn)?/p>
CAN 可靠性非常高,出錯(cuò)概率極低。當(dāng)設(shè)備從 CAN 通道收到完整一幀 Modbus
之后會(huì)自動(dòng)加上 CRC 校驗(yàn)然后通過 RS-485 發(fā)送出去。
RS-485 通道到CAN 通道
Modbus 轉(zhuǎn)CAN 與前兩種轉(zhuǎn)換方式不同,只有在收到完整一幀 Modbus 之后, 設(shè)備才會(huì)把 Modbus 第一字節(jié)(地址字節(jié))作為 CAN 發(fā)送 ID,通過如下分段方
式進(jìn)行拆包然后完成 CAN通道的轉(zhuǎn)發(fā)。因?yàn)橐粠?CAN幀最多攜帶 8個(gè)數(shù)據(jù), 為了能在另一端正確地完成對(duì)一幀 Modbus的拼接故參考 DeviceNet(一個(gè) CAN應(yīng)用層協(xié)議)分段報(bào)文傳送協(xié)議進(jìn)行拆包,然后通過 CAN通道發(fā)送,在另一端按此協(xié)議重組。
因?yàn)?Modbus轉(zhuǎn)換模式下只有在收到完整一幀 Modbus數(shù)據(jù)才會(huì)轉(zhuǎn)發(fā),且根據(jù) Modbus協(xié)議,Modbus是“問答”型協(xié)議,所以要等待另一端響應(yīng)之后才能發(fā)送下一陣 Modbus數(shù)據(jù),或者超時(shí)無應(yīng)答也可以再次發(fā)送。如果發(fā)送頻率過快,
“問完沒答”就發(fā)下一針可能造成數(shù)據(jù)丟失或數(shù)據(jù)錯(cuò)誤。分段拆包格式如下:
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||
幀信息 | |||||||||
幀ID1 | |||||||||
數(shù)據(jù)1 | 分段標(biāo)記 | 分段類型 | 分段計(jì)數(shù)器 | ||||||
數(shù)據(jù)2 | 數(shù)據(jù)1 | ||||||||
數(shù)據(jù)3 | 數(shù)據(jù)2 | ||||||||
數(shù)據(jù)4 | 數(shù)據(jù)3 | ||||||||
數(shù)據(jù)5 | 數(shù)據(jù)4 | ||||||||
數(shù)據(jù)6 | 數(shù)據(jù)5 | ||||||||
數(shù)據(jù)7 | 數(shù)據(jù)6 | ||||||||
數(shù)據(jù)8 | 數(shù)據(jù)7 | ||||||||
分段標(biāo)記:0單獨(dú)報(bào)文,1分段報(bào)文中的一段;
分段類型:0第一個(gè)分段,1中間分段,2最后分段
分段計(jì)數(shù)器:每一段的標(biāo)志,該段在整個(gè)報(bào)文中的序號(hào) 0-31
CAN 通道到RS-485 通道
設(shè)備把 CAN 通道收上來的 CAN 幀按拆包規(guī)則逆向組合,之后在最后加上兩個(gè)字節(jié) CRC 之后通過 RS-485 通道發(fā)送出去
審核編輯 黃宇
-
CAN
+關(guān)注
關(guān)注
57文章
2764瀏覽量
464137 -
網(wǎng)關(guān)
+關(guān)注
關(guān)注
9文章
4582瀏覽量
51376 -
RTU
+關(guān)注
關(guān)注
0文章
417瀏覽量
28725
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
智慧物流的神器Profinet轉(zhuǎn)CAN網(wǎng)關(guān)
![智慧物流的神器Profinet<b class='flag-5'>轉(zhuǎn)</b><b class='flag-5'>CAN</b><b class='flag-5'>網(wǎng)關(guān)</b>](https://file1.elecfans.com/web3/M00/04/16/wKgZO2ducHOARs7DAADksaThZuQ481.png)
探索 CAN 轉(zhuǎn) PN 網(wǎng)關(guān)連接 can 設(shè)備的精準(zhǔn)配置之道
![探索 <b class='flag-5'>CAN</b> <b class='flag-5'>轉(zhuǎn)</b> PN <b class='flag-5'>網(wǎng)關(guān)連接</b> <b class='flag-5'>can</b> 設(shè)備的精準(zhǔn)配置之道](https://file1.elecfans.com/web3/M00/01/C9/wKgZO2dYCqKAX2XCABwdEwXCLU8986.png)
Profinet 轉(zhuǎn) CAN:多元應(yīng)用案例大賞
EtherCAT轉(zhuǎn)CAN總線協(xié)議轉(zhuǎn)換網(wǎng)關(guān)
![EtherCAT<b class='flag-5'>轉(zhuǎn)</b><b class='flag-5'>CAN</b>總線協(xié)議轉(zhuǎn)換<b class='flag-5'>網(wǎng)關(guān)</b>](https://file1.elecfans.com//web2/M00/08/FD/wKgaomb01myAbeGLAAB0UL0ibwQ720.jpg)
EtherCAT轉(zhuǎn)CAN協(xié)議網(wǎng)關(guān)(CAN轉(zhuǎn)EtherCAT)
![EtherCAT<b class='flag-5'>轉(zhuǎn)</b><b class='flag-5'>CAN</b>協(xié)議<b class='flag-5'>網(wǎng)關(guān)</b>(<b class='flag-5'>CAN</b><b class='flag-5'>轉(zhuǎn)</b>EtherCAT)](https://file1.elecfans.com/web2/M00/06/17/wKgaombXwZ2AC1mrAAEcoHvpST0702.png)
EtherCAT從站轉(zhuǎn)CAN協(xié)議網(wǎng)關(guān)(CAN轉(zhuǎn)EtherCAT)
![EtherCAT從站<b class='flag-5'>轉(zhuǎn)</b><b class='flag-5'>CAN</b>協(xié)議<b class='flag-5'>網(wǎng)關(guān)</b>(<b class='flag-5'>CAN</b><b class='flag-5'>轉(zhuǎn)</b>EtherCAT)](https://file1.elecfans.com/web2/M00/04/AB/wKgZombRPKWAIGLHAAKYTP4jE9c429.png)
EtherNet/IP轉(zhuǎn)CAN協(xié)議網(wǎng)關(guān)(JM-EIP-CAN)
![EtherNet/IP<b class='flag-5'>轉(zhuǎn)</b><b class='flag-5'>CAN</b>協(xié)議<b class='flag-5'>網(wǎng)關(guān)</b>(JM-EIP-<b class='flag-5'>CAN</b>)](https://file1.elecfans.com/web2/M00/04/53/wKgZombNdoKAXQbTAAKqyxghXQc987.png)
CAN轉(zhuǎn)Modbus TCP主站協(xié)議網(wǎng)關(guān)(YC-CAN-TCP)
![<b class='flag-5'>CAN</b><b class='flag-5'>轉(zhuǎn)</b>Modbus TCP主站協(xié)議<b class='flag-5'>網(wǎng)關(guān)</b>(YC-<b class='flag-5'>CAN</b>-TCP)](https://file1.elecfans.com/web2/M00/04/2B/wKgZombL9j6Aay5RAAEtMiyEmSY767.png)
EtherCAT從站轉(zhuǎn)CAN總線協(xié)議轉(zhuǎn)換網(wǎng)關(guān)(JM-ECT-CAN)
![EtherCAT從站<b class='flag-5'>轉(zhuǎn)</b><b class='flag-5'>CAN</b>總線協(xié)議轉(zhuǎn)換<b class='flag-5'>網(wǎng)關(guān)</b>(JM-ECT-<b class='flag-5'>CAN</b>)](https://file1.elecfans.com/web2/M00/02/C8/wKgZoma9yoyABunTAAaz3E2enmI577.png)
CAN轉(zhuǎn)Profinet協(xié)議轉(zhuǎn)化網(wǎng)關(guān)
![<b class='flag-5'>CAN</b><b class='flag-5'>轉(zhuǎn)</b>Profinet協(xié)議轉(zhuǎn)化<b class='flag-5'>網(wǎng)關(guān)</b>](https://file1.elecfans.com/web2/M00/FE/92/wKgaomad-f2AZkb-AAIGT9LG7es022.png)
CAN轉(zhuǎn)Profinet網(wǎng)關(guān)模塊連接激光切割機(jī)的配置方法
![<b class='flag-5'>CAN</b><b class='flag-5'>轉(zhuǎn)</b>Profinet<b class='flag-5'>網(wǎng)關(guān)</b>模塊<b class='flag-5'>連接</b>激光切割機(jī)的配置方法](https://file1.elecfans.com/web2/M00/F9/53/wKgaomaHxNGATvSqAAVM2wCl21o588.png)
MACH網(wǎng)關(guān) SENT-ETH數(shù)據(jù)讀取與控制(CAN通訊)
![MACH<b class='flag-5'>網(wǎng)關(guān)</b> SENT-ETH數(shù)據(jù)讀取與控制(<b class='flag-5'>CAN</b>通訊)](https://file1.elecfans.com//web2/M00/DE/63/wKgZomYvW_mAZunoAAB0dC__PjY852.jpg)
購買CAN網(wǎng)關(guān)時(shí)搭配CAN分析儀的原因有哪些?
CAN轉(zhuǎn)EtherCAT網(wǎng)關(guān)在食品機(jī)械領(lǐng)域的應(yīng)用
![<b class='flag-5'>CAN</b><b class='flag-5'>轉(zhuǎn)</b>EtherCAT<b class='flag-5'>網(wǎng)關(guān)</b>在食品機(jī)械領(lǐng)域的應(yīng)用](https://file1.elecfans.com/web2/M00/C5/E8/wKgaomX5RVGAXYQzAADj8kHiz_I406.png)
評(píng)論