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 [2019/02/13 08:54] – [CAN frame structure] llibert | can_communication_with_controllers [2019/02/15 14:35] (current) – [SDO CAN frame structure] llibert | ||
---|---|---|---|
Line 24: | Line 24: | ||
===== SDO CAN frame structure ===== | ===== SDO CAN frame structure ===== | ||
- | An SDO can frame is structured | + | An SDO can frame is structured |
^ Can id ^ Command byte ^ OD Idx ^ OD subidx | ^ Can id ^ Command byte ^ OD Idx ^ OD subidx | ||
| 16 bits | 8 bits | 16 bits | 8 bits | 32 bits | | | 16 bits | 8 bits | 16 bits | 8 bits | 32 bits | | ||
- | e.g. A request to enter a QuimDC with node-id 3 in operational mode. (Write request) (can id = 600 + Node-id) | ||
- | ^ Can id | + | The can id is composed of the RX/TX identifier and the board identifier. (can id = RX/TX-id + Node-id) |
- | | 603 | 23 | 3333 | 00 | 01 | 00 | 00 | 00 | | + | > TX-id = 600 |
+ | > RX-id = 580 | ||
+ | Note: RX/TX from host point of view. On board the convention is opposite. | ||
- | One can test the connection with a linux based host using can-utils tools with cansend and candump. | + | 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 | ||
+ | |||
+ | **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 | + | cansend |
</ | </ | ||
+ | |||
====== QuimDC OD ====== | ====== QuimDC OD ====== |
can_communication_with_controllers.1550044473.txt.gz · Last modified: 2019/02/13 08:54 by llibert