我需要建立一个基于CAN的HMI协议,它能够实现应用设备与HMI设备的同步通信吗?
限制是CAN可以通过使用CSMA / CA方法实现为同时总线访问。它基于按位总线仲裁,确保CAN节点中的最高优先级CAN消息获得总线访问。原则上,CAN消息的优先级越高,它就越能在CAN总线上传输。
但在某种程度上,这不是同时发生的。它是处理同时出现的消息的一种方式。
还有其他方法可以设计协议(使用CAN总线),这样我就可以在同一总线网络中连接的两个控制单元之间实现同步通信。提前感谢您的回复
答案 0 :(得分:1)
CAN协议是半双工设计,总线是共享的。因此,通过调整CAN总线配置,您将无法获得全双工通信。如果您需要全双工,请考虑其他协议。
您似乎愿意实施自己的全双工协议。然后,您的解决方案需要有两个独立的通道,一个用于Tx,另一个用于Rx。例如:
以太网在同一根电缆上为Tx和Rx使用不同的双绞线。
ADSL使用FDD(两种不同的频率,在同一条线路上表现得像不同的频道)
一般来说,全双工协议通常不会给您带来零延迟(......也不会是半双工)。这就是为什么你需要考虑Martin发表的评论,并检查你的沟通中最严重的限制是否是渠道访问。对于HMI,似乎人眼的响应时间大于访问CAN总线的平均时间(并且,由于CAN是确定性协议,因此您可以根据需要尽可能低的时间)。