Модуль CAN обеспечивает наблюдение за сообщениями на CAN-шине, выделение интересующих CAN-параметров и отправку их в сенсорах.
Конфигурация модуля:
/can/can
Парсет, задает режим работы с CAN-шиной:

Parameter

Values

Comments

Mode

Off, Sensors, Listen, Test, Echo

Режим работы подсистемы CAN Тага. Off - выключено
Sensors - передача сенсоров canX
Listen – сохранение сообщений в журнале устройства (Events) Остальные - для отладки, не применять

Baud_Kbs

100..1000

Скорость шины CAN в килобит/с

Silent

on, off

При Mode=Sensors режим CAN-драйвера Silent (неподтверждение сообщений)


/can/canpar
Парсет-массив, задает фильтры для выделения CAN-параметров. Содержит 4 записи:

Parameter

Values

Comments

PGN

0..262143 (0..
0x3FFFF)

Фильтр по ExtendedId шины CAN

ParameterGroupNumber по стандарту FMS (SAE J1939/21). Соответствует битам 8..25 ExtendedId шины CAN; остальные биты произвольные

HighBit

0..63

Старший бит параметра

LowBit

0..63

Младший бит параметра


Каждая запись массива соответствует каналу CAN сенсора с таким же индексом. Если режим передачи канала CAN-сенсора /sens canN#Send=Auto, то передаются только каналы CAN-сенсора с индексами, соответствующими непустым записям в массиве, и только если /can/can#Mode=Sensors.
Сообщения CAN-шины фильтруются по PGN: ExtendedId биты 8..25 должны совпадать с PGN, остальные биты произвольные. Из сообщений, прошедших фильтр, выбираются биты с LowBit по HighBit, результат передается в канале CAN-сенсора в виде целого числа. Биты считаются по всему сообщению, с Data[0] по Data[7].
Если нужных сообщений на шине нет, в канале CAN-сенсора передается код ошибки:
-1 – параметр не обнаружен (или устарел, прошло более 1с момента приема)
-3 – конфигурация фильтра некорректна (нужных бит нет в сообщении)
Настройка через CLI

  1. sens
    [/sens/sens] Sensors:19 total, 11 activeУбедиться, что режим отправки CAN-сенсоров Auto:






[

0]

in1

 

 

 

-12:[0]

 

Send=Off

 

[

1]

in2

 

 

 

-12:[1]

 

Send=Off

 

[

2]

in3

 

 

 

-12:[2]

 

Send=Off

 

[

3]

in4

 

 

 

-12:[3]

 

Send=Off

 

[

4]

adc1

 

 

 

-11:[0]

 

Send=Off

 

[

5]

adc2

 

 

 

-11:[1]

 

Send=Off

 

[

6]

adc3

 

 

 

-11:[2]

 

Send=Off

 

[

7]

adc4

 

 

 

-11:[3]

 

Send=Off

 

[

8]

button

 

a

 

-5:

 

Send=Auto

 

[

9]

can0

 

a

 

5:[0]

 

Send=Auto

<<<!

[10]

 

 

can1

 

a

 

5:[1]

Send=Auto

<<<!

[11]

 

 

can2

 

a

 

5:[2]

Send=Auto

<<<!

[12]

 

 

can3

 

a

 

5:[3]

Send=Auto

<<<!

[13]

 

 

gnss

 

a

 

-18:

Send=Auto

 

[14]

 

 

bar

 

a

 

-10:

Send=Auto

 

[15]

 

 

temp

 

 

 

-6:

Send=Normal

 

[16]

 

 

singletag

 

a

 

-21:

Send=Auto

 

[17]

 

 

Rest

 

a

 

-4:

Send=Auto

 

[18]

 

 

Power

 

a

 

-1:

Send=Auto

 




  1. При необходимости изменить режим на Auto:


sens can0 send=auto [/sens/sens] Sensors:
[ 9] can0a5:[0] Send=Auto

  1. Установить/проверить режим CAN и требуемую скорость:


can mode=sensors baud=250 [/can/can] Can:
Mode=Sensors Baud_Kbs=250


can
[/can/can] Can: Mode=Sensors Baud_Kbs=250

  1. Выбрать CAN параметры для соответствующих CAN-сенсоров:


canpar add 0 pgn=0xfef1 highbit=52 lowbit=48 [/can/canpar] Can Parameter:
/0PGN=65265(0x0FEF1) HighBit=52 LowBit=48 (Set 0*)
Проверка настроек фильтра:
canpar
[/can/canpar] Can Parameter:
/0PGN=65265(0x0FEF1) HighBit=52 LowBit=48 (Set 0*)
/2PGN=65265(0x0FEF1) HighBit=52 LowBit=48 (Set 0*)
2 total
Удаление фильтра для канала 2:
canpar del 2
[/can/canpar] Can Parameter: deleted
Настройка через CoBench
На примере канала can0

  1. Убедиться, что режим отправки CAN-сенсоров Auto: Запрос: GET /sens can0

Ответ: # i=can0 a 5:[0] Send=Auto

  1. При необходимости изменить режим на Auto: Запрос: PUT /sens can0#send=auto Ответ: 2.04(Changed): Changed
  2. Установить/проверить режим CAN и требуемую скорость:

установка:
Запрос: PUT /can/can#mode=sensors baud=250 silent=off
Ответ: 2.04(Changed): Changed
проверка:
Запрос: GET /can/can
Ответ: # Mode=Sensors Baud_Kbs=250 Silent=off

  1. Выбрать CAN параметры для соответствующих CAN-сенсоров:

включение/модификация канала can0:
Запрос: PUT /can/canpar 0#pgn=0xfef1 highbit=52 lowbit=48
Ответ: 2.04 Changed
проверка канала can0:
Запрос: GET /can/canpar 0
Ответ: # _idx=0 PGN=65265 HighBit=52 LowBit=48
отключение канала can0:
Запрос: PUT /can/canpar 0 del
Ответ: 2.04 Changed

  • No labels