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

Рассмотрим каждый регистр передающего буфера. Четырехбайтовый регистр идентификатора определяет, соответствует ли сообщение протоколу Bosch CAN 2.0A или Bosch CAN 2.0B. Первый из них требует 11-разрядного идентификатора, (стандартный формат), последний — 28-разрядного идентификатора (расширенный формат). На рис. 9.9a показано назначение каждого бита для четырех регистров идентификатора при использовании стандартного формата, на рис. 9.9б — то же для регистров расширенного формата.

Значения регистра идентификатора присваивают каждому сообщению номер, который другие модули сети CAN используют, чтобы распознать предназначенные для них сообщения. Флаг удаленного запроса передачи RTR (бит 4 IDR1 для стандартного формата или бит 0 IDR3 для расширенного формата) дает информацию о том, содержит ли буфер, посылающий данные другим модулям CAN, фактические сообщения или это просто запрос к другому модулю CAN, чтобы снова повторить сообщение. Если этот флаг сброшен, значит буфер содержит фактическое сообщение, если же установлен, то буфер используется, чтобы просто запросить повторную передачу сообщения. Контроллер CAN принимающего узла может использовать этот флаг, чтобы отличить данные от запроса.

Идентификатор расширенного формата IDE (бит 3 IDR1) определяет, использует ли передающий буфер стандартный или расширенный формат: логический 0 соответствует стандартный формату (11 бит), а логическая 1 — расширенному формату (29 бит). И наконец, флаг удаленного запроса SRR (бит 4 регистра IDR1) для расширенного формата должен всегда быть логической 1.

Восьмибайтовые регистры данных содержат фактические данные для пересылки. Передается содержимое регистра данных 0, затем содержимое регистра данных 1, регистра 2, и т.д, пока число байтов данных, не достигнет значения, записанного в регистре длины данных. Для каждого регистра сегмента данных, сначала передается бит 7. Регистр длины данных определяет число байтов данных, содержащихся в буфере передачи. На рис. 9.10 показан каждый бит регистра длины данных. Мы используем биты 0, 1, 2 и 3, чтобы обозначить число байтов данных. Для этого достаточно использовать только четыре бита, так как максимальное число байтов данных установлено равным восьми, в соответствии с числом регистров сегмента данных. Мы определяем число байтов данных как двоичное число при использовании бита 3 в качестве старшего бита. Например, если число байтов данных составляет 5, мы задаем следующие значения четырех битов: DLC3 = 0, DLC2 = 1, DLC1 = 0 и DLC0 = 1. Если мы используем все восемь байтов качестве данных, необходимо установить другие значения битов: DLC3 = 1, DLC2 = 0, DLC1 = 0 и DLC0 = 0.

Рис. 9.10. Формат регистра длины данных

Биты DLC3, DLC2, DLC1 и DLC0 используются, чтобы указать число байтов, содержащихся в регистрах сегмента данных

Чтобы загрузить регистры, показанные на рис. 9.8, желаемыми значениями прежде, чем осуществить любую передачу, должны быть выполнены соответствующие команды 68HC12. Например, следующий фрагмент программы на Си загружает передающий буфер 0 идентификатором $4D43 (представляющим собой символы «MC» в ASCII коде, поскольку используется контроллер фирмы Motorola) и сообщением $12345678, используя расширенный формат.

char *buffer;

buffer = 0x0150;

*buffer = 0x4D; /*загрузить IDR0 кодом символа M */

*(buffer+1) = 0x58; /* загрузить IDR1, установить SRR = 1 и IDE=1 */

*(buffer+2) = 0xC0; /* загрузить IDR2 кодом символа С */

*(buffer+3) = 0x00; /* биты от ID20 до ID13 ,чтобы представить С */

*(buffer+4) = 0x12; /* загрузить */

*(buffer+5) = 0x34;

*(buffer+6) = 0x56;

*(buffer+7) = 0x78;

*(buffer+8) = 0x00;

*(buffer+9) = 0x00;

*(buffer+10) = 0x00;

*(buffer+11) = 0x00;

*(buffer+12) = 0x04; /* данные длиной в 4 байта */

*(buffer+13) = 0x00; /* установить наивысший приоритет */

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных