Sb97585
.pdf5. Напишите отчет по лабораторной работе, включающий:
–постановку задачи на лабораторную работу;
–листинг основного модуля и его тестбенча с комментариями, а также подробное описание созданного кода;
–иллюстрация: последовательность данных (вейвформ). Фон рисунка белый, линии и надписи черные.
Варианты заданий
1.Бегущий огонь. По линейке светодиодов непрерывно бежит в одну сторону светящаяся точка. Длину линейки задает двоичное слово, введенное на трех младших позициях дип-переключателя. Например, код 101 означает, что в линейке 5 светодиодов. Кнопка 0 сбрасывает систему в начальное состояние.
2.Группа бегущих огней. По линейке из восьми светодиодов бежит конфигурация из четырех горящих светодиодов, заданная с дип-переключателя. Например, код 1101 означает, что по ленте бегут три световые точки, две из которых располагаются рядом друг с другом, а одна отделена от них пустой позицией. Кнопка 0 сбрасывает систему в начальное состояние.
3.Гирлянда. Работает в режимах «бегущий огонь» (линейка из восьми светодиодов) и мигание (все восемь светодиодов мигают). Кнопка 0 сбрасывает систему в начальное состояние. Дип-переключатель задает максимальное число циклов, которое может быть произведено в одном режиме, после чего он автоматически переключается. Например, число 0010 определяет, что бегущий огонь совершает две итерации, после чего все восемь светодиодов два раза мигают с последующим повторением цикла программы. Кнопка 1 переключает режимы вручную.
4.Бегущий огонь с накоплением. По линейке светодиодов бежит светящаяся точка, доходя до последнего светодиода ленты и оставаясь в конце последней в горящем состоянии. При этом из начала ленты бежит новая точка. Так происходит до тех пор, пока лента не заполняется, после чего все огни сбрасываются и счет начинается сначала. Кнопка 0 сбрасывает систему в начальное состояние.
5.Счетчик числа нажатий на кнопку. По нажатию кнопки 1 загорается очередной светодиод в линейке. Кнопка 0 сбрасывает систему в исходное состояние. Максимальное число светодиодов задается дип-переключателем. Опционально: когда максимальное число светодиодов активно, нажатие на кнопку 1 вызывает кратковременное погасание всей линейки светодиодов на 0,2 сек.
21
6.Мигающая линейка. Линейка из светодиодов, длина которой задается тремя младшими битами дип-переключателя, мигающая с частотой в несколько Гц. Нажатие на кнопку 0 сбрасывает систему в исходное состояние.
7.Бегущий огонь с пропусками. При коде 0 в младшем бите дип-
переключателя поочередно активируются четные светодиоды в линейке, а при коде 1 нечетные. Кнопка 0 сбрасывает систему в исходное состояние.
8.Бегущие огни с пересечением. Светящиеся точки бегут с двух концов линейки навстречу друг другу, пересекаются и бегут до противоположного конца. Длину линейки задает двоичное слово, введенное на трех младших позициях дип-переключателя. Например, код 101 означает, что в линейке пять светодиодов. Кнопка 0 сбрасывает систему в начальное состояние.
9.Бегущие от центра огни. Светящиеся точки бегут из центра линейки в противоположные стороны. Длину линейки задает двоичное слово, введенное на двух младших позициях дип-переключателя: 00 – длина линейки с четвертого по пятый светодиод, 01 – с третьего по шестой, 10 – с второго по седьмой, 11 – с первого по восьмой светодиоды. Например, код 101 означает, что в линейке пять светодиодов. Кнопка 0 сбрасывает систему в начальное состояние.
10.Убегающий огонь. Нажатие на кнопку 1 вызывает однократный пробег светящейся точки. Длина линейки задается дип-переключателем. Кнопка 0 сбрасывает систему в исходное состояние.
11.Змейка. По линейке светодиодов бежит «змейка» из светящихся точек. Как только последний светодиод гаснет, «змейка» бежит из начала линейки. Длина «змейки» задается тремя младшими битами дип-переключа- теля. Кнопка 0 сбрасывает систему в исходное состояние.
12.Разноскоростной бегущий огонь. Скорость перемещения бегущей точки задается двумя младшими битами дип-переключателя. При коде 00 точка движется в 4 раза медленнее, чем при коде 11.
Лабораторная работа 7. ПЛАТФОРМА ПЛИС: ТЕКСТОВОЕ И ГРАФИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
Цель работы – знакомство со средой Quartus и особенностями использования графических оболочек при разработке на ПЛИС.
Среда Quartus предлагается фирмой Altera для программирования ПЛИС данного производителя и обладает широким функционалом.
22
Порядок выполнения работы
1. Создайте проект в Quartus и в нем новый файл *.bdf (блок-диаграмма); Выберите пункт меню File →New Project Wizard. Откроется окно Intro-
duction. Нажмите на кнопку Next.
Впервом поле следующего окна определите папку, в которой будет сохранен новый проект. Новая папка проекта не создается автоматически, поэтому необходимо создать ее предварительно. Во втором поле введите имя проекта. Третье поле содержит имя модуля верхнего уровня иерархии; как правило, оно совпадает с именем проекта.
После нажатия на кнопку Next выбрать пункт Empty project. В окне
Family & Device Settings необходимо в поле Family выбрать Cyclone IV, а в поле Available Devices выбрать EP4CE22F17C6N. Нажать кнопку Next.
Вокне EDA Tool Setting необходимо изменить значение поля Simulation со значения VHDL на Verilog HDL. Нажать на кнопку Next и проверить данные проекта. Если данные верны, нажать кнопку Finish.
2. Разработанный в ЛР 6 модуль превратите в графический символ. Для создания графического файла выберите пункт меню File → New → Block Dia-
gram/Schematic File.
Чтобы разместить на BDF-диаграмме компоненты, необходимо щелкнуть правой кнопкой мыши по рабочему полю и выбрать пункт Insert → Symbol…
3.В качестве блока тактирования на блок-диаграмме разместите модуль
ALT_PLL;
4.Соедините модули, подключите их проводниками к пинам ввода–вы- вода, скомпилируйте проект и загрузите его на отладочную плату.
5.Составьте отчет по лабораторной работе.
Содержание отчета:
–текст задания, приведенный к техническому стилю изложения;
–иллюстрация: графический код из файла *.bdf;
–иллюстрация: одна или несколько фотографий платы DE0-Nano, показывающих, что разработанный вами код работает корректно.
Варианты заданий заимствуются из предыдущей лабораторной работы.
23
Лабораторная работа 8. ПЛАТФОРМА ПЛИС: ВВОД–ВЫВОД ЦИФРОВЫХ И АНАЛОГОВЫХ СИГНАЛОВ
Цель работы – знакомство с работой цифровых интерфейсов платформы ПЛИС. Получение навыков ввода–вывода аналоговых данных.
В качестве аппаратной платформы для настоящего курса лабораторных работ была выбрана отладочная плата DE0-Nano фирмы Terasic.
Плата DE0-Nano обеспечивает компактную платформу для разработки FPGA-проектов, предназначенную для широкого спектра встраиваемых приложений, таких как управление роботами или подвижными объектами.
Порядок выполнения работы
1.Разместите на блок-диаграмме проекта Quartus модули управления АЦП и ЦАП согласно варианту задания;
2.Создайте дополнительный модуль обработки данных, при необходимости промоделируйте его работу в Modelsim;
3.Залейте созданный код на плату DE0-Nano, убедитесь в его работоспособности.
4.Напишите отчет по лабораторной работе.
Содержание отчета:
–текст задания, приведенный к техническому стилю изложения;
–иллюстрация: графический код блок-диаграммы;
–листинг всех дополнительно написанных модулей, при наличии – вейвформы;
4.Иллюстрация: одна или несколько фотографий платы DE0-Nano, показывающих, что созданный вами код работает.
Для реализации изменяющегося уровня напряжения можно использовать внешний генератор сигналов с цифровым управлением (ВНИМАНИЕ: входное напряжение АЦП не должно превышать 3,3 В!) либо потенциометр, реализующий делитель напряжения, а для анализа генерируемого сигнала – внешний осциллограф.
Варианты заданий
1. Дискретный индикатор напряжения. Входное напряжение с АЦП де-
лится на восемь уровней, каждому из которых соответствует определенное число горящих светодиодов. Например, при входном напряжении 1,65 В должны гореть четыре светодиода, а при напряжении 3,3 В – все восемь светодиодов.
24
2.Аналоговый индикатор напряжения. Яркость свечения светодиодной ленты зависит от входного напряжения. Яркость задается с помощью широт- но-импульсной модуляции, где ширина импульса соответствует уровню считанного напряжения.
3.Компаратор с индикацией. Напряжение в диапазоне от 0 В до 3,3 В делится на 16 уровней, уровень детектируемого напряжения устанавливается
спомощью дип-переключателя. Когда входное напряжение превысит заданный уровень, линейка светодиодов загорается. Например, при коде 0111 светодиоды будут срабатывать при превышении напряжением уровня в 1,6 В.
4.Повторитель напряжения. На вход АЦП поступает аналоговое напряжение, на выходе ЦАП выставляется то же аналоговое напряжение. В качестве индикатора можно использовать линейку светодиодов, яркость которой задается с помощью ШИМ.
5.Управление семисегментным индикатором, выдающим от 0 до 9 В
в зависимости от уровня напряжения на АЦП. В качестве драйвера семисегментного индикатора используется библиотечный декодер 7446, 7447 (для индикаторов с общим анодом) или 7448, 7449 (для индикаторов с общим катодом). Вставка осуществляется через диалог Symbol → others → maxplus2 → модель драйвера. Физически индикатор подключается к DE0-Nano на макетной плате по схеме, приведенной на рис. 3.
Рис. 3. Подключение семисегментного индикатора с общим анодом
На макетной плате между пинами подключаются защитные резисторы 220 Ом. Можно использовать номиналы резисторов вплоть до 1 кОм.
25
ЗАКЛЮЧЕНИЕ
В настоящем пособии предложен курс лабораторных работ, позволяющий ознакомиться с различными цифровыми платформами и средами: Arduino с одноименной средой разработки, микроконтроллерами STM32 и Keil uVision, ПЛИС Altera и средой Quartus II. Для каждой из платформ приведено описание необходимого аппаратного обеспечения: используемая модель отладочной платы, список дополнительного оборудования, при необходимости – схема подключения, а также образцы кода. Для более глубокого ознакомления с предметом лабораторных работ приведен список литературы, так как объем методического пособия не позволяет дать необходимый материал в полном объеме.
Полученные знания по каждой из рассмотренных платформ могут быть углублены в процессе выполнения соответствующего задания на курсовое проектирование.
26
ЗАДАНИЯ НА КУРСОВОЕ ПРОЕКТИРОВАНИЕ
Цель работы – овладение практическими навыками разработки цифровых устройств на системном, программном и аппаратно-схемотехническим уровнях.
Содержание работы. В процессе выполнения курсового проекта необходимо разработать гетерогенную систему, сочетающую в себе микроконтроллер и аналоговую часть. На курсовое проектирование отводится 36
академических часов самостоятельной работы. |
|
|
Примерные темы: |
|
|
1. Сопряжение Arduino и ПЛИС |
|
|
(рис. 4). При этом Arduino выполняет роль |
|
|
ведущего устройства. Пример: математиче- |
|
|
ский сопроцессор на ПЛИС для работы с |
|
|
32-битными числами. Аппаратно реализо- |
|
|
ванный цифровой фильтр. Аппаратный вы- |
|
|
числитель тригонометрических функций с |
Рис. 4. Arduino с установленным |
|
помощью алгоритма CORDIC. Драйвер све- |
FPGA-шилдом |
|
тодиодного индикатора, требующий боль- |
|
|
шого числа выводов. |
|
|
2. Управление роботом, например гек- |
|
|
саподом (рис. 5) с помощью Arduino или |
|
|
другой отладочной платы. |
|
|
Цифро-аналоговый генератор/преобра- |
|
|
зователь НЧ сигналов (эквалайзер, нели- |
Рис. 5. Робот-гексапод с платой |
|
нейный фильтр, генератор хаотических сиг- |
||
DE0-Nano в качестве контроллера |
||
налов). |
|
27
Список рекомендуемой литературы
1.Блум Д. Изучаем Arduino®: инструменты и методы технического волшебства = Exploring Arduino®.Tools and techniques for Engineering Wizardry / пер. с англ. В. Петина. СПб.: БХВ-Петербург, 2015.
2.Бродин В. Б., Калинин А. В. Системы на микроконтроллерах и БИС программируемой логики. М. : ЭКОМ, 2002.
3.Brown J. Discovering the STM32 Microcontroller. Indiana University.
2013.
4.Гайворонский Д. В., Новосельцева Т. Я. Проектирование цифровых устройств на БИС Altera: учеб. пособие. СПб.: Изд-во СПбГЭТУ «ЛЭТИ», 2010.
5.Пухальский Г. И., Новосельцева Т. Я. Проектирование цифровых устройств: учеб. пособие. СПб.: Лань, 2012.
6.Угрюмов Е. П. Цифровая схемотехника: учеб. пособие. 3-е изд., перераб. и доп. СПб.: БХВ-Петербург, 2010.
28
Содержание |
|
Предисловие............................................................................................................. |
3 |
Введение................................................................................................................... |
4 |
Лабораторная работа 1. ПЛАТФОРМА ARDUINO: |
|
ЗАГРУЗКА СКЕТЧЕЙ, ЦИФРОВОЙ |
|
ВВОД–ВЫВОД.............................................................. |
6 |
Лабораторная работа 2. ПЛАТФОРМА ARDUINO: |
|
АНАЛОГОВЫЙ ВВОД–ВЫВОД, СОМ-ПОРТ.......... |
8 |
Лабораторная работа 3. ПЛАТФОРМА ARDUINO: |
|
ПОДКЛЮЧЕНИЕ ШИЛДОВ И МОДУЛЕЙ............ |
10 |
Лабораторная работа 4. ПЛАТФОРМА STM32: |
|
ЗНАКОМСТВО С IDE И ОТЛАДОЧНОЙ |
|
ПЛАТОЙ....................................................................... |
13 |
Лабораторная работа 5. ПЛАТФОРМА STM32: |
|
РАБОТА С ОС РЕАЛЬНОГО ВРЕМЕНИ................. |
15 |
Лабораторная работа 6. ПЛАТФОРМА ПЛИС: |
|
ВЕРИФИКАЦИЯ КОДОВ В СРЕДЕ MODELISM ... |
19 |
Лабораторная работа 7. ПЛАТФОРМА ПЛИС: ТЕКСТОВОЕ |
|
И ГРАФИЧЕСКОЕ ПРОГРАММИРОВАНИЕ......... |
22 |
Лабораторная работа 8. ПЛАТФОРМА ПЛИС: |
|
ВВОД–ВЫВОД ЦИФРОВЫХ |
|
И АНАЛОГОВЫХ СИГНАЛОВ................................ |
24 |
Заключение............................................................................................................. |
26 |
Задания на курсовое проектирование................................................................. |
27 |
Список рекомендуемой литературы.................................................................... |
28 |
29
Андреев Валерий Сергеевич Бутусов Денис Николаевич Каримов Тимур Искандарович
Основы проектирования цифровых систем
Учебно-методическое пособие
Редактор О. Р. Крумина
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Подписано в печать 20.12.18. Формат 60×84 1/16. Бумага офсетная. Печать цифровая. Печ. л. 2,0.
Гарнитура «Times New Roman». Тираж 53 экз. Заказ 226.
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
Издательство СПбГЭТУ «ЛЭТИ» 197376, С.-Петербург, ул. Проф. Попова, 5
30