9. Основы организации интерфейса с хост- устройствами в микропроцессорных системах.

Хост устройство (host)– устройство хозяин, устройство способное принимать подключения нескольких гостевых устройств (device). По схемеhost-deviceпостроено несколько интерфейсов:USB,IEE1394(fire-wire),ATA/SATA.

Исходя из вопроса, предполагается, что имеется некое хост устройство (ПК) и к нему подключается наш МК. МК при этом является гостевым устройством (device).

Подключить МК к ПК можно НАПРИМЕР через интерфейс USB. Для этого необходимUSBконтроллер либо внешний (в виде отдельной микросхемы), либо встроенный в МК. Пример внешнего контроллера, микросхемаFT2232RL, реализующая на ПК виртуальныйCOMпорт.

Также возможны связь ПК и МК через интерфейс USART.USARTконтроллеры встроены в большинство МК. Протоколы интерфейсовUARTиRS-232 схожи, интерфейсыотличаются лишь аппаратной реализацией (уровнями сигналов). Через микросхему интерфейсаRS-232 осуществляется связь с ПК. МК выводит данные черезUARTна микросхему, которая передает по интерфейсуRS-232 в компьютер.

Описание usart (из 8 вопроса)

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

Он имеет следующие основные особенности:

  • полно-дуплексная организация (независимые регистраторы последовательного приема и передачи);

  • синхронный и асинхронный режимы работы;

  • синхронизация как от ведущего, так и от ведомого устройства;

  • выбор скорости передачи информации в широких пределах;

  • поддержка кадров длиной 5—9 битов и 1 или 2 стоп-бита;

  • аппаратная поддержка генерации и проверки сигнала четности;

  • обнаружение переполнения данных; - обнаружение ошибок кадрирования;

  • низкоуровневая цифровая фильтрация и обнаружение ложного стопового бита;

  • три источника прерывания: «Передача завершена», «Регистр данных передатчика пуст», «Прием завершен»;

  • режим межпроцессорной связи;

  • двухскоростной режим асинхронной передачи

RxD-ввод данных,TxD– вывод данных,XCK–синхронизация.

Описание usb из лекций.

Для решения данной задачи необходимо применение специальных МК, снабженных USB-контроллером (например, МК АТmega32U4 фирмыAtmel).

Контроллер USBявляется необходимым оборудованием для обеспечения передачи информации по интерфейсуUSB.

ТочкаUSBможетработатьводномиз 4-хрежимов: controltransfers, bulkdatatransfers, isochronocs transfers, interrupts.

Управление USBконтроллером осуществляется из следующих регистров: UHWCON, USBCON, USBSTA, USBINT.

USBконтроллеру необходимо 48 МГц тактирование (для полноценной скорости передачи данных). Это обеспечивается подключением внешнего кварцевого резонатора например.

Общий формат пакета данных:

  • SYNK-преамбула

  • ID-указывает на то, что это за пакет

  • ADDR-адресвродеб (IN, OUT, SETUP)

  • № кадра – сколько в пакетах SOF

  • DATA – данные (до 1023 байт)

  • CRC – контрольные биты.

3 режимаскоростиUSB: low speed (1.5 Mbit/s), Full speed (12), High speed (480).

PLL–phaselockloop.

  1. Последовательное программирование

Флэш-память и ЭСППЗУ могут быть запрограммированы через последовательный интерфейс SPI. Последовательный интерфейс состоит из следующих сигналов: SCK, MOSI (вход) и MISO (выход). Для программирования МК, после подачи низкого уровня на вход RESET необходимо выполнить инструкцию разрешения программирования.

Расположение выводов последовательного программирования через SPI

Несмотря на то, что при последовательном программирования используется тот же модуль SPI, что и при обычной работы микроконтроллера, имеется одно важное отличие: выводы MOSI/MISO модуля ввода-вывода SPI, которые совмещены с PB2 и PB3, не используются при программировании. Вместо них используются PE0 и PE1 для ввода и вывода данных при последовательном программировании (см. табл. 128).

Таблица 128. Выводы интерфейса SPI при последовательном программировании

Обозначение

Вывод

Направление

Описание

MOSI (PDI)

PE0

ввод

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

MISO (PDO)

PE1

вывод

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

SCK

PB1

ввод

Синхронизация последовательной связи

Рисунок 144. Последовательное программирование и проверка(1)

Прим.:

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

  2. VCC - 0.3В< AVCC < VCC + 0.3В, но AVCC должен находится в пределах 2.7 - 5.5В.

Во время программирования ЭСППЗУ функция стирания выполняется автоматически (только в режиме последовательного программирования) и, поэтому, нет необходимости первоначально выполнять команду "Стирание кристалла". Выполнение команды "Стирание кристалла" приводит к заполнению памяти программ и ЭСППЗУ кодом $FF.

Алгоритм последовательного программирования через SPI

Во время последовательной записи в ATmega128 данные тактируется нарастающим фронтом SCK. Во время чтения данных из ATmega128 данные тактируются падающим фронтом SCK. Временная диаграмма представлена на рисунке ниже.

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

  1. Последовательность подачи питания: подать напряжение питания между VCC и GND, когда на входах RESET и SCK присутствует лог. 0. Пауза не менее 20 мс и разрешение последовательного программирования путем записи команды разрешения последовательного программирования через вход MOSI.

  2. блабла

  3. Флэш-память программируется постранично. Страница памяти загружается побайтно, при этом в инструкции "загрузки страницы памяти программ" указываются данные и адрес в семи младших разрядах. Чтобы гарантировать корректность загрузки страницы сначала необходимо записать младший байт, а затем старший байт данных по каждому адресу. Запись страницы памяти программ инициируется вводом инструкции "запись страницы памяти программ",

  4. Массив памяти ЭСППЗУ программируется побайтно, при этом, в инструкции записи указывается адрес и данные. Перед записью данных первоначально автоматически стирается адресуемая ячейка ЭСППЗУ.

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

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

  7. Последовательность снятия питания (при необходимости): установка RESET = "1", отключить питание VCC.

Рисунок 145. Осциллограммы сигналов последовательного программирования интерфейса SPI

Соседние файлы в папке 5.3.3 Микропроцессоры в электронно-вычислительных средствах