首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >串口回环测试在内部/下面是如何工作的?

串口回环测试在内部/下面是如何工作的?
EN

Stack Overflow用户
提问于 2020-04-26 13:08:02
回答 2查看 2.2K关注 0票数 0

当使用超级终端或任何其他串行终端(即COM1)在USB (假设为PuTTY)上进行串行回溯测试时,您可以验证如果您在键盘上键入的内容显示在终端上(尽管它不是针对所有字符),则测试是否通过。

我的问题是:下面发生了什么?因此,键盘将数据发送到它的USB端口COM2 (假设它在那里连接):是什么使COM1端口重新发送和接收数据,我认为这是键盘发送的相同数据,然后显示在终端上?

键盘数据是否在COM2上接收并被硬件重定向到所有其他USB端口,以便COM1 (适配器)以某种方式在内部接收它,然后发送出去并接收回来?

实际上,我使用的是笔记本电脑,所以这里使用的是一个用于串行/USB适配器的端口(我使用的是一个FTDI模块),而不是两个端口,因为我刚才试图给出一个示例。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-30 21:01:25

这个问题相当广泛,但我尝试一下:

您所连接的COM端口是RS-232串行接口的典型PC实现。回溯配置就是这个名称所暗示的:在RS-232的信号线中,传输的数据线(TxD)是到同一主机上的端口的接收数据线(RxD)的环回

您还可以使用最小配置执行类似(但更简单)的测试,其中环回只是同一COM端口的TxD/RxD行之间的一个直接“回形针”回环。只有很少的抽象,从PC的一个COM端口构建到同一PC上的另一个COM端口的逻辑环具有这样的特性:您可以看到您自己的传输在相同的显示屏幕上返回。

这种测试在您示例的串口上容易工作的一个重要特性是,接口太低,没有连接层(或硬件特性),接收方可以在其中注意到信号不是由外部对等主机发送的,而是来自本地主机。

连接两个COM端口(您的PC和适配器在您的PC)构成环回测试安排的核心部分。您的问题表明您对串行连接本身之外发生的事情感兴趣,所以请继续阅读下面的内容。

从键盘到屏幕,涉及到各种(硬件和软件)组件。这些细节取决于您的实际PC安装,但它的一些属性可以描述独立于您所拥有的。例如,您是否有两个本机COM端口或一个本机端口再加上在USB端口上模拟的另一个本机端口的问题与串口上实际发生的情况无关(因为另一方与本机COM端口兼容的是适配器的工作)。

在PC上,您运行一个终端仿真程序,它通常用于与某种外部对等方通信,向全双工连接发送和接收字符。虽然这是不必要的,但典型的通信模式是,ASCII数据是以乒乓模式交换的,其中一方拥有客户机/主角色,而另一方则实现了接收请求和发出响应的服务器/从服务器。然后(通常)服务器端可以由运行交互外壳的Linux/Unix PC来实现,该shell通过串行行驱动,而不是由键盘和显示屏幕组成的本地(非模拟)控制台终端。

现在,假设您切断了外部对等程序,安装了回环,并且您正在聆听自己的声音。然后,您通过键盘输入的所有内容都将

  • 由PC及其操作系统检测,该操作系统管理击键并将相应事件传递给活动进程(终端模拟器、发送器角色)。
  • 由终端仿真器发出串行传输,并发送到串行线路(同样,通过操作系统及其驱动程序)
  • 通过串行行TxD -> RxD运行
  • 由OS/驱动程序在连接的COM端口检测到,并传送到终端模拟器(接收方角色)。
  • 由终端模拟器处理并发布到屏幕上(再次使用操作系统和驱动程序)。这里是您查看数据传输的地方。

如果您在编写时使用一个USB仿真COM端口,则信号通过适配器dongle及其相应的驱动程序软件运行,而不是以更简单的方式在本机端口获取数据。

如果您正在运行“端口回环”(在单个COM端口上进行特殊布线),输出文本将显示在您发布输入文本的同一个终端模拟器的接收窗口中。

如果在两个端口之间运行“主机回送”,通常需要两个正在运行的终端仿真器实例(或模拟器--例如,您还可以让超级终端与PuTTY对话)。您正在对一个实例进行键入,而接收到的文本出现在另一个实例中。-好的,加上一个扩展:通常,终端模拟器将输入文本“回显”到其本地输出部分,以便用户能够验证(并记住)先前输入并传输到底层行的内容。由于回环实验不是终端仿真器的主要目的,默认配置通常是激活此回波。也就是说,您可能会看到您输入的文本回显在“输入”端(键入它一次,在那里读取它),以及在“输出”侧的窗口中一次(它描述通过串行连接的内容)。回波部分是在您的终端仿真器程序中传递的(如果它是OSS,自己查找它的代码),接收到的部分通过串行线路传送。

如果您想为了教育目的验证这一点,请尝试将“输入”终端仿真器重新配置为不回显--您将只在输入时未激活的窗口上看到输出。然后,将另一个连接器焊接到环回电缆/插头上,并将其连接到另一台“嗅探器”机器(它只听而不发送):在这里,您可以读取通过回送线传输的所有内容。

票数 1
EN

Stack Overflow用户

发布于 2020-05-01 00:16:51

@Justme on ElectricalEngineering的简短答复

终端程序接收按键并将这些ASCII字节发送到COM端口。如果您的COM端口将TX与RX连接到外部,则COM端口将接收在TX线路上发送的数据。从COM端口接收到的数据被发送到您的终端程序,如果它是可打印的ASCII符号,则终端程序会在屏幕上打印它。

基本上,这是一样的事情,发送给你自己,并发现它被发送到你的收件箱。电子邮件或蜗牛邮件。

哦和USB键盘不是COM端口。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61441332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档