[具身智能-572]:RDK 平台各类串口节点区分详解
·
ls /dev/tty[a-zA-Z]*
/dev/ttyprintk /dev/ttyS0 /dev/ttyS1 /dev/ttyS2 /dev/ttyS3 /dev/ttyS4 /dev/ttyS5 /dev/ttyS6 /dev/ttyS7 /dev/ttyUSB0 /dev/ttyUSB1
列出设备:/dev/ttyprintk、ttyS0~ttyS7、ttyUSB0/ttyUSB1,分三类说明用途、硬件来源、使用场景。
一、/dev/ttyprintk 内核打印虚拟终端
- 类型:纯虚拟设备,无硬件串口对应
- 作用:接收内核
printk日志输出,dmesg、journalctl底层读取该节点 - 不能用作外设串口通信: 无法接传感器、RS485、模块收发数据,读写只会打印 / 读取系统内核日志。
二、/dev/ttyS0 ~ /dev/ttyS7:SoC 硬件原生 UART 串口
ttySx = SOC 片内硬件串口(地平线 RDK X3/X5 内置多路硬件 UART 控制器)
通用特性
- 硬件直出引脚,TX/RX/GND,支持 RS232/RS485 外接电平转换板;
- 无 USB 转换芯片,时序稳定、无 USB 抖动、适合工业长期通信;
- 占用开发板物理引脚,受设备树配置控制,可复用为 GPIO。
典型分配(RDK 标准)
ttyS0:系统调试串口(Console) 出厂默认绑定内核打印、uboot 日志,串口终端调试; 若程序占用,串口控制台会失效,调试信息看不到。ttyS1 ~ ttyS7:用户可用业务串口 外接蓝牙模块、GPS、RS485 传感器、Modbus 设备、电机驱动器等。
使用注意
- 操作需要
dialout用户组权限; - 收发必须交叉接线:A-TX → B-RX,共 GND;
- 可通过
v4l2-ctl/GPIO 搭配控制 RS485 收发使能引脚。
三、/dev/ttyUSB0、/dev/ttyUSB1:USB 转串口设备
- 硬件来源:USB 转 TTL 芯片(CH340/CP2102/PL2303)模块插入 USB 口生成;
- 特点
- 热插拔:插拔 USB 设备序号会漂移(拔插后 USB0 变 USB1);
- 依赖 USB 总线,大数据量存在轻微时延抖动;
- 无需占用主板原生 UART 引脚,扩展串口首选;
- 适用场景:临时外接调试工具、外置传感器、上位机调试;
- 缺点:多路 USB 转串口同时使用会抢占 USB 带宽,时序稳定性弱于
ttySx硬件串口。
四、快速区分命令
- 查看硬件归属(区分原生 UART/USB 串口)
bash
运行
# 查看ttyS硬件信息
dmesg | grep ttyS
# 查看USB串口挂载信息
dmesg | grep ttyUSB
- 查看串口权限
bash
运行
ls -l /dev/tty*
# 串口归属组 dialout
- 查看当前哪个进程占用串口
bash
运行
sudo lsof /dev/ttyS0
sudo lsof /dev/ttyUSB0
五、选型建议
- 产品量产、稳定 Modbus / 传感器通信:优先
ttyS1~ttyS7硬件串口; - 系统调试打印:使用
ttyS0,业务程序尽量不占用; - 临时扩展、外接电脑调试:使用
ttyUSB0/1; - 日志查看、内核调试:
ttyprintk,不可业务通信。
六、结合上一段串口测试代码使用示例
运行脚本时输入设备名可选:
- 硬件业务串口:
/dev/ttyS1 - USB 转串口:
/dev/ttyUSB0禁止选择:/dev/ttyprintk(无法收发自定义数据)
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)