Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответі на єкзамен Мпп.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
2.66 Mб
Скачать
  1. Основні архітектури 8-бітних мікропроцесорних пристроїв.

Обобщенная структура микропроцессорного устройства (МПУ) показана на рис. 1.1 Для выполнения основной функции процессорного ядра – производить вычисления в любом МПУ есть блок АЛУ (арифметико-логическое устройство), для хранения обрабатываемых данный служат регистры общего назначения (R0, R1…Rn) которые могут быть объединены в регистровый файл. Их разрядность обычно совпадает с разрядностью шины данных, а количество зависит от конкретной реализации. Старшие регистры могут образовывать пары и в некоторых операциях использоваться как регистры удвоенной разрядности. Так же имеются регистры специального назначения: указатель стека (SP), регистр признаков (PS) и регистр счетчика команд. PC. Разрядность этих регистров зависит от сложности ядра МПУ. Так же в ядро входят мультиплексоры, буферы, триггеры и другие служебные узлы. Работа всех узлов синхронизируется общим внешним тактовым сигналом процессора. Для формирования управляющих сигналов для выполнения операций согласно коду поступившей инструкции служит декодер инструкций (декодер на рис. 1.1). Эти блоки - необходимый минимум для реализации ядра МПУ, а их набор и выполняемые функции могут широко варьироваться в зависимости от конкретной архитектуры.

Рисунок 1.1

Для обмена информацией с внешним миром и получением инструкций ядро МПУ использует внешние шины.

Для решения задач автоматизации микропроцессоры используются с большим количеством вспомогательных - периферийных устройств. Разработчики и производители МПУ при появлении технической/технологической возможности интегрируют в одно устройство максимальное количество таких блоков. Это привело к появлению не только высоко интегрированных микроконтроллеров, но и целых систем на кристалле (СнК, SoC). Эти микропроцессорные устройства содержат в одном корпусе всю систему, необходимую для решения ряда разнородных задач.

Набор периферийных блоков может варьироваться в зависимости от специализации МПУ. Для микроконтроллеров общего назначения наличие таймеров является обязательным, так как практически любой алгоритм управления требует отсчета временных интервалов. Для обмена информацией с другими устройствами в составе сложной системы МПУ имеют набор устройств ввода/вывода. Они могут поддерживать разнообразные протоколы связи, а сложность их организации часто соизмерима с процессорным ядром. С развитием технологий изготовления интегральных схем стало возможным на одном кристалле с цифровым устройством расположить и аналоговые – работающие с непрерывными сигналами. Многие МПУ стали поддерживать работу со смешанными сигналами, то есть как с дискретными, так и с непрерывными. Разработчики и производители МПУ ведут постоянную работу по интеграции в одной микросхеме максимального количества периферийных устройств.

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

Рисунок 2.1

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

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

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

  1. Будова ядра мікроконтролера Atmel AVR.

  1. Функції. Угода про виклики функцій.

Соглашение вызова определяет следующие особенности процесса использования подпрограмм:

Расположение входных параметров подпрограммы и возвращаемых ею значений. Наиболее распространённые варианты:

  • В регистрах.

  • В стеке.

  • В регистрах и стеке.

Порядок передачи параметров. При использовании для параметров стека определяет, в каком порядке параметры должны быть помещены в стек, при использовании регистров — порядок сопоставления параметров и регистров. Варианты:

  • прямой порядок — параметры размещаются в том же порядке, в котором они перечислены в описании подпрограммы. Преимущество — единообразие кода и записи на языке высокого уровня;

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

Кто возвращает указатель стека на исходную позицию:

  • вызываемая подпрограмма — это сокращает объём команд, необходимых для вызова подпрограммы, поскольку команды восстановления указателя стека записываются только один раз, в конце подпрограммы;

  • вызывающая программа — в этом случае вызов становится сложнее, но облегчается использование подпрограмм с переменным количеством и типом параметров.

Какой командой вызывать подпрограмму и какой — возвращаться в основную программу. Например, в стандартном режиме x86 подпрограмму можно вызвать через call near, call far и pushf/call far (для возврата применяются соответственно retn, retf, iret).

Содержимое каких регистров процессора подпрограмма обязана восстановить перед возвратом.

Соглашения вызова зависят от архитектуры целевой машины и компилятора.

  1. Організація обробки переривань на мові Асемблера.

  1. Звертання до 16-бітних регістрів мікроконтролера Atmel AVR

  1. Директиви асемблеру Atmel AVR. Приклади використання.

  1. Інтерфейс зв’язку USB.

Интерфейс USB в микроконтроллерных устройствах часто применяется для связи с персональным компьютером. Разработка спецификаций на шину USB производится в рамках международной некоммерческой организации USB Implementers Forum (USB-IF).

Пропускная способность шины, соответствующей спецификации USB 1.1, составляет 12 Мбит/с. Спецификация USB 2.0 определяет шину с пропускной способностью 480 Мбит/с. Существует три режима передачи данных: низкоскоростной (LS, Low-speed), полноскоростной (FS, Full-speed), высокоскоростной (HS, High-speed, только для USB 2.0). Согласно спецификации USB, к одному разъему можно подключить до 127 устройств, но накладываются ограничения пропускной способности и мощность шины USB. Полоса пропускания делится между всеми устройствами, подключенными к шине. Ограничение мощности актуально для устройств, которые берут питание непосредственно от шины.

Шина USB состоит из следующих элементов. Хост-контроллер (Host Controller) — это главный контроллер, управляющий работой всех устройств на шине, допускается наличие только одного хост-контроллера. Устройство (Device) может представлять собой хаб, функцию или их комбинацию (Compound Device). Порт (Port) — это точка подключения устройств на шине. Хаб (Hub — концентратор) — устройство, которое обеспечивает дополнительные порты на шине USB. Корневой хаб (Root Hub) — это хаб, входящий в состав хоста. Функция (Function) — это устройство или его отдельный блок, способный передавать и принимать информацию по шине USB. Каждая функция предоставляет конфигурационную информацию, описывающую её возможности и требования к ресурсам. Перед использованием функция должна быть сконфигурирована хостом — ей должна быть выделена полоса в канале и выбраны опции конфигурации. Логическое устройство (logical device) USB представляет собой набор конечных точек.

Физическая архитектура USB-шины определяется основным правилом: все устройства подключаются к хосту либо непосредственно через порт, либо через хаб (рис. 4.19). При этом к каждому порту хаба может подключаться периферийное устройство или другой хаб. Допускается до 5 уровней каскадирования хабов.

Рисунок 4.19

Логическая архитектура выглядит как звезда, центром которой является прикладное ПО, а вершинами — набор конечных точек (рис. 4.20). Набор независимых конечных точек с которыми ПО обменивается информацией образуют логическое устройство USB. Каждому логическому устройству USB (как функции, так и хабу) назначается свой адрес (1—127), уникальный на данной шине USB. Каждая конечная точка логического устройства идентифицируется своим номером (0—15) и направлением передачи (IN — передача к хосту, OUT — от хоста). Прикладная программа ведет обмен информацией с каждой конечной точкой.

Рисунок 4.20

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

Для предотвращения ошибочных соединений все устройства, работающие с шиной USВ могут использовать только три типа разъемов: "А", "В" и "Mini-B". Разъемы "А" (рис. 4.21а) используются в хостах и хабах, разъемы "В" (рис. 4.21.б) используют "ведомые" устройства, а разъемы "mini-В" (рис. 4.21в) позиционируются для применения в малогабаритных мобильных устройствах.

Рисунок 4.21

Конструктивно разъемы выполнены так, что сначала происходит соединение шины питания, потом шины данных. Спецификация USB определяет стандартную цветовую гамму для проводников внутри USB-кабеля. Кабель также имеет линии VBus и GND для передачи питающего напряжения 5 В к устройствам и сигнальные линии D+ и D-. Эта информация отражена в табл. 4.4.

Таблица 4.4

Номер контакта

Цвет

Описание

1

Красный

+5 В, питание

2

Белый

D-, данные "минус"

3

Зеленый

D+, данные "плюс"

4

Черный

GND, земля

Корпус

Медная оплетка

Экран

Информационные сигналы и питающее напряжение 5 В передаются по четырехжильному кабелю. Для передачи данных по шине используется дифференциальный способ передачи сигналов D+ и D- по двум проводам. Сигналы синхронизации и данные кодируются по методу NRZI. В этой кодировке логическая "1" представлена неизменным уровнем на протяжении битового интервала, а логический 0 представляет собой смену уровня на противоположный на протяжении битового интервала.

В низкоскоростных, полноскоростных устройствах дифференциальная "1" передается путем подтяжки линии D+ к напряжению более 2,8 В, а линии D- к напряжению менее 0,3 В. Скорость, используемая устройством, подключенным к конкретному порту, определяется по уровням сигналов D+ и D-, смещаемых нагрузочными резисторами приемопередатчиков, а для HS-устройств определяется на этапе конфигурирования. Более того, эти резисторы так же служат для уведомления хоста или хаба о том, что к шине USB подключено новое устройство. Дифференциальный "0" передается путем подтяжки линии D+ к напряжению менее 0,3 В, а линии D- к напряжению более 2,8 В. Кроме дифференциального приемника каждое устройство имеет линейные приемники сигналов D+ и D-. Это позволяет различать более двух состояний линии, используемых для организации аппаратного интерфейса. Интерфейс определяет следующие состояния: Data J State и Data К State - состояния передаваемого бита; Idle State - состояние паузы на шине; Resume State - сигнал "пробуждения" для вывода устройства из "спящего" режима; Start of Packet (SOP) - начало пакета; End of Packet (ЕОР) - конец пакета; Disconnect - устройство отключено от порта; Connect - устройство подключено к порту; Reset - сброс устройства.

Спецификация USB жестко оговаривает условия питания устройств, подключенных к шине. В зависимости от принципа питания можно выделяются три класса USB-устройств: с питанием от шины (Bus Powered Devices) и малым потреблением (не более 100 мА); с питанием от шины и большим потреблением (не более 500 мА); с собственным источником питания (Self Powered Devices) - основную мощность потребляют от собственного блока питания, а от шины не более 100 мА, а.

Все операции по передаче данных по шине USB инициируются хостом. Периферийные устройства сами начать обмен данными не могут, а только реагируют на команды хоста. Хост-контроллер интерфейса шины USB по методу NRZI формирует кадры. Каждый кадр состоит из наиболее приоритетных посылок, состав которых формирует ПО хоста. Каждая передача состоит из одной или нескольких транзакций в свою очередь состоящая из пакетов. Каждый пакет содержит идентификатор, данные и контрольную сумму. Упрощенная схема показана на рис. 4.22.

Рисунок 4.22

Спецификация шины определяет четыре различных типа передачи (transfer type) данных для конечных точек:

управляющие передачи (Control Transfers) - используются хостом для конфигурирования устройства во время подключения, для управления устройством и получения статусной информации в процессе работы. Протокол обеспечивает гарантированную доставку таких посылок. Длина поля данных управляющей посылки не может превышать 64 байт на полной скорости и 8 байт на низкой. Для таких посылок хост гарантированно выделяет 10% полосы пропускания.

передачи массивов данных (Bulk Data Transfers) - применяются при необходимости обеспечения гарантированной доставки данных от хоста к функции или от функции к хосту, но время доставки не ограничено. Такая передача занимает всю доступную полосу пропускания шины. Пакеты имеют поле данных размером 8, 16, 32 или 64 байт. Приоритет у таких передач самый низкий, они могут приостанавливаться при большой загрузке шины. Допускаются только на полной скорости передачи.

передачи по прерываниям (Interrupt Transfers) - используются в том случае, когда требуется передавать одиночные пакеты данных небольшого размера. Каждый пакет требуется передать за ограниченное время. Операции передачи носят спонтанный характер и должны обслуживаться не медленнее, чем того требует устройство. Поле данных может содержать до 64 байт на полной скорости и до 8 байт на низкой. Предел времени обслуживания устанавливается в диапазоне 1—255 мс для полной скорости и 10—255 мс — для низкой.

изохронные передачи (Isochronous Transfers) - применяются для обмена данными в "реальном времени", когда на каждом временном интервале требуется передавать строго определенное количество данных, но доставка информации не гарантирована. Такие передачи занимают предварительно согласованную часть пропускной способности шины и имеют заданную задержку доставки.

Контроллер циклически (с периодом 1,0 ± 0,0005 мс) формирует кадры (frames), в которые укладываются все запланированные передачи (рис.4.23).

Рис. 4.23 Поток кадров USB

Каждый кадр начинается с посылки пакета-маркера SOF, который является синхронизирующим сигналом для всех устройств. В конце каждого кадра выделяется интервал времени EOF. В режиме высокоскоростной передачи пакеты SOF передаются в начале каждого микрокадра (период 125 ± 0,0625 мкс). Хост планирует загрузку кадров так, чтобы в них всегда находилось место для наиболее приоритетных передач, а свободное место кадров заполняется низкоприоритетными передачами больших объемов данных. Каждый кадр имеет свой номер циклически увеличивающийся во время EOF. В каждом кадре может быть выполнено несколько транзакций.

Логическое соединение между конечной точкой устройства и ПО хоста образуют канал (pipe) (рис.4.24).

Рисунок 4.24

Существует две модели каналов:

потоковый канал (поток, streaming pipe) - это канал для передачи данных, структура которых определяется клиентским ПО. Поток всегда однонаправленный. Один и тот же номер конечной точки может использоваться для двух разных потоковых каналов - ввода и вывода.

канал сообщений (message pipe или control pipe) - это канал для передачи данных, структура которых определяется спецификацией USB. Каналы этого типа двунаправленные и применяются для передачи управляющих посылок. Каналы сообщений строго синхронизированы - нельзя начинать передачу нового сообщения, пока не завершена обработка предыдущего. Полоса пропускания шины делится между всеми установленными каналами. Выделенная полоса закрепляется за каналом, и если установление нового канала требует такой полосы, которая не списывается в уже существующее распределение, запрос на выделение канала отвергается. Канал сообщений, связанный с нулевой конечной точкой, называется основным каналом сообщений (Default Control Pipe или Control Pipe 0), а остальные каналы (клиентские каналы, Client Pipe) создаются в процессе конфигурирования устройства. Их владельцами являются драйверы устройств. По клиентским каналам могут передаваться как потоки, так и сообщения с помощью любых типов передач.

Маркер транзакции отмечает начало очередной транзакции на шине USB и позволяет адресовать до 127 функций USB (нулевой адрес используется для конфигурирования) и по 16 конечных точек в каждой функции. Поле данных пакета SOF (рис. 4.25) содержит номер кадра, циклический контрольный код:

Рисунок 4.25

Пакет SOF используется для отметки начала кадра. Хотя хост-контроллер оперирует 32-битным счетчиком кадров, в маркере SOF передаются только младшие 11 бит.

Информация по каналу передается в виде пакетов (Packet, рис. 4.26).

Рисунок 4.26

Каждый пакет начинается с поля синхронизации SYNC (SYNChronization), за которым следует идентификатор пакета PID (Packet IDentifier), значения которого приведены в спецификации шины USB. Поле Check представляет собой побитовую инверсию PID. Два младших бита идентификатора определяют группу, к которой принадлежит пакет.

В поле данных пакетов может содержаться от 0 до 1023 байт данных, за которыми следует 16-разрядный циклический контрольный код, вычисленный по полю Data (рис. 4.27.).

Рисунок 4.27

Пакет данных всегда должен посылать целое число байт. Для режима LS максимальный 1 размер пакета равен 8 байтам, для FS — 1023 байта, а для HS — 1024 байта.

Протокол USB использует циклический избыточный код (CRC, Cyclic Redundancy Checksums) для защиты полей пакета. CRC-контроль является более мощным методом обнаружения ошибок и используется для обнаружения ошибок на уровне блоков данных. Он основан на делении и умножении многочленов.

Любое устройство с интерфейсом USB имеет конечную точку с нулевым номером (Endpoint Zero). Эта точка позволяет хосту опрашивать устройство с целью определения его типа и параметров, выполнять инициализацию и конфигурирование устройства. Нулевая точка устройства доступна после того, как устройство подключено к шине, включено и получило сигнал сброса по шине (bus reset). Кроме нулевой точки, устройства имеют дополнительные конечные точки, которые используются для обмена данными с хостом. Дополнительные точки могут работать либо только на прием данных от хоста (входные точки, IN), либо только на передачу данных хосту (выходные точки, OUT). Эти точки после включения питания или сброса находятся в неопределенном состоянии и недоступны для работы до тех пор, пока хост не выполнит процедуру конфигурирования устройства.

  1. Типи даних та їх розміщення в пам’яті мікроконтролера.

  1. Організація циклів на мові Сі. Приклади використання.

  1. Універсальний асинхронний приймач-передавач. Протокол зв’язку RS-422.

Универсальный асинхронный приёмопередатчик (УАПП, англ. Universal Asynchronous Receiver-Transmitter (UART)) — узел вычислительных устройств, предназначенный для связи с другими цифровыми устройствами. Преобразует заданный набор данных в последовательный вид так, чтобы было возможно передать их по однопроводной цифровой линии другому аналогичному устройству. При этом интервалы времени между передаваемыми блоками данных не являются постоянными: блоки данных выделяются с помощью стартовых и стоповых битов (Асинхронная передача данных). Метод преобразования хорошо стандартизован и широко применялся в компьютерной технике

При асинхронной последовательной связи одно из устройств посылает или принимает байты информации по одному биту. Интервалы времени между байтами при этом несущественны, но времена между отдельными битами байта очень важны. Сигнал на линии может быть высокого или низкого уровня, что соответствует логическим нулю (SPACE) и единице (MARK). Линия поддерживается в отмеченном состоянии, когда по ней нет передачи данных. При начале передачи байта данных сигнал падает в 0, отмечая стартовый бит. Затем следуют биты данных (от 5 до 8) в виде набора высоких и низких уровней. Последний бит данных может сопровождаться битом четности, используемым для обнаружения ошибок, а затем в последовательность включаются один или более стоп-битов, которым соответствует высокий уровень. Эти стоп-биты начинают отмеченное состояние, которое будет сохраняться до тех пор, пока не начнется передача следующего байта данных. Число используемых стоп-битов существенно, поскольку они устанавливают минимальное время, которое должно пройти перед следующим стартовым битом (рис. 4.2).

Рисунок 4.2

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

Один из основных недостатков стандарта RS-232 - плохая помехозащищенность и, соответственно, короткие линии передачи.

Стандарт RS-422A (другое название ITU-T V. 11) определяет электрические характеристики симметричного цифрового интерфейса. Он предусматривает работу на более высоких скоростях (до 10 Мбит/с) и больших расстояниях (до 1000 м). Для его практической реализации, в отличие от RS-232, требуются два физических провода на каждый сигнал. Реализация симметричных цепей обеспечивает наилучшие выходные характеристики.

Данный стандарт является простым описанием электрических характеристик интерфейса и не определяет параметры сигналов, типы разъемов и протоколы управления передачей данных. Для линий интерфейса RS-422A могут быть использованы различные проводники (или пары проводников) одного и того же кабеля.

Стандарт RS-422A несовместим с RS-232, и взаимодействие между ними может быть обеспечено только при помощи специального интерфейсного конвертера. Практически это полнодуплексный протокол RS-485. Прием и передача идут по двум отдельным парам проводов, причем на каждой паре может быть только по одному передатчику.