2

我有来自 8 通道 ADC 芯片的多通道串行数据,我通过串行 USB 电缆连接到我的计算机。我想在 Pure Data 中使用这些单独的通道,但是 pd_comport 对象不读取多通道串行数据。我已经搜索了 Pd 讨论论坛,但没有提到如何做到这一点。关于我该如何去做的任何想法?

4

1 回答 1

0

根据定义,串行连接只是单通道。如果您有多个(同步)通道,则称为parallel

所以你的问题基本上是以下两个之一:

并行串行流

如果您通过不同的串行连接传输 8 个 ADC 通道,则您的(特殊)电缆应注册 8 个不同的设备(例如/dev/ttyUSB5,,/dev/ttyUSB6... /dev/ttyUSB12)。在这种情况下,只需使用多个[comport]对象(一个用于您要连接的每个串行设备)

单复用流

在(更有可能)的情况下,您的 ADC 通过多路复用数据在单个串行连接中传输 8 个通道,您必须自己解复用串行流。如何做到这一点,很大程度上取决于数据的实际格式。

假设您的 ADC 只有 8 位并且只有 4 个通道(为简单起见),那么您可能会收到一个串行流,例如:... A1 B1 C1 D1 A2 B2 C2 D2 A3 B3 ....(A、B、...是 4 个通道的样本;和 1,2、.. . 作为样本帧),那么您可以将信号解复用为 4 个流,例如

|
[t b              f]
|                  |
|  +------------+  |
[i ]/[+ 1]/[% 4]/  |
|                  |
[pack      0      0]
|
[route 0 1 2 3]
|  |   |   |

在实践中,您的协议可能看起来略有不同(例如,应该有一种指定帧边界的方法(仅查看数字是没有办法的,无论您实际看到的是A1 B1 C1 D1 A2 B2还是B1 C1 D1 A2 B2 C2,所以不清楚第一个样本是属于 channelA 还是 channelB )。

因此,您确实必须掌握协议定义并解释您从中获得的数据[comport]

于 2013-04-26T11:33:10.957 回答