Документ взят из кэша поисковой машины. Адрес оригинального документа : http://rtm-cs.sinp.msu.ru/publications/acs1998/acs98_2.html
Дата изменения: Mon Nov 30 21:42:19 1998
Дата индексирования: Mon Oct 1 21:12:10 2012
Кодировка: koi8-r
CAN-bus in control system of small linac

Application of CAN-bus to construct control system of small linac.

D.V. Komissarov, A.S. Chepurnov, F.N. Nedeoglo, V.V. Garbuzov, A.S. Lisutin Institute of Nuclear Physics, Moscow State University. 119899, Moscow, Russia, (095) 939-5659
 

Применение CAN в системах управления малыми и средними ускорителями.

Комиссаров Д.В., Чепурнов А.С., Недеогло Ф.Н., Гарбузов В.В., Лисютин А.С.

Contents:

Abstract

Введение

Принципы построения системы управления

Стандарт CAN

Протоколы верхнего уровня

Заключение


Abstract.

This paper discusses the architecture of new small control system of LINAC. In discussed control system number of high cost components reduced as much as possible without lose of any functionality and ability operate in hard real time. This is possible because new control system small enough and we able to use for communication between various components of this system high speed and efficient CAN bus. Calculation power of personal computer and front-end micro controllers in this system enough for provide stable small latency time of control actions.

The brief overview of CAN standard and CAN - based higher layer protocols is given.
 
 

Введение.

Сегодня технология Controller Area Network (CAN) находит все более широкое применение при построении систем управления ускорителями. В связи со своей спецификой ( сравнительно небольшая протяженность сети , ограниченное число подключаемых устройств) CAN более всего подходит для компактных систем управления. Таковыми являются системы управления (СУ) малых и средних ускорителей ,а также отдельные подсистемы CУ больших ускорителей.
 

Принципы построения системы управления малым ускорителем.

Традиционная СУ ускорителем представляет из себя трёхуровневую систему (рис. 1).CS topology

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

Средний уровень представляет из себя магистрально-модульную систему , например на основе VME компьютеров. На VME может работать одна из ОС реального времени. В качестве такой ОС можно использовать , например, VxWorks. Магистрально-модульная система соединяется с компьютерами верхнего уровня посредством какой-нибудь сети офисного типа , например Ethernet.

Нижний уровень составляют микроконтроллерные устройства, обеспечивающие доступ к объектам управления . Микроконтроллерные устройства объединены между собой с помощью одной из Fieldbus сетей. С помощью этой же сети осуществляется связь между устройствами нижнего и среднего уровней СУ ускорителем.

Средний уровень содержит в своём составе дорогостоящие быстродействующие устройства , например MVME микропроцессорные платы или быстрые ЦАП / АЦП. Таким образом существенную часть стоимости всей системы управления составляет стоимость её среднего уровня.

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

Верхний уровень в новой СУ состоит из мощного персонального компьютера , который выполняет функции как консоли оператора так и сервера базы данных. Использование на этом компьютере ОС Linux предоставляет широкие возможности сетевого обмена с другими компьютерами по офисной сети типа Ethernet. Таким образом становится возможным включение в рассматриваемую СУ дополнительных консолей оператора , например в виде X - терминалов.

Нижний уровень новой СУ состоит из микроконтроллерных устройств. Все критичные ко времени алгоритмы предполагается разместить именно на нижнем уровне СУ.

Для соединения микроконтроллерных устройств предлагается использовать стандарт CAN bus. Консоль оператора соединяется с нижним уровнем так же с помощью CAN bus. Для этого используется специальная карта расширения для персонального компьютера , оборудованная CAN контроллером. Сейчас используется карта PC-I 03 фирмы STZP с СAN контроллером PCA82c200 фирмы Philips.

В качестве CAN контроллера для оконечных микроконтроллерных устройств был выбран SJA 1000. Этот контроллер отображает свои регистры управления и регистры данных в определенную область памяти микропроцессора , который так же входит в состав оконечного устройства. Такой механизм доступа к CAN контроллеру позволяет создавать простые и эффективные программы для работы с ним. В качестве протокола верхнего уровня для CAN bus был выбран протокол Device Net.
 

Стандарт Сontroller Area Network.

Идея создания Controller Area Network ( CAN ) появилась в конце 80-х у Роберта Боша ( Robert Bosch ). Идея заключалась в том, чтобы создать сетевое решение для распределённых систем, работающих в реальном времени. Первоначально CAN применялся в автомобилях , но затем область его применения расширилась и на проблемы автоматизации технологических процессов. CAN обеспечивает высокий уровень защиты данных от повреждения даже при работе в сложных условиях ( сильные помехи ), при этом достигается достаточно большая скорость передачи данных ( до 1 Mbit/s ). Важным достоинством CAN является также то, что разработчик системы может влиять на приоритет сообщений с тем чтобы самые важные из них не ожидали в очереди на отправку. Это свойство CAN позволяет строить сети, поддерживающие реальное время.

CAN контроллеры соединяются с помощью шины, которая имеет как минимум два провода can- high и can-low. CAN сеть предназначена для коммуникации так называемых <узлов>. Каждый узел должен состоять как минимум из двух составляющих. Это собственно CAN контроллер, который обеспечивает взаимодействие с сетью, и CPU (рис.3). CAN не нуждается в особой физической среде передачи сигналов. То есть для соединения CAN контроллеров можно использовать и витую пару и оптоволоконный кабель. Сигнал передается по двум линиям can_high и can_low.Логический ноль регистрируется когда на can_high сигнал выше чем на can_low. Логическая единица в обратном случае. Такая схема передачи делает возможным работу CAN сети в очень сложных внешних условиях. С точки зрения помехозащищённости CAN подходящий вариант длясистем управления ускорителями.

Быстродействие CAN сети (до 1 Mbit/s) достигается благодаря механизму не деструктивного арбитража шины посредством сравнения бит конкурирующих сообщений. Т.е. если случится так что одновременно начнут передачу несколько контроллеров, то каждый из них сравнивает бит, который собирается передать на шину с битом, который пытается передать на шину конкурирующий контроллер. Если значения этих битов равны оба контроллера пытаются передать следующий бит. И так происходит до тех пор пока значения передаваемых битов не окажутся различными. Теперь контроллер, который передавал логический ноль (более приоритетный сигнал) будет продолжать передачу, а другой(другие) контроллер прервёт свою передачу до того времени пока шина вновь не освободится (рис. 4). Конечно ,если шина в данный момент занята ,то контроллер не начнет передачу до момента её освобождения.

Многие механизмы спецификации CAN работают благодаря тому, что все CAN контроллеры принимают сигналы с шины одновременно. Т.е. в одно и то же время один и тот же бит принимается всеми контроллерами в сети. С одной стороны такое положение вещей делает возможным побитовый арбитраж, а с другой стороны ограничивает длину CAN bus. Сигнал распространяется по CAN bus со скоростью света и для правильной работы CAN нужно , чтобы все контроллеры <услышали> его почти одновременно. Почти, потому что каждый контроллер принимает бит в течении определённого промежутка времени, отсчитываемого системным часам. Т.о. чем быстрее тикают системные часы (чем выше скорость передачи данных), тем меньшая длинна CAN bus возможна.

Данные по CAN сети пересылаются в виде отдельных кадров стандартного формата (рис.5). Наиболее важными полями являются поле идентификатора (identifier) и собственно данные (data). Приоритетность сообщения, таким образом определяется значением идентификатора. Приоритет тем больше чем идентификатор меньше. Как правило контроллер позволяет задавать лишь эти два поля. Остальные поля используются для передачи специфических данных, необходимых для функционирования CAN.

Надежность CAN сети определяется также механизмами обнаружения ошибок. Стандарт CAN определяет следующие методы обнаружения ошибок:

Подсчёт контрольных сумм CRC
Каждый передающий контроллер помещает в поле CRC соответствующее значение, принимающий контроллер подсчитывает CRC сообщения заново и сравнивает с полученным. Если они не совпадают, принимающий контроллер посылает спец. кадр (Error Frame) , который сигнализирует другим контроллерам о произошедшем сбое.
Контроль правильности формата кадра
Некоторые поля в кадре CAN имеют определённое значение и расположение относительно других полей кадра. Если обнаруживается неправильный формат , то посылается , как и в предыдущем случае Error Frame.
Подтверждения приема
Передатчик всегда передает в поле ACK кадра CAN рецессивный бит(т.е. лог. единица). Когда приемник читает данное сообщение , то он во время приёма бита ACK посылает на шину доминантный бит (лог. ноль). Передатчик прослушивает шину и если на ней лог.ноль то считается что сообщение принято. В противном случае регистрируется ошибка при подтверждении.
Проверка битов
Передатчик всегда проверяет сигнал на шине и сравнивает с тем , который только что послал. Если значения не равны и при этом посылался не ACK бит , то регистрируется ошибка.
Благодаря этим механизмам вероятность приёма испорченного сообщения не превышает (частота появления ошибок) * 4.7 * 10-11. Подсчёты (Mike Schofield) показывают что при средней загрузке шины (на 50%), при её работе 8 часов в день, 365 дней в году со скоростью 1 Mbit/s, одна не зарегистрированная ошибка возникает каждые 1000 лет! Т.о. CAN является технологичной, надёжной и достаточно скоростной системой, к тому же стандартизированной (стандарт ISO 11898).
 

Выбор протокола верхнего уровня CAN сети.

Стандарт CAN не регламентирует каким образом конкретные приложения будут передавать специфичные для себя данные по сети CAN. Т.о. возникает потребность в использовании какого-нибудь протокола верхнего уровня (не путать с верхним уровнем СУ ускорителя). Можно придумать свой протокол, который позволял бы приложениям работать с CAN сетью просто и удобно, но едва ли стоит тратить на это силы, если уже существует множество высокоуровневых протоколов на основе CAN технологии. Причём это открытые протоколы, т.е. можно получить уже готовые спецификации и даже участвовать в дальнейшем развитии данных систем. Наиболее известные из таких систем это: