Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 连接6个以上设备的串行端口是否有限制?_Delphi_Serial Port_Hardware - Fatal编程技术网

Delphi 连接6个以上设备的串行端口是否有限制?

Delphi 连接6个以上设备的串行端口是否有限制?,delphi,serial-port,hardware,Delphi,Serial Port,Hardware,我有一个项目,用于接收来自6个不同(风速测量设备)的数据(RS422,50Hz,38.4k波特,每条记录47字节)。当我使用32Hz和9600波特时,一切正常,但是,当我改为50Hz时,一些数据没有收到。我尝试使用USB而不是火箭港无限,但运气不好 因此,除了风速计故障外,我怀疑数据丢失的原因如下: 对于Rocketport Infinity,我打开了所有16个端口,但只连接了其中的6个,我怀疑当我切换到50Hz时,最大数据吞吐量太高了 IRQ交换机速度过高,com端口无法正常工作 还有其他可能

我有一个项目,用于接收来自6个不同(风速测量设备)的数据(RS422,50Hz,38.4k波特,每条记录47字节)。当我使用32Hz和9600波特时,一切正常,但是,当我改为50Hz时,一些数据没有收到。我尝试使用USB而不是火箭港无限,但运气不好

因此,除了风速计故障外,我怀疑数据丢失的原因如下:

  • 对于Rocketport Infinity,我打开了所有16个端口,但只连接了其中的6个,我怀疑当我切换到50Hz时,最大数据吞吐量太高了

  • IRQ交换机速度过高,com端口无法正常工作

  • 还有其他可能的原因吗?如果我弄错了,请纠正我

    接收机开发环境:WindowsXP Professional 32位版本的Delphi6,带

    对于超过6个设备的串行端口是否有限制 连接

    是的,有一些限制。我假设您有差分输出和带差分输入的I/O接收器。请看。有可能超过接收器电路的最大额定电压

    每个端口速度必须与相应的设备速度匹配。请看哪一个必须匹配

    IRQ交换机速度过高,com端口无法正常工作


    为什么你认为你的IRQ开关速度会有问题我想说的是,你只有IRQ资源。

    IRQ率没有那么高,现代机器应该很容易跟上它。我怀疑真正的问题是你的应用程序处理收到的字节不够快。尤其是当您的代码还更新接收数据的同一线程中的UI时


    很难给出具体的故障排除提示,因为您既没有指定语言也没有指定操作系统。但一定要正确处理错误。区分缓冲区溢出(应用程序读取速度不够快)和字符缓冲区溢出(驱动程序读取速度不够快)。在Windows上,这是CE_RXOVER和CE_over。

    这个问题没有得到太多关注,部分原因是它的英语不好,因此很难理解。我试图把它说得更清楚,但我自己并没有完全理解,所以请检查一下你的意思没有丢失。祝你好运。操作系统,Linux?Windows?事实上,有一个接收器是delphi用CPort 3.1()开发的插件,我会看一下源代码,谢谢你的建议。同意,某个地方的缓冲区可能溢出。Windows我猜既然你说了delphi,那么Windows就是了。谢谢Masi,所有设备都是直接连接的,但没有共享电线,直到它到达火箭港。我会让我的同事用示波器检查线路。