МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ «ДОНСКОЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» Кафедра «Автоматизация производственных процессов» МОДЕЛИРОВАНИЕ УСТРОЙСТВ ИНТЕРФЕЙСОВ В СРЕДЕ PROTEUS Практикум Ростов-на-Дону ДГТУ 2019 УДК 621.396.6 Составитель: А.В. Болдырев Моделирование устройств интерфейсов в среде Proteus: практикум. – Ростов-на-Дону: Донской гос. техн. ун-т, 2019. – 44 с. Практикум разработан для студентов направлений «Управление в технических системах» и «Автоматизация технологических процессов и производств» всех форм обучения и предназначен для теоретического и практического освоения программы схемотехнического моделирования ISIS Proteus и ее использования для моделирования различных интерфейсов промышленных контроллеров. УДК 621.396.6 Печатается по решению редакционно-издательского совета Донского государственного технического университета Ответственный за выпуск зав. кафедрой «Автоматизация производственных процессов» канд. техн. наук, доцент А.Д. Лукьянов _____________________________________________________________ В печать 15.02.2019 г. Формат 60×84/16. Объем 2,75 усл. п. л. Тираж 50 экз. Заказ № 193. _____________________________________________________________ Издательский центр ДГТУ Адрес университета и полиграфического предприятия: 344000, г. Ростов-на-Дону, пл. Гагарина, 1 © Донской государственный технический университет, 2019 2 Содержание Условные обозначения……………………………………………………………………….4 Общие сведения о системе схемотехнического моделирования Proteus…..…………….5 Практическое занятие №1 ВИРТУАЛЬНЫЕ ИНСТРУМЕНТЫ ПРОГРАММЫ СИНТЕЗА И МОДЕЛИРОВАНИЯ ISIS PROTEUS...……………………………………...6 Практическое занятие №2 МОДЕЛИРОВАНИЕ ДВУХПРОВОДНОГО ИНТЕРФЕЙСА RS-485.……..…………….10 Практическое занятие №3 МОДЕЛИРОВАНИЕ КОНВЕРТЕРА УРОВНЕЙ СИГНАЛОВ ТТЛ/RS-232………………………………………………….………………….15 Практическое занятие №4 МОДЕЛИРОВАНИЕ РАБОТЫ ПОСЛЕДОВАТЕЛЬНОГО ИНТЕРФЕЙСА USART….………………………..…………………………..……………...21 Практическое занятие №5 МОДЕЛИРОВАНИЕ РАБОТЫ ПОСЛЕДОВАТЕЛЬНОГО ИНТЕРФЕЙСА SPI………………………………..……………………………..…………...26 Практическое занятие №6 МОДЕЛИРОВАНИЕ РАБОТЫ ПОСЛЕДОВАТЕЛЬНОГО ИНТЕРФЕЙСА 1-WIRE…………………………..……………………………..…………...31 Практическое занятие №7 МОДЕЛИРОВАНИЕ РАБОТЫ ПОСЛЕДОВАТЕЛЬНОГО ИНТЕРФЕЙСА I2C (TWI)………………………..……………………………..…………...37 Практическое занятие №8 МОДЕЛИРОВАНИЕ РАБОТЫ ИНФРАКРАСНОГО ИНТЕРФЕЙСА IrDA…….………………………..……………………………..…………...41 Рекомендуемый библиографический список………………………………………..……...44 3 УСЛОВНЫЕ ОБОЗНАЧЕНИЯ ПЛК - программируемый логический контроллер МК - микроконтроллер САПР - система автоматизированного проектирования АЦП - аналого-цифровой преобразователь ЦАП - цифро-аналоговый преобразователь AVR, MCS51, PIC, ARM - семейства микроконтроллеров UART - универсальный асинхронный приемопередатчик USART - универсальный синхронно-асинхронный приемопередатчик RxD - информационный вход приемника USART TxD - информационный выход передатчика USART SPI - последовательный периферийный интерфейс 2 I C (TWI) - последовательный двухпроводный интерфейс фирмы Philips DIP (DIL) - тип корпуса (двухрядный) микросхем USB - универсальная последовательная шина ISP - программирование в системе DTE - терминальное оборудование DCE - связное оборудование ТТЛ - транзистор-транзисторная логика КМОП - комплементарная металл-окисел-полупроводник логика UDR, UCSRA, UCSRB, UCSRC - регистры модуля USART SPDR, SPCR, SPSR - служебные регистры модуля SPI MOSI, MISO, SCK, SS - линии интерфейса SPI SDA, SCL - двунаправленные линии связи модуля I2C SCL - линия синхронизации модуля I2C ПЗУ - постоянное запоминающее устройство EEPROM - электрически перепрограммируемое ПЗУ IrDA - ассоциация разработчиков систем инфракрасной передачи данных PIN - тип фотодиодов OSI - эталонная модель открытых систем 4 Общие сведения о системе схемотехнического моделирования Proteus При проектировании микропроцессорных устройств неизбежно возникают ошибки, которые можно обнаружить на основе анализа функционирования предварительно изготовленного макета. Но изготовить макетную плату устройства, имеющего в своем составе микросхемы с большим количеством выводов, весьма проблематично. Решить данную проблему можно, используя программные средства схемотехнического моделирования. В этом случае объектом анализа является принципиальная схема устройства, включающая в себя компоненты, соединенные друг с другом определенным образом. Используя модели всех компонентов и зная схему их соединений, можно смоделировать работу устройства в целом. Такая возможность особенно важна на стадии изучения микроконтроллеров и особенностей проектирования микропроцессорных устройств. Нет необходимости изготавливать реальную плату или ее макет, невозможно сжечь какой-либо компонент при неправильном его монтаже. Одним из наиболее экономически эффективных, полнофункциональных пакетов САПР на рынке программного обеспечения является система Proteus фирмы Labcenter Electronics (Великобритания). В отличие от многих других (PSpice, MicroCap, Multisim и др.) эта программа способна моделировать устройства не только на дискретных компонентах, обычных аналоговых и цифровых микросхемах, но и на микроконтроллерах. Для моделирования электронных схем Proteus использует обширную библиотеку моделей компонентов, включая широкий набор микроконтроллеров (AVR, MCS51, PIC, ARM и др.), контроллера Arduino и специализированных микросхем (температурные датчики, часы реального времени и др.), в т.ч. для устройств интерфейсов (RS-232, RS-422, RS-485, UART, SPI, I2C). Библиотека электронных компонентов Proteus может пополняться самим пользователем. Естественно, для создания полноценного библиотечного компонента нужно хорошо знать и учесть в модели все особенности его физического прототипа. Проявленная небрежность или «приблизительность» отзовется отличающимся в той или иной мере от действительности поведением модели устройства, в которой будет применен этот компонент. В Proteus есть набор виртуальных измерительных приборов таких, как осциллограф, логический анализатор, вольтметр, спектроанализатор, генераторы всевозможных сигналов и др. Они позволяют определить и визуально представить состояние в любой точке моделируемой схемы, а также наблюдать процессы, происходящие в ней. Имеется возможность наблюдать за состоянием внутренних регистров микроконтроллеров разных семейств, корректировать и отлаживать их программы. Возможность проверять работу микроконтроллеров всех популярных семейств в реальном масштабе времени и во взаимодействии с моделями реальных источников сигнала и нагрузок выгодно отличает Proteus от простейших симуляторов, имеющихся в системах разработки программ и зачастую позволяющих лишь следить за ходом пошагового исполнения программы. Интересной особенностью Proteus является возможность соединения виртуальной схемы, созданной в редакторе пакета, с реальными объектами, подключаемыми через 5 физические порты компьютера USB и СОМ, к которым привязываются одноименные виртуальные порты схемы. Это позволяет максимально приблизить условия компьютерного моделирования к физическому за счет формирования сигналов от реальных датчиков и управления реальными исполнительными устройствами. В остальных «традиционных» случаях компьютерного моделирования не следует забывать, что результаты такого моделирования и отладки верны лишь в той мере, в которой свойства использованных моделей компонентов совпадают с реальностью. Например, в моделях нередко учитываются лишь главные свойства прототипа, а существенными для проверяемой конструкции, но неучтенными, зачастую оказываются второстепенные характеристики. Поэтому компьютерное моделирование вовсе не отменяет необходимости знания принципов и особенностей работы тех или иных узлов и проверки полученных результатов на реальном устройстве. Программный пакет Proteus состоит из двух модулей: ISIS – программа синтеза и моделирования непосредственно электронных схем и ARES – программа разработки печатных плат. Вместе с самим пакетом Proteus устанавливается широкий набор демонстрационных проектов для ознакомления с работой системы, с которым целесообразно ознакомиться. В настоящей работе рассматриваются основные возможности только модуля ISIS. Более детальную информацию можно получить, выбрав пункт меню Help. Практическое занятие №1 ВИРТУАЛЬНЫЕ ИНСТРУМЕНТЫ ПРОГРАММЫ СИНТЕЗА И МОДЕЛИРОВАНИЯ ISIS PROTEUS Цель занятия: Изучение интерфейса и виртуальных инструментов программы ISIS Proteus, приобретение навыков их применения для синтеза и моделирования простых электронных схем. 1. Интерфейс системы моделирования Proteus При запуске Proteus появляется главное окно Home Page, представляющее сводную информацию о системе. Для входа в модуль ISIS следует нажать одноименную кнопку меню в верхней части главного окна. Появляющееся окно ISIS Schematic Capture состоит из нескольких областей, наибольшая из которых является рабочим окном редактирования. Вверху находятся пункты меню, предоставляющие пользователю полный набор возможных действий, имеющихся в ISIS Proteus. Под ним расположены кнопки верхней панели инструментов, позволяющие выполнить часто используемые команды такие, как открытие и сохранение проекта, масштабирование и позиционирование принципиальной схемы устройства, копирование и перемещение выделенных областей схемы. На левом краю рабочего окна расположена левая панель инструментов, с помощью которых, в основном, и проектируется принципиальная схема устройства. Следует понимать, что одно и то же действие можно выполнить различными способами, используя систему 6 меню, панель инструментов или контекстное меню, выпадающее при нажатии правой кнопки или двукратном нажатии левой кнопки мыши. В левом верхнем углу главного окна располагается окно предварительного просмотра, позволяющее оперативно перемещаться по схеме проекта. Под ним расположено окно, куда выводится различная информация, характер которой зависит от того, какая из кнопок нажата на левой панели инструментов. Это может быть список компонентов схемы, меток, виртуальных инструментов, пробников и т.д. Внизу на краю главного окна расположены четыре кнопки управления процессом моделирования, задающие его старт, пошаговое выполнение программы микроконтроллера, паузу и остановку процесса моделирования. К наиболее часто используемым кнопкам левой панели инструментов относятся: Selection Mode. При нажатой кнопке пользователь получает возможность редактировать схему устройства, т.е. выделять отдельные компоненты или структурные блоки, копировать их в буфер, удалять, масштабировать, и т.д. Можно позиционировать схему, перемещая в окне предварительного просмотра (справа от кнопки) перекрестие «прицела» при нажатой левой кнопке мыши. Вторичное нажатие кнопки мыши фиксирует положение схемы в окне редактирования. Component Mode. При нажатии кнопки в соседнем с ней окне появляется список используемых в открытом проекте компонентов (если проект еще не создан, список пустой). Выделив левой кнопкой мыши любой из компонентов списка, можно вторичным нажатием левой кнопки установить его в произвольном месте окна редактирования. Двукратное нажатие правой кнопки мыши удаляет компонент из окна редактирования. С помощью кнопки «Р», расположенной под окном предварительного просмотра, открывается окно поиска компонентов Pick Device, предназначенное для входа в библиотеку компонентов системы Proteus. В этом окне все компоненты структурированы по категориям, подкатегориям и изготовителям. Каждый компонент имеет краткое описание и графическое изображение на принципиальной схеме. Нажатие в окне клавиши «Ok» помещает выбранный библиотечный компонент в список компонентов проекта, откуда его можно переместить в окно редактирования. Таким способом все необходимые для проекта компоненты из библиотеки перемещаются в окно редактирования. Junction Dot Mode. При нажатой кнопке можно соединить любое пересечение проводников на схеме. Соединение выводов компонентов друг с другом можно осуществлять и при других нажатых кнопках, например, сразу после установки компонентов в окне редактирования, т.е. при нажатой кнопке «Component Mode». Сам процесс соединения сводится к подведению курсора к выводу компонента (при этом на схеме появляется образ контактной площадки), нажатию левой кнопки мыши и проведению проводника к другому выводу компонента или другому проводнику. После этого для фиксации соединения следует нажать левую кнопку мыши. Если в процессе соединения компонентов проводник не устанавливается в необходимое положение, то можно прокладывать проводник по частям, фиксируя положение точек изгиба проводника нажатием левой кнопки мыши. Wire Label Mode. При нажатой кнопке можно присвоить любому проводнику имя. Это позволяет соединять отдельные выводы компонентов и цепи условно, без явного использования проводников. 7 Text Script Mode. При нажатии кнопки можно вставить текст в любое место схемы в окне редактирования. Полезно для создания комментариев при проектировании устройств. Buses Mode. При нажатой кнопке можно проложить на принципиальной схеме шину, состоящую из нескольких проводников. Subcircuit Mode. Кнопка позволяет создать субсхемы, представляющие собой некие функциональные блоки с выводами-соединителями. Terminals Mode. Кнопка позволяет установить на принципиальной схеме устройства такие элементы, как питание, общая шина, межблочные соединения, выводы. Device Pins Mode. Кнопка позволяет добавить вывод к создаваемому компоненту. Graph Mode. При нажатой кнопке в окне редактирования можно установить набор графических инструментов, предоставляющих пользователю широкие возможности по отображению сигналов, их детальному анализу и математической обработке, а также сохранению результатов моделирования. Причем контуры поля графиков любых размеров могут быть «нарисованы» мышкой в любом месте рабочего окна. Отпускание и повторное нажатие левой кнопки мыши фиксирует выбранные размеры поля и делает его видимым. Generator Mode. Нажатие кнопки выводит список генераторов сигналов различной формы: синусоидальный, импульсный, экспоненциальный и т.д. Probe Mode. Предназначен для указания точки проводника, в которой необходимо измерить напряжение или ток, и присвоения имени участку цепи с данной точкой. Используется совместно с графическими средствами измерения напряжения и тока (см. кнопку «Graph Mode»). Instruments Mode. При нажатии кнопки появляется список виртуальных инструментов, среди которых генератор сигналов специальной формы, 4канальный осциллограф, вольтметры и амперметры постоянного и переменного токов, виртуальный терминал и др. Виртуальный генератор сигналов, в отличие от выше рассмотренного генератора, вызываемого кнопкой «Generator Mode», может изменять параметры тестового сигнала непосредственно в процессе моделирования работы устройства. Для этого на его лицевой панели имеются специальные органы управления, позволяющие оперативно, без остановки процесса моделирования изменять форму сигнала, его частоту и амплитуду. С помощью осциллографа можно исследовать сигнал в реальном масштабе времени. Как и у других виртуальных инструментов в нем имеются органы управления, позволяющие изменять частоту развертки, чувствительность, настраивать цветовую гамму изображения (луч, дисплей, сетка, курсор) и т.д. Для измерения напряжения или тока к участку цепи на принципиальной схеме устройства подключают вольтметр или амперметр так, как если бы это были реальные приборы, после чего запускают процесс моделирования. При остановленном процессе моделирования можно изменить диапазон измерения, т.е. превратить вольтметр, например, в милливольтметр. Виртуальный терминал позволяет смоделировать обмен данными между микроконтроллером и персональным компьютером, использующими для этого последовательный RS-интерфейс. Другие виртуальные инструменты позволяют решать задачи, связанные с отладкой работы периферийных устройств, взаимодействующих с микроконтроллером посредством SPI- или I2C-интерфейсов. 8 2. Порядок выполнения задания 1. Ознакомиться с изложенным выше кратким описанием интерфейса системы моделирования Proteus. 2. Изучить работу виртуальных инструментов модуля ISIS Proteus, для чего создать принципиальную электрическую схему, содержащую виртуальный генератор сигналов специальной формы и виртуальный осциллограф. С помощью последнего исследовать форму сигналов и их основные параметры, такие как амплитуда, частота и скважность. 3. Заменить в схеме виртуальный генератор на обычный генератор сигналов, устанавливаемый кнопкой «Generator Mode» на левой панели инструментов и провести аналогичные измерения, варьируя форму выходных сигналов и их основные параметры в окне Sine Generator Properties, которое открывается из контекстного меню как Edit Properties. 4. Подключить к нагрузке вольтметр переменного тока и измерить действующее значение напряжения, изменяющегося по синусоидальному закону. 5. Подключить к нагрузке вольтметр постоянного тока, задать период синусоидального сигнала генератора около 100 с и произвести измерения напряжения на нагрузке. 6. Дополнить схему аналоговым графопостроителем ANALOGUE (кнопка «Graph Mode» на левой панели инструментов) и произвести измерение и анализ синусоидального сигнала частотой около 10 Гц. Конечное время моделирования установить равным 0,5с в окне Edit Transient Graph, которое открывается из контекстного меню как Edit Properties. Предварительно следует указать точку измерения щупом напряжения (кнопка «Probe Mode») и выбрать метку щупа в поле Probe P1 окна Add Transient Trace, которое открывается из контекстного меню как Add Traces… В результате в черном поле графопостроителя образуются оси графика с соответствующей разметкой. Другой способ формирования осей заключается в захвате левой кнопкой мыши выделенной метки щупа и ее перетаскивании на черное поле графопостроителя с последующим отпусканием кнопки мыши. Симуляция самого графика осуществляется нажатием клавиши «Space» или выбором в контекстном меню Simulate Graph. 7. Дополнить схему графическим спектроанализатором FOURIER и произвести измерение спектра синусоидального и импульсного сигналов частотой около 10 Гц. Конечное время моделирования установить равным 10 с, максимальную частоту – 100 Гц, разрешение – 1 Гц, воспользовавшись окном Edit Fourier Analysis Graph, которое открывается из контекстного меню как Edit Properties. Формирование осей и симуляция графика аналогичны пункту 6. Перемещая курсор по спектру, измерить амплитуду основной гармоники и сравнить ее со значением, устанавливаемым в настройках генератора синусоидального сигнала. 8. Оформить протокол и ознакомиться с контрольными вопросами. 9 3. Содержание отчета 1. Название и цель занятия. 2. Скриншоты схем, исследованных в работе. 3. Скриншоты графиков характеристик, полученных виртуальным осциллографом, аналоговым графопостроителем и спектроанализатором. 4. Основные выводы по выполненному заданию. 4. Контрольные вопросы 1 . Чем отличается система Proteus от других САПР аналогичного назначения? 2 . Из каких модулей состоит система Proteus? 3 . Какое окно появляется при запуске системы Proteus? 4 . Что собой представляет окно ISIS Schematic Capture? 5 . Какими способами можно выполнить одно и то же действие в системе Proteus? 6 . Перечислите наиболее часто используемые кнопки панели инструментов. 7 . Каким образом формируется список компонентов проектируемой схемы? 8 . Каким образом формируются поля графопостроителей? 9 . Каким образом формируются оси графиков в полях графопостроителей? 10. Как задаются параметры виртуальных инструментов с помощью контекстного меню? Практическое занятие №2 МОДЕЛИРОВАНИЕ ДВУХПРОВОДНОГО ИНТЕРФЕЙСА RS-485 Цель занятия: Изучение элементной базы интерфейса RS-485 и приобретение навыков моделирования его двухпроводной версии в среде Proteus. 1. Элементная база интерфейса RS-485 Интерфейс RS-485 является наиболее распространенным в промышленной автоматизации. Его используют промышленные сети Modbus, Profibus DP, ARCNET, BitBus, WorldFip, LON, Interbus и множество нестандартных сетей. Связано это с тем, что по всем основным показателям данный интерфейс является наилучшим из всех возможных при современном уровне развития технологии. Элементная база интерфейса в значительной степени определяет его преимущества: Относительно низкая себестоимость микросхем драйверов, что снижает стоимость аппаратной реализации сетевых диспетчеров, т.е. узлов связи между сетевой средой (линиями связи) и ядром станции (узла) сети, т.е. микроконтроллерной или микропроцессорной системой; 10 Микросхемы драйверов имеют малые габаритные размеры. Наиболее часто используются микросхемы, выполненные в корпусе DIP8 со стандартным расположением выводов, ставшим, промышленным стандартом. Микросхемы драйверов используют всего несколько дискретных элементов для цепей защиты, использование которых не является обязательным. Малые габаритные размеры микросхем драйверов и минимальное количество обвязки экономит площадь печатной платы, что также положительно сказывается на стоимости системы; Современные микросхемы имеют достаточно низкое энергопотребление, многие из них при отсутствии активности в сети автоматически переходят в режим экономии, что снижает энергопотребление системы; Современные микросхемы драйверов имеют повышенную нагрузочную способность. Если ранее большинство микросхем было рассчитано на работу с 32 станциями, то современные модели обеспечивают нормальное функционирование до 256 станций; В настоящее время выпускаются микросхемы с высокой предельной скоростью передачи. Это позволяет создавать высокоскоростные сети, и снижает количество ошибок в сети за счет улучшения формы передаваемого сигнала; Драйверы интерфейса RS485 имеют достаточно простое управление. Особенности организации сетей, их схемотехника, способы управления доступом к каналу и примеры программирования достаточно хорошо описаны. Микросхемы интерфейса RS485 выпускают многие фирмы мира. Однако несомненным лидером в разработке и выпуске новых микросхем драйверов является известная фирма Maxim Integrated. В настоящее время фирма выпускает более 80 типов микросхем драйверов интерфейса RS485/422. Все микросхемы драйверов можно условно разделить на следующие группы: микросхемы с питанием +5 В, микросхемы с расширенным диапазоном питания от 3 до 5.5 В, низковольтные микросхемы с питанием 3.3 В и микросхемы со встроенной оптической изоляцией. Одними из первых начали производиться микросхемы MAX481/483/485/487. Затем к семейству добавилась микросхема MAX1487, а позже появились цепи защиты от электростатики (до ±15 кВ) и к обозначению микросхем была добавлена буква «E». Микросхемы позволяют объединять в сеть до 32 устройств (за исключением драйвера MAX487, который может объединять до 128 станций) и обеспечивают не очень высокую скорость передачи данных с точки зрения современных требований. Однако именно они и их аналоги легли в основу стандартного расположения выводов микросхем интерфейса RS-485. Расположение выводов микросхем, внешний вид в корпусе DIP8 и условное графическое обозначение в среде Proteus показаны на рисунке. 11 Обозначения выводов микросхем MAX481/483/485/487/1487: RO — Receiver Output — Выход приемника. RE| — Receiver Output Enable — Разрешение выхода приемника при RE|=0. При RE|=1 выход RO находится в высокоимпедансном состоянии. DE — Driver Output Enable — Разрешение выходов передатчика. Если DE=1 выходы активны, в противном случае они находятся в высокоимпедансном состоянии. DI — Driver Input — Вход передатчика. GND — Ground — Общий провод питания. A — Noninverting Receiver Input and Driver Output — Неинвертирующий вход/выход. B — Inverting Receiver Input and Driver Output — Инвертирующий вход/выход. VCC — Positive Supply — Напряжение питания. Семейство микросхем MAX3082/3085/3088 по выводам полностью совместимо со стандартным семейством MAX481/483/485/487/1487 и отличается повышенными нагрузочной способностью (до 256 станций) и быстродействием: 500 кб/с для MAX3085(E) и 10 Mб/с для MAX3088(E). Семейство микросхем MAX3463/3464 отличается еще более высоким быстродействием до 20 Mб/с, наличием режима экономии при выключении приемника и передатчика с током потребления менее 1 мкА, защитой от короткого замыкания и неправильного подключения линий «A» и «B», совместимостью с промышленным стандартом Profibus. Специально для систем со сверхмалым энергопотреблением разработана микросхема MAX1483. Представляет также интерес микросхема MAX3443E, предназначенная для работы в сетях с повышенным уровнем помех. Семейство микросхем MAX3483(E)/3485(E)/3486(E) относится к группе, которая использует питание 3.3 В. Группа микросхем со встроенной оптической изоляцией содержит четыре семейства микросхем и имеет свои особенности. Все микросхемы этой группы выпускаются в достаточно больших корпусах, имеют достаточно большое потребление, нуждаются в значительном количестве внешних элементов обвязки, имеют не очень большое быстродействие и высокую стоимость. Для согласования линии интерфейса RS-485 используют терминальные (концевые) резисторы. Величину резистора выбирают в зависимости от волнового сопротивления используемого кабеля. Для систем промышленной автоматики используются кабели с волновым сопротивлением от 100 до 150 Ом, однако кабели, спроектированные специально для интерфейса RS-485, имеют волновое сопротивление 120 Ом. На такое же сопротивление обычно рассчитаны микросхемы трансиверов интерфейса RS-485. Поэтому сопротивление терминального резистора выбирается равным 120 Ом с мощностью рассеяния 0,25 Вт. 12 Резисторы ставят на двух противоположных концах кабеля. Распространенной ошибкой является установка резистора на входе каждого приемника, подключенного к линии, или на конце каждого отвода от линии, что перегружает стандартный передатчик. Дело в том, что два терминальных резистора в сумме дают 60 Ом и потребляют ток 25 мА при напряжении на выходе передатчика 1,5В. Кроме этого, 32 приемника со стандартным входным током 1 мА потребляют от линии 32 мА, при этом общее потребление тока от передатчика составляет 57 мА. Обычно это значение близко к максимально допустимому току нагрузки стандартного передатчика RS-485. Поэтому нагрузка передатчика дополнительными резисторами может привести к его отключению средствами встроенной автоматической защиты от перегрузки. Второй причиной, которая запрещает использование резистора в любом месте, кроме концов линии, является отражение сигнала от места расположения резистора. При расчете сопротивления согласующего резистора нужно учитывать общее сопротивление всех нагрузок на конце линии. Например, если к концу линии подключен шкаф комплектной автоматики, в котором расположены 30 модулей с портом RS-485, каждый из которых имеет входное сопротивление 12 кОм, то общее сопротивление всех модулей будет равно 12 кОм/30 = 400 Ом. Поэтому для получения сопротивления нагрузки линии 120 Ом сопротивление терминального резистора должно быть равно 171 Ом. 2. Порядок выполнения занятия 1. Ознакомиться с изложенным выше кратким описанием элементной базы интерфейса RS-485. 2. Изучить работу передатчика микросхемы MAX487, для чего создать средствами программы ISIS Proteus следующую принципиальную электрическую схему: 3. С помощью виртуального осциллографа исследовать форму и параметры сигналов на линиях «А» и «В». Манипулируя кнопками лицевой панели осциллографа во время симуляции, имитировать осциллографом работу приемника с дифференциальным и синфазным сигналами. Во всех случаях частоту прямоугольных импульсов виртуального генератора установить 9,6 кГц при амплитуде 5В. 4. Оценить время задержки приемника микросхемы MAX487, для чего создать средствами программы ISIS Proteus следующую принципиальную электрическую схему: 13 Частоту прямоугольных импульсов виртуального генератора установить 100 кГц при амплитуде 5В. 5. Исследовать модель двухпроводной версии интерфейса RS-485, для чего создать средствами программы ISIS Proteus следующую принципиальную электрическую схему: Для цифровых генераторов источников сигналов выбрать тип Clock и установить частоту 1 кГц для Data1_Tx и 2 кГц для Data2_Tx. В качестве переключателей SW1, SW2 использовать интерактивные ключи SW-SPDT. Манипулируя ключами, получить осциллограмы полудуплексного режима работы интерфейса. 6. Повторить исследования предыдущего пункта, заменив виртуальный осциллограф на цифровой графопостроитель DIGITAL. Конечное время моделирования установить равным 10 мс. 14 7. Оформить протокол и ознакомиться с контрольными вопросами. 3. Содержание отчета 1. Название и цель занятия. 2. Скриншоты схем, исследованных в работе. 3. Скриншоты графиков сигналов, полученных виртуальным осциллографом и цифровым графопостроителем. 4. Основные выводы по выполненному заданию. 4. Контрольные вопросы 1 . В каких промышленных сетях используется интерфейс RS-485? 2 . Какие преимущества определяет элементная база интерфейса RS-485? 3. Сколько станций позволяют подключать современные микросхемы драйверов? 4 . На какие группы можно условно разделить микросхемы драйверов? 5 . Охарактеризуйте микросхемы семейства MAX481/483/485/487. 6 . Как обозначаются выводы микросхем семейства MAX481/483/485/487? 7 . Что характерно для микросхем семейства MAX3483(E)/3485(E)/3486(E)? 8 . Чем отличаются микросхемы со встроенной оптической изоляцией? 9 . Как рассчитываются сопротивления терминальных резисторов? 10. Какие причины определяют места установки терминальных резисторов? Практическое занятие №3 МОДЕЛИРОВАНИЕ КОНВЕРТЕРА УРОВНЕЙ СИГНАЛОВ ТТЛ/RS-232 Цель занятия: Изучение элементной базы интерфейса RS-232 и приобретение навыков моделирования конвертера уровней сигналов ТТЛ/RS-232 в среде Proteus. 1. Элементная база интерфейса RS-232 В основе всех промышленных сетей лежит последовательный интерфейс. По режиму обмена информацией (например, между микроконтроллерами) интерфейсы подразделяют на симплексные, полудуплексные, дуплексные и мультиплексные: 15 Одним из первых последовательных интерфейсов, предназначенным для работы в дуплексном режиме, был RS-232. Разработанный еще в 1969 году этот интерфейс до сих пор не утратил своего значения. Поразительная «живучесть» интерфейса объясняется в относительно высокой его сбалансированности и универсальности. В интерфейсе RS-232 удачно сочетаются средняя скорость обмена, среднее расстояние линии связи, средняя простота программирования, средняя надежность обмена информации и т. п. Именно поэтому интерфейсом RS-232 продолжают оснащать современные промышленные компьютеры, ПЛК и микроконтроллеры. Помимо всего прочего, интерфейс RS-232 является на настоящий момент едва ли не единственным средством связи между компьютером и микроконтроллером (если, конечно, не принимать во внимание выпущенные в последнее время микроконтроллеры с интерфейсом USB). Учитывая это, такие ведущие фирмы-производители микроконтроллеров, как Analog Devices, Texas Instruments, Atmel, Philips и др. стали выпускать микроконтроллеры, которые обладают свойством «программирования-в-системе» (In-System-Programming — ISP) по интерфейсу RS-232. Последовательный интерфейс RS-232 синхронной и асинхронной передачи данных описывает несимметричные передатчики и приемники — сигнал передается относительно общего провода — схемной земли. Интерфейс не обеспечивает гальванической развязки устройств. Логической единице на входе данных (сигнал RxD) соответствует диапазон напряжения от –12 до –3 В, а логическому нулю — от +3 до +12 В. Для входов управляющих сигналов состоянию ON (“включено”) соответствует диапазон от +3 до +12 В, состоянию OFF (“выключено”) — от –12 до –3 В. Диапазон от –3 до +3 В — зона нечувствительности, обусловливающая гистерезис приемника: состояние линии будет считаться измененным только после пересечения порога как это показано на рисунке. Уровни сигналов на выходах передатчиков должны быть в диапазонах от –12 до –5 В и от +5 до +12 В. Разность потенциалов между схемными землями (SG) соединяемых устройств должна быть менее 2 В, при более высокой разности потенциалов возможно неверное восприятие сигналов. Максимальная скорость передачи данных для RS-232C составляет от 120 до 250 кбит/с. Максимальное расстояние – 20 м. Стандарт RS-232 подразумевает наличие оборудования двух видов: терминального (DTE) и связного (DСЕ). В качестве терминального оборудования может быть использован персональный компьютер, способный производить прием или передачу данных по последовательному интерфейсу. Под связным оборудованием понимаются 16 устройства, которые могут упростить последовательную передачу данных совместно с терминальным оборудованием. Наглядным примером связного оборудования служит модем. Многие фирмы в мире выпускают широкую номенклатуру микросхем, предназначенных для преобразования ТТЛ/КМОП уровней сигналов в уровни RS-232 и обратно. Большинство из них имеют встроенный преобразователь напряжения, что позволяет использовать только питание +5В. Различные типы микросхем, помимо прочих признаков, отличаются количеством и номиналом требуемых навесных конденсаторов. В составе некоторых микросхем имеются цепи позволяющие использовать внешние источники питания с напряжением от 7,5 до 13 В, без использования дополнительных конденсаторов. Разнообразие предложений определяется широким спектром параметров и эксплуатационных свойств. Своего рода промышленным стандартом является микросхема MAX232, выпускаемая известной фирмой Maxim Integrated. Многие разработчики используют ее, несмотря на то, что параметры микросхем с однополярным питанием со временем значительно улучшились. Расположение выводов микросхемы, внешний вид в корпусе DIL16 и условное графическое обозначение в среде Proteus показаны на рисунке. Обозначения выводов микросхемы MAX232: C1+, C1- – Подключение внешнего конденсатора удвоителя напряжения. V+, V- – Выходные напряжения удвоителя и инвертора. C2+, C2- – Подключение внешнего конденсатора инвертора напряжения. R1OUT , R2OUT — Receiver Output — Выходы приемников. T1OUT , T2OUT – Transmiter Output — Выходы передатчиков. R1IN , R2IN — Receiver Input — Входы приемников. T1OUT , T2OUT – Transmiter Input — Входы передатчиков. GND — Ground — Общий провод питания. VCC — Positive Supply — Напряжение питания. Семейство микросхем MAX220-MAX249 линейных приемо-передатчиков предназначены для интерфейсов EIA/TIA-232E и V.28/V.24, особенно в устройствах, где отсутствуют напряжения ±12В. Альтернативная микросхема ICL232. Модификация MAX232A обратно совместима с MAX232, но может работать на более высоких скоростях, и использовать внешние конденсаторы меньшей ёмкости — 0.1 мкФ вместо конденсаторов 1.0 мкФ, используемых оригинальной схемой. Микросхема MAX232CPE+ 17 отличается от MAX232CPE новой экологичной безсвинцовой технологией производства (Pb free). Микросхема MAX1406 отличается высокой скоростью работы (до 230 кбит/с) [2], отсутствием преобразователей напряжения, наличием трех приемопередатчиков и пониженным потреблением энергии. Микросхема передатчика RS-232 MAX3190 отличается еще более высокой скоростью работы (до 460 кбит/с), уникально малым корпусом SOT23-6 размером 3х3 мм и наличием «спящего» режима. Столь же малые микросхемы приемников MAX3181 и MAX3183 работают на сверхвысокой скорости для интерфейса RS-232 до 1,5 Мбит/с. Последняя модификация — MAX3232 — обратно совместима с предыдущими, но работает в диапазоне напряжений от 3 до 5,5В. Из множества аналогов следует выделить микросхемы ADM231L, ADM3202 от Analog Devices и SN75155 от Texas Instruments. Помимо специализированных микросхем преобразователей интерфейса RS-232, существуют электронные компоненты, строго говоря, не являющиеся таковыми, но которые можно использовать в качестве преобразователей. К ним можно отнести МОПтранзисторы с изолированным затвором p- и n-типа проводимости канала (например, BS250, 2N7000G и др.), которые с успехом могут служить приемниками RS-232, т.к. их затвор (Uзи=±20 В) без каких-либо дополнительных резисторов может непосредственно контактировать с выходными линиями RS-232. Выполнять функции приемника и передатчика интерфейса RS-232 может также микросхема коммутатора DG419 фирмы Maxim Integrated. Интерфейс RS-232 часто используется для передачи данных с последовательного COM-порта компьютера во внешнее устройство для его программирования, отладки или управления исполнительными устройствами. В такой простой системе управления, например, микроконтроллер, получает данные от программы, работающей под управлением какой-либо операционной системы, и выполняет соответствующий алгоритм обработки этих данных. Для согласования уровней сигналов COMпорта (формат RS-232) и микроконтроллера (формат ТТЛ) применяются конвертеры уровней сигналов ТТЛ/ RS-232. 2. Порядок выполнения задания 1. Ознакомиться с изложенным выше кратким описанием элементной базы интерфейса RS-232. 2. Изучить работу передатчика микросхемы MAX232 (конвертера уровней сигналов ТТЛ/ RS-232), для чего создать средствами программы ISIS Proteus следующую принципиальную электрическую схему: 18 3. С помощью виртуального осциллографа исследовать параметры сигналов на линиях T1IN и T1OUT, установив частоту прямоугольных импульсов виртуального генератора 9,6 кГц при амплитуде 5В. Оценить напряжения встроенного преобразователя напряжений микросхемы MAX232. 4. Изучить работу конвертера уровней сигналов ТТЛ/ RS-232/ ТТЛ, для чего создать средствами программы ISIS Proteus следующую принципиальную электрическую схему: 5. С помощью виртуального осциллографа исследовать параметры сигналов на входе IN и выходе D коммутатора DG419, выполняющего функции передатчика, и на выходе приемника, реализованного на МОП-транзисторе 2N7000G. Частоту прямоугольных импульсов виртуального генератора амплитудой 5В установить 9,6 кГц. 6. Повторить исследования предыдущего пункта, заменив приемник на транзисторе Q1 второй схемой на коммутаторе DG419. 7. Исследовать модель физического уровня интерфейса RS-232C (нуль-модемное соединение), для чего создать средствами программы ISIS Proteus следующую принципиальную электрическую схему: 19 8. С помощью виртуального осциллографа исследовать параметры сигналов на линиях T1IN и R1OUT дуплексного режима работы интерфейса, установив частоту прямоугольных импульсов виртуальных генераторов 9,6 кГц и 96 кГц при амплитуде 5В. 9. Повторить исследования предыдущего пункта, заменив виртуальные приборы на цифровые генераторы источников сигналов Data1_IN (9,6 кГц), Data2_IN (96 кГц) и цифровой графопостроитель DIGITAL. Конечное время моделирования установить равным 300 мкс. 10. Оформить протокол и ознакомиться с контрольными вопросами. 3. Содержание отчета 1. Название и цель занятия. 2. Скриншоты схем, исследованных в работе. 3. Скриншоты графиков сигналов, полученных виртуальным осциллографом и цифровым графопостроителем. 4. Основные выводы по выполненному заданию. 4. Контрольные вопросы 1 . Какой тип интерфейса лежит в основе всех промышленных сетей? 2 . Как подразделяются последовательные интерфейсы по режиму обмена информацией? 3. Чем объясняется многолетняя популярность интерфейса RS-232? 4 . Где преимущественно применяется интерфейс RS-232? 5 . Охарактеризуйте микросхемы семейства MAX220-МАХ249 и их современные типы. 6 . Как обозначаются выводы микросхемы MAX232? 7 . Перечислите основные характеристики интерфейса RS-232. 8 . Наличие какого оборудования подразумевает стандарт RS-232? 9. Какие электронные компоненты могут выполнять функции конвертера уровней сигналов ТТЛ/RS-232? 10. Какие функции выполняет встроенный преобразователь напряжения микросхемы MAX232? 20 Практическое занятие №4 МОДЕЛИРОВАНИЕ РАБОТЫ ПОСЛЕДОВАТЕЛЬНОГО ИНТЕРФЕЙСА USART Цель занятия: Изучение интерфейса микроконтроллеров USART и приобретение навыков его моделирования в среде Proteus. 1. Основы интерфейса микроконтроллеров USART Анализ оснащенности встраиваемыми интерфейсами современных микроконтроллеров ведущих мировых фирм Silicon Laboratories Corp., Atmel Corp., MAXIM-Dallas Corp. позволяет утверждать, что среди современных микроконтроллеров практически все оснащены одним и значительная часть - двумя последовательными портами USART. Микроконтроллеры семейства AVR Mega могут иметь до четырёх модулей универсального синхронно/асинхронного приёмопередатчика USART. Все модули USART обеспечивают дуплексный обмен информацией по последовательному каналу. Длина информационной посылки от пяти до девяти двоичных разрядов. Во всех модулях имеются узлы контроля и формирования разряда чётности. Для взаимодействия с программой USART формирует три вида запросов прерывания при событиях "передача завершена", "информационный регистр передатчика пуст" и "приём завершён". Связь модулей USART с внешним миром обеспечивают альтернативные функции линий ввода/вывода общего назначения. Например, в микроконтроллере ATmega16 линия PD0 может служить информационным входом USART (RXD), линия PD1 — информационным выходом USART (TXD), линия PB0 — входом или выходом тактового сигнала USART (XCK). В случае наиболее распространенного асинхронного варианта применения возможны варианты прямого подключения двух UART и сетевого подключения нескольких модулей для полудуплексной передачи данных по одному проводу. При этом выводы TX и RX каждого устройства соединяются вместе. Арбитраж в сети реализуется программно. USART преимущественно используется для взаимодействия компонентов внутри одного устройства. Для внешних подключений сигналы с уровнями логики ТТЛ или КМОП мало подходят из-за низкой помехоустойчивости. Распространённым стандартом физического уровня для USART, который подходит для подключения внешних устройств является RS-232. Модуль USART состоит из трёх основных частей: блока тактирования, блока передатчика и блока приёмника. Регистр UDR объединяет буферы приёмника и 21 передатчика. Операцией чтения из него извлекают последний принятый байт, а операцией записи в него помещают байт, подлежащий передаче. Для управления в каждом модуле USART имеются три регистра: UCSRA, UCSRB, UCSRC. Работу передатчика разрешают записью единицы в разряд TXEN регистра UCSRB. При этом вывод TXD подключается к передатчику USART и начинает функционировать как выход независимо от установок регистров управления портом. Если задан синхронный режим работы, то изменяется также функция вывода XCK. Передачу инициируют записью байта в регистр UDR. Из него этот байт автоматически поступает в сдвиговый регистр передатчика. О пересылке в сдвиговый регистр заданного числа разрядов сигнализирует установленный в регистре UCSRA флаг UDRE, что означает готовность регистра UDR к получению нового байта. Запись в регистр UDR автоматически снимает этот флаг. Выключают передатчик обнулением разряда TXEN в регистре UCSRB. Если в момент выполнения этой операции передача ещё идёт, выключение передатчика произойдёт только по завершении текущей и отложенной передач, т. е. после очистки сдвигового и буферного регистров передатчика. При выключенном передатчике вывод TXD можно использовать как линию ввода/вывода общего назначения. Работу приёмника разрешают записью единицы в разряд RXEN регистра UCSRB. При этом вывод RXD будет подключён к приёмнику USART и начнёт функционировать как вход независимо от состояния регистров управления портом. Если используется синхронный режим работы, изменяются также функции вывода XCK. Выключают приёмник обнулением разряда RXEN регистра UCSRB. В отличие от передатчика, приёмник выключается немедленно. Информация, принимаемая в этот момент, будет потеряна. Кроме того, при выключении приёмника будет выполнена очистка его буфера, следовательно, потеряется и не прочитанная из него информация. При выключенном приёмнике вывод RXD можно использовать как линию ввода/вывода общего назначения. Моделирование работы интерфейса микроконтроллеров USART проводится в среде Proteus. Чтобы добавить микроконтроллер в рабочее поле симулятора, необходимо в поле Category (в левой верхней части окна Pick Devices) выбрать из списка библиотеку Microprocessor ICs, а в нижерасположенном поле Sub-Category задать семейство микроконтроллеров. В поле Manufacturer можно дополнительно указать производителя микроконтроллера. Кварцевый резонатор, необходимые для его работы конденсаторы и цепи питания в схему можно не добавлять, так как они эмулируются программно. Параметры размещённого на схеме микроконтроллера как и любого другого компонента при необходимости можно редактировать в окне Edit Component. Чтобы загрузить в микроконтроллер программу, следует выделить щелчком левой кнопки мыши его графическое изображение на рабочем поле проекта. Затем правой кнопкой мыши вызвать контекстное меню и выбрать в нём пункт Edit Source Code. В появляющемся окне New Project Wizard: Firmware выбрать Create Firmware Project (создать проект с микроконтроллером) и заполнить поля: Family — семейство микроконтроллеров (AVR); 22 Controller — тип микроконтроллера (ATmega16 или ATmega128); Compiler — компилятор языка, на котором написана программа микроконтроллера. В работе доступны AVRASM (Proteus) для программы на языке ассемблера и WinAVR для программы на языке С; Create Quick Start Files — создать заготовку текста программы микроконтроллера. Кнопка «Compilers…» в поле Compiler применяется для добавления компилятора в список доступных. В результате в проекте добавляется вкладка Source Code и открывается окно заготовки программы. 2. Порядок выполнения задания 1. Ознакомиться с изложенным выше кратким описанием последовательного интерфейса микроконтроллеров USART. 2. Изучить особенности моделирования схем с микроконтроллерами, для чего создать средствами программы ISIS Proteus приведенную ниже принципиальную электрическую схему. 3. Ввести в окне заготовки программы Source Code исходный код на языке С, реализующий программное управление поочередным включением двух светодиодов: #include <inttypes.h> #include <avr/io.h> #include <avr/interrupt.h> #include <avr/sleep.h> #include <util/delay.h> int main() { // Инициализация порта D DDRD=0xff; // Порт PD работает на вывод PORTD=0x00; // Бесконечный цикл while (1) // Вывод 1 на линию PD0 и 0 на PD1-PD7 {PORTD=0b00000001; // выдержка длительностью 1 с delay_ms(1000); // Вывод 1 на PD1 и 0 на PD0 PORTD=0b00000010; // выдержка длительностью 1 с delay_ms(1000); }} 4. Запустить процесс моделирования (с одновременной компиляцией) с помощью кнопки . Временно приостановить процесс моделирования можно, используя находящуюся рядом кнопку . Ей же приостановленный процесс запускается вновь. Полностью прекратить моделирование можно нажатием на кнопку . Пошаговый режим моделирования выполняется с помощью кнопки . 23 5. Проанализировать ошибки компиляции программы, фиксируемые в окне VSM Studio Output. Установить причину и устранить ошибки в тексте исходного кода. Убедиться в нормальной работе схемы. 6. Моделировать работу интерфейса микроконтроллера USART, организуя передачу на виртуальный терминал символов, для чего создать средствами программы ISIS Proteus приведенную ниже принципиальную электрическую схему. В окне настроек микроконтроллера Edit Component установить следующие параметры: CKOPT — 1 (не запрограммирован); BOOTRST — 1 (не запрограммирован); CKSEL Fuses — 1111 (высокочастотный внешний кварцевый резонатор); Boot Loader Size — 00 (1024 слова, стартовый адрес 0x1C00); SUT Fuses — 11; Advanced Properties — Clock Frequency 8000000. Настройки виртуального терминала должны соответствовать настройкам микроконтроллера. 7. Ввести в окне заготовки программы Source Code исходный код на языке С (приведен под рисунком схемы), реализующий программное управление передачей на экран виртуального терминала последовательности символов «А», «В» и «С». 8. Запустить процесс моделирования и убедиться в появлении на экране виртуального терминала указанных символов. В противном случае проанализировать ошибки в окне VSM Studio Output и принять меры к их устранению. #include <inttypes.h> #include <avr/io.h> #include <avr/interrupt.h> #include <avr/sleep.h> #include <util/delay.h> //Подпрограмма передачи void send_UART(char value) { //Ожидание очистки буфера передачи while(!( UCSR0A & (1 << UDRE0))); //Начало передачи 24 //Тактовая частота МК, Гц #define F_CPU 8000000 //Скорость UART #define BAUD 9600L //Значение регистра UBRR #define UBRRL_value (F_CPU/(BAUD*16))-1 UDR0 = value; } //Главная программа int main(void) { // Инициализация USART init_USART(); //Посылка кода символа 'A' send_UART(0b01000001); //Посылка кода символа 'B' send_UART(0b01000010); //Посылка кода символа 'C' send_UART(0b01000011); //Подпрограмма инициализации USART void init_USART() { //Младшие 8 разрядов UBRRL_value UBRR0L = UBRRL_value; //Старшие 8 разрядов UBRRH_value UBRR0H = UBRRL_value >> 8; //Разрешение передачи UCSR0B = (1<<TXEN0); //8 инф. разрядов UCSR0C = (1<<UCSZ00)|(1<<UCSZ01); } while (1) { _delay_ms(1000); } } 9. Используя таблицу кодов ASCII для России, внести изменения в исходный код, позволяющие передать на экран виртуального терминала имя студента. 10. Оформить протокол и ознакомиться с контрольными вопросами. 3. Содержание отчета 1. Название и цель занятия. 2. Скриншоты схем и исходных кодов, использованных в работе. 3. Основные выводы по выполненному заданию. 4. Контрольные вопросы 1 . К какому типу интерфейсов относится USART? 2 . Сколько модулей USART могут иметь современные микроконтроллеры? 3. Какие варианты подключения возможны для UART? 4 . Какие виды запросов прерывания формирует USART? 5 . Как обеспечивается связь модулей USART с внешними цепями микроконтроллера? 25 6 . Из каких основных частей состоит модуль USART? 7 . Какие регистры входят в состав модуля USART? 8 . В чем заключается отличие синхронного режима работы USART от асинхронного? 9. Как осуществляется управление работой передатчика и приемника USART? 10. Где в USART осуществляется преобразование формата данных? Практическое занятие №5 МОДЕЛИРОВАНИЕ РАБОТЫ ПОСЛЕДОВАТЕЛЬНОГО ИНТЕРФЕЙСА SPI Цель занятия: Изучение интерфейса микроконтроллеров SPI и приобретение навыков его моделирования в среде Proteus. 1. Основы последовательного интерфейса SPI Последовательный периферийный интерфейс SPI (Serial Peripheral Interface) — высокоскоростной полнодуплексный синхронный интерфейс, реализованный во всех микроконтроллерах AVR Mega. По распространенности среди встроенных интерфейсов других микроконтроллеров он уступает только USART. Интерфейс SPI обеспечивает обмен информацией между микроконтроллером и различными внешними периферийными устройствами — АЦП и ЦАП, цифровыми потенциометрами, запоминающими устройствами, другими микросхемами и микроконтроллерами. При обмене по интерфейсу SPI микроконтроллер AVR может быть ведущим (master) или ведомым (slave). Ведущий может быть связан с одним или несколькими ведомыми (до 8). Скорость передачи данных по интерфейсу до 2 Мбит/с, максимальное расстояние до 3м. Типичная схема соединения устройств по интерфейсу SPI показана на рисунке. Связь организуется с помощью следующих четырех линий: MOSI (master out, slave in) — информационный выход ведущего и вход ведомого устройства; 26 MISO (master in, slave out) — информационный вход ведущего и выход ведомого устройства; SCK (slave clock) — сигнал синхронизации (выход ведущего, вход ведомого); SS (slave select) — выбор устройства (выход ведущего, вход ведомого). Ведущий микроконтроллер формирует один или несколько сигналов SS (по числу ведомых). Ведомый участвует в обмене только в случае, если ведущий выбрал его, установив на соответствующей линии SS низкий логический уровень. Передача информации происходит по линиям MOSI и MISO. Процессом управляет ведущий, формируя тактовые импульсы на линии SCK. Одновременно с передачей информации от ведущего к ведомому происходит приём информации ведущим от ведомого. Ведомые устройства не могут обмениваться информацией между собой. В модуле SPI микроконтроллера имеются три служебных регистра: SPDR — информационный регистр, содержит отправляемый или принятый байт; SPCR — регистр управления модулем SPI; SPSR — регистр состояния модуля SPI. Включают или выключают модуль SPI записью соответственно единицы или нуля в шестой разряд (SPE) регистра SPCR. Пятый разряд (DORD) этого регистра задаёт порядок передачи информации (старшим или младшим байтом вперёд), а его четвёртый разряд (MSTR) — режим работы модуля (ведущий или ведомый). Частным случаем рассмотренной архитектуры является так называемая 3хпроводная структура. Ее отличие состоит в том, что ведомая микросхема постоянно выбрана, и, следовательно, необходимость в четвертой линии интерфейса SPI отсутствует. Расширенный интерфейс SPI позволяет организовать двухпроцессорную 4хпроводную архитектуру. В этом случае каждый из двух узлов может выполнять роль ведущего. На практике такая архитектура используется достаточно редко, ввиду алгоритмической сложности диагностики состояний коллизий. Более широко распространена архитектура с 4х-проводной «перекрестной» выборкой. В этом случае для выборки каждого из узлов используется линия ввода/вывода другого узла, работающая только на вывод. Такая архитектура необходима, если один из микроконтроллеров предназначен для ввода и обработки сигналов, а второй – для организации интерфейса с персональным компьютером или локальной сетью. В этом случае и один, и другой микроконтроллеры должны иметь возможность инициировать процедуру обмена данными, а, следовательно, должны иметь возможность функционирования в режиме ведущего. Более распространенный случай, это использование двухпроцессорной структуры с разделяемым ресурсом, например памятью. Здесь линии основных сигналов SPI шины подключены также к общему ведомому, а для выборки общего ведомого используется по одной дополнительной линии ввода/вывода от каждого из ведущих, объединенных по «монтажному ИЛИ». 2. Порядок выполнения задания 1. Ознакомиться с изложенным выше кратким описанием последовательного интерфейса микроконтроллеров SPI. 27 2. Моделировать передачу ведущим микроконтроллером U1 управляющего байта ведомому микроконтроллеру U2, который в подтверждение приема поочередно включает и выключает светодиоды. Для этого создать средствами программы ISIS Proteus следующую принципиальную электрическую схему: 3. В окнах настроек обоих микроконтроллеров Edit Component установить следующие параметры: CKOPT — 1 (не запрограммирован); BOOTRST — 1 (не запрограммирован); CKSEL Fuses — 0010 (внешний RC-генератор частотой 2Мгц); Boot Loader Size — 00 (1024 слова, стартовый адрес 0x1C00); SUT Fuses — 01; Advanced Properties — Clock Frequency (Default). 4. Ввести в окнах заготовки программы Source Code исходные коды на языке С для ведущего U1 (слева) и ведомого U2 (справа) микроконтроллеров: #include <inttypes.h> #include <avr/io.h> #include <avr/interrupt.h> #include <avr/sleep.h> #include <util/delay.h> #include <inttypes.h> #include <avr/io.h> #include <avr/interrupt.h> #include <avr/sleep.h> #include <util/delay.h> int main() { // Инициализация порта В в U2 PORTB=0b00000000; //Все линии порта В - входы DDRB=0b00000000; //Инициализация порта D PORTD=0b00000000; //Все линии порта D - выходы DDRD=0b11111111; //Инициализация SPI SPCR=0b01000011; //Бесконечный цикл while (1) { //Если кодовая комбинация не получена, if (SPDR!=0b11111110) int main() { // Инициализация порта в U1 PORTB=0b00000000; //Линии SS, MOSI, SCK настраиваются как выходы DDRB=0b10110000; //Инициализация SPI SPCR=0b01010011; //Отсылка ведомому кодовой комбинации SPDR=0b11111110; return 0; } 28 //устанавливается 0 на всех линиях порта D PORTD=0b00000000; //Если кодовая комбинация получена, else if (SPDR==0b11111110) //включается светодиод {PORTD=0b00000001; //Выдержка 1 с _delay_ms(1000); //Гасится светодиод и включается другой PORTD=0b10000000; //Выдержка 1 с _delay_ms(1000);} }} 5. Запустить процесс моделирования и убедиться в поочередном включении и выключении светодиодов. В противном случае проанализировать ошибки в окне VSM Studio Output и принять меры к их устранению. 6. Моделировать передачу ведущим микроконтроллером U1 управляющего байта сначала ведомому микроконтроллеру U2, а затем ведомому микроконтроллеру U3. В подтверждение приема каждый ведомый должен включить и выключить свой светодиод. Для выполнения задания создать средствами программы ISIS Proteus следующую принципиальную электрическую схему: 7. В окнах настроек всех микроконтроллеров Edit Component установить следующие параметры: CKOPT — 1 (не запрограммирован); 29 BOOTRST — 1 (не запрограммирован); CKSEL Fuses — 0001 (внутренний RC-генератор частотой 1Мгц); Boot Loader Size — 00 (1024 слова, стартовый адрес 0x1C00); SUT Fuses — 00; Advanced Properties — Clock Frequency (Default). 8. Ввести в окнах заготовки программы Source Code приведенные ниже исходные коды на языке С для ведущего U1 (слева) и ведомых U2, U3 (справа) микроконтроллеров. 9. Запустить процесс моделирования и убедиться в поочередном включении и выключении светодиодов, а также в наличии соответствующих осциллограмм. В противном случае проанализировать ошибки в окне VSM Studio Output и принять меры к их устранению. 10. Оформить протокол и ознакомиться с контрольными вопросами. #include <inttypes.h> #include <avr/io.h> #include <avr/interrupt.h> #include <avr/sleep.h> #include <util/delay.h> int main() { // Инициализация порта В в U1 PORTB=0b00000000; //Линии MOSI, SCK, PB0, PB1 - выходы DDRB=0b10100011; //Инициализация SPI SPCR=0b01010011; SPSR=0b00000000; //Выбор первого ведомого PORTB=0b00000010; //Отсылка ему кодовой комбинации SPDR=0b11111110; //Выдержка 10 с _delay_ms(10000); //Выбор второго ведомого PORTB=0b00000001; //Отсылка ему кодовой комбинации SPDR=0b11111110; //Выдержка 10 с _delay_ms(10000); return 0; } #include <inttypes.h> #include <avr/io.h> #include <avr/interrupt.h> #include <avr/sleep.h> #include <util/delay.h> int main() { // Инициализация порта В PORTB=0b00000000; //Все линии порта В - входы DDRB-0b00000000; //Инициализация порта D PORTD=0b00000000; //Все линии порта D - выходы DDRD=0b11111111; //Инициализация SPI SPCR=0b01000011; //Бесконечный цикл while (1) { if (SPDR!=0b11111110) //Если кодовая комбинация не получена //посылается 0 на все линии порта D PORTD=0b00000000; else //Если получена, включается светодиод {PORTD=0b00000001; //Выдержка 1 с _delay_ms(1000); //Гашение светодиода PORTD=0b10000000; //Выдержка 1 с _delay_ms(1000); } }} 30 3. Содержание отчета 1. Название и цель занятия. 2. Скриншоты схем, осциллограмм и исходных кодов, исследованных в работе. 3. Основные выводы по выполненному заданию. 4. Контрольные вопросы 1. К какому типу интерфейсов относится SPI? 2. Что собой представляет базовая архитектура SPI? 3. Какие линии связи используются в 4х-проводной структуре SPI? 4. Где преимущественно применяется интерфейс SPI? 5. Могут ли обмениваться информацией между собой ведомые устройства SPI? 6. Какие регистры имеются в модуле SPI микроконтроллера? 7. Как включается и выключается модуль SPI? 8. Какие линии связи используются в 3х-проводной структуре SPI? 9. Что собой представляет расширенный интерфейс SPI? 10. Перечислите основные характеристики интерфейса SPI. Практическое занятие №6 МОДЕЛИРОВАНИЕ РАБОТЫ ПОСЛЕДОВАТЕЛЬНОГО ИНТЕРФЕЙСА 1-WIRE Цель занятия: Изучение интерфейса микроконтроллеров 1-Wire и приобретение навыков его моделирования в среде Proteus. 1. Основы последовательного интерфейса 1-WIRE Интерфейс представляет собой низкоскоростную шину (15,4 Кбит/с, максимум 125 Кбит/с в режиме overdrive) двунаправленной передачи данных, разработанную корпорацией Dallas Semiconductor (с 2001г. Maxim Integrated). Особенностью шины является то, что и для питания подключенных устройств, и для обмена данными используется одна и та же пара проводов кабеля «витая пара». Для обеспечения питания схем во время передачи данных, устройства содержат внутренний конденсатор 800пФ, который заряжается, пока на шине нет активности. Все устройства 1-Wire реализуют схему с открытым стоком, замыкая линию на «землю». Длительность низкого уровня и определяет передаваемые данные. 31 При организации сети 1-Wire с топологией «общая шина», называемой MicroLan, максимальная длина может достигать 300м при общем числе устройств до 300. Интерфейс позволяет «горячее» подключение и отключение устройств. Любой обмен данными всегда инициируется единственным ведущим устройством – «мастером», роль которого в большинстве случаев выполняет микроконтроллер (МК). Вначале МК подает в шину 1-Wire импульс сброса RESET. Устройство, подключенное к 1-Wire, отвечает МК импульсом присутствия PRESENCE. Спецификация 1-Wire допускает достаточно широкий разброс временных параметров протокола связи, что облегчает его реализацию. Обмен информации ведется тайм-слотами. Один тайм-слот служит для обмена одним битом информации. Тайм-слот – это по существу определенная, жестко лимитированная по времени последовательность смены уровней сигнала в линии 1-Wire. Различают 4 типа тайм-слотов: передача "1" от МК, передача "0" от МК, прием "1" от устройства и прием "0" от устройства. 32 МК начинает тайм-слот с выдачи в шину 1-Wire "0" в течение 1 мкс. Последующий уровень зависит от типа тайм слота: для приема и передачи "1" уровень должен стать высоким, а для передачи "0" - оставаться низким вплоть до конца тайм-слота, т.е. не менее 60 и не более 120 мкс. Если МК принимает данные, то опрос уровня в шине он должен сделать на промежутке от 13-й до 15-й мкс тайм-слота. МК должен обеспечить интервал между отдельными тайм-слотами не менее 1 мкс. Заштрихованная на рисунке область это область "нарастания" уровня в шине 1-Wire, которая зависит от емкости линии и сопротивления резистора «подтяжки». Данные в шине 1-Wire передаются побайтно, бит за битом, начиная с младшего бита. Достоверность переданных/принятых данных гарантируется путем подсчета циклической контрольной суммы. Принципы адресации устройств и управления ими в сети 1-Wire основываются на том, что каждое устройство 1-Wire обладает уникальным идентификационным 8-байтным номером, программируемым на этапе производства микросхемы. Первый байт представляет собой «код семейства» определяющий тип устройства (коды с 0 по 127 зарезервированы для устройств Maxim Integrated/Dallas Semiconductor, коды 128 и выше вкупе с частью серийного номера – для сторонних производителей). Следующие 6 байт предназначены для серийного номера. Последний байт является контрольной суммой, рассчитанной на основе кода семейства и серийного номера. Номера некоторых устройств нанесены прямо на корпусе микросхем (например, ключей-таблеток iButton для домофонов), а номера других можно определить при помощи специальных программ или устройств. Одним из наиболее частых применений протокола 1-wire является взаимодействие с однопроводными температурными датчиками DS18B20, DS18S20, DS18S22. В последнее время интерфейс 1-Wire все чаще начинает применяться в системах автоматизации технологического контроля и управления. 33 2. Порядок выполнения задания 1. Ознакомиться с изложенным выше кратким описанием последовательного интерфейса микроконтроллеров 1-Wire. 2. Моделировать работу устройства цифровой индикации температуры на основе подключенного к микроконтроллеру по интерфейсу 1-Wire датчика DS18B20, для чего создать средствами программы ISIS Proteus следующую принципиальную электрическую схему: 3. В окне настроек микроконтроллера Edit Component установить следующие параметры: CKOPT — 1 (не запрограммирован); BOOTRST — 1 (не запрограммирован); CKSEL Fuses — 0100 (внешний RC-генератор частотой 8Мгц); Boot Loader Size — 00 (1024 слова, стартовый адрес 0x1C00); SUT Fuses — 00; Advanced Properties — Clock Frequency (Default). 4. Ввести в окне заготовки программы Source Code исходный код на языке С для микроконтроллера U1: // Подключение библиотек #include <avr/io.h> #include <util/delay.h> { // Выход единиц out = (temp/10) & 0x0f; s_digit1; c_digit2; _delay_ms(5); // Выход десятков out = (temp%10) & 0x0f; c_digit1; s_digit2; _delay_ms(5); } #define uchar unsigned char #define uint unsigned int #define BUS PORTC // Определение порта/вывода //низкого уровня #define sbit(x,PORT) (PORT) |= (1<<x) } 34 // Запись команды датчику void writecommand(uchar data) { uchar i; for(i=0; i<8; i++) { C_DQ; _delay_us(15); if(data & 0x01) S_DQ; else C_DQ; _delay_us(45); data >>= 1; #define cbit(x,PORT) (PORT) &= ~(1<<x) #define pin(x,PIN) (PIN) & (1<<x) // Определение выводов #define s_digit1 sbit(5,PORTC) #define c_digit1 cbit(5,PORTC) #define s_digit2 sbit(4,PORTC) #define c_digit2 cbit(4,PORTC) #define out PORTC #define DQ_IN DDRA&=~(1<<7) #define DQ_OUT DDRA|=(1<<7) #define S_DQ sbit(7,PORTA) #define C_DQ cbit(7,PORTA) #define DQ pin(7,PINA) // Прототипы функции void init_ds18b20(void); uchar readbyte(void); void writecommand(uchar); uchar readtemp(void); uchar a, b, tt; // Основная программа int main(void) { uchar i=0, temp; // Инициал-ция указателя стека SPL=0x54; SPH=0x04; // Конфигур-ние выводов порта DDRC = 0xff; DDRA = 0xff; while(1) { temp = readtemp(); for(i=0; i<10; i++) // 10 измерений } // Начало транзакций с 1Wire //линии void init_ds18b20(void) { DQ_OUT; C_DQ ; _delay_us(600); S_DQ; _delay_us(50); DQ_IN; while(DQ); _delay_us(240); DQ_OUT; S_DQ; _delay_us(300); } // Чтение байта датчика uchar readbyte(void) { uchar i = 0,data = 0; DQ_OUT; for (i=0; i<8; i++) { C_DQ ; data >>= 1; _delay_us(3); S_DQ; DQ_IN; _delay_us(12); if(DQ) data |= 0x80; DQ_OUT; S_DQ; _delay_us(45); _delay_us(5); } return(data); } S_DQ; _delay_us(2); } } // Чтение значения температуры //датчика uchar readtemp(void) { uint t; init_ds18b20(); // Преобразование writecommand(0xCC); writecommand(0x44); init_ds18b20(); // Чтение метки области памяти writecommand(0xCC); writecommand(0xBE); a = readbyte(); b = readbyte(); t = b; t <<= 8; t = t|a; tt = t*0.0625; return(tt); } 5. Запустить процесс моделирования. Изменяя кнопками со стрелками «температуру» датчика U3 DS18B20, наблюдать изменения показаний семисегментного индикатора и осциллографа. Проверить работу цепей сброса микроконтроллера. В случае неработоспособности схемы проанализировать ошибки в окне VSM Studio Output и принять меры к их устранению. 6. Моделировать сеть 1-Wire, для чего создать средствами программы ISIS Proteus нижеприведенную принципиальную электрическую схему. 7. В окне настроек микроконтроллера Edit Component установить следующие параметры: Advanced Properties: Watchdog Clock 1MHZ; Clock Frequency: 3.6864MHz; Program File: ds1990.cof 8. Запустить процесс моделирования. Подключая кнопками со стрелками различные устройства (DS1990 – номер-ключ, «таблетка», DS18S20, DS1822 – датчики температуры, DS2405 – одинарный электронный ключ, DS2430, DS2431, DS2433 – энергонезависимая память разных объемов) к шине 1-Wire, регистрировать появление их 35 серийных номеров на экране виртуального терминала. Устройства подключать по одному, каждый раз выключая симуляцию. 9. Оформить протокол и ознакомиться с контрольными вопросами. 3. Содержание отчета 1. Название и цель занятия. 2. Скриншоты схем, осциллограмм и исходных кодов, исследованных в работе. 3. Основные выводы по выполненному заданию. 4. Контрольные вопросы 1 . Перечислите основные характеристики интерфейса 1-Wire. 2 . Каким образом осуществляется питание устройств 1-Wire во время передачи данных? 3. Какую топологию имеет сеть MicroLan? 4 . Сколько ведущих и ведомых устройств может быть в сети MicroLan? 5 . Каким образом происходит обмен информации в сети MicroLan? 6 . Что собой представляет понятие «тайм-слот»? 7 . Какие типы тайм-слотов свойственны интерфейсу 1-Wire? 8 . Как передаются данные в шине 1-Wire? 9. На чем основываются принципы адресации устройств в сети 1-Wire? 10. Сколько байт отводится для серийного номера устройства 1-Wire? 36 Практическое занятие №7 МОДЕЛИРОВАНИЕ РАБОТЫ ПОСЛЕДОВАТЕЛЬНОГО ИНТЕРФЕЙСА I2C (TWI) Цель занятия: Изучение интерфейса микроконтроллеров I2C (TWI) и приобретение навыков его моделирования в среде Proteus. 1. Основы последовательного интерфейса I2C (TWI) Разработанный фирмой Philips интерфейс I2C (Inter-Integrated Circuit) представляет собой две двунаправленные линии связи – SDA и SCL. По SDA передаются данные, по SCL – тактовый сигнал. Обе линии соединены через резисторы Rp с шиной питания Vcc (+5 В или +3,3 В), т.к. выходы подключаемых устройств выполнены с открытым стоком или коллектором. Фирма Philips за использование названия этого интерфейса требует лицензионных отчислений, поэтому в микроконтроллерах Atmel используется собственное название TWI – Two-Wire Interface. Основной режим работы — 100 кбит/с; 10 кбит/с в режиме работы с пониженной скоростью. В скоростном режиме быстродействие шины увеличивается до 400 кбит/с. Допускается приостановка тактирования для работы с медленными устройствами. Устройство может содержать, как логику ведущего устройства, так и логику подчиненного устройства. Кроме того, оно может эмулировать работу нескольких подчиненных устройств, путем реагирования на несколько адресов. Каждое подключенное к шине подчиненное устройство должно иметь собственный уникальный адрес, передачей которого ведущее устройство инициирует транзакцию. К одной шине допускается подключение нескольких ведущих устройств при общем числе до 127 устройств обоих типов. Для определения, какое из одновременно осуществляющих доступ к шине ведущих устройств имеет приоритет, используется механизм арбитража. Интерфейс I2C является синхронным, поэтому каждый передаваемый бит данных на линии SDA сопровождается импульсом на линии синхронизации SCL. Состояние выданного на линию SDA бита данных может изменяться только тогда, когда на линии синхронизации SCL имеется низкий логический уровень. Во время высокого логического уровня SCL выданный бит данных считается действительным. Данные передаются байтами, начиная со старшего бита. Ведущее устройство всегда инициирует и заканчивает передачу данных. При этом ведущее устройство сигнализирует о начале транзакции генерацией на шине условия START (S). Затем, передается пакет адреса с адресом подчиненного устройства (ADDRESS) и указание желаемого направления передачи данных, т.е. чтение или запись (R/W). По завершении передачи всех пакетов данных (DATA), ведущее устройство 37 генерирует на шине условие STOP (P) и транзакция завершается. После приема каждого байта получатель данных генерирует бит подтверждения (A или ACK) или неподтверждения (/A или NACK). Между условиями START и STOP шина считается занятой и в этом случае никакое другое ведущее устройство не может осуществлять управляющие воздействия на шине. Структура базовой транзакции шины I2C (TWI) выглядит следующим образом: Все передаваемые адресные пакеты по шине I2C состоят из 9 бит, в т.ч. 7 бит адреса, одного бита управления для задания типа операции чтения или записи (R/W) и одного бита подтверждения (ACK). Если бит R/W = 1, то выполняется операция чтения, в противном случае – запись. Если подчиненное устройство распознает адресное обращение к себе, оно формирует низкий уровень на линии SDA на 9-ом цикле SCL (формирование бита подтверждения). Если адресуемое подчиненное устройство занято или по каким-либо другим причинам не может обслужить ведущее устройство, то на линии SDA сохраняется высокий логический уровень во время цикла подтверждения. Ведущее устройство после этого может передать условие STOP или повторный START для инициации новой передачи. Пакеты данных состоят из байта данных и бита квитирования, то есть тоже имеют длину 9 бит. После приема каждого байта получатель данных отвечает битом квитирования, устанавливая на линии SDА низкий уровень. Если принят последний байт или подчиненное устройство больше не может продолжать прием данных, оно должно сохранить на линии SDA высокий логический уровень. В случае использования интерфейса I2C для подключения EEPROM-памяти 3 бита адресного пакета являются дополнительными битами адресов ячеек памяти – А10, А9 и А8. А старшие 4 бита адреса устройства несут информацию о его типе. 2. Порядок выполнения задания 1. Ознакомиться с изложенным выше кратким описанием последовательного интерфейса микроконтроллеров I2C (TWI). 2. Моделировать совместную работу по шине I2C микроконтроллера и EEPROMпамяти, для чего создать средствами программы ISIS Proteus следующую принципиальную электрическую схему: 38 3. Ввести в окне заготовки программы Source Code исходный код на языке С для микроконтроллера U1: #define F_CPU 16000000UL //Запись байта данных 10 = 0xA0 по адресу 25 = 0x19 //Если запись успешная, то true if(eeWriteByte(address, byte)) { //Очистка переменной byte = 0; #include <avr/io.h> #include "util/delay.h" #include "i2c_eeprom.h" int main(void) { // Задержка на время включения виртуального осциллографа _delay_ms(4000); //Ожидание 15 мс, чтобы различать осциллограммы _delay_ms(15); uint8_t byte = 10; uint16_t address = 25; //Считывание байта информации, расположенной по адресу 25 = 0x19 byte = eeReadByte(address); //Настройка TWI eeInit(); //Для проверки этот байт выводится в порт А PORTA = byte; } } 4. Ввести в окне Projects файлы i2c_eeprom.c и i2c_eeprom.h из источника, указанного преподавателем. 5. Запустить процесс моделирования. С помощью отладчика шины I2C и виртуального осциллографа идентифицировать заданные в исходном коде процедуры и проверить значение байта данных, выведенное в PORT A микроконтроллера. Все осциллограммы наблюдать в пошаговом режиме симуляции с самого его начала при развертках 200 ms, 1 ms и 20 us. В случае неработоспособности схемы проанализировать ошибки в окне VSM Studio Output и принять меры к их устранению. 39 6. Моделировать совместную работу по шине I2C двух микроконтроллеров, один из которых выполняет функцию ведущего, а другой – ведомого. Для этого создать средствами программы ISIS Proteus следующую принципиальную электрическую схему: 7. В настройках ведущего U2 и ведомого U1 микроконтроллеров ввести программные файлы соответственно A8 Два по I2C master2.hex и А8 Два по I2C slave2.hex из источника, указанного преподавателем. 8. Запустить процесс моделирования. Изменяя кнопками со стрелками положение движка резистора RV1, контролировать вольтметром «напряжение» на входе АЦП ведущего микроконтроллера, соответствующие ему бинарный код на многоразрядном индикаторе LCD1 и осциллограммы для трех значений: 0 В, 2,4 В и 5 В. Сравнить передаваемые коды с кодами, регистрируемыми отладчиком шины I2C. 9. Оформить протокол и ознакомиться с контрольными вопросами. 3. Содержание отчета 1. Название и цель занятия. 2. Скриншоты схем, осциллограмм, отладки и исходного кода, исследованных в работе. 3. Основные выводы по выполненному заданию. 4. Контрольные вопросы 1 . Почему интерфейс I2C имеет второе название TWI? 2 . Почему интерфейс I2C называется синхронным? 3. При каком логическом уровне на линии SCL игнорируется состояние линии SDA? 4 . Как передаются данные по шине I2C? 5 . Чем отличается условие START от условия STOP? 6 . Кто и когда генерирует бит подтверждения? 7 . Перечислите основные характеристики интерфейса I2C. 8 . Что собой представляет адресный пакет шины I2C? 9. Что собой представляет пакет данных шины I2C? 10. Как используется адресный пакет шины I2C при подключении EEPROM-памяти? 40 Практическое занятие №8 МОДЕЛИРОВАНИЕ РАБОТЫ ИНФРАКРАСНОГО ИНТЕРФЕЙСА IrDA Цель занятия: Изучение инфракрасного интерфейса IrDA и приобретение навыков его моделирования в среде Proteus. 1. Основы инфракрасного интерфейса IrDA В 1993 году была создана ассоциация разработчиков систем инфракрасной передачи данных IrDA (Infrared Data Association), призванная обеспечить совместимость оборудования от различных производителей с помощью группы стандартов, описывающих протоколы физического и логического уровня передачи данных с использованием инфракрасного диапазона световых волн в качестве носителя. Инфракрасный канал связи является разновидностью атмосферной оптической линии связи ближнего радиуса действия, безопасен для здоровья, не создает помех в радиочастотном диапазоне и обеспечивает конфиденциальность передачи. Инфракрасные (ИК) лучи не проходят через стены, поэтому зона приема ограничивается небольшим, легко контролируемым пространством. Типовая блок-схема организации IrDA-канала приведена на рисунке. Неотъемлемой частью IrDA-канала является ИК приемо-передающий модуль, расположенный на каждой из сторон линии связи. Излучателем для передатчика является светодиод, имеющий пик спектральной характеристики мощности 880 нм; светодиод дает конус эффективного излучения с углом около 30°. В качестве приемника используют PIN-диоды, эффективно принимающие ИК-лучи в конусе 15°. Наличие и передатчика и приемника на каждой из сторон является необходимым для использования протоколов гарантированной доставки данных. IrPHY (Infrared Physical Layer Specification) – представляет собой обязательный протокол самого низкого уровня среди спецификаций IrDA. Соответствует физическому уровню сетевой модели OSI. Основные характеристики спецификации IrPHY выглядят следующим образом: Дальность: не менее одного метра. Минимальное поддерживаемое отклонение от оси приемника/передатчика: не менее 15°. Скорость передачи данных: до 16 Мбит/c (в разработке 100 Mбитная версия). Модуляция: немодулированный сигнал, без несущей. Диапазон волн: от 850 до 880 нанометров. 41 Режим передачи данных: полудуплексный. Спецификация не определяет максимальных допустимых значений для таких параметров как дальность или отклонение от оси, тем не менее, типичное расположение устройств для организации соединения подразумевает расстояние от 5 до 50 сантиметров, на одной оси. Устройства с односторонней связью, как правило, поддерживают дальность не менее 10 метров. Скорости передачи данных делятся на несколько поддиапазонов - SIR, MIR, FIR, VFIR, UFIR каждый из которых характеризуется не только разными скоростями, но и использованием различных схем кодирования. Так для SIR- поддиапазона (стандартный асинхронный режим передачи) нулевое значение бита кодируется импульсом длительностью 3/16 битового интервала, единичное — отсутствием импульсов. Несколько отличается кодирование для скоростей 9,6 – 57,6 кбит/с: нулевой бит кодируется посылкой импульсов с частотой 500 кГц, единичный — отсутствием импульсов. Поддиапазон SIR (Serial Infrared) MIR (Medium Infrared) FIR (Fast Infrared) VFIR (Very Fast Infrared) Скорость 9,6 кбит/с; 19,2 кбит/с; 38,4 кбит/с; 57,6 кбит/с; 115,2 кбит/с 0,576 Мбит/с и 1,152 Мбит/с от 9600 бит/с до 4 Мбит/с от 9,6 кбит/с до 16 Мбит/с Для скоростей 0,576 и 1,152 Мбит/с используется синхронный режим передачи и кодирование, аналогичное протоколу SIR, но с длительностью импульса 1/4-битового интервала. Для контроля достоверности кадр содержит 16-битный CRC-код. Для скорости 4 Мбит/с также применяется синхронный режим, но кодирование несколько сложнее. Здесь каждая пара смежных битов кодируется позиционноимпульсным кодом: 00 —> 1000, 01 —> 0100, 10 —> 0010, 11 —>0001 (в четверках символов «1» означает посылку импульса в соответствующей четверти двухбитового интервала). Такой способ кодирования позволил вдвое снизить частоту включения светодиода по сравнению с предыдущим. Для повышения достоверности применяется 32битный CRC-код. IrLAP (Infrared Link Access Protocol) – обязательный протокол второго уровня, располагается поверх IrPHY, соответствует канальному уровню сетевой модели OSI. IrLAP отвечает за контроль доступа, поиск расположенных вблизи устройств, установление и поддержку двунаправленного соединения, распределение первичной и вторичной ролей среди устройств. IrLAP делит все сообщающиеся устройства на одно первичное и остальные (одно и более) вторичные. Первичное устройство контролирует все вторичные и может передавать им данные без "разрешения". Вторичное устройство может отправлять данные только по запросу первичного. IrLMP (Infrared Link Management Protocol) – обязательный протокол третьего уровня, соответствует сетевому уровню модели OSI. Состоит из двух подуровней: LMMUX (Link Management Multiplexer) и LM-IAS (Link Management Information Access Service) . LM-MUX отвечает за разделение потока данных на различные каналы связи и смену первичных/вторичных устройств. LM-IAS отвечает за публикацию списка доступных сервисов и доступ клиентских устройств к опубликованным сервисам. 42 Протокол IrLAN обеспечивает доступ к локальным сетям, позволяя передавать кадры сетей Ethernet и Token Ring. Для ИК-подключения к локальной сети требуется устройство-провайдер с интерфейсом IrDA, подключенное обычным (проводным) способом к локальной сети, и соответствующая программная поддержка в клиентском устройстве (которое должно войти в сеть). Протокол IrCOMM позволяет через ИК-связь эмулировать обычное проводное подключение: 3-проводное по RS-232C (TXD, RXD и GND) и 9-проводное по RS-232C (весь набор сигналов СОМ-порта). Перечисленными протоколами не исчерпывается весь список протоколов, имеющих отношение к ИК-связи. 2. Порядок выполнения задания 1. Ознакомиться с изложенным выше кратким описанием инфракрасного интерфейса IrDA. 2. Моделировать работу инфракрасного канала связи двух микроконтроллеров U1 и U2, для чего создать средствами программы ISIS Proteus следующую принципиальную электрическую схему: 3. В настройках передающего U1 и принимающего U2 микроконтроллеров установить Clock Frequency 4MHz, Advanced Properties: Watchdog Clock 1MHz и ввести программные файлы соответственно SEND 2323 IRDA.hex и REC 2313 IRDA.hex из источника, указанного преподавателем. 4. Запустить процесс моделирования. С помощью интерактивной кнопки моделировать передачу импульсных сигналов, фиксируя их осциллографом и светодиодом D1. Объяснить характер осциллограмм и установить их соответствие единичному и нулевому биту передаваемых данных. В случае неработоспособности схемы проанализировать ошибки в окне VSM Studio Output и принять меры к их устранению. 43 5. Моделировать передачу цифровых данных с помощью инфракрасного канала связи двух микроконтроллеров DD1 и DD2, для чего создать средствами программы ISIS Proteus следующую принципиальную электрическую схему: 6. В настройках передающего DD1 и принимающего DD2 микроконтроллеров установить Clock Frequency 4MHz, Advanced Properties: Watchdog Clock 1MHz и ввести программные файлы соответственно SEND 2313 IRDA byte.hex и REC 2313 IRDA byte.hex из источника, указанного преподавателем. 7. Запустить процесс моделирования. Изменяя положение четырех интерактивных переключателей DSW1 из состояния OFF в состояние ON и наоборот, контролировать по индикаторам передающей и принимающей стороны цифровые данные в следующем порядке: 0, 3, 7, 9. Фиксировать и объяснить характер осциллограмм передаваемых данных. 8. Оформить протокол и ознакомиться с контрольными вопросами. 3. Содержание отчета 1. Название и цель занятия. 2. Скриншоты схем и осциллограмм, исследованных в работе. 3. Основные выводы по выполненному заданию. 4. Контрольные вопросы 1 . Перечислите основные преимущества и недостатки интерфейса IrDA. 2 . Какие элементы используются в качестве излучателя и приемника IrDA-интерфейса? 3. Перечислите основные характеристики спецификации IrPHY. 4 . Как называются поддиапазоны интерфейса IrDA? 5 . Какие схемы кодирования используются в интерфейсе IrDA? 6 . Перечислите скорости передачи данных в поддиапазонах интерфейса IrDA. 7 . Что регламентирует протокол IrLAP? 8 . Что регламентирует протокол IrLMP? 9. Что регламентирует протокол IrLAN? 10. Что регламентирует протокол IrCOMM? Рекомендуемый библиографический список 1. Программа Proteus Design Suite (Win) http://www.labcenter.com. 2. Смирнов В.И. Проектирование и схемотехническое моделирование микропроцессорных устройств: учеб. пособие / В.И. Смирнов. – Ульяновск: УлГТУ, 2013. 3. Кузьминов А.Ю. Интерфейс RS-232. Связь между компьютером и микроконтроллером. – М.: Радио и связь, 2004. 44