can_communication_with_controllers
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
can_communication_with_controllers [2018/05/22 10:33] – external edit 127.0.0.1 | can_communication_with_controllers [2019/02/15 14:35] (current) – [SDO CAN frame structure] llibert | ||
---|---|---|---|
Line 21: | Line 21: | ||
> The QuimBox controllers implement a subset of the CANopen protocol. Namely the message layout is completely compatible and the OD concept is reused. | > The QuimBox controllers implement a subset of the CANopen protocol. Namely the message layout is completely compatible and the OD concept is reused. | ||
+ | |||
+ | ===== SDO CAN frame structure ===== | ||
+ | |||
+ | An SDO can frame is structured as follow: | ||
+ | |||
+ | ^ Can id ^ Command byte ^ OD Idx ^ OD subidx | ||
+ | | 16 bits | 8 bits | 16 bits | 8 bits | 32 bits | | ||
+ | |||
+ | |||
+ | The can id is composed of the RX/TX identifier and the board identifier. (can id = RX/TX-id + Node-id) | ||
+ | > TX-id = 600 | ||
+ | > RX-id = 580 | ||
+ | |||
+ | Note: RX/TX from host point of view. On board the convention is opposite. | ||
+ | |||
+ | The command byte is either 0x23 for 32bits writing request, 0x2f for 8bits writing request or 0x40 for reading request (always 32bits response). | ||
+ | |||
+ | One can test the connection with a linux host using can-utils tools with cansend and candump commands. | ||
+ | |||
+ | **ex.** A request to enter a QuimDC in operational mode. (32bits write request) (Node-id = 7) | ||
+ | |||
+ | ^ Can id ^ Command byte ^ OD idx ^ OD subidx | ||
+ | | 607 | 23 | 3333 | 00 | 01 | 00 | 00 | 00 | | ||
+ | |||
+ | < | ||
+ | cansend 607# | ||
+ | </ | ||
can_communication_with_controllers.1526978020.txt.gz · Last modified: 2018/05/22 10:33 by 127.0.0.1