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 |