Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа SDK11.doc
Скачиваний:
96
Добавлен:
01.05.2015
Размер:
1.24 Mб
Скачать

1.4. Работа с последовательным каналом по опросу

Простейшим из способов организации последовательного обмена является управление им из прикладной программы. То есть, если требуется переслать байт, то: 1) сбрасывается TI; 2) в SBUF записывается нужный байт данных; и 3) ожидается, пока TI не будет установлен контроллером. С приемом в этом случае дело обстоит сложнее: нужно постоянно проверять флаг RI и, если он установлен, то читать принятый байт из SBUF и сбрасывать RI. Такой способ удобен, когда разработчику четко известно, когда произойдет прием данных и когда его завершать. Неудобен он тем, что время выполнения самой программы напрямую зависит от скорости обмена. Чем медленнее скорость, тем дольше по времени цикл ожидания готовности к приему/посылке следующего байта.

При программировании последовательного канала под Windows, нужного состояния сигналов RTS и DTR можно добиться с помощью двух строк кода на языке С:

EscapeCommFunction( Port, SETRTS);

EscapeCommFunction( Port, CLRDTR);

2. Порядок работы.

В процессе работы необходимо изучить:

1. Аппаратный блок последовательного канала

  • Структурную схему контроллера последовательного канала

  • Схему включения UART

  • Страничную организацию памяти

2. ПЛИС МАХ

  • Регистры ПЛИС

3. Схему подключения светодиодов

В процессе работы необходимо:

1. Разработать архитектуру драйверов и системы тестирования.

2. Написать тесты драйвера светодиодов.

3. Написать тест драйвера последовательного канала.

4. Написать драйвер светодиодов.

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

6. Отладить и протестировать драйверы.

3. Содержание отчета

Отчет должен содержать:

1. Описание архитектуры

  • используемой аппаратной части,

  • драйверов,

  • системы тестирования,

2. Исходные тексты драйверов.

3. Исходные тексты тестов.

5. Результаты тестирования.

4. Контрольные вопросы

  1. Какие проблемы могут возникнуть при обращении к ПЛИС?

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

  3. Нарисуйте на бумаге формат посылки для байтов 0x14, 0x25, 0хА0.

  4. Какой режим работы последовательного канала ADuC812 вы использовали?

  5. Что такое гальваническая изоляция?

  6. Что такое оптрон?

  7. Как работает схема гальванической развязки последовательного канала в SDK-1.1?

  8. Какой бит устанавливается в логическую 1 при приеме байта по последовательному каналу?

  9. Когда устанавливается бит TI, после записи байта в SBUF или после его передачи?

  10. Нарисуйте регистровую модель контроллера последовательного канала ADuC812.

Лабораторная работа 10 Таймер, использование прерываний в лабораторном стенде sdk 1.1

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

1. Методические указания к работе.

1.1. Таймеры

ADUC812 имеет три 16-битных таймера/счетчика общего назначения: Таймер 0, Таймер 1, Таймер 2. Каждый таймер состоит из двух 8-битных регистров ТНх и TLх (х обозначает 0, 1 или 2 для таймеров 0,1 и2). Все три таймера могут быть настроены на работу в режимах "таймер" или "счетчик". В режиме "таймер" регистр инкрементируется каждый машинный цикл. То есть можно рассматривать это как подсчет машинных циклов. Так как машинный цикл состоит из 12 перепадов напряжения на тактовом входе контроллера, частота инкрементирования таймера в 12 раз меньше тактовой частоты контроллера.

В режиме "счетчик" регистр инкрементируется по перепаду 1→0 на соответствующем входе Т0, Т1 или Т2. В этом режиме внешний вывод опрашивается в S5P2 каждого машинного цикла. Когда опрос показывает высокий уровень в одном цикле и низкий уровень в следующем, счетчик увеличивается на 1. Новое значение появляется в счетчике в S3P1 машинного цикла следующего за тем, в котором был обнаружен перепад. Так как требуется два машинных цикла на обнаружение перепада 1→0, максимальная частота инкремента счетчика равна 1/24 тактовой частоты контроллера. Нет никаких ограничений на поведение сигнала на входе, но для обеспечения того, чтобы он был хотя бы раз опрошен, необходимо продержать его значение не менее одного машинного цикла. Для конфигурации и контроля Таймеров используются 3 SFR регистра: TMOD и TCON для управления таймерами 1 и О, T2CON для управления таймером 2.