Wiki source code of LSS-PRO CAN Bus

Last modified by Eric Nantel on 2025/03/24 07:17

Show last authors
1 LSS-PRO uses the extended CAN frame format to send and receive LSS command information.
2
3 Since LSS commands are character data (1 character 1 byte), they cannot be directly assigned to the CAN Data field (8 bytes). Therefore, it converts the LSS command and assigns the conversion information to the **Identifier **and **Data field** of the extended CAN frame format.
4
5 **Extended CAN frame format (29-bit CAN ID)**
6
7 Extended CAN 2.0 B has 29-bit identifier which means that there are 2^29 = 536,870,912 unique CAN-IDs. With a longer 29-bit identifier field, Extended CAN frames support a significantly larger address space. accommodating up to or over 500 million unique message identifiers.
8
9 Example: 10101010111000111010101011101 (binary 29 bits) i.e., 0x155C755D (hex).
10
11
12 __CAN communication rate is set at 500kbps.__
13
14 Assign LSS command information to the field in green in this image~:
15
16 [[image:Extended-CAN-frame-structure.png]]
17
18
19 |(% colspan="6" style="text-align:center" %)[[attach:LSS-P CAN Bus - Command ID List.xlsx]]
20 |(% colspan="2" rowspan="1" style="text-align:center" %)**Data format on USB-Serial**|(% rowspan="16" style="text-align:center" %) |(% colspan="3" rowspan="1" style="text-align:center" %)**Data format on CAN-Bus**
21 |(% colspan="2" rowspan="1" style="width:150px" %) |(% style="width:150px" %)ID[28-20]|(% style="width:300px" %)Reserved|
22 |(% style="background-color:yellow; width:150px" %)Header|(% style="background-color:yellow" %)# or *|(% style="background-color:yellow" %)ID[19]|(% style="background-color:yellow" %)Request/Response (0:Request 1:Response)|(% style="background-color:yellow" %)# = 0, * = 1
23 |(% colspan="2" rowspan="3" %) |(% style="background-color:#dbd3ba" %)ID[18]|(% style="background-color:#dbd3ba" %)Presence of command parameters|(% style="background-color:#dbd3ba" %)Set to 1 if there are parameters such as D commands, set to 0 if there are parameters such as Query commands, etc.
24 |(% style="background-color:#bdac7b" %)ID[17]|(% style="background-color:#bdac7b" %)Presence of sub-command id|(% style="background-color:#bdac7b" %)Set to 1 if there is a Modifier command (SD/T), otherwise set to 0.
25 |(% style="background-color:#bcd6f5" %)ID[16]|(% style="background-color:#bcd6f5" %)Presence of sub-command parameter|(% style="background-color:#bcd6f5" %)Set to 1 if there is a parameter for the Modifier command, otherwise set to 0.
26 (SD/T requires a parameter, so currently if ID[17] is 1, ID[16] will also be 1.)
27 |(% style="background-color:#22e817" %)ServoID|(% style="background-color:#22e817" %)Servo ID|(% style="background-color:#22e817" %)ID[15-8]|(% style="background-color:#22e817" %)Source ID|(% style="background-color:#22e817" %)
28 |(% colspan="2" rowspan="1" %) |(% style="background-color:#22e817" %)ID[7-0]|(% style="background-color:#22e817" %)Destination ID|(% style="background-color:#22e817" %)
29 |(% style="background-color:orange" %)Command|(% style="background-color:orange" %)Action Command (ex. RESET, D, etc..)
30 Query Command (ex. QID, QD, etc...)
31 Configuration Command (ex. CID, etc...)|(% style="background-color:orange" %)DATA0|(% style="background-color:orange" %)Command ID|(% style="background-color:orange" %)See Command ID List.
32 |(% style="background-color:#8ff7ed" %)Value|(% style="background-color:#8ff7ed" %)Command Value|(% style="background-color:#8ff7ed" %)DATA1|(% style="background-color:#8ff7ed" %)Command parameter0|(% style="background-color:#8ff7ed" %)
33 |(% colspan="2" rowspan="3" %) |(% style="background-color:#8ff7ed" %)DATA2|(% style="background-color:#8ff7ed" %)Command parameter1|(% style="background-color:#8ff7ed" %)
34 |(% style="background-color:#8ff7ed" %)DATA3|(% style="background-color:#8ff7ed" %)Command parameter2|(% style="background-color:#8ff7ed" %)
35 |(% style="background-color:#8ff7ed" %)DATA4|(% style="background-color:#8ff7ed" %)Command parameter3|(% style="background-color:#8ff7ed" %)
36 |(% style="background-color:#e817e1" %)Modifier|(% style="background-color:#e817e1" %)Modifier Command (ex. SD, T, etc...)|(% style="background-color:#e817e1" %)DATA5|(% style="background-color:#e817e1" %)Sub-command ID|(% style="background-color:#e817e1" %)See Command ID List.
37 |(% style="background-color:#7878fa" %)Modifier Value|(% style="background-color:#7878fa" %)Modifier Command Value|(% style="background-color:#7878fa" %)DATA6|(% style="background-color:#7878fa" %)Sub-command parameter0|(% style="background-color:#7878fa" %)
38 |(% colspan="2" rowspan="1" %) |(% style="background-color:#7878fa" %)DATA7|(% style="background-color:#7878fa" %)Sub-command parameter1|(% style="background-color:#7878fa" %)
39
40
Copyright RobotShop 2018