Лекция: Устройства ввода/вывода МК

МК AVR имеют развитую периферию:

§ Многофункциональные, двунаправленные GPIO порты ввода/вывода со встроенными подтягивающими резисторами. Конфигурация портов в/в задаётся программно.

§ В качестве источника тактовых импульсов может быть выбран:

§ кварцевый резонатор;

§ внешний тактовый сигнал;

§ внутренний RC-генератор (частота 1, 2, 4, 8 МГц).

§ Внутренняя Флеш-память команд до 256 KБ (не менее 10 000 циклов перезаписи).

§ Отладка программ осуществляется с помощью интерфейсов JTAG или debugWIRE:

§ сигналы JTAG (TMS, TDI, TDO, и TCK) мультиплексированы на порт ввода/вывода. Режим работы — JTAG или порт — задаётся соответствующим битом в регистре fuses. МК AVR поставляются с включённым интерфейсом JTAG.

§ Внутреннее EEPROM данных до 4 КБ (100 000 циклов).

§ Внутренняя SRAM до 8 KБ время доступа 1 такт.

§ Внешняя память объёмом до 64 КБ (Mega8515 и Mega162).

§ Таймеры c разрядностью 8, 16 бит.

§ ШИМ-модулятор (PWM) 8-, 9-, 10-, 16-битный.

§ Аналоговые компараторы.

§ АЦП (ADC) с дифференциальными входами, разрядность 10 бит (12 для XMEGA AVR):

§ программируемый коэффициент усиления перед АЦП 1, 10 и 200;

§ опорное напряжение 2,56 В.

§ Различные последовательные интерфейсы, включая:

§ двухпроводной интерфейс TWI, совместимый с I²C;

§ универсальный синхронно/асинхронный приёмопередатчик UART/USART;

§ синхронный последовательный порт Serial Peripheral Interface (SPI).

§ USB серия AT90USBxxxx.

§ CAN серия AT90CANxxx.

§ LCD серии ATmega169 и ATmega329.

§ Датчики температуры ATtiny25, ATtiny45, ATtiny85.

4.1 НАСТРОЙКА ПОРТОВ ВВОДА/ВЫВОДА

Для работы МК с внешними устройствами (клавиатура, светодиод, 8-

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

качестве входов или выходов. При подаче напряжения на МК или по сигналу #RESET все порты

автоматически настраиваются на ввод (в регистры направления портов

DDRx записаны нули), поэтому направление сигналов через некоторые

выводы портов необходимо переопределить. Для этого в соответствующие

портам регистры направления DDRx нужно записать единицы. Какие только языки программирования не используют

для составления AVR2программ! В Интернете имеются ссыл2

ки на Ассемблер, Ada, Basic, Cи, Forth и даже Pascal. Но на

практике чаще всего используют Ассемблер и Си. Первый из

них предпочтителен для создания критичных во времени про2

цедур, а второй – для быстрой разработки программ. Если

учесть, что в архитектуру AVR изначально были заложены принципы оптимизации Си2процедур, то альтернативы этому

алгоритмическому языку нет. Регистр данных portx фактически есть просто выходной буфер, все, что в него записывается, тут же оказывается на выходе. Но если установить вывод порта на вход (то есть записать в регистр направления ddrx логический ноль), как это сделано по умолчанию, то регистр данных portx будет играть несколько иную роль — установка его разрядов в ноль означает, что вход находится в третьем состоянии с высоким сопротивлением, а установка в единицу подключит к выводу «подтягивающий» (pull-up) резистор сопротив­лением 35—120 кОм.

Вопрос-24

Таймеры-счетчики

в большинстве МК AVR присутствуют два или три таймера-счетчика, один из которых— 16 разрядный, а остальные— 8-разрядные (в старших моде­лях Mega общее число счетчиков может быть до 6).. В целом устройство таймеров в МК, похоже на счетчики 561HEU/14, только функциональность их значительно расширена. При использовании счетчиков-таймеров, как обычных счетчиков внешних импульсов (причем возможна реакция как по спаду, так и по фронту импуль­са) частота подсчитываемых импульсов не должна превышать половины час­тоты тактового генератора МК (причем при несимметричном внешнем меан­дре инструкция рекомендует еще меньшее значение предельной частоты — 0,4 от тактовой). Это обусловлено тем, что при счете внешних импульсов их фронты обнаруживаются синхронно (в моменты положительного перепада тактового сигнала). Кроме того, стоит учитывать, что задержка обновления содержимого счетчика после прихода внешнего импульса может составлять до 2,5 периода тактовой частоты. Все счетчики-таймеры могут работать в т. н. режимах PWM, то есть в качест­ве 8-, 9-, 10- или 16-битных широтно-импульсных модуляторов (ШИМ), при­чем независимо друг от друга, что позволяет реализовать многоканальный ШИМ. Кроме таймеров-счетчиков, во всех без исключения AVR-контроллерах есть сторожевой (Watchdog) таймер. Он предназначен в основном для вывода МК из режима энергосбережения через определенный интервал времени, но мо­жет использоваться и для аварийного перезапуска МК. Например, если рабо­та программы зависит от прихода внешних сигналов, то при их потере (на­пример, из-за обрыва на линии) МК может «повиснуть», а Watchdog-таймер выведет его из этого состояния.

ШИМ — это широко используемый в электронике способ регулировки мощности самых разнообразных устройств. Где он только не нашел еще применения! Способ заключается в кратковременном включении устройства (на доли миллисекунд), а затем его отключении на некоторый момент времени. Такой цикл включений-выключений непрерывно повторяется. Существуют два режима работы таймера в качестве ШИМ-модулятора. Это Fast PWM (быстрая ШИМ) и Phase correct PWM (ШИМ с фазовой коррекцией). Рассмотрим оба режима на следующих диаграммах:

Режим работы определяется содержимым битов WGM (Waveform Generation Mode) в регистре TCCR2

Вопрос-25

МК – микросхема, внутреннее содержимое которой, фактически, мы создаем сами. Что позволяет, купив несколько совершенно одинаковых МК, собрать на них совершенно разные схемы и устройства. Если вам захочется внести какие-либо изменения в работу электронного устройства, то не нужно будет использовать паяльник, достаточно будет лишь перепрограммировать МК. При этом не нужно даже вынимать его из вашего дивайса, если вы используете AVR, т. к. эти МК поддерживают внутрисхемное программирование. Таким образом, микроконтроллеры ликвидируют разрыв между программированием и электроникой. Интерпретация — это последовательный перевод языковых конструкций из символов латинского алфавита (и прочих, специальных) в машинные инструкции по мере их ввода. Простейший процесс интерпретации — это ввод директив в командной оболочке (почему она часто называется также командным интерпретатором), а также обработка ее сценариев — наборов элементарных команд. Процесс интерпретации выполняется каждый раз при исполнении программы. И, соответственно, каждый раз время затрачивается на выполнение одних и тех же процедур. Так что возникает резонный вопрос — а нельзя ли оттранслировать исходник программы в машинные инструкции раз и навсегда, и в дальнейшем запускать на исполнение уже набор таких инструкций, не затрачивая время на их преобразование? можно. И процедура эта называется компиляцией, а выполняющие ее программы — компиляторами. В ходе этой процедуры из исходного текстового файла по определенным правилам образуется файл бинарный, образованный, если просмотреть его в текстовом редакторе, последовательностью неудобопонятных символов. И — пригодный для автономного исполнения, для чего необходимости в породившем его компиляторе уже нет.

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

  • конфигурирование;
  • собственно сборку;
  • инсталляцию.

Конфигурирование — это приведение программы в соответствие с реалиями конкретной системы.За конфигурирование обычно отвечает сценарий, расположенный в корне дерева исходников данной программы и, по соглашению, носящий имя configure. Что именно делает конкретный конфигурационный скрипт — сугубо на совести разработчика программы. Как минимум, он обязан проверять жесткие зависимости устанавливаемого пакета и, при их нарушении, выдавать соответствующие сообщения. Кроме того, он может обеспечивать также подключение дополнительных функций — при наличии определенных условий, то есть удовлетворении зависимостей «мягких».Если процесс конфигурирования завершается успешно, в корне дерева каталогов создается специальный файл -Makefile, в котором и фиксируются все предусмотренные разработчиком настройки, выступающие в качестве директив на следующем этапе.

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

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

И потому вторая стадия — это связывание (linking, в просторечии именуемое линковкой) сгенерированного кода с необходимыми библиотечными фрагментами. Линковка может быть двух видов — статическая и динамическая. В первом случае требуемый код из библиотеки встраивается внутрь собираемой программы, после чего получается готовый к исполнению бинарный файл, более в библиотеке не нуждающийся. Это — именно тот случай, когда понятия depends и rdepends приобретают разное значение: первое оказывается шире.

Второй случай — динамической линковки, — предполагает, что библиотечный код не встраивается в программу: вместо него устанавливается только ссылка на файл библиотеки и требуемую функцию

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

вопрос-26

PCI (Peripheral Component Interconnect bus) — шина для подсоединения периферийных устройств. Стала массово применяться для Pentium-систем, но используется и с 486 процессорами. Частота шины от 20 до 33 МГц, теоретически максимальная скорость 132/264 Мбайт/с для 32/64 бит. В современных материнских платах частота на шине PCI задается как 1/2 входной частоты процессора, т.е при частоте 66 MHz на PCI будет 33 MHz, при 75 MHz — 37.5 MHz. Шина PCI — первая шина в архитектуре IBM PC, которая не привязана к этой архитектуре. Она является процессорно-независимой и применяется, например, в компьютерах Macintosh. В отличие от остальных шин, компоненты расположены на левой поверхности плат PCI-адаптеров. По этой причине крайний PCI-слот обычно разделяет использование посадочного места с соседним ISA-слотом (Shared slot). Стандарт PCI определяет для каждого слота конфигурационное пространство размером до 256 восьмибитных регистров, не приписанных ни к пространству памяти, ни к пространству ввода-вывода. На PCI определены два основных вида устройств — инициатор (по ГОСТ — задатчик), т.е. устройство, получившее от арбитра шины разрешение на захват ее и устройство назначения, цель (target) с которым инициатор выполняет цикл обмена данными. Временные диаграммы шины PCI


_______ _________
FRAME |_________________________________|

______ _______ ______ ______ ______
AD -------<______><_______><______><______><______>---
Адрес Данные1 Данные2 Данные3 Данные4

______ _______________________________
C/BE -------<______><_______________________________>---
Команда Сигнал разрешения передачи байта

____________ ___
IRDY |_________________________________|

_____________ ___
TRDY |________________________________|

______________ ___
DEVSEL |_______________________________|

Цикл передачи данных на PCI, включает 4 фазы передачи данных, без тактов ожидания. Данные передаются по переднему фронту сигнала CLK.

Шины расширения (Expansion Bus) являются средствами подключения систем­ного уровня: они позволяют адаптерам и контроллерам непосредственно исполь­зовать системные ресурсы PC — пространства памяти и ввода-вывода, прерыва­ния, каналы прямого доступа к памяти. Шина ISA из настольных компьютеров уходит, но она сохраняет свои позиции в промышленных и встраиваемых компьютерах, как в традицион­ном слотовом варианте, так и в «бутербродном» варианте РС/104. Изготовителям карт расширения приходится точно следовать протоколам шины, включая жесткие частотные и нагрузочные параметры, а также временные диа­граммы. Отклонения приводят к несовместимости с некоторыми системными пла­тами. Следует также учитывать огра­ниченность ресурсов PC. Самые дефицитные из них — линии запросов прерываний; проблема прерываний, известная по шине ISA, так и не была радикально решена с переходом на PCI. Другой дефицит — каналы прямого доступа шины ISA, исполь­зуемые и для прямого управления шиной, — в шине PCI преодолен. Доступное адресное пространство памяти и портов ввода-вывода, в котором было тесновато абонентам шины ISA, в PCI существенно расширено. Для шины ISA выпущено (и продолжает выпускаться) огромное количество разно­образных карт расширения. В каждый момент времени шиной может управлять только одно устройство-задати-чик, обращающееся к ресурсам (портам или ячейкам памяти) устройств-исполните­лей. Шина ISA обеспечивает возможность обращения к 8- или 16-битным регист­рам устройств, отображенным на пространства ввода-вывода и памяти.

Рис. 6.2. Временные диаграммы циклов чтения или записи на шине ISA

В начале каждого цикла контроллер шины устанавливает адрес обращения: на линиях SA[19:0] и SBHE# действительный адрес сохраняется на время всего теку­щего цикла; на линиях 1_А[23:17] адрес действителен только в начале цикла, так что требуется его «защелкивание». Каждое устройство имеет дешифратор адре­са — комбинационную схему, срабатывающую только тогда, когда на шине при­сутствует адрес, относящийся к данному устройству.

Вопрос-27

Операнды команд будем обозначать следующим (стандартным) способом:

Rd регистр — приемник, место, куда сохраняется результат выполнения команды
Rs регистр — источник в двухоперандных командах. Его значение после выполнения команды не изменяется.
I/O регистр ввода-вывода, или периферия. Это порты, таймеры и т.д.
K 8-ми разрядная константа в операциях со «старшими» регистрами общего назначения (R16-R31)
b Номер бита в операциях с регистрами ввода-вывода
A 16-ти разрядный адрес при работе с памятью данных
q 6-ти разрядное смещение при работе с памятью данных
X Регистровая пара X. Состоит их регистров XL (R26) и XH (R27)
Y Регистровая пара Y. Состоит их регистров YL (R28) и YH (R29)
Z Регистровая пара Z. Состоит их регистров ZL (R30) и ZH (R31)

команды передачи данныхLD и LDD, которые обеспечивают пересылку данных из памяти данных в регистр общего назначения. Естественно, что для каждой команды LD и LDD имеется «обратная» ей команда — записи в память данных из регистра. Эти команды имеют мнемоники соотвественно ST и STD (store).

арифметические и логические команды.

команды — ветвления, то есть передача управления по условию. Передача управления возможна на 64 слова назад или 63 слова вперед относительно текущего счетчика команд. Если необходим переход на большее расстояние, используют пару команд с противоположным условием:

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

Далее следуют 16 команд установки или сброса битов признаков SREG. Я не буду всех их описывать, тут все ясно из мнемоники — SEC — Set C — установить признак C в единицу, CLC — Clear C — в ноль. Но для порядка все-таки их перечислим. И опять посожалеем, что нет команд их инверсии…
SEC CLC SEN CLN SEZ CLZ SEI CLI
SES CLS SEV CLV SET CLT SEH CLH
Вот мы и подошли к концу. Осталось описать три специфические команды…
NOP Пустая операция. Не делает ничего, кроме того, что занимает один такт процессора. Имеет код операции 0x000, что дает возможность «забить» ею любую другую команду без стирания всей программы (подробнее об этом чуть позже)
SLEEP Перевод процессора в режим пониженного энергопотребления.
WDR Сброс сторожевого таймера.

Вопрос-28

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

  • память (запоминающее устройство, ЗУ), состоящую из перенумерованных ячеек;
  • процессор, включающий в себя устройство управления (УУ) и арифметико-логическое устройство (АЛУ);
  • устройство ввода;
  • устройство вывода.

Эти устройства соединены каналами связи, по которым передается информация.

Клавиатура компьютера — устройство для ввода информации в компьютер и подачи управляющих сигналов. Содержит стандартный набор клавиш печатной машинки и некоторые дополнительные клавиши — управляющие и функциональные клавиши, клавиши управления курсором и малую цифровую клавиатуру.

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

Наиболее распространена сегодня клавиатура c раскладкой клавиш QWERTY (читается «кверти»), названная так по клавишам, расположенным в верхнем левом ряду алфавитно-цифровой части клавиатуры: Такая клавиатура имеет 12 функциональных клавиш, расположенных вдоль верхнего края. Нажатие функциональной клавиши приводит к посылке в компьютер не одного символа, а целой совокупности символов. Функциональные клавиши могут программироваться пользователем. Например, во многих программах для получения помощи (подсказки) задействована клавиша F1, а для выхода из программы — клавиша F10. Клавиатура содержит встроенный микроконтроллер (местное устройство управления), Клавиатура имеет встроенный буфер — промежуточную память малого размера, куда помещаются введённые символы.

Монитор — устройство визуального отображения информации (в виде текста, таблиц, рисунков, чертежей и др.).


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

Принтер — печатающее устройство. Осуществляет вывод из компьютера закодированной информации в виде печатных копий текста или графики.

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

еще рефераты
Еще работы по информатике