Вывод ошибок сети
Обнаруженные в процессе работы ошибки выводятся на экран асинхронно наряду с посланными и принятыми кадрами: · “ER WTOUT WRITE TIMEOUT" – кадр не был отослан в течении стандартного временного интервала, ошибка может возникнуть если нет соединения с сетью (например, обрыв кабеля, нет других контроллеров в сети, несоответствие выставленных скоростей передачи у контроллеров в сети) · "ER EWL ERROR WARNING LIMIT" – один из аппаратных счетчиков ошибок CAN-контроллера превысил уровень предупреждения (по умолчанию 96); кроме указаных в предыдущем пункте (WTOUT), причиной возникновения этой ошибки могут быть помехи в сети (согласно спецификации Bosch CAN 2.0); · "ER BOFF BUS OFF" – контроллер отключен от сети из-за ошибок (один из счетчиков ошибок достиг предельного значения 255); при наступлении этого события CAN-контроллер переходит в режим инициализации (CAN_INIT); · "ER HOVR HARDWARE OVERRUN" – произошло переполнение аппаратной приемной очереди CAN-контроллера (безвозратно потерян один или несколько полученных кадров), причина – большой поток кадров в сети, ЦПУ не успевает вынимать кадры из аппаратной очереди контроллера; · "ER SOVR SOFTWARE OVERRUN" – произошло переполнение программной приемной очереди драйвера (безвозратно потерян один или несколько полученных кадров), причина – большой поток кадров в сети, пользовательское приложение не успевает вынимать кадры из программной очереди драйвера; 6.3. Примеры использования команд · Отправить подряд три пакета расширенного формата с идентификатором ID=0x7 и четырьмя байтами данных 0x1 0x2 0x3 0x4 можно командой: · Отправить пять RTR-пакетов стандартного формата длины 4 байт с идентификатором 0xd можно командой: · Включить запись всех отправляемых и принимаемых CAN-пакетов в файл c:\chai-2.4.0\canmon.log можно командой: · Закрыть лог-файл и выключить запись принимаемых отправляемых пакетов можно командой: · Перевести контроллер в режим Listen-Only-Mode, в этом режиме контроллер не участвует в работе шины (не шлет кадры подтверждения и ошибок) но только принимает проходящие по сети кадры, этот режим используется для не возмущающего тестирования CAN-сетей. Команда setlom может вызываться только, если контроллер находится в режиме конфигурирования (команды stop/start). · Выключить режим Listen-Only-Mode, Команда clearlom может вызываться только, если контроллер находится в режиме конфигурирования (команды stop/start). · Установить аппаратный фильтр контроллера на прием только кадров с идентификатором 0x1. Команда setfilter может вызываться только, если контроллер находится в режиме конфигурирования (команды stop/start). · Установить аппаратный фильтр контроллера на прием только кадров с идентификаторами от 0x0 до 0x7 включительно. · Установить аппаратный фильтр контроллера на прием всех кадров.
Формат пакета данных В обычном режиме передачи пакеты данных имеют следующие конфигурации блоков (фреймы): • Data Frame (фрейм сообщения) для передачи сообщений по шине данных CAN (например: температура охлаждающей жидкости). • Remote Frame (фрейм запроса) для запроса сообщений по шине данных CAN от другого блока управления. • Error Frame (фрейм ошибки) все подключённые блоки управления уведомляются о том, что возникла ошибка и последнее сообщение по шине данных CAN является недействительным. Протокол шины данных CAN поддерживает два различных формата фреймов сообщения по шине данных CAN, которые различаются только по длине идентификатора: стандартный формат; расширенный формат. В настоящее время используется стандартный формат. Пакет данных для передачи сообщений по шине данных CAN состоит из семи последовательных полей: • Start of Frame (стартовый бит): Маркирует начало сообщения и синхронизирует все модули. • Arbitration Field (идентификатор и запрос): Это поле состоит из идентификатора (адреса) в 11 бит и 1 контрольного бита (Remote Transmission Request-Bit). Этот контрольный бит маркирует пакет как Data Frame (фрейм сообщения) или как Remote Frame (фрейм запроса) без байтов данных. • Control Field (управляющие биты): Поле управления (6 бит) содержит IDE-бит (Identifier Extension Bit) для распознавания стандартного и расширенного формата, резервный бит для последующих расширений и - в последних 4 битах - количество байтов данных, заложенных в Data Field (поле данных). • Data Field (данные): Поле данных может содержать от 0 до 8 байт данных. Сообщение по шине данных CAN длиной 0 байт используется для синхронизации распределённых процессов. • CRC Field (контрольное поле): Поле CRC (Cyclic-Redundancy-Check Field) содержит 16 бит и служит для контрольного распознавания ошибок при передаче. • ACK Field (подтверждение приёма): Поле ACK (Acknowledgement Field) содержит сигнал подтверждения приёма всех блоков-приёмников, получивших сообщение по шине CAN без ошибок. • End of Frame (конец фрейма): Маркирует конец пакета данных. • Intermission (интервал): Интервал между двумя пакетами данных. Интервал должен составлять не менее 3 битов. После этого любой блок управления может передавать следующий пакет данных. • IDLE (режим покоя): Если ни один блок управления не передаёт сообщений, то шина CAN остаётся в режиме покоя до передачи следующего пакета данных.
|