3 ms·
God no, CAN is horrible and the horrors people working around its limitations have brought into the world are even worse.
by AlotOfReading 2y ago
God no, CAN is horrible and the horrors people working around its limitations have brought into the world are even worse.
- the__alchemist 2y agoWhat limitations specifically are you referring to?
- AlotOfReading 2y agoThe 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 2y agoYea, 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 2y agoI hold a patent on the design of a hardware offload engine to hide the handling of multiple frames from a main CPU.
- constantcrying 2y agoCAN 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.