Программно-технический комплекс Учебное пособие Новочеркасск юргту (нпи) 2010. Удк 519. 23 (075. 8) Ббк 22. 17я73

Вид материалаУчебное пособие

Содержание


4.16. Сетевой контроллер реального времени
Прерывание по предупреждению об уровне ошибок
Пассивное прерывание по ошибке
Прерывание по отключению шины
Toshiba решила эту проблему введением в свой модуль TCAN
Подобный материал:
1   ...   44   45   46   47   48   49   50   51   52

4.16. Сетевой контроллер реального времени


В последнее время в автомобильной электронике всё чаще наблюдается отказ от применения оригинальных сетей и переход к использованию CAN-микроконтроллеров. Чтобы удовлетворить спрос на микроконтроллеры с полным набором встроенных CAN-функций версии 2.0B, компания Toshiba интегрировала собственный модуль контроллера TCAN в новые CISC 16/32-бит микроконтроллеры и 16/32-бит высокопроизводительные RISC-процессоры.

Модуль TCAN. Основные характеристики модуля TCAN делают возможным его использование во всех автомобильных сетях, начиная от низкоскоростных приложений до высокоскоростных требований трансмиссии. Скорость передачи данных до 1 Мбит/с и полная внутренняя синхронизация позволяют использовать модуль совместно с быстродействующими процессорами, работающими на высоких тактовых частотах, а версия со встроенным предделителем позволяет получить пониженную тактовую частоту из более высокой частоты синхронизации процессоров. Широкие функциональные возможности версии CAN2.0B обеспечивают активное взаимодействие (приём, передача и управление) при трафике с 29-бит идентификатором (расширенный кадр). При индивидуальном программировании каждого отдельного регистра модуль также может поддерживать режим приёма и передачи с 11-бит идентификатором (стандартный кадр).

Полный CAN-контроллер с набором параметров Basic-CAN. Модуль TCAN производства компании Toshiba представляет собой полный CAN-контроллер, включая возможности Basic-CAN. Модуль содержит собственное регистровое ОЗУ, которое имеет 15 регистров приёма/передачи (майлбоксов), а также один регистр только приёма. Каждый из регистров может хранить полные 8 байт данных, расширенный или стандартный идентификатор и управляющую информацию, например, 16-бит метки времени. Сообщения могут записываться автоматически без взаимодействия центрального процессора с системой передачи ответных кадров, причём повторение прерванных сообщений также происходит автоматически.

Параметры битовой синхронизации TCAN. Для облегчения программирования битовой синхронизации, параметры TSEG1 и TSEG2 были реализованы в регистре битовой конфигурации, что обеспечило совместимость модуля с контроллером Intel 82527. Это гарантирует непосредственное использование параметров, оптимизированных с учётом времени задержки и топологии сети.

Счетчик меток времени. Для подтверждения приёма/передачи сообщения реализован 16-бит таймер, содержимое которого записывается в регистр меток времени соответствующего майлбокса в момент, когда происходит передача сообщения или запись принятого сообщения. Счётчик меток времени включает 4-битовый предделитель частоты, благодаря чему он синхронизируется тактовой последовательностью шины CAN и может быть считан или обновлён независимо от центрального процессора. Введение прерывания по переполнению счётчика меток времени позволяет реализовать его обработку программными методами.

Обработка ошибок. Для улучшения обработки ошибок используют три варианта прерывания.
  1. Прерывание по предупреждению об уровне ошибок. Если содержимое одного из двух счётчиков ошибок превысит 96, генерируется прерывание по предупреждению об уровне ошибок. Это говорит о серьёзных нарушениях в шине и требует дополнительных мер безопасности под управлением программного обеспечения.
  2. Пассивное прерывание по ошибке. Если содержимое передающего или принимающего счётчика ошибок достигнет или превысит значение 128, модуль TCAN из активного состояния по ошибке перейдёт в пассивное. Одновременно с этим передаётся последний активный флаг ошибки (до того, как начнут передаваться пассивные флаги ошибки) и генерируется пассивное прерывание по ошибке.
  3. Прерывание по отключению шины. Когда содержимое передающего счётчика ошибок достигает 256, модуль переходит в состояние bus off, и генерируется прерывание по отключению шины. По соображениям безопасности после прохождения данного прерывания модуль CAN не принимает активного участия в трафике шины.

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

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

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

Если для передачи сообщения сконфигурированы несколько буферов сообщений, полнофункциональный контроллер CAN должен принять решение, какое сообщение передавать первым из внутреннего регистрового ОЗУ на передающий слот канального уровня. Контроллер канального уровня пытается передать сообщение в шину CAN. Если в этот момент по шине CAN друг за другом следуют несколько сообщений от различных блоков, контроллер канального уровня начинает процедуру разрешения коллизий (арбитража) и задерживает передачу, пока какой-либо другой блок показывает более высокий приоритет.

Эта проблема, известная как проблема внутренней инверсии приоритета, может стать главным неудобством в СРВ, и, в то время как средняя загрузка шины будет значительно ниже 100%, появится большая вероятность конфликта сообщений от различных блоков, соединённых с шиной CAN, т.е. срочное сообщение с высоким приоритетом может появиться в шине CAN со значительной временной задержкой.

Компания Toshiba решила эту проблему введением в свой модуль TCAN дополнительного механизма ре-арбитража. Когда сообщение записывается в регистр и маркируется на передачу, его идентификаторы сравниваются с таковыми у сообщений, уже находящихся в передающем слоте канального уровня. Если новое сообщение имеет более высокий приоритет, то сообщение с более низким приоритетом будет удалено из контроллера канального уровня и заменено на новое. Затем следующий слот арбитража на шине CAN разрешает передачу сообщения с высоким приоритетом.