热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux串口虚拟化,串口虚拟化:通过网络访问串口

ByFalconofTinyLab.org2015-12-07简介串口是嵌入式设备中常见的调试、通信和下载接口。通常情况下,仅仅需要在开发主机上访问该串口࿰

By Falcon of TinyLab.org

2015-12-07

简介

串口是嵌入式设备中常见的调试、通信和下载接口。通常情况下,仅仅需要在开发主机上访问该串口,可通过标准的串口线或者 USB 线连到串口上。

如果要在开发主机之外也能访问到串口呢?

Serial Port Over Network

通过网络虚拟化串口的基本需求很简单,首先要把串口虚拟化为网络端口,之后在网络中的另外一台主机上通过 telnet 等工具直接访问该网络端口或者反过来把网络端口逆向为一个虚拟化的串口,进而通过串口的 minicom 等工具也可以访问。

这样的工具有 socat, netcat, ser2net, remserial, conmux,发现 socat 非常好用,这里在参考 socat-ttyovertcp.txt 的基础上介绍它的用法。

在具体实验之前,我们做如下假设:串口/dev/tty.SLAB_USBtoUART接入 MacBook Pro 的 cp2102

主机 IP192.168.1.168串口直连的主机 IP 地址

主机端口54321虚拟化以后的端口

虚拟串口/dev/tty.virt001

串口转 TCP 端口

sudo socat tcp-l:54321,reuseaddr,fork file:/dev/tty.SLAB_USBtoUART,waitlock=/var/run/tty0.lock,clocal=1,cs8,nonblock=1,ixoff=0,ixon=0,ispeed=9600,ospeed=9600,raw,echo=0,crtscts=0

也可简单使用:

sudo socat tcp-l:54321 /dev/tty.SLAB_USBtoUART,clocal=1,nonblock

TCP 端口转虚拟串口

sudo socat pty,link=/dev/tty.virt001,waitslave tcp:192.168.1.168:54321

远程访问串口

sudo minicom -D /dev/tty.virt001

telnet 192.168.1.168 54321

安全访问

应用实例

在哪些情况下会需要在开发主机之外访问串口呢?

一个典型的实例是:

最近刚用到一款 Wifi 物联网开发板(NodeMCU),开发主机是 MacBook Pro 笔记本,但是开发环境搭建在 Virtualbox 上跑的 Linux 中,因此,需要在 Linux 系统中访问串口,但是发现该串口(cp2102)即使通过 Virtualbox 正确设置允许 Linux 访问并且相应的驱动也正常启动,但是 minicom 无法访问该串口(怀疑是 Virtualbox 使用了 ohci,但该设备实际为 uhci),这个时候通过网络虚拟化的串口就非常有帮助了。

更多的例子可能是,如果想远程控制该设备,而该设备本身不支持网络,那么把串口接入带有网络的主机,并把串口通过网络虚拟化就很有帮助了。

汇总几个可能的用处:通过网络把串口接入到更便利的开发环境

通过网络把多个串口汇聚到同一个测试环境,方便统一访问

把串口接入网络,允许各地的学员分时共享同一个硬件学习资源



推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 【工具篇】抓包中的王牌工具—Fiddler (1环境搭建)
    本文介绍了抓包工具Fiddler的概述,包括其功能、选择原因和安装方法。Fiddler是一款免费且功能强大的抓包工具,可用于网络代理、接口测试、安全测试和WEB调试等。安装配置简单,上手快速,适合新手使用。详细的安装地址为https://www.telerik.com/download/fiddl。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • scrcpy通过adb调试的方式来将手机屏幕投到电脑上,并可以通过电脑控制您的Android设备。它可以通过USB连接,也可以通过Wifi连接(类似于隔空投屏),而且不需要任何ro ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • STM32 IO口模拟串口通讯
    转自:http:ziye334.blog.163.comblogstatic224306191201452833850647前阵子,调项目时需要用到低波 ... [详细]
  • Kali Linux 简介
    KaliLinux是世界渗透测试行业公认的优秀的网络安全审计工具集合,它可以通过对设备的探测来审计其安全性,而且功能完备,几乎包含了目前所 ... [详细]
author-avatar
韩吉碳晶移动电热地毯
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有