авторефераты диссертаций БЕСПЛАТНАЯ БИБЛИОТЕКА РОССИИ

КОНФЕРЕНЦИИ, КНИГИ, ПОСОБИЯ, НАУЧНЫЕ ИЗДАНИЯ

<< ГЛАВНАЯ
АГРОИНЖЕНЕРИЯ
АСТРОНОМИЯ
БЕЗОПАСНОСТЬ
БИОЛОГИЯ
ЗЕМЛЯ
ИНФОРМАТИКА
ИСКУССТВОВЕДЕНИЕ
ИСТОРИЯ
КУЛЬТУРОЛОГИЯ
МАШИНОСТРОЕНИЕ
МЕДИЦИНА
МЕТАЛЛУРГИЯ
МЕХАНИКА
ПЕДАГОГИКА
ПОЛИТИКА
ПРИБОРОСТРОЕНИЕ
ПРОДОВОЛЬСТВИЕ
ПСИХОЛОГИЯ
РАДИОТЕХНИКА
СЕЛЬСКОЕ ХОЗЯЙСТВО
СОЦИОЛОГИЯ
СТРОИТЕЛЬСТВО
ТЕХНИЧЕСКИЕ НАУКИ
ТРАНСПОРТ
ФАРМАЦЕВТИКА
ФИЗИКА
ФИЗИОЛОГИЯ
ФИЛОЛОГИЯ
ФИЛОСОФИЯ
ХИМИЯ
ЭКОНОМИКА
ЭЛЕКТРОТЕХНИКА
ЭНЕРГЕТИКА
ЮРИСПРУДЕНЦИЯ
ЯЗЫКОЗНАНИЕ
РАЗНОЕ
КОНТАКТЫ


Pages:     | 1 |   ...   | 2 | 3 || 5 |

«МИНОБРНАУКИ РОССИИ УДК 004.7(075.8) ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ ББК 32.97я73 ...»

-- [ Страница 4 ] --

Клавиатура в контроллере SDK-1.1 подключена к микроконтроллеру ADuC812 через расширитель портов ввода-вывода (ПЛИС). Схема клавиатурной матрицы представлена на рис. 3.21. Кнопки включены таким образом, что при нажатии кнопка замыкает строку на столбец. Из схемы видно, что часть линий ПЛИС используется в качестве сканирующих (столбцы), а часть в качестве считывающих (строки). Количество кнопок, подключенных таким образом, определяется как количество сканирующих линий, умноженное на количество считывающих. Отсюда следует, что использование матричной клавиатуры для случая, когда кнопок меньше или равно четырем, не имеет смысла, так как понадобятся те же четыре линии, а схема и программа усложнятся. Доступ к столбцам и строкам клавиатуры организован как чтение/запись регистра ПЛИС (адрес 0x080000): младшие 4 бита соответствуют 4 столбцам (COL1..COL4), старшие 4 бита - строкам (ROW1..ROW4).

  Рис. 3.21. Схема матричной клавиатуры контроллера SDK-1. Линии сканирующего порта (столбцы) по умолчанию находятся в состоянии, когда на всех линиях, кроме одной, установлен высокий логический уровень. Линия, на которой установлен низкий логический уровень, является опрашиваемой в текущий момент, т.е. определяет опрашиваемый столбец. Если какая-либо кнопка этого столбца будет нажата, на соответствующей линии считывающего порта (строке) также будет низкий логический уровень, потому что замкнутая кнопка подтянет строку к потенциалу столбца, т.е. к земле. Если известен номер опрашиваемого столбца и номера линий считывающего порта, на которых установлен логический «0», можно однозначно определить, какие кнопки этого столбца нажаты.

Далее выбирается следующий опрашиваемый столбец путем установки логического «0» на соответствующей линии сканирующего порта и со считывающего порта снова снимаются данные. Цикл сканирования продолжается до тех пор, пока не будут перебраны таким образом все сканирующие линии. Традиционным решением является помещение процедуры опроса клавиатуры в обработчик прерывания от таймера. В контроллере SDK 1.1 есть еще другая возможность. В полной конфигурации ПЛИС работа с клавиатурой может быть организована по прерыванию: 6-й бит (КВ) регистра ENA заведен на вход внешнего прерывания INTO МК ADuC812. Внешнее прерывание будет возникать, как только на клавиатуре будет нажата хоть одна клавиша (любая).

Для случая, когда одновременно нажато несколько кнопок одного столбца все понятно. Будет установлено в логический «0» несколько битов считывающего порта одновременно. Если будут замкнуты контакты нескольких кнопок из разных столбцов одной строки, а в разных столбцах   могут оказаться разные напряжения, так как на всех столбцах, кроме одного, логическая «1» - это приведет к короткому замыканию и выжженным портам, если бы не диоды D3-D6 (рис. 3.21, рис. 3.22). Именно они защищают порты от короткого замыкания.

Рис. 3.22. Матричная клавиатура на принципиальной электрической схеме SDK-1. Резисторы RP5 на схеме являются подтягивающими. Если используемый микроконтроллер (в нашем случае используется ПЛИС) имеет в своем составе подтягивающие резисторы, от них можно отказаться.

При работе с механическими кнопками возникает одна проблема - дребезг контактов. Суть его в том, что при нажатии на кнопку напряжение не сразу устанавливается на уровне ОВ, а «скачет» в течение некоторого времени (десятки миллисекунд), пока цепь надежно не замкнется. После того, как кнопка будет отпущена, напряжение также «скачет», пока не установится на уровне логической «1» (рис. 3.23). Такое многократное замыкание/размыкание контактов вызвано тем, что контакты пружинят, обгорают и тому подобное.

Рис. 3.23. Эффект дребезга контактов Поскольку процессор обладает высоким быстродействием, то он может воспринять эти скачки напряжения за несколько нажатий. Решить эту проблему   можно как аппаратно с помощью RS-триггера, триггера Шмитта, так и программно посредством небольшой задержки перед следующим опросом кнопки. Задержка подбирается такой, чтобы дребезг успел прекратиться к ее окончанию.

У приведенной схемы клавиатурной матрицы есть недостаток - эффект фантомного нажатия кнопки, который проявляется следующим образом: при нажатии определенной группы кнопок ПЛИС (микроконтроллер) считает еще несколько кнопок нажатыми, хотя никто этого не делал. На рис. 3.24 синими квадратами обозначены линии, на которых присутствует низкий логический уровень. Соответственно, красными квадратами обозначены линии с высоким логическим уровнем.

Рис. 3.24. Эффект фантомного нажатия кнопки В замкнутом состоянии находятся кнопки РВ1, РВ5 и РВ6. В текущий момент сканируется столбец COL1, так как на выводе 85 ПЛИС присутствует низкий логический уровень, а на всех остальных сканирующих линиях высокий. В столбце COL1 в замкнутом состоянии находится только одна кнопка - РВ1, и она подтягивает всю строку ROW2 к земле. Прочитав низкий логический уровень на линии ROW2, микроконтроллер через ПЛИС определит, что кнопка РВ1 нажата, и это нормально. Однако в строке ROW2 есть еще одна нажатая кнопка - РВ5. Она расположена в столбце COL2, а это значит, что и весь этот столбец окажется подтянутым к нулю. Сам по себе этот факт был бы не страшен, если бы в столбце COL2 не оказалась нажатой еще одна кнопка РВ6. Вот тут-то и начинаются неприятности. Эта кнопка подтянет к земле строку ROW3. Микроконтроллер через ПЛИС, прочитав со строки ROW низкий логический уровень, распознает кнопку РВ2 нажатой (напомню, идет сканирование столбца COL1), а ее никто не нажимал.

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

Основным решением проблемы представляется ограничение на количество одновременно нажатых кнопок. Безопасным количеством являются две кнопки.

Если нажато более двух кнопок, можно всячески предупреждать об этом пользователя (визуальная и/или звуковая сигнализация).

Второе решение проблемы вытекает из условия проявления проблемы.

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

Если кнопок много, то даже матрицирование не спасает от огромного расхода линий порта микроконтроллера. Тут приходится либо жертвовать несколькими портами, либо вводить дополнительную логику, например, дешифратор с инверсным выходом. Дешифратор принимает на вход двоичный код, а на выходе выдает «1» в выбранный разряд, а у инверсного дешифратора будет «0» (рис. 3.25).

Рис. 3.25. Расширение разрядности клавиатурной матрицы дешифратором Можно пойти еще дальше и поставить микросхему счетчика, который инкрементируется от импульсов с порта микроконтроллера. Значение же со счетчика прогоняется через дешифратор (рис. 3.26). Таким образом, можно заметно увеличить количество кнопок, только хватило бы разрядности дешифратора. Главное - учитывать на каком такте счетчика будет какой столбец.

  Рис. 3.27. Расширение разрядности клавиатурной матрицы счетчиком и дешифратором Контрольные вопросы для определения степени готовности студента самостоятельно работать с оборудованием, приборами и осуществлять необходимые расчеты, замеры и оформления:

1. Раскройте понятие «матричная клавиатура».

2. Раскройте принцип работы матричной клавиатуры.

3. Поясните схему работы матричной клавиатуры контроллера SDK-1. 4. Раскройте эффект дребезга контактов 5. Раскройте эффект фантомного нажатия кнопки 6. Каким образом реализуется расширение разрядности клавиатурной матрицы дешифратором 7. Каким образом реализуется расширение разрядности клавиатурной матрицы счетчиком и дешифратором Задания по лабораторной работе (формулировки по нескольким вариантам с учетом максимальной индивидуализации заданий).

В рамках лабораторной работы необходимо разработать программу для контроллера SDK-1.1 (ведомый), который обменивается данными с персональным компьютером (ведущий). В качестве канала связи используется последовательный канал RS-232. На стороне персонального компьютера имеется инструментальное средство для обеспечения взаимодействия с SDK 1.1 - это терминальная программа M3R Вариант задания такой же, как и в предыдущей лабораторной работе № 3, с некоторыми изменениями, главным из которых является замена устройства ввода данных: вместо клавиатуры персонального компьютера используется клавиатура SDK-1.1. Устройством   вывода является терминал персонального компьютера и светодиодные индикаторы SDK-1.1.

Программа должна выполнять две задачи. Первая задача - это тестирование клавиатуры (написанного драйвера): символы всех нажимаемых на клавиатуре SDK-1.1 кнопок выводятся в последовательный канал и отображаются в терминале. Вторая задача - выполнение варианта задания.

Переключение между двумя задачами в программе должно быть выполнено с использованием DIP-переключателей (лабораторная работа № 1).

Драйвер клавиатуры должен работать по прерыванию от таймера, т.е.

сканирование должно осуществляться в обработчике прерывания от таймера. В связи с этим необходимо следить, чтобы время выполнения обработчика не превышало времени между соседними прерываниями. Иначе это приведет к повторному входу в обработчик прерывания - последствия могут быть непредсказуемыми. Поэтому рекомендуется в каждом вызове обработчика опрашивать только один столбец клавиатуры, а не все сразу, так как увеличение времени выполнения обработчика приведет к уменьшению времени выполнения основной программы: может оказаться, что процессор большую часть времени будет занят обработкой прерываний от таймера со сканированием клавиатуры.

Драйвер клавиатуры должен содержать: функцию инициализации, функции сканирования клавиатуры и обработки нажатия кнопок (вызываются в обработчике прерывания от таймера), циклический буфер клавиатуры (нажатые кнопки), API-функцию чтения символа из буфера клавиатуры. Взаимодействие обработчика и API-функции осуществляется только через буфер. Кроме того, работа с клавиатурой должна быть организована с повторами, т.е. с отслеживанием длительного нажатия кнопки (как на клавиатуре персонального компьютера). Т.е., если после фиксирования нажатой кнопки (соответствующий символ занесен в буфер клавиатуры) проходит время, равное задержке перед повтором символа, а она все еще нажата, то в буфер клавиатуры повторно заносится этот же символ. После этого через промежутки времени, определяемые скоростью повтора символа, код кнопки заносится в буфер до тех пор, пока не будет зафиксировано отпускание кнопки. При инициализации необходимо указать задержку перед повтором символа (первый параметр) и скорость повтора символа (второй параметр). Рекомендуемая величина задержки перед повтором - 1 секунда (не меньше).

Алгоритм опроса матричной клавиатуры рекомендуется реализовать в виде конечного автомата (Finite State Machine) - функции, которая в зависимости от своего состояния (значения определенной переменной) и входного воздействия, выполняет разную работу [30, 85, 96].

Драйвер клавиатуры должен адекватно обрабатывать одновременное нажатие нескольких кнопок.

Каждое нажатие кнопки на клавиатуре должно сопровождаться коротким звуковым сигналом, что требует использования драйвера звукового излучателя (генерация звука реализуется после попадания символа в буфер клавиатуры).

Драйвер звукового излучателя должен работать по прерыванию от таймера.

  Длительность генерации звука - десятки миллисекунд. Таким образом, получается «музыкальная клавиатура».

Кроме того, должен быть предусмотрен контроль ввода корректных значений в рамках второй задачи программы (лабораторная работа № 7).

Сигнализация в случае ввода некорректных значений - сообщение об ошибке в последовательный канал и зажигание светодиодов.

Разрабатываемые драйверы устройств должны быть выполнены в виде отдельных программных модулей (файлов), содержащих функции по работе с заданным одним устройством.

Переключение между двумя задачами в тестовой программе должно быть выполнено с использованием DIP-переключателей.

В тестовой программе должна быть продемонстрирована работа с клавиатурой и последовательным интерфейсом по прерыванию.

Работа с клавиатурой должна быть организована с переповторами, т.е. с отслеживанием длительного нажатия кнопки (как на клавиатуре персонального компьютера).

Драйвер клавиатуры должен адекватно обрабатывать одновременное нажатие нескольких кнопок.

Должен быть предусмотрен контроль ввода корректных значений в рамках выполнения прикладной задачи.

В программе должны быть использованы механизмы взаимного исключения.

Задание. В случае установки на DIP-переключателях заданной комбинации (определяется студентом) контроллер SDK-1.1 входит в режим тестирования клавиатуры. В остальных случаях выполняется задача в соответствии с заданием. Скорость последовательного канала - 9600 бит/с.

Конвертор из десятичной в двоичную систему счисления. Диапазон преобразуемых значений - от 010 до 25510 включительно. 8-разрядная сетка для отображения двоичных чисел. При помощи клавиатуры SDK-1.1 вводится десятичное число для конвертирования. Кнопка перевода в двоичную систему счисления - «*». Вводимые с клавиатуры числа и результат должны выводиться в последовательный канал и отображаться в терминале персонального компьютера. Каждое новое преобразование начинается с новой строки. Должен быть предусмотрен контроль ввода корректных значений.

Содержание отчета по лабораторной работе:

• Титульный лист.

• Цель, задачи, предмет и объект лабораторной работы по данной теме.

• Перечень и характеристика оборудования, приборов и материалов, необходимых для выполнения лабораторной работы с указанием требований по технике безопасности.

• Описание индивидуального задания по лабораторной работе.

• Иллюстрация организации и функционирования разработанного программного обеспечения (драйверы, тестовая программа) в виде блок-схемы, диаграммы процессов, потоков данных, диаграммы состояний автоматов и   других способов структурного и поведенческого описания программы (по выбору студента).

• Программный код разработанной программы, с пояснениями.

• Ответы на контрольные вопросы.

• Выводы.

• Литература, используемая для выполнения лабораторной работы.

Пример выполнения индивидуального задания Пример программы:

/* init sio Инициализирует последовательный канал на заданной скорости.

Вход: char speed - скорость. Задается константами, описанными в заголовочном файле sio.h bit sdouble - дублирование скорости: 0 - не дублировать скорость, заданную аргументом speed;

1 - дублировать.

Выход: нет Результат: нет */ void init sio( unsigned char speed ) { TH1 = speed;

TMOD |= 0x20;

//Таймер 1 будет работать в режиме autoreload TCON |= 0x40;

//Запуск таймера SCON = 0x50;

//Настройки последовательного канала ES =0;

//Запрещение прерываний от приемопередатчика } /* RSioStat Возвращает ненулевое значение, если буфер приема не пуст Вход: нет Выход: нет Результат:

0 - буфер приема пуст, 1 - был принят символ */ unsigned char rsiostat(void) return RI;

} /* wsio   Отправляет символ по последовательному каналу Вход: unsigned char с - символ, который нужно отправить Выход: нет Результат: нет */ void wsio( unsigned char с ) { SBUF = с;

TI =0;

while ( !TI ) ;

} /* rsio Дожидается приема символа из последовательного канала и возвращает его.

Вход: нет Выход: нет Результат: принятый символ */ unsigned char rsio(void) { while( !RI );

RI = 0;

return SBUF;

} /* type Выводит ASCIIZ-строку в последовательный канал Вход: char *str - указатель на строку Выход:нет Результат: нет */ void type(char * str) { while( *str ) wsio( *str++ ) ;

} /* main */ void main( void ) { unsigned char c;

init sio( S9600 ) ;

  type("Тест драйвера SIO для стенда SDK-1.l\r\n");

type("Нажимайте кнопки для тестирования... \r\n");

while( 1 ) { if( rsiostat () ) { с = rsio () ;

switch( с ) { case '1': type("\r\ntest l\r\n");

break;

case '2': type("\r\ntest 2\r\n");

break;

case '3': type("\r\ntest 3\r\n");

break;

default: wsio( с );

break;

} } } } Порядок выполнения лабораторной работы, оформления и оценки ее результатов, а так же процедура защиты работы.

Студент запускаем программу и поэтапно выполняет все задания.

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

3.9. Лабораторная работа 9. Разработка драйвера жидкокристаллического индикатора (ЖКИ) учебно-лабораторного стенда SDK-1. Цель, задачи, предмет и объект лабораторной работы по данной теме.

Целью лабораторной работы является разработка драйвера жидкокристаллического индикатора (ЖКИ) учебно-лабораторного стенда SDK 1.1.

Задачи:

Разработать и написать драйвер жидкокристаллического индикатора (ЖКИ) для учебно-лабораторного стенда SDK-1.1.

Написать программу для разработанного драйвера, которая выполняет определенную вариантом прикладную задачу.

Объектом лабораторной работы является стенд SDK-1.1.

Предметом лабораторной работы являются технологии разработки драйвера жидкокристаллического индикатора (ЖКИ) учебно-лабораторного стенда SDK-1.1.

Перечень и характеристика оборудования, приборов и материалов, необходимых для выполнения лабораторной работы с указанием требований по технике безопасности.

  Перечень и характеристика оборудования, приборов и материалов, необходимых для выполнения лабораторной работы с указанием требований по технике безопасности аналогичны лабораторной работе №4.

Литература (основная и дополнительная), требуемая для выполнения лабораторной работы. Для выполнения лабораторной работы студент использует УМП по выполнению лабораторной работы, также может быть использована следующая литература:

основная: [1-4];

дополнительная: [50], [51], [9], [21], [25].

Краткое изложение основных теоретических и методических аспектов проблемы, составляющей содержание предмета лабораторной работы (определения, принципы, методика расчетов, схемы, алгоритмы, условия сравнения и др.).

ЖКИ в контроллере SDK-1.1 подключен не напрямую к микроконтроллеру ADuC812, а через расширитель портов ввода-вывода, выполненный на базе ПЛИС. В ЖКИ есть специальный контроллер, формирующий необходимые напряжения на входах матрицы и осуществляющий динамическую индикацию.

Для работы с этим контроллером реализован простейший интерфейс, описанный ниже (рис. 3.28, табл. 3.8). Матрица имеет 80 входов по горизонтали и 16 входов по вертикали.

Рис. 3.28. Схема подключения контроллера ЖКИ к МК ADuC Матрица ЖКИ состоит из 32 знакомест (2 строки по 16 символов) размером 5 точек по горизонтали и 8 точек по вертикали. Для отображения различных символов внутри контроллера ЖКИ есть знакогенератор.

Таблица 3. Интерфейс ЖКИ Обозначен Описание ие RS Переключение между регистрами команд и данных: 1 - данные, 0 - команды R/W 1- чтение (из контроллера ЖКИ), 0 - запись (в контроллер ЖКИ) Е Разрешающий сигнал (1 - активный уровень). Если сигнал Е = 0, то контроллер ЖКИ игнорирует все остальные сигналы DB0 Бит данных   DB1 Бит данных DB2 Бит данных DB3 Бит данных DB4 Бит данных DB5 Бит данных DB6 Бит данных DB7 Бит данных Основными компонентами контроллера ЖКИ являются память DDRAM (Data Display RAM), память CGRAM (Character Generator RAM), память CGROM (Character Generator ROM), счетчик адреса, регистр команд IR (Instruction Register), регистр данных DR (Data Register). Регистр команд предназначен для записи в него таких операций, как очистка дисплея, перемещение курсора, включение/выключение дисплея, а также установка адреса памяти DDRAM и CGRAM для последующего их выполнения. Регистр данных временно хранит данные, предназначенные для записи или чтения из DDRAM или CGRAM (символы). Эти два регистра можно выбрать с помощью регистрового переключателя RS (Register Select).

За связь с ЖКИ в расширителе портов ввода-вывода отвечают два регистра:

DATA IND (адрес 0x080001) отвечает за выдачу информации на шину данных (через этот регистр можно передавать команды контроллеру и данные).

C IND (адрес 0x080006) отвечает за формирование сигналов Е, R/W и RS, позволяющих регулировать обмен на шине между расширителем портов и контроллером ЖКИ.

Рис. 3.29. Регистры, необходимые для работы с ЖКИ На рис. 3.29 регистры расширителя портов изображены слева, регистры контроллера ЖКИ справа. Для доступа к регистрам контроллера ЖКИ вы должны сформировать на шине сигналы с помощью регистров расширителя портов.

Вся работа с индикатором сводится к выполнению следующих инструкций:

Первым шагом вы записываете команду или данные (коды выводимых символов) в регистр DATA IND расширителя портов. После этого, содержимое   этого регистра появляется на шине данных контроллера ЖКИ (DB0-DB7).

Контроллер на эти данные, естественно, не реагирует, так как сигнал Е (Enable) нами еще не выставлен в активный уровень (логическая «1»), Вторым шагом вы должны разрешить работу с шиной с помощью сигнала Е (логическая «1»), выставить сигнал записи (логический «О» на линии W) и указать тип регистра, с которым вы будете работать в контроллере ЖКИ на линии RS. Если вы передаёте данные, то на сигнал RS нужно подать «1», если команду, то «0».

Необходимо помнить, что в учебном стенде SDK-1.1 начальная инициализация контроллера ЖКИ уже выполнена в загрузчике. В реальной системе вам придется программировать ее самостоятельно.

Время выполнения команд контроллером ЖКИ не равно нулю, и это нужно учитывать в своем драйвере: опрашивать флаг готовности ЖКИ (BF).

Таким образом, функции работы с ЖКИ НЕ нужно вызывать в обработчиках прерывания других периферийных устройств (например, таймера).

Контрольные вопросы для определения степени готовности студента самостоятельно работать с оборудованием, приборами и осуществлять необходимые расчеты, замеры и оформления:

1. Раскройте структуру специального контроллера, формирующего необходимые напряжения на входах матрицы и осуществляющий динамическую индикацию.

2. Поясните интерфейс ЖКИ.

3. Каковы основные компоненты контроллера ЖКИ?

4. Какие два регистра отвечают за связь с ЖКИ в расширителе портов ввода-вывода?

5. Какие действия необходимо выполнить для доступа к регистрам контроллера ЖКИ?

6. Назовите инструкции для работы с индикатором.

Задания по лабораторной работе (формулировки по нескольким вариантам с учетом максимальной индивидуализации заданий).

В рамках лабораторной работы необходимо разработать программу для контроллера SDK-1.1, которая выполняет конкретную прикладную задачу (см.

задание). Реализация задачи требует знания материалов предыдущих лабораторных работ: таймеры микроконтроллера ADuC812, последовательный канал, светодиодные индикаторы, клавиатура и др.

Драйвер ЖКИ должен включать следующие функции:

void InitLCD(void) - Инициализация ЖКИ.

void WriteControlLCD( unsigned char ch) - Запись значения в регистр управления ЖКИ C IND (ПЛИС): ch - значение, записываемое в С IND.

bit ReadBFLCD(void) – Чтение флага BF (флаг занятости контроллера ЖКИ).

unsigned char ClearLCD(void) – Очистка дисплея с возвратом результата выполнения операции.

  unsigned char GotoXYLCD (unsigned char x, bit y) - Переход в заданную позицию дисплея с возвратом результата выполнения операции: х, у координаты позиции.

unsigned char PrintCharLCD (unsigned char symbol) – Вывод символа на дисплей с возвратом результата выполнения операции: symbol - выводимый символ.

Кроме того, может быть реализована функция вывода строки на ЖКИ, функция дополнительной настройки ЖКИ (отображение, мерцание курсора).

Драйвер клавиатуры использует прерывание таймера, в котором производится опрос состояния кнопок (сканирование клавиатуры). В данном случае можно применить автоматное программирование. В драйвер клавиатуры рекомендуется включить функцию чтения нажатых кнопок из буфера, связывающего ее с обработчиком прерывания таймера. Реакции на нажатия кнопок клавиатуры должны формироваться в главной программе. Вся обработка нажатий кнопок не должна быть локализована в обработчике прерываний таймера.

Драйвер таймера должен включать следующие функции (помимо обработчика прерывания):

void InitTimer(void) – Инициализация таймера.

unsigned long GetMsCounter(void) - Получение текущей метки времени в миллисекундах.

unsigned long DTimeMs(unsigned long t0) - Измерение количества миллисекунд, прошедших с временной метки t0 и до текущего времени.

void DelayMs(unsigned long t) - Задержка на t миллисекунд.

Кроме того, могут быть реализованы функции работы с таймером в режиме «счетчик» (например, чтение счетчика).

Работа с последовательным каналом (приемопередатчиком UART) должна быть организована асинхронно по прерыванию. Драйвер последовательного канала включает следующие функции (помимо обработчика прерывания):

void InitSerial(void) – Инициализация последовательного канала.

unsigned char WriteSerial(unsigned char data buf) - Передача байта данных data buf с возвратом результата выполнения операции.

unsigned char ReadSerial(unsigned char* data buf) - Прием байта данных *data buf с возвратом результата выполнения операции.

unsigned char StatusSerial(void) – Чтение признака наличия байта в буфере приема.

Кроме того, может быть реализована функция вывода строки в последовательный канал.

Разрабатываемые драйверы устройств должны быть выполнены в виде отдельных программных модулей (файлов), содержащих функции по работе с заданным одним устройством.

На уровне драйверов (особенно обработчиков прерываний) НЕ рекомендуется смешивать работу с несколькими периферийными устройствами (например, в обработчике прерывания таймера выводить строку на ЖКИ, опрашивать DIP-переключатели и т.д.). Взаимодействие устройств ввода   вывода следует организовать на прикладном уровне с использованием API функций их драйверов.

Должен быть предусмотрен контроль ввода корректных значений в рамках выполнения прикладной задачи.

В программе должны быть использованы механизмы взаимного исключения.

Задание. Написать программу, реализующую функции электронного секундомера. Точность измерения времени - сотые доли секунды. В качестве устройства, измеряющего время, следует использовать один из внутренних таймеров микроконтроллера ADuC812. Управление секундомером должно осуществляться с клавиатуры стенда SDK-1.1:

кнопка «*» («старт/пауза») - запускает процесс измерения времени либо приостанавливает его, не сбрасывая;

кнопка «#» («сброс») - сбрасывает замеряемое время в ноль.

На ЖКИ должна отображаться четко следующая информация: замеряемое время (слева в верхней строке);

минимальное из всех замеренных времен (слева в нижней строке);

максимальное из всех замеренных времен (справа в нижней строке). Формат отображения времени: «SS:CC», где SS - секунды, СС - сотые доли секунды. После переполнения секундомер начинает отсчет с нуля, т.е.

99,99с 0с. Замеренный интервал времени по нажатию кнопки «пауза»

должен выводиться в последовательный канал в формате, описанном ранее.

Каждый интервал с новой строки. Сообщения о сбросе и переполнении секундомера тоже должны выводиться в последовательный канал (формат этих сообщений определяется студентом).

В рамках задания необходимо реализовать:

• драйвер таймера;

• драйвер последовательного канала;

• драйвер клавиатуры;

• драйвер ЖКИ.

Содержание отчета по лабораторной работе:

• Титульный лист.

• Цель, задачи, предмет и объект лабораторной работы по данной теме.

• Перечень и характеристика оборудования, приборов и материалов, необходимых для выполнения лабораторной работы с указанием требований по технике безопасности.

• Описание индивидуального задания по лабораторной работе.

• Модель написанной программы • Разработанные протоколы, форматы данных и др.

• Программный код разработанной программы, с пояснениями.

• Ответы на контрольные вопросы.

• Выводы.

• Литература, используемая для выполнения лабораторной работы.

Пример выполнения индивидуального задания Пример программы:

  В приведенном ниже исходном тексте есть некоторые упрощения, сделанные для того, чтобы сделать более понятными основные операции, необходимые для работы с ЖКИ:

Необходимо помнить, что в учебном стенде SDK-1.1 начальная инициализация контроллера ЖКИ уже выполнена в загрузчике. В реальной системе вам придется программировать ее самостоятельно.

Время выполнения команд контроллером ЖКИ не равно нулю и это нужно учитывать в своей программе. В самом простом варианте можно сформировать задержки после выполнения команд (что и сделано в функции main()).

Величину времени различных команд можно уточнить у преподователя «Жидкокристаллический индикатор».

В приведенном исходном тексте нет описания функции работы с регистрами ПЛИС (write max). Драйвер ПЛИС рассматривается в курсе лекций, а также содержится в техническом описании стенда.

/* Пример работы с ЖКИ для учебного стенда SDK-1. Логическая '1' на входе 'Е' позволяет передавать и принимать данные между микроконтроллером и контроллером ЖКИ. Логический ноль на входе RW позволяет записывать данные в контроллер ЖКИ, сигнал RS позволяет переключать регистры контроллера ЖКИ: 1 - данные, 0 - команды.

*/ #define Е 1 // Сигнал разрешения 'Е #define R 2 // Сигнал чтения #define RS 4 // Сигнал переключения в режим передачи данных #define DATA IND 0xl // Регистр шины данных ЖКИ (ПЛИС) #define С IND 0x6 // Регистр команд ЖКИ (ПЛИС) #define CLEAR 0x01 // Команда очистки дисплея /* lсd clear Очистка дисплея.

Вход: нет Выход: нет Результат: нет */ void lсd clear( void ) { // Записываем в регистр шины данных ЖКИ ( DATA IND ) // команду очистки дисплея CLEAR write_max( DATA_IND, CLEAR );

// Создаём строб записи, для этого на сигнальную линию 'Е' // выдаём короткий импульс write max( С_IND, Е );

// положительной полярности, на линии 'RS' держим // '0', чтобы попасть в регистр команд write max( С_IND, 0 );

  } /* lсd putch Вывод символа на ЖКИ.

Вход: char с - выводимый символ Выход: нет Результат: нет */ void lсd putch( char с ) { // Записываем в регистр шины данных ЖКИ ( DATA_IND ) код символа write max( DATA_IND, с );

// Создаём строб записи, для этого на сигнальную линию 'Е' // выдаём короткий импульс write_max( C_IND, RS | Е );

// положительной полярности, на линии 'RS' держим '1', // чтобы попасть в регистр данных write max( С_IND, RS );

} /* main */void main( void ) { unsigned short i = 0;

lcd clear();

for( i = 0;

i 300;

i++ );

lcd putch( 'H' );

lcd putch( 'e' );

lcd putch( 'l' );

lcd putch( 'l' );

lcd putch( 'o' );

lcd putch( '!' );

while( 1 );

} Порядок выполнения лабораторной работы, оформления и оценки ее результатов, а так же процедура защиты работы.

Студент запускаем программу и поэтапно выполняет все задания.

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

Лабораторная работа 10. Разработка драйверов интерфейса I2C 3.10.

и I2C-устройств учебно-лабораторного стенда SDK-1.   Цель, задачи, предмет и объект лабораторной работы по данной теме.

Целью лабораторной работы является разработка драйверов интерфейса I2C и I2C-устройств учебно-лабораторного стенда SDK-1.1.

Задачи:

Разработать и написать драйверы интерфейса I С и I С-устройств учебно лабораторного стенда SDK-1.1.

Написать программу для разработанных драйверов, которая выполняет определенную вариантом прикладную задачу.

Объектом лабораторной работы является стенд SDK-1.1.

Предметом лабораторной работы являются технологии разработка драйверов интерфейса I2C и I2C-устройств учебно-лабораторного стенда SDK 1.1.

Перечень и характеристика оборудования, приборов и материалов, необходимых для выполнения лабораторной работы с указанием требований по технике безопасности.

Перечень и характеристика оборудования, приборов и материалов, необходимых для выполнения лабораторной работы с указанием требований по технике безопасности аналогичны лабораторной работе №4.

Литература (основная и дополнительная), требуемая для выполнения лабораторной работы. Для выполнения лабораторной работы студент использует УМП по выполнению лабораторной работы, также может быть использована следующая литература:

основная: [1-4];

дополнительная: [46], [50], [51], [13], [19], [23], [24], [25].

Краткое изложение основных теоретических и методических аспектов проблемы, составляющей содержание предмета лабораторной работы (определения, принципы, методика расчетов, схемы, алгоритмы, условия сравнения и др.).

В бытовой технике, телекоммуникационном оборудовании и промышленной электронике часто встречаются похожие решения, включает в себя:

Некоторый «умный» узел управления, обычно однокристальная микроЭВМ.

Узлы общего назначения, такие как буферы ЖКИ, порты ввода-вывода, RAM, E2PROM или преобразователи данных.

Специфические узлы, такие как схемы цифровой настройки и обработки сигнала для радио- и видеосистем, или генераторы тонального набора для телефонии.

Для того чтобы использовать эти общие решения с выгодой для конструкторов и производителей (технологов), а также увеличить эффективность аппаратуры и упростить схемотехнические решения, компания Philips в 1980 году разработала простую двунаправленную двухпроводную шину для эффективного «межмикросхемного» (inter-IC) управления. Шина так и называется - Inter-Integrated Circuit, или IIC (I2C) шина. В настоящее время ассортимент продукции Philips включает более 150 КМОП и биполярных I2C   совместимых устройств, функционально предназначенных для работы во всех трех вышеперечисленных категориях электронного оборудования. Все I2C совместимые устройства имеют встроенный интерфейс, который позволяет им связываться друг с другом по шине I2C. Это конструкторское решение разрешает множество проблем сопряжения различных устройств, которые обычно возникают при разработке цифровых систем.

Основной режим работы шины I2C - 100 кбит/с;

10 кбит/с в режиме работы с пониженной скоростью. Заметим, что стандарт допускает тактирование с частотой вплоть до нулевой. Для адресации I2C -устройств используется 7 бит (1980 год).

Список возможных применений I2C:

1. Доступ к модулям памяти (RAM, E2PROM, FLASH и др.).

2. Доступ к низкоскоростным ЦАП/АЦП.

3. Работа с часами реального времени (RTC).

4. Регулировка контрастности, насыщенности и цветового баланса мониторов.

5. Управление интеллектуальными звукоизлучателями (динамиками).

6. Управление ЖКИ, в том числе в мобильных телефонах.

7. Чтение информации с датчиков мониторинга и диагностики оборудования, например, термостат центрального процессора или датчик скорости вращения вентилятора охлаждения процессора.

8. Информационный обмен между микроконтроллерами.

I2C использует две двунаправленные линии: последовательная линия данных (SDA, англ. Serial DAta) и последовательная линия тактирования (SCL, англ. Serial CLock), обе нагруженные резисторами (см. рис. 3.30).

Максимальное напряжение +5В, часто используется +3,3B, однако допускаются и другие напряжения (не менее +2В). Шина I2C поддерживает любую технологию изготовления микросхем (НМОП, КМОП, биполярную).

Рис. 3.30. Пример соединения устройств на шине PC Каждое устройство распознается по уникальному адресу, будь то микроконтроллер, ЖКИ-буфер, память или интерфейс клавиатуры, и может работать как передатчик или приёмник, в зависимости от назначения устройства. Обычно ЖКИ-буфер - только приёмник, а память может как   принимать, так и передавать данные. Кроме того, устройства могут быть классифицированы как ведущие и ведомые при передаче данных. Ведущий это устройство, которое инициирует передачу данных и вырабатывает сигналы синхронизации. При этом любое адресуемое устройство считается ведомым по отношению к ведущему. Классическая адресация включает 7-битное адресное пространство с 16 зарезервированными адресами (шина I2C 1980 года). Это означает до 112 свободных адресов для подключения периферии на одну шину.

Возможность подключения более одного микроконтроллера к шине означает, что более чем один ведущий может попытаться начать пересылку в один и тот же момент времени. Для устранения хаоса, который может возникнуть в данном случае, разработана процедура арбитража. Эта процедура основана на том, что все I2C -устройства подключаются к шине по правилу монтажного И.

Генерация синхросигнала - это всегда обязанность ведущего: каждый ведущий генерирует свой собственный сигнал синхронизации при пересылке данных по шине. Сигнал синхронизации может быть изменен, только если он «вытягивается» медленным ведомым устройством (путем удержания линии в низком состоянии), или другим ведущим в случае столкновения.

Контрольные вопросы для определения степени готовности студента самостоятельно работать с оборудованием, приборами и осуществлять необходимые расчеты, замеры и оформления:

1. Дайте характеристику шине Inter-Integrated Circuit, I2C.

2. Раскройте основной режим работы шины I2C.

3. Раскройте список возможных применений I2C.

4. Какие двунаправленные линии использует I2C?

5. Как реализуется генерация синхросигнала?

Задания по лабораторной работе (формулировки по нескольким вариантам с учетом максимальной индивидуализации заданий).

Данная лабораторная работа посвящена изучению последовательного интерфейса I2C и устройств, подключенных по этому интерфейсу к микроконтроллеру ADuC812 стенда SDK-1.1, - энергонезависимая память EEPROM и часы реального времени (RTC).

В рамках лабораторной работы необходимо разработать программу для контроллера SDK-1.1, которая выполняет конкретную прикладную задачу (см.

задание). Реализация задачи требует знания материалов предыдущих лабораторных работ: таймеры микроконтроллера ADuC812, последовательный канал, светодиодные индикаторы, клавиатура, ЖКИ, звуковой излучатель и др.

В данной работе МК ADuC812 - ведущий, a EEPROM и RTC - ведомые на шине I2C. К особенностям реализации контроллера последовательного двухпроводного интерфейса в ADuC812 можно отнести следующие: в режиме ведущего генерация сигналов на линиях данных и синхронизации является программной (через биты регистров специального назначения);

в режиме ведущего (в отличие от ведомого) НЕ генерируются прерывания по приему/передаче данных. С учетом сказанного ниже приведены варианты реализации драйвера I2C:

  Простой вариант. В драйвере I2C реализуется синхронный обмен данными, который предполагает отсутствие ситуации неготовности I2C устройств. Однако EEPROM и RTC не порты ввода-вывода и все-таки требуют определенное количество времени на выполнение циклов чтения/записи/стирания данных. При синхронной организации обмена эти задержки должна учитывать программа, т.е. драйвер I2C.

Усложненный вариант. Драйвер I2C должен использовать прерывание таймера, в котором работа с интерфейсом представляет собой периодический процесс генерации сигналов на линиях данных (SDA) и синхронизации (SCL) и организуется в виде конечного автомата. Состояниями данного автомата являются состояния шины I2C по передаче и приему данных (например, передача старт- или стоп- состояния, передача адреса ведомого устройства, передача или прием байта данных, передача или прием подтверждения и др.).

Кроме того, необходимо отслеживать ошибочные состояния I2C и обрабатывать их. Частота настройки таймера определяет невысокую скорость передачи данных по шине I2C. Вся работа с интерфейсом НЕ должна быть локализована в обработчике прерываний таймера, так как процессом обмена данными необходимо управлять при помощи API-функций, которые взаимодействуют с обработчиком прерывания через буферы.

Независимо от варианта реализации драйвера I2C он должен содержать такие API-функции, как инициализация I2C, прием и передача блока данных и т.д. Взаимодействие с I2C -устройствами (EEPROM, RTC) при помощи такого драйвера может быть выполнено по опросу (проверка готовности ведомых устройств к обмену).

Драйвер EEPROM должен включать следующие функции:

unsigned char ReadEEPROM (unsigned long addr, unsigned long size, unsigned char *buf) - Чтение данных из EEPROM с возвратом результата выполнения операции:

addr - адрес ячейки памяти, size - размер буфера для чтения, buf - буфер.

unsigned char WriteEEPROM (unsigned long addr, unsigned long size, unsigned char *buf) - Запись данных в EEPROM с возвратом результата выполнения операции:

addr - адрес ячейки памяти, size - размер буфера записи, buf - буфер.

Разрабатываемые драйверы устройств должны быть выполнены в виде отдельных программных модулей (файлов), содержащих функции по работе с заданным одним устройством.

На уровне драйверов (особенно обработчиков прерываний) НЕ рекомендуется смешивать работу с несколькими периферийными устройствами (например, в обработчике прерывания таймера выводить строку на ЖКИ, опрашивать DIP-переключатели и т.д.). Взаимодействие устройств ввода   вывода следует организовать на прикладном уровне с использованием API функций их драйверов.

Должен быть предусмотрен контроль ввода корректных значений в рамках выполнения прикладной задачи.

Задание.

Контроллер SDK-1.1 организует по последовательному каналу систему меню, по которому можно перемещаться с помощью символов, передаваемых со стороны персонального компьютера с использованием терминальной программы. Прием неправильного символа по последовательному каналу приводит к перерисовке меню.

Вариант меню:

Тест EEPROM --------------------------------------------------------------------- - Запись данных - Чтение данных - Очистка памяти - Автоматический тест -------------------------------------------------- Кроме того, аналогичная система меню должна быть организована и на ЖКИ стенда SDK-1.1. Перемещение по этому меню реализуется при помощи клавиатуры SDK-1.1 (кнопки управления по выбору студента). Указанные пункта меню должны быть выполнены обязательно, оформление может быть иным и разным для терминала и ЖКИ, но главное - понятным и удобным для использования.

При запуске теста в терминал и на ЖКИ SDK-1.1 должно выводиться меню.

По выбору пункта меню «Запись данных» EEPROM заполняется последовательностью случайных чисел (127/255 байт) и CRC8, рассчитанного по этой последовательности. Результат выполнения операции (OK/ERR_I2C/ERR_CRC), записанная последовательность и CRC8 в шестнадцатеричном формате выводятся в терминал.

Пример вывода:

Запись данных [ОК] [FA 11 45 67 23 21 СС Е2 99 23 СВ В5 5А 2F 25 1F 44...

… CRC8 [0x28] Вывод записанных данных для удобочитаемости может быть выполнен в виде 8/16 строк по 16 значений.

На ЖКИ SDK-1.1 отображается результат выполнения операции («Test EEPROM Write ОК»), По нажатию специальной кнопки на клавиатуре SDK-1. на ЖКИ снова выводится меню.

По выбору пункта меню «Чтение данных» из EEPROM считывается записанная последовательность и рассчитывается CRC8 (все 128/256 байт).

  Результат выполнения операции (OK/ERR_I2C/ERR_CRC), прочитанная последовательность и CRC8 в шестнадцатеричном формате выводятся в терминал. Пример вывода:

Чтение данных [ОК] [ FA 11 45 67 23 21 СС Е2 99 23 СВ В5 5А 2F 25 1F 44...

… CRC8 [0x28] На ЖКИ SDK-1.1 отображается результат выполнения операции («Test EEPROM Read ОК»), По нажатию специальной кнопки на клавиатуре SDK-1. на ЖКИ снова выводится меню.

По выбору пункта меню «Очистка памяти» выполняется стирание всей памяти EEPROM (заполнение 0xFF). Результат выполнения операции (OK/ERR_I2C/ERR_CRC) выводится в терминал. Пример вывода:

Очистка памяти [ОК] На ЖКИ SDK-1.1 отображается результат выполнения операции («Test EEPROM Erase all OK»). По нажатию специальной кнопки на клавиатуре SDK 1.1 на ЖКИ снова выводится меню.

По выбору пункта меню «Автоматический тест» выполняется запись и чтение данных EEPROM как в пунктах меню 1 и 2. Результат выполнения операции (OK/ERR_I2C/ERR_CRC) выводится в терминал. Пример вывода:

Запись данных [ОК] Чтение данных [ОК] На ЖКИ SDK-1.1 отображается результат выполнения операции («Test EEPROM Write & Read OK»). По нажатию специальной кнопки на клавиатуре SDK-1.1 на ЖКИ снова выводится меню.

Необходимо отметить, что ошибка в качестве результата выполнения операции может быть двух видов: ошибка обмена по каналу I2С (ERR_I2C) и ошибка в циклическом коде (ERR_CRC). Первая должна отслеживаться на уровне драйвера I2С, вторая - на уровне расчета CRC8.

В рамках задания необходимо реализовать:

• драйвер последовательного канала;

• драйвер клавиатуры (может быть реализован без переповторов, т.е.

по принципу «кнопка нажата или нет»);

• драйвер ЖКИ;

• драйвер I2С;

• драйвер EEPROM;

• функцию генерации случайного (псевдослучайного) числа в диапазоне от 0 до 255 на основе таймера ADuC812;

• функцию расчета CRC8 с использованием полинома х8 + х5 + х4 + 1.

Содержание отчета по лабораторной работе:

  • Титульный лист.

• Цель, задачи, предмет и объект лабораторной работы по данной теме.

• Перечень и характеристика оборудования, приборов и материалов, необходимых для выполнения лабораторной работы с указанием требований по технике безопасности.

• Описание индивидуального задания по лабораторной работе.

• Модель написанной программы • Разработанные протоколы, форматы данных и др.

• Программный код разработанной программы, с пояснениями.

• Ответы на контрольные вопросы.

• Выводы.

• Литература, используемая для выполнения лабораторной работы.

Пример выполнения индивидуального задания В качестве исходных текстов программы студент использует программные коды рассмотренные в соответствующих примерах к лабораторным работам №3-10 и дорабатывает их по приведенным ниже рекомендациям.

Драйвер часов реального времени должен включать следующие функции:

void InitRTC(void) - Инициализация часов реального времени.

unsigned char ReadRTC (TimeDate *td) - Чтение даты и времени из RTC с возвратом результата выполнения операции: td - буфер для даты и/или времени в виде структуры специального формата.

unsigned char WriteRTC (TimeDate *td) - Запись даты и времени в RTC с возвратом результата выполнения операции: td - буфер для даты и/или времени в виде структуры специального формата.

Кроме того, в драйвер могут входить функции для работы с будильником и для дополнительной настройки RTC.

Драйвер клавиатуры тоже использует прерывание таймера, в котором производится опрос состояния кнопок (лабораторная работа № «Клавиатура»), В данном случае можно применить автоматное программирование. В драйвер клавиатуры рекомендуется включить функцию чтения нажатых кнопок из буфера, связывающего ее с обработчиком прерывания. Реакции на нажатия кнопок клавиатуры должны формироваться в главной программе. Вся обработка нажатий кнопок НЕ должна быть локализована в обработчике прерываний таймера.

Драйвер ЖКИ должен включать следующие функции (лабораторная работа №9):

void InitLCD(void) - Инициализация ЖКИ.

void WriteControlLCD( unsigned char ch) - Запись значения в регистр управления ЖКИ C IND (ПЛИС): ch - значение, записываемое в С IND.

bit ReadBFLCD(void) - Чтение флага BF (флаг занятости контроллера ЖКИ).

unsigned char ClearLCD(void) - Очистка дисплея с возвратом результата выполнения операции.

  unsigned char GotoXYLCD (unsigned char x, bit y) - Переход в заданную позицию дисплея с возвратом результата выполнения операции: х, у координаты позиции.

unsigned char PrintCharLCD (unsigned char symbol) - Вывод символа на дисплей с возвратом результата выполнения операции: symbol - выводимый символ.

Кроме того, может быть реализована функция вывода строки на ЖКИ, функция дополнительной настройки ЖКИ (отображение, мерцание курсора).

Драйвер таймера должен включать следующие функции помимо обработчика прерывания (лабораторная работа № 6):

void InitTimer(void) - Инициализация таймера.

unsigned long GetMsCounter(void) - Получение текущей метки времени в миллисекундах.

unsigned long DTimeMs(unsigned long t0) - Измерение количества миллисекунд, прошедших с временной метки to и до текущего времени.

void DelayMs(unsigned long t) - Задержка на t миллисекунд.

Работа с последовательным каналом (приемопередатчиком UART) должна быть организована по прерыванию. Драйвер последовательного канал включает следующие функции помимо обработчика прерывания (лабораторная работа №7.

void InitSerial(void) - Инициализация последовательного канала.

unsigned char WriteSerial(unsigned char data buf) - Передача байта данных data buf с возвратом результата выполнения операции.

unsigned char ReadSerial(unsigned char* data buf) - Прием байта данных *data buf с возвратом результата выполнения операции.

unsigned char StatusSerial (void) - Чтение признака наличия байта в буфере приема.


Кроме того, может быть реализована функция вывода строки в последовательный канал.

Порядок выполнения лабораторной работы, оформления и оценки ее результатов, а так же процедура защиты работы.

Студент запускаем программу и поэтапно выполняет все задания.

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

4. Самостоятельная работа     4.1. Организация самостоятельной работы Самостоятельная работа студента включает (табл. 4.1):

– самостоятельное изучение разделов дисциплины по учебной литературе, а также используя глобальную сеть Интернет;

– подготовка студентов по конспектам лекций, учебной и учебно методической литературе к лабораторным занятиям;

– подготовка и выполнение курсового проекта по дисциплине;

– выполнение индивидуальных заданий по указанию преподавателя;

– подготовка рефератов, сообщений и докладов.

В таблице 4.2 раскрывается содержание каждого вида самостоятельной работы и указывается время, необходимое для его выполнения. Не допускается планировать задания на самостоятельную работу, не предусмотренные учебным планом.

Контроль самостоятельной работы осуществляется в виде проверки конспектов по самостоятельно изученным вопросам, опросу на лекциях, тестированиях, собеседованиях на лабораторных занятиях. Подробно поэтапное содержание контроля самостоятельной работы приведено в нижеследующей таблице.

Таблица 4. Содержание каждого вида самостоятельной работы и вида контроля Содержание Вид Наименование темы. Изучаемые вопросы самостоятельн контроля ой работы Тема 1. Вычислительные системы, цели и области применения вычислительных систем, цели и способы повышения их производительности Обзор и классификация целей и Работа с Конспект, областей применения вычислительных литературой, сообщение систем. Обзор целей и способов повышения поиск производительности вычислительных информации в систем, в том числе технологических, сети Интернет структурных и алгоритмических.

Литература: [ 1 ], стр. 443- Тема 2. Классификации вычислительных систем, особенности разработки применения систем разных классов Приводится несколько классификаций Работа с Конспект вычислительных систем, в том числе Флина, литературой, Хокни, и пр.. Задаётся ряд критериев оценки поиск вычислительных систем. Производится информации в сравнение, по заданным критериям, сети Интернет вычислительных систем разных классов, и определяются их достоинства и недостатки.

Литература: [ 1 ], стр. 463;

[ 6 ], стр. 256   270;

Тема 3. Модели и технологии параллельного программирования систем высокой производительности Краткий обзор моделей и технологий Работа с Конспект, параллельного программирования литературой, защита вычислительных систем. Особенности поиск лаборатор использования моделей и технологий при информации в ных работ, программировании систем разных классов. сети Интернет промежуто Технологии программирования CSP, Linda, чное MPI, Java, Ada, SR, OpenMP и их тестирован применение. ие, 1 глава Литература: [ 1 ], стр. 493;

[ 6 ], стр. 270- курсовой 296;

работы Тема 4. Современные микропроцессоры, высокопроизводительные серверы, вычислительные системы кластерного типа, Grid- типа, реконфигурируемые вычислительные системы Направления и способы повышения Работа с Конспект, производительности современных литературой, защита микропроцессоров. Классификация поиск лаборатор многоядерных микропроцессоров. информации в ных работ, Многоядерные микропроцессоры фирмы сети Интернет итоговое IBM. Многоядерные микропроцессоры фирм тестирован Intel и AMD. Многоядерные ие, 2 глава микропроцессоры фирмы SUN. Сравнение курсовой моделей современных микропроцессоров и работы особенности их использования. Требования, предъявляемые к современным серверным системам. Определение и назначение кластерных вычислительных систем.

Метакомпьютинг, определение и назначение данного подхода. Особенности метакомпьютеров Grid –типа.

Рассматриваются 2-3 вычислительные системы, входящие в первую десятку текущего (на момент начала проведения занятий) рейтинга Top500 самых высокопроизводительных систем в мире. На первый год действия данной рабочей программы, предполагается рассмотрение вычислительных систем IBM Blue Gene, Cray XT5 и IBM Roadrunner.

Литература: [ 1 ], стр. 443;

[ 6 ], стр. Самостоятельная работа студентов по дисциплине «Вычислительные системы» обеспечивается наличием на файл-сервере ФИТС (см. раздел настоящей РУП) учебников, в частности [2, 6, 8, 11, 14], в форматах pdf. и djvu.,   а также возможностью безлимитного доступа в Интернет со всех ПК, используемых в учебном процессе.

5. Образовательные технологии Требования ФГОС, Фактически, Показатель % %   1. Удельный вес активных и интерактивных форм проведения занятий (компьютерных симуляций, деловых и ролевых игр, разбор Не менее 40 конкретных ситуаций, психологические и иные тренинги), % Используемые интерактивные образовательные технологии: изучение материалов по электронному учебнику по дисциплине (разд. 1.1-1.3, п. 1.4.2.

«Содержание дисциплины»), компьютерное моделирование на базе компьютерных программ и пакетов приложения программирования учебного стенда на языке Си бесплатный компилятор SDCC и среда разработки Eclipse, утилита GNU Make для сборки проекта. Для доставки исполняемого модуля в стенд SDK–1.1 используется бесплатно распространяемая утилита M3P (ООО «ЛМТ»), загрузка программного обеспечения в стенд SDK–1.1 производится через инструментальный порт RS–232C. С такими инструментальными средствами компиляцию и загрузку программ можно выполнять как в операционной системе Windows, так и в Linux. Для разработки программного обеспечения может быть использована коммерческая среда разработки Keil Software, у которой есть бесплатная версия с ограничением на размер кода (разд. 1.3-1.4 п. 1.4.3 «Тематический план изучения дисциплины»), компьютерное тестирование по результатам освоения разделов по изучению аппаратного и программного обеспечения высокопроизводительных вычислительных систем;

современные технологии программирования высокопроизводительных вычислительных систем (разд. 1.3-1.4 п. 1.4. «Содержание дисциплины»). Все указанные технологии непосредственно отражены в структуре лабораторных работ.

6. Оценочные средства для текущего контроля успеваемости, промежуточной аттестации по итогам освоения дисциплины (модуля) Текущий и промежуточный контроль знаний осуществляется путем проведения тестирований, контрольных работ, ответов и докладов по ранее   пройденному материалу на лекциях. В связи с этим, для успешного освоения дисциплины студентам необходимо:

– регулярно посещать лекционные занятия;

– осуществлять регулярное и глубокое изучение лекционного материала, учебников и учебных пособий по дисциплине;

– активно работать на лабораторных занятиях;

– систематически выполнять курсовой проект;

– выступать с сообщениями по самостоятельно изученному материалу;

– участвовать с докладами на научных конференциях.

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

Лабораторное занятие включает в себя следующие этапы:

– защиту студентами предыдущей лабораторной работы;

– постановка задачи для выполнения лабораторной работы, включая краткие теоретические сведения по рассматриваемому вопросу, обсуждение методики выполнения работы;

– ответы на вопросы студентов;

– подготовка студентами бланков отчетов по выполняемой лабораторной работе;

– осуществление допуска студентов к выполняемой лабораторной работе посредством обсуждения теоретических вопросов по теме занятия;

– непосредственное проведение измерений лабораторной работы;

– подведение итогов занятия.

Для успешного усвоения дисциплины студенты обеспечиваются учебно методическими материалами по предмету (тематическими планами лекций и лабораторных занятий, необходимой учебной и научной литературой). Во время аудиторных занятий проводится выполнение заданий по заданной тематике, слушание и обсуждение сообщений по самостоятельно изучаемым вопросам, проведение тестирований, ответы на вопросы студентов.

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

Оценка полученных в ходе изучения знаний происходит с помощью контрольных тестирований, результатов работы студента на лабораторных занятиях, выступления с сообщениями по самостоятельно изучаемым вопросам.

Дисциплина «Вычислительные системы» изучается студентами очного отделения в течение 3 семестра обучения по направлению магистр. По окончании изучения дисциплины проводится итоговый контроль – экзамен в семестре.

Текущий контроль знаний осуществляется путем выставления балльных оценок за выполнение тех или иных видов учебной работы (выполнение   рефератов, выступление с докладами и сообщениями на лекциях, прохождение тестирования, выполнение контрольной работы и т.п.).

Уровень знаний оценивается баллами, набранными студентами в контрольных точках. Балльная оценка соответствующих контрольных точек приводится далее в технологической карте дисциплины.

Итоговый контроль знаний по дисциплине проводится в форме письменного экзамена. Итоговая семестровая оценка учитывает результаты модульно-рейтинговой системы промежуточного контроля. Для подготовки к экзамену студенты используют приводимый ниже перечень вопросов. Вместе с тем, конкретная формулировка экзаменационных вопросов, не выходя за пределы изученных на аудиторных занятиях и в ходе самостоятельной работы материалов, может отличаться от представленного перечня.


Примерный перечень вопросов для подготовки к экзамену по дисциплине «Вычислительные системы»

1. Обзор и классификация целей и областей применения вычислительных систем.

2. Обзор целей и способов повышения производительности вычислительных систем, в том числе технологических, структурных и алгоритмических.

3. Классификация вычислительных систем, в том числе Флина, Хокни, и пр..

4. Критерии оценки вычислительных систем.

5. Краткий обзор моделей и технологий параллельного программирования вычислительных систем.

6. Особенности использования моделей и технологий при программировании систем разных классов.

7. Технологии программирования CSP и их применение.

8. Технологии программирования Linda и их применение.

9. Технологии программирования MPI и их применение.

10. Технологии программирования Java и их применение.

11. Технологии программирования Ada и их применение.

12. Технологии программирования SR и их применение.

13. Технологии программирования OpenMP и их применение 14. Направления и способы повышения производительности современных микропроцессоров.

15. Классификация многоядерных микропроцессоров.

16. Многоядерные микропроцессоры фирмы IBM.

17. Многоядерные микропроцессоры фирм Intel и AMD.

18. Многоядерные микропроцессоры фирмы SUN.

19. Сравнение моделей современных микропроцессоров и особенности их использования.

20. Требования, предъявляемые к современным серверным системам.

21. Некоторые популярные серверные архитектуры.

  22. Структуры, функционирование и использование серверов различных классов производительности на примере серверов фирм SUN и/или IBM.

23. Определение и назначение кластерных вычислительных систем.

24. Обобщённая структурная схема кластерной системы.

25. Классификация кластерных систем.

26. Управление кластерными системами.

27. Обеспечение отказоустойчивости кластерных систем.

28. Метакомпьютинг, определение и назначение данного подхода.

29. Особенности метакомпьютеров Grid –типа.

30. Виды вычислительных систем Grid –типа.

31. Требования, предъявляемые к системам Grid –типа.

32. Особенности программного обеспечения для систем Grid –типа и требования, предъявляемые к нему на этапе разработки.

33. Управление Grid –системами и схема распределённого планировщика.

34. Вычислительная система IBM Blue Gene, 35. Вычислительная система Cray XT 36. Вычислительная система IBM Roadrunner.

37. Назначение стенда SDK 1.1. и его состав.

38. Разъемы стенда SDK 1.1. и назначение выводов 39. Обзор компонентов принципиальной электрической схемы SDK 40. Микроконтроллер ADuC 41. Внешняя память программ и данных SDK 1.1.

42. Компилятор SDCC 43. Инструментальная система M3P 44. Утилита Make 45. Система контроля версий SDCC По результатам проведенного экзамена выставляется оценка:

«отлично» – студентам, овладевшим целостными знаниями по дисциплине, активно работающим на практических занятиях, постоянно и творчески выполняющим индивидуальные задания, свободно использующим знаниями, полученными в результате самостоятельной работы (86 баллов и выше);

«хорошо» – студентам, владеющим знаниями по основным и дополнительным вопросам дисциплины, активно работающим на практических занятиях, выполняющим различные индивидуальные задания, в достаточной мере разбирающимся в знаниях, полученных в ходе самостоятельной работы (70–85,9 баллов);

«удовлетворительно» – студентам, владеющим основными вопросами по тематике дисциплины, выполняющим практические задания на достаточном уровне, в основном разбирающимся в темах дисциплины, вынесенных на самостоятельное изучение (51–69,9 баллов);

«не удовлетворительно» – студентам, не посещающим аудиторные занятия без уважительной причины, не владеющим основными вопросами изучаемой дисциплины, выполняющим практические задания на низком уровне, слабо   разбирающихся в вопросах, вынесенных на самостоятельное изучение (менее 51 баллов).

7. Учебно-методическое и информационное обеспечение дисциплины (модуля) 7.1. Основная литература:

1. Кузин, А. В. Архитектура ЭВМ и вычислительных систем [Текст]учеб.

для сред. проф. образования по группе спец. "Автоматизация и упр." : / А. В.

  Кузин, С. А. Пескова. - М. : ФОРУМ [и др.], 2011. - 350 с. : ил. (Профессиональное образование. Информатика) 2. Душин, В. К. Теоретические основы информационных процессов и систем [Текст] учеб. для вузов по спец. "Информ. системы и технологии", "Сервис БРЭА", "Информ. сервис", "Сервис компьютерной и микропроцессорной техники" : / В. К. Душин. - М. : Дашков и К, 2009. - 348 с. :

ил., схем.

3. Воробьев, Л. В. Системы и сети передачи информации [Текст] учеб.

пособие для вузов по спец. "Компьютерная безопасность" и "Комплексное обеспечение информ. безопасности автоматизир. систем" : / Л. В. Воробьев, А.

В. Давыдов, Л. П. Щербина. - М. : Академия, 2009. - 329 с. : ил., табл. - (Высшее профессиональное образование. Информационная безопасность) 7.2. Дополнительная литература:

4. Корнеев Н.В., Кустарев Ю.С., Морговский Ю.Я. Теория автоматического управления с практикумом: учебное пособие с грифом УМО.

Москва: ИЦ Академия, 2008. – 224 с.

5. Корнеев Н.В. Объектно-ориентированное программирование: учебно методическое пособие для выполнения лабораторных работ по дисциплине «Объектно-ориентированное программирование». Москва: Спутник+, 2012. – 138 с.

6. Корнеев Н.В. Система автоматического управления скоростью автомобиля с дискретным ПИД-регулятором. Журнал «Наука-производству», 2005, №5. – С. 9… 7. Корнеев Н.В. Принципы построения современных технических систем с элементами искусственного интеллекта. Журнал «Техника машиностроения», 2008, №2. – С. 2… 8. Корнеев Н.В. Микропроцессорный блок управления и контроля движения автомобиля. Журнал «Автомобильная промышленность», 2008, №8. – С. 19… 9. Кузин, А. В. Архитектура ЭВМ и вычислительных систем [Текст]учеб.

для сред. проф. образования по группе спец. "Автоматизация и упр." : / А. В.

Кузин, С. А. Пескова. - М. : ФОРУМ [и др.], 2011. - 350 с. : ил. (Профессиональное образование. Информатика) 10. Болл, Стюарт Р. Аналоговые интерфейсы микроконтроллеров [Текст] /Стюарт Р. Болл. – М.: Издательский дом «Додэка-ХХ1», 2007. – 360 с: ил. – ISBN 978-5-94120-142- 11. Броуди, Л. Начальный курс программирования на языке Форт [Текст] / Л. Броуди: пер. с англ.;

предисл. И.В. Романовского. – М.: Финансы и статистика, 1990 – 352 с. – ISBN 5-279-00252- 12. Брукс, Ф. Мифический человеко-месяц или как создаются программные системы [Текст] / Ф. Брукс. – СПб.: Символ-Плюс, 2010. – 304 с.

– ISBN 5-93286-005-7, ISBN 0-201-83595- 13. Буч, Г. Объектно-ориентированный анализ и проектирование с примерами на языке C++ [Текст] / Г. Буч. – СПб.: Бином, Невский диалект,   1998. – 560 с. – ISBN 0-8053-5340-2, ISBN 5-7989-0067- 14. Ваганов, С.А. Автоматное программирование во “Флоре” [Электронный ресурс] / C.А. Ваганов. – СПб.: СПбГУ ИТМО, 2002. – Режим доступа: http://is.ifmo.ru/progeny/vaganov/, свободный. – Загл. С экрана.

15. ГОСТ 27.002-89. Надежность в технике. Основные понятия. Термины и определения [Текст]. – Введ. 1990-07-01. – М.: ИПК Издательство стандартов, 2002. – 64 с.

16. Гук, М.Ю. Аппаратные средства IBM PC. Энциклопедия [Текст] / М.Ю.

Гук. – 3-е изд. – СПб.: Питер, 2006. – 1072 с.: ил. – ISBN 5-469-01182- 17. История компьютера. Жидкокристаллические индикаторы [Электронный ресурс]. – Режим доступа: http://chernykh.net/content/view/659/, свободный. – Загл. с экрана.

18. Ключев, А.О. Программное обеспечение встроенных вычислительных систем [Текст] / А.О. Ключев [и др.]. – СПб.: СПбГУ ИТМО, 2009. – 212 с.

19. Непейвода, Н.Н., Скопин, И.Н. Основания программирования [Текст] / Н.Н. Непейвода, И.Н. Скопин. – М.-Ижевск: Институт компьютерных исследований, 2003. – 868 с. – ISBN 5-93972-299- 20. Олссон, Г., Пиани, Д. Цифровые системы автоматизации и управления [Текст] / Г. Олссон, Д. Пиани. – СПб.: Невский Диалект, 2001. – 557 с. – ISBN 5-7940-0069-4, ISBN 5-7940-0082- 21. Подбельский, В.В., Фомин, С.С. Программирование на языке Си [Текст] / В.В. Подбельский, С.С. Фомин. – 2-е, доп. изд. – М.: Финансы и статистика, 2005. – 600 с.: ил. – ISBN 5-279-02180-6, ISBN 5-279- 02180- 22. Страуструп, Б. Язык программирования С++. Специальное издание [Текст] / Б. Страуструп. – 3-е изд. – СПб.: Бином, Невский Диалект, 2008. – 1104 с. – ISBN 5-7989-0226-2, ISBN 5-7940-0064-3, ISBN 0-201-70073- 23. The I2C-bus specification (version 2.1, 2000) // NXP Semiconductors. 2006.

URL: http://www.nxp.com/acrobat_download2/literature/ 9398/39340011.pdf.

24. Two-wire Serial EEPROM AT24C02A/AT24C04A // Atmel Corporation.

1998. URL: http://www.atmel.com/dyn /resources/prod_documents/doc5083.pdf.

25. Wolf W.H. Computers as Components: Principles of Embedded Computing Systems Design. San Francisco: Morgan Kaufmann, 2005. 656 p. - ISBN 978-0-12 369459- 26. Александров E.K. Микропроцессорные системы: Учебное пособие для вузов. М.: Политехника, 2002. - 936 с. - ISBN 5-7325-0516- 27. Бень Е.А. RS-485 для чайников. 2003. URL:

http://masters.donntu.edu.ua/2004/fema/kovalenko/library/art7.html 28. Болл Стюарт Р. Аналоговые интерфейсы микроконтроллеров. М.:

Издательский дом «Додэка-ХХ1», 2007. 360 с: ил. - ISBN 978-5-94120-142- 29. Брукс Ф. Мифический человеко-месяц или как создаются программные системы. СПб.: Символ-Плюс, 2010. 304 с. ISBN 5-93286-005-7, ISBN 0-201 83595- 30. Буч Г. Объектно-ориентированный анализ и проектирование с примерами на языке C++. СПб.: Бином, Невский диалект, 1998. 560 с. ISBN 0 8053-5340-2, ISBN 5-7989-0067-   31. Вербин B.C. Классификация электромагнитных помех URL: http:

//www. problemaemc. narod. ru/emp_klass. html 32. Волович Г.И. Схемотехника аналоговых и аналого-цифровых электронных устройств. М.: Издательский дом "Додэка-ХХГ, 33. Гарновский Н. Н. Теоретические основы электропроводной связи. М.

1959.

35. Гоноровский И. С. Радиотехнические цепи и сигналы. М. 1967.

36. Горелик Г. С. Колебания и волны. М. - JI.. 1950.

37. Гук М.Ю. Аппаратные интерфейсы ПК. Энциклопедия. СПб.: Питер, 2002. 528 с.: ил. ISBN 5-94723-180- Гук М.Ю. Аппаратные средства IBM PC. Энциклопедия. 3-е изд. СПб.:

Питер, 2006. 1072 с.: ил. ISBN 5-469-01182- 39. Давыдов А.В. Лекции по проектированию радиоэлектронной геофизической аппаратуры. Электрические соединения в радиоэлектронной аппаратуре. URL: http: //prodav. narod. ru/design/index, html 40. Дейкстра Э.В. Два взгляда на программирование // Клуб программистов «Весельчак У» URL: http://club.shelek.m/viewart.php?id=211.

41. Дейкстра Э.В. Конец информатики? // Communications of the ACM, Ноябрь, 19, 2000. 44(3). с. 42. Дейкстра Э.В. Почему программное обеспечение такое дорогое?

Пояснение для разработчиков аппаратуры // Springer-Verlag, 1982. с. 338- 43. Дейкстра Э.В. Программирование как вид человеческой деятельности // Клуб программистов «Весельчак У» URL: http: //club, shelek. m/vie wart. php?id= 137.

44. Ершова Н.Ю., Ивашенков O.H., Курсков С.Ю. Микропроцессоры:

Пособие к курсам «Микропроцессорные средства» и «Автоматизированные системы для научных исследований». URL: http: //dfe. karelia.

ru/koi/posob/microcpu/index. html 45. Игнатов В. Эффективное использование GNU Make // Центр Информационных Технологий. 1997. URL: http: //www. citfomm.

ru/operating_systems/gnumake/index. shtml.

46. Интерфейсная шина IIC (I2C) // Easy Elecronics - Электроника для всех.

2008. URL: http://easyelectronics.ru/interface-bus-iic-i2c.html.

47. Использование сбалансированных схем/ URL: http: //www. elart. narod.

ru/articles/article26/article26. htm 48. Керниган Б., Ритчи Д. Язык программирования С. 5-е изд. М.: Вильямс, 2009. 304 с. ISBN 978-5-8459-0891-9, ISBN 5-8459-0891-4, ISBN 0-13-110362- 49. Ключев А.О., Кустарев П.В., Ковязина Д.Р, Петров Е.В. Программное обеспечение встроенных вычислительных систем. СПб.: СПбГУ ИТМО, 2009.

212 с.

50. Ключев, А.О., Ковязина, Д.Р, Кустарев, П.В., Платунов, А.Е.

Аппаратные и программные средства встраиваемых систем. Учебное пособие.

СПб.: СПбГУ ИТМО, 2010. 287 с.: ил.

  51. Комплекс лабораторных работ для учебного лабораторного стенда SDK-1.1 // Интернет-портал «Встроенные вычислительные системы и системы на кристалле». 2009. URL: http://embedded.ifmo.rn/sdk/sdkll/labs/2003.

7.3. Программное обеспечение современных информационно коммуникационных технологий и Интернет-ресурсы:

1. Операционная система Microsoft Windows.

2. Пакет Microsoft Office (MS Word, MS Excel, MS powerpoint).

3. Браузер Internet Explorer.

4. Бесплатный компилятор SDCC 5. Среда разработки Eclipse, 6. Утилиту GNU Make.

7. Бесплатно распространяемая утилита M3P 8. Коммерческая среда разработки Keil Software, у которой есть бесплатная версия с ограничением на размер кода 9. Unix-подобная операционная система (Linux или Solaris) 10. JDK 11. NetBeans IDE Интернет-ресурсы:

1. http://www.intuit.ru/department/hardware/mpbasics/2/#image.2. 2. http://microsin.ru/content/view/508/44/ 3. http://www.softelectro.ru/rs232.html 4. http://kazus.ru/articles/343.html.

5. http://www.gaw.ru/html.cgi/txt/doc/micros/mcs51/asm/start.htm 6. http://www.tehnauk.ru/1/14?start= 7. http://www.gaw.ru/html.cgi/txt/interface/rs485/app.htm 8. Материально-техническое обеспечение дисциплины Лабораторные занятия по дисциплине проводятся с использованием учебного лабораторного комплекса SDK–1.1 - предназначен для освоения   студентами архитектуры и методов проектирования на базе микроконтроллера ADuC812 с ядром MCS–51 а также комплекса специализированных компьютерных программ и пакетов приложения программирования учебного стенда на языке Си бесплатный компилятор SDCC и среда разработки Eclipse, утилита GNU Make для сборки проекта. Для доставки исполняемого модуля в стенд SDK–1.1 используется бесплатно распространяемая утилита M3P (ООО «ЛМТ»), загрузка программного обеспечения в стенд SDK–1.1 производится через инструментальный порт RS–232C. С такими инструментальными средствами компиляцию и загрузку программ можно выполнять как в операционной системе Windows, так и в Linux. Для разработки программного обеспечения может быть использована коммерческая среда разработки Keil Software, у которой есть бесплатная версия с ограничением на размер кода.

Занятия проводятся на ПК в лабораториях межкафедральной лаборатории факультета информационно-технического сервиса. Минимальные аппаратные требования для ПО в названных лабораториях полностью выдерживаются.

Электронные средства обучения включают в себя персональные компьютеры с установленной ОС Microsoft Windows и вышеназванным ПО, возможностью безлимитного выхода в Интернет. Учебно-методическая литература, используемое для обучения по данной дисциплине, расположено на доступном для студентов магистратуры ресурсе – файл-сервере факультета информационно-технического сервиса, путь: X:\Корнеев Н.В.

МЕТОДИЧЕСКИЕ МАТЕРИАЛЫ\Магистратура\Вычислительные системы.

Также названные материалы расположены на образовательном портале университета по адресу: http://portal.tolgas.ru/ Для контроля промежуточного и итогового контроля знаний по дисциплине может быть использована широко распространенная система AST Тест. Тестирующий комплекс AST-Тест –комплекс программ для создания банков тестовых заданий, организации и проведения сеансов тестирования, обработки результатов и формирования выходных документов в удобной форме.

В целом при изучении дисциплины современные компьютерные средства и технологии используются при проведении лекционных занятий для презентации учебных материалов, при выполнении студентами лабораторных работ, при выполнении курсового проекта, при подготовке к итоговой форме контроля – экзамену по дисциплине – для изучения учебных материалов.

9. Методические указания для выполнения курсовых проектов (работ) По дисциплине учебным планом направления предусмотрено выполнение курсового проекта. Подготовка к выполнению курсового проекта включает в   себя изучение теоретического материала, соответствующих заданию тем лабораторных работ, посещение аудиторных занятий и консультаций по курсовому проектированию.

Примерные содержание и тематика курсового проекта Курсовой проект выполняется студентами очной формы обучения в семестре. Задачей курсового проектирования является отработка практические навыки программирования на базе стенда SDK-1.1 с использованием компьютерных программ и пакетов приложения программирования учебного стенда на языке Си, используя компилятор SDCC и среду разработки Eclipse, утилиту GNU Make для сборки проекта, разработать программного проекта в соответствии с индивидуальным заданием, проведение загрузки программного обеспечения в стенд SDK–1.1 через инструментальный порт RS–232C, и проверка реализации разработанного программного проекта.

При выполнении курсового проектирования предусматривается проведение аудиторных занятий в объеме, установленном нагрузкой преподавателя в зависимости от количества студентов выполняющих курсовой проект, и самостоятельной работы студентов.

Наименование и краткое содержание аудиторных занятий по курсовому проектированию:

1. Выдача задания на курсовое проектирование, ознакомление с порядком проектирования и требованиями к курсовому проекту, обзор используемых при проектировании источников.

2. Рассмотрение примера выполнения курсового проекта. Разбор отдельных примеров. Анализ проведенной работы, обсуждение результатов, ответы на вопросы студентов.

3. Обсуждение структуры и последовательности расчета в рамках индивидуального задания на курсовой проект.

4. Проверка предложенных студентом проектных решений, выполненных студентом в ходе проектирования расчетов. Проверка оформления пояснительной записки.

Вся необходимая методика по выполнению курсового проекта изложена в разделах 2 и 3, в котором, в частности, приведен теоретический материал, призванный обеспечить студентов необходимой поддержкой при выполнении курсового проекта. В разделе 3 также приводятся примеры.

Рекомендуемая тематика курсовых проектов 1. Разработать и реализовать драйверы светодиодных индикаторов и DIP переключателей контроллера SDK-1.1. Написать тестовую программу с использованием разработанных драйверов по алгоритму, соответствующему варианту задания 2. Разработать и реализовать драйвер системного таймера микроконтроллера ADuC812. Написать тестовую программу с использованием   разработанного драйвера по алгоритму, соответствующему варианту задания.

3. Разработать и написать драйверы последовательного канала для учебно-лабораторного стенда SDK-1.1 с использованием и без использования прерываний. Написать тестовую программу для разработанных драйверов, которая выполняет определенную вариантом задачу.

4. Разработать и написать драйвер клавиатуры для учебно-лабораторного стенда SDK-1.1. Написать тестовую программу для разработанного драйвера, которая выполняет определенную вариантом задачу.

5. Разработать и написать драйвер жидкокристаллического индикатора (ЖКИ) для учебно-лабораторного стенда SDK-1.1. Написать программу для разработанного драйвера, которая выполняет определенную вариантом прикладную задачу.



Pages:     | 1 |   ...   | 2 | 3 || 5 |
 





 
© 2013 www.libed.ru - «Бесплатная библиотека научно-практических конференций»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.