我有来自8通道ADC芯片的多通道串行数据,我正在通过串行USB电缆连接到我的计算机。我想在纯数据中使用这些单独的通道,但是pd_comport对象不读取多通道串行数据。我已经在警局讨论过了,但没有提到该怎么做。对我怎么做有想法吗?
发布于 2013-04-26 11:33:10
根据定义,串行连接仅为单通道.如果您有多个(同步)通道,则称为并行。
因此,您的问题基本上是以下两个问题之一:
并行串行流
如果您通过不同的串行连接传输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、.作为四个通道的样本;和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]
获得的数据。
https://stackoverflow.com/questions/16217252
复制相似问题