高速串行

时间:2016-11-17 02:09:14

标签: linux

我的系统使用时钟频率为26 Mhz的UART。这是i86架构上的16850 UART。我没有问题访问端口。最大的传入消息大约是56个字节,最大传出大约为100.波特率除数需要为1,所以seterial / dev / ttyS4 baud_base 115200可以正常,并且打开115200.没有流量控制。指定16850部分不会将FIFO设置为深。我丢失了字节。所有数据都是字节,无符号字符。

我写了一个例程,使用ioperm将深FIFO设置为64,现在读/写工作意味着深层FIFO不是由serial_core.c或8250.c启用的,至少是深层次的。 / p>

使用s brute force设置深度FIFO,后打开(fd,“/ dev / ttyS4”,NO_BLOCKING等等,我可靠地得到正确的字节数但是我倾向于让同一个字丢失一点。不是字节,有点。

所有这些东西在DOS下运行正常,所以它不是硬件问题。

我打开了原始端口,没有延迟,没有派对,8位,2站。

有没有人看到读取串口的问题是相对较高的速度和短暂的数据突发?

是的,我尝试过自定义波特等。FIFO级别是最大的改进。这是使用IRQ7的ISA总线卡。

看起来Linux的串行驱动程序很糟糕,并且具有很多延迟,并且具有很多功能,可用于真正基本的原始操作。

有没有其他人在没有流量控制的情况下尝试过非常高速的数据,或者有类似的问正如我所说,我得到了正确的字节数,除了字节4中的1位外,所有数据都是正确的。

我很难过。

0 个答案:

没有答案
相关问题