想要实现串口通信接口测试,手边却没有相对应的工具。
了解相关的串口模拟工具,串口通信工具,实现模拟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来获取新创建的设备的。