Merging modern software development with electrons and metal
Random header image... Refresh for more!

Book Review: A Comprehensive Guide to Controller Area Network

A Comprehensive Guide to Controller Area Network by Wilfried Voss, Copperhill Media, 2008.

Summary: 8.0/10,  recommended reading if you are developing systems using CAN or higher level protocols such as CANOpen.

The Guide is an affordable (<$15) book on the low level details of the CAN protocol.  It covers in detail the different frame types (data, remote, error, and overload), network arbitration, error detection and recovery, and data transfer synchronization.

The Guide points out undefined or ambiguous areas in the official specifications (Bosch, ISO, CiA), including updates based on experience (such as the CiA’s recommendation not to use remote frames).   The book concentrates on the base CAN protocol; it does not cover higher level protocols (such as CANOpen) in any detail, nor does it describe the specifics of CAN controllers or transceivers.

The book is well written; I’m an automation software developer, not a low level embedded developer, but I was able to follow the explanations without any major problems — I’d say it was easier to read than many software development books.

If all you want to do is get a basic CANOpen control system running, then you can skip this book.  But if you to truly understand CAN and what it can do, then I highly recommend reading both this book and Embedded Networking with CAN and CANOpen. Here are some things I learned from the Guide:

  • How fast CAN really is  (data throughput, error recovery time, etc), including protocol overhead, for both standard and extended addressing.  Serial network protocols have a substantial overhead.
  • Termination resistors have be able to dissipate at least 220 mW.
  • Terminators should be at the network ends, not inside the CAN device.
  • The details of error counting and error frames.  I had been wondering what the Copley CMO library’s ErrorFrameCounter property really meant; now I know.
  • The meaning of the bit time segments  and how bit resynchronization works.  The Grid Connect (aka Acacetus) CAN-USB Light manual refers to the bit segments (sync_seg, prop_seg, phase_seg1, phase_seg2, SJW, etc) but didn’t explain them.  Now I understand bit segments.

The Guide‘s network topology recommendation (straight line topology with minimal stub lines with terminators at the ends) match what I already do.  I was happy to see the correct recommendation for shielded cables (connect the shield at one end only).

I do have some small nitpicks and suggestions for improvement:

  • The book is repetitive; the exact same explanations with the same diagrams appear multiple times, as do various notes and warnings.  I find this annoying when reading the book straight through; however, overall, it’s probably good — when using the book as a reference, I want relevant warnings in the section I’m using, not just in one place in the book.
  • The diagrams could be better explained; there is no key to explain the dark black lines (high line only means that field is always recessive; low line only means the field is always dominant; both high and low lines means field can be either depending on the message — maybe that’s obvious to hardware guys).
  • The diagrams could be clearer: a bit larger with more contrast.
  • OK, the book isn’t a comprehensive guide to CAN transceivers.  But I would have appreciated some warnings about common physical layer gotchas.

2 comments

1 T D Banerjee { 09.09.12 at 8:05 am }

I am interested to buy Comprehensive Guide to CAN bus by ROSS.
Kindly inform me the source in India

2 Tony { 09.10.12 at 12:30 pm }

I’ve updated the link so it points to Copperhill Media’s on-line store; you should be able to buy the PDF from them, or buy a real book from Amazon or somebody local.

Leave a Comment