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