Исходный код вики 6.1 CANopen PDO protocol

Редактировал(а) Admin 2025/03/03 13:46

Последние авторы
1 (% data-numbered-headings-start="6" style="--numbered-headings-start: 5;font-size: 0px;color: rgba(0, 0, 0, 0.0);margin-bottom: 0px; margin-top: 0px;" %)
2 = Протоколы связи =
3
4 (% data-numbered-headings-start="1" style="--numbered-headings-start: 0;font-size: 0px;color: rgba(0, 0, 0, 0.0);margin-bottom: 0px; margin-top: 0px;" %)
5 == Протокол CANopen PDO ==
6
7 === Общая информация ===
8
9 Плата BMS Main 3X реализует протокол CiA 301 CANopen для настройки и чтения состояния модульной АКБ и BMS.
10
11 Основные характеристики:
12
13 * Поддерживаются стандартные 11-ти битные идентификаторы сообщений.
14 * Скорость обмена – 125, 250 (по умолчанию), 500 или 1000 кбит/с.
15 * Идентификатор COBID платы по умолчанию – 64 (0x40).
16
17 Поддерживаемые режимы передачи данных:
18
19 * SDO (для настройки платы).
20 * PDO (для обмена данными с другими элементами системы).
21 * Sync (настраивается).
22 * Heartbeat producer (настраивается).
23 * Heartbeat consumer (используется для контроля активности других устройств на шине CAN).
24
25 Передача данных PDO выполняется по сигналу синхронизации (CANID = 0x80, длина данных 0). Плата может сама выступать источником сигнала синхронизации (режим Sync).
26
27 Ниже даётся описание параметров, передаваемых в режиме PDO. В колонке «Тип параметра»:
28
29 * U8 – беззнаковое 8-разрядное число;
30 * U16 – беззнаковое 16-разрядное число;
31 * S16 – знаковое 16-разрядное число;
32 * U32 – беззнаковое 32-разрядное число.
33
34 Порядок байт в словах – от младшего к старшему (**little endian**).
35
36 === Пакеты TPDO ===
37
38 ==== CANID ~= 0x180+COBID (по умолчанию 0x1C0) ====
39
40 Длина пакета – 8 байт.
41
42 Содержимое пакета:
43
44 |(% style="width:56px" %)**Байт**|(% style="width:348px" %)**Имя параметра**|(% style="width:81px" %)**Тип параметра**|**Кодирование**
45 |(% style="width:56px" %)**0**|(% style="width:348px" %)(((
46 Дискретные входы 1 (битовое поле):
47
48 бит 0 – сигнал “Battery cover”;
49
50 бит 1 – сигнал “Charge request”;
51
52 бит 2 – сигнал “Precharge request”;
53
54 бит 3 – сигнал “Discharge request”;
55
56 бит 4 – сигнал “CH contactor feedback”;
57
58 бит 5 – сигнал “DCH contactor feedback”;
59
60 бит 6 – сигнал “CH/DCH contactor feedback”;
61
62 бит 7 – сигнал “Insulation status”.
63 )))|(% style="width:81px" %)U8|
64 |**1-2**|Ток через АКБ|S16|0,1А/бит
65 |**3**|Минимальная температура ячейки|S8|1ºC/бит
66 |**4**|Максимальная температура ячейки|S8|1ºC/бит
67 |**5**|Степень заряда АКБ (SOC)|U8|1%/бит
68 |**6-7**|Напряжение АКБ|U16|0,1В/бит
69
70 ==== CANID ~= 0x280+COBID (0x2A0 by default) ====
71
72 Длина пакета – 8 байт.
73
74 Содержимое пакета:
75
76 (% style="width:572px" %)
77 |(% style="width:63px" %)**Байт**|(% style="width:345px" %)**Имя параметра**|(% style="width:79px" %)**Тип параметра**|(% style="width:76px" %)**Кодирование**
78 |(% style="width:63px" %)**0–3**|(% style="width:345px" %)(((
79 Флаги состояния (битовое поле):
80
81 бит 0 – сигнал “Init” (осуществляется калибровка датчика тока и поиск батарейных модулей);
82
83 бит 1 – сигнал “Charging” (0 – разомкнут, 1 – замкнут);
84
85 бит 2 – сигнал “Discharging” (0 – разомкнут, 1 – замкнут);
86
87 бит 3 – сигнал “Charging current present”;
88
89 бит 4 – сигнал “Discharging current present”;
90
91 бит 5 – сигнал “Charging/Discharging” (0 – разомкнут, 1 – замкнут);
92
93 бит 6 – сигнал “Precharging” (0 – разомкнут, 1 – замкнут);
94
95 бит 7 – сигнал “Interlock”;
96
97 бит 8 – сигнал “Fuse 1”;
98
99 бит 9 – сигнал “Fuse 2”;
100
101 бит 10 – сигнал “Fuse 3”;
102
103 бит 11 – сигнал “Heater” (0 – выкл, 1 – вкл);
104
105 бит 12 – сигнал “Cooler” (0 – выкл, 1 – вкл);
106
107 бит 13 – сигнал “Main contactor” (0 – разомкнут, 1 – замкнут);
108
109 бит 14 – сигнал “Service reset”;
110
111 бит 15 – сигнал “Coolant pump”;
112
113 биты 16-31 – не используются.
114 )))|(% style="width:79px" %)U32|(% style="width:76px" %)
115 |(% style="width:63px" %)**4–7**|(% style="width:345px" %)(((
116 Регистр ошибок 1 (битовое поле):
117
118 бит 0 – ошибка “Battery cover”;
119
120 бит 1 – ошибка “Modules offline”;
121
122 бит 2 – “Critical error”;
123
124 бит 3 – ошибка “Voltage unbalance (CH)”;
125
126 бит 4 – ошибка “Voltage unbalance (DCH)”;
127
128 бит 5 – ошибка “Current unbalance (CH)”;
129
130 бит 6 – ошибка “Current unbalance (DCH)”;
131
132 бит 7 – ошибка “Charging current unbalance”;
133
134 бит 8 – ошибка “Discharging current unbalance”;
135
136 бит 9 – зарезервировано (установлен в 0);
137
138 бит 10 – “CH contactor feedback error”;
139
140 бит 11 – “DCH contactor feedback error”;
141
142 бит 12 – “CH/DCH contactor feedback error”;
143
144 бит 13 – сигнал “Insulation fault”;
145
146 бит 14 – ошибка “WDT reset”;
147
148 бит 15 – ошибка “Overcurrent”;
149
150 бит 16 – ошибка “Power switch error”;
151
152 бит 17 – ошибка “High humidity”;
153
154 бит 18 – ошибка “Water”;
155
156 бит 19 – ошибка “Short circuit”;
157
158 бит 20 – ошибка “Contactor high temperature”;
159
160 бит 21 – ошибка “Stuck contactor”;
161
162 бит 22 – ошибка “HVIL error”;
163
164 бит 23 – ошибка АЦП;
165
166 бит 24 – ошибка датчика тока;
167
168 бит 25 – ошибка монтирования SD карты;
169
170 бит 26 – ошибка файловой системы;
171
172 бит 27 – ошибка измерения высокого напряжения;
173
174 бит 28 – “PCH contactor feedback error”;
175
176 бит 29 – “Main contactor feedback error”;
177
178 бит 30 – ошибка предзаряда;
179
180 бит 31 – ошибка “Current limit error”.
181 )))|(% style="width:79px" %)U32|(% style="width:76px" %)
182
183 ==== CANID ~= 0x380+COBID (0x3A0 by default) ====
184
185 Длина пакета – 8 байт.
186
187 Содержимое пакета:
188
189 |(% style="width:66px" %)**Байт**|(% style="width:339px" %)**Имя параметра**|(% style="width:81px" %)**Тип параметра**|(% style="width:85px" %)**Кодирование**
190 |(% style="width:66px" %)**0–3**|(% style="width:339px" %)(((
191 Регистр ошибок 2 (битовое поле):
192
193 бит 0 – “Power fault”;
194
195 биты 1-31 – не используются.
196 )))|(% style="width:81px" %)U32|(% style="width:85px" %)
197 |(% style="width:66px" %)**4-5**|(% style="width:339px" %)(((
198 Дискретные входы 2 (битовое поле):
199
200 бит 0 – сигнал “Join to charge”;
201
202 бит 1 – сигнал “Join to discharge;
203
204 бит 2 – сигнал “PCH contactor feedback”;
205
206 бит 3 – сигнал “Main contactor feedback”;
207
208 бит 4 – сигнал “Interlock”;
209
210 бит 5 – сигнал “Power down request”;
211
212 биты 6-15 – не используются.
213 )))|(% style="width:81px" %)U16|(% style="width:85px" %)
214 |(% style="width:66px" %)**6-7**|(% style="width:339px" %)Зарезервировано|(% style="width:81px" %)U16|(% style="width:85px" %)