起订量:
免费会员
生产厂家天津滨海新区三格电子科技有限公司是集产品研发、生产、服务和销售为一体的高科技型企业。公司主要致力于光纤通信、无线通信、信号采集于分析、科研平台产品的研发与生产。产品主要有多业务光端机、光猫、光纤收发器、光口交换机、噪声与振动信号采集卡、通用信号采集卡、WIFI无线采集卡等。
技术创新是三格电子持续发展的不竭动力,只有创新才能在激烈的竞争中把握先机,赢得主动,在新技术、新产品不断升级浪潮中始终保持旺盛的生命力。为保持公司技术的*,三格电子在研发领域投入了大量资金。公司的研发人员实现了多项发明*、实用新型*。科技创造安全,质量成就价值,自公司成立以来三格电子一直在努力创新,并不断地完善产品种类、服务以及系统的解决方案。
公司建立了完善的营销和服务网络,始终将客户的需求放在*位,一直秉承以“客户为中心”的服务宗旨,除了提供专业、安全、适用、品质优异的产品之外,我们还把做好客户所需的各项服务放在与销售产品同等重要的位置。公司从客户的需求诊断分析、方案规划设计,产品功能实现,到现场安装调试、服务运维,提供*、满意的系统解决方案。
未来,三格电子将以“打造国内*的电子通信设备、信号采集及传感器供应商”为企业愿景,以创造安全、环保的工作生活环境为企业使命,全力以赴为客户创造价值,为中国的电子事业助力。
232/485转CAN
智能协议转换器
(SG_CAN_Modbus)
使用说明书
天津滨海新区三格电子科技有限公司
一、产品概述
SG_CAN_Modbus是一款用于CAN-Bus现场总线与RS-232总线或RS-485总线之间数据转换的协议型转换器,支持标准Modbus RTU协议。集成1路RS-232通道、1路RS-485通道、1路CAN-Bus通道,可以方便地嵌入使用RS-232接口和RS-485接口的节点上,在不需要改变原有硬件结构的前提下使设备获得CAN-Bus通讯接口,实现RS-232或RS-485设备与CAN-Bus网络之间的连接及数据通讯。SG_CAN_Modbus的RS-232通道和RS-485通道支持多种常用波特率,范围是1200-115200bps。CAN-Bus通道支持多种常用CAN速率范围是5K-500Kbps。使用本公司提供的配置软件,用户可以灵活设置模块的转换参数。
二、规格特性
实现CAN-Bus与RS-232/RS-485的双向数据通讯;
支持 CAN2.0A 和 CAN2.0B 协议,符合 ISO/DIS 11898 规范;
集成 1 路 CAN-bus 通讯接口,通讯速率在5K~500Kbps;
集成 1 路 RS-232和1路RS-485 通讯接口,通讯速率在 1200~115200bps;
支持三种数据转换方式:透明传输、带标志转换和Modbus协议转换,支持Modbus RTU协议,透明传输和带标志转换支持RS-232和CAN口,Modbus转换支持RS-485和CAN口;
电源:DC 9-24 V,典型值12V 50mA;
内置终端电阻,短接端口使能;
工作温度:-40℃ ~ 85℃。
性能参数:每秒转发7000字节(透明传输,RS-232接口115200bps,CAN接口500Kbps),内置21K接收缓冲区,保证大量突发数据不丢包。
三、外观与接口定义
3.1产品外观
3.2接口定义
VIN+、VIN- | 电源正负极 |
Res1+、Res1- | CAN-Bus 120欧姆终端电阻选择端 |
CAN_H、CAN_L | CAN-Bus连接端 |
Res2+、Res2- | 485总线 120欧姆匹配电阻选择端 |
485_A、485_B | 485总线连接端 |
SET、MODE、STAND | 模式选择 |
RS-232 | 232接口 |
VIN+、VIN-分别为电源的正负极;
Res1+和Res1-是CAN-Bus总线120欧姆终端电阻使能端,如果此节点需要120欧姆终端电阻则短路这两个端口即可,已内置120欧姆电阻;
CAN_H、CAN_L为CAN信号的连接端;
Res2+和Res2-是485总线120欧姆匹配电阻使能端,如果此节点需要120欧姆匹配电阻则短路这两个接口,已内置120欧姆电阻;
485_A、485_B为485信号的连接端,且已内置150K上下拉电阻;
STAND、MODE、SET为模式选择接口,短接MODE和SET并重新上电设备进入配置模式,短接MODE和STAND并重新上电设备进入收发模式;
RS-232接口使用DB9母头接口,接口定义如下
3.3指示灯说明
指示灯 | 功能 |
Power | 电源状态,灯亮表示电源正常 |
CAN | 灯亮代表CAN通道在发送数据 |
232 | 透明传输和带标志转换下灯亮代表232通道在发送,Modbus转换模式下灯亮代表CAN通道错误计数达到255,通道关闭 |
485 | Modbus转换模式下灯亮代表485通道在发送,透明传输和带标志转换下灯亮代表CAN通道错误计数达到255,通道关闭 |
只有在有数据发送时灯才亮,时间很短,如果有数据连续发送会看到灯闪烁。
3.4接线说明
为了增强CAN-bus 通讯的可靠性,CAN-bus 总线网络的两个端点,通常要加入终端匹配电阻(120欧姆),也就是说如果设备工作在CAN-Bus终端则需要接入120欧姆终端电阻,此时只需短路Res1+和Res1-即可(120R电阻已内置)。
CAN通讯线可以使用双绞线、屏蔽双绞线。若通讯距离超过1KM时,应保证线的截面积大于1.0mm2。具体规格,应根据距离而定,常规是随距离的加长而适当加大。
RS-485是差分电平通信,在距离较长或速率较高时,线路存在回波干扰,此时需要在通信线路首末两端并联120欧姆匹配电阻,*在线路长度大于300米时,才考虑加匹配电阻。如需使用短路Res2+和Res2即可-。
四、软件说明
4.1软件参数
全局参数 | ||
设备型号 | 选择为“CAN网关” | |
串口号 | 设备在电脑上对应的串口号 | |
转换模式 | 透明传输、带标志转换、Modbus转换 | |
232/485参数 | ||
波特率 | 232或者485通道的速率,1200-115200 | |
数据位 | 固定为8位 | |
校验位 | 无校验None、奇校验Odd、偶校验Even | |
停止位 | 0.5bit、1bit、1.5bit、2bit | |
流控制 | 无None | |
帧间隔 | 以多少个字节时长作为一帧结束1-32Byte,Modbus转换模式下不可设定,固定为3.5Byte | |
CAN参数 | ||
波特率 | CAN通道速率,5K-500Kbps | |
帧类型 | 以何种CAN帧转发232/485通道收到的数据,标准帧、扩展帧 | |
ID偏移 | 带标志转换用,指示ID在串行帧的起始地址0-7Byte | |
ID长度 | 带标志转换用,指示ID的占用几个字节长度1-4Byte | |
CAN_ID | 透明传输用,以哪个ID转发232通道收到的数据 | |
CAN过滤设置 | ||
接收单选框 | 用来设定是否接收标准帧和扩展帧 | |
滤波单选框 | 用来设定是否启用帧ID过滤,只有使能相应接收才可选择 | |
ID起始 | 需要接收的ID小值,标准帧0x001-0x7FF 扩展帧0x00000001-0x1FFFFFFF | |
ID结束 | 需要接受的ID大值标准帧,范围同上 | |
其他参数 | ||
允许CAN帧信息发送到串行数据 | 透明传输有效,一个字节,位0代表标准帧,1代表扩展帧,低4位帧数据长度 | |
允许CAN帧ID发送到串行数据 | 透明传输有效,收到的标准帧ID两个字节表示,扩展帧ID四个字节表示 |
注意事项:
软件会自动失能无关选项。
标准帧ID共11位范围0x001--0x7FF,扩展帧ID共29位范围0x00000000--0x1FFFFFFF。
串行帧用两个字节(16位)中低11位表示标准帧,用四个字节(32位)中低29位表示扩展帧。
透明传输模式下如果使能了“允许CAN帧ID转发到串行帧”,当CAN通道收到标准帧会把ID转成两个字节,收到扩展帧会把ID转为四个字节。建议在同时接收标准帧和扩展帧的情况下如果使能了“允许CAN帧ID转发到串行帧”则同时使能“允许CAN帧信息转发到串行帧”。
带标志转换模式下会把串行帧相应ID位字节转为CAN发送字节,同时把CAN通道收到的CAN帧ID转发到相应位置。建议如果接收扩展帧请把ID长度设置为4个字节长度,否则ID可能出错,详见后面转换方式。
Modbus转换模式下会把485通道收到每帧*个字节(即地址)作为CAN发送ID,相应的把CAN通道收到的CAN帧ID低8位(一个字节)作为Modbus应答帧*个字节(地址)。
帧间隔用来确定232通道或者485通道一帧数据是否发完,当连续超过帧间隔时间没有收到下一字节即可认为一帧结束。帧间隔单位是在设定波特率下一个字节时长。根据Modbus RTU传输协议,在波特率不大于19200的情况下帧间隔固定3.5个字节时长,大于19200时按固定时长1.75ms(因为中间一般有很多中断要处理)作为一帧间隔。故,本设备三种转换模式也参照此协议,即(帧间隔÷波特率)要不小于(3.5÷19200)。
4.2配置说明
在使用本产品之前需要先通过配置软件配置好收发模式和参数,否则软件会按近一次配置模式进行工作。
配置时短接SET和MODE端,通过USB转串口线连接电脑和设备的232接口并重新上电,打开配置软件选择设备型号为CAN网关,选择串口并打开然后进行参数设定。
设置好参数点击配置即可把配置信息写入设备,之后软件会提示是否配置成功。
五、转换方式
5.1透明传输
5.1.1串行帧到CAN通道
设备以PC端软件配置好的CAN帧类型和ID作为CAN发送的类型和ID,不断转发RS-232接口接收到的数据。
当232接口收到连续8个字节或者不够8个字节但一帧结束会立即转发到CAN总线,即如果一帧串口数据多于8个字节则每次发送8个字节直到后一段不足8个字节,如果一帧串口数据少于8个字节则一次发完。
串行帧 |
| 帧信息 | 用户配置 | 用户配置 | 用户配置 |
数据1 | 帧ID | 用户配置 | 用户配置 | 用户配置 | |
数据2 | 数据域 | 数据1 | 数据9 | 。 | |
数据3 | 数据2 | 数据10 | 。 | ||
。 | 数据3 | 。 | 。 | ||
。 | 数据4 | 。 | 。 | ||
。 | 数据5 | 。 | 。 | ||
数据n-2 | 数据6 | 。 | 数据n-1 | ||
数据n-1 | 数据7 | 。 | 数据n | ||
数据n | 数据8 | 。 |
|
串行帧转CAN帧信息用户不用管,里面包含了帧信息(标准帧还是扩展帧)以及数据字节长度;帧ID是由用户在软件配置的,下次配置之前永远保持不变。
5.1.2 CAN通道到串行帧
当CAN总线收到一帧CAN信息(一帧CAN数据小于等于8个字节)会立即转发到232接口。如果使能了“CAN帧信息发送到串行帧”则会把帧信息填充在*个字节,如果使能了“CAN帧ID发送到串行帧”则会把帧信息填充在之后的2(标准帧)或4(扩展帧)个字节,之后填充数据。
CAN帧 |
| 串行帧 | |
帧信息 | 标准帧0x00+数据字节长度 扩展帧0x80+数据字节长度 | 帧信息(可选) | |
帧ID | 标准帧11位,扩展帧29位 | 帧ID(可选) | |
数据域 | 数据1 | 数据1 | |
数据2 | 数据2 | ||
数据3 | 数据3 | ||
数据4 | 数据4 | ||
数据5 | 数据5 | ||
数据6 | 数据6 | ||
数据7 | 数据7 | ||
数据8 | 数据8 |
5.2带标志转换
5.2.1 串行帧到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,收完了*个字节就开始发送了,之后每收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位 |
5.2.2 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位 |
5.3 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发送出去。
5.3.1 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
5.3.2 CAN通道到RS-485通道
设备把CAN通道收上来的CAN帧按拆包规则逆向组合,之后在后加上两个字节CRC之后通过RS-485通道发送出去