Роланд Фрей, Роланд Герман
Сетевой контроллер реального времени
В последнее время в автомобильной электронике всё чаще наблюдается отказ от применения оригинальных сетей и переход к использованию CAN-микроконтроллеров. Чтобы удовлетворить спрос на микроконтроллеры с полным набором встроенных CAN-функций версии 2.0B, компания Toshiba интегрировала собственный модуль контроллера TCAN в новые CISC 16/32-бит микроконтроллеры и 16/32-бит высокопроизводительные RISC-процессоры.
Модуль TCAN
Основные характеристики модуля TCAN делают возможным его использование во всех автомобильных сетях, начиная от низкоскоростных приложений до высокоскоростных требований трансмиссии. Скорость передачи данных до 1 Мбит/с и полная внутренняя синхронизация позволяют использовать модуль совместно с быстродействующими процессорами, работающими на высоких тактовых частотах, а версия со встроенным предделителем позволяет получить пониженную тактовую частоту из более высокой частоты синхронизации процессоров. Широкие функциональные возможности версии CAN2.0B обеспечивают активное взаимодействие (приём, передача и управление) при трафике с 29-бит идентификатором (расширенный кадр). При индивидуальном программировании каждого отдельного регистра модуль также может поддерживать режим приёма и передачи с 11-бит идентификатором (стандартный кадр).
Полный CAN-контроллер с набором параметров Basic-CAN
Модуль TCAN производства компании Toshiba, изображённый на рис. 1, представляет собой полный CAN-контроллер, включая возможности Basic-CAN. Модуль содержит собственное регистровое ОЗУ, которое имеет 15 регистров приёма/передачи (майлбоксов), а также один регистр только приёма. Каждый из регистров может хранить полные 8 байт данных, расширенный или стандартный идентификатор и управляющую информацию, например, 16-бит метки времени. Сообщения могут записываться автоматически без взаимодействия центрального процессора с системой передачи ответных кадров, причём повторение прерванных сообщений также происходит автоматически.
Рис. 1
Параметры битовой синхронизации TCAN
Для облегчения программирования битовой синхронизации, параметры TSEG1 и TSEG2 были реализованы в регистре битовой конфигурации, что обеспечило совместимость модуля с контроллером Intel 82527. Это гарантирует непосредственное использование параметров, оптимизированных с учётом времени задержки и топологии сети.
Рис. 2
Регулируемые параметры битовой синхронизации показаны на рис. 2. Длительность отрезка времени TSCL определяется по формуле: TSCL = BRP + 1/fOSC. Сегмент синхронизации SYNCSEG всегда имеет длину одного промежутка TSCL. При этом скорость передачи определяется из выражения:
Baud rate = fOSC x 1/[(BRP+1)x((TSEC1+1) + (TSEG2+1)+1)].
Счетчик меток времени
Для подтверждения приёма/передачи сообщения реализован 16-бит таймер, содержимое которого записывается в регистр меток времени соответствующего майлбокса в момент, когда происходит передача сообщения или запись принятого сообщения. Счётчик меток времени включает 4-бит предделитель частоты, благодаря чему он синхронизируется тактовой последовательностью шины CAN и может быть считан или обновлён независимо от центрального процессора. Введение прерывания по переполнению счётчика меток времени позволяет реализовать его обработку программными методами.
Обработка ошибок
Для улучшения обработки ошибок были реализованы три варианта прерывания (рис. 3).
Рис. 3
- Прерывание по предупреждению об уровне ошибок.
Если содержимое одного из двух счётчиков ошибок достигнет или превысит 96, генерируется прерывание по предупреждению об уровне ошибок. Такое значение счётчиков говорит о серьёзных нарушениях в шине и требует введения дополнительных мер безопасности под управлением программного обеспечения.
- Пассивное прерывание по ошибке.
Если содержимое передающего или принимающего счётчика ошибок достигнет или превысит значение 128, модуль TCAN из активного состояния по ошибке перейдёт в пассивное. Одновременно с этим передаётся по-следний активный флаг ошибки (до того, как начнут передаваться пассивные флаги ошибки) и генерируется пассивное прерывание по ошибке.
- Прерывание по отключению шины.
Когда содержимое передающего счётчика ошибок достигает 256, модуль переходит в состояние bus off, и генерируется прерывание по отключению шины. По соображениям безопасности после прохождения данного прерывания модуль CAN не принимает активного участия в трафике шины.
Дополнительные функции режима тестирования
Для обеспечения расширенного самотестирования в модуль TCAN включён механизм локальной обратной связи. При активизации этого механизма, битовый поток с выхода передатчика возвращается в приёмник. Входной сигнал CAN-RX игнорируется, а выходной сигнал CAN-TX входит в рецессивное состояние. После генерации сигнала подтверждения переданные и полученные сообщения записываются в регистр с соответствующим идентификатором.
В дополнение к самотестированию счётчика ошибок, существует специальный защищённый тестовый режим, обеспечивающий доступ для тестовой записи в счётчик ошибок. Это позволяет устанавливать в счётчиках ошибок значения, например, нескольких уровней предупреждений об ошибках или порога ошибок, и проверять правильность генерации прерываний в нестандартных условиях. В соответствии с техническими требованиями CAN, такой доступ для записи может быть прекращён в любой момент времени.
Механизм внутреннего ре-арбитража
Другой специфической функцией критичных ко времени автомобильных приложений является наличие механизма внутреннего ре-арбитража. Выгоды от его применения можно оценить на примере решения следующей проблемы, иногда связываемой с реализацией контроллеров CAN.
Если для передачи сообщения одновременно были сконфигурированы несколько буферов сообщений, полнофункциональный контроллер CAN должен принять ре-шение, какое сообщение передавать первым из внутреннего регистрового ОЗУ на передающий слот канального уровня. Контроллер канального уровня при этом делает попытку передать сообщение в шину CAN. Если в этот момент времени по шине CAN плотно друг за другом следуют несколько сообщений от различных блоков, контроллер канального уровня начинает процедуру разрешения коллизий (арбитража) и задерживает передачу, пока какой-либо другой блок показывает более высокий приоритет.
Разумеется, всегда есть вероятность, что несколько сообщений от других блоков имеют более высокий приоритет, чем сообщение в передающем слоте, а значит, потребуется некоторое время до того, как появится сообщение с низким приоритетом. Тем не менее, в течение этого периода ожидания, микроконтроллер может попытаться передать более срочное (с более высоким приоритетом) сообщение, используя другой буферный регистр сообщений. Поскольку большинство контроллеров CAN передаёт сообщения в порядке расположения регистров (независимо от приоритета сообщения), более срочное сообщение не будет передано контроллеру канального уровня раньше сообщения с низким приоритетом.
Эта проблема, известная как проблема внутренней инверсии приоритета, может стать главным неудобством в системах, работающих в реальном масштабе времени, и, в то время как средняя загрузка шины будет значительно ниже 100%, появится большая вероятность конфликта сообщений от различных блоков, соединённых с шиной CAN. А значит, срочное сообщение с высоким приоритетом может появиться в шине CAN со значительной временной задержкой.
Компания Toshiba решила эту проблему введением в свой модуль TCAN дополнительного механизма ре-арбитража. Когда сообщение записывается в регистр и маркируется на передачу, его идентификаторы сравниваются с таковыми у сообщений, уже находящихся в передающем слоте канального уровня. Если новое сообщение имеет более высокий приоритет, то сообщение с более низким приоритетом будет удалено из контроллера канального уровня и заменено на новое. Затем следующий слот арбитража на шине CAN разрешает передачу сообщения с высоким приоритетом.
Выбор между стандартным методом передачи в порядке следования регистров или расширенным механизмом передачи в реальном масштабе времени возможен через программное обеспечение. Для идентификации каждого буфера сообщений, выполняющего передачу или ожидающего передачу в слот канального уровня, в глобальный регистр состояния модуля TCAN введены дополнительные информационные биты.
Интеграция и совместимость
Модуль TCAN включен в некоторые новые CAN-микроконтроллеры и процессоры производства компании Toshiba. Сохранение старого программного интерфейса помогает минимизировать время и стоимость проектирования, поскольку разработчики могут использовать одни и те же драйверы для связи по сети CAN разнообразных устройств и приложений. Разработка автомобильных приложений ещё больше упрощается за счёт использования библиотеки исходных кодов стандартных функций CAN компании Toshiba.
Тестовый комплект и оборудование
Тестовый комплект систем CAN TOPAS900 представляет собой мощную платформу для разработки и отладки, имеющую две платы, оборудованные 16-бит микроконтроллерами TMP95PS54F производства компании Toshiba и предназначенные для быстрой верификации проекта. Плата CAN-I работает как отладчик и имеет статическое ОЗУ ёмкостью 256 кбайт и электрически стираемое флэш-ПЗУ ёмкостью 512 кбайт. Плата CAN-II имеет флэш-память и область отладки приложения со светодиодами, переключателями и т. п. Монитор ПЗУ записан в однократно программируемую память микроконтроллера TMP95PS54F и обеспечивает поддержку отладочных функций. Программы могут быть загружены из управляющего компьютера в любую из плат, связь между платами при этом осуществляется по шине CAN.
CIE, май 1999 г.
Перевод Ю. Потапова
туроператор греция
|