Микропроцессорное устройство

Тип работы:
Реферат
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Содержание

  • 1. Обоснование структурной схемы устройства
  • 2. Центральный процессорный модуль
  • 3. Блок памяти
  • 4. Дешифратор адреса ОЗУ/ПЗУ
  • 5. Дешифратор внешних устройств
  • 6. Блок ввода аналоговых данных
  • 7. Интерфейсный блок
  • 8. Контроллер ПДП
  • 9. Блок отображения информации и блок вывода результата
  • 10. Листинг программы
  • Заключение
  • Список литературы

1. Обоснование структурной схемы устройства

Всякая микропроцессорная система, строится по модульному принципу с шинной организацией связей между блоками. Работа проектируемого контроллера происходит следующим образом. Сигналы с входных датчиков попадают на аналоговый коммутатор (АК). Там они поочередно передаются на АЦП — аналогово-цифровой преобразователь, который преобразует аналоговый сигнал в цифровой. Управление аналоговым коммутатором и АЦП производится посредством схемы логического управления БУ 1.

ЦПМ производит все вычисления и управляет работой контроллера, формируя управляющие сигналы. Бок памяти (ОЗУ и ПЗУ) предназначен для хранения информации. Управление памятью производится посредством схемы управления БУ 2. Она представляет собой дешифратор адресов.

Индикация данных производится с помощью блока БОИ. Он состоит из семисегментных индикаторов и регистров, предназначенных для хранения данных индикации.

Порядок управления БОИ определяет схема управления внешними устройствами БУ 3. Она представляет собой дешифратор адресов внешних устройств и схему управления.

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

Рис. 1 — Структурная схема проектируемого контроллера.

2. Центральный процессорный модуль

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

В состав центрального процессорного модуля (ЦПМ) входят процессор КР1821ВМ85А, два буферных регистра КР580ИР82, двунаправленный шинный формирователь КР580ВА86, мультиплексор К555КП11, внешний резонатор, схема формирования сброса.

Микропроцессор КР1821ВМ85А имеет совмещенные шину данных и шину адреса. Для разделения сигналов этих шин применяются буферные регистры. Появление в первом такте машинного цикла на шине А15-А8 старшего байта адреса, а на шине AD7-AD0 — младшего, стробируется сигналом процессора ALE, который используется для разрешения записи в регистры. При передаче по шине AD7-AD0 данных этот сигнал отсутствует. Таким образом, в регистрах будет записан адрес, а данные будут передаваться через шинный формирователь. К тому же, регистры и шинный формирователь выполняют функцию увеличения нагрузочной способности ЦПМ (32 мА/вывод).

Мультиплексор преобразует сигналы процессора в сигналы чтения/записи памяти и внешних устройств — MEMR, MEMW, I/OR, I/OW.

Именно от выбора процессора зависит быстродействие системы в целом, точность обработки данных, а также удобство разработки программного обеспечения для всего контроллера. Оптимальным для разрабатываемого курсового проекта будет микропроцессор КР1821ВМ85А, преимуществами которого являются:

— низкая стоимость;

— ориентировка на работу в составе микроконтроллеров;

— программная совместимость с микропроцессором КР580ВМ80А;

— наличие одного источника питания +5В;

— наличие встроенного генератора тактовых импульсов;

— встроенный системный контроллер;

— встроенный контроллер прерывания.

Для стабилизации частоты системного генератора к выводам Х1 и Х2 БИС КР1821ВМ85А подключают кварцевый резонатор с номинальной частотой 18 500кГц. При этом длительность машинного такта будет равна 0,486 мкс. Конденсатор С1 — подстроечный и используется для регулировки частоты системного генератора в небольших пределах. Цепочка R1C2 служит для кратковременного формирования импульса с отрицательным передним фронтом длительностью не менее 1,5 мкс (3 машинных такта). При принятии постоянной времени цепочки R1C2 = 10 мкс, R1 = 10 кОм, а С2 = 1000 пФ. Принцип работы формирования схемы сброса состоит в следующем. В нормальном состоянии С2 заряжен и вход БИС КР1821ВМ85А RESETIN через резистор R1 соединен с источником питания +5 В, что держит на нем «логическую единицу». При замыкании переключателя S, конденсатор С2 разряжается на корпус. При размыкании переключателя начинается зарядка конденсатора, а вход RESI БИС КР1821ВМ85А оказывается при этом замкнутым на корпус, что соответствует состоянию «логического нуля». По окончанию зарядки, на входе RESETIN вновь устанавливается «логическая единица».

Рис. 2 — Назначение выводов ЦПМ.

3. Блок памяти

Память контроллера необходима для хранения констант, промежуточных данных, кода управляющей программы, результатов вычислений. В состав блоков памяти в проектируемом устройстве входят постоянное запоминающее устройство (ПЗУ) и оперативное запоминающее устройство (ОЗУ). В ПЗУ хранится код программы, в ОЗУ — входные переменные, промежуточные данные, результат вычислений. Для нормального функционирования проектируемого контроллера достаточно небольшого объема ПЗУ, поэтому целесообразно использовать ПЗУ 2764A (Intel) объёмом 64 Кбайт (8K x 8). ИМС имеет 13 адресных входов, 8 выходов данных, входы разрешения программирования WE, выборки кристалла CE, разрешения выходов ОЕ.

Адресные входы А0-А12 подключаются к шине адреса контроллера, выходы данных D0-D7 — к шине данных. Выборка кристалла и разрешение выхода управляются дешифратором ОЗУ/ПЗУ. Вход разрешения программирования соединен с источником питания, ибо предполагается, что ИМС ПЗУ изначально содержит управляющую программу. При включении питания и после сброса, микропроцессор всегда начинает считывать код команды, расположенный в ячейке с адресами 0000Н-07FFH.

В качестве проектируемого ОЗУ выбираем статическое ОЗУ 5164SL (Intel) объёмом 64 Кбайт (8K x 8). Применение ОЗУ статического типа позволяет решить задачу сохранения данных в памяти (в отличие от динамического ОЗУ статическое не требует циклов регенерации памяти). Это позволяет существенно упростить аппаратную часть контроллера. Для записи данных с входов D0-D7 в микросхему необходимо на входах А0-А12 установить требуемый адрес ячейки памяти, подать на входы CS2 напряжение высокого уровня, а на WE напряжение низкого уровня. Для чтения данных из памяти необходимо установить адрес ячейки, на входы CS1 и OE подать напряжение низкого уровня.

4. Дешифратор адреса ОЗУ/ПЗУ

Для разделения области ПЗУ и ОЗУ необходимо разделить адресное пространство при помощи дешифратора адреса. После подачи сигнала сброса на процессор счётчик команд принимает значение 0, то есть выполнение программы начинается с адреса 0000Н. Следовательно, область ПЗУ, в котором хранится код программы, должна начинаться с адреса 0000Н. Тогда верхний адрес ПЗУ 2 Кбайт будет равен 2047 (07ffH), что соответствует двоичному 11 111 111 111. Область ОЗУ начинается со следующих адресов. Нижний адрес ОЗУ в этом случае 2048 (0800H), то есть 100 000 000 000. Верхняя граница в 2 Кбайт соответствует адресу 4095 (0fffH), то есть 111 111 111 111. Как видно, для адресации к памяти используются только нижние 12 бит адреса А0-А11. При этом биты А15-А12 принимают значение 0 как для ПЗУ, так и для ОЗУ, а бит А11 принимает значение 0 для ПЗУ и 1 для ОЗУ. Это обстоятельство и применяется для построения дешифратора, разделяющего области ПЗУ и ОЗУ. Также учитывается, что при обращении к памяти, ЦПМ устанавливает в 0 сигналы RD или WR, обращение ПЗУ возможно только при чтении данных, но не при их записи. Сигналы с дешифратора имеют активный уровень 0 и подключены к входам выборки кристалла CS и перевода выходов в Z-состояние OE микросхем ОЗУ и ПЗУ. Выводы микросхем объединены в общую шину данных соответствующими разрядами и подключаются к ЦПМ.

Таблица 1 — Карта памяти

Вид памяти

адрес

Номер разряда шины адреса

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

ПЗУ

2 Кбайт

min

0000H

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

max

07ffH

0

0

0

0

0

1

1

1

1

1

1

1

1

1

1

1

ОЗУ

2Кбайт

min

0800H

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

max

0fffH

0

0

0

0

1

1

1

1

1

1

1

1

1

1

1

1

Рис. 3 — Схема дешифратора адреса ОЗУ

Рис 4. — Схема дешифратора ПЗУ

Дешифратор работает следующим образом. Проверяются 5 старших разрядов шины адреса, в том случае когда обнаруживается комбинация 0 В возможен выбор ПЗУ, а в том случае когда обнаруживается комбинация 1 В возможен выбор ОЗУ. В первом случае необходим ещё нулевой активный сигнал RD чтобы активировать ПЗУ. Во втором случае так как в ОЗУ можно записывать и считывать данные, то при поступлении активного нулевого сигнала RD происходит считывание данных из ОЗУ, а при поступлении активного нулевого сигнала WR происходит запись данных в ОЗУ. Одновременное поступление двух активных сигналов RD и WR невозможно.

5. Дешифратор внешних устройств

Для управления доступом микропроцессорной системы к внешним устройствам (ВУ) — регистрам, АЦП, ЦАП, интерфейсному блоку необходимо применять дешифратор адреса внешних устройств. Процессор КР1821ВМ85А может адресоваться к 256 внешним устройствам, используя для передачи адреса младший байт шины адреса. В проектируемом устройстве для обращения к ВУ используется дешифратор адресного пространства ВУ.

Для построения такого дешифратора необходимо составить карту памяти ВУ. Так как в задании на РГР были оговорены те порты которые необходимо использовать для доступа к ВУ, а именно 48−63, то учитывая это можно заметить что начало адресного пространства это 30Н (48D) а заканчивается адресом 3FH (63D) что в двоичном коде выглядит так: 0011 0000 — 0011 1111. Как видим старшие четыре разряда не изменяются и поэтому могут легко проверятся аппаратно. Учитывая все выше изложенное, дешифратор ВУ принимает вид как на рис. 5.

Рис. 5 — Схема дешифратора ВУ.

При этом на входе каждого ВУ установлены ещё комбинационные схемы позволяющие получать доступ одновременно только к одному ВУ. Так ИМС интерфейса активируется при адресах 0000В — 0111 В, так как имеет 4 программируемых порта. А контроллер ПДП активируется при наличии 1 в разряде А2, т. е. при А3-А0 0100−0111, 1100−1111. Все остальные ВУ активируются программным путём, так регистры индикаторов активируются при наличии одной единицы в старшем полупорте РС (РС4 — РС7). АЦП активируется при наличии управляющего сигнала РА4 (от ЦПМ) и подтверждения запроса прямого доступа к памяти (от контролера ПДП).

6. Блок ввода аналоговых данных

Задача блока ввода аналоговых данных (БВВАД) согласно техническому заданию — обеспечить периодическое преобразование входных аналоговых данных в цифровой код, а также передачу его в микропроцессорный блок.

Целесообразным является построение БВВАД по последовательной схеме, состоящей из аналогового коммутатора (АК) и аналого-цифрового преобразователя (АЦП).

Структура БВВАД и его интерфейса зависит от типа АЦП и АК, поэтому сначала необходимо выбрать АЦП.

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

t < T/ (P+1) = 150/ (13+1) = 10,7 мкс;

Одновременно с этим должна обеспечиваться заданная точность преобразования, определяющая разрядность АЦП:

N > - log2 d = - log2 (0. 05) = 4,3=5;

Требуемую скорость и разрядность может обеспечить АЦП TDA8793, имеющий характеристики:

— время преобразования 0,1 нс;

— разрядность выходного кода — 8;

— допустимое изменение входного аналогового сигнала — 0,3 — +7 В (при данном использовании выводов).

АЦП имеет по выходу Z-состояние, что облегчает его согласование в ряде случаев с системной шиной микропроцессорных систем; включается с внутренней синхронизацией, и внутренними обратными связями.

Микросхема имеет два общих провода — «аналоговая» земля и «цифровая» земля для предотвращения импульсных наводок на входные аналоговые устройства. Входы INN и INP управляют допустимым диапазоном изменения аналогового сигнала на входе АЦП/. В нашем случае предполагается получать только положительные входные сигналы (+U) поэтому используется только один вход INP. Преобразование аналогового сигнала в цифровой код начинается при подаче на вход STDBY напряжения высокого уровня. После окончания преобразования аналогово-цифровым преобразователем на цифровых выходах D0-D7 появляется цифровой код, соответствующий уровню входного сигнала. После перехода сигнала на входе STDBY в состояние «логического нуля» снимается сигнал готовности, и цифровые выходы переводятся в Z-состояние. Также в АЦП есть функция Track and Hold которая в нашем случае не используется.

Рис. 6 — Временные диаграммы работы АЦП.

Для преобразования аналогового сигнала каждого из 13 датчиков применяется аналоговый коммутатор ADG608 с 8 аналоговыми входами. Канал коммутатора задаётся трёхразрядным адресом. Так как число датчиков больше чем число аналоговых входов коммутатора то используются 3 коммутатора включенных по пирамидальной структуре. Перебор адресов производится выходами PА (0−3) параллельного интерфейса.

Необходимо заметить что АЦП питается от источника питания +3 В, также он TTL/CMOS совместимый, а это значит что нет необходимости ставить преобразователь уровня.

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

7. Интерфейсный блок

Для управления внешними устройствами, необходимо применить контроллер 82C55А (отечественный аналог КР580ВВ55А) — параллельный интерфейс, позволяющий организовывать ввод/вывод параллельной информации различного формата.

микропроцессорное устройство блок дешифратор

Эта микросхема состоит из трех восьмиразрядных портов ввода/вывода PA, PB, PC. К тому же порт PC может также работать как два независимых 4-х разрядных порта.

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

D0: 1 — ввод PC3… PC0, 0 — вывод PC3. PC0;

D1: 1 — ввод PB, 0 — вывод PB;

D2: номер режима порта PB в двоичной системе;

D3: 1 — ввод PC7. PC4, 0 — вывод PC7… PC4;

D4: 1 — ввод PA, 0 — вывод PA;

D6−5: номер режима порта PA в двоичной системе;

D7 = 1 — в режиме установки.

Порт, А программируется на вывод данных (для управления входами аналогового коммутатора, пуском АЦП, и формирует запрос на ПДП); РС0… РС3 — вывод информации на блок отображения информации, РС4… РС7 — вывод, управляющих сигналов включения одного из отображающих элементов. В соответствии с выше изложенным формат первого управляющего слова такой 1000 0000b, или 80H. Второе слово состояние формируется каждый раз для вывода информации на тот или иной отображающий элемент. Запись слова состояния происходит когда А1=1 и А0=1, поэтому с учетом адресного пространства ВУ записывать слово состояние необходимо командой OUT 33H. Обращение к порту, А производится по адресу 30Н, к порту В — 31Н, а к порту С — 32Н.

8. Контроллер ПДП

Так как в задании на РГР был задан очень маленький (наименьший из представленных) период коммутации, то необходимо использовать режим прямого доступа к памяти, (ПДП) который реализуется с помощью контроллера ПДП. ПДП реализован на ИМС М8257 (отечественный аналог КР580ВТ57А). Данная микросхема является одним из ВУ которое можно программировать, для этого производится выборка этой ИМС (путём подачи сигнала низкого уровня на вывод СS) и далее данные необходимые для программирования передаются в неё по шине данный D0-D7, при осуществлении ПД вывод СS отключается что бы предотвратить ошибки. Данная ИМС при получении запроса на прерывание (один из входов DRQ) отключает ЦМП формируя сигнал подтверждения запроса на ПД и запускает АЦП совместно с управляющим сигналом от интерфейсного блока. Так как шина адреса 16 разрядная, а контроллер имеет только 8 адресных выводов (А0-А7), то недостающая часть адреса (старший байт) кратковременно формируются на шине данных (второй машинный такт) и стробируются сигналом STB, поэтому ставится регистр в который по сигналу строба выставляется старший байт адреса. Во время ПДП всеми системными шинами управляет контроллер ПДП. Когда ПДП заканчивается на выводе ТС формируется сигнал высокого уровня который переводит вход HOLD МП в нулевое состояние и тем самым возвращает управление системными шинами МП.

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

D0 - D3: разрешение работы ПДП по какому-то каналу;

D4: устанавливает систему приоритетов каналов;

D5: режим удлинения записи;

D6: остановка по концу счета ПДП;

D7: режим автозагрузки.

Учитывая все выше изложенное, формат управляющего слова будет следующим 0100 0100b или 84H. Управляющее слово заносится при А3-А0=1000b. При А3=0 и А0=0 устанавливается начальный адрес ОЗУ, а при А3=0 и А0=1 устанавливается число циклов ПДП, в этих случаях А2 и А1 используются для задания номера канала ПДП.

9. Блок отображения информации и блок вывода результата

Для отображения результата вычислений применяются семисегментные знакосинтезирующие индикаторы АЛС324А (с децимальной точкой). Количество разрядов отображаемого десятичного числа определяется заданной точностью преобразования и видом вычисляемой функции. Так для определения максимального отображаемого числа проведем не хитрый расчет, для этого необходимо в вычисляемую нами функцию подставить максимальное напряжение датчика т. е. 4В:

Y=N*4/N=4

где N это число аналоговых датчиков.

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

Y=N*0. 05/N=0. 05

Поэтому для отображения вычисленного числа нам достаточно одного разряда для целых чисел и 3 для десятичных.

Для преобразования двоично-десятичного кода в код индикатора применяется дешифратор К514ИД1. Код результата записывается в буферные регистры, сохраняющие код до следующей записи. Так же предусмотрена функция гашения всех индикаторов при подаче 1111 В в разряды РС4-РС7 ИМС интерфейса.

10. Листинг программы

// ввод данных с АЦП //

di; запретить прерывания;

Mvi А, 00b; загрузить число в аккумулятор

Out 30h; остановить АЦП;

Mvi A, 80h; формат регистра режима;

Out 33h; загрузить режимы ППИ;

Mvi A, 00h; младший байт начального дреса ОЗУ

Out 34h; передать данные в в контроллер ПДП

Mvi A, 08h; старший байт начального адреса ОЗУ

Out 34h; передать данные в контроллер ПДП

Mvi A, 02D; младший байт числа циклов ПДП

Out 35h; передать данные в контроллер ПДП

Mvi A, 40h; режим записи данных + старшие разряды числа; циклов

Out 35h; передать данные в контроллер ПДП

Mvi A, 84h; формат слова управления

Out 38h; передать данные в контроллер ПДП

Mov D, 13D; записать количество датчиков в счетчик

Mvi A, 11 0000b; формат запуска АЦП формирования запроса; ПДП и адрес коммутатора

Begin:

Out 30h; передать данные в ППИ

Inr A; увеличить содержание, А на 1

DCR D; уменьшить содержание счетчика на 1

Jnz Begin; если опрошены не все датчики, то повторить

RST 1: прервать выполнение программы

Заключение

В данном ОДЗ было спроектировано и разработано микропроцессорное устройство. Его функции заключаются в сборе аналоговой информации, преобразование ее в вид, удобный для обработки микропроцессором, обработка информации по программе и выдача этой информации в удобном для пользователя виде. Подобные задачи довольно часто возникают на производстве или в бытовых приборах, где необходимо постоянно контролировать те или иные параметры. Решение их, как правило, заключается в применении подобных микропроцессорных устройств, которые достаточно простые и дешевые для широкого применения.

Разработанное устройство управляется фиксированной программой из ПЗУ, на практике же можно менять программу по желанию пользователя, если это необходимо. Устройство для перепрограммирования можно представить в удобном для пользователя виде, что существенно расширит рамки функционирования устройства.

Список литературы

1. Хвощ С. Т., Варлинский, Н.Н., Попов Е. А. Микропроцессоры и микроэвм в системах автоматического управления: Справочник. — Ленинград: Машиностроение — 2007, 638 с.

2. Майоров В. Г., Гаврилов А. И. Практический курс программирования микропроцессорных систем. — Москва: Машиностроение — 2009, 265 с.

3. Методические указания к курсовому проекту «Микропроцессорный контроллер» по курсу «Микропроцессорная техника» / Составитель А. В. Дорошков. — Сумы: СумГУ — 2009.

4. Data Sheet at 2764A.

5. Data Sheet at 5164SL.

6. Data Sheet at TDA8793.

7. Data Sheet at ADG608.

8. Data Sheet at 82C52A.

9. Data Sheet at SN54LS138.

10. Data Sheet at M8257.

ПоказатьСвернуть
Заполнить форму текущей работой