Remix.run Logo
AlotOfReading a day ago

God no, CAN is horrible and the horrors people working around its limitations have brought into the world are even worse.

constantcrying 9 hours ago | parent | next [-]

CAN is really great for what it is. It is one of the simplest ways to get N devices to talk to each other. Really simple and easily debuggable.

Obviously it is too limiting for modern cars so it will get mostly dropped. It clearly is a great protocol though.

the__alchemist a day ago | parent | prev [-]

What limitations specifically are you referring to?

AlotOfReading 20 hours ago | parent [-]

The packet size is a major one. The lack of larger packets leads to nonsense like the "freshness manager" in things like AUTOSAR's SecOC, or the addressing scheme. Every subsequent CAN extension has tried to rectify both of these in different ways and inevitably failed, which leads to the next layer up the networking stack reinventing the wheel badly. Eventually you end up with UDS.

the__alchemist 19 hours ago | parent [-]

Yea, that 64-byte frame size. In practice, I've always seen it abstracted away into a layer on top, but if you're working low-level (e.g. implementing that layer), it's a pain. So, a given packet may be represented by multiple frames.

rjsw 18 hours ago | parent [-]

I hold a patent on the design of a hardware offload engine to hide the handling of multiple frames from a main CPU.