在Linux
中,是否可以使用本地串口?与此类似的是:
ssh user@localhost
我在Raspbian
上尝试过这一点,但它不起作用(它应该放在我的shell中,但它没有):
microcom -d /dev/ttyAMA0
我也尝试过/dev/ttyS0
,但没有结果。
当然,我可以从另一台机器通过串行控制台访问Raspberry Pi
。
对于这个问题,没有具体的用例--我只是不明白到底是如何连续工作的。如果可以使用ssh
连接本地主机,那么是否也可以使用串行端口呢?
发布于 2016-09-08 13:19:38
UART,我相信你指的是一种双向的2线通信协议,它通常被微控制器用来互相交谈--通常用来在两个设备之间传输文本。这是大多数人所说的serial
的意思,但是有很多不同的串行协议。
/dev/ttyAMA0
是一个在覆盆子皮上的UART系列设备。该设备文件控制raspberry pi头上的rx (10)和tx (8)引脚。任何程序都可以打开串口并将数据读/写到它,但是没有任何附加,所有发送的数据都丢失了,也没有任何数据发送回。
大多数raspberry pi Linux发行版都有一个getty监听/dev/ttyACM0
,这是一个提供登录提示和shell的程序。当您在minicom
上启动/dev/ttyAMA0
时,您和getty正在发送tx引脚上的数据,并接收rx引脚上的数据--这将混淆任何附加到它们上的内容,如果您有附加它们的任何内容。
为了使串行设备做任何有用的事情,它需要一些东西来沟通。您可以让它与您的pc通过获得这些USB到UART适配器之一,并将rx连接到tx引脚,tx到rx引脚和gnd引脚到gnd,然后插入到您的pc。一旦插入,您将在您的pc上获得一个串行设备(大多数Linux发行版上的/dev/ttyUSB0
),您发送的任何数据都将显示在pi上的/dev/ttyAMA0
上,而pi在/dev/ttyAMA0
上发送的任何数据都将显示在您的pc上。
如果你的pi已经有一个盖蒂监听,你所需要做的就是启动minicom
或类似的程序在你的电脑上,你应该得到一个登录提示(可能需要按几次enter )。当然,您可以停止getty并运行另一个可以与串行行对话的程序。
发布于 2016-09-08 14:47:05
当您打开到localhost的SSH连接时,您将创建一个具有两个端点的连接。其中一个是服务器,一个是客户端。当一个发送时,另一个接收,反之亦然。使用SSH,连接将通过TCP连接,在TCP中,端点由其IP地址和TCP端口标识。网络连接很简单,因为它们大多是在软件中实现的,所以新的TCP端口基本上可以通过决定一个数目来打开。串行端口不是这种情况,它是一块硬件。
要在串行端口上获得有用的双向通信,再次需要有两个端点:两个串行端口。将一个连接到另一个,您可以在一个服务器上运行一个服务器(例如getty
),在另一个上运行一个客户机(例如minicom
)。不管它们是在同一台机器上还是在两台独立的机器上,但由于它是硬件,所以你必须连接一些实际的电线。
通常,你会把电缆拉在两个设备之间,因为在一台计算机内有更快的传输数据的方法。但是没有什么能阻止你在一台机器上的两个串行端口之间建立串行连接。
只有一个串行端口,最好的做法是将传输线路连接到接收线路,但在这种情况下,使用端口的程序将看到自己的输出作为来自端口的输入。这对交流不是很有用,但可能对测试很有用。
https://unix.stackexchange.com/questions/308735
复制