Федеральное агентство по образованию

Государственное образовательное учреждение

высшего профессионального образования

«Алтайский государственный технический университет

имени

Бийский технологический институт (филиал)

,

ПОСЛЕДОВАТЕЛЬНЫЕ ИНТЕРФЕЙСЫ ТИПОВЫХ ЭЛЕКТРОННЫХ КОМПОНЕНТОВ

Лабораторный практикум по курсу «Аппаратные интерфейсы информационных систем» для студентов специальности 230201 «Информационные  системы и технологии»

Бийск 2007

УДК 681.32

Барсуков, интерфейсы типовых электрон-ных компонентов: лабораторный практикум по курсу «Аппаратные интерфейсы информационных систем» для студентов специальности 230201 «Информационные  системы и технологии» / , .

Алт. гос. техн. ун-т им. , БТИ. – Бийск.

Изд-во Алт. гос. техн. ун-та, 2007. –  50 с.

В лабораторном практикуме приведено описание лабораторных стендов, а также даны задания к лабораторным работам по курсу «Аппаратные интерфейсы информационных систем».

Рассмотрен и одобрен на заседании кафедры МСИА.

Протокол № 47 от 30.г.

Рецензент: доцент каф. физики, к. т.н. (БТИ АлтГТУ)

© , 2007, © , 2007

© БТИ АлтГТУ, 2007

СОДЕРЖАНИЕ

Введение……………………………………………………………….

4

1 Описание лабораторного стенда…………………………………...

4

2 Работа с программой AVR Studio…………………………………..

6

3 Архитектура микроконтроллера AT90S8535……………………...

11

4 Основы программирования микроконтроллера AT90S8535

на языке Ассемблер в среде AVR Studio 4 ………………………….

13

5 Задания на лабораторные работы…………………………………..

17

5.1 Лабораторная работа № 1………………………………………

17

5.2 Лабораторная работа № 2………………………………………

22

5.3 Лабораторная работа № 3………………………………………

23

5.4 Лабораторная работа № 4………………………………………

25

5.5 Лабораторная работа № 5………………………………………

31

5.6 Лабораторная работа № 6………………………………………

39

Литература……………………………………………………………..

45

Схема электрическая принципиальная сменного модуля………………………………………………………………….

46

Перечень команд микроконтроллера AT90S8535...

47

ВВЕДЕНИЕ

Предлагаемый лабораторный практикум разработан для специальности «Информационные системы и технологии» в рамках курса «Аппаратные интерфейсы информационных систем». Практикум включает в себя шесть лабораторных работ, связанных с программной реализацией стандартных протоколов [1] обмена данными между типовыми электронными компонентами.

1 ОПИСАНИЕ ЛАБОРАТОРНОГО СТЕНДА

Лабораторный стенд представляет собой стандартный внутри-схемный эмулятор фирмы ATMEL ICE200 [2] с подключаемым сменным модулем, который содержит несколько типовых электронных компонентов с последовательными интерфейсами. Внешний вид модуля показан на рисунке 1.

1 copy.jpg

Рисунок 1 – Подключаемый модуль с набором типовых компонентов

с последовательным интерфейсом

Модуль состоит из следующих элементов:

1 – микросхема EEPROM 24С01 [3] с последовательным интер-фейсом;

2 – микросхема EEPROM 93LC66 [4] с последовательным интер-фейсом;

3 – RS-232/SPI контроллер светодиодной линейки;

4 – интегральный температурный датчик DS18B20 [5] с после-довательным интерфейсом;

5 – интегральный температурный датчик DS1620 [6] с последо-вательным интерфейсом;

6 – светодиодная линейка из 6 элементов;

7 – контрольный светодиод 1;

8 – контрольный светодиод 2.

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

2.jpg

Рисунок 2 – Внутрисхемный эмулятор с подключенным сменным модулем

Лабораторный стенд подключается к компьютеру через последовательный порт (RS-232). Принципиальная электрическая схема лабораторного стенда приведена в

2 РАБОТА С ПРОГРАММОЙ AVR STUDIO

Для написания, тестирования и отладки программы используется программная среда AVR Studio [7]. Используемый язык программиро-вания – Ассемблер для микроконтроллеров фирмы Atmel.

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

1. Подключить сменный модуль к внутрисхемному эмулятору.

2. Включить в сеть компьютер и внутрисхемный эмулятор.

3. Запустить программу AVR Studio.

4. Создать рабочий проект.

5. Написать программу для микроконтроллера в соответствии с заданием.

6. Выполнить компиляцию программы.

7. Загрузить программу в эмулятор.

8. Запустить программу на выполнение.

9. Выполнить отладку программы в пошаговом отладчике (если требуется).

10. Выполнить действия 6–9.

11. Представить результаты работы в виде рабочей программы.

После запуска программы AVR Studio должно появиться рабочее поле программы, как показано на рисунке 3.

Для создания проекта необходимо в главном меню программы выбрать Project/New Project.

Рисунок 3 – Рабочее поле программы AVR Studio

В окне «Create new project» (рисунок 4) необходимо выбрать тип проекта (Atmel AVR Assembler), ввести имя проекта (Project name), ввести имя исходного файла (Initial file), выбрать место положения рабочих файлов проекта на диске компьютера (Location), нажать Next.

НЕ нашли? Не то? Что вы ищете?

avr2.bmp

Рисунок 4 – Создание рабочего проекта

В окне «Select debug platform and device» (рисунок 5) в позиции «Debug platform» необходимо выбрать ICE200, в позиции «Device» выбрать процессор AT90S8535.

avr3.bmp

Рисунок 5 – Выбор рабочей платформы и процессора

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

Рисунок 6 – Рабочее окно программы AVR Studio для написания программы

После написания программы необходимо произвести ее компиляцию (функциональная клавиша F7). В случае успешной компиляции в окне «Build» появится статистика об используемых полях памяти и сообщение «Assembly complete, 0 errors, 11 warnings». Наличие предупреждений не является ошибкой, и их количество может быть произвольным. На рисунке 7 показан вид окна «Build» в случае успешной компиляции программы.

avr5.bmp

Рисунок 7 – Окно «Build» в случае безошибочной компиляции

В случае наличия ошибок в программе, после попытки ее компиляции в окне «Build» выводится информация о количестве ошибок и номера строк, где допущены ошибки (рисунок 8). Двойной «клик» левой кнопкой мыши по строке с описанием ошибки в окне «Build» автоматически выводит на экран рабочее окно программы, в котором курсор указывает на строку с ошибочной инструкцией.

avr6.bmp

Рисунок 8 – Окно «Build» в случае компиляции c двумя ошибками

В случае безошибочной компиляции необходимо загрузить скомпилированный код в эмулятор и перейти в режим отладки. Для этого необходимо нажать клавиши Ctrl+Shift+Alt+F5.

Для запуска программы в непрерывном режиме (в реальном масштабе времени) необходимо нажать клавишу F5. Для выполнения программы в пошаговом режиме нажать клавишу F11 (при каждом нажатии клавиши F11 выполняется одна инструкция программы).

Для остановки программы, которая исполняется в непрерывном режиме, необходимо нажать Ctrl+F5.

Для перезапуска программы (Restart) необходимо нажать Shift+F5.

При работе с внутрисхемным эмулятором пользователь имеет возможность контролировать состояние регистров (ячеек памяти) и других внутренних устройств микроконтроллера. Вся информация о состоянии микроконтроллера представлена в окне «I/O View», как показано на рисунке 9.

avr7.bmp

Рисунок 9 – Окно для контроля состояния микроконтроллера

3 АРХИТЕКТУРА МИКРОКОНТРОЛЛЕРА AT90S8535

Архитектура микроконтроллера представлена на рисунке 10. Подробно с архитектурой микроконтроллера можно ознакомиться в [8].

архитектура.bmp" Микроконтроллер AT90S8535 базируется на архитектуре AVR

RISC, имеет 32 цифровые линии ввода-вывода, восемь из которых могут быть сконфигурированы как аналоговые входы. Линии ввода-вывода образуются четырьмя 8-разрядными двунаправленными портами PA0…PA7, PB0…PB7, PC0…PC7, PD0…PD7. Контроллер имеет 8 Кбайт программной памяти, 32 8-разрядных регистра общего назначения (R0-R31), 118 мощных инструкций, большинство из которых выполняются за один такт процессора и целый ряд внутренних устройств (таймеры, счетчики, аналоговые компараторы и т. д.).

Условно-графическое обозначение микроконтроллера представ-лено на рисунке 11.

at90s8535new.bmp

Рисунок 11 – Условно-графическое обозначение микроконтроллера AT90S8535

В Приложении Б представлен полный набор инструкций микроконтроллера AT90S8535.

4 ОСНОВЫ ПРОГРАММИРОВАНИЯ

МИКРОКОНТРОЛЛЕРА AT90S8535 НА ЯЗЫКЕ

АССЕМБЛЕР В СРЕДЕ AVR STUDIO 4

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

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

sbi DDRA, PA0 – программирование линии PA0 на выход;

sbi DDRB, PB1 – программирование линии PB1 на выход;

sbi DDRC, PC2 – программирование линии PC2 на выход;

sbi DDRD, PD3 – программирование линии PD3 на выход.

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

cbi DDRA, PA0 – программирование линии PA0 на вход;

cbi DDRB, PB1 – программирование линии PВ1 на вход;

cbi DDRC, PC2 – программирование линии PС2 на вход;

cbi DDRD, PD3 – программирование линии PВ3 на вход.

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

sbi PORTA, PA0 – установить высокий уровень на выводе PA0;

sbi PORTB, PB1 – установить высокий уровень на выводе PB1;

sbi PORTC, PC2 – установить высокий уровень на выводе PC2;

sbi PORTD, PD3 – установить высокий уровень на выводе PD3.

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

cbi PORTA, PA0 – установить низкий уровень на выводе PA0;

cbi PORTB, PB1 – установить низкий уровень на выводе PB1;

cbi PORTC, PC2 – установить низкий уровень на выводе PC2;

cbi PORTD, PD3 – установить низкий уровень на выводе PD3.

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

sbi DDRA, PA0 – программирование линии PA0 на выход;

Label: sbi PORTA, PA0 – установить высокий уровень на линии PA0;

сbi PORTA, PA0 – установить низкий уровень на линии PA0;

rjmp Label – перейти на метку Label.

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

sbi DDRA, PA0 – программирование линии PA0 на выход;

Label: sbi PORTA, PA0 – установить высокий уровень на линии PA0;

Delay1 – подпрограмма задержки 1;

сbi PORTA, PA0 – установить низкий уровень на линии PA0;

Delay2 – подпрограмма задержки 2;

rjmp Label – перейти на метку Label.

При реализации программных задержек можно использовать внутренние таймеры/счетчики микроконтроллера, что требует от разработчика программы глубоких знаний архитектуры микроконт-роллера [8], либо руководствоваться следующими указаниями.

1-й способ реализации программных задержек:

nop 1-й такт

nop 2-й такт

nop 3-й такт

... n–1-й такт

nop n–й такт

Длительность задержки , где – тактовая частота микроконтроллера (принять равной 8000000 Гц).

2-й способ реализации программных задержек:

clr r30 – обнуление регистра R30

NextStep: cpi r30,255 – сравнение содержимого регистра R30 c 255

breq ExitDelay – перейти на ExitDelay в случае если R30=255 inc r30 – увеличить содержимое R30 на 1

rjmp NextStep – перейти на NextStep

ExitDelay: nop

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

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

nop

nop

nop

rcall My_Sub – строка вызова подпрограммы по адресу My_Sub

nop

nop

...

My_Sub: nop

...

nop

ret

Далее представлены примеры организации условных переходов при написании программ.

Пример 1:

cpi r30,3

breq label – переход на метку label, если r30=3

nop

...

label: nop

...

Пример 2:

cpi r30,3

brsh label – переход на метку label, если r30 => 3

nop

...

label: nop

...

Пример 3:

cpi r30,3

brlo label – переход на метку label, если r30<3

nop

...

label: nop

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

cbi PORTA, PA0 – программирование линии PA0 на вход

sbis PINA, PA0

rjmp Bit_is_reset

Bit_is_set: nop – переход на эту метку осуществляется, когда PA0=1 ...

Bit_is_reset: nop – переход на эту метку осуществляется, когда PA0=0

...

Наиболее используемые команды и операции:

clr r30 – очистить регистр общего назначения;

ldi r29,100 – записать константу в регистр общего назначения r29;

ldi r29,0b – записать константу в регистр общего назна-чения r29;

ldi r29,0xA0 – записать константу в регистр общего назначения r29;

mov r29,r30 – переписать содержимое r30 в r29;

cpi r29,1 – сравнение содержимого регистра r29 с константой;

cp r29,r30 – сравнение содержимого регистров r29, r30;

inc r30 – увеличить на 1 содержимое r30;

dec r30 – уменьшить на 1 содержимое r30;

rjmp «метка_перехода» – безусловный переход на метку;

breq «метка_перехода» – переход, если «равно»;

brsh «метка_перехода» – переход, если «больше или равно»;

brlo «метка_перехода» – переход, если «меньше».

Операции с отдельными битами регистров общего назначения:

sbr r30,0b – установить 4 бит регистра r30 равным 1;

sbr r30,0b – установить 0 бит регистра r30 равным 1;

сbr r30,0b – установить 4 бит регистра r30 равным 0;

сbr r30,0b – установить 0 бит регистра r30 равным 0;

сbr r30,0b – установить 0 и 7 биты регистра r30 равными 0;

сbi PORTA, PA3 – установить 0 на линии 3 порта A;

sbi PORTA, PA3 – установить 1 на линии 3 порта A.

Тестпрограмма управления светодиодами. Далее представлена программа для поочередного переключения двух тестовых светоди-одов, подключенных к линиям PD6, PD7 микроконтроллера.

. include "8535def. inc" – обязательная директива при использовании микроконтроллера AT90S8535

.def temp =r16

.cseg – обязательная директива любой программы

.org 0 – обязательная директива любой программы

rjmp My_program – безусловный переход на метку My_program

.org 25 – определение стартового адреса вашей программы

My_program: – символьная метка

ldi temp, high(RAMEND) – инициализация стека

out SPH, temp – -//-

ldi temp, low(RAMEND) – -//-

out SPL, temp – -//-

sbi DDRD, PD6 – программирование линии PD6 на выход

sbi DDRD, PD7 – программирование линии PD7 на выход

label1: sbi PORTD, PD6 – включить светодиод 1

cbi PORTD, PD7 – выключить светодиод 2

rcall Delay – вызов подпрограммы задержки

cbi PORTD, PD6 – выключить светодиод 1

sbi PORTD, PD7 – включить светодиод 2

rcall Delay – вызов подпрограммы задержки

rjmp label1 – перейти на метку label1

Delay: процедура, реализующая программную задержку

ret

5 ЗАДАНИЯ НА ЛАБОРАТОРНЫЕ РАБОТЫ

5.1 ЛАБОРАТОРНАЯ РАБОТА № 1

Тема: Реализация протокола обмена данными между ПЗУ с последовательным доступом (1K Microwire Compatible Serial EEPROM 93LC66) и микроконтроллером AT90S8535 на базе внутрисхемного эмулятора ICE200.

Задание: реализовать процедуры записи и чтения данных между регистрами микроконтроллера и ячейками памяти 93LC66.

На рисунке 12 представлены нумерация и наименование выводов микросхемы 93LC66.

Вывод

Функция

CS

Выбор кристалла

CLK

Линия тактовой частоты

DI

Последовательный вход

DO

Последовательный выход

VSS

Земля

NC

Не присоединено

ORG

Конфигурация памяти

VCC

Питание

Рисунок 12 – Микросхема 93LC66 и наименование ее выводов

Подключение микросхемы памяти к микроконтроллеру осущест-вляется в соответствии с таблицей 1.

Таблица 1 – Линии подключения микросхемы к микроконтроллеру

Выводы микросхемы памяти

Выводы микроконтроллера AT90S8535

CS

PA0

CLK

PA1

DI

PA2

DO

PA3

Функциональное описание. Команды, адреса и записываемые данные генерируются на линии DI при положительном фронте сигнала CLK. Вывод DO в нормальном состоянии находится в высокоомном состоянии (Z-состояние) за исключением, когда данные читаются из устройства или когда проверяется статус READY/BUSY в период операции программирования. Статус READY/BUSY может проверяться при выполнении операций Erase/Write путем опроса вывода DO; низкий уровень на выводе DO индицирует, что процесс программирования продолжается (устройство занято), высокий уровень на выводе DO индицирует о готовности устройства к дальнейшей работе. Ввод DO перейдет в Z-состояние при появлении спадающего сигнала на выводе CS.

Условие старта. Условие старта детектируется устройством, когда уровни на выводах CS и DI одновременно переходят в высокое состояние при появлении положительного фронта на выводе CLK (в начальный момент времени).

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

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

В таблице 2 представлены микрокоманды микросхемы памяти.

Таблица 2 – Микрокоманды микросхемы памяти

Инструк-ция

Старт бит

Код

Адрес

Вход

Выход

Такты

ERASE

1

1

1

A8

A7

A6

A5

A4

A3

A2

A1

A0

-

(ГОТОВ/ЗАНЯТ)

12

ERAL

1

0

0

1

0

X

X

X

X

X

X

X

-

(ГОТОВ/ЗАНЯТ)

12

EWDS

1

0

0

0

0

X

X

X

X

X

X

X

-

Z-СОСТОЯНИЕ

12

EWEN

1

0

0

1

1

X

X

X

X

X

X

X

-

Z-СОСТОЯНИЕ

12

READ

1

1

0

A8

A7

A6

A5

A4

A3

A2

A1

A0

-

D7-D0

20

WRITE

1

0

1

A8

A7

A6

A5

A4

A3

A2

A1

A0

D7-D0

(ГОТОВ/ЗАНЯТ)

20

WRAL

1

0

0

0

1

X

X

X

X

X

X

X

D7-D0

(ГОТОВ/ЗАНЯТ)

20

ERASE – очистить байт по указанному адресу.

ERAL – очистить всю память.

EWDS – запретить процедуры ERASE, WRITE, ERAL.

EWEN – разрешить процедуры ERASE, WRITE, ERAL.

READ – чтение данных по указанному адресу.

WRITE – записать байт по указанному адресу.

WRAL – заполнить все ячейки памяти указанным байтом.

Описание команды EWEN. При включении питания команды ERASE, WRITE, ERAL запрещены. Для их активации при включении питания необходимо выполнить один раз команду EWEN (команду EWEN необходимо выполнять при каждом сбросе питания). На рисунке 13 представлены временные диаграммы выполнения команды EWEN.

Рисунок 13 – Временная диаграмма выполнения команды EWEN

Чтение данных из ячеек памяти. При выполнении инструкции READ из адресованной ячейки 8 бит данных последовательно появляются на выводе DO. Уровни выходного сигнала на выводе DO меняются при появлении положительных фронтов сигнала на выводе CLK и являются достоверными после временного интервала TPD. Последующее чтение возможно пока уровень CS удерживается в единичном состоянии. Временная диаграмма выполнения команды READ представлена на рисунке 14.

Рисунок 14 – Временная диаграмма выполнения команды READ

Запись данных в ячейки памяти. Временная диаграмма выпол-нения команды WRITE представлена на рисунке 15. После прихода последнего бита спадающий сигнал на линии CS инициирует внутрен-ние процедуры устройства для очистки и записи данных в ячейку памяти. Сигнал на выводе DO индицирует статус устройства – READY/BUSY.

Рисунок 15 – Временная диаграмма выполнения команды WRITE

Ниже приведены динамические характеристики микросхемы памяти (таблица 3).

Таблица 3 – Динамические характеристики микросхемы памяти

Символ

Параметр

Значение

Единицы

минимальное

максимальное

FCLK

Clock frequency

-

3

МГц

TCKH

Clock high time

200

-

с. 10-9

TCKL

Clock low time

100

-

с. 10-9

TCSS

Chip Select setup time

50

-

с. 10-9

TCSH

Chip Select hold time

0

-

с. 10-9

TCSL

Chip Select low time

250

-

с. 10-9

TDIS

Data input setup time

50

-

с. 10-9

TDIH

Data input hold time

50

-

с. 10-9

TPD

Data output delay time

-

200

с. 10-9

TCZ

Data output disable time

-

100

с. 10-9

TSV

Status valid time

-

200

с. 10-9

TWC

Program cycle time

-

6

с. 10-3

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

Рисунок 16 – Синхронная временная диаграмма всех информационных сигналов

5.2 ЛАБОРАТОРНАЯ РАБОТА № 2

Тема: Реализация протокола RS-232 для одностороннего обмена данными между контроллером светодиодных индикаторов и микроконтроллером AT90S8535 на базе внутрисхемного эмулятора ICE200.

Задание: реализовать управление светодиодными индикаторами по однопроводному каналу связи.

Для управления светодиодами (включить/выключить) необхо-димо передать управляющему контроллеру адрес светодиода, затем команду на включение или выключение светодиода. Адреса светодиодов представлены в таблице 4.

Таблица 4 – Адреса светодиодных индикаторов

Номер светодиода

Адрес светодиода

Светодиод №1

1

Светодиод №2

2

Светодиод №3

3

Светодиод №4

4

Светодиод №5

5

Светодиод №6

6

Код включение светодиода: 7.

Код выключение светодиода: 8.

Связь с микроконтроллером реализовать на скорости 2400 бит/сек, со следующей структурой кадра: один старт бит, восемь бит данных, один стоп бит. Микроконтроллер AT90S8535 подключен к светодиодному контроллеру через линию порта PA4.

Структура кадра передаваемых данных по протоколу RS-232 представлена на рисунке 17.

Рисунок 17 – Структура кадра протокола RS-232

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

5.3 ЛАБОРАТОРНАЯ РАБОТА № 3

Тема: Реализация протокола SPI для одностороннего обмена данными между контроллером светодиодных индикаторов и микроконтроллером AT90S8535 на базе внутрисхемного эмулятора ICE200.

Задание: реализовать управление светодиодными индикаторами по SPI интерфейсу при частоте тактовых импульсов 10 кГц.

Для управления светодиодами (включить/выключить) необходимо передать управляющему контроллеру адрес светодиода, затем команду на включение или выключение светодиода. Адреса светодиодов представлены в таблице 5.

Таблица 5 – Адреса светодиодных индикаторов

Номер светодиода

Адрес светодиода

Светодиод №1

1

Светодиод №2

2

Светодиод №3

3

Светодиод №4

4

Светодиод №5

5

Светодиод №6

6

Код включение светодиода: 7.

Код выключение светодиода: 8.

При обмене данными между двумя устройствами по SPI интерфейсу одно устройство объявляется ведущим (Master), второе ведомым (Slave). Светодиодный контроллер объявлен ведомым. Микроконтроллер AT90S8535 является ведущим.

Подключение AT90S8535 к светодиодному контроллеру осуществляется согласно таблице 6.

Таблица 6 – Линии подключения микросхемы к микроконтроллеру

Линии светодиодного контроллера

Линии микроконтроллера AT90S8535

SS

PD2

SCK

PD5

MOSI

PD3

MISO

PD4

Соединение двух устройств показано на рисунке 18.

Рисунок 18 – Подключение двух устройств через SPI интерфейс

Описание линий интерфейса:

SS – сигнал, инициирующий передачу данных;

SCK – тактирующий сигнал;

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

ведущему;

MOSI – линия для передачи данных от ведущего устройства к ведомому.

Начало передачи инициируется мастером установкой линии SS в нулевой уровень.

Тактовая частота обмена информацией определяется частотой на линии SCK, которая генерируется мастером. Данные считываются ведомым и ведущим устройствами при возникновении переднего фронта на линии SCK. Младший бит передается первым. Количество бит равно восьми.

Временные диаграммы сигналов на шине SPI представлены на рисунке 19.

spi

Рисунок 19 – Временные диаграммы сигналов на шине SPI

5.4 ЛАБОРАТОРНАЯ РАБОТА № 4

Тема: Реализация протокола обмена данными между ПЗУ с последовательным доступом (Serial EEPROM 24С01) и микроконтроллером AT90S8535 на базе внутрисхемного эмулятора ICE200.

Задание: реализовать процедуры записи и чтения данных в ячейки микросхемы памяти.

На рисунке 20 представлены нумерация и обозначение выводов микросхемы 24С01.

SDA

последовательный вход/выход данных

SCL

вход тактовой частоты

TEST

тест вывод

VSS

минус питания

NC

не используется

VCC

источник питания

Рисунок 20 – Микросхема 24С01 и наименование ее выводов

Подключение микросхемы памяти к микроконтроллеру осущест-вляется в соответствии с таблицей 7.

Таблица 7 – Линии подключения микросхемы к микроконтроллеру

Выводы микросхемы памяти

Выводы микроконтроллера AT90S8535

SDA

PB1

SCL

PB2

Микросхема AT24C01 предоставляет 1024 бит электрически перезаписываемых данных с организацией 128 слов по 8 бит.

Операции с устройством. Тактирование и перемещение данных. Уровень сигнала на выводе SDA изначально находится в единичном состоянии, которое обеспечивается подключением этой линии к линиям питания микросхемы. Информация на линии SDA может меняться только в моменты, когда линия SCL находится в нулевом состоянии (смотри временную диаграмму достоверности данных на рисунке 21).

Рисунок 21 – Временная диаграмма достоверности данных

Условие старта (START CONDITION). Смена уровня с высокого на низкий на линии SDA при высоком уровне на SCL является условием старта, которое должно быть в начале любых команд (смотри временные диаграммы старт/стоп условий на рисунке 22).

Рисунок 22 – Генерирование старт/стоп условий

Стоп условие (STOP CONDITION). Смена уровня с низкого на высокий на линии SDA при высоком уровне на линии SCL является стоп условием, которое прерывает все взаимодействия. После чтения последовательности, появление стоп условия переводит микросхему в режим ожидания (смотри временные диаграммы старт/стоп условий на рисунке 23).

Подтверждение (ACKNOWLEDGE). Все адреса и данные последовательно передаются в (от) устройство памяти в 8-битном формате. Все устройства на двухпроводной шине, получившие данные, должны подключить линию SDA в нулевое состояние, подтверждая тем самым удачный прием каждого слова. Это должно происходить в течение девятого тактового импульса после каждого принятого слова.

Микросхема должна также генерировать подтверждение (уста-новка линии SDA в нуль) после приема адреса или слова данных (смотри временную диаграмму генерирования подтверждения от приемника на рисунке 23).

Сброс памяти (MEMORY RESET). После прерывания протокола связи или сброса питания или системного сброса можно организовать сброс памяти путем выполнения следующих шагов:

(a) тактировать шину SCL до 9 тактов;

(b) ожидать высокого уровня на линии SDA в каждом такте в моменты, когда SCL находится в высоком уровне;

(c) сгенерировать условие старта, так как линия SDA в состоянии высокого уровня.

Рисунок 23 – Генерирование подтверждений

Запись байта (BYTE WRITE). Следующая за старт условием операция записи требует 7 бит адреса и нулевой бит записи. При получении этого адреса микросхема должна откликнуться «нулем» и затем записываются первые 8 бит данных. Для следующей записи 8 бит информации микросхема должна откликаться «нулем» и управляющий микроконтроллер (AT90S8535) должен завершить запись, сгенерировав стоп условие, как показано на рисунке 24.

Рисунок 24 – Запись одного байта

Операция чтения инициируется тем же путем, что и операция записи, за исключением, что бит read/write, следующий за адресом, устанавливается в единицу.

Чтение байта (BYTE READ). Чтение байта начинается со старт условия, семи бит адреса и единичным битом чтения. Далее от микро-схемы приходит бит подтверждения, а затем последовательно 8 бит данных. Микроконтроллер не высылает подтверждение после приема данных и генерирует стоп условие, как показано на рисунке 25.

Рисунок 25 – Чтение одного байта

На рисунке 26 представлена временная диаграмма соотношения сигналов на шине I2C.

Рисунок 26 – Временные диаграммы сигналов на шине I2C

В таблице 8 представлены динамические характеристики микро-схемы памяти.

Таблица 8 – Динамические характеристики микросхемы памяти

Символ

Параметр

Значение

Единицы

минимальное

максимальное

fSCL

Clock frequency

-

400

кГц

tLOW

Clock Pulse Width Low

1,2

-

с. 10-6

tHIGH

Clock Pulse Width High

0,6

-

с. 10-6

tI

Noise Supression Time

-

50

с, 10-9

tAA

Clock Low to Data Out Valid

0,1

0,9

с. 10-6

tBUF

Time the bus must be free before a new transmission can start

1,2

-

с. 10-6

tHD. STA

Start Hold Time

0,6

-

с. 10-6

tSU. STA

Start Set-up Time

0,6

-

с. 10-6

tHD. DAT

Data in Hold Time

0

-

с. 10-6

tSU. DAT

Data in Set-up Time

100

-

с. 10-6

tR

Inputs Rise Time

-

0,3

с. 10-6

tF

Inputs Fall Time

-

300

с. 10-9

tSU. STO

Stop Set-up Time

0,6

-

с. 10-6

tDH

Data Out Hold Time

50

-

с. 10-9

tWR

Write Cycle Time

-

10

с. 10-6

5.5 ЛАБОРАТОРНАЯ РАБОТА № 5

Тема: Реализация протокола обмена данными между цифровым температурным датчиком DS18B20 и микроконтроллером AT90S8535 на базе внутрисхемного эмулятора ICE200.

Задание: реализовать протокол обмена данными с температурным датчиком, произвести измерение текущей температуры.

На рисунке 27 представлены рисунок и назначение выводов микросхемы DS18B20.

Описание выводов микросхемы

VDD

Питание

DQ

Линия ввода-вывода

GND

Земля

Рисунок 27 – Микросхема DS18B20 и наименование ее выводов

Подключение DS18B20 к микроконтроллеру осуществляется в соответствии с таблицей 9.

Таблица 9 – Линии подключения микросхемы к микроконтроллеру

Выводы DS18B20

Выводы микроконтроллера AT90S8535

DQ

PD1

Описание. Микросхема имеет уникальный однопроводной интерфейс и уникальный 64-битный код. Ядро DS18B20 представляет собой прямой преобразователь температуры в цифровой код. Разрядность выходного кода может быть 9, 10, 11, 12 бит, т. о. абсолютная погрешность может быть 0,5 0С, 0,25 0С, 0,125 0С, 0,0625 0С соответственно. Разрядность по умолчанию 12 бит. Для инициации измерения температуры необходимо передать команду Convert T (44h).

Результат преобразования сохраняется в двухбайтном регистре. Если DS18B20 питается от внешнего источника, «мастер» может сгенерировать условие «чтение временного слота» после команды Convert T, и DS18B20 должен откликнуться передачей 0 в период преобразования температуры и 1, если преобразование завершено.

Температура хранится в 16-битном регистре (два 8-битных), структура которого показана на рисунке 28.

Рисунок 28 – Регистры хранения текущей температуры

Знаковые биты (S) индицируют, положительна ли температура или отрицательна. Для положительной температуры S=0, для отрицательной S=1.

Если используется 12-битный режим, все биты температурных регистров используются.

Если используется 11-битный режим, бит 0 неопределен.

Если используется 10-битный режим, биты 1, 0 неопределены.

Если используется 9-битный режим, биты 2, 1, 0 неопределены.

В таблице 10 представлено соотношение температуры и данных, находящихся в температурных регистрах.

Таблица 10 – Соответствие температуры и двоичного кода

DS18B20 содержит уникальный 64-битный код, хранящийся в ROM.

Структура уникального кода представлена на рисунке 29.

Рисунок 29 – Структура уникального кода DS18B20

Структура память DS18B20 представлена на рисунке 30.

Рисунок 30 – Структура памяти микросхемы DS18B20

Структура конфигурационного байта представлена на рисунке 31.

Рисунок 31 – Структура конфигурационного байта

Данные по шине передаются младшим значащим битом вперед.

Последовательность работы с DS18B20 состоит из трех шагов:

ШАГ 1. Инициализация;

ШАГ 2. ROM команды;

ШАГ 3. Функциональные команды.

Инициализация. Все операции на шине начинаются с инициали-зации. Инициирующая последовательность содержит импульс сброса, поступающий от «мастера», и импульс отклика, поступающий от DS18B20.

ROM команды. После того, как «мастер» обнаружил DS18B20, необходимо выполнить ROM команды. Эти команды оперируют с 64-битным уникальным кодом. Эти команды также позволяют определить, сколько устройств находится на шине. Всего пять команд разрядностью 8 бит. Мастер должен сгенерировать необходимые ROM команды, прежде чем генерировать функциональные команды.

Несколько ROM команд представлено ниже.

READ ROM (чтение уникального кода) [33h]. Эта команда может использоваться, когда на шине находится одно устройство DS18В20. Она позволяет получить мастеру 64-битный уникальный код DS18В20.

MATCH ROM (передача кода) [55h]. За этой командой следует 64-битный код, позволяющий «мастеру» адресоваться к одному DS18B20.

SKIP ROM (пропустить ROM команды) [CCh]. Мастер может использовать эту команду при адресации ко всем устройствам, находящимся на шине одновременно, без посылки любых уникальных кодов.

Функциональные команды DS18B20. После генерирования ROM команд мастер может сгенерировать одну из функциональных команд.

CONVERT T (преобразование температуры) [44h]. Эта команда инициирует единичное преобразование текущей температуры. Результат преобразования сохраняется в соответствующих регистрах памяти DS18B20, и последний переходит в режим спячки (ожидания).

Мастер может читать временной слот после команды Convert T, и DS18B20 должен выставить 0 в течение процедуры преобразования температуры или 1, когда преобразование завершено.

READ SCRATCHPAD (чтение памяти) [BEh]. При помощи этой команды мастер читает память DS18B20. Данные передаются младшим значащим битом вперед, и длительность посылки составляет 9 байт. Мастер может прервать прием в любой момент времени, перестав генерировать временные слоты чтения данных, если это необходимо.

В таблице 11 представлены динамические характеристики DS18B20.

Таблица 11 – Динамические характеристики микросхемы

Параметр

Обозначение

Условия

Значение

Единицы

минимальное

максимальное

Temperature Conversion Time

tCONV

9-bit resolution

93,75

с. 10-3

10-bit resolution

187,5

с. 10-3

11-bit resolution

375

с. 10-3

12-bit resolution

750

с. 10-3

Time to Strong Pulling On

tSPON

Start Convert T Command Issued

10

с. 10-6

Time Slot

tSLOT

60

120

с. 10-6

Recovery Time

tREC

1

-

с. 10-6

Write 0 Low Time

tLOW0

60

120

с. .0-6

Продолжение таблицы 11

Write 1 Low Time

tLOW1

1

15

с. 10-6

Read Data Valid

tRDV

-

15

с. 10-6

Reset Time High

tRSTH

480

-

с. 10-6

Reset Time Low

tRSTL

480

-

с. 10-6

Presence Detect High

tPDHIGH

15

60

с. 10-6

Presence Detect Low

tPDLOW

60

240

с. 10-6

Capacitance

CIN/OUT

-

25

pF

Процедура инициализации: сброс и импульс присутствия. Взаимодействие с DS18B20 начинается с инициирующей последова-тельности, которая содержит импульс сброса, поступающий от мастера и импульс присутствия, поступающий от DS18B20, как показано на рисунке 32.

Рисунок 32 – Диаграмма сброса микросхемы

Когда DS18B20 посылает импульс присутствия в ответ на импульс сброса, это говорит о том, что устройство присутствует на шине и готово к работе.

В ходе инициализации мастер передает импульс сброса путем удержания шины в нулевом состоянии в течение минимум 480 мкс. Когда импульс сформирован, шина переводится в режим приема. Шина переходит в единичное состояние за счет специального резистора, подключающего шину данных к шине питания. Когда DS18B20 обнаруживает положительный фронт импульса сброса, оно ожидает от 10 до 60 мкс и затем посылает импульс присутствия путем удержания шины в нулевом состоянии в течение 60–240 мкс.

Временные слоты чтения/записи. Мастер записывает данные в DS18B20 в течение «временного слота записи» и читает данные из DS18B20 в течение «временного слота чтения». Один бит данных передается в течение одного временного слота.

Временной слот записи. Существует два типа временных слотов записи: временной слот «Write 1» и временной слот «Write 0». Мастер использует слот «Write 1» для записи логической единицы в DS18B20 и слот «Write 0» для записи нуля. Временные слоты записи должны быть продолжительностью минимум 60 мкс и следовать с интервалами не менее 1 мкс. Оба типа слотов инициируются мастером переводом шины в нулевое состояние.

Для генерирования временного слота «Write 1», после перевода мастером шины в нулевое состояние, он должен удерживать ее в таком состоянии в течение 15 мкс. После этого мастер переводит шину в единичное состояние.

Для генерирования временного слота «Write 0», после перевода шины в нулевое состояние, мастер должен удерживать ее в таком состоянии в течение длительности временного слота (около 60 мкс).

Таким образом стробирование работы DS18B20 происходит в последующие 15-60 мкс, после того как мастер инициирует временной слот записи. Если в течение этого интервала шина находится в единичном состоянии, в DS18B20 записывается «1», если в нулевом – записывается «0».

Временные слоты чтения. DS18B20 может передавать данные, только когда мастер генерирует временной слот чтения. Таким образом, мастер должен генерировать временной слот чтения немедленно после передачи команд, типа Read Scratchpad [BEh], поскольку DS18B20 должен передавать запрашиваемые данные. Кроме того, мастер может генерировать временной слот чтения после передачи команды Convert T [44h] для детектирования статуса выполнения команды. Все временные слоты чтения должны быть длительностью минимум 60 мкс с минимальным интервалом между слотами 1 мкс.

Временные слоты чтения инициируются мастером переводом шины в нулевое состояние минимум на 1 мкс и затем переключением на прием данных (рисунок 33).

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

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

Рисунок 33 – Временные диаграммы слотов чтения/записи

В таблице 12 представлен пример последовательности работы с DS18B20.

Таблица 12 – Последовательность работы с микросхемой DS18B20

Режим мастера

TX/RX – передача/прием

Передача данных (младший бит первый)

Комментарии

TX

Импульс сброса

Мастер генерирует импульс сброса

RX

Импульс присутствия

DS18B20 генерирует импульс отклика

TX

SKIP Command

Пропустить ROM команды

TX

Convert T

Запустить преобразование температуры

TX

Импульс сброса

Мастер генерирует импульс сброса

RX

Импульс присутствия

DS18B20 генерирует импульс отклика

TX

SKIP Command

Пропустить ROM команды

TX

READ SCRATCHPAD

Чтение памяти

RX

9-byte

DS18B20 передает

9 байт данных

5.6 ЛАБОРАТОРНАЯ РАБОТА № 6

Тема: Реализация протокола обмена данными между цифровым температурным датчиком DS1620 и микроконтроллером AT90S8535 на базе внутрисхемного эмулятора ICE200.

Задание: реализовать протокол обмена данными с температур-ным датчиком, произвести измерение текущей температуры.

На рисунке 34 представлены нумерация и назначение выводов микросхемы DS1620.

Вывод

Описание

DQ

Линия ввода-вывода данных

CLK/CONV

Линия тактовой частоты

RST

Линия сброса

GND

Земля

THIGH

Выход расширенных функций 1

TLOW

Выход расширенных функций 2

TCOM

Выход расширенных функций 3

VDD

Питание

Рисунок 34 – Микросхема DS1620 и наименование ее выводов

Подключение DS1620 к микроконтроллеру осуществляется в соответствии с таблицей 13.

Таблица 13 – Линии подключения микросхемы к микроконтроллеру

Выводы DS1620

Выводы микроконтроллера AT90S8535

RST

PB6

CLK

PB5

DO

PB4

Измерение температуры. DS1620 реализует измерение температуры, используя специальный сенсор. Температура хранится в 9-битном формате (рисунок 35) и может быть прочитана при помощи специальной команды. Данные передаются последовательно по 3-провод-ному последовательному интерфейсу, младший бит передается первым. DS1620 может измерять температуру в диапазоне от минус 55 0С до + 125 0С.

Так как данные передаются в последовательном коде младшим битом вперед, 9 бит данных могут быть переданы или приняты двумя способами:

- как 9-битное слово (сигнал RST необходимо перевести в нулевое состояние после приема 9 бит);

- как два 8-битных слова, причем 7 старших значащих бит игно-рируются или сбрасываются в 0.

Рисунок 35 – Структура регистров для хранения температуры

Точное значение температуры можно вычислить по следующей формуле:

Значения TEMP_READ, COUNT_PER_C, COUNT_REMAIN получают при помощи команд (Read Temperature), (Read Counter), (Read Slope) соответственно.

Команды DS1620:

Чтение температуры (Read Temperature) [AAh]. Эта команда читает содержимое регистров, которые содержат результат последнего преобразования температуры. В последующие девять тактов будет выслано содержимое этих регистров.

Чтение счетчика (Read Counter) [A0h]. Эта команда читает значение счетчика байтов. В последующие девять тактов будут высланы содержимое этих регистров.

Чтение спадающего счетчика (Read Slope) [A9h]. Эта команда читает значение спадающего счетчика байтов из DS1620. В последующие девять тактов передается содержимое этого счетчика.

Запустить преобразование температуры (Start Convert T) [EEh]. Эта команда запускает процедуру преобразования температуры. В единичном режиме преобразование температуры будет исполнено, и затем DS1620 останется бездействующим. В непрерывном режиме работы эта команда инициирует непрерывное преобразование.

Остановить преобразование температуры (Stop Convert T) [22h]. Эта команда останавливает преобразование температуры. Эта команда может быть использована для остановки DS1620, работающего в непрерывном режиме. После выполнения этой команды текущее преобразование температуры завершается и DS1620 переходит в режим ожидания.

Запись конфигурации (Write Config) [0Ch]. Эта команда осуще-ствляет запись данных в регистр конфигурации. После передачи этой команды в следующие восемь тактов необходимо передать восемь бит для записи в регистр конфигурации.

Чтение конфигурации (Read Config) [ACh]. Эта команда читает значение регистра конфигурации. После приема команды в последую-щие восемь тактов передается содержимое регистра конфигурации.

Контроль и управление DS1620. DS1620 имеет 8-разрядный регистр конфигурации:

,

где DONE – бит завершения преобразования;

1 – преобразование завершено;

0 – преобразование не завершено;

THF – необходим для работы с термостатом;

TLF – необходим для работы с термостатом;

NVB – флаг занятости энергонезависимой памяти;

CPU – бит использования CPU (Если CPU=0, DS1620 может работать в ручном режиме; если CPU=1, к DS1620 может быть подключен внешний микроконтроллер посредством 3 проводной шины. DS1620 поставляется c битом CPU=0.);

ISHOT – если ISHOT=1, преобразование температуры запускается соответствующей командой (Start Convert T), если ISHOT=0, DS1620 работает в режиме непрерывного преобразования. DS1620 поставляется c битом ISHOT=0.

3-проводной интерфейс. Трехпроводная шина содержит всего три сигнала. Это RST (сброс), CLK (тактовый сигнал), DO данные. Передача любых данных инициируется переводом линии RST в высокое состояние. Перевод линии RST в ноль прерывает протокол соединения. Тактовые импульсы – это последовательность спадающего фронта, следующего за нарастающим фронтом.

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

Когда данные читаются из DS1620, вывод DO переходит в высокоомное состояние, в то время как CLK линия находится в состоянии 1.

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

В таблице 14 представлена сводная информация о командах DS1620.

На рисунках 36 и 37 представлены временные диаграммы сигналов на линиях микросхемы DS1620 при работе в режимах чтения и записи данных соответственно.

Таблица 14 – Команды температурного датчика

Инструкция

Описание

Код

Действие

 

Read Temperature

Прочитать значение последнего преобразования температуры

AAh

Чтение данных

 

Read Counter

Прочитать значение регистра Counter

A0h

Чтение данных

 

Read Slope

Прочитать регистра Slope

A9h

Чтение данных

 

Start Convert T

Начать преобразование температуры

EEh

Нет действия

 

Stop Convert T

Остановить преобразование температуры

22h

Нет действия

 

Примечание – в режиме непрерывного преобразования команда Stop Convert T останавливает непрерывное преобразова-ние. Для перезапуска должна быть выполнена команда Start Convert T. В режиме одиночного преобразования команда Start Convert T должна выставляться при каждом желании прочитать текущую температуру.

 

Рисунок 36 – Временная диаграмма сигналов на шине при чтении данных

Рисунок 37 – Временная диаграмма сигналов на шине при записи данных

В таблице 15 представлены динамические характеристики DS1620.

Таблица 15 – Динамические характеристики микросхемы

Параметр

Обозначение

Значение

Единицы

минимум

максимум

Temperature Conversion Time

TTC

-

750

ms

Data to CLK Setup

tDC

35

-

ns

CLK to Data Hold

tCDH

40

-

ns

CLK to Data Delay

tCDD

-

150

ns

CLK Low Time

tCL

285

ns

CLK High Time

tCH

285

ns

CLK Frequency

fCLK

DC

1,75

MHz

CLK Rise and Fall

tR, tF

-

500

ns

RST to CLK Setup

tCC

100

-

ns

CLK to RST Hold

tCCH

40

-

ns

RST Inactive Time

tCWH

125

-

ns

CLK High to I/O High-Z

tCDZ

-

50

ns

RST Low to I/O High-Z

tRDZ

-

50

ns

Convert Pulse Width

tCNV

250 ns

500 ms

Литература

1.  Гук, М. Аппаратные интерфейса ПК. Энциклопедия / М. Гук.– СПб.: Питер, 2002. – 528 с.

2.  Внутрисхемный эмулятор ICE200. – Электрон. данные. – Режим доступа: http://www. /dyn/resources/prod_documents/ doc1413.pdf

3.  Спецификация на микросхему AT24C01. – Электрон. данные. – Режим доступа: http://www. /dyn/resources/prod_documents/

doc0180.pdf

4.  Спецификация на микросхему 93LC66. – Электрон. данные. – Режим доступа: http:///downloads/en/ DeviceDoc/ 21795 C. pdf

5.  Спецификация на микросхему DS18B20. – Электрон. данные. – Режим доступа: http://datasheets. /en/ds/DS18B20.pdf

6.  Спецификация на микросхему DS1620. – Электрон. данные. – Режим доступа: http://datasheets. /en/ds/DS1620.pdf

7.  Программная среда AVR Studio. – Электрон. данные. – Режим доступа: http://www. /

8.  Спецификация на микроконтроллер фирмы Atmel AT90S8535. – Электрон. данные. – Режим доступа: http://www. /dyn /resources/ prod_documents/DOC1041.pdf

ПРИЛОЖЕНИЕ А

Схема электрическая принципиальная сменного модуля


ПРИЛОЖЕНИЕ Б

Перечень команд микроконтроллера AT90S8535

1

Мнемо-ника

Операнды

Описание

Операции

Арифметические и логические инструкции

ADD

Rd, Rr

Сложить два регистра

Rd Rd + Rr

ADC

Rd, Rr

Сложить два регистра плюс бит переноса С

Rd Rd + Rr + C

ADIW

Rdl, K

Сложить слово с константой

Rdh:Rdl Rdh:Rdl + K

SUB

Rd, Rr

Вычесть два регистра

Rd Rd - Rr

SUBI

Rd, K

Вычесть константу из регистра

Rd Rd - K

SBC

Rd, Rr

Вычесть с переносом

Rd Rd - Rr - C

SBCI

Rd, K

Вычесть непосредственное значение с переносом

Rd Rd - K - C

SBIW

Rdl, K

Вычесть непосредственное значение из слова

Rdh:Rdl Rdh:Rdl - K

AND

Rd, Rr

Выполнить логическое AND

Rd Rd · Rr

ANDI

Rd, K

Выполнить логическое AND с непосредственным значением

Rd Rd · K

OR

Rd, Rr

Выполнить логическое OR

Rd Rd v Rr

ORI

Rd, K

Выполнить логическое OR с непосредственным значением

Rd Rd v K

EOR

Rd, Rr

Выполнить исключаюoее OR

Rd Rd Å Rr

COM

Rd

Выполнить дополнение до единицы

Rd $FF-Rd

NEG

Rd

Выполнить дополнение до двух

Rd

Федеральное агентство по образованию

Государственное образовательное учреждение

высшего профессионального образования

«Алтайский государственный технический университет

имени

Бийский технологический институт (филиал)

,

ПОСЛЕДОВАТЕЛЬНЫЕ ИНТЕРФЕЙСЫ ТИПОВЫХ ЭЛЕКТРОННЫХ КОМПОНЕНТОВ

Лабораторный практикум по курсу «Аппаратные интерфейсы информационных систем» для студентов специальности 230201 «Информационные  системы и технологии»

Бийск 2007

УДК 681.32

Барсуков, интерфейсы типовых электрон-ных компонентов: лабораторный практикум по курсу «Аппаратные интерфейсы информационных систем» для студентов специальности 230201 «Информационные  системы и технологии» / , .

Алт. гос. техн. ун-т им. , БТИ. – Бийск.

Изд-во Алт. гос. техн. ун-та, 2007. –  50 с.

В лабораторном практикуме приведено описание лабораторных стендов, а также даны задания к лабораторным работам по курсу «Аппаратные интерфейсы информационных систем».

Рассмотрен и одобрен на заседании кафедры МСИА.

Протокол № 47 от 30.г.

Рецензент: доцент каф. физики, к. т.н. (БТИ АлтГТУ)

© , 2007, © , 2007

© БТИ АлтГТУ, 2007

СОДЕРЖАНИЕ

Введение……………………………………………………………….

4

1 Описание лабораторного стенда…………………………………...

4

2 Работа с программой AVR Studio…………………………………..

6

3 Архитектура микроконтроллера AT90S8535……………………...

11

4 Основы программирования микроконтроллера AT90S8535

на языке Ассемблер в среде AVR Studio 4 ………………………….

13

5 Задания на лабораторные работы…………………………………..

17

5.1 Лабораторная работа № 1………………………………………

17

5.2 Лабораторная работа № 2………………………………………

22

5.3 Лабораторная работа № 3………………………………………

23

5.4 Лабораторная работа № 4………………………………………

25

5.5 Лабораторная работа № 5………………………………………

31

5.6 Лабораторная работа № 6………………………………………

39

Литература……………………………………………………………..

45

Схема электрическая принципиальная сменного модуля………………………………………………………………….

46

Перечень команд микроконтроллера AT90S8535...

47

ВВЕДЕНИЕ

Предлагаемый лабораторный практикум разработан для специальности «Информационные системы и технологии» в рамках курса «Аппаратные интерфейсы информационных систем». Практикум включает в себя шесть лабораторных работ, связанных с программной реализацией стандартных протоколов [1] обмена данными между типовыми электронными компонентами.

1 ОПИСАНИЕ ЛАБОРАТОРНОГО СТЕНДА

Лабораторный стенд представляет собой стандартный внутри-схемный эмулятор фирмы ATMEL ICE200 [2] с подключаемым сменным модулем, который содержит несколько типовых электронных компонентов с последовательными интерфейсами. Внешний вид модуля показан на рисунке 1.

1 copy.jpg

Рисунок 1 – Подключаемый модуль с набором типовых компонентов

с последовательным интерфейсом

Модуль состоит из следующих элементов:

1 – микросхема EEPROM 24С01 [3] с последовательным интер-фейсом;

2 – микросхема EEPROM 93LC66 [4] с последовательным интер-фейсом;

3 – RS-232/SPI контроллер светодиодной линейки;

4 – интегральный температурный датчик DS18B20 [5] с после-довательным интерфейсом;

5 – интегральный температурный датчик DS1620 [6] с последо-вательным интерфейсом;

6 – светодиодная линейка из 6 элементов;

7 – контрольный светодиод 1;

8 – контрольный светодиод 2.

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

2.jpg

Рисунок 2 – Внутрисхемный эмулятор с подключенным сменным модулем

Лабораторный стенд подключается к компьютеру через последовательный порт (RS-232). Принципиальная электрическая схема лабораторного стенда приведена в

2 РАБОТА С ПРОГРАММОЙ AVR STUDIO

Для написания, тестирования и отладки программы используется программная среда AVR Studio [7]. Используемый язык программиро-вания – Ассемблер для микроконтроллеров фирмы Atmel.

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

1. Подключить сменный модуль к внутрисхемному эмулятору.

2. Включить в сеть компьютер и внутрисхемный эмулятор.

3. Запустить программу AVR Studio.

4. Создать рабочий проект.

5. Написать программу для микроконтроллера в соответствии с заданием.

6. Выполнить компиляцию программы.

7. Загрузить программу в эмулятор.

8. Запустить программу на выполнение.

9. Выполнить отладку программы в пошаговом отладчике (если требуется).

10. Выполнить действия 6–9.

11. Представить результаты работы в виде рабочей программы.

После запуска программы AVR Studio должно появиться рабочее поле программы, как показано на рисунке 3.

Для создания проекта необходимо в главном меню программы выбрать Project/New Project.

Рисунок 3 – Рабочее поле программы AVR Studio

В окне «Create new project» (рисунок 4) необходимо выбрать тип проекта (Atmel AVR Assembler), ввести имя проекта (Project name), ввести имя исходного файла (Initial file), выбрать место положения рабочих файлов проекта на диске компьютера (Location), нажать Next.

НЕ нашли? Не то? Что вы ищете?

avr2.bmp

Рисунок 4 – Создание рабочего проекта

В окне «Select debug platform and device» (рисунок 5) в позиции «Debug platform» необходимо выбрать ICE200, в позиции «Device» выбрать процессор AT90S8535.

avr3.bmp

Рисунок 5 – Выбор рабочей платформы и процессора

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

Рисунок 6 – Рабочее окно программы AVR Studio для написания программы

После написания программы необходимо произвести ее компиляцию (функциональная клавиша F7). В случае успешной компиляции в окне «Build» появится статистика об используемых полях памяти и сообщение «Assembly complete, 0 errors, 11 warnings». Наличие предупреждений не является ошибкой, и их количество может быть произвольным. На рисунке 7 показан вид окна «Build» в случае успешной компиляции программы.

avr5.bmp

Рисунок 7 – Окно «Build» в случае безошибочной компиляции

В случае наличия ошибок в программе, после попытки ее компиляции в окне «Build» выводится информация о количестве ошибок и номера строк, где допущены ошибки (рисунок 8). Двойной «клик» левой кнопкой мыши по строке с описанием ошибки в окне «Build» автоматически выводит на экран рабочее окно программы, в котором курсор указывает на строку с ошибочной инструкцией.

avr6.bmp

Рисунок 8 – Окно «Build» в случае компиляции c двумя ошибками

В случае безошибочной компиляции необходимо загрузить скомпилированный код в эмулятор и перейти в режим отладки. Для этого необходимо нажать клавиши Ctrl+Shift+Alt+F5.

Для запуска программы в непрерывном режиме (в реальном масштабе времени) необходимо нажать клавишу F5. Для выполнения программы в пошаговом режиме нажать клавишу F11 (при каждом нажатии клавиши F11 выполняется одна инструкция программы).

Для остановки программы, которая исполняется в непрерывном режиме, необходимо нажать Ctrl+F5.

Для перезапуска программы (Restart) необходимо нажать Shift+F5.

При работе с внутрисхемным эмулятором пользователь имеет возможность контролировать состояние регистров (ячеек памяти) и других внутренних устройств микроконтроллера. Вся информация о состоянии микроконтроллера представлена в окне «I/O View», как показано на рисунке 9.

avr7.bmp

Рисунок 9 – Окно для контроля состояния микроконтроллера

3 АРХИТЕКТУРА МИКРОКОНТРОЛЛЕРА AT90S8535

Архитектура микроконтроллера представлена на рисунке 10. Подробно с архитектурой микроконтроллера можно ознакомиться в [8].

архитектура.bmp" Микроконтроллер AT90S8535 базируется на архитектуре AVR

RISC, имеет 32 цифровые линии ввода-вывода, восемь из которых могут быть сконфигурированы как аналоговые входы. Линии ввода-вывода образуются четырьмя 8-разрядными двунаправленными портами PA0…PA7, PB0…PB7, PC0…PC7, PD0…PD7. Контроллер имеет 8 Кбайт программной памяти, 32 8-разрядных регистра общего назначения (R0-R31), 118 мощных инструкций, большинство из которых выполняются за один такт процессора и целый ряд внутренних устройств (таймеры, счетчики, аналоговые компараторы и т. д.).

Условно-графическое обозначение микроконтроллера представ-лено на рисунке 11.

at90s8535new.bmp

Рисунок 11 – Условно-графическое обозначение микроконтроллера AT90S8535

В Приложении Б представлен полный набор инструкций микроконтроллера AT90S8535.

4 ОСНОВЫ ПРОГРАММИРОВАНИЯ

МИКРОКОНТРОЛЛЕРА AT90S8535 НА ЯЗЫКЕ

АССЕМБЛЕР В СРЕДЕ AVR STUDIO 4

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

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

sbi DDRA, PA0 – программирование линии PA0 на выход;

sbi DDRB, PB1 – программирование линии PB1 на выход;

sbi DDRC, PC2 – программирование линии PC2 на выход;

sbi DDRD, PD3 – программирование линии PD3 на выход.

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

cbi DDRA, PA0 – программирование линии PA0 на вход;

cbi DDRB, PB1 – программирование линии PВ1 на вход;

cbi DDRC, PC2 – программирование линии PС2 на вход;

cbi DDRD, PD3 – программирование линии PВ3 на вход.

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

sbi PORTA, PA0 – установить высокий уровень на выводе PA0;

sbi PORTB, PB1 – установить высокий уровень на выводе PB1;

sbi PORTC, PC2 – установить высокий уровень на выводе PC2;

sbi PORTD, PD3 – установить высокий уровень на выводе PD3.

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

cbi PORTA, PA0 – установить низкий уровень на выводе PA0;

cbi PORTB, PB1 – установить низкий уровень на выводе PB1;

cbi PORTC, PC2 – установить низкий уровень на выводе PC2;

cbi PORTD, PD3 – установить низкий уровень на выводе PD3.

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

sbi DDRA, PA0 – программирование линии PA0 на выход;

Label: sbi PORTA, PA0 – установить высокий уровень на линии PA0;

сbi PORTA, PA0 – установить низкий уровень на линии PA0;

rjmp Label – перейти на метку Label.

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

sbi DDRA, PA0 – программирование линии PA0 на выход;

Label: sbi PORTA, PA0 – установить высокий уровень на линии PA0;

Delay1 – подпрограмма задержки 1;

сbi PORTA, PA0 – установить низкий уровень на линии PA0;

Delay2 – подпрограмма задержки 2;

rjmp Label – перейти на метку Label.

При реализации программных задержек можно использовать внутренние таймеры/счетчики микроконтроллера, что требует от разработчика программы глубоких знаний архитектуры микроконт-роллера [8], либо руководствоваться следующими указаниями.

1-й способ реализации программных задержек:

nop 1-й такт

nop 2-й такт

nop 3-й такт

... n–1-й такт

nop n–й такт

Длительность задержки , где – тактовая частота микроконтроллера (принять равной 8000000 Гц).

2-й способ реализации программных задержек:

clr r30 – обнуление регистра R30

NextStep: cpi r30,255 – сравнение содержимого регистра R30 c 255

breq ExitDelay – перейти на ExitDelay в случае если R30=255 inc r30 – увеличить содержимое R30 на 1

rjmp NextStep – перейти на NextStep

ExitDelay: nop

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

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

nop

nop

nop

rcall My_Sub – строка вызова подпрограммы по адресу My_Sub

nop

nop

...

My_Sub: nop

...

nop

ret

Далее представлены примеры организации условных переходов при написании программ.

Пример 1:

cpi r30,3

breq label – переход на метку label, если r30=3

nop

...

label: nop

...

Пример 2:

cpi r30,3

brsh label – переход на метку label, если r30 => 3

nop

...

label: nop

...

Пример 3:

cpi r30,3

brlo label – переход на метку label, если r30<3

nop

...

label: nop

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

cbi PORTA, PA0 – программирование линии PA0 на вход

sbis PINA, PA0

rjmp Bit_is_reset

Bit_is_set: nop – переход на эту метку осуществляется, когда PA0=1 ...

Bit_is_reset: nop – переход на эту метку осуществляется, когда PA0=0

...

Наиболее используемые команды и операции:

clr r30 – очистить регистр общего назначения;

ldi r29,100 – записать константу в регистр общего назначения r29;

ldi r29,0b – записать константу в регистр общего назна-чения r29;

ldi r29,0xA0 – записать константу в регистр общего назначения r29;

mov r29,r30 – переписать содержимое r30 в r29;

cpi r29,1 – сравнение содержимого регистра r29 с константой;

cp r29,r30 – сравнение содержимого регистров r29, r30;

inc r30 – увеличить на 1 содержимое r30;

dec r30 – уменьшить на 1 содержимое r30;

rjmp «метка_перехода» – безусловный переход на метку;

breq «метка_перехода» – переход, если «равно»;

brsh «метка_перехода» – переход, если «больше или равно»;

brlo «метка_перехода» – переход, если «меньше».

Операции с отдельными битами регистров общего назначения:

sbr r30,0b – установить 4 бит регистра r30 равным 1;

sbr r30,0b – установить 0 бит регистра r30 равным 1;

сbr r30,0b – установить 4 бит регистра r30 равным 0;

сbr r30,0b – установить 0 бит регистра r30 равным 0;

сbr r30,0b – установить 0 и 7 биты регистра r30 равными 0;

сbi PORTA, PA3 – установить 0 на линии 3 порта A;

sbi PORTA, PA3 – установить 1 на линии 3 порта A.

Тестпрограмма управления светодиодами. Далее представлена программа для поочередного переключения двух тестовых светоди-одов, подключенных к линиям PD6, PD7 микроконтроллера.

. include "8535def. inc" – обязательная директива при использовании микроконтроллера AT90S8535

.def temp =r16

.cseg – обязательная директива любой программы

.org 0 – обязательная директива любой программы

rjmp My_program – безусловный переход на метку My_program

.org 25 – определение стартового адреса вашей программы

My_program: – символьная метка

ldi temp, high(RAMEND) – инициализация стека

out SPH, temp – -//-

ldi temp, low(RAMEND) – -//-

out SPL, temp – -//-

sbi DDRD, PD6 – программирование линии PD6 на выход

sbi DDRD, PD7 – программирование линии PD7 на выход

label1: sbi PORTD, PD6 – включить светодиод 1

cbi PORTD, PD7 – выключить светодиод 2

rcall Delay – вызов подпрограммы задержки

cbi PORTD, PD6 – выключить светодиод 1

sbi PORTD, PD7 – включить светодиод 2

rcall Delay – вызов подпрограммы задержки

rjmp label1 – перейти на метку label1

Delay: процедура, реализующая программную задержку

ret

5 ЗАДАНИЯ НА ЛАБОРАТОРНЫЕ РАБОТЫ

5.1 ЛАБОРАТОРНАЯ РАБОТА № 1

Тема: Реализация протокола обмена данными между ПЗУ с последовательным доступом (1K Microwire Compatible Serial EEPROM 93LC66) и микроконтроллером AT90S8535 на базе внутрисхемного эмулятора ICE200.

Задание: реализовать процедуры записи и чтения данных между регистрами микроконтроллера и ячейками памяти 93LC66.

На рисунке 12 представлены нумерация и наименование выводов микросхемы 93LC66.

Вывод

Функция

CS

Выбор кристалла

CLK

Линия тактовой частоты

DI

Последовательный вход

DO

Последовательный выход

VSS

Земля

NC

Не присоединено

ORG

Конфигурация памяти

VCC

Питание

Рисунок 12 – Микросхема 93LC66 и наименование ее выводов

Подключение микросхемы памяти к микроконтроллеру осущест-вляется в соответствии с таблицей 1.

Таблица 1 – Линии подключения микросхемы к микроконтроллеру

Выводы микросхемы памяти

Выводы микроконтроллера AT90S8535

CS

PA0

CLK

PA1

DI

PA2

DO

PA3

Функциональное описание. Команды, адреса и записываемые данные генерируются на линии DI при положительном фронте сигнала CLK. Вывод DO в нормальном состоянии находится в высокоомном состоянии (Z-состояние) за исключением, когда данные читаются из устройства или когда проверяется статус READY/BUSY в период операции программирования. Статус READY/BUSY может проверяться при выполнении операций Erase/Write путем опроса вывода DO; низкий уровень на выводе DO индицирует, что процесс программирования продолжается (устройство занято), высокий уровень на выводе DO индицирует о готовности устройства к дальнейшей работе. Ввод DO перейдет в Z-состояние при появлении спадающего сигнала на выводе CS.

Условие старта. Условие старта детектируется устройством, когда уровни на выводах CS и DI одновременно переходят в высокое состояние при появлении положительного фронта на выводе CLK (в начальный момент времени).

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

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

В таблице 2 представлены микрокоманды микросхемы памяти.

Таблица 2 – Микрокоманды микросхемы памяти

Инструк-ция

Старт бит

Код

Адрес

Вход

Выход

Такты

ERASE

1

1

1

A8

A7

A6

A5

A4

A3

A2

A1

A0

-

(ГОТОВ/ЗАНЯТ)

12

ERAL

1

0

0

1

0

X

X

X

X

X

X

X

-

(ГОТОВ/ЗАНЯТ)

12

EWDS

1

0

0

0

0

X

X

X

X

X

X

X

-

Z-СОСТОЯНИЕ

12

EWEN

1

0

0

1

1

X

X

X

X

X

X

X

-

Z-СОСТОЯНИЕ

12

READ

1

1

0

A8

A7

A6

A5

A4

A3

A2

A1

A0

-

D7-D0

20

WRITE

1

0

1

A8

A7

A6

A5

A4

A3

A2

A1

A0

D7-D0

(ГОТОВ/ЗАНЯТ)

20

WRAL

1

0

0

0

1

X

X

X

X

X

X

X

D7-D0

(ГОТОВ/ЗАНЯТ)

20

ERASE – очистить байт по указанному адресу.

ERAL – очистить всю память.

EWDS – запретить процедуры ERASE, WRITE, ERAL.

EWEN – разрешить процедуры ERASE, WRITE, ERAL.

READ – чтение данных по указанному адресу.

WRITE – записать байт по указанному адресу.

WRAL – заполнить все ячейки памяти указанным байтом.

Описание команды EWEN. При включении питания команды ERASE, WRITE, ERAL запрещены. Для их активации при включении питания необходимо выполнить один раз команду EWEN (команду EWEN необходимо выполнять при каждом сбросе питания). На рисунке 13 представлены временные диаграммы выполнения команды EWEN.

Рисунок 13 – Временная диаграмма выполнения команды EWEN

Чтение данных из ячеек памяти. При выполнении инструкции READ из адресованной ячейки 8 бит данных последовательно появляются на выводе DO. Уровни выходного сигнала на выводе DO меняются при появлении положительных фронтов сигнала на выводе CLK и являются достоверными после временного интервала TPD. Последующее чтение возможно пока уровень CS удерживается в единичном состоянии. Временная диаграмма выполнения команды READ представлена на рисунке 14.

Рисунок 14 – Временная диаграмма выполнения команды READ

Запись данных в ячейки памяти. Временная диаграмма выпол-нения команды WRITE представлена на рисунке 15. После прихода последнего бита спадающий сигнал на линии CS инициирует внутрен-ние процедуры устройства для очистки и записи данных в ячейку памяти. Сигнал на выводе DO индицирует статус устройства – READY/BUSY.

Рисунок 15 – Временная диаграмма выполнения команды WRITE

Ниже приведены динамические характеристики микросхемы памяти (таблица 3).

Таблица 3 – Динамические характеристики микросхемы памяти

Символ

Параметр

Значение

Единицы

минимальное

максимальное

FCLK

Clock frequency

-

3

МГц

TCKH

Clock high time

200

-

с. 10-9

TCKL

Clock low time

100

-

с. 10-9

TCSS

Chip Select setup time

50

-

с. 10-9

TCSH

Chip Select hold time

0

-

с. 10-9

TCSL

Chip Select low time

250

-

с. 10-9

TDIS

Data input setup time

50

-

с. 10-9

TDIH

Data input hold time

50

-

с. 10-9

TPD

Data output delay time

-

200

с. 10-9

TCZ

Data output disable time

-

100

с. 10-9

TSV

Status valid time

-

200

с. 10-9

TWC

Program cycle time

-

6

с. 10-3

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

Рисунок 16 – Синхронная временная диаграмма всех информационных сигналов

5.2 ЛАБОРАТОРНАЯ РАБОТА № 2

Тема: Реализация протокола RS-232 для одностороннего обмена данными между контроллером светодиодных индикаторов и микроконтроллером AT90S8535 на базе внутрисхемного эмулятора ICE200.

Задание: реализовать управление светодиодными индикаторами по однопроводному каналу связи.

Для управления светодиодами (включить/выключить) необхо-димо передать управляющему контроллеру адрес светодиода, затем команду на включение или выключение светодиода. Адреса светодиодов представлены в таблице 4.

Таблица 4 – Адреса светодиодных индикаторов

Номер светодиода

Адрес светодиода

Светодиод №1

1

Светодиод №2

2

Светодиод №3

3

Светодиод №4

4

Светодиод №5

5

Светодиод №6

6

Код включение светодиода: 7.

Код выключение светодиода: 8.

Связь с микроконтроллером реализовать на скорости 2400 бит/сек, со следующей структурой кадра: один старт бит, восемь бит данных, один стоп бит. Микроконтроллер AT90S8535 подключен к светодиодному контроллеру через линию порта PA4.

Структура кадра передаваемых данных по протоколу RS-232 представлена на рисунке 17.

Рисунок 17 – Структура кадра протокола RS-232

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

5.3 ЛАБОРАТОРНАЯ РАБОТА № 3

Тема: Реализация протокола SPI для одностороннего обмена данными между контроллером светодиодных индикаторов и микроконтроллером AT90S8535 на базе внутрисхемного эмулятора ICE200.

Задание: реализовать управление светодиодными индикаторами по SPI интерфейсу при частоте тактовых импульсов 10 кГц.

Для управления светодиодами (включить/выключить) необходимо передать управляющему контроллеру адрес светодиода, затем команду на включение или выключение светодиода. Адреса светодиодов представлены в таблице 5.

Таблица 5 – Адреса светодиодных индикаторов

Номер светодиода

Адрес светодиода

Светодиод №1

1

Светодиод №2

2

Светодиод №3

3

Светодиод №4

4

Светодиод №5

5

Светодиод №6

6

Код включение светодиода: 7.

Код выключение светодиода: 8.

При обмене данными между двумя устройствами по SPI интерфейсу одно устройство объявляется ведущим (Master), второе ведомым (Slave). Светодиодный контроллер объявлен ведомым. Микроконтроллер AT90S8535 является ведущим.

Подключение AT90S8535 к светодиодному контроллеру осуществляется согласно таблице 6.

Таблица 6 – Линии подключения микросхемы к микроконтроллеру

Линии светодиодного контроллера

Линии микроконтроллера AT90S8535

SS

PD2

SCK

PD5

MOSI

PD3

MISO

PD4

Соединение двух устройств показано на рисунке 18.

Рисунок 18 – Подключение двух устройств через SPI интерфейс

Описание линий интерфейса:

SS – сигнал, инициирующий передачу данных;

SCK – тактирующий сигнал;

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

ведущему;

MOSI – линия для передачи данных от ведущего устройства к ведомому.

Начало передачи инициируется мастером установкой линии SS в нулевой уровень.

Тактовая частота обмена информацией определяется частотой на линии SCK, которая генерируется мастером. Данные считываются ведомым и ведущим устройствами при возникновении переднего фронта на линии SCK. Младший бит передается первым. Количество бит равно восьми.

Временные диаграммы сигналов на шине SPI представлены на рисунке 19.

spi

Рисунок 19 – Временные диаграммы сигналов на шине SPI

5.4 ЛАБОРАТОРНАЯ РАБОТА № 4

Тема: Реализация протокола обмена данными между ПЗУ с последовательным доступом (Serial EEPROM 24С01) и микроконтроллером AT90S8535 на базе внутрисхемного эмулятора ICE200.

Задание: реализовать процедуры записи и чтения данных в ячейки микросхемы памяти.

На рисунке 20 представлены нумерация и обозначение выводов микросхемы 24С01.

SDA

последовательный вход/выход данных

SCL

вход тактовой частоты

TEST

тест вывод

VSS

минус питания

NC

не используется

VCC

источник питания

Рисунок 20 – Микросхема 24С01 и наименование ее выводов

Подключение микросхемы памяти к микроконтроллеру осущест-вляется в соответствии с таблицей 7.

Таблица 7 – Линии подключения микросхемы к микроконтроллеру

Выводы микросхемы памяти

Выводы микроконтроллера AT90S8535

SDA

PB1

SCL

PB2

Микросхема AT24C01 предоставляет 1024 бит электрически перезаписываемых данных с организацией 128 слов по 8 бит.

Операции с устройством. Тактирование и перемещение данных. Уровень сигнала на выводе SDA изначально находится в единичном состоянии, которое обеспечивается подключением этой линии к линиям питания микросхемы. Информация на линии SDA может меняться только в моменты, когда линия SCL находится в нулевом состоянии (смотри временную диаграмму достоверности данных на рисунке 21).

Рисунок 21 – Временная диаграмма достоверности данных

Условие старта (START CONDITION). Смена уровня с высокого на низкий на линии SDA при высоком уровне на SCL является условием старта, которое должно быть в начале любых команд (смотри временные диаграммы старт/стоп условий на рисунке 22).

Рисунок 22 – Генерирование старт/стоп условий

Стоп условие (STOP CONDITION). Смена уровня с низкого на высокий на линии SDA при высоком уровне на линии SCL является стоп условием, которое прерывает все взаимодействия. После чтения последовательности, появление стоп условия переводит микросхему в режим ожидания (смотри временные диаграммы старт/стоп условий на рисунке 23).

Подтверждение (ACKNOWLEDGE). Все адреса и данные последовательно передаются в (от) устройство памяти в 8-битном формате. Все устройства на двухпроводной шине, получившие данные, должны подключить линию SDA в нулевое состояние, подтверждая тем самым удачный прием каждого слова. Это должно происходить в течение девятого тактового импульса после каждого принятого слова.

Микросхема должна также генерировать подтверждение (уста-новка линии SDA в нуль) после приема адреса или слова данных (смотри временную диаграмму генерирования подтверждения от приемника на рисунке 23).

Сброс памяти (MEMORY RESET). После прерывания протокола связи или сброса питания или системного сброса можно организовать сброс памяти путем выполнения следующих шагов:

(a) тактировать шину SCL до 9 тактов;

(b) ожидать высокого уровня на линии SDA в каждом такте в моменты, когда SCL находится в высоком уровне;

(c) сгенерировать условие старта, так как линия SDA в состоянии высокого уровня.

Рисунок 23 – Генерирование подтверждений

Запись байта (BYTE WRITE). Следующая за старт условием операция записи требует 7 бит адреса и нулевой бит записи. При получении этого адреса микросхема должна откликнуться «нулем» и затем записываются первые 8 бит данных. Для следующей записи 8 бит информации микросхема должна откликаться «нулем» и управляющий микроконтроллер (AT90S8535) должен завершить запись, сгенерировав стоп условие, как показано на рисунке 24.

Рисунок 24 – Запись одного байта

Операция чтения инициируется тем же путем, что и операция записи, за исключением, что бит read/write, следующий за адресом, устанавливается в единицу.

Чтение байта (BYTE READ). Чтение байта начинается со старт условия, семи бит адреса и единичным битом чтения. Далее от микро-схемы приходит бит подтверждения, а затем последовательно 8 бит данных. Микроконтроллер не высылает подтверждение после приема данных и генерирует стоп условие, как показано на рисунке 25.

Рисунок 25 – Чтение одного байта

На рисунке 26 представлена временная диаграмма соотношения сигналов на шине I2C.

Рисунок 26 – Временные диаграммы сигналов на шине I2C

В таблице 8 представлены динамические характеристики микро-схемы памяти.

Таблица 8 – Динамические характеристики микросхемы памяти

Символ

Параметр

Значение

Единицы

минимальное

максимальное

fSCL

Clock frequency

-

400

кГц

tLOW

Clock Pulse Width Low

1,2

-

с. 10-6

tHIGH

Clock Pulse Width High

0,6

-

с. 10-6

tI

Noise Supression Time

-

50

с, 10-9

tAA

Clock Low to Data Out Valid

0,1

0,9

с. 10-6

tBUF

Time the bus must be free before a new transmission can start

1,2

-

с. 10-6

tHD. STA

Start Hold Time

0,6

-

с. 10-6

tSU. STA

Start Set-up Time

0,6

-

с. 10-6

tHD. DAT

Data in Hold Time

0

-

с. 10-6

tSU. DAT

Data in Set-up Time

100

-

с. 10-6

tR

Inputs Rise Time

-

0,3

с. 10-6

tF

Inputs Fall Time

-

300

с. 10-9

tSU. STO

Stop Set-up Time

0,6

-

с. 10-6

tDH

Data Out Hold Time

50

-

с. 10-9

tWR

Write Cycle Time

-

10

с. 10-6

5.5 ЛАБОРАТОРНАЯ РАБОТА № 5

Тема: Реализация протокола обмена данными между цифровым температурным датчиком DS18B20 и микроконтроллером AT90S8535 на базе внутрисхемного эмулятора ICE200.

Задание: реализовать протокол обмена данными с температурным датчиком, произвести измерение текущей температуры.

На рисунке 27 представлены рисунок и назначение выводов микросхемы DS18B20.

Описание выводов микросхемы

VDD

Питание

DQ

Линия ввода-вывода

GND

Земля

Рисунок 27 – Микросхема DS18B20 и наименование ее выводов

Подключение DS18B20 к микроконтроллеру осуществляется в соответствии с таблицей 9.

Таблица 9 – Линии подключения микросхемы к микроконтроллеру

Выводы DS18B20

Выводы микроконтроллера AT90S8535

DQ

PD1

Описание. Микросхема имеет уникальный однопроводной интерфейс и уникальный 64-битный код. Ядро DS18B20 представляет собой прямой преобразователь температуры в цифровой код. Разрядность выходного кода может быть 9, 10, 11, 12 бит, т. о. абсолютная погрешность может быть 0,5 0С, 0,25 0С, 0,125 0С, 0,0625 0С соответственно. Разрядность по умолчанию 12 бит. Для инициации измерения температуры необходимо передать команду Convert T (44h).

Результат преобразования сохраняется в двухбайтном регистре. Если DS18B20 питается от внешнего источника, «мастер» может сгенерировать условие «чтение временного слота» после команды Convert T, и DS18B20 должен откликнуться передачей 0 в период преобразования температуры и 1, если преобразование завершено.

Температура хранится в 16-битном регистре (два 8-битных), структура которого показана на рисунке 28.

Рисунок 28 – Регистры хранения текущей температуры

Знаковые биты (S) индицируют, положительна ли температура или отрицательна. Для положительной температуры S=0, для отрицательной S=1.

Если используется 12-битный режим, все биты температурных регистров используются.

Если используется 11-битный режим, бит 0 неопределен.

Если используется 10-битный режим, биты 1, 0 неопределены.

Если используется 9-битный режим, биты 2, 1, 0 неопределены.

В таблице 10 представлено соотношение температуры и данных, находящихся в температурных регистрах.

Таблица 10 – Соответствие температуры и двоичного кода

DS18B20 содержит уникальный 64-битный код, хранящийся в ROM.

Структура уникального кода представлена на рисунке 29.

Рисунок 29 – Структура уникального кода DS18B20

Структура память DS18B20 представлена на рисунке 30.

Рисунок 30 – Структура памяти микросхемы DS18B20

Структура конфигурационного байта представлена на рисунке 31.

Рисунок 31 – Структура конфигурационного байта

Данные по шине передаются младшим значащим битом вперед.

Последовательность работы с DS18B20 состоит из трех шагов:

ШАГ 1. Инициализация;

ШАГ 2. ROM команды;

ШАГ 3. Функциональные команды.

Инициализация. Все операции на шине начинаются с инициали-зации. Инициирующая последовательность содержит импульс сброса, поступающий от «мастера», и импульс отклика, поступающий от DS18B20.

ROM команды. После того, как «мастер» обнаружил DS18B20, необходимо выполнить ROM команды. Эти команды оперируют с 64-битным уникальным кодом. Эти команды также позволяют определить, сколько устройств находится на шине. Всего пять команд разрядностью 8 бит. Мастер должен сгенерировать необходимые ROM команды, прежде чем генерировать функциональные команды.

Несколько ROM команд представлено ниже.

READ ROM (чтение уникального кода) [33h]. Эта команда может использоваться, когда на шине находится одно устройство DS18В20. Она позволяет получить мастеру 64-битный уникальный код DS18В20.

MATCH ROM (передача кода) [55h]. За этой командой следует 64-битный код, позволяющий «мастеру» адресоваться к одному DS18B20.

SKIP ROM (пропустить ROM команды) [CCh]. Мастер может использовать эту команду при адресации ко всем устройствам, находящимся на шине одновременно, без посылки любых уникальных кодов.

Функциональные команды DS18B20. После генерирования ROM команд мастер может сгенерировать одну из функциональных команд.

CONVERT T (преобразование температуры) [44h]. Эта команда инициирует единичное преобразование текущей температуры. Результат преобразования сохраняется в соответствующих регистрах памяти DS18B20, и последний переходит в режим спячки (ожидания).

Мастер может читать временной слот после команды Convert T, и DS18B20 должен выставить 0 в течение процедуры преобразования температуры или 1, когда преобразование завершено.

READ SCRATCHPAD (чтение памяти) [BEh]. При помощи этой команды мастер читает память DS18B20. Данные передаются младшим значащим битом вперед, и длительность посылки составляет 9 байт. Мастер может прервать прием в любой момент времени, перестав генерировать временные слоты чтения данных, если это необходимо.

В таблице 11 представлены динамические характеристики DS18B20.

Таблица 11 – Динамические характеристики микросхемы

Параметр

Обозначение

Условия

Значение

Единицы

минимальное

максимальное

Temperature Conversion Time

tCONV

9-bit resolution

93,75

с. 10-3

10-bit resolution

187,5

с. 10-3

11-bit resolution

375

с. 10-3

12-bit resolution

750

с. 10-3

Time to Strong Pulling On

tSPON

Start Convert T Command Issued

10

с. 10-6

Time Slot

tSLOT

60

120

с. 10-6

Recovery Time

tREC

1

-

с. 10-6

Write 0 Low Time

tLOW0

60

120

с. .0-6

Продолжение таблицы 11

Write 1 Low Time

tLOW1

1

15

с. 10-6

Read Data Valid

tRDV

-

15

с. 10-6

Reset Time High

tRSTH

480

-

с. 10-6

Reset Time Low

tRSTL

480

-

с. 10-6

Presence Detect High

tPDHIGH

15

60

с. 10-6

Presence Detect Low

tPDLOW

60

240

с. 10-6

Capacitance

CIN/OUT

-

25

pF

Процедура инициализации: сброс и импульс присутствия. Взаимодействие с DS18B20 начинается с инициирующей последова-тельности, которая содержит импульс сброса, поступающий от мастера и импульс присутствия, поступающий от DS18B20, как показано на рисунке 32.

Рисунок 32 – Диаграмма сброса микросхемы

Когда DS18B20 посылает импульс присутствия в ответ на импульс сброса, это говорит о том, что устройство присутствует на шине и готово к работе.

В ходе инициализации мастер передает импульс сброса путем удержания шины в нулевом состоянии в течение минимум 480 мкс. Когда импульс сформирован, шина переводится в режим приема. Шина переходит в единичное состояние за счет специального резистора, подключающего шину данных к шине питания. Когда DS18B20 обнаруживает положительный фронт импульса сброса, оно ожидает от 10 до 60 мкс и затем посылает импульс присутствия путем удержания шины в нулевом состоянии в течение 60–240 мкс.

Временные слоты чтения/записи. Мастер записывает данные в DS18B20 в течение «временного слота записи» и читает данные из DS18B20 в течение «временного слота чтения». Один бит данных передается в течение одного временного слота.

Временной слот записи. Существует два типа временных слотов записи: временной слот «Write 1» и временной слот «Write 0». Мастер использует слот «Write 1» для записи логической единицы в DS18B20 и слот «Write 0» для записи нуля. Временные слоты записи должны быть продолжительностью минимум 60 мкс и следовать с интервалами не менее 1 мкс. Оба типа слотов инициируются мастером переводом шины в нулевое состояние.

Для генерирования временного слота «Write 1», после перевода мастером шины в нулевое состояние, он должен удерживать ее в таком состоянии в течение 15 мкс. После этого мастер переводит шину в единичное состояние.

Для генерирования временного слота «Write 0», после перевода шины в нулевое состояние, мастер должен удерживать ее в таком состоянии в течение длительности временного слота (около 60 мкс).

Таким образом стробирование работы DS18B20 происходит в последующие 15-60 мкс, после того как мастер инициирует временной слот записи. Если в течение этого интервала шина находится в единичном состоянии, в DS18B20 записывается «1», если в нулевом – записывается «0».

Временные слоты чтения. DS18B20 может передавать данные, только когда мастер генерирует временной слот чтения. Таким образом, мастер должен генерировать временной слот чтения немедленно после передачи команд, типа Read Scratchpad [BEh], поскольку DS18B20 должен передавать запрашиваемые данные. Кроме того, мастер может генерировать временной слот чтения после передачи команды Convert T [44h] для детектирования статуса выполнения команды. Все временные слоты чтения должны быть длительностью минимум 60 мкс с минимальным интервалом между слотами 1 мкс.

Временные слоты чтения инициируются мастером переводом шины в нулевое состояние минимум на 1 мкс и затем переключением на прием данных (рисунок 33).

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

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

Рисунок 33 – Временные диаграммы слотов чтения/записи

В таблице 12 представлен пример последовательности работы с DS18B20.

Таблица 12 – Последовательность работы с микросхемой DS18B20

Режим мастера

TX/RX – передача/прием

Передача данных (младший бит первый)

Комментарии

TX

Импульс сброса

Мастер генерирует импульс сброса

RX

Импульс присутствия

DS18B20 генерирует импульс отклика

TX

SKIP Command

Пропустить ROM команды

TX

Convert T

Запустить преобразование температуры

TX

Импульс сброса

Мастер генерирует импульс сброса

RX

Импульс присутствия

DS18B20 генерирует импульс отклика

TX

SKIP Command

Пропустить ROM команды

TX

READ SCRATCHPAD

Чтение памяти

RX

9-byte

DS18B20 передает

9 байт данных

5.6 ЛАБОРАТОРНАЯ РАБОТА № 6

Тема: Реализация протокола обмена данными между цифровым температурным датчиком DS1620 и микроконтроллером AT90S8535 на базе внутрисхемного эмулятора ICE200.

Задание: реализовать протокол обмена данными с температур-ным датчиком, произвести измерение текущей температуры.

На рисунке 34 представлены нумерация и назначение выводов микросхемы DS1620.

Вывод

Описание

DQ

Линия ввода-вывода данных

CLK/CONV

Линия тактовой частоты

RST

Линия сброса

GND

Земля

THIGH

Выход расширенных функций 1

TLOW

Выход расширенных функций 2

TCOM

Выход расширенных функций 3

VDD

Питание

Рисунок 34 – Микросхема DS1620 и наименование ее выводов

Подключение DS1620 к микроконтроллеру осуществляется в соответствии с таблицей 13.

Таблица 13 – Линии подключения микросхемы к микроконтроллеру

Выводы DS1620

Выводы микроконтроллера AT90S8535

RST

PB6

CLK

PB5

DO

PB4

Измерение температуры. DS1620 реализует измерение температуры, используя специальный сенсор. Температура хранится в 9-битном формате (рисунок 35) и может быть прочитана при помощи специальной команды. Данные передаются последовательно по 3-провод-ному последовательному интерфейсу, младший бит передается первым. DS1620 может измерять температуру в диапазоне от минус 55 0С до + 125 0С.

Так как данные передаются в последовательном коде младшим битом вперед, 9 бит данных могут быть переданы или приняты двумя способами:

- как 9-битное слово (сигнал RST необходимо перевести в нулевое состояние после приема 9 бит);

- как два 8-битных слова, причем 7 старших значащих бит игно-рируются или сбрасываются в 0.

Рисунок 35 – Структура регистров для хранения температуры

Точное значение температуры можно вычислить по следующей формуле:

Значения TEMP_READ, COUNT_PER_C, COUNT_REMAIN получают при помощи команд (Read Temperature), (Read Counter), (Read Slope) соответственно.

Команды DS1620:

Чтение температуры (Read Temperature) [AAh]. Эта команда читает содержимое регистров, которые содержат результат последнего преобразования температуры. В последующие девять тактов будет выслано содержимое этих регистров.

Чтение счетчика (Read Counter) [A0h]. Эта команда читает значение счетчика байтов. В последующие девять тактов будут высланы содержимое этих регистров.

Чтение спадающего счетчика (Read Slope) [A9h]. Эта команда читает значение спадающего счетчика байтов из DS1620. В последующие девять тактов передается содержимое этого счетчика.

Запустить преобразование температуры (Start Convert T) [EEh]. Эта команда запускает процедуру преобразования температуры. В единичном режиме преобразование температуры будет исполнено, и затем DS1620 останется бездействующим. В непрерывном режиме работы эта команда инициирует непрерывное преобразование.

Остановить преобразование температуры (Stop Convert T) [22h]. Эта команда останавливает преобразование температуры. Эта команда может быть использована для остановки DS1620, работающего в непрерывном режиме. После выполнения этой команды текущее преобразование температуры завершается и DS1620 переходит в режим ожидания.

Запись конфигурации (Write Config) [0Ch]. Эта команда осуще-ствляет запись данных в регистр конфигурации. После передачи этой команды в следующие восемь тактов необходимо передать восемь бит для записи в регистр конфигурации.

Чтение конфигурации (Read Config) [ACh]. Эта команда читает значение регистра конфигурации. После приема команды в последую-щие восемь тактов передается содержимое регистра конфигурации.

Контроль и управление DS1620. DS1620 имеет 8-разрядный регистр конфигурации:

,

где DONE – бит завершения преобразования;

1 – преобразование завершено;

0 – преобразование не завершено;

THF – необходим для работы с термостатом;

TLF – необходим для работы с термостатом;

NVB – флаг занятости энергонезависимой памяти;

CPU – бит использования CPU (Если CPU=0, DS1620 может работать в ручном режиме; если CPU=1, к DS1620 может быть подключен внешний микроконтроллер посредством 3 проводной шины. DS1620 поставляется c битом CPU=0.);

ISHOT – если ISHOT=1, преобразование температуры запускается соответствующей командой (Start Convert T), если ISHOT=0, DS1620 работает в режиме непрерывного преобразования. DS1620 поставляется c битом ISHOT=0.

3-проводной интерфейс. Трехпроводная шина содержит всего три сигнала. Это RST (сброс), CLK (тактовый сигнал), DO данные. Передача любых данных инициируется переводом линии RST в высокое состояние. Перевод линии RST в ноль прерывает протокол соединения. Тактовые импульсы – это последовательность спадающего фронта, следующего за нарастающим фронтом.

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

Когда данные читаются из DS1620, вывод DO переходит в высокоомное состояние, в то время как CLK линия находится в состоянии 1.

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

В таблице 14 представлена сводная информация о командах DS1620.

На рисунках 36 и 37 представлены временные диаграммы сигналов на линиях микросхемы DS1620 при работе в режимах чтения и записи данных соответственно.

Таблица 14 – Команды температурного датчика

Инструкция

Описание

Код

Действие

 

Read Temperature

Прочитать значение последнего преобразования температуры

AAh

Чтение данных

 

Read Counter

Прочитать значение регистра Counter

A0h

Чтение данных

 

Read Slope

Прочитать регистра Slope

A9h

Чтение данных

 

Start Convert T

Начать преобразование температуры

EEh

Нет действия

 

Stop Convert T

Остановить преобразование температуры

22h

Нет действия

 

Примечание – в режиме непрерывного преобразования команда Stop Convert T останавливает непрерывное преобразова-ние. Для перезапуска должна быть выполнена команда Start Convert T. В режиме одиночного преобразования команда Start Convert T должна выставляться при каждом желании прочитать текущую температуру.

 

Рисунок 36 – Временная диаграмма сигналов на шине при чтении данных

Рисунок 37 – Временная диаграмма сигналов на шине при записи данных

В таблице 15 представлены динамические характеристики DS1620.

Таблица 15 – Динамические характеристики микросхемы

Параметр

Обозначение

Значение

Единицы

минимум

максимум

Temperature Conversion Time

TTC

-

750

ms

Data to CLK Setup

tDC

35

-

ns

CLK to Data Hold

tCDH

40

-

ns

CLK to Data Delay

tCDD

-

150

ns

CLK Low Time

tCL

285

ns

CLK High Time

tCH

285

ns

CLK Frequency

fCLK

DC

1,75

MHz

CLK Rise and Fall

tR, tF

-

500

ns

RST to CLK Setup

tCC

100

-

ns

CLK to RST Hold

tCCH

40

-

ns

RST Inactive Time

tCWH

125

-

ns

CLK High to I/O High-Z

tCDZ

-

50

ns

RST Low to I/O High-Z

tRDZ

-

50

ns

Convert Pulse Width

tCNV

250 ns

500 ms

Литература

1.  Гук, М. Аппаратные интерфейса ПК. Энциклопедия / М. Гук.– СПб.: Питер, 2002. – 528 с.

2.  Внутрисхемный эмулятор ICE200. – Электрон. данные. – Режим доступа: http://www. /dyn/resources/prod_documents/ doc1413.pdf

3.  Спецификация на микросхему AT24C01. – Электрон. данные. – Режим доступа: http://www. /dyn/resources/prod_documents/

doc0180.pdf

4.  Спецификация на микросхему 93LC66. – Электрон. данные. – Режим доступа: http:///downloads/en/ DeviceDoc/ 21795 C. pdf

5.  Спецификация на микросхему DS18B20. – Электрон. данные. – Режим доступа: http://datasheets. /en/ds/DS18B20.pdf

6.  Спецификация на микросхему DS1620. – Электрон. данные. – Режим доступа: http://datasheets. /en/ds/DS1620.pdf

7.  Программная среда AVR Studio. – Электрон. данные. – Режим доступа: http://www. /

8.  Спецификация на микроконтроллер фирмы Atmel AT90S8535. – Электрон. данные. – Режим доступа: http://www. /dyn /resources/ prod_documents/DOC1041.pdf

ПРИЛОЖЕНИЕ А

Схема электрическая принципиальная сменного модуля


ПРИЛОЖЕНИЕ Б

Перечень команд микроконтроллера AT90S8535

1

Мнемо-ника

Операнды

Описание

Операции

Арифметические и логические инструкции

ADD

Rd, Rr

Сложить два регистра

Rd Rd + Rr

ADC

Rd, Rr

Сложить два регистра плюс бит переноса С

Rd Rd + Rr + C

ADIW

Rdl, K

Сложить слово с константой

Rdh:Rdl Rdh:Rdl + K

SUB

Rd, Rr

Вычесть два регистра

Rd Rd - Rr

SUBI

Rd, K

Вычесть константу из регистра

Rd Rd - K

SBC

Rd, Rr

Вычесть с переносом

Rd Rd - Rr - C

SBCI

Rd, K

Вычесть непосредственное значение с переносом

Rd Rd - K - C

SBIW

Rdl, K

Вычесть непосредственное значение из слова

Rdh:Rdl Rdh:Rdl - K

AND

Rd, Rr

Выполнить логическое AND

Rd Rd · Rr

ANDI

Rd, K

Выполнить логическое AND с непосредственным значением

Rd Rd · K

OR

Rd, Rr

Выполнить логическое OR

Rd Rd v Rr

ORI

Rd, K

Выполнить логическое OR с непосредственным значением

Rd Rd v K

EOR

Rd, Rr

Выполнить исключаюoее OR

Rd Rd Å Rr

COM

Rd

Выполнить дополнение до единицы

Rd $FF-Rd

NEG

Rd

Выполнить дополнение до двух

Rd $00-Rd

SBR

Rd, K

Установить бит в регистре

Rd Rd v K

CBR

Rd, K

Очистить бит в регистре

Rd Rd · ($FF - K)

INC

Rd

Инкрементировать

Rd Rd + 1

DEC

Rd

Декрементировать

Rd Rd-1

CLR

Rd

Очистить регистр

Rd Rd Å Rd

SER

Rd

Установить все биты регистра

Rd $FF

Инструкции переходов

RJMP

k

Относительный переход

PC PC + k + 1

RCALL

k

Относительный вызов подпрограммы

PC PC + k + 1

RET

Возврат из подпрограммы

PC STACK

CPSE

Rd, Rr

Сравнить и пропустить если равно

if (Rd = Rr) PC PC + 2 or 3

CP

Rd, Rr

Сравнить

Rd-Rr

CPC

Rd, Rr

Сравнить с учетом переноса

Rd-Rr-C

CPI

Rd, K

Сравнить с константой

Rd-K

Продолжение таблицы Б.1

Мнемо-ника

Операн-ды

Описание

Операции

Арифметические и логические инструкции

SBRC

Rr, b

Пропустить если бит в регистре очищен

if (Rr(b)=0) PC PC + 2 or 3

SBRS

Rr, b

Пропустить если бит в регистре установлен

if (Rr(b)=1) PC PC + 2 or 3

SBIC

P, b

Пропустить если бит в регистре I/O очищен

if (P(b)=0) PC PC + 2 or 3

SBIS

P, b

Пропустить если бит в регистре I/O установлен

if (P(b)=1) PC PC + 2 or 3

BREQ

k

Перейти если равно

if (Z = 1) then PC PC + k + 1

BRNE

k

Перейти если не равно Branch

if (Z = 0) then PC PC + k + 1

BRCS

k

Перейти если флаг переноса установлен

if (C = 1) then PC PC + k + 1

BRCC

k

Перейти если флаг переноса очищен

if (C = 0) then PC PC + k + 1

BRSH

k

Перейти если равно или больше (без знака)

if (C = 0) then PC PC + k + 1

BRLO

k

Перейти если меньше (без знака)

if (C = 1) then PC PC + k + 1

BRMI

k

Перейти если минус

if (N = 1) then PC PC + k + 1

BRPL

k

Перейти если плюс

if (N = 0) then PC PC + k + 1

BRGE

k

Перейти если больше или равно (с учетом знака)

if (N Å V= 0) then PC PC + k + 1

BRLT

k

Перейти если меньше (со знаком)

if (N Å V= 1) then PC PC + k + 1

BRHS

k

Перейти если флаг H = 1

if (H = 1) then PC PC + k + 1

BRHC

k

Перейти если флаг H = 0

if (H = 0) then PC PC + k + 1

BRTS

k

Перейти если флаг T = 1

if (T = 1) then PC PC + k + 1

BRTC

k

Перейти если флаг T = 0

if (T = 0) then PC PC + k + 1

BRVS

k

Перейти если флаг V=1

if (V = 1) then PC PC + k + 1

BRVC

k

Перейти если флаг V=0

if (V = 0) then PC PC + k + 1

Инструкции передачи данных

MOV

Rd, Rr

Копировать регистр

Rd Rr

LDI

Rd, K

Загрузить непосредственно константу в регистр

Rd K

IN

Rd, P

Чтение порта

Rd P

OUT

P, Rr

Запись порт

P Rr

PUSH

Rr

Положить содержимое регистра в стек

STACK Rr

POP

Rd

Загрузить содержимое вершины стека в регистр

Rd STACK


Продолжение таблицы Б.2

Мнемо-ника

Операн-ды

Описание

Операции

Бит ориентированные инструкции

SBI

P, b

Установить бит в регистре ввода-вывода

I/O (P, b) 1

CBI

P, b

Очистить бит в регистре ввода-вывода

I/O(P, b) 0

LSL

Rd

Логический сдвиг влево

Rd(n+1) Rd(n), Rd(0) 0

LSR

Rd

Логический сдвиг вправо

Rd(n) Rd(n+1), Rd(7) 0

ROL

Rd

Циклический сдвиг влево через флаг переноса

Rd(0)C, Rd(n+1) Rd(n),CRd(7)

ROR

Rd

Циклический сдвиг вправо через флаг переноса

Rd(7)C, Rd(n) Rd(n+1),CRd(0)

ASR

Rd

Арифметический сдвиг вправо

Rd(n) Rd(n+1), n=0..6

SWAP

Rd

Поменять нибблы местами

Rd(3..0)Rd(7..4),Rd(7..4)Rd(3..0)

BSET

s

Установить флаг регистра SREG

SREG(s) 1 SREG(s)

BCLR

s

Очистить флаг регистра SREG

SREG(s) 0 SREG(s)

SEC

Установить флаг переноса С

C 1

CLC

Очистить флаг переноса С

C 0

SEN

Установить флаг N в регистре SREG

N 1

CLN

Очистить флаг N в регистре SREG

N 0

SEZ

Установить флаг Z в регистре SREG

Z 1

CLZ

Очистить флаг Z в регистре SREG

Z 0

SES

Установить флаг S в регистре SREG

S 1

CLS

Очистить флаг S в регистре SREG

S 0

SET

Установить флаг T в регистре SREG

T 1

CLT

Очистить флаг T в регистре SREG

T 0

SHE

Установить флаг H в регистре SREG

H 1

CLH

Очистить флаг H в регистре SREG

H 0

NOP

Пустая операция


ПОСЛЕДОВАТЕЛЬНЫЕ ИНТЕРФЕЙСЫ ТИПОВЫХ ЭЛЕКТРОННЫХ КОМПОНЕНТОВ

Лабораторный практикум по курсу «Аппаратные интерфейсы информационных систем» для студентов специальности 230201 «Информационные  системы и технологии»

Редактор  

Технический редактор  

  Подписано в печать 03.10.07. Формат 60×84 1/16

Усл. п.л 2,91. Уч.-изд. л. 3,13.

Печать – ризография, множительно-копировальный аппарат «RISO TR-1510».

Тираж 100 экз. Заказ 2007-57.

Издательство Алтайского государственного

технического университета.

г. Барна.

Оригинал-макет подготовлен ИИО БТИ АлтГТУ.

Отпечатано в ИИО БТИ АлтГТУ.

9.

-Rd

SBR

Rd, K

Установить бит в регистре

Rd Rd v K

CBR

Rd, K

Очистить бит в регистре

Rd Rd · ($FF - K)

INC

Rd

Инкрементировать

Rd Rd + 1

DEC

Rd

Декрементировать

Rd Rd-1

CLR

Rd

Очистить регистр

Rd Rd Å Rd

SER

Rd

Установить все биты регистра

Rd $FF

Инструкции переходов

RJMP

k

Относительный переход

PC PC + k + 1

RCALL

k

Относительный вызов подпрограммы

PC PC + k + 1

RET

Возврат из подпрограммы

PC STACK

CPSE

Rd, Rr

Сравнить и пропустить если равно

if (Rd = Rr) PC PC + 2 or 3

CP

Rd, Rr

Сравнить

Rd-Rr

CPC

Rd, Rr

Сравнить с учетом переноса

Rd-Rr-C

CPI

Rd, K

Сравнить с константой

Rd-K

Продолжение таблицы Б.1

Мнемо-ника

Операн-ды

Описание

Операции

Арифметические и логические инструкции

SBRC

Rr, b

Пропустить если бит в регистре очищен

if (Rr(b)=0) PC PC + 2 or 3

SBRS

Rr, b

Пропустить если бит в регистре установлен

if (Rr(b)=1) PC PC + 2 or 3

SBIC

P, b

Пропустить если бит в регистре I/O очищен

if (P(b)=0) PC PC + 2 or 3

SBIS

P, b

Пропустить если бит в регистре I/O установлен

if (P(b)=1) PC PC + 2 or 3

BREQ

k

Перейти если равно

if (Z = 1) then PC PC + k + 1

BRNE

k

Перейти если не равно Branch

if (Z = 0) then PC PC + k + 1

BRCS

k

Перейти если флаг переноса установлен

if (C = 1) then PC PC + k + 1

BRCC

k

Перейти если флаг переноса очищен

if (C = 0) then PC PC + k + 1

BRSH

k

Перейти если равно или больше (без знака)

if (C = 0) then PC PC + k + 1

BRLO

k

Перейти если меньше (без знака)

if (C = 1) then PC PC + k + 1

BRMI

k

Перейти если минус

if (N = 1) then PC PC + k + 1

BRPL

k

Перейти если плюс

if (N = 0) then PC PC + k + 1

BRGE

k

Перейти если больше или равно (с учетом знака)

if (N Å V= 0) then PC PC + k + 1

BRLT

k

Перейти если меньше (со знаком)

if (N Å V= 1) then PC PC + k + 1

BRHS

k

Перейти если флаг H = 1

if (H = 1) then PC PC + k + 1

BRHC

k

Перейти если флаг H = 0

if (H = 0) then PC PC + k + 1

BRTS

k

Перейти если флаг T = 1

if (T = 1) then PC PC + k + 1

BRTC

k

Перейти если флаг T = 0

if (T = 0) then PC PC + k + 1

BRVS

k

Перейти если флаг V=1

if (V = 1) then PC PC + k + 1

BRVC

k

Перейти если флаг V=0

if (V = 0) then PC PC + k + 1

Инструкции передачи данных

MOV

Rd, Rr

Копировать регистр

Rd Rr

LDI

Rd, K

Загрузить непосредственно константу в регистр

Rd K

IN

Rd, P

Чтение порта

Rd P

OUT

P, Rr

Запись порт

P Rr

PUSH

Rr

Положить содержимое регистра в стек

STACK Rr

POP

Rd

Загрузить содержимое вершины стека в регистр

Rd STACK


Продолжение таблицы Б.2

Мнемо-ника

Операн-ды

Описание

Операции

Бит ориентированные инструкции

SBI

P, b

Установить бит в регистре ввода-вывода

I/O (P, b) 1

CBI

P, b

Очистить бит в регистре ввода-вывода

I/O(P, b) 0

LSL

Rd

Логический сдвиг влево

Rd(n+1) Rd(n), Rd(0) 0

LSR

Rd

Логический сдвиг вправо

Rd(n) Rd(n+1), Rd(7) 0

ROL

Rd

Циклический сдвиг влево через флаг переноса

Rd(0)C, Rd(n+1) Rd(n),CRd(7)

ROR

Rd

Циклический сдвиг вправо через флаг переноса

Rd(7)C, Rd(n) Rd(n+1),CRd(0)

ASR

Rd

Арифметический сдвиг вправо

Rd(n) Rd(n+1), n=0..6

SWAP

Rd

Поменять нибблы местами

Rd(3..0)Rd(7..4),Rd(7..4)Rd(3..0)

BSET

s

Установить флаг регистра SREG

SREG(s) 1 SREG(s)

BCLR

s

Очистить флаг регистра SREG

SREG(s) 0 SREG(s)

SEC

Установить флаг переноса С

C 1

CLC

Очистить флаг переноса С

C 0

SEN

Установить флаг N в регистре SREG

N 1

CLN

Очистить флаг N в регистре SREG

N 0

SEZ

Установить флаг Z в регистре SREG

Z 1

CLZ

Очистить флаг Z в регистре SREG

Z 0

SES

Установить флаг S в регистре SREG

S 1

CLS

Очистить флаг S в регистре SREG

S 0

SET

Установить флаг T в регистре SREG

T 1

CLT

Очистить флаг T в регистре SREG

T 0

SHE

Установить флаг H в регистре SREG

H 1

CLH

Очистить флаг H в регистре SREG

H 0

NOP

Пустая операция


ПОСЛЕДОВАТЕЛЬНЫЕ ИНТЕРФЕЙСЫ ТИПОВЫХ ЭЛЕКТРОННЫХ КОМПОНЕНТОВ

Лабораторный практикум по курсу «Аппаратные интерфейсы информационных систем» для студентов специальности 230201 «Информационные  системы и технологии»

Редактор  

Технический редактор  

  Подписано в печать 03.10.07. Формат 60×84 1/16

Усл. п.л 2,91. Уч.-изд. л. 3,13.

Печать – ризография, множительно-копировальный аппарат «RISO TR-1510».

Тираж 100 экз. Заказ 2007-57.

Издательство Алтайского государственного

технического университета.

г. Барна.

Оригинал-макет подготовлен ИИО БТИ АлтГТУ.

Отпечатано в ИИО БТИ АлтГТУ.

9.