Режим стандартного контроллера CAN (SCC)

Лабораторная работа № 6

Исследование встроенного CAN-интерфейса DSP TMS320F2812

Цель работы: изучить характеристики встроенного CAN-интерфейса DSP TMS320F2812.

 

Теоретические сведения

Особенности CAN-интерфейса DSP TMS320F2812

 

Модуль eCAN имеет следующие особенности:

1) Протокол версии 2.0В, полностью совместимый с CAN;

2) Поддержка скоростей передачи данных до 1 Мбит/с;

3) 32 почтовых ящика, каждый со следующими свойствами:

- конфигурация на прием или передачу;

- стандартный или расширенный идентификатор;

- фильтр с программируемой маской при приеме;

- поддержка кадров удаленного запроса данных;

- поддержка 0-8 байтов данных;

- возможность установки 32-разрядной временной метки на принятом и переданном сообщениях;

- защита от приема нового сообщения;

- программирование приоритета передающего сообщения.

- использование программируемой системы прерываний с двумя уровнями прерываний;

- программируемое прерывание по окончании времени передачи или приема.

4) Режим пониженного энергопотребления;

5) Программируемый выход из режима пониженного энергопотребления при появлении активности на шине;

6) Автоматический ответ на удаленный запрос данных;

7) Автоматический повтор передачи при потере арбитража или в случае возникновения ошибки;

8) 32-разрядный счетчик временной метки, синхронизированный на определенное сообщение;

9) Режим самопроверки:

- работа в режиме петли; прием своего собственного сообщения, что устраняет потребность в другом узле для определения бита признака.

 

Рисунок 1 – Блок-схема CAN-интерфейса в ЦСП TMS320F2812

 

 

Совместимость eCAN с другими CAN-модулями

 

eCAN-модуль идентичен ”Высокопроизводительному CAN-контроллеру (НЕСС)”, используемому в микроконтроллерах серии TMS470 фирмы Texas Instruments, с некоторыми незначительными изменениями. Также модуль eCAN представлен более широко (увеличенное число Mailbox с индивидуальными приемными масками, временные метки и т.д.) в сравнении с CAN-модулем ЦСП семейства 240х. Поэтому программы, написанные для CAN-модуля 240х, не могут применяться к eCAN 320х. Однако eCAN обладает той же самой структурой размещения разрядов регистров и функциональными возможностями, как и CAN серии 240х (для регистров, существующих в обоих устройствах), т.е. большинство регистров и битов выполняют идентичные функции на двух платформах. Это упрощает перемещение программ, написанных на языке С++.

 

Модуль и сеть CAN

 

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

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

Протоколы CAN

 

CAN поддерживает четыре типа различных типов кадров для передачи:

- кадры, передающие данные от передающего узла к принимающему;

- удаленные кадры, переданные узлом с целью запроса кадра данных с таким же идентификатором;

- кадры паузы, обеспечивающие дополнительную задержку между предшествующим и последующим кадром данных или удаленными кадрами;

- кадры об ошибках, передающиеся любым узлом на шине, обнаружившим ошибку.

Кроме того, в версии CAN 2.0В определены два вида формата сообщений, которые отличаются длиной полей идентификатора: стандартный кадр с 11-разрядным идентификатором и расширенный кадр с 29-разрядным идентификатором.

Сообщения CAN со стандартными кадрами данных содержат от 44 до 108 битов, а сообщения CAN с расширенными кадрами данных содержат от 64 до 128 битов. Кроме того, могут быть добавлены до 23 битов данных в стандартном кадре и до 28 данных в расширенном кадре данных, в зависимости от кодировки потока данных. Полная максимальная длина сообщения – 131 бит со стандартным кадром и 156 бит с расширенным кадром.

Поля битов, находящиеся в стандартных/расширенных кадрах данных, расположенные как показано на рисунке 2, включают в себя следующее:

- бит начала кадра SOF;

- поле арбитража, содержащее идентификатор и тип посылаемого сообщения (11-разрядный идентификатор + бит RTR стандартного формата кадра или 29-разрядный идентификатор + бит SRR + бит IDE + бит RTR расширенного формата кадра);

- управляющее поле, содержащее размер данных (6 бит);

- данные (до 8 байтов);

- поле циклического контроля избыточности (CRC) – 16 бит;

- 2 бита подтверждения;

- 7 битов конца кадра.

 

Рисунок 2 – Структура кадра сообщения стандартного формата

 

В TMS320x28xx CAN-контроллеры предоставляют центральному процессору полные функциональные возможности, с помощью CAN-протоколов версии 2.0В. CAN-контроллер минимизирует загрузку CPU при передаче и увеличивает возможности CAN.

Архитектура CAN-модуля, показанная на рисунке 3, состоит из ядра протоколов (CPK) и контроллера сообщений.

CPK выполняет 2 функции. Первая – декодирование всех сообщений, появляющихся на шине согласно протоколам CAN, и передача этих сообщений в буфер приема. Вторая функция – передача сообщений на шину, согласно протоколу CAN.

Контроллер сообщений решает, должно ли принятое в CPK сообщение быть сохранено для использования CPU, или нет. При инициализации CPU передает контроллеру сообщений идентификаторы всех сообщений, которые будут использоваться. Контроллер сообщений также отвечает за передачу следующего сообщения из CPK согласно приоритету сообщений.

 

Рисунок 3 – Архитектура модуля eCAN

 

 

Контроллеры еCAN

 

eCAN-модуль состоит из:

1) ядра протоколов CAN;

2) контроллера сообщений, содержащего:

- модуль управления памятью, включая интерфейс CPU, блок управления приемом (фильтрация) и модуль управления таймером;

- ОЗУ Mailbox, позволяющая хранить до 32 сообщений;

- регистры управления и состояния.

После приема сообщения CPK определяет блок управления приемом в контроллере сообщений, который решает, сохранять принятое сообщение в одну из 32 ячеек ОЗУ Mailbox или нет. Блок управления анализирует идентификатор и сравнивает с масками Mailbox для определения номера Mailbox, в котором будет сохранено сообщение. При совпадении маски и идентификатора принятое сообщение сохраняется в соответствующий Mailbox. Если блок управления приемом не обнаружил совпадения маски и идентификатора, то сообщение игнорируется.

Сообщение состоит из 11- или 29-разрядного идентификатора, поля управления и поля данных до 8 байт.

При необходимости передачи сообщения контроллер сообщений передает сообщение в буфер передачи CPK, который осуществит передачу в следующем неактивном состоянии шины. Когда необходимо передать несколько сообщений, контроллер сообщений сначала передает в буфер передачи CPK сообщение с самым высоким приоритетом, а после его отправки – следующее по убыванию приоритета сообщение. Если два Mailbox имеют одинаковые приоритеты, то сначала передается сообщение из Mailbox с более высоким номером.

Модуль управления таймером включает в себя счетчик временной метки и привязывает эту метку ко всем полученным и переданным сообщениям. Прерывание происходит, когда сообщение не принято или передано в течение некоторого ограниченного времени. Особенность ограничения времени на прием/передачу доступна только в модуле CAN.

Для инициализации переданных данных бит запроса передачи должен быть установлен в соответствующем регистре управления. Тогда процедура передачи и обработки сообщений выполняется без привлечения CPU. Если Mailbox ориентирован на прием, то CPU легко читает его регистры, используя команды разрешения чтения. Mailbox формирует прерывание CPU после каждого успешного приема/передачи сообщения.

 

Режим стандартного контроллера CAN (SCC)

 

Режим SCC – это упрощенный режим функциональных возможностей еCAN. В этом режиме доступны только 16 Mailbox (от 0 до 15). Особенность ограничения времени недоступна и число доступа к маскам для приема сообщений сокращено. Этот режим устанавливается по умолчанию. Переход из режима SCC в режим полного еCAN осуществляется с помощью бита SCB (CANMC.13).

 

Карта памяти

 

еCAN-модуль имеет два банка адресов, отражаемых в памяти TMS320x28xx. Первый банк используется для обращения к регистрам управления, регистрам состояния, приемным маскам, временной метке и ограничению времени исследования сообщения. Доступ к регистрам управления и состояния ограничен 32-разрядной шиной. К приемным маскам, регистрам временной метки и регистрам ограничения времени можно обратиться 8-, 16- и 32-разрядными шинами. Каждый из этих двух банков памяти, которые показаны на рисунке 4, использует 512 байтов адресного пространства. Аналогично выглядит карта памяти eCAN-В, изображенная на рисунке 5.

 

Рисунок 4 – Карта памяти eCAN-A


Рисунок 5 – Карта памяти eCAN-В

 

Хранение сообщения осуществляется оперативной памятью, к которой может обратиться CAN-контроллер или CPU. CPU при помощи CAN-контроллера может превратить различные Mailbox в ОЗУ или в дополнительную память. Дополнительная память может использоваться для хранения различных элементов, необходимых для фильтрации принятых сообщений и обработки прерываний.

Модуль Mailbox еCAN представляет собой 32 почтовых ящика, в каждом из которых содержится до 8 байт данных, до 29 битов идентификатора и несколько служебных битов сообщения. Каждый Mailbox может быть ориентирован как на прием, так и на передачу сообщения. В еCAN каждый Mailbox имеет свою индивидуальную маску.