-2

I need to establish a HMI protocol based on CAN, that enables the simultaneous communication of the application Device with the HMI Device?

Restriction is that CAN can be realised as a simultaneous bus access, by using CSMA/CA method. it is based on bitwise bus arbitration which ensures that the highest priority CAN message among the CAN nodes gets the bus access. In principle, the higher the priority of a CAN message the sooner it can be transmitted on the CAN bus.

But in a way, this is not simultaneous. it is one of a way to handle message which comes at a same time.

Is there any other way where I can design a protocol (which uses CAN bus), so that I can implement simultaneous communication between two control units connected in the same bus network. Thanks in advance for your response

Dijkgraaf
  • 11,049
  • 17
  • 42
  • 54
qwerty
  • 105
  • 3
  • 1
    Define simultaneous - how close in time does the communication have to be? I'm pretty sure CAN will meet the needs of HMI devices, humans are very slow! – Martin Thompson Mar 12 '18 at 14:34

1 Answers1

1

CAN protocol is half-duplex by design, the bus is shared. Thus, you will not get full-duplex communication by tweaking CAN bus configuration. If you need full-duplex, think of another protocol.

It seems you are willing to implement your own full-duplex protocol. Then, your solution will need to have two independent channels, one for Tx and other for Rx. For example:

  1. Ethernet uses different twisted pairs for Tx and Rx on the same cable.

  2. ADSL uses FDD (two different frequencies, which behave like different channels, on the same wire)

Think that, in general, a full-duplex protocol will not give you zero latency in general (...neither a half-duplex will). That is why you need to consider the comment made by Martin and check if the worst constraint in your communication is the channel access. For a HMI, it seems that the human eye's response time is greater than an average time to access the CAN bus (and, since CAN is a deterministic protocol, you can do that time as low as needed).

Fusho
  • 1,469
  • 1
  • 10
  • 22