windows – 最小延迟的串行通信
我有一台通过串行通讯与外部设备连接的计算机(即物理或仿真串口的RS-232 / RS-422).它们通过频繁的数据交换(30Hz)相互通信,但只有很小的数据包(每个数据包少于16个字节).
通信的最关键要求是低延迟或发送和接收之间的延迟. 数据交换模式是握手式的.一个主机设备启动通信并在客户端设备上继续发送通知.客户端设备需要尽快回复来自主机设备的每个通知(这正是需要实现低延迟的地方).通知和回复的数据包定义明确;即数据长度是已知的. 我使用以下常见的Win API函数以同步方式进行I / O读/写: 客户端设备使用ReadFile从主机设备读取数据.一旦客户端读取长度已知的完整数据包,它就使用WriteFile以相应的数据包回复主机设备.读取和写入始终是顺序的,没有并发性. 不知何故,沟通不够快.即数据发送和接收之间的持续时间过长.我想这可能是串口缓冲或中断的问题. 在这里,我总结了一些可能的措施,以改善延迟. >使用FILE_FLAG_NO_BUFFERING标志调用CreateFile?我不确定这个标志在这种情况下是否相关. 提前致谢! 解决方法
我遇到过类似的串口问题.
在我的情况下,我解决了减少串行端口延迟的问题. 您可以使用控制面板更改每个端口的延迟(默认情况下设置为16毫秒). 你可以在这里找到方法: http://www.chipkin.com/reducing-latency-on-com-ports/ 祝好运!!! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 将Windows证书导入Java
- windows-phone-7 – 在Windows Phone 8中,我不断
- windows – 通过GPO / AD更新网络驱动程序
- windows-7 – 如何在Windows 7中模拟触摸事件?
- Windows通过schtasks设置开机自启动脚本
- 用于Windows的命令行pop3邮件客户端?
- windows-server-2012-r2 – CSV缓存在内存负载下
- windows – 在Microsoft Surface上检测相机旋转?
- 调试时的Windows Azure缓存 – 请求超时
- windows-8 – 使用Visual Studio 2012调试IIS 8.