当前位置: 首页 > news >正文

在Linux系统中创建虚拟串口

在Linux系统中创建虚拟串口

文章目录

  • 在Linux系统中创建虚拟串口
    • 1、虚拟串口介绍
    • 2、使用 socat创建虚拟串行端口
      • 2.1 安装socat
      • 2.2 创建简单的虚拟串口
      • 2.3 创建指定波特率的串行端口

有多种方法可以在 Linux 中创建虚拟串口来测试和调试串行通信协议。 在本文中,我们将详细介绍如何在Linux中创建虚拟串行端口。

1、虚拟串口介绍

虚拟串口是物理串口的逻辑表示。 这些端口不与串行端口连接。 虚拟串行端口允许我们模拟物理串行端口,从而消除电缆和物理通信接口的要求。

此外,虚拟端口允许软件包使用空调制解调器仿真器与内部存储器进行通信。 空调制解调器模拟器是 Linux 的虚拟驱动程序,可实现虚拟串行端口通信。

2、使用 socat创建虚拟串行端口

创建虚拟串行端口的第一种方法是使用 socat 实用程序。 该实用程序使用标准输入和输出将端口流量传输到可执行文件。 socat 的语法如下:

socat [OPTIONS]

这两个ADDRESS可以是:

  • stdio:标准输入/输出
  • udp:host:port:与主机和端口的 UDP 连接
  • tcp:host:port:与主机和端口的 TCP 连接
  • file:<文件名>:文件或 FIFO(命名管道)
  • pty:伪终端
  • pty,link=<文件名>:带有符号链接的伪终端
  • pty,rawer,link=<文件名>:具有原始数据传输和符号链接的伪终端

2.1 安装socat

尽管 socat 实用程序通常默认可用,但我们可以将其安装在我们的计算机上。 要安装它,我们将使用 apt-get 包或 yum 包:

#Debian-based Linux
sudo apt-get install -y socat
# RHEL-based Linux
sudo yum install -y socat

这将在 Linux 计算机上安装 socat。

2.2 创建简单的虚拟串口

例如,要创建两个打开调试模式的伪终端,我们需要键入 socat 并使用 -d 选项和 pty,rawer 代替地址:

socat -d -d pty,rawer,echo=0 pty,rawer,echo=0

输出如下:

2023/11/15 17:34:44 socat[78860] N PTY is /dev/pts/3
2023/11/15 17:34:44 socat[78860] N PTY is /dev/pts/4
2023/11/15 17:34:44 socat[78860] N starting data transfer loop with FDs [5,5] and [7,7]

socat 命令后面的 -d -d 选项打印致命、错误、警告和通知消息。 此外, pty,rawer,echo=0 参数在 /dev/pts 下创建两个伪终端。 这些端子充当串行连接的端点。 要连接这两者,我们可以使用任何串行通信工具,例如 minicom。 例如,要以 9600 的波特率连接 /dev/pts/3,我们将运行:

minicom -D /dev/pts/3 -b 9600

这将连接 /dev/pts/3,波特率为 9600。

2.3 创建指定波特率的串行端口

或者,我们可以通过将 baud 参数添加到 socat 命令来创建具有自定义波特率的虚拟端口:

socat -d -d pty,rawer,echo=0,link=/tmp/ttyV0, baud=115200 pty,rawer,echo=0,link=/tmp/ttyV1,baud=115200

这将创建一对具有自定义名称 /tmp/ttyV0 和 /tmp/ttyV1 的虚拟速率。

http://www.lryc.cn/news/231818.html

相关文章:

  • 无线WiFi安全渗透与攻防(五) Kali使用mdk3攻击wifi(详细教程)以及相关周边知识
  • Mac电脑好用的窗口管理软件 Magnet 中文for mac
  • 除了Excel中可以添加公式之外,在Word中也可以添加公式,不过都是基于表格
  • 【华为OD题库-017】矩阵稀疏扫描-Java
  • 相机通用类之LMI激光三角相机(3D),软触发硬触发(飞拍),并输出halcon格式对象
  • android studio基本使用
  • 安装包管理工具-Yarn
  • SOLIDWORKS功能布局实用技巧之保存实体技术
  • Android11 将logcat日志定位到uart串口输出
  • SpringSecurity6从入门到上天系列第六篇:解决这个问题为什么在引入SpringSecurity之后所有的请求都需要先做登录认证才可以进行访问呢
  • Mac M3 芯片安装 Nginx
  • 浏览器怎么更新?4个高效设置方法!
  • settings.json配置
  • Mysql中的JDBC编程
  • 媒体行业的3D建模:在影视中创造特效纹理
  • Kafka从安装使用到集成Springboot详细教程
  • 【giszz笔记】产品设计标准流程【4】
  • 图论16-拓扑排序
  • SecureCRT 9.4.2最新终端SSH工具
  • 基于python+django的美食餐厅点餐订餐网站
  • Moka人事:实现无代码开发的API连接,打通电商平台与用户运营系统
  • 【Spring】超详细讲解AOP(面向切面编程)
  • 界面组件DevExpress Reporting v23.1亮点 - 全新升级报表查看器
  • 电容容量换算电池容量,以及RTC持续时间计算
  • 【BIM入门实战】高程点无法放置的解决方法
  • CRM系统对科技企业有哪些帮助
  • 用excel计算一个矩阵的转置矩阵
  • WPF 中的 ControlTemplate 和 DataTemplate 有什么区别
  • 3D重建相关
  • 字符串数组排序(Java/JavaScript代码版)