在自动化和控制领域,人们普遍认为以太网不能用作总线,因为它不具备实时性,容易发生数据包冲突。如果重要的控制数据包发生冲突,它们通常无法保持控制所需的硬实时条件。
但是,如果我有一个与以太网的点对点连接,中间没有交换机,该怎么办?更准确地说,我有一块带有千兆以太网端口的 FPGA 板,它直接连接到我的控制 PC。我认为千兆以太网相对于 CAN 或 USB 的 p2p 连接的好处是巨大的,尤其是对于高采样率和 FPGA 板上的大量数据生成而言。
我是否正确地认为点对点连接不会发生任何数据包冲突,因此即使使用以太网也能提供实时环境?
提前致谢!〜fsb
答案1
定义实时:)
更严重的是,即使不会发生冲突,也不能保证数据包不会丢失(例如由于实现错误)。我见过这种情况。
答案2
对于第一部分,全双工模式是可能的适用于后续以太网标准中的点对点链路。通常可以强制以太网卡进入全双工模式,以避免自动协商方案将其设置为半双工。
但是,如果不考虑以太网段所属的整个系统的所有其他部分(流量控制、NIC 性能、总线、操作系统等)的行为,我不会说“因此给出了实时环境”。相反,即使您的以太网是半双工的,如果您控制并可以定制网络上的所有系统和软件,您仍然可以实施自己的时间片方案以避免冲突:http://www.embedded.com/design/connectivity/4023291/Real-Time-Ethernet=)
答案3
正确 - P2P 以太网上不会发生任何“冲突”(仅在半双工介质上,例如同轴电缆)。那么,实时期望的问题就会在操作系统固件级别上得到解决。