- •Изучение семейства profibus из трех совместимых друг с другом версий: profibus pa, profibus dp и profibus fms.
- •1. Цель работы
- •Основные характеристики платы:
- •2.Установка библиотеки
- •3.Удаление Библиотеки
- •4.Состав библиотеки
- •5.Использование библиотеки
- •6.Использование программы canmon
- •6.1.Вывод принятых кадров на экран
- •6.2.Вывод ошибок сети
- •6.3.Примеры использования команд
- •1. Цель работы
- •1. Цель работы
- •Настройка adsl-модема
- •Описание протокола hart
- •Принципы построения
- •Сеть на основе hart-протокола
- •Адресация
- •Команды hart
- •Язык описания устройств ddl
- •Разновидности hart
6.2.Вывод ошибок сети
Обнаруженные в процессе работы ошибки выводятся на экран асинхронно наряду с посланными и принятыми кадрами:
“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 можно командой: send 0x7:0x1,0x2,0x3,0x4 eff repeat 3
Отправить пять RTR-пакетов стандартного формата длины 4 байт с идентификатором 0xd можно командой: sendrx 0xd:4 sff repeat 5
Включить запись всех отправляемых и принимаемых CAN-пакетов в файл c:\chai-2.4.0\canmon.log можно командой: openlog c:\chai-2.4.0\canmon.log
Закрыть лог-файл и выключить запись принимаемых отправляемых пакетов можно командой: closelog
Перевести контроллер в режим Listen-Only-Mode, в этом режиме контроллер не участвует в работе шины (не шлет кадры подтверждения и ошибок) но только принимает проходящие по сети кадры, этот режим используется для не возмущающего тестирования CAN-сетей. Команда setlom может вызываться только, если контроллер находится в режиме конфигурирования (команды stop/start). stop setlom start
Выключить режим Listen-Only-Mode, Команда clearlom может вызываться только, если контроллер находится в режиме конфигурирования (команды stop/start). stop clearlom start
Установить аппаратный фильтр контроллера на прием только кадров с идентификатором 0x1. Команда setfilter может вызываться только, если контроллер находится в режиме конфигурирования (команды stop/start). stop setfilter 0x1 0xffff start Аппаратный фильтр состоит из двух значений: acode - значение фильтра, и amask - значение маски. Значение фильтра задает идентификатор принимаемых кадров (в нашем случае 0x1). Маска задает значащие позиции в значении фильтра, Если бит номер N в маске выставлен в 1, то бит номер N в значении фильтра должен быть равен биту N в идентификаторе принимаемого кадра для успешного прохождения этого кадра через фильтр. Если бит номер N в маске выставлен в 0, то биты номер N в значении фильтра и идентификаторе принимаемого кадра не сравниваются. В нашем случае маска равна 0xffff - все биты идентификатора участвуют в сравнении, что означает, что кадр будет принят, только если все его биты совпадают с соответствующими битами значения фильтра, т.е. кадр будет принят, только если его идентификатор равен 0x1. Текущая версия программы canmon поддерживает аппаратный фильтр только для 11-битных кадров, действие фильтра (если он установлен) на 29-битные кадры - непредсказуемо. Если вам необходимо работать с аппаратным фильтром 29-битных кадров используйте программу CANwise.
Установить аппаратный фильтр контроллера на прием только кадров с идентификаторами от 0x0 до 0x7 включительно. stop setfilter 0x0 0xfff8 start здесь маска 0xfff8 указывает, что первые три бита идентификатора не участвуют в сравнении, а остальные должны совпадать с 0. Таким образом, через фильтр будут проходить кадры с идентификаторами от 0x0 до 2 в степени 3 минус 1 (т.е. 0x7).
Установить аппаратный фильтр контроллера на прием всех кадров. stop setfilter 0x0 0x0 start
Формат пакета данных
В обычном режиме передачи пакеты данных имеют следующие конфигурации блоков (фреймы):
• 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 остаётся в режиме покоя до передачи следующего пакета данных.
Лабораторная работа 3
Изучение Universal Serial Bus и FireWire