PL2303TAUSB 到串行桥接控制器3Mbps 的串行端口速度 (C#)

问题描述

我正在尝试从 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,3...,3

通过这段代码,我收到这样的数据:

 1,5,6999,5

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

如何提高阅读速度?

谢谢。

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

解决方法

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

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

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