CANNY 7.2 Alfa. Драйвер асинхронной передачи в CAN
Общее описание
Драйвер асинхронной передачи в CAN позволяет, независимо от функциональной диаграммы, осуществлять отправку CAN-сообщений, с заранее определенными параметрами и установленной, с разрешением 1мс, периодичностью отправки. Драйвер может быть использован для обоих CAN-интерфейсов (CAN0 и CAN1) контроллера. Работа в асинхронном режиме, в случаях когда это критически важно, позволяет добиваться более стабильной периодичности отправки сообщений, чем при отправке из функциональной диаграммы.
Пользователю доступны 32 буфера для асинхронной передачи сообщений в CAN с индивидуальными настройками номера CAN-интерфейса, идентификатора, данных и периода отправки сообщений.
Для активации драйвера асинхронной передачи нужного интерфейса CAN необходимо:
- задать конфигурацию интерфейса CANx;
- включить драйвер асинхронной передачи CANx, используя соответствующий регистр.
Драйвер асинхронной передачи в CAN может использоваться совместно с обычным драйвером CAN.
Регистры драйвера
Ниже приведено описание допустимых значений регистров управления работой драйвера асинхронной передачи CAN.
Общие регистры конфигурации драйвера асинхронной передачи CAN.
Регистр | Ожидаемые значения |
---|---|
Регистр включения драйвера асинхронной передачи CAN0 Регистр включения драйвера асинхронной передачи CAN1 |
≥ 1 = для указанного интерфейса CAN драйвер включен; 0 = для указанного интерфейса CAN драйвер отключен. |
Регистр обновления данных драйвера асинхронной передачи CAN0 Регистр обновления данных драйвера асинхронной передачи CAN1 |
≥ 1 = применить новые настройки драйвера асинхронной передачи CAN (см.примечание) 0 = не обновлять настройки драйвера асинхронной передачи CAN |
Примечание: Новые настройки драйвера асинхронной передачи CAN будут применены начиная с цикла диаграммы, следующего за циклом, в котором в Регистр обновления данных конфигурации драйвера асинхронной передачи CANx было записано ненулевое значение.
Регистры буферов асинхронной передачи CAN используются для размещения в соответствующем буфере драйвера данных, подлежащих отправке в асинхронном режиме.
Регистр | Ожидаемые значения |
---|---|
Регистр установки номера CAN-интерфейса буфера X драйвера асинхронной передачи CAN | 0 = использовать соответствующий буфер для отправки сообщений в интерфейс CAN0; 1 = использовать соответствующий буфер для отправки сообщений в интерфейс CAN1. |
Регистр периода асинхронной передачи буфера X CAN, мс | 1…65535 = задать период отправки сообщений указанного буфера асинхронной передачи CAN в миллисекундах; 0 = не отправлять сообщения указанного буфера в соответствующий интерфейс CAN. |
Регистр сообщения асинхронной передачи буфера X CAN IDL | 0…0xFFFF = значение младшей части идентификатора CAN-сообщения указанного буфера асинхронной передачи CAN. |
Регистр сообщения асинхронной передачи буфера X CAN IDH | 0…0x1FFF = значение старшей части идентификатора CAN-сообщения указанного буфера асинхронной передачи CAN. |
Регистр сообщения асинхронной передачи буфера X CAN ERL | 0…0xXX08 = значение, равное количеству байт данных в передаваемом сообщении указанного буфера асинхронной передачи CAN, где 0xXX равно: 0x00 (при стандартном формате), 0x40 (при стандартном формате с RTR), 0x80 (при расширенном формате) или 0xС0 (при расширенном формате с RTR). Более подробно смотри примечание. |
Регистр сообщения асинхронной передачи буфера X CAN D1:D0 … Регистр сообщения асинхронной передачи буфера X CAN D7:D6 |
0…0xFFFF = значения соответствующих байт данных передаваемого сообщения указанного буфера асинхронной передачи CAN, по два байта на регистр. |
Примечание: Регистр сообщения асинхронной передачи буфера X CAN ERL, помимо числа байт в передаваемом сообщении 0…8 в младших битах, содержит в своих старших битах информацию о специальных признаках сообщения: бит 15 - признак EXT и бит 14 признак RTR. Где EXT = 1 при передаче сообщения в расширенном формате, EXT = 0 при стандартном формате сообщения; RTR = 1 при передаче удаленного запроса данных, RTR = 0 при передаче обычного сообщения.
Примеры
Пример функциональной диаграммы асинхронной отправки статических данных в шину CAN0.

Выполняя диаграмму контроллер, используя драйвер асинхронной отправки в CAN, отправляет в интерфейс CAN0 два сообщения с неизменными данными. Период отправки сообщения из буфера 1 (ID=0x010) равен 10мс, период отправки сообщения из буфера 2 (ID=0x050) - 50мс.
Пример функциональной диаграммы асинхронной отправки динамически изменяемых данных в шину CAN0.

Выполняя диаграмму контроллер, используя драйвер асинхронной отправки в CAN, с периодом 10мс, отправляет в интерфейс CAN0 сообщения, данные в которых (байты D6:D7) меняются каждые 250мс.
Пример функциональной диаграммы совместной работы драйвера CAN и драйвера асинхронной отправки CAN.

Выполняя диаграмму контроллер, принимая по интерфейсу CAN0 сообщение с ID=0x020, байт D0 которого равен 0x01, активирует передачу сообщения с ID=0x050 используя драйвер асинхронной отправки в CAN.