logo search
Ответы по курсу ПМС

26. Стандарт промышленных сетей can

CAN – Controller Area Network сеть уровня контроллеров.

Устанавливает правила обмена данными между контроллерами, датчиками исполнительными механизмами. Под этим понимают систему последовательной передачи данных между узлами, выполненными в широковещательном режиме. В сети с интерфейсом CAN возможен прямой обмен данными между любыми абонентами сети.

В отличии от систем основанных по принципу “ведущий-ведомый” в системе CAN не все данные должны передавать адрес ведущего узла для последующих пересылок другим абонентам, т.е. существует возможность обмена данными между узлами минуя ведущий, что значительно повышает надежность сети, т.к. при отказе узла возможна f с небольшими потерями.

Протокол CAN (Controller Area Network) определяет только первые два уровня ISO/OSI – физический и уровень доступа к среде передачи данных.

Достоинствами, определившими высокую популярность этого протокола у разработчиков встраиваемых и промышленных систем, являются высокая скорость (до 1 Мбит/с), метод доступа CSMA/СA, возможность иметь в сети несколько ведущих устройств, надежная

система обнаружения и исправления ошибок. CSMA/СA сочетает минимальную задержку передачи информации с эффективным арбитражем ситуаций, когда несколько узлов начинают передавать данные одновременно. Благодаря этому гарантируется доставка

сообщения, то есть система является детерминированной. «Гарантией качества» CAN являются автомобили «Мерседес», электроника которых работает именно по этому протоколу.

Спроектированная первоначально для автомобилестроения сеть CAN (Controller Area Network-контроллерная сеть на базе последовательной шины) имеет большой потенциал применения в промышленности.

Ограничения, накладываемые традиционным объединением функций устройств управления, можно преодолеть построением сети из основных компонентов на базе последовательной шины передачи данных. Вот почему компания Bosch разработала сеть CAN (Controller Area Network - контроллерная сеть ), ставшей впоследствии международным стандартом ISO 11898, и которая теперь выпускается несколькими производителями полупроводниковых приборов.

В сети CAN основные узлы (контроллеры, датчики и приводы) соединяются через последовательную шину. Используемый протокол соответствует уровню 2 (уровень канала передачи данных) эталонной модели ISO/OSI открытых систем. В отличие от древовидной кабельной иерархии данный протокол обнаруживает и исправляет коммуникационные ошибки, вызванные электромагнитными помехами. Сеть относительно легко конфигурируется и позволяет производить обмен данными между любыми двумя узлами без перегрузки центрального компьютера.

Принцип работы сети CAN

Данные, передаваемые одним узлом, рассылаются по сети всем станциям. Первоначально это сообщение принимается всеми станциями. Узел, принявший сообщение, может проигнорировать его, если оно не будет связано с выполняемыми узлом функциями.

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

В сети CAN каждый 11-битный идентификатор уникален. Никакая пара узлов сети не может послать сообщения с одинаковыми идентификаторами. Аналогичным образом, никакой узел не может принять сообщения разных типов, но с одинаковыми идентификаторами. Это особенно важно при распределении шины между несколькими конкурирующими за доступ к шине станциями.

Если центральный процессор (ЦП) какой-либо станции решает послать сообщение другой станции или станциям, то сначала он передает эти данные и свой идентификатор в соответствующую ему CAN-микросхему. На рис.1 это обозначено состоянием "Готов" (Make Ready). После этого CAN-схема конструирует сообщение и пересылает его по шине (когда она доступна). Это состояние на рис.1 обозначено "Послать Сообщение" (Send Message).

Рис.1. В данном примере станция 2 передает свое сообщение всем узлам в сети, однако принимают данные только станции 1 и 4. Станция 3 принимает сообщение, но игнорирует его.

В этот момент все другие станции становятся приемниками этого сообщения (состояние "Получить Сообщение" - Receive Message). Каждый приёмник определяет, предназначено ли это сообщение ему (состояние "Выбрать" - Select). Если да, то данные принимаются, в противном случае они игнорируются.

В результате применения схемы адресации, ориентированной на содержимое, обеспечивается высокая степень конфигурируемости и гибкости системы. Добавление в сеть новых станций осуществляется без какой-либо модификации аппаратной или программной части сети, при условии, если эти станции полностью ориентированы на приём. Используемый протокол передачи данных не требует назначения физических адресов конкретным принимающим компонентам сети. Это позволяет синхронизировать распределенную обработку: информация о параметрах измерений, требуемая несколькими контроллерами, рассылается по сети, поэтому нет необходимости оснащать каждый контроллер своим собственным датчиком.

Сравнение сети CAN с другими сетями

В основной практике существует два метода предоставления шины: по фиксированному временному расписанию и по требованию. В первом случае шина последовательно предоставляется каждому узлу сети на максимально возможный отрезок времени, независимо от того, требуется ли ему в этот момент шина или нет (пример: сети с передачей маркера). При этих методах шина предоставляется одному и только одному узлу либо для безотлагательного использования, либо в течение определенного периода времени, отсчитываемого от единственного доступа к шине (одним или несколькими узлами). Это гарантирует однозначность предоставления шины в результате запроса шины одной или несколькими станциями.

При использовании второго метода шина предоставляется запрашивающему узлу на основе анализа существующих требований на передачу (пример: Ethernet CSMA/CD). В этом случае одновременный доступ к шине нескольких узлов приводит к прекращению всех попыток передачи данных, то есть успешного предоставления шины не происходит. Для получения шины может потребоваться несколько запросов.

В сети CAN реализуется метод, гарантирующий однозначное предоставление шины даже в случае Наличия нескольких одновременных запросов на доступ к шине от разных станций. Конфликты разрешаются методом поразрядного сравнения в течение цикла анализа 13 бит (стандартный формат) или 33 бит (расширенный формат).

В отличие от метода арбитража, используемого в Ethernet (CSMA/CD), недеструктивный метод разрешения конфликтов, применяемый в CAN, обеспечивает использование шины для передачи только полезной информации.

Даже в ситуациях сильной загрузки шины передача данных на основе привязки приоритета доступа к шине к содержимому сообщения оказывается выигрышным свойством системы. Несмотря на недостаточную пропускную способность шины, все запросы на передачу обрабатываются в порядке их важности для всей системы. Остановка всей системы из-за перегрузок, что может случиться с сетями, в которых конфликты разрешаются методом CSMA/CD, например, Ethernet, в CAN невозможна.

Надёжность CAN

Вычисление вероятности остаточной ошибки требует построения некоторой модели, классифицирующей возникающие ошибки и описывающей весь путь передачи информации. Если мы определим вероятность остаточной ошибки как функцию вероятности искажения бита для сообщений длиной от 80 до 90 бит, системной конфигурации с количеством узлов от пяти до десяти и коэффициентом ошибок 1/1000 (одна ошибка на тысячу сообщений), то максимальная вероятность искажения одного бита будет порядка 10'13.

Например, если сеть CAN работает со скоростью передачи данных 1 Мбит/с при средней загрузке шины 50%, общем временем функционирования 4000 часов и средней длиной сообщения 80 бит, то общее количество переданных сообщений составляет 9х10'".

Статистическое число необнаруженных ошибок передачи данных в течение этого времени работы - менее 10'2.

Другими словами, при эксплуатации системы 8 часов в день в течение 365 дней в году и частоте появления ошибок 0,7 в секунду одна необнаруженная ошибка будет появляться в среднем один раз в тысячелетие.