RS232/485/422 TO CAN

来自Waveshare Wiki
跳转至: 导航搜索
RS232/485/422 TO CAN
{{{name2}}}
{{{name3}}}
功能简介
特性 RS232 RS485 RS422 CAN
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 RS232 RS485 RS422

说明

产品概述

RS232/485/422 TO CAN 是一款工业级 RS232/485/422 转 CAN 隔离型转换器,内置电源隔离、ADI 磁耦隔离和 TVS 等保护电路,工业导轨外壳设计。RS232/485/422 TO CAN 操作简单,零延时自动收发转换,具有通信速度快、稳定、可靠、安全等特点,可适用于各种通信要求较高的工控设备或应用。

产品特性

  • 采用 SP3232EEN+SP485EEN 芯片方案,高速通信稳定、可靠、兼容性好
  • 板载一体式电源隔离,可提供稳定的隔离电压,隔离端无须额外供电
  • 板载一体式数字隔离,可进行信号隔离,可靠性高、抗干扰强、功耗低
  • 符合 CAN 2.0B(扩展帧)规范,兼容 CAN 2.0A(标准帧);符合 ISO 11898-1/2/3。
  • 支持 CAN 通讯波特率范围:10kbps~1000kbps,可选 CAN 波特率
  • 高速转换,RS232/485/422 在 115200 波特率,CAN 在 250kbps 下,CAN 发送速度可达 1270 扩展帧/秒(接近理论最大值 1309 扩展帧/秒);
  • 实现 CAN 与 RS232/485/422 的双向数据通讯;
  • 4 种 CAN 工作模式:透明转换、透明带标识转换、格式转换和 Modbus RTU 协议转换;
  • 板载 TVS (瞬态电压抑制管),可有效抑制电路中的浪涌电压和瞬态尖峰电压,防雷防静电
  • 板载自恢复保险丝和保护二极管,可确保电流和电压稳定输出,防过流过压,提高抗冲击能力
  • 板载 15KV ESD 隔离保护和 600W 雷电浪涌保护
  • 板载 RS485/RS422 接口的 120R 终端电阻,可通过跳线帽设置修改
  • 可以通过RS232/485/422 实现对设备的固件升级,方便定制固件;
  • 支持通过配置软件或串口指令设置工作参数,可断电保存
  • 板载端子供电接口,支持 5 ~ 36V DC 宽电压范围供电
  • 外置 4 个 LED 指示灯,方便查看电源和信号收发状态
  • 工业级金属外壳,支持壁挂和导轨两种安装方式,坚固美观,易安装

产品参数

产品类型 工业级隔离型 RS232/485/422 TO CAN 转换器
主机接口 CAN
设备接口 RS232/485/422
CAN接口 通信速率 10kbps~1000kbps
方向控制 硬件自动判别和控制数据传输方向
匹配电阻 默认120R匹配电阻
接口形式 接线端子
CAN接口引脚 H、L、GND
RS232/485/422接口 通信速率 1200bps ~ 460800bps
方向控制 硬件自动判别和控制数据传输方向
匹配电阻 默认NC,预留120R匹配电阻,可跳线帽使能
RS232接口形式 DB9 接口
RS485/422接口形式 接线端子
RS485接口引脚 A+、B-、GND
RS422接口引脚 TA、TB、RA、RB、GND
接口保护 提供 600W 防雷、浪涌和 15KV 静电保护 (板载 120R 平衡电阻)
传输模式 点对多 (至多 32 个节点,16 个节点以上建议加中继器)
按键 按下1秒 系统复位
长按5秒 恢复出厂状态
指示灯 PWR 电源指示灯,接入电源,检测到电压则亮红灯
RUN 运行状态指示灯,正常运行以1秒间隔闪烁
COM CAN 发送指示灯,有数据从 CAN 口发出时亮蓝灯
RS232/485/422 接收指示灯,有数据从设备接口发回 RS232/485/422 时亮蓝灯
CAN CAN 接收指示灯,有数据从设备接口发回 CAN 时亮蓝灯
RS232/485/422 发送指示灯,有数据从 RS232/485/422 口发出时亮蓝灯
使用环境 温度范围 -10℃ ~70℃

接口介绍

RS232 485 422 TO CAN For Products 2.png

产品尺寸

RS232 485 422 TO CAN For Products 4.png

默认出厂设置

RS232 485 422 TO CAN For Products 0.png

设备配置

使用 USB TO 4CH Serial Converter (或其他USB转RS232、USB转RS485、USB转RS422设备)进行初始化配置,不进行配置则保持出厂设置状态

硬件连接

  • 连接 USB 转 RS232/485/422 设备(以下为连接 USB TO 4CH Serial Converter的 RS485 接口)
RS232/485/422 TO CAN - RS485 USB TO 4CH Serial Converter - Port C
RS485 - GND Port C - GND
RS485 - A+ Port C - A+
RS485 - B- Port C - B-

软件操作

  • 打开 SSCOM ,查看使用的 COM 口,当前使用 COM42 进行演示

RS232 485 422 TO CAN For Config 1.png

RS232 485 422 TO CAN For Config 2.png

  • 可根据需求调整显示语言(以下使用默认英文界面)

RS232 485 422 TO CAN For Config Add 1.png

  • 选择上方连接 RS232/485/422 对应的 COM 口,打开串口

RS232 485 422 TO CAN For Config 3.png

  • 点击 获取设备参数

RS232 485 422 TO CAN For Config 4.png

  • 若需修改设备参数,直接修改后点击保存设备参数,然后点击 重启设备(示例修改 CAN ID)

RS232 485 422 TO CAN For Config 5.png

模式使用说明

透明转换

  • 透明转换方式下,转换器接收到一侧总线的数据就立即转换发送至另一总线侧。

串行帧转CAN

  • 串行帧的全部数据依序填充到CAN 报文帧的数据域里。转换器接收到串行总线上的一帧数据后立即转到CAN总线上。转换成的CAN 报文帧信息(帧类型部分)和帧ID 来自用户事先的配置,并且在转换过程中帧类型和帧ID 一直保持不变。
  • 数据转换对应格式如下图所示

RS232 485 422 TO CAN For Mode 1.png

  • 如果收到串的行帧长度小于等于8字节,依序将字符1到n(n为串行帧长度)填充到CAN报文的数据域的1到n个字节位置(如上图中n为7)。
  • 如果串行帧的字节数大于8,那么处理器从串行帧首个字符开始,第一次取8个字符依次填充到CAN报文的数据域。将数据发至CAN总线后,再转换余下的串行帧数据填充到CAN报文的数据域,直到其数据被转换完。
  • 例如,CAN参数设置中选择了“标准帧”,CAN ID 填00000060,注意标准帧只有后11位有效。
  • 转成CAN的数据如下

RS232 485 422 TO CAN For Mode 2.png

CAN帧转串口

  • 对于CAN总线的报文也是收到一帧就立即转发一帧。
  • 转换时将CAN报文数据域中的数据依序全部转换到串行帧中。数据格式对应如下图所示。

RS232 485 422 TO CAN For Mode 3.png

  • 如果在配置的时候,开启了“CAN信息是否转串行中”,那么转换器会将CAN报文的“帧信息”字节直接填充至串行帧。
  • 如果开启了“CAN帧ID是否转串行中”,那么也将CAN报文的“帧ID”字节全部填充至串行帧。
  • 例如,开启了“CAN信息是否转串行中”,不开启“CAN帧ID是否转串行中”,CAN帧转到串行如下图

RS232 485 422 TO CAN For Mode 4.png

透明带ID转换

  • 透明带标识转换是透明转换的特殊用法,有利于用户通过转换器更方便的组建自己的网络,使用自定的应用协议。
  • 该方式把串行帧中的地址信息自动转换成CAN总线的帧ID。只要在配置中告诉转换器该地址在串行帧的起始位置和长度,转换器在转换时提取出这个帧ID 填充在CAN 报文的帧ID域里,作为该串行帧的转发时的CAN报文的ID。在CAN报文转换成串行帧的时候也把CAN报文的ID转换在串行帧的相应位置。注意在该转换模式下,配置软件的“CAN参数设置”项的“CAN ID”无效,因为此时发送的标识符(帧ID)由上述的串行帧中的数据填充的。

串行帧转CAN

  • 转换器接收完一帧串行数据后,立即转发到CAN总线上。
  • 串行帧中所带有的CAN的ID在串行帧中的起始地址和长度可由配置设定。起始地址的范围是0~7,长度范围分别是1~2(标准帧)或1~4(扩展帧)。
  • 转换时根据事先的配置将串行帧中的CAN帧ID对应全部转换到CAN报文的帧ID域中(如果所带帧ID个数少于CAN报文的帧ID个数,那么在CAN报文的填充顺序是帧ID1~ID4,并将余下的ID填为0),其它的数据依序转换。
  • 如果一帧CAN报文未将串行帧数据转换完,则仍然用相同的ID作为CAN报文的帧ID继续转换直到将串行帧转换完成,如下图所示。

RS232 485 422 TO CAN For Mode 5.png

  • 例如,CAN ID在串行帧中的起始地址是0,长度是3(扩展帧情况下),串行帧和转换成CAN报文结果如下图所示。其中,两帧CAN 报文用相同的ID 进行转换。

RS232 485 422 TO CAN For Mode 6.png

CAN帧转串行

  • 假定配置的CAN ID在串行帧中的起始地址是0,长度是3(扩展帧情况下),CAN报文和转换成串行帧的结果如下图

RS232 485 422 TO CAN For Mode 7.png

格式转换

  • 是一种最简单的使用模式,数据格式约定为13 字节,包含了CAN 帧的所以信息。

转换说明

  • 数据转换格式,如下图所示每一个CAN帧包含13个字节,13个字节内容包括CAN信息+ID+数据。

RS232 485 422 TO CAN For Mode 8.png
RS232 485 422 TO CAN For Mode 9.png
RS232 485 422 TO CAN For Mode 10.png

Modbus协议转换

  • 将标准的Modbus RTU串行数据协议转换成特定的CAN数据格式,此种转换一般要求CAN总线设备报文可编辑。
  • 串口侧数据必须符合标准的Modbus RTU协议,否则不能转换,注意,CRC校验不转换到CAN侧。
  • CAN侧制定了一个简单高效的分段通讯格式来实现 Modbus RTU的通讯,不区分主机和从机,用户只需按照标准的Modbus RTU协议通讯即可。
  • CAN侧不需要加CRC校验,转换器收到最后一个CAN帧后,会自动加上CRC,组成一帧标准的Modbus RTU数据包,发到串口上。
  • 该模式下,配置软件的【CAN参数设置】的【CAN ID】无效,因为此时发送的标识符(帧ID)由Modbus RTU串行帧中的地址域(节点ID)填充。

串行帧格式(Modbus RTU)

  • 串行参数:波特率、数据位、停止位和校验位都可通过配置软件设置。
  • 数据协议需符合标准的Modbus RTU协议。

CAN帧格式

  • CAN侧设计了一套分段协议格式,其定义了一个长度大于 8 字节的信息进行分段以及重组的方法,如下所示。
  • 注意,当CAN帧为单帧时,分段标志位为0x00。

RS232 485 422 TO CAN For Mode 11.png

  • CAN帧信息(远程帧或数据帧;标准帧或扩展帧)通过配置软件设置。
  • 传输的 Modbus协议内容即可从“数据 2”字节开始,如果协议内容大于 7 个字节,那么将剩下的协议内容照这种分段格式继续转换,直到转换完成。
  • 数据1是分段控制信息(占1个字节,8Bit),其含义如下:

     分段标记
        占1个Bit位(Bit7), 标志该报文是否是分段报文。该位为 0 表示单独报文,为 1 表示属于被分段报文中的一帧。
     分段类型
        占2个Bit位(Bit6,Bit5),用于表示该报文在分段报文中的类型
        RS232 485 422 TO CAN For Mode 12.png
     分段计数器
        占5个Bit位(Bit4-Bit0),用于区分同一帧Modbus报文中分段的序号,够验证是同一帧的分段是否完整。

转换示例

  • 串口侧Modbus RTU数据(十六进制):

     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

  • 第一个字节01是Modbus RTU的地址码,转换成CAN的ID.7-ID.0。
  • 最后2个字节(4E 35)为Modbus RTU的CRC校验,丢掉不转换。
  • 最终转成CAN数据报文如下:

     第1帧CAN报文:81 03 14 00 0A 00 00 00
     第2帧CAN报文:a2 00 00 14 00 00 00 00
     第3帧CAN报文:a3 00 17 00 2C 00 37 00
     第4帧CAN报文:c4 c8

  • CAN报文的帧类型(标准帧或扩展帧)通过配置软件设置;
  • 每个CAN报文的第一个数据都有分段信息来填充(81、a2、a3和c4),该信息不转换到Modbus RTU帧中,仅做为报文的确认控制信息。

RS232 485 422 TO CAN For Mode 13.png

  • CAN侧的数据到ModBus RTU的转换原理和上面相同,CAN侧收到上述4条报文后,转换器会将收到的CAN报文按照上述的CAN分段机制组合成一帧RTU数据,并在结尾加上CRC校验

RS232 485 422 TO CAN For Mode 14.png

功能验证

RS232 TO CAN 测试

使用 USB-CAN-AUSB TO 4CH Serial Converter 进行功能演示

硬件连接

  • 连接 CAN 设备
RS232/485/422 TO CAN - CAN USB-CAN-A
CAN - CAN H CAN - CAN H
CAN - CAN L CAN - CAN L
CAN - CAN G CAN - GND
  • 连接 RS232 设备
RS232/485/422 TO CAN - RS232 USB TO 4CH Serial Converter - Port D
RS232 - GND Port D - GND
RS232 - TXD Port D - RXD
RS232 - RXD Port D - TXD

软件操作

RS232 485 422 TO CAN For RS232 1.png

  • 选择 CAN设备的波特率为 250kbps,点击 设置并启动 ,输入需要发送的数据,选择 循环

RS232 485 422 TO CAN For RS232 2.png

  • 开启 1 个 SSCOM,选择 USB TO 4CH Serial Converter 的 Port D 对应 COM 口,点击 打开串口

RS232 485 422 TO CAN For RS232 3.png

  • 在 SSCOM 软件中,勾选 HEX显示、HEX发送、加时间戳和分包显示,并输入要发送的数据
11 22 33 44 55 66 77 88

RS232 485 422 TO CAN For RS232 4.png

  • 在 USB-CAN-A_TOOL 中选中一个数据,点击 发送选中帧

RS232 485 422 TO CAN For RS232 5.png

  • 可看到一收一发的现象

RS232 485 422 TO CAN For RS232 6.png

  • 或点击 SSCOM 的定时发送

RS232 485 422 TO CAN For RS232 7.png

  • 可看到一收一发的现象

RS232 485 422 TO CAN For RS232 8.png

RS485 TO CAN 测试

使用 USB-CAN-AUSB TO 4CH Serial Converter 进行功能演示

硬件连接

  • 连接 CAN 设备
RS232/485/422 TO CAN - CAN USB-CAN-A
CAN - CAN H CAN - CAN H
CAN - CAN L CAN - CAN L
CAN - CAN G CAN - GND
  • 连接 RS485 设备
RS232/485/422 TO CAN - RS485 USB TO 4CH Serial Converter - Port C
RS485 - GND Port C - GND
RS485 - A+ Port C - A+
RS485 - B- Port C - B-

软件操作

RS232 485 422 TO CAN For RS485 1.png

  • 选择 CAN设备的波特率为 250kbps,点击 设置并启动 ,输入需要发送的数据,选择 循环

RS232 485 422 TO CAN For RS485 2.png

  • 开启 1 个 SSCOM,选择 USB TO 4CH Serial Converter 的 Port C 对应 COM 口,点击 打开串口

RS232 485 422 TO CAN For RS485 3.png

  • 在 SSCOM 软件中,勾选 HEX显示、HEX发送、加时间戳和分包显示,并输入要发送的数据
11 22 33 44 55 66 77 88

RS232 485 422 TO CAN For RS485 4.png

  • 在 USB-CAN-A_TOOL 中选中一个数据,点击 发送选中帧

RS232 485 422 TO CAN For RS485 5.png

  • 可看到一收一发的现象

RS232 485 422 TO CAN For RS485 6.png

  • 或点击 SSCOM 的定时发送

RS232 485 422 TO CAN For RS485 7.png

  • 可看到一收一发的现象

RS232 485 422 TO CAN For RS485 8.png

RS422 TO CAN测试

使用 USB-CAN-AUSB TO 4CH Serial Converter 进行功能演示

硬件连接

  • 连接 CAN 设备
RS232/485/422 TO CAN - CAN USB-CAN-A
CAN - CAN H CAN - CAN H
CAN - CAN L CAN - CAN L
CAN - CAN G CAN - GND
  • 连接 RS422 设备
RS232/485/422 TO CAN - RS422 USB TO 4CH Serial Converter - Port C
RS422 - GND Port C - GND
RS422 - TA Port C - RA
RS422 - TB Port C - RB
RS422 - RA Port C - TA
RS422 - RB Port C - TB

软件操作

RS232 485 422 TO CAN For RS422 1.png

  • 选择 CAN设备的波特率为 250kbps,点击 设置并启动 ,输入需要发送的数据,选择 循环

RS232 485 422 TO CAN For RS422 2.png

  • 开启 1 个 SSCOM,选择 USB TO 4CH Serial Converter 的 Port C 对应 COM 口,点击 打开串口

RS232 485 422 TO CAN For RS422 3.png

  • 在 SSCOM 软件中,勾选 HEX显示、HEX发送、加时间戳和分包显示,并输入要发送的数据
11 22 33 44 55 66 77 88

RS232 485 422 TO CAN For RS422 4.png

  • 在 USB-CAN-A_TOOL 中选中一个数据,点击 发送选中帧

RS232 485 422 TO CAN For RS422 5.png

  • 可看到一收一发的现象

RS232 485 422 TO CAN For RS422 6.png

  • 或点击 SSCOM 的定时发送

RS232 485 422 TO CAN For RS422 7.png

  • 可看到一收一发的现象

RS232 485 422 TO CAN For RS422 8.png

RS485 CAN HAT 上扩展

RS485 CAN HAT 相关使用说明
请先行了解 RS485 CAN HAT 相关使用

接口扩展

扩展 CAN 接口

  • 连接 RS485 口,将 RS485 CAN HAT 扩展为 2 个 CAN 接口
RS232/485/422 TO CAN - RS485 RS485 CAN HAT
RS485 - A+ RS485 - A+
RS485 - B- RS485 - B-

扩展 RS232/485/422 接口

  • 连接 CAN 口,将 RS485 CAN HAT 扩展为 1 个 RS485 接口和一个 RS232/485/422 接口
RS232/485/422 TO CAN - CAN RS485 CAN HAT
CAN - CAN H CAN - CAN H
CAN - CAN L CAN - CAN L

示例演示

使用 RS232/485/422 TO CAN 让 RS485 CAN HAT 的 RS485 与 CAN 进行通信

硬件连接

RS232/485/422 TO CAN - RS485 RS485 CAN HAT
CAN - CAN H CAN - CAN H
CAN - CAN L CAN - CAN L
RS485 - A+ RS485 - A+
RS485 - B- RS485 - B-

软件操作

前置操作

  • 将 RS485 CAN HAT 模块与树莓派连接,然后修改开机脚本config.txt
sudo nano /boot/config.txt
  • 在最后一行加入如下:
dtparam=spi=on
dtoverlay=mcp2515-can0,oscillator=12000000,interrupt=25,spimaxfrequency=2000000
  • 同时在 /boot/config.txt 找到如下配置语句使能串口,如果没有,可添加在文件最后面。
enable_uart=1

RS232 485 422 TO CAN For RS485-CAN-HAT 0.png

安装库

以下操作为必须操作

安装can-utils

sudo apt-get install can-utils

安装 wiringpi 环境

#打开树莓派终端,并运行以下指令
cd
sudo apt-get install wiringpi
#对于树莓派2019年5月之后的系统(早于之前的可不用执行),可能需要进行升级:
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
gpio -v
# 运行gpio -v会出现2.52版本,如果没有出现说明安装出错

安装 Python 环境

sudo apt-get update
sudo apt-get install python3-pip
sudo apt-get install python-serial
  • 配置运行环境
sudo pip install python-can
  • 若上方指令运行失败,请使用下列其他镜像源下载
sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-can
sudo pip install -i https://mirrors.aliyun.com/pypi/simple python-can
sudo pip install -i https://pypi.mirrors.ustc.edu.cn/simple python-can

修改 RS232/485/422 TO CAN 配置

  • 使用 软件修改 RS232/485/422 TO CAN 设备的 CAN 接口 ID
  • 将CAN ID 设置为 123 ,请按照 设备配置 依次操作

C 示例

  • 若以执行过下载操作,请跳过文件删除步骤与程序下载步骤(即下方两点)
  • 删除此前下载的资料包,请注意:若需要保留原 RS485_CAN_HAT_Code 文件请拷贝至其他路径
cd
rm -rf RS485_CAN_HAT_Code.zip
rm -rf RS232-485-422_Code.zip
rm -rf RS485_CAN_HAT_Code
sudo ifconfig can0 down
  • 下载示例程序
cd
sudo apt-get install unzip
wget  https://www.waveshare.net/w/upload/6/6b/RS232-485-422_Code.zip
unzip RS232-485-422_Code.zip
sudo chmod 777 -R RS485_CAN_HAT_Code/
  • 运行CAN发送、RS485接收示例
cd
cd RS485_CAN_HAT_Code/CAN_TO_RS485/wiringPi/
make clean
make
sudo ./can_send

RS232 485 422 TO CAN For RS485-CAN-HAT 1.png

  • 运行RS485发送、CAN接收示例
cd
cd RS485_CAN_HAT_Code/RS485_TO_CAN/wiringPi/
make clean
make
sudo ./485_send

RS232 485 422 TO CAN For RS485-CAN-HAT 2.png

Python 示例

  • 若以执行过下载操作,请跳过文件删除步骤与程序下载步骤(即下方两点)
  • 删除此前下载的资料包,请注意:若需要保留原 RS485_CAN_HAT_Code 文件请拷贝至其他路径
cd
rm -rf RS485_CAN_HAT_Code.zip
rm -rf RS232-485-422_Code.zip
rm -rf RS485_CAN_HAT_Code
sudo ifconfig can0 down
  • 下载示例程序
cd
sudo apt-get install unzip
wget  https://www.waveshare.net/w/upload/6/6b/RS232-485-422_Code.zip
unzip RS232-485-422_Code.zip
sudo chmod 777 -R RS485_CAN_HAT_Code/
  • 重新打开can0,运行CAN发送、RS485接收示例
cd
cd RS485_CAN_HAT_Code/CAN_TO_RS485/python/
sudo python can_send.py

RS232 485 422 TO CAN For RS485-CAN-HAT 3.png

  • 重新打开can0,运行RS485发送、CAN接收示例
cd
cd RS485_CAN_HAT_Code/RS485_TO_CAN/python/
sudo python 485_send.py

RS232 485 422 TO CAN For RS485-CAN-HAT 4.png

资料

软件

外部测试程序

数据手册

FAQ

  • 请长按复位键5秒以上,直到指示灯连续闪烁(恢复出厂),再根据所需重新配置通信参数即可。
{{{3}}}
{{{4}}}

{{{5}}}


  • 请注意接收到的数据的帧类型,相当于接收到数据类型为扩展帧(Extended)时,帧ID为 0xFFFFFFFF & CAN_ID,接收到数据类型为标准帧(Standard)时,帧ID为 0x000007FF & CAN_ID ,与软件配置的帧类型无关(透明转换的情况)。
  • 使用软件所配置的为发送数据时的帧类型,如下。

RS232 485 422 TO CAN For FAQ 1.png

{{{3}}}
{{{4}}}

{{{5}}}


  • 有的,如须修改120R匹配电阻,可在 RS485/422 端将跳线帽移至 120R 位置。
{{{3}}}
{{{4}}}

{{{5}}}


  • 将 RS485/422 的跳线帽移至120欧姆位置。
{{{3}}}
{{{4}}}

{{{5}}}


  • 不使能 RS485/422 的两个120Ω终端匹配电阻,即跳线帽跳到NC。
{{{3}}}
{{{4}}}

{{{5}}}


技术支持

联系人:欧工
EMAIL:2355861365@qq.com
QQ:2355861365
微信:扫下方二维码添加
欧工企业微信联系二维码.png

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证