YYMBOT 5IO开发板系统优化
GitHub ↗

更换 RS485 芯片后的速率复测

实测:2026-10-27T11:00:34.863336+08:00 至 2026-10-27T11:14:49.115000+08:00。

本次持续测试通过的最高已测档位:1M baud。短测到4M全部通过,但短测通过不等于持续可靠。默认仍为115200;1M至1.5M之间未细扫。

波特率 2026-10-25 本次持续测试 UART overrun A / B
1M 无同标准持续记录 20MiB + 1000次换向通过 0 / 0
1.5M 持续通过 第6轮,等长但64个位置不一致 1 / 0
2M 持续失败:少4字节 第2轮,净少6字节 1 / 0
2.5M 持续失败:少18字节 第6轮,等长但64个位置不一致 1 / 0
3M 持续失败:少27字节 第2轮,净少1字节 0 / 1
3.5M 持续失败:少2字节 第1轮,等长但66个位置不一致 0 / 2
4M 短测失败;其他配置试验亦失败 第2轮,净少3字节 0 / 2

上次4M持续试验含DMA/分核配置,与本次默认配置不作严格同条件数值比较;两天的负载、焊接和线束条件未完全受控,不将结果差异直接归因于单一芯片。

方法与范围

两路 UART4/ttyS4 与 UART7/ttyS7 物理对传,8N1,半双工交替,使用与2026-10-25完全相同的测速脚本。短测每向32KiB+50次换向;持续测试每向每轮1MiB、10轮及1000次换向,遇数据不符时该档立即停止。随机/固定混合载荷逐字节和SHA256核对,错误计数增量也必须为0。

新芯片型号:型号待用户确认,未独立拍摄丝印;更换路数:更换一路还是两路待用户确认。实物丝印、线长、端接电阻和波形未独立检查。不能据本次结果直接推断芯片最高额定速率。

错误现象为数据不符并伴UART接收溢出;尚未隔离出唯一根因。本次不修改DMA、中断亲和性或启动配置,保留前后可比条件。

结束后两路原termios、115200及配置哈希均恢复/保持,115200双向复测通过。故意波特率不匹配的负控正确失败,其累计错误与正式测试分开。

在线Wiki · 源码

复现测速

仅用于本文匹配的 RK3588 / LBM5-DIBAN-V01A、Linux6.1.172。先停止串口业务并按接口说明对插两个独立通道,再在目标板仓库根目录执行。脚本临时切换波特率并发出实际测试数据,结束恢复原termios;不会更改开机配置。不是健康检查入口。

# 短测扫描到4M,每向32KiB、50次换向
sudo python3 tools/lbm5-rs485-rate-test --phase sweep --output /var/lib/rk3588-board-kit/rs485-rate/new-sweep.json
# 持续验证指定档位:每向1MiB x10轮,1000次换向
sudo python3 tools/lbm5-rs485-rate-test --phase stress --rates 1000000 --rounds 10 --output /var/lib/rk3588-board-kit/rs485-rate/new-stress-1m.json

每次选择新的输出文件名留档。换速前确认对端也处于测试状态,不能在业务线上直接测速;运行前用 fuser /dev/ttyS4 /dev/ttyS7 核对占用。需要 Python3、pyserial(本次3.5)与root读取UART计数/内部回环状态。源码哈希与2026-10-25和本次实机执行版本一致。

脱敏数据 · PDF报告

输入关键词搜索全文;正文无需 JavaScript 也可阅读。