Copyright ООО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» Copyright ООО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» Copyright ООО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное автономное образовательное учреждение высшего образования «ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ» Инженерно-технологическая академия А. О. ПЬЯВЧЕНКО В. Н. ПУХОВСКИЙ АРХИТЕКТУРА, ОСНОВЫ ПРОГРАММИРОВАНИЯ И ПРИМЕНЕНИЯ AVR-МИКРОКОНТРОЛЛЕРОВ И ARM-МИКРОСИСТЕМ Учебное пособие в трех частях ЧАСТЬ 3 Ростов-на-Дону – Таганрог Издательство Южного федерального университета 2022 1 Copyright ООО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» УДК 004.312(075.8) ББК 32.973 я73 П967 Печатается по решению кафедры вычислительной техники Института компьютерных технологий и информационной безопасности Южного федерального университета (протокол № 6 от 10 февраля 2021 г.) Рецензенты: заместитель директора ИРТСУ ИТА ЮФУ по научной работе, доцент кафедры ВиРС ИРТСУ ИТА ЮФУ С. И. Клевцов главный инженер проекта Engineering Bureau Franke International (ООО "Инженерное Бюро Франке Интернешенал") С. В. Кондратенко Пьявченко, А. О. П967 Архитектура, основы программирования и применения AVR-микро- контроллеров и ARM-микросистем : учебное пособие : в 3 ч. / А. О. Пьяв- ченко, В. Н. Пуховский ; Южный федеральный университет. – Ростов-на- Дону ; Таганрог : Издательство Южного федерального университета, 2022. ISBN 978-5-9275-3429-6 Часть 3. – 151 с. ISBN 978-5-9275-4102-7 (Ч. 3) Учебное пособие содержит материалы по основам функциональной органи- зации архитектуры, программирования и применения RISC-микроконтроллеров различной архитектуры, начиная с MegaAVR и заканчивая ARM-микро- контроллерными системами с жесткой архитектурой, имеющие отечественные функциональные аналоги. Пособие состоит из нескольких логически-завершен- ных и связанных между собою частей. Третья часть пособия завершает изложение вопросов построения, программ- ного управления и применения цифровых и аналоговых интерфейсов 8-битных AVR-микроконтроллеров с использованием среды Proteus. Основное внимание здесь уделено таким интерфейсам, как TWI (I2C), 1WI (1-Wire), особенностям их практического применения под управлением AVR-микроконтроллеров при под- ключении к ним различных периферийных модулей. Учебное пособие предназначено для студентов специальности 09.05.01 – Применение и эксплуатация автоматизированных систем специального назначе- ния, направлений 09.03.01, 09.04.01 («Информатика и вычислительная техника»), изучающих соответствующие разделы таких дисциплины, как «Техническое обес- печение автоматизированных систем», «Микроконтроллерные системы», «Ос- новы построения и проектирования ARM-микросистем» и ряда других. УДК 004.312(075.8) ISBN 978-5-9275-4102-7 (Ч. ББК 32.973 я73 3) ISBN 978-5-9275-3429-6 © Южный федеральный университет, 2022 © Пьявченко А. О., Пуховский В. Н., 2022 © Оформление. Макет. Издательство Южного федерального университета, 2022 2 Copyright ООО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» СОДЕРЖАНИЕ СПИСОК ОСНОВНЫХ СОКРАЩЕНИЙ ………………………….. 5 ВВЕДЕНИЕ …………………………………………………………… 7 1. ИНТЕРФЕЙС TWI (I2C) …………………………………………... 9 1.1. Краткие общие сведения ………………………………………. 9 1.2. Формат посылки передаваемых данных ……………………… 12 1.2.1. Поддерживаемый способ передачи данных ………………… 12 1.2.2. Условия старта и останова сеанса связи ………………….. 13 1.2.3. Формат управляющего кадра …………………………………. 14 1.2.4. Структура сеанса связи ……………………………………….. 16 1.3. Организация обмена с несколькими ведущими ……………… 17 1.4. Структура модуля TWI ………………………………………… 20 1.4.1. Состав модуля ……………………………………………………. 20 1.4.2. Блок шинного интерфейса ……………………………………... 20 1.4.3. Блок генератора скорости связи ……………………………... 22 1.4.4. Блок обнаружения адреса ……………………………………… 23 1.4.5. Блок управления ………………………………………………….. 23 1.5. Описание регистров TWI ………………………………………. 24 1.5.1. Общие сведения …………………………………………………... 24 1.5.2. Регистр скорости связи шины TWI–TWBR …………………. 25 1.5.3. Регистр управления шиной TWI–TWCR ……………………... 26 1.5.4. Регистр состояния TWI–TWSR ……………………………….. 29 1.5.5. Регистр данных модуля TWI–TWDR …………………………. 35 1.5.6. Регистр адреса модуля TWI–TWAR ………………………….. 37 1.6. Рекомендации по применению модуля TWI ………………….. 38 1.7. Вопросы построения системы: организация мультимастер- ной магистрали ……………………………………………………… 52 1.8. Общие замечания по расширенному стандарту i2C ………….. 53 1.9. Преимущества шины TWI (I2C) ………………………………. 60 1.10. Примеры применения шины TWI (I2C) ……………………... 62 1.10.1. Общие сведения …………………………………………………. 62 1.10.2. Работа с модулями параллельного цифрового ввода/вы- вода …………………………………………………………………………. 63 3 Copyright ООО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» Содержание 1.10.3. Работа с модулем LCD ………………………………………... 82 Контрольные вопросы к разделу 1 ………………………………… 88 2. ИНТЕРФЕЙС 1-WIRE ……………………………………………... 91 2.1. Краткие сведения ………………………………………………. 91 2.2. Многоуровневая модель взаимодействия: физический уро- вень …………………………………………………………………... 92 2.3. Многоуровневая модель взаимодействия: канальный уровень 95 2.4. Многоуровневая модель взаимодействия: сетевой и транспорт- ный уровни …………………………………………………………… 100 2.4.1. Алгоритм взаимодействия …………………………………….. 100 2.4.2. Уникальные коды устройств 1-Wire …………………………. 103 2.4.3. Алгоритм обнаружения ведомых устройств на шине …… 105 2.5. Способы управления шиной …………………………………... 107 2.6. Примеры программно-аппаратного управления интерфейсом 1-Wire с применением AVR-микроконтроллера в качестве веду- щего устройства …………………………………………………….. 108 2.6.1. Общие сведения …………………………………………………... 108 2.6.2. Краткое описание датчика температуры DS18B20 …….. 108 2.6.3. Пример построения блока измерения температуры …….. 120 Контрольные вопросы к разделу 2 ………………………………… 145 ЗАКЛЮЧЕНИЕ ……………………………………………………….. 147 СПИСОК ЛИТЕРАТУРЫ ……………………………………………. 148 4 Copyright ООО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» Список основных сокращений СПИСОК ОСНОВНЫХ СОКРАЩЕНИЙ 1-Wire-интерфейс – протокол асинхронной и полудуплексной передачи данных в обе стороны по одному проводу БГС – блок генератора скорости связи БОА – блок обнаружения адреса БШИ – блок шинного интерфейса БУ – блок управления ЖКИ – жидкокристаллический индикатор ЗП – бит "Запись" (низкий уровень на SDA) МК – микроконтроллер НЕТ ПОДТВ (NACK) – нет бита подтверждения со стороны приемника (высокий уровень на линии SDA) ОЗУ (RAM) – оперативное запоминающее устройство (Random Access Memory) ПЗУ (ROM) – постоянное запоминающее устройство ПОДЧ_АДР (SLADDR) – адрес ведомого устройства ПОВТ_СТАРТ – условие ПОВТОРНЫЙ СТАРТ используется при необхо- димости инициировать мастером новый сеанс связи, не теряя при этом управление шиной ПОДТВ (ACK) – бит подтверждения (низкий уровень на SDA) ППЗУ – перепрограммируемое постоянное запоминающее устройство ЧТ – бит "Чтение" (высокий уровень на линии SDA в соответствующем бите управляющего кадра) ЦП – центральный процессор ЭСППЗУ (EEPROM) – электрически стираемое перепрограммируемое ПЗУ (Electrically Erasable Programmable Random-Access Memory) AND – логическая функция «И» ACK – бит подтверждения приема кадра (устанавливается в состояние ло- гического 0 (лог. 0) при наличии подтверждения приема кадра) CRC – контрольная сумма ID – код идентификатора ведомого устройства на шине 1-Wire I2C – Inter Integrated Circuit – IIC или I2C (название протокола связи) 5 Copyright ООО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» Список основных сокращений Master (Ведущий) – устройство, которое инициирует и прекращает сеанс связи NV RAM – Non-Volatile Random-Access Memory (энергонезависимое опе- ративное запоминающее устройство (ОЗУ)) PRESENCE (Presence pulse) – импульс присутствия PROM – Programmable Read-Only Memory (однократно программируемое постоянное запоминающее устройство) RESET – импульс сброса RTC (Real Time Clock) или ЧРВ – часы реального времени SDA – Serial Data (последовательная шина данных) SCL – Serial Clock последовательная линия синхронизации Slave (Подчиненный, ведомый) – устройство, которое адресуется ведущим устройством и может принимать или передавать данные только по иници- ативе последнего Slave Address (SLADDR) обозначает адрес подчиненного (ведомого) устройства на шине START (СТАРТ) – условие, означающее начало сеанса связи со стороны ведущего STOP (СТОП) – условие STOP (СТОП). Наличие этого условия свидетель- ствует об окончании сеанса связи (обмена данными) на шине между теку- щими ведущим (мастером) и ведомыми (подчиненными) устройствами, участвующими в этом сеансе TWAR – регистр адреса модуля TWI TWBR – регистр скорости связи (делителя опорной частоты) TWCR– регистр управления TWI TWDR – регистр данных модуля TWI TWI (Two wire interface) – двухпроводной интерфейс TWSR – регистр состояния T XOR – логическая функция «Исключающее ИЛИ» 6 Copyright ООО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» Введение ВВЕДЕНИЕ В третьей части пособия мы завершаем изложение вопросов постро- ения, программного управления и применения основных цифровых и ана- логовых интерфейсов 8-битных AVR-микроконтроллеров с применением программного пакета Proteus. При этом здесь, в отличие от предыдущих двух частей пособия, упор сделан на использование возможностей, предо- ставляемых такими современными инструментальными программными средствами подготовки и отладки программного кода на языке С, как WINAVR, CodeVision AVR совместимых версий. Третья часть пособия логически структурирована в виде двух разде- лов, посвященных рассмотрению системотехнической и функционально- логической организации таких компактных приборных интерфейсов, как TWI (I2C), 1WI (1-Wire), особенностям микроконтроллерного программно- аппаратного управления сеансами связи по ним, что наглядно проиллю- стрировано практическими примерами применения и подкреплено соответ- ствующими списками вопросов для самоконтроля. Так, в первом разделе приведены практические сведения по двух- проводному приборному интерфейсу I2C, получившему наименование – аббревиатура TWI. При этом подробно рассмотрены вопросы организации сеансов связи между ведущим и ведомыми устройствами на интерфейсе, поддерживаемые способы передачи данных, форматы управляющих и ин- формационных кадров, правила организации обмена по интерфейсу с не- сколькими ведущими. Уделено внимание внутренней системотехнической организации интерфейсных программно-аппаратных средств на примере встроенного в AVR-микроконтроллер ATmega128A типового аппаратного модуля TWI. Здесь представлена логическая организация модуля TWI, рас- смотрены методики программного управления сеансом связи по интер- фейсу со стороны центрального процессора микроконтроллера с учетом ис- пользуемой структуры управляющего кадра и наличия возможных ошибок, обнаруживаемых аппаратурой модуля в процессе реализации такого се- анса. Изложены вопросы практического применения интерфейса на приме- рах программного и аппаратного подключения к микроконтроллеру моду- лей цифрового ввода/вывода, символьного LCD. Также даны общие 7 Copyright ООО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис» Введение замечания по расширенному стандарту I2C, рекомендации по его примене- нию и изложены вопросы организации мультимастерной магистрали для построения микроконтроллерных систем различного назначения. Хотелось бы отметить, что именно простота схемотехнической и ло- гической организации TWI (I2C) – интерфейса, наличие бесплатных сто- ронних программных библиотек управления с открытым кодом на языке С, во многом предопределили его широкое применение и делают быстрым процесс разработки типовой микроконтроллерной системы на его основе, что положительно повлияло на принятие решения о включении вышеука- занного учебного материала в настоящее пособие. Второй раздел содержит краткие сведения об однопроводном интер- фейсе 1-Wire, отличающимся поддержкой многоуровневой модели сетевого взаимодействия. Так, в разделе описываются физический, канальный, сете- вой и транспортный уровни взаимодействия, поддерживаемые протоколом интерфейса. Рассмотрены различные способы управления магистралью, включая обобщенный алгоритм обнаружения ведомых устройств на ней. Изложены вопросы практического применения интерфейса на при- мере построения микроконтроллерного блока измерения температуры с ис- пользованием цифровых датчиков DS18B20 и отображением текущих ре- зультатов измерения на экране двухстрочного символьного LCD с приме- нением сторонних программных библиотек управления с открытым кодом. Отмечается, что возможности идентификации и быстрого включе- ния в сеть только что подключенных 1WI-устройств, имеющих уникальные коды идентификации, наличие, как и в случае I2C, бесплатных сторонних программных библиотек управления с открытым кодом на языке С делают интерфейс 1-Wire привлекательным решением для многих приложений. Отсюда и актуальность, и необходимость в подробном изучении данного интерфейса. 8