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信息会立即转发到 232接口。如果使能了“CAN帧信息发送到串行帧”则会把帧信息填充在第一个字节,如果使能了“CAN帧 ID发送到串行帧”则会把帧信息填充在之后的 2或 4个字节,之后填充数据。
带标志转换,串行帧到CAN通道,带标志转换可以通过配置软件指定 CAN发送时的 ID类型,在串行帧第几个字节开始、ID长度是多少。
232接口收到一帧串行数据会根据上述配置取出ID的并以此作为CAN发送,ID发送这一帧串行数据。
带标志转换同样是边收边转发,只要 232接口收到这帧已经包含的完整 ID,并且数据够了 8个字节或一帧结束就立即转发。
如上表格:配置为带标志转换模式,以标准帧发送,ID长度为 2,ID从第,2字节开始。只要 232接口收到前 4个字节就确定了 ID,收完了,前 10个字节就开始发送了,之后每收 8个字节就发送,直到这一帧发完。下一帧串行帧收到 4个字节之后重新设置发送 ID。
注意事项:串行帧中 ID长度与 CAN发送 ID对应关系,CAN 通道到串行帧,当CAN 收到一帧数据也会立即转发到232接口,同时会在相应位置填充CAN 帧 ID,因为串行帧格式原因,所以务必保证软件配置的CAN信息与 CAN 网络一致。
注意事项:CAN发送 ID填充到串行帧规则,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通道发送,在另一端按此协议重组。
因为 Modbus转换模式下只有在收到完整一帧 Modbus数据才会转发,且根据 Modbus协议,Modbus是“问答”型协议,所以要等待另一端响应之后才能发送下一阵 Modbus数据,或者超时无应答也可以再次发送。如果发送频率过快,
“问完没答”就发下一针可能造成数据丢失或数据错误。分段拆包格式如下:
分段标记:0单独报文,1分段报文中的一段;,分段类型:0第一个分段,1中间分段,2最后分段,分段计数器:每一段的标志,该段在整个报文中的序号 0-31,CAN 通道到RS-485 通道,设备把 CAN 通道收上来的 CAN 帧按拆包规则逆向组合,之后在最后加上两个字节 CRC 之后通过 RS-485 通道发送出去