Читатели нашего еженедельника в большинстве своем хорошо знакомы с локальными сетями (ЛС, ЛВС). Однако внедрение микропроцессоров и микропроцессорных контроллеров в самое различное оборудование потребовало наличия сетей, объединяющих многообразные электронные управляющие устройства (ECU).
Рассмотрим в качестве примера такой сети шину (и соответствующий ей протокол) CAN (Controller Area Network). Она была предложена Робертом Бошем (Robert Bosch) в 80-х годах для автомобильной промышленности, затем стандартизована ISO (ISO 11898) и SAE (Society of Automotive Engineers). (Описание стандартов и большой объем документации по CAN можно найти на сайте www.can-cia.de) Сегодня большинство европейских автомобильных гигантов (например, Audi, BMW, Renault, Saab, Volvo, Volkswagen) используют CAN в системах управления двигателем, безопасности и обеспечения комфорта. В Европе в ближайшие годы будет введен единый интерфейс для систем компьютерной диагностики автомобиля. Это решение также разрабатывается на базе CAN, так что со временем в каждом автомобиле будет по крайней мере один узел этой сети.
Однако сети CAN используются и в таких сложных установках, как современные оптические телескопы с большим диаметром зеркала. Так как такие зеркала невозможно сделать монолитными, их сейчас делают составными, а управление отдельными зеркальцами (их может быть больше сотни) осуществляется сетью микроконтроллеров. Другие сферы применения - корабельные бортовые сети, управление системами кондиционирования воздуха, лифтами, медицинскими и промышленными установками. В мире уже установлено более 100 млн. узлов сетей CAN, ежегодный прирост составляет более 50%.
CAN представляет собой асинхронную последовательную шину, использующую в качестве среды передачи витую пару проводов (см. рисунок 1). При скорости передачи 1 Мбит/с длина шины может достигать 30 м. При меньших скоростях ее можно увеличить до километра. Если требуется большая длина, то ставятся мосты или повторители. Теоретически число подсоединяемых к шине устройств не ограничено, практически - до 64-х. Шина мультимастерная, т. е. сразу несколько устройств могут управлять ею.
Рис. 1. Топология шины CAN
Если базироваться на семиуровневой модели OSI, то CAN описывает передачу данных между узлами на двух нижних уровнях - физическом и канальном. Физический уровень разбит на три подуровня: физических сигналов (PLS), соединения с физической средой (PMA) и физического соединения (MDI). Битовый поток кодируется по методу NRZ (без возвращения к нулю), что позволяет работать на меньших частотах, чем, например, при других видах кодирования. Над CAN надстроена реализация протоколов более высоких уровней. Здесь нет жесткой стандартизации и имеется много протоколов или решений компаний. Примером одного из них является разработанный компанией Allen Bradley протокол DeviceNet.
На рынке CAN присутствует в двух версиях: версия А задает 11-битную идентификацию сообщений (т. е. в системе может быть 2048 сообщений), версия B - 29-битную (536 млн. сообщений). Отметим, что версия В, часто именуемая FullCAN, все больше вытесняет версию А, которую называют также BasicCAN.
Сеть CAN состоит из узлов с собственными тактовыми генераторами. Любой узел сети CAN посылает сообщение всем системам, подсоединенным к шине, таким, как приборная доска или подсистема определения температуры бензина в автомобиле, а уж получатели решают, относится ли данное сообщение к ним. Для этого в CAN имеется аппаратная реализация фильтрации сообщений.
В мире производится множество типов контроллеров CAN. Их объединяет общая структура - каждый контроллер имеет обработчик протокола (CAN protocol handler), память для сообщений, интерфейс с ЦП. Во многих популярных однокристальных микропроцессорах есть встроенный контроллер шины CAN.
Поддержкой технологии CAN занимается некоммерческая международная группа CiA (CAN in Automation, www.can-cia.de), образованная в 1992 г. и объединяющая пользователей и производителей технологии CAN. Группа предоставляет техническую, маркетинговую и продуктовую информацию. Осенью 1999 г. в CiA было около 340 членов. Она также занимается разработкой и поддержкой различных базирующихся на CAN протоколов высокого уровня, таких, как CAL (CAN Application Layer), CAN Kingdom, CANopen и DeviceNet. Кроме того, члены группы дают рекомендации, касающиеся дополнительных свойств физического уровня, например скорости передачи и назначения штырьков в разъемах.
Замечу, что эта шина развивается в нескольких направлениях. В новом проекте стандарта будет увеличена скорость передачи данных, так как в автомобиле появилось много компьютерных подсистем, связанных с передачей аудио- и видеоинформации. Повышение надежности требует введения так называемой двойной (дублированной) шины CAN. Другие изменения достаточно кардинальны и вызваны появлением нового протокола, рассмотренного ниже.
Протокол TTP
В системах реального времени существует два основных способа управления - по событиям (например, по прерываниям) и по временным меткам. Если первый подход широко распространен, то для второго требуются специальные средства. Одно из них - TTP, Time Triggered Protocol, коммуникационный протокол для высоконадежных приложений. Первоначально он разрабатывался в рамках исследовательской программы, финансируемой Евросоюзом. В этой 15-летней программе принимало участие множество фирм, таких, как DaimlerChrysler, British Aerospace, Alcatel, Temic, Fiat, Ford, Marelli, Bosh, Volvo, и Венский технический университет. Разработкой занято около 100 человек, в нее вложено примерно 25 млн. долл. Созданная в ходе выполнения программы архитектура TTA (Time-Triggered Architecture) признана эффективной для критичных по безопасности систем (автомобильных, железнодорожных, авиационных). TTP является центральной частью проектов SETTA (System Engineering for TTA) и FIT (Fault Injection for TTA), разрабатываемых ЕС в рамках программы ESPRIT.
В настоящее время поддержка протокола TTP осуществляется специально созданной для этого компанией TTTech (www.ttttech.com), которая выпускает интегрированные средства разработки (пакет TTPtools) и занимается обучением пользователей протокола. Сотрудничество этой фирмы с Венским техническим университетом привело к появлению протокола TTP/C. Буква C в его названии говорит о том, что протокол удовлетворяет требованиям класса C Ассоциации инженеров автомобилестроения (SAE) на отказоустойчивые протоколы передачи данных для жесткого реального времени.
В отличие от большинства стандартов на мультиплексированные шины для встраиваемых систем, TTP с самого начала разрабатывалась для высоконадежных приложений. В системах управления автомобиля очень важны устойчивость к ошибкам и временные характеристики, связанные, например, с заменой обычных гидравлических тормозов на электромеханические (brake-by-wire), управляемые по сети. Поэтому сети CAN при большом потоке сообщений будут заменяться на TTP/C. Замена гидравлических и механических компонентов в автомобиле обозначается общим термином by-wire applications. При этом образуется жесткая связь между электроникой и исполнительными механизмами, когда требуются надежность, простота сборки и обслуживания.
Другой член семейства протоколов TTP - протокол TTP/A - дешевый протокол для сети датчиков и приводов. Он бесшовно интегрируется с TTP/C. Получающаяся в результате архитектура TTA гарантирует, что каждое чтение с датчика и команда на привод будут полностью предсказуемы в соответствии с их временными свойствами.
В современном автомобиле используется больше сотни микропроцессоров
Система управления на базе протокола TTP/C состоит по крайней мере из одного вычислительного кластера, содержащего набор узлов. Узлы общаются по широковещательной шине. Общее время устанавливается с помощью синхронизации таймеров каждого из узлов. На уровне кластера ошибки узла или коммуникаций могут быть замаскированы за счет дублирования узлов и объединения их в группы, устойчивые к сбоям. Такие группы называются FPU (Fault Tolerant Units).
Доступ к среде передачи осуществляется по схеме статического TDMA, определенной перед запуском системы. Каждому узлу разрешается посылать до 16 байт данных с 4-байтовым заголовком и 16-битовым контрольным кодом (CRC). Эта посылка осуществляется в предопределенный интервал времени, называемый TDMA-слотом.
Технология TTP/C уже начала воплощаться в микросхемах: несколько европейских производителей либо выпустили первые кристаллы (AMS), либо объявили о намерении это сделать (ARM, Motorola, Philips). Motorola собирается предлагать не только аппаратные решения, но и программные - их реализацией уже заняты ее подразделения в Шотландии. Законченные решения появятся к концу года (www.mot-sps.com/automotive/TTPC.html).
Дважды в год проводятся форумы (см. www.ttpforum.org), посвященные TTP. Четвертый TTPforum прошел 8 марта в Детройте в рамках выставки и конференции по автомобильной электронике SAE 2000. В нем приняло участие около 200 человек. Если самая крупная из известных мне компьютерных конференций (Oracle) собирала 30 тыс. участников, то в SAE приняли участие 50 тыс. человек и 1200 экспонентов.
Безусловно, этот текст, написанный под впечатлением увиденного на Нюрнбергской выставке “Embedded Systems’2000”, лишь введение в интереснейшую тему шин для бортовых систем. Редакция приглашает специалистов осветить эту тему, как и в целом тему автомобильной электроники.С автором можно связаться по адресу: chief@pcweek.ru.
Характеристики шины Controller Area Network (CAN)
- Топология: последовательная шина, с обоих концов линии стоят заглушки (120 Ом)
- Обнаружение ошибок: 15-битовый CRC-код
- Локализация ошибок: различают ситуации с постоянной ошибкой и временной; устройства с постоянной ошибкой отключаются
- Текущая версия: CAN 2.0B
- Скорость передачи: 1 Мбит/с
- Длина шины: до 30 м
- Количество устройств на шине: ~ 64 (теоретически неограничено)