windows系统和虚拟机上ubuntu系统通过虚拟串口进行通信

本文的目的是实现windows系统和虚拟机上安装的ubuntu通过串口进行通信。为了直观观测串口收发数据的内容,需要在windows系统和ubuntu系统使用串口助手来进行监听。windows系统端用的监听工具是串口助手SSCOM,ubuntu系统端使用的串口助手是CuteCom。

ubuntu端CuteCom发送字符"1"和"2",windows端SSCOM可以接收到这两个字符。再通过windows端SSCOM发送字符串"button_up"和"button_down",ubuntu端的CuteCom同样可以接收到这两个字符串。这样就实现了windows系统和ubuntu系统的串口通信。

本例用到的虚拟机VMware版本为17.5.0,ubuntu版本为22.04.3,虚拟串口vspd版本为7.2,windows系统串口助手SSCOM版本V5.13.1,ubuntu系统串口助手为CuteCom版本为0.30.3。

本文推荐了虚拟机下载安装、在虚拟机上安装ubuntu系统教程的博文链接。vspd和SSCOM的下载安装比较简单,网上资料也比较多,大家可以自行搜索。

目录

一、什么是虚拟机

二、在windows系统安装虚拟机

三、在虚拟机上安装Ubuntu

四、在windows系统安装虚拟串口vspd

五、在windows系统配置vspd虚拟串口

六、在虚拟机上添加虚拟串口

1、在虚拟机上添加虚拟串口

2、关联虚拟机和宿主机的串口

3、连接虚拟机上的虚拟串口

七、在ubuntu系统安装配置串口助手

1、调出终端命令行窗口

2、安装CuteCom

3、打开CuteCom

4、配置CuteCom

(1)设置串口参数

(2)打开串口使用权限

5、CuteCom功能分区

6、ubuntu串口命名规律

八、windows系统SSCOM和ubuntu系统CuteCom进行通信

九、结论


一、什么是虚拟机

虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。

简单的说,虚拟机就是在windows系统上安装的一个仿真软件,这个软件虚拟仿真出的另外一台独立的电脑,windows所在的实体机也叫宿主机,虚拟的这台电脑叫虚拟机,这台虚拟机和真实的电脑一样,可以安装操作系统,也可以在操作系统里安装软件。本文在虚拟机里安装的操作系统是ubuntu。

二、在windows系统安装虚拟机

操作步骤可参考以下链接博文:

Vmware下载安装教程(非常详细)从零基础入门到精通,看完这一篇就够了_vmware安装教程-CSDN博客

三、在虚拟机上安装Ubuntu

操作步骤可参考以下链接博文:

Ubuntu系统下载及安装教程_ubuntu下载-CSDN博客

注意:如果下载的ubuntu文件为iso格式,那么可以省略此博文的第2、3两步。

四、在windows系统安装虚拟串口vspd

操作步骤略。

五、在windows系统配置vspd虚拟串口

操作步骤可参考以下链接博文的第一步"配置vspd虚拟串口":

利用proteus实现串口助手和arduino Mega 2560的串口通信-CSDN博客

本例添加的串口号为COM1和COM2。

六、在虚拟机上添加虚拟串口

要想让宿主机的windows系统和虚拟机的ubuntu系统进行串口通信,就需要在宿主机和虚拟机分别配置虚拟串口,并且需要把两个虚拟串口关联起来。

上边第四步和第五步实现了在宿主机安装配置虚拟串口,虚拟机上已经带有虚拟串口,不用另外安装软件,只需要添加即可。宿主机配置的虚拟串口在虚拟机上是可以检测到的,所以可以把虚拟机上的虚拟串口和宿主机的虚拟串口关联起来

下边介绍关联两个系统的虚拟串口的步骤:

1、在虚拟机上添加虚拟串口

虚拟机安装完ubuntu,默认的设备里是没有虚拟串口的,需要在ubuntu处于关机的状态下,单击"编辑虚拟机设置"来进行添加,如下图所示。

在"虚拟机设置"对话框里选择"硬件"标签,然后单击"添加"按钮。

在"添加硬件向导"对话框中选择"串行端口",然后单击"完成"按钮。

2、关联虚拟机和宿主机的串口

在"虚拟机设置"对话框,可以看到硬件列表里已经成功添加了一个串行端口,在右侧"使用物理串行端口"下侧的下拉列表框中选择COM2,然后点击"确定"按钮。COM1和COM2是在宿主机windows系统下创建的,见上边第五步。

此时在ubuntu界面设备列表里,也可以看到一个串行端口,鼠标移动到这里,可以显示"正在使用端口 COM2",关联成功。

3、连接虚拟机上的虚拟串口

单击"开启此虚拟机"启动ubuntu系统,在ubuntu界面右下角有一个任务栏,有虚拟串口的图标,如下图所示。

鼠标右键点击这个图标,在弹出的菜单里有"连接"或者的"断开连接"的选项,单击即可完成相应的操作。串口连接后图标下侧会出现一个小绿点,断开时没有小绿点。鼠标移动到这个图标上,会显示"串行端口:正在使用端口 COM2"

七、在ubuntu系统安装配置串口助手

本例安装的串口助手为CuteCom,安装需要在终端命令窗口来操作。

1、调出终端命令行窗口

打开终端命令行窗口的操作步骤:单击"显示应用程序"图标->单击"终端"图标即可。

调出终端命令行窗口,如下图所示。

2、安装CuteCom

在命令行输入:sudo apt-get install cutecom

安装过程如下图所示。

安装完成后,单击"显示应用程序"图标->应用程序最后一项就是CuteCom,单击"终端"图标即可打开这个软件。应用程序图标比较多,一页放不下,可以上下滚动滚轮进行翻页

3、打开CuteCom

CuteCom打开后的界面如下图所示。

4、配置CuteCom

(1)设置串口参数

在Device选择/dev/ttyS0,然后单击"Settings"按钮。

在Settings设置界面,设置Baudrate(波特率)为9600,然后单击"Open"按钮,连接串口。

(2)打开串口使用权限

如果单击"Open"后出现下图所示报错信息,"Permission denied"意思是ttyS0串口未授权,所以需要在终端命令行进行授权。

授权的操作步骤:

在终端命令行输入:sudo chmod 777 /dev/ttyS0,然后回车。这行命令的作用是开放串口ttyS0的使用权限。

执行命令前需要输入用户登录密码,然后回车即可完成设置。注意,此时输入密码时不显示输入内容,输完密码后直接回车即可。

完成串口授权后,再单击cutecom窗口的"open"按钮,就可以打开ttyS0串口了。

5、CuteCom功能分区

CuteCom界面如下图所示,在"Input"后边的编辑框输入要发送的内容,然后回车,即可完成发送。发送的内容在"Input"上侧的文本框显示,"Input"下侧的文本框用来显示接收到的内容。

6、ubuntu串口命名规律

本文在设备里只添加了一个虚拟串口,所以Device里只有一个ttyS0,如果添加了多个虚拟串口,那命名有什么样的规律呢?ubuntu串口的命名规律为:ttyS0,ttyS1,ttyS2......,在设备列表中名称对应为:串行端口,串行端口2,串行端口3......,如下图所示。

八、windows系统SSCOM和ubuntu系统CuteCom进行通信

windows系统SSCOM串口助手端口号设置为COM1,波特率也设置为9600,然后单击"打开串口"按钮。

在CuteCom的Input输入框内输入字符"1",然后回车,可以看到在SSCOM的接收框内也显示收到了字符"1"。

在CuteCom的Input输入框内输入字符"2",然后回车,可以看到在SSCOM的接收框内也显示收到了字符"2"。

在SSCOM的发送框内输入字符串"button_up",然后回车,可以看到在CuteCom的接收框内也显示收到了字符串"button_up"。

在SSCOM的发送框内输入字符串"button_down",然后回车,可以看到在CuteCom的接收框内也显示收到了字符串"button_down"。

九、结论

通过以上操作,可以看到在宿主机系统上安装的虚拟串口,能够为宿主机上安装的虚拟机所共用,因此虚拟机上安装的ubuntu系统就可以通过这些虚拟串口实现与windows系统的通信。

相关推荐
梓仁沐白3 小时前
ubuntu+windows双系统切换后蓝牙设备无法连接
windows·ubuntu
九鼎科技-Leo7 小时前
什么是 WPF 中的依赖属性?有什么作用?
windows·c#·.net·wpf
Yang.9910 小时前
基于Windows系统用C++做一个点名工具
c++·windows·sql·visual studio code·sqlite3
我不瘦但很逗10 小时前
Windows下使用DBeaver连接云数据库(MySQL)
数据库·windows
ashane131411 小时前
Java list
java·windows·list
万里沧海寄云帆11 小时前
Word 插入分节符页码更新问题
windows·microsoft·word
dot.Net安全矩阵12 小时前
.NET 通过模块和驱动收集本地EDR的工具
windows·安全·web安全·.net·交互
编程修仙14 小时前
Collections工具类
linux·windows·python
写点什么啦14 小时前
[debug]不同的window连接ubuntu的vscode后无法正常加载kernel
linux·vscode·ubuntu·debug
wellnw14 小时前
[ubuntu]编译共享内存读取出现read.c:(.text+0x1a): undefined reference to `shm_open‘问题解决方案
linux·ubuntu