WS-TTL-CAN
来自Waveshare Wiki
| |||||||||||||||||||||
| |||||||||||||||||||||
说明
产品概述
WS-TTL-CAN 是一款 TTL 与 CAN 的数据相互转换的设备。设备的CAN参数(如波特率等)和串口参数都可以通过配置软件修改。
产品特性
- 实现CAN与TTL的双向数据通讯
- 可以通过TTL实现对设备的固件升级,方便定制固件
- 接口静电防护;浪涌防护;具有优良的EMC性能
- 14组可设置的滤波器
- 4种工作模式:透明转换、透明带标识转换、格式转换和Modbus RTU协议转换
- 具有离线检测和自动恢复功能
- 符合CAN 2.0B规范,兼容CAN 2.0A;符合ISO 11898-1/2/3
- 波特率支持10kbps~1000kbps
- CAN缓冲器达1000帧,保证数据不丢失
- 高速转换,串口在115200波特率,CAN在250kbps下,CAN发送速度可达1270扩展帧/秒(接近理论最大值1309);串口在460800波特率,CAN在1000kbps下,CAN发送速度可达5000扩展帧/秒以上
产品参数
产品类型 | TTL TO CAN 转换器 | |
主机接口 | CAN | |
设备接口 | TTL(含RS485方向控制) | |
CAN接口 | 通信速率 | 10kbps~1000kbps |
方向控制 | 硬件自动判别和控制数据传输方向 | |
匹配电阻 | 默认120R匹配电阻 | |
CAN接口引脚 | CAN-H、CAN-L、GND | |
TTL 接口 | 通信速率 | 1200bps ~ 460800bps |
方向控制 | 硬件自动判别和控制数据传输方向 | |
TTL 接口引脚 | TXD、RXD、GND | |
按键 | 按下1秒 | 系统复位 |
长按5秒 | 恢复出厂状态 | |
指示灯 | RUN | 运行状态指示灯,正常运行以1秒间隔闪烁 |
使用环境 | 温度范围 | -40~85℃ |
接口介绍
产品尺寸
设备配置
使用 USB TO TTL (或其他 USB 转 TTL 设备)进行初始化配置,不进行配置则保持出厂设置状态
硬件连接
- 连接 USB 转TTL 设备(以下为连接USB TO TTL)
WS-TTL-CAN USB TO TTL GND GND RXD TXD TXD RXD
软件操作
- 打开 SSCOM ,查看使用的 COM 口,当前使用 COM42 进行演示
- 打开 CAN转串口配置软件
- 可根据需求调整显示语言(以下使用默认英文界面)
- 选择上方连接 USB TO TTL 对应的 COM 口,打开串口
- 点击 获取设备参数
- 若需修改设备参数,直接修改后点击保存设备参数,然后点击 重启设备(示例修改 CAN ID)
模式使用说明
透明转换
- 透明转换方式下,转换器接收到一侧总线的数据就立即转换发送至另一总线侧。
串行帧转CAN
- 串行帧的全部数据依序填充到CAN 报文帧的数据域里。转换器接收到串行总线上的一帧数据后立即转到CAN总线上。转换成的CAN 报文帧信息(帧类型部分)和帧ID 来自用户事先的配置,并且在转换过程中帧类型和帧ID 一直保持不变。
- 数据转换对应格式如下图所示
- 如果收到串的行帧长度小于等于8字节,依序将字符1到n(n为串行帧长度)填充到CAN报文的数据域的1到n个字节位置(如上图中n为7)。
- 如果串行帧的字节数大于8,那么处理器从串行帧首个字符开始,第一次取8个字符依次填充到CAN报文的数据域。将数据发至CAN总线后,再转换余下的串行帧数据填充到CAN报文的数据域,直到其数据被转换完。
- 例如,CAN参数设置中选择了“标准帧”,CAN ID 填00000060,注意标准帧只有后11位有效。
- 转成CAN的数据如下
CAN帧转串口
- 对于CAN总线的报文也是收到一帧就立即转发一帧。
- 转换时将CAN报文数据域中的数据依序全部转换到串行帧中。数据格式对应如下图所示。
- 如果在配置的时候,开启了“CAN信息是否转串行中”,那么转换器会将CAN报文的“帧信息”字节直接填充至串行帧。
- 如果开启了“CAN帧ID是否转串行中”,那么也将CAN报文的“帧ID”字节全部填充至串行帧。
- 例如,开启了“CAN信息是否转串行中”,不开启“CAN帧ID是否转串行中”,CAN帧转到串行如下图
透明带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继续转换直到将串行帧转换完成,如下图所示。
- 例如,CAN ID在串行帧中的起始地址是0,长度是3(扩展帧情况下),串行帧和转换成CAN报文结果如下图所示。其中,两帧CAN 报文用相同的ID 进行转换。
CAN帧转串行
- 假定配置的CAN ID在串行帧中的起始地址是0,长度是3(扩展帧情况下),CAN报文和转换成串行帧的结果如下图
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。
- CAN帧信息(远程帧或数据帧;标准帧或扩展帧)通过配置软件设置。
- 传输的 Modbus协议内容即可从“数据 2”字节开始,如果协议内容大于 7 个字节,那么将剩下的协议内容照这种分段格式继续转换,直到转换完成。
- 数据1是分段控制信息(占1个字节,8Bit),其含义如下:
分段标记
占1个Bit位(Bit7), 标志该报文是否是分段报文。该位为 0 表示单独报文,为 1 表示属于被分段报文中的一帧。
分段类型
占2个Bit位(Bit6,Bit5),用于表示该报文在分段报文中的类型
分段计数器
占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帧中,仅做为报文的确认控制信息。
- CAN侧的数据到ModBus RTU的转换原理和上面相同,CAN侧收到上述4条报文后,转换器会将收到的CAN报文按照上述的CAN分段机制组合成一帧RTU数据,并在结尾加上CRC校验
功能验证
TTL TO CAN 测试
使用 USB-CAN-A 与 USB TO TTL 进行功能演示
硬件连接
- 连接 CAN 设备
WS-TTL-CAN - CAN USB-CAN-A CAN H CAN H CAN L CAN L
- 连接 TTL 设备
WS-TTL-CAN - TTL USB TO TTL GND GND RXD TXD TXD RXD
软件操作
- 开启 USB-CAN-A_TOOL
- 选择 USB-CAN-A 对应 COM 口,点击 打开
- 选择 CAN设备的波特率为 250kbps,点击 设置并启动 ,输入需要发送的数据,选择 循环
- 开启 1 个 SSCOM,选择 USB TO 4CH Serial Converter 的 Port D 对应 COM 口,点击 打开串口
- 在 SSCOM 软件中,勾选 HEX显示、HEX发送、加时间戳和分包显示,并输入要发送的数据
11 22 33 44 55 66 77 88
- 在 USB-CAN-A_TOOL 中选中一个数据,点击 发送选中帧
- 可看到一收一发的现象
- 或点击 SSCOM 的定时发送
- 可看到一收一发的现象
资料
软件
数据手册
FAQ
- 在客户需要将 TTL 接口调整为 RS485 接口时使用(需要 RS485 芯片支持),若不扩展为 RS485 接口,则悬空该引脚即可。
{{{5}}}
- 请长按复位键5秒以上,直到指示灯连续闪烁(恢复出厂),再根据所需重新配置通信参数即可。
{{{5}}}
- CAN 接口侧默认连接 120R 电阻
{{{5}}}