Чтение онлайн

на главную - закладки

Жанры

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С

Пак Дэниэл Дж.

Шрифт:

Рис. 9.11. Регистр приоритета передающего буфера msCAN12. Этот регистр используется, чтобы ранжировать порядок передачи сообщений из этого буфера.

Рассмотрим теперь три специальных регистра передающего модуля: регистр флагов CTFLG передатчика, регистр управления передатчика CTCR и регистр счетчика ошибок CTXERR. Формат регистра CTFLG показан на рис. 9.12. Биты 2, 1 и 0 являются флагами пустого буфера передачи, которые указывают, пуст или заполнен соответствующий буфер

передачи. Логическая 1 указывает, что данный буфер передачи пуст и готов к новому использованию. Мы должны очистить этот флаг (записать 1 в соответствующий бит) после загрузки передающего буфера. Флаг также устанавливается в случае успешного выполнения запроса на аварийное прекращение работы передатчика. Биты 7 и 3 этого регистра не используются.

Рис. 9.12. Формат регистра CTFLG

Биты от 6 до 4 представляют собой флаги аварийного прекращения работы, показывающие, что выполнен запрос на аварийное прекращение работы. Логическая 1 показывает, что данное сообщение не было прервано; логический 0 свидетельствует, что сообщение было успешно прервано. Флаги запроса аварийного прекращения работы автоматически очищаются, когда сбрасываются флаги пустого буфера передачи.

Запрос на аварийное прекращение работы может быть сделан при изменении состояния регистра другого модуля передачи, названного регистром управления передатчиком CTCR. Формат регистра CTCR показан на рис. 9.13. В этом регистре также не используются биты 7 и 3. Программист может разработать программу, позволяющую запросить аварийное прекращение передачи с помощью битов 4, 5 и 6 этого регистра. Логический 0 соответствует отсутствию запроса, а логическая 1 показывает, что появился запрос. Когда сообщение успешно прерывается, соответствующий флаг TXE и флаг ABTAK устанавливается в CTFLG. Программист не может непосредственно очистить биты ABTRQ, но они очищаются при установке соответствующих TXE флагов в регистре CTFLG.

Рис. 9.13. Формат регистра управления передатчиком msCAN12

Биты 2, 1 и 0 — это флаги разрешения на локальное прерывание, связанные с флагами пустого буфера в регистре CTFLG. Логическая 1 указывает, что соответствующий буфер передачи пуст (установлен флаг TXE в регистре CTFLG), вызвано прерывание из-за пустого передающего буфера. Логический нуль выключает систему прерывания.

Последним регистром, связанным с подсистемой передатчика модуля msCAN12, является регистр счетчика ошибок CTXERR. Как показывает его название, этот регистр подсчитывает число ошибок передачи. Когда контроллер msCAN12 находится в спящем режиме или в режиме программного сброса, регистр счетчика ошибок доступен только для чтения. Формат регистра счетчика ошибок показан на рис. 9.14.

Рис. 9.14. Счетчик ошибок передачи msCAN

Подсистема приемника. Приемный модуль контролера msCAN12 состоит из двух 13-байтовых буферов, восьми регистров идентификаторов приема CIDAR0…CIDAR7, восьми маскируемых фильтров идентификаторов приема CIDMR0…CIDMR7, регистра флагов приемника CRFLG, регистра разрешения

прерываний приемника CRIER, регистра управления идентификаторами приема CIDAC и одного счетчика ошибок приемника CRXERR. В этом разделе, мы рассмотрим каждый из этих компонентов приемного модуля msCAN12.

Естественно, два 13-байтовых буфера используют тот же формат, что и буфер передачи msCAN12, показанный на рис. 9.8. Сообщения, посылаемые устройством, подключенным к сети CAN, принимаются другими устройствами сети через эти буферы. Первым из приемных буферов, является так называемый предварительный буфер приема RxBG. Именно в него поступают сначала внешние сообщения. Второй приемный буфер, называемым основным буфером RxFG, доступен для ЦП 68HC12. Два буфера физически различны, но RxBG отображается в RxFG с помощью механизма, который мы рассмотрим далее в этом разделе, что заставляет буферы содержать одни и те же адреса. RxFG занимает физические адреса от $0140 до $014C.

Когда в сети появляется сообщение, оно сначала записывается в буфер RxBG. Параллельно с этим, сообщение проходит также через ряд фильтров, позволяющих определить, должно ли быть принято данное сообщение, и предназначено ли оно для данного устройства. Процесс фильтрации программируется с помощью регистра управления идентификаторами приема CIDAC, восьми регистров идентификаторов приема CIDAR0…CIDAR7 и восьми маскируемых фильтров идентификаторов приема CIDMR0…CIDMR7. Рассмотрим функции этих регистров.

Регистр CIDAC управляет типом фильтрации входящих сообщений. Кроме того, регистр содержит флаги, которые показывают, что получены сообщения с корректными идентификаторами, которые готовы к прочтению их ЦП 68HC12. На рис. 9.15 показан формат регистра CIDAC. Все биты за исключением битов 5 и 4 (IDAM1:IDAM0) предназначены только для чтения. Информация в биты IDAM1:IDAM0 может быть записана только, если при инициализации установлен бит SFTRES в регистре CMCR0. Биты 7, 6 и 3 не используются.

< image l:href="#"/>

Рис. 9.15. Формат регистра CIDAC

Следующие комбинации битов IDAM1:IDAM0 определяют число фильтров и размер каждого фильтра, необходимые чтобы установить режим принятия идентификатора.

• IDAM1=0 и IDAM0=0: используется два 32-разрядных фильтра приема

• IDAM1=0 и IDAM0=1: используется четыре 16-разрядных фильтра приема

• IDAM1=1 и IDAM0=0:используется восемь 8-разрядных фильтров приема

• IDAM1=1 и IDAM0=1: не используется никаких фильтров приема (фильтры закрыты)

Когда IDAM1 и IDAM0 равны 1, все сообщения игнорируются, и не записываются в основной буфер RxFG. Биты IDHIT2, IDHIT1, и IDHIT0 указывают на совпадения идентификаторов приема. Эти флаги устанавливаются, когда фильтры указывают, что обнаружены совпадения и буфер RxFG модифицирован. Состояния этих трех битов соответствуют следующем событиям:

• IDHIT2 = 0, IDHIT1 = 0 и IDHIT0 = 0: совпадение с фильтром 0

• IDHIT2 = 0, IDHIT1 = 0 и IDHIT0 = 1: совпадение с фильтром 1

• IDHIT2 = 0, IDHIT1 = 1 и IDHIT0 = 0: совпадение с фильтром 2

• IDHIT2 = 0, IDHIT1 = 1 и IDHIT0 = 1: совпадение с фильтром 3

• IDHIT2 = 1, IDHIT1 = 0 и IDHIT0 = 0: совпадение с фильтром 4

• IDHIT2 = 1, IDHIT1 = 0 и IDHIT0 = 1: совпадение с фильтром 5

• IDHIT2 = 1, IDHIT1 = 1 и IDHIT0 = 0: совпадение с фильтром 6

• IDHIT2 = 1, IDHIT1 = 1 и IDHIT0 = 1: совпадение с фильтром 7

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

Поделиться:
Популярные книги

Метатель

Тарасов Ник
1. Метатель
Фантастика:
боевая фантастика
попаданцы
рпг
фэнтези
фантастика: прочее
постапокалипсис
5.00
рейтинг книги
Метатель

Магия чистых душ

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.40
рейтинг книги
Магия чистых душ

Барон Дубов

Карелин Сергей Витальевич
1. Его Дубейшество
Фантастика:
юмористическое фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Барон Дубов

#Бояръ-Аниме. Газлайтер. Том 11

Володин Григорий Григорьевич
11. История Телепата
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 11

Барон диктует правила

Ренгач Евгений
4. Закон сильного
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Барон диктует правила

Попытка возврата. Тетралогия

Конюшевский Владислав Николаевич
Попытка возврата
Фантастика:
альтернативная история
9.26
рейтинг книги
Попытка возврата. Тетралогия

Долгий путь домой

Русич Антон
Вселенная EVE Online
Фантастика:
космическая фантастика
попаданцы
6.20
рейтинг книги
Долгий путь домой

Гардемарин Ее Величества. Инкарнация

Уленгов Юрий
1. Гардемарин ее величества
Фантастика:
городское фэнтези
попаданцы
альтернативная история
аниме
фантастика: прочее
5.00
рейтинг книги
Гардемарин Ее Величества. Инкарнация

Завод-3: назад в СССР

Гуров Валерий Александрович
3. Завод
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Завод-3: назад в СССР

Решала

Иванов Дмитрий
10. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Решала

Камень. Книга пятая

Минин Станислав
5. Камень
Фантастика:
боевая фантастика
6.43
рейтинг книги
Камень. Книга пятая

Отдельный танковый

Берг Александр Анатольевич
1. Антиблицкриг
Фантастика:
боевая фантастика
альтернативная история
5.00
рейтинг книги
Отдельный танковый

Метатель. Книга 3

Тарасов Ник
3. Метатель
Фантастика:
попаданцы
альтернативная история
рпг
фэнтези
фантастика: прочее
постапокалипсис
5.00
рейтинг книги
Метатель. Книга 3

Боярышня Евдокия

Меллер Юлия Викторовна
3. Боярышня
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Боярышня Евдокия