я могу изменить поле ACK или поле CRC в кадре CAN? - PullRequest
0 голосов
/ 11 октября 2018

Чтобы сгенерировать ошибку в CAN, я изменил поле данных.Но похоже просто меняются числовые вещи.Я хочу знать, как изменить поле ACK или CRC, чтобы ввести ошибку.Могу ли я изменить это поле с помощью программного обеспечения?

1 Ответ

0 голосов
/ 12 октября 2018

Нет, вы не можете изменить это из программного обеспечения, так как эта часть сообщения всегда построена на уровне контроллера связи CAN и ниже (физический уровень).

По сути, поле ACK не установлено в SW.Он «завершается» другими узлами во время отправки сообщения, и поток битов поступил в битовый интервал ACK.CRC построен на уровне Communication Controlroler, исходя из полезной нагрузки, которую приложение хочет отправить.

Таким образом, чтобы ввести такие ошибки в сообщение CAN, вам необходимо специальное устройство HIL (Hardware in the Loop), которое принудительно перезапишет поля по вашему выбору.Одним из таких устройств является CANSTress от Vector, но есть много других.

Относительно ошибки NACK , вы можете смоделировать это без HIL , если у вас есть среда моделирования. Или просто не включайте другие узлы в кластере,обеспечение отсутствия другого узла для подтверждения сообщения.Осторожно, отключение кабелей CANH и CANL приведет к другому типу ошибки .

...