CAN протоколы высокого уровня Введение CAN протокол получил всемирное признание как очень универсальная, эффективная, надежная и экономически приемлемая платформа для почти любого типа связи данных в передвижных системах, машинах, техническом оборудовании и индустриальной автоматизации. Основанная на базе протоколов высокого уровня CAN-технология успешно конкурирует на рынке распределенных систем автоматизации. Под терминами "CAN стандарт" или "CAN протокол" понимаются функциональные возможности, которые стандартизированы в ISO 11898. Этот стандарт объединяет физический уровень (Physical Layer) и уровень канала данных (Data Link Layer) в соответствии с 7-ми уровневой OSI моделью. Таким образом, "CAN стандарт" соответствует уровню сетевого интерфейса в 4-х уровневой модели TCP/IP. Однако, практическая реализация даже очень простых распределенных систем на базе CAN показывает, что помимо предоставляемых сервисов уровня канала данных требуются более широкие функциональные возможности : передача блоков данных длинной более чем 8 байтов, подтверждение пересылки данных, распределение идентификаторов, запуск сети и функции супервизора узлов. Так как эти дополнительные функциональные возможности непосредственно используются прикладным процессом, вводится понятие уровня приложений (Application Layer) и протоколов высокого уровня. Обычно их и называют термином "CAN протоколы". OSI модель протоколов высокого уровня на базе CAN,протоколов TCP/IP Для систем реального времени на базе CAN нет необходимости в реализации полной 7-ми уровневой модели OSI(рис. 1). Это связано с тем, что типичная CAN система имеет в своей основе единственный канал данных для обмена сообщениями между устройствами, все устройства ориентированы на конкретный способ передачи данных по каналу, а приложения пишутся именно под данную архитектуру сети и данный протокол. Поэтому нет необходимости в реализации уровня представлений, уровня сеанса и сетевого уровня из 7-ми уровневой модели OSI и были оставлены только 3 уровня этой модели : физический уровень, уровень канала данных и уровень приложений(рис. 2). Причем последний реализует некоторые функции транспортного уровня. Рис. 1 Рис. 2 Из-за широко использования CAN сетей с различными целями и требованиями существуют несколько главных стандартов CAN-протоколов высокого уровня : CAL (CAN Application Layer), OSEK/VDX, SAE J1939, CANopen, DeviceNet, SDS (Smart Distribution Systems),CAN-Kingdom. Далее более подробно будет рассмотрен стандарт DeviceNet для сравнения с TCP/IP. Основные возможности протоколов высокого уровня на базе CAN Рассмотрим основные возможности, которые предоставляют протоколы высокого уровня: система назначения идентификатора для сообщения метод обмена данных процесса прямая(peer-to-peer) связь метод установления связей для обмена данных процесса сетевое управление модели и профайлы устройств Идентификаторы сообщений Метод назначения идентификатора сообщения является главным архитектурным элементом CAN систем, так как идентификатор CAN-сообщения определяет относительный приоритет сообщения и следовательно время обработки сообщения (latency time). Это также влияет на возможность применимости фильтрования сообщения,на использование возможных коммуникационных структур и эффективность использования идентификатора. Что касается назначения идентификаторов сообщений, существуют различные подходы для систем на базе CAN. Некоторые (CANopen) не применяют предопределение идентификаторов для общих структур системы, DeviceNet и SDS делают это. Устройства (nodes) в DeviceNet получают постоянный идентификатор. Максимальное количество узлов составляет 64. Каждый узел имеет некоторое множество идентификаторов в одной из 3-х групп в зависимости от приоритета сообщения (рис. 3). Рис. 3 Группа 1 сообщений обеспечивает до 16 высоко приоритетных сообщений на устройство, группа 3 сообщений - до 7 низко приоритетных сообщений на устройство. Группа 2 сообщений предназначена для поддержки устройств с ограниченными способностями фильтрования сообщений. Поэтому для данной группы идентификаторов было выбрано фильтрование согласно номеру узла (MAC-ID). Это означает, что приоритет сообщений этой группы прямо определяется номером узла. MAC-ID группы 2 может быть адресом источника или адресом назначения. DeviceNet использует также предопределенное Master/Slave множество связей для облегчения взаимодействия в Master/Slave системной конфигурации (рис. 4): Рис. 4 Поддерживаются следующие функции канала обмена I/O сообщениями и явными (Explicit) сообщениями между Master и Slave устройствами из предопределенного множества связей: явный канал сообщений изменение Master статуса канала (Master Poll Change of State/Cyclic channel) изменение Slave статуса канала (Slave I/O Change of State/Cyclic channel ) Bit Strobe канал Явный канал сообщений главным образом служит для конфигурации устройства. С изменением Master статуса канала Master может запрашивать данные ввода - вывода от устройства и посылать данные на Slave устройство. C изменением Slave статуса канала Slave устройство может передать данные Master-устройству. При помощи Bit Strobe команды Master-устройство может запросить данные у любого из 64 Slave устройств посредством одного сообщения. Oбмен данных процесса Передача данных процесса между устройствами распределенной системы - цель системы на основе CAN протокола. Поэтому передача прикладных данных (данные процесса, данные ввода вывода) системы должна быть выполнена наиболее эффективным путем. CANopen и DeviceNet обеспечивают весьма схожие механизмы связи для передачи данных обслуживания / конфигурации процесса. У CANopen передача данных процесса происходит посредством так называемых "Объектов Данных Процесса (PDOs)", у DeviceNet посредством " I/O-сообщений ". В таблице 1 приведены основные характеристики для протоколов CANopen, DeviceNet and SDS. Одним из главных различий является обеспечение протоколами DeviceNet and SDS фрагментации пакетов без подтверждения, что делает возможным передачу данных длиной более 8 байт. Также поддерживаются 3 различных протокола (рис. 4) по отношению к подтверждению приема данных ("Transport Classes") . Например, классы 2 и 3 могут быть использованы для эффективного опроса(polling) устройств. Для той цели master устройство имеет коммуникационные объекты (connection objects), связанные с каждой командой опроса как клиентский транспортный класс 2 или 3. Каждое slave устройство имеет коммуникационные объекты серверного транспортного класса 2 или 3 для получения команд опроса и передачи соответствующих ответных данных. Таблица 1. Exchange of Process Data in CANopen, DeviceNet and SDS (Multicasting) CANopen DeviceNet SDS (V2.0) Name of Communication Process Data Object Object I/O-Message Multicast Channel APDU Maximal Number of 512 Transmit PDOs 512 Communication Receive PDOs Objects per Device 27 I/O- Transmit Messages 1701 I/O Receive Messages per device 32 Embedded 32 Multicast Channels for each of Objects per device up to Maximal length of Data Field 8 bytes fragmented: Arbitrary length 8 bytes 6 bytes fragmented: 64 * 4 bytes Unfragmented: No overhead, three "Transport Classes" supported: Unfragmented: No overhead, Notify/Read "Stored-Event"protocol (CAL/CMS) Unacknowledged Unfragmented: 2 Unacknowledged, byte protocol Acknowledged by Server overhead, Connection Object, Unacknowledged Acknowledged by Application Protocol Fragmented: Unacknowledged fragmented protocol 1 byte protocol overhead per frame Message Production Triggering Modes Mapping of Application Objects On Request of local or remote application Cyclic/acyclic synchron Maximum number of mappable application objects/PDO dependent on data size of objects (1-bit objects: 64 application objects mappable) Definition of Application objects by means of "Mapping Parameter Record" (configurable) Dynamic mapping supported Cyclic Change-of-State Application specific Arbitrary number of Application objects mappable with fragmented protocol. Definition of Application objects by means of Assembly Object (several Assembly Objects possible) Dynamic mapping supported Fragmented: Acknowledged fragmented protocol with Acknowledge after reception of complete block 4 bytes protocol overhead per fragment Specified by object model Network Data Descriptor defines size, granularity and data type of I/O data of Embedded Object (V1.8) Рис. 5. Device Net Transport Classes Вызов (triggering) сообщений Все рассматриваемые протоколы поддерживают различные способы вызова сообщений. DeviceNet поддерживает циклический (Cyclic), по состоянию (Change-of-State) и программный (Application) способы вызова. Циклический вызов осуществляется по истечению времени таймера и начинается передача сообщения. Передача по состоянию начинается, когда статус определенного объекта изменяется. В этом случае сообщение также передается, когда истекает определенный интервал времени, в котором не осуществлялась передача сообщения. Программным способом сам объект решает, когда начать передачу сообщения. В этом случае сообщение также передается, когда истекает определенный интервал времени без передачи сообщения. Установление соответствий (mapping) для программных объектов Сетевые устройства обычно содержат более одного программного объекта и передача I/O сообщения более чем одному программному объекту внутри одного PDO является необходимым требованием. В DeviceNet объединение прикладных данных осуществляется посредством трансляционных (assembly) объектов, которые определяют формат передаваемых данных. Устройство может содержать более одного I/O трансляционного объекта и выбор подходящего (consumed/ produced_connection_path) может быть настраиваемой опцией устройства. Прямые (peer-to-peer) коммуникационные каналы Для конфигурации устройств посредством конфигурационных средств требуются специальные функции у устройств или программы, обеспечивающие многоцелевые каналы связи. Это не критичные по времени каналы связи. Передача данных в них осуществляется посредством протокола с подтверждениями и фрагментацией. Любой из протоколов высокого уровня, которые поддерживают некоторую конфигурацию устройств, должны обеспечивать этот вид связи. DeviceNet обеспечивает многоцелевые устройство ориентированные каналы и сервисы. Запись и чтение атрибутов объектов, контролирование объектов (reset, start, stop etc.), сохранение/восстановление атрибутов объектов осуществляется посредством явных (Explicit) сообщений. Намерение использовать данное сообщение определяется в поле данных CANа. На рис. 7 показан формат поля данных фрагментированного Explicit сообщения. В запросе сервиса указывается номер класса, номер экземпляра(instance), номер атрибута (в поле Service specific arguments). Рис. 6. DeviceNet Fragemented Explicit Message Data Field Format (Request/Response) Explicit(прямая) связь устанавливается посредством менеджера сообщений (Unconnected Message Manager (UCMM)). UCMM предоставляет два сервиса для открывания и закрывания подобных соединений. Каждое устройство, поддерживающее UCMM, резервирует у себя идентификаторы сообщений для запросов и ответов для UCMM. Для устройств 2-й группы, которые не поддерживают UCMM порт, master устройство сперва должно разместить Explicit соединение в предопределенном множестве соединений. Запрос к устройству группы 2 передается как Explicit запрос без предварительного установления соединения (Unconnected Explicit Request ) с зарезервированным идентификатором сообщения. Сравнительные характеристики протоколов CANopen, DeviceNet и SDS в отношении прямых (peer-to-peer) коммуникационных каналов представлены в таблице 2. Таблица 2. Main Characteristics of Peer-to-Peer Communication Channels CANopen DeviceNet SDS (V2.0) Name Service Data Channel Explicit Message Maximum number of channels 128 Client SDOs, 128 Server SDOs per device 27 Explicit Transmit Messages 4 channels per Embedded 1701 Explicit Receive Object. 32 Embedded messages per device Objects per Logical Device Protocol < 5 byte: Acknowledged < 7 byte: Acknowledged Peer-to-peer Channel < 6 bytes Acknowledged unfragmented 4 byte: Fragmented transmission (7 bytes per fragment) Each frame acknowledged Any length (CAL Multiplexed Domain protocol) Establishing of Connections Dynamic establishment by means of Unconnected Message Manager Group 2 Only devices: Allocation of Explicit Message from Predefined Connection Set Initiate, Abort Upload/Download Segment/Domain Connection Services and Arguments Index and Subindex of addressed unfragmented 6 byte: Fragmented transmission. (6 bytes per fragment) Each frame acknowledged Any length Dynamic establishing by means of Connection Manager Master/Slave Set of Connections Set unfragmented 5 byte Fragmented transmission (3 bytes per fragment) Acknowledgement of complete data block. Max. 255 byte Dynamic establishment by means of SDO Manager Default predefined connections Open/Close Creation, Configuration, Start, Stop, Reset etc. of Objects Open/Close Read, Write, Event, Action Object Directory Entry Object attribute access path, Service arguments Channel Number, Attribute/Action/Event Identifier Установление связей для обмена данных процесса Распределение идентификаторов для передаваемых сообщений и , соответственно, получаемых сообщений устанавливает коммуникационные пути в CAN сети. Установление взаимодействия возможно через использование предопределенного множества сообщений с уже размещенными идентификаторами сообщений или через переменное распределение идентификаторов для сообщений. В системе с предопределенным множеством сообщений "функции" и идентификаторы сообщений уже определены. DeviceNet также использует предопределенное множество сообщений для системы со структурой 1:n. Master устройство, предварительно разместив у себя множество связей со Slave устройствами, "знает" ID сообщений для передачи запроса и ID сообщений для получения ответа, который включает Slave MAC-ID в соответствии с предопределенным множеством связей. Также возможно не предопределять идентификаторы сообщений. Сетевое управление Так как в CAN-сети мы имеем дело с распределенными приложениями, должны отслеживаться определенные события(отказы различных частей приложения или отказ устройств). Поэтому главными задачами сетевого управления становятся обнаружение и вывод ошибок в сети и предоставление сервисов, позволяющих контролировать статусы устройств и вести координацию устройств. В зависимости от системных решений сетевое управление может вестись явным или косвенным путем. В DeviceNet каждое соединение контролируется. Поэтому каждая ожидающая сообщение конечная точка имеет "Inactivity/Watchdog" таймер, чтобы контролировать прибытие сообщения согласно предопределенному времени ожидания. Если время истекает, соединение выполняет действие "Timeout". На рис. 7 показана диаграмма изменения состояний у объекта I/O. Рис. 7. Device Net I/O Connection Object State Transition Diagram После получения вызова CREAT ( Explicit сообщение) соединение настраивается при помощи подходящей последовательности вызовов явных сообщений и после этого устанавливается. Перед получением доступа к сети каждое устройство должно совершить проверку на дубликат своего MAC-ID. Определенные алгоритмы выбора гарантируют уникальность MAC-ID. Контроль может осуществляться также посредством Heartbeat сообщения, которое может посылаться устройствам посредством UCMM в форме сообщения. В поле данных этого сообщения передается состояние устройства. Heartbeat сообщение вызывается объектом Idendity. Профайлы устройств Для открытых автоматических систем помимо обеспечения связи от входящих в их состав устройств требуется также обеспечение возможности взаимодействия и взаимозаменяемости. Поэтому протоколы высокого уровня (такие как DeviceNet) описывают функциональные возможности устройств в виде модели устройства ("Device Model"). Помимо описания функциональности устройств модель устройства должна также содержать ряд важных параметров (статус, диагностическую информацию, коммуникационные возможности, конфигурационные параметры и т.д.). На рис. 8 показана модель устройства DeviceNet. Рис. 8. DeviceNet Object Model DeviceNet профайл должен содержать следующую информацию: модель объекта для устройства формат данных I/O для устройства конфигурационные данные и внешние интерфейсы для этих данных В таблице 3 показаны главные функции объектов в DeviceNet. Таблица 3. Objects of a DeviceNet node Object Function Connection Instantiates connections (I/O or Explicit Messaging) DeviceNet Maintains configuration and status of physical attachments to DeviceNet. Message Router Routes received Explicit Messages to appropriate target objects Assembly Groups attributes of multiple objects into a single block of data, which can be sent and received over a single connection Parameter Provides a standard means for device configuration and attribute access Identity Provides general information about the identity of a device Application Supplies application-specific behaviour and data Заключение Протокол CAN применяется в real-time системах для решения различных задач. В настоящий момент развиваются несколько видов CAN протоколов высокого уровня, таких как CAL ,OSEK/VDX, SAE J1939, CANopen, DeviceNet, SDS ,CAN-Kingdom , в основе которых лежит канальный протокол CAN2.0 (Bosch) , и на основе этих протоколов можно решать проблемы, возникающие в real-time системах, которые невозможно разрешить при помощи других известных протоколов, скажем, TCP/IP. Шины для бортовых автомобильных систем Эдуард Пройдаков Читатели нашего еженедельника в большинстве своем хорошо знакомы с локальными сетями (ЛС, ЛВС). Однако внедрение микропроцессоров и микропроцессорных контроллеров в самое различное оборудование потребовало наличия сетей, объединяющих многообразные электронные управляющие устройства (ECU). Рассмотрим в качестве примера такой сети шину (и соответствующий ей протокол) CAN (Controller Area Network). Она была предложена Робертом Бошем (Robert Bosch) в 80-х годах для автомобильной промышленности, затем стандартизована ISO (ISO 11898) и SAE (Society of Automotive Engineers). (Описание стандартов и большой объем документации Рис. 1. Топология шины CAN по CAN можно найти на сайте http://www.can-cia.de/) Сегодня большинство европейских автомобильных гигантов (например, Audi, BMW, Renault, Saab, Volvo, Volkswagen) используют CAN в системах управления двигателем, безопасности и обеспечения комфорта. В Европе в ближайшие годы будет введен единый интерфейс для систем компьютерной диагностики автомобиля. Это решение также разрабатывается на базе CAN, так что со временем в каждом автомобиле будет по крайней мере один узел этой сети. Однако сети CAN используются и в таких сложных установках, как современные оптические телескопы с большим диаметром зеркала. Так как такие зеркала невозможно сделать монолитными, их сейчас делают составными, а управление отдельными зеркальцами (их может быть больше сотни) осуществляется сетью микроконтроллеров. Другие сферы применения — корабельные бортовые сети, управление системами кондиционирования воздуха, лифтами, медицинскими и промышленными установками. В мире уже установлено более 100 млн. узлов сетей CAN, ежегодный прирост составляет более 50%. CAN представляет собой асинхронную последовательную шину, использующую в качестве среды передачи витую пару проводов (см. рисунок 1). При скорости передачи 1 Мбит/с длина шины может достигать 30 м. При меньших скоростях ее можно увеличить до километра. Если требуется большая длина, то ставятся мосты или повторители. Теоретически число подсоединяемых к шине устройств не ограничено, практически — до 64-х. Шина мультимастерная, т. е. сразу несколько устройств могут управлять ею. Если базироваться на семиуровневой модели 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. Характеристики шины Controller Area Network (CAN) Топология: последовательная шина, с обоих концов линии стоят заглушки (120 Ом) Обнаружение ошибок: 15битовый CRC-код Локализация ошибок: различают ситуации с постоянной ошибкой и временной; устройства с постоянной ошибкой отключаются Текущая версия: CAN 2.0B Скорость передачи: 1 Мбит/с Длина шины: до 30 м Количество устройств на шине: ~ 64 (теоретически неограничено) Поддержкой технологии CAN занимается некоммерческая международная группа CiA (CAN in Automation, http://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 (http://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). Дважды в год проводятся форумы (см. http://www.ttpforum.org/), посвященные TTP. Четвертый TTPforum прошел 8 марта в Детройте в рамках выставки и конференции по автомобильной электронике SAE 2000. В нем приняло участие около 200 человек. Если самая крупная из известных мне компьютерных конференций (Oracle) собирала 30 тыс. участников, то в SAE приняли участие 50 тыс. человек и 1200 экспонентов. Безусловно, этот текст, написанный под впечатлением увиденного на Нюрнбергской выставке “Embedded Systems’2000”, лишь введение в интереснейшую тему шин для бортовых систем. Редакция приглашает специалистов осветить эту тему, как и в целом тему автомобильной электроники.С автором можно связаться по адресу: [email protected].