概述
CH9114
CH9114是一款高速USB 2.0总线的转4串口芯片,支持通讯波特率1200bps~15Mbps。
具体介绍可参考:
https://blog.youkuaiyun.com/qq_43010294/article/details/142853833
CH397
CH397是一款高集成度、低功耗的USB 2.0百兆网卡芯片。内置青稞RISC-V 处理器、符合USB2.1 协议规范的高速USB 控制器及收发器PHY、以及符合IEEE802.3 协议规范、支持10M/100M 网络的以太网MAC+PHY。
适配各类台式电脑、笔记本电脑、平板电脑、游戏机等的标准USB主机接口,用于通过USB扩展以太网接口。
具体介绍可参考:
https://www.wch.cn/products/CH397.html
https://blog.youkuaiyun.com/qq_43010294/article/details/140865754
Modbus
Modbus是一种串行通信协议,是工业电子设备之间相当常用的连接方式。Modbus允许多个 (大约240个) 设备连接在同一个网络上进行通信,常用来连接监控计算机和远程终端控制系统。
Modbus 协议有多种实现方式,其中最常见的是 Modbus RTU(Remote Terminal Unit)和 Modbus TCP(Transmission Control Protocol)。
Modbus TCP
Modbus TCP 使用以太网(TCP/IP)进行数据传输。这使得其可以利用现有的网络基础设施进行通信。
受益于以太网的高带宽,其优势为数据传输速度快。
Modbus RTU
Modbus RTU 使用串行通信(例如 RS-232 或 RS-485)进行数据传输。
其优势为结构较为简单,使用方便。
但受制于串口速率,与Modbus TCP通讯速度相比较低。
mbusd
实际使用中,大多通过Modbus RTU协议与Modbus传感器通讯,采集到所需数据,再利用Modbus网关转为Modbus TCP数据,远距离传输至上位机中。
mbusd作为开源Modbus网关开源项目,实现了Modbus TCP与Modbus RTU相互转换。
项目地址:
https://github.com/3cky/mbusd
项目实际使用
借助CH9114高波特率的特点,减少了Modbus TCP与Modbus RTU之间速度不匹配问题,提高了通讯效率,减少了带宽浪费。
Example:
-s ------- 波特率设置
-P ------- Modbus TCP服务器端口号
-A ------- Modbus TCP绑定IP地址
-p ------- Modbus RTU设备名
./mbusd -L/tmp/mbusd.log -s 921600 -T 1000 -P 502 -d -v9 -A 192.168.50.2 -p /dev/ttyS12
mbusd-0.5.2 started...
tty: trying to open /dev/ttyS12 (speed 921600 mode 8N1)
tty: state now is TTY_PAUSE
select(): max_sd = 4, t_out = 000000:100000
conn_loop(): select() returns 0
tty: state now is TTY_READY
conn_loop(): select(): max_sd = 4, t_out = 001000:000000