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

2. Требования к выполнению работы.

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

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

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

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

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

  2. 2. Исходный текст программы с комментариями.

  3. 3. Основные результаты.

Лабораторная работа 12 Реализация интерфейса I2С в лабораторном стенде SDK 1.1

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

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

1.1. Интерфейс I2С, общие сведения.

Интерфейс I2С (Inter Integrated Circuit) является двухпроводной беспроводной системой связи, позволяющей установить связь между несколькими ведущими и несколькими ведомыми устройствами. Связь осуществляется с помощью двух двунаправленных линий: SCLOCK управляет передачей данных, SDATA используется для обмена данными. Скорость передачи определяется частотой синхронизирующих импульсов на линии SCLOCK, которые генерирует ведущее устройство. Ведомое устройство этими импульсами управляется. Типичная последовательность передачи данных по интерфейсу I2С показана на рис.1.

Рис. 1. Последовательность передачи данных по интерфейсу I2С.

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

После стартового бита ведущий посылает байт (начиная со старшего бита), который содержит адрес ведомого устройства и бит статуса R/W (чтение/запись). Первые семь бит содержат адрес устройства, а младший определяет направление сообщения: 0 – передача, 1 – прием.

Теперь каждое ведомое устройство в системе сравнивает принятый семибитный адрес со своим адресом, и если он совпадает, выдает бит подтверждения (АСК). Подтверждение выглядит как низкий уровень на линии SDATA на девятом такте и должно выдаваться ведомым устройством после приема каждого байта. Если нет подтверждения или передача закончилась, ведущее устройство генерирует состояние завершения.

Состояние завершения представляет собой изменение уровня сигнала на линии SDATA от высокого к низкому, в то время как уровень сигнала на SCLOK высокий.

1.2. Реализация интерфейса i2с на Aduc812.

Aduc812 поддерживает двухпроводный последовательный интерфейс, совместимый с I2C. Этот интерфейс разделяет контакты внутреннего SPI интерфейса, и поэтому в каждый момент времени пользователю доступен либо один, либо другой интерфейс (зависит от бита SPE регистра SPICON). Интерфейс конфигурируется в два режима: «программный ведущий» и «аппаратный ведомый», и использует два контакта: SDATA ( контакт 27) – ввод/вывод последовательных данных и SCLOCK (контакт 26) – последовательный синхросигнал. Для управления интерфейсом используется три SFR регистра:

I2CCON (SFR адрес E8h) – регистр управления I2C (таблица 1);

I2CADD (SFR адрес 55h) – регистр адреса интерфейса I2C, содержит адрес периферийного устройства, возможна запись кодом пользователя;

I2CDAT (SFR адрес 9Ah) – регистр данных интерфейса I2C, в регистр записываются данные для передачи по интерфейсу I2C или считываются только что пришедшие по интерфейсу данные.

Таблица 1. Регистр управления I2C I2CCON

Бит

Название

Описание

7

MDO

Бит выходных данных (только в режиме программный ведущий). Используется для передачи данных в режиме «программный ведущий». Данные, записанные в этот бит, будут выдвинуты на контакт SDATA, если установлен бит разрешения передачи данных (MDE).

6

MDE

Бит разрешения передачи данных (только в режиме программный ведущий).

Устанавливается пользователем для назначения контакта SDATA

1 – передача данных

0 – прием данных

5

МСО

Бит выходного синхроимпульса (только в режиме программный ведущий).

Используется в режиме передающего I2C интерфейса. Данные записанные в этот бит будут переданы на вывод SCLOCK

4

MDI

Бит входных данных (только в режиме программный ведущий). Используется для приема данных в режиме «программный ведущий». В этот бит считывается значение SDATA по сигналу SCLOCK, если сброшен бит разрешения передачи данных (MDE).

3

I2CM

Бит выбора режима «ведущий/ведомый».

Устанавливается и сбрасывается пользователем.

0 – аппаратный ведомый

1 – программный ведущий

2

I2CRS

Бит сброса I2C (только в режиме аппаратный ведомый). Устанавливается и сбрасывается пользователем.

0 – нормальная работа I2C

1 – сброс интерфейс I2C

1

I2CTX

Бит направления передачи (только в режиме аппаратный ведомый). Устанавливается аппаратно

0 – прием

1 – передача

0

I2CI

Флаг прерывания (только в режиме аппаратный ведомый) Устанавливается аппаратно после приема или передачи байта Сбрасывается программно