想要实现串口通信接口测试,手边却没有相对应的工具。

了解相关的串口模拟工具,串口通信工具,实现模拟com口,实现两端通信的测试。
(在使用vspd串口工具时,9.0版本会报串口绑定失败,10.0可能需要注册码,可以试试低版本的)

1:模拟虚拟串口

因为现在电脑都默认不带虚拟串口,虚拟串口一般也都需要USB转串口的工具,并且我手边也没有相关的串口硬件,这里尝试模拟串口进行测试。

采用**VSPD(**Launch Virtual Serial Port Driver Pro)进行串口模拟,参考。

https://blog.csdn.net/zyyujq/article/details/90116079

添加一对串口:
在这里插入图片描述

在设备管理器中查看:

在这里插入图片描述

2:测试串口的可用:windows上

这里使用串口助手工具进行串口测试,网上串口工具很多,但是发现现网流氓式的安装让人很烦,可以使用windows 10自带的串口工具进行测试,找到这个好用的网站进行下载:

https://docs.ai-thinker.com/tools

经过测试,在windows上可用:
在这里插入图片描述

3:测试串口的可用:虚拟机linux上

1: 虚拟机要加载到我们的com。

添加串口端口:
在这里插入图片描述

2:这里我们和windows配合进行测试,(也可以两个虚拟机进行测试)

1:配置虚拟机识别串口

我的windows用com2口,虚拟机这里用com1口:
在这里插入图片描述

2:确定虚拟机要连接上串口

启动虚拟机,要注意,一定要连接上com口:

在这里插入图片描述

确定连接上后,就可以在虚拟机中与windows进行联调测试了。

3: ubuntu使用 串口工具 cutecom 进行调试

​ ubuntu可以使用相关串口工具进行测试:cutecom

安装命令:sudo apt-get install cutecom

在root用户权限下启动该命令执行: cutecom

​ 跳转到root的方法: sudo -i 或者 su

在这里插入图片描述

注意这里的参数选项与windows的对齐,进行测试,发现可以进行通信。

3:也可以直接使用命令接收和发送

同样确定虚拟机连接上串口,我们对linux串口进行监听查看,windows 发信息进行测试,已通过:

root@ubuntu:~# cat /dev/ttyS1

也可以配置不同的com口,一个进行监听数据,一个进行写入数据,写入数据命令。

root@ubuntu:~# echo "my test data" >/dev/ttyS1

4:其他:

虚拟机直接配置管道实现com口的测试:

https://blog.csdn.net/lovescorpio/article/details/103770829

5:注意 dev目录一般是设备对应的一些文件

/dev/null 和 /dev/zero

/dev/null 它是空设备,也称为位桶(bit bucket)或者黑洞(black hole)。你可以向它输入任何数据,但任何写入它的数据都会被抛弃。通常用于处理不需要的输出流。(当然,它也可以作为空的输入流)

/dev/zero 该设备无穷尽地提供空字符(ASCII NUL, 0x00),可以使用任何你需要的数目。它通常用于向设备或文件写入字符串0,用于初始化数据存储。(当然,也可作为输出流的接受容器)
	两个使用实例如下:
		dd if=/dev/zero f=~/test.txt bs=1k count=1
		产生1KB大小的文件~/text.txt

		find / -name access_log 2>/dev/null
			find命令在/目录下查找名为access_log的文件,并且错误输出不会显示出来(文件描述符2被重定向到/dev/null)。

[终端]、[控制台]、[tty]

1>tty(终端设备的统称):
	tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代,所以现在叫终端比较合适。
	终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。
2>pty(伪终端,虚拟终端):
	但是如果我们远程telnet到主机或使用xterm时不也需要一个终端交互么?
		是的,这就是虚拟终端pty(pseudo-tty)
3>pts/ptmx(pts/ptmx结合使用,进而实现pty):
	pts(pseudo-terminal slave)是pty的实现方法,与ptmx(pseudo-terminal master)配合使用实现pty。
	

dev下设备概述:

在Linux系统的设备特殊文件目录/dev/下,终端特殊设备文件一般有以下几种:
1、串行端口终端(/dev/ttySn)
	串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端设备。计算机把每个串行端口都看作是一个字符设备。
	有段时间这些串行端口设备通常被称为终端设备,因为那时它的最大用途就是用来连接终端。这
	些串行端口所对应的设备名称是/dev/tts/0(或/dev/ttyS0), /dev/tts/1(或/dev/ttyS1)等,设备号分别是(4,0), (4,1)等,分别对应于DOS系统下的COM1、COM2等。
	若要向一个端口发送数据,可以在命令行上把标准输出重定向到这些特殊文件名上即可。
	==》例如,在命令行提示符下键入:echo test > /dev/ttyS1会把单词”test”发送到连接在ttyS1(COM2)端口的设备上。
2、伪终端(/dev/pty/)
	伪终端(Pseudo Terminal)是成对的逻辑终端设备(即master和slave设备, 对master的操作会反映到slave上)。
	例如/dev/ptyp3和/dev/ttyp3(或者在设备文件系统中分别是/dev/pty /m3和 /dev/pty/s3)。它们与实际物理设备并不直接相关。如果一个程序把ptyp3(master设备)看作是一个串行端口设备,则它对该端口的读/ 写操作会反映在该逻辑终端设备对应的另一个ttyp3(slave设备)上面。而ttyp3则是另一个程序用于读写操作的逻辑设备。telnet主机A就是通过“伪终端”与主机A的登录程序进行通信。
3、控制终端(/dev/tty)
	如果当前进程有控制终端(Controlling Terminal)的话,那么/dev/tty就是当前进程的控制终端的设备特殊文件。可以使用命令”ps –ax”来查看进程与哪个控制终端相连。对于你登录的shell,/dev/tty就是你使用的终端,设备号是(5,0)。使用命令”tty”可以查看它具体对应哪个实际终端设备。/dev/tty有些类似于到实际所使用终端设备的一个联接。
4、控制台终端(/dev/ttyn, /dev/console)
	在Linux 系统中,计算机显示器通常被称为控制台终端 (Console)。它仿真了类型为Linux的一种终端(TERM=Linux),并且有一些设备特殊文件与之相关联:tty0、tty1、tty2 等。
	当你在控制台上登录时,使用的是tty1。使用Alt+[F1—F6]组合键时,我们就可以切换到tty2、tty3等上面去。
	tty1–tty6等称为虚拟终端,而tty0则是当前所使用虚拟终端的一个别名,系统所产生的信息会发送到该终端上(这时也叫控制台终端)。因此不管当前正在使用哪个虚拟终端,系统信息都会发送到控制台终端上。
	/dev/console即控制台,是与操作系统交互的设备,系统将一些信息直接输出到控制台上。目前只有在单用户模式下,才允许用户登录控制台。
5 虚拟终端(/dev/pts/n)
	在Xwindows模式下的伪终端.如我在Kubuntu下用konsole,就是用的虚拟终端,用tty命令可看到/dev/pts/1。

dev下各设备:

	/dev/hd[a-t]:IDE设备
  /dev/sd[a-z]:SCSI设备
  /dev/fd[0-7]:标准软驱
  /dev/md[0-31]:软raid设备
  /dev/loop[0-7]:本地回环设备
  /dev/ram[0-15]:内存
  /dev/null:无限数据接收设备,相当于黑洞
  /dev/zero:无限零资源
  /dev/tty[0-63]:虚拟终端
  /dev/ttyS[0-3]:串口
  /dev/lp[0-3]:并口
  /dev/console:控制台
  /dev/fb[0-31]:framebuffer
  /dev/cdrom => /dev/hdc
  /dev/modem => /dev/ttyS[0-9]
  /dev/pilot => /dev/ttyS[0-9]
  /dev/random:随机数设备
  /dev/urandom:随机数设备
  (PS:随机数设备,后面我会再写篇博客总结一下)

/dev目录下的节点是怎么创建的?
  devf或者udev会自动帮你创建得。
  kobject是sysfs文件系统的基础,udev通过监测、检测sysfs来获取新创建的设备的。
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐