User Tools

Site Tools


can_communication_with_controllers

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
can_communication_with_controllers [2019/02/12 12:33] adriencan_communication_with_controllers [2019/02/15 14:35] (current) – [SDO CAN frame structure] llibert
Line 22: Line 22:
 > 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. 
  
-===== CAN frame structure =====+===== SDO CAN frame structure =====
  
-An SDO can frame is structured this way:+An SDO can frame is structured as follow:
  
-^ Can id  ^  DLC  ^  ??  ^  OD idx   OD subidx  ^  data  ^ +^ Can id  ^  Command byte ^  OD Idx   OD subidx  ^  data  ^ 
-|  16 bits  |  8 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 can id 7 in operational mode. 
  
-^ Can id  ^^  DLC  ^  ??  ^  OD idx  ^^  OD subidx  ^  data  ^^^^ +The can id is composed of the RX/TX identifier and the board identifier. (can id = RX/TX-id + Node-id) 
-|  00  |  07  |  08  |  23  |  33  |  33  |  00  | 00  |  00  |  00  |  01  |+> 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 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  ^  data  ^^^^ 
 +|  607  |  23  |  3333  |  00  |  01  |  00  |  00  |  00  |
  
 <code> <code>
-cansend 007#2333330000000001+cansend 607#23.3333.00.01.00.00.00
 </code> </code>
 +
  
 ====== QuimDC OD ====== ====== QuimDC OD ======
can_communication_with_controllers.1549971181.txt.gz · Last modified: 2019/02/12 12:33 by adrien