Oct 27

The CAN interface and the low level library that seems to be available in the demo code from ATMEL provide the physical layer (electrical) and the data link layer (frames) of the OSI model. As a result you can send and receive frames that contain up to 8 data bytes. What these data bytes mean is not determined, it is up to the developer to define how to use them.

During the search on CAN reference material, I found regularly the reference to CANOpen. This standard implements the network layer (variable data length), the transport layer (data segmentation), the session layer (initiate and respond) and the presentation layer (what does which byte mean).

Every CANOpen device makes internal data (process data, parameters) available on the bus via a defined interface, whereby this data is organized in an object directory. Entries in the object directory are accessed via a 16-bit index and supplemental 8-bit sub-index. The index range is subdivided into logical segments to organize the structure so that it easier to comprehend by users. The name of a device, for example, can be read from index 0x1008 (sub-Index 0).

Index (hex)    Object
0000              not used
0001-025F     Data Types
0260-0FFF     Reserved for further use
1000-1FFF     Communication Profile Area
2000-5FFF     Manufacturer Specific Profile Area
6000-9FFF     Standardized Device Profile Area
A000-AFFF     Reserved for further use

I’m not sure this is needed for my robots, but it is interesting to see what is available for use on the AT90CAN controllers and how this would work in practice.

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.