Модуль ECAN для dsPIC. Типичная сеть ECAN. 16 приемных фильтров для фильтрования сообщения

Страницы работы

Содержание работы

МОДУЛЬ ECAN для dsPIC

1. ВВЕДЕНИЕ

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

Семейство микроконтроллеров dsPIC33F может иметь до двух модуле ECAN в своём составе. Рисунок 1 показывает типичную топологию CAN.

Рисунок 1. Типичная сеть ECAN

Модуль ECAN поддерживает следующие особенности:

Стандарты

• Полный CAN 2.0B

• Скорость обмена данными до 1 Mbps

Прием Сообщения

• 32 приёмных буфера - все из них могут использоваться для приема

• 16 приемных фильтров для фильтрования сообщения

• 3 приемных маски фильтра для фильтрования сообщения

• Автоматически реагирует на Remote Transmit Request

• До 32 сообщений может вместиться в (FIFO) буфер

• Поддерживает адресацию DeviceNetTM

• DMA режим для приёма сообщения

Передача Сообщения

• 8 буферов сообщений для передачи

• Определенный пользователем уровень приоритета для буферов сообщений для передачи

• DMA режим для передачи сообщения

Другое

• Loopback, приём всех сообщения, и приём сообщения для самопроверки, диагностика системы и мониторинг шины

• Малая потребляемая мощность при работе модуля ECAN

Рисунок 2. Иллюстрирует общую структуры модуля ECAN и его взаимодействие с управлением DMA и RAM DMA.

Рисунок 2. ECAN со встроенной DMA

1.1 Модуль ECAN

Модуль ECAN состоит из блок контроля CAN протокола (CAN Protocol Engine), фильтры принятых сообщений, и отдельные приёмный и передающий интерфейс DMA. Блок контроля CAN протокола передает и получает сообщения в/из шины CAN (согласно протоколу шины CAN 2.0B). Приёмные фильтры, которые настраиваются пользователем используются модулем, чтобы исследовать полученное сообщение, и затем определить, нужно ли данное сообщение сохранить в буфере DMA или сообщение нужно удалить.

Для полученных сообщений, приёмный интерфейс DMA производит прерывание приёмника, чтобы начать цикл DMA. Канал приёмника DMA читает данные из регистра CiRXD и записывает эти сообщения в буфер.

Для сообщений которые необходимо передать, интерфейс передатчика DMA производит прерывание для того чтобы начать цикл DMA для передачи сообщения. Канал DMA передатчика читает из буфера сообщений и пишет их в регистр CiTXD для передачи сообщения.

1.2 Буферы сообщений

Модуль ECAN поддерживает до 32 буферов сообщений для того, чтобы хранить данные, переданные или полученные на шине CAN. Эти буфера расположены в RAM DMAа. Буфера сообщения 0-7 могут настраиваться или для передачи сообщения или для приёма. Буфера сообщений 8-31 – предназначены только для буфера приёмника и не могут использоваться для передачи сообщений.

1.3 Диспетчер DMA

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

Каждый канал имеет регистр DMA Request (DMAxREQ), который используется пользовательским приложением, чтобы инициализировать передачу сообщения на основе канала DMA.

2. ФОРМАТ CAN СООБЩЕНИЯ

Протокол шины CAN использует асинхронную связь. Информация передаётся с передатчика на приёмник в фреймах данных, которые составлены из байтовых полей, которые определяют содержание фрейма данных как показана на рисунке 3.

Каждый фрейм начинается с бита Start-of-Frame (SOF) и заканчивается полем End-of-Frame (EOF). Start-of-Frame сопровождается поляем Arbitration и Control, которые идентифицируют тип сообщения, формат, длину и приоритет. Эта информация позволяет каждому узлу на шине CAN соответственно отвечать на  сообщение. Поле Data передает сообщение длина которого может изменяться в приделах от 0 до 8 байт. Защиту от ошибки передачи выполняет Cyclic Redundancy Check (CRC)  и поля подтверждения (ACK).

Рисунок 3. Фрейм сообщения CAN шины.

Протокол шины CAN поддерживает четыре типа фрейма:

DataFrame (фрейм данных) – переносит данные с передатчика на приёмник

RemoteFrame (удалённый запрос данных)  - передаётся узлом на шине, чтобы запросить передачу фрейма данных с тем же самым идентификатором от другого узла

ErrorFrame (фрейм ошибки) –передаётся любым узлом, когда он обнаруживает ошибку

OverloadFrame (фрейм перезагрузки) - обеспечивает дополнительную задержку между последовательными Данными или remote frame.

InterframeSpace (межфреймовая пауза) - обеспечивает разделение между двумя фреймами

Спецификация CAN 2.0B определяет два дополнительных формата данных:

StandardDataFrame (Стандартные фрейм данных) - предназначен для стандартных сообщений, которые используют 11-битный идентификатор

ExtendedDataFrame (Расширенный фрейм данных) – предназначен для расширенных сообщения, которые используют 29-ти битный идентификатор.

Похожие материалы

Информация о работе