Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Регистры управления и состояния eCAN




 

Регистры eCAN, перечисленные в таблице 1, используются CPU для конфигурации и управления контроллером CAN при работе с сообщениями.

Таблица 1 – Регистры eCAN

 

Название регистра Адреса eCAN-A Адреса eCAN-B Разрядность (х32) Описание
CANME 0x6000 0x6200   Регистр разрешения Mailbox
CANMD 0x6002 0x6202   Регистр направления
CANTRS 0x6004 0x6204   Регистр установки запроса передачи
CANTRR 0x6006 0x6206   Регистр сброса запроса передачи
CANTA 0x6008 0x6208   Регистр подтверждения приема
CANAA 0x600A 0x620A   Регистр подтверждения передачи
CANRMP 0x600C 0x620C   Регистр ожидания принимаемого сообщения
CANRML 0x600E 0x620E   Регистр потери принятого сообщения
CANRFP 0x6010 0x6210   Регистр ожидания кадра удаленного запроса данных
CANGAM 0x6012 0x6212   Регистр маска глобального приема
CANMC 0x6014 0x6214   Регистр главного управления
CANBTS 0x6016 0x6216   Регистр конфигурации синхронизации
CANES 0x6018 0x6218   Регистр ошибок и состояния
CANTEC 0x601A 0x621A   Регистр счетчика ошибок передачи
CANREC 0x601C 0x621C   Регистр счетчика ошибок приема
CANGIF0 0x601E 0x621E   Регистр флага 0 глобальных прерываний
CANGIM 0x6020 0x6220   Регистр глобальной маски прерываний
CANGIF1 0x6022 0x6222   Регистр флага 1 глобальных прерываний
CANMIM 0x6024 0x6224   Регистр маски прерываний Mailbox
CANMIL 0x6026 0x6226   Регистр уровня прерываний Mailbox
CANOPC 0x6028 0x6228   Регистр управления защитой перезаписи
CANRIOS 0x602A 0x622A   Регистр управления входами eCAN
CANTIOS 0x602C 0x622C   Регистр управления выходами eCAN
CANTSC 0x602E 0x622E   Счетчик временной метки (reserved в режиме SCC)
CANTOC 0x6030 0x6230   Управление ограничением времени (reserved в режиме SCC)
CANTOS 0x6032 0x6232   Состояние ограничения времени (reserved в режиме SCC)

 

Работа с сообщениями

 

eCAN-модуль имеет 32 различных Mailbox, каждый из которых имеет свою индивидуальную приемную маску и может быть настроен на прием или передачу.

Сообщение Mailbox содержит:

- 29-разрядный идентификатор сообщения;

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

- до 8 байтов данных;

- 29-разрядная приемная маска;

- 32-разрядная временная метка;

- 32-разрядное значение ограничения времени.

Соответствующие биты регистров состояния и управления позволяют управлять сообщениями.

 

Mailbox

 

Mailbox – это область оперативной памяти, где сообщения CAN сохраняются после того, как они приняты, или прежде, чем они будут отправлены.

CPU может использовать области оперативной памяти Mailbox, не используемые для хранения сообщений, как обычную память.

Каждый Mailbox содержит:

1) Идентификатор сообщения:

- 29-разрядов для расширенного идентификатора;

- 11-разрядов для стандартного идентификатора;

2) Бит расширения идентификатора, IDE (MSGID,31);

3) Бит установки приемной маски, AME (MSGID,30);

4) Бит автоматического ответа, AAM (MSGID,29);

5) Уровень приоритетной передачи, TPL (MSGCTRL,12-8);

6) Бит удаленного запроса данных, RTR (MSGCTRL,4);

7) Код длины данных, DLC (MSGCTRL,3-0);

8) Поле данных до 8 байтов.

Каждый из Mailbox может работать в режиме одного из четырех типов сообщения (см. таблицу 2). Прием и передача сообщений необходимы для обмена данными между передающим узлом и многочисленными узлами-приемниками, тогда как сообщения запроса и подтверждения используются для поддержания взаимосвязи на шине.

 

Таблица 2 – Конфигурация сообщений

Виды сообщений Регистр направления Mailbox (CANMD) Бит установки режима автоматического ответа (AAM) Бит установки запроса данных (RTR)
Передача сообщения      
Прием сообщения      
Сообщение-запрос      
Сообщение-ответ      

 

Таблица 3 показывает расположение байтов Mailbox eCAN-A в ОЗУ.

 

Таблица 3 – Расположение байтов Mailbox eCAN-A в ОЗУ

Mailbox MSGID MIDL-MIDH MSGCTRL MCF-Rsvd MDL MDL_L-MDL_H MDH MDH_L-MDH_H
  6100-6101h 6102-6103h 6104-6105h 6106-6107h
  6108-6109h 610A-610Bh 610C-610Dh 610E-610Fh
  6110-6111h 6112-6113h 6114-6115h 6116-6117h
  6118-6119h 611A-611Bh 611C-611Dh 611E-611Fh
  6120-6121h 6122-6123h 6124-6125h 6126-6127h
  6128-6129h 612A-612Bh 612C-612Dh 612E-612Fh
  6130-6131h 6132-6133h 6134-6135h 6136-6137h
  6138-6139h 613A-613Bh 613C-613Dh 613E-613Fh
  6140-6141h 6142-6143h 6144-6145h 6146-6147h
  6148-6149h 614A-614Bh 614C-614Dh 614E-614Fh
  6150-6151h 6152-6153h 6154-6155h 6156-6157h
  6158-6159h 615A-615Bh 615C-615Dh 615E-615Fh
  6160-6161h 6162-6163h 6164-6165h 6166-6167h
  6168-6169h 616A-616Bh 616C-616Dh 616E-616Fh
  6170-6171h 6172-6173h 6174-6175h 6176-6177h
  6178-6179h 617A-617Bh 617C-617Dh 617E-617Fh
  6180-6181h 6182-6183h 6184-6185h 6186-6187h
  6188-6189h 618A-618Bh 618C-618Dh 618E-618Fh
  6190-6191h 6192-6193h 6194-6195h 6196-6197h
  6198-6199h 619A-619Bh 619C-619Dh 619E-619Fh
  61AO-61A1h 61A2-61A3h 61A4-61A5h 61A6-61A7h
  61A8-61A9h 61AA-61ABh 61AC-61ADh 61AE-61AF
  61BO-61B1h 61B2-61B3h 61B4-61B5h 61B6-61B7h
  61B8-61B9h 61BA-61BBh 61BC-61BDh 61BE-61BFh
  61CO-61C1h 61C2-61C3h 61C4-61C5h 61C6-61C7h
  61C8-61C9h 61CA-61CBh 61CC-61CDh 61CE-61CFh
  61DO-61D1h 61D2-61D3h 61D4-61D5h 61D6-61D7h
  61D8-61D9h 61DA-61DBh 61DC-61DDh 61DE-61DF
  61EO-61E1h 61E2-61E3h 61E4-61E5h 61E6-61E7h
  61E8-61E9h 61EA-61EBh 61EC-61EDh 61EE-61EFh
  61FO-61F1h 61F2-61F3h 61F4-61F5h 61F6-61F7h
  61F8-61F9h 61FA-61FBh 61FC-61FDh 61FE-61FFh

 

Передача в Mailbox

 

CPU хранит данные, которые передаются в настроенный на передачу сообщения Mailbox. После присоединения к данным идентификатора посылается запрос в ОЗУ, был ли бит TRS установлен, разрешается ли работа Mailbox, при этом устанавливается бит передачи ME.n (n – номер Mailbox).

Если более одного Mailbox готовы к передаче и более чем один соответствующий бит TRS установлен, сообщения посылаются по очереди в порядке уменьшения, начиная с Mailbox с самым высоким приоритетом.

В режиме SCC приоритет передающего Mailbox зависит от номера Mailbox. Самый высокий номер Mailbox (=15) обладает самым высоким приоритетом передачи.

В eCAN приоритет передачи Mailbox зависит от состояния регистра управления сообщением (MSGCTRL) в поле TPL. Сначала передает Mailbox с самым высоким значением поля TPL. Только когда два Mailbox имеют одинаковые значения TPL-полей, сначала передает Mailbox с высшим номером.

Если во время передачи будет допущена ошибка из-за потери арбитража или другая ошибка, то передача сообщения будет произведена вновь. Перед повтором передачи CAN-модуль проверяет, нет ли запросов от других узлов, и затем разрешает передачу Mailbox с самым высоким приоритетом.

 


Прием в Mailbox

 

Идентификатор каждого принятого сообщения сравнивается с идентификатором, содержащимся на каждом Mailbox, используя маску. Когда обнаружено совпадение, полученный идентификатор, биты управления и байты данных записываются на определенный ОЗУ адрес. В то же время формируется бит ожидания приема сообщения RMP[n] (RMP.31-0), устанавливается и происходит прерывание, если оно разрешено. Если сообщение идентификатора не произошло, то сообщение не сохраняется [5].

При приеме сообщения контроллер сообщения начинает искать соответствующий идентификатор в Mailbox, начиная с самого высокого номера. Mailbox 15 в SCC-режиме имеет самый высокий номер и, следовательно, высший приоритет. Mailbox 31 имеет самый высокий номер при выключенном режиме SCC и имеет наивысший приоритет в eCAN-модуле.

Регистр RMP[n] (RMP.31-0) должен быть сброшен CPU после чтения данных. Если принимается второе сообщение для одного Mailbox и бит ожидания приема сообщения уже установлен, то устанавливается бит RML[n] (RML.31-0) и сообщение задерживается. Хранимое сообщение записывается поверх с новыми данными, если сброшен бит защиты наложения записи OPC[n] (OPC.31-0), иначе проверяется следующий Mailbox.

Если Mailbox настроен на прием и бит RTR установлен для этого, Mailbox может передать кадр удаленного запроса данных. Как только запрос передан, бит TRS Mailbox eCAN сбрасывается.

 





Поделиться с друзьями:


Дата добавления: 2017-02-24; Мы поможем в написании ваших работ!; просмотров: 368 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Есть только один способ избежать критики: ничего не делайте, ничего не говорите и будьте никем. © Аристотель
==> читать все изречения...

2250 - | 2202 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.012 с.