【问题标题】:PL2303TA (USB to Serial Bridge Controller) Serial Port Speed at 3Mbps (C#)PL2303TA(USB 转串行桥控制器)串行端口速度为 3Mbps(C#)
【发布时间】:2021-06-09 20:42:20
【问题描述】:

我正在尝试从 COM 端口读取数据。我使用了提高数据传输速度的 PL2303TA 转换器。我的数据传输速度是 3Mpbs,我正在寻找以这种速度读取数据的样本。 我用 C# 编写了一个程序并使用“while”循环来读取接收数据。但有些数据已经丢失。

int _max = 50000; // max sample
SerialPort port = new SerialPort("COM4",
      3000000, Parity.None, 8, StopBits.One);
port.Open();
List<string> slist = new List<string>();
while(true)
{
   string sdata = port.ReadLine();
   slist.Add(sdata);
   if (slist.Count > _max)
      break;
}

我的设备发送数据顺序如下:

 1,2,3,...,7000,1,2,3...,7000,1,2,3

通过这段代码,我收到如下数据:

 1,3,5,...,6999,1,3,5,...,6999,1,3,5

(我的设备是“ARM Micro-controller AT91SAM7S64-AU”,每个数字用换行符发送:“\n”)

如何提高阅读速度?

谢谢。

PL2303TA USB 转串行桥控制器 http://www.prolific.com.tw/US/ShowProduct.aspx?p_id=153&pcid=41

【问题讨论】:

  • 您如何知道数据是否按预期传输?由于缺少整行,因此问题更可能在源头上。
  • 您是否在任何较慢的波特率下进行了测试,以验证硬件连接和软件是否都按预期运行?如果没有,那为什么不呢?

标签: c# serial-port highspeed


【解决方案1】:

这听起来不像是软件问题,而是硬件问题。在使用如此高的速度时,请确保 uart 的线尽可能靠近。

当干扰仍然太高时,另一种选择是使用双绞线和屏蔽线。

如果您有示波器,请检查信号边缘。我认为它们不再具有干净的矩形形状。我不知道具体的芯片或电路板,但有些电路板还支持称为过采样的东西。如果信号上有噪声,这可能有助于对串行信号进行采样,因为它在单个位上多次采样并使用平均值来确定单个位状态。

【讨论】:

  • 我理解这个问题的方式,每个数字都在一个单独的行上,整行都丢失了,但绝不是单个字符。这不太可能是硬件问题。它会知道换行符。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-07
  • 1970-01-01
  • 2015-05-24
  • 2012-12-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多