Конспект лекций по курсу "Микропроцессоры и микро-ЭВМ в Персональной электронике" для студентов специальности 2008

1. "Традиционное" применение МП в цифровой аппаратуре и устройствах вычислительной техники: создание высокопроизводительных микро-ЭВМ, интеллектуальных средств общения человека и ЭВМ, развитие сетей, состоящих из микро-ЭВМ и т.п.

2. "Нетрадиционное" применение МП в аналоговой аппаратуре и системах управления объектами (контроллеры) для создания высокоэффективных связных систем, систем автоматического управления бытовыми приборами и т.д.

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







Рис. 4.1. Типовая схема устройства для встраивания МП или ОЭВМ

Типовая схема включения МП в такую структуру приведена на рис.4.2.


Рис. 4.2. Типовая схема включения МП

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

Процесс принятия решения о замене устройства с жесткой логикой на МПС основывается на многих параметрах проектируемой системы. Основные критерии такой замены следующие:

·        число корпусов ИС для построения прибора, основанного на схемном принципе, превышает некоторое критическое число. Для измерительных приборов это число колеблется от 30 до 100;

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

·        взаимодействие разрабатываемой системы с большим числом входных и выходных устройств;

·        требуется осуществлять запоминание и обработку полученных данных;

·        желательно осуществлять самоконтроль основных параметров системы;

·        для измерительной аппаратуры велик объем измерений, которые должны осуществляться с большой производительностью;

·        работа системы в реальном масштабе времени соответствует быстродействию МП, который предполагается использовать в системе.

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

4.2. Применение МП в измерительных приборах

Измерительные приборы - системы, в которых применение МП может дать ощутимое повышение производительности, точности измерений, ввести дополнительные функции, позволяющие повысить эксплуатационные удобства при работе с приборами. В книге [11] подробно изложены особенности использования МП в различных измерительных системах; частотомерах, вольтметрах, осциллографах и т.п. Рассмотрим только один пример, самый простой, использования МП в частотомере. Стандартная схема частотомера, построенного на схемном принципе, изображена на рис. 4.3. Генератор счетных импульсов вырабатывает непрерывную последовательность достаточно коротких импульсов. Блок формирования временных интервалов в зависимости от частоты входного сигнала, образует временные ворота, длительность которых соответствует периоду входного колебания. Временные ворота подаются на временной селектор, который пропускает на выход только те счетные импульсы, которые попали во временные ворота. Таким образом, число счетных импульсов оказывается прямо пропорциональным периоду входного сигнала. Счетчик, на который подаются эти импульсы, подсчитывает их количество и формирует на дисплее значения измеренной частоты.


Рис. 4.3. Структурная схема цифрового частотомера

Структурная схема цифрового частотомера с микро-ЭВМ показана на рис. 4.4. Микро-ЭВМ в данной схеме берет на себя следующие функции:

·        в зависимости от значения частоты входного сигнала она формирует временные интервалы для блока формирования временных ворот;

·        переключает сигнал с одного мультиплексора на другой в зависимости от поддиапазона измерений;

·        формирует значения измеренной частоты по показаниям счетчика и отображает их на дисплее;

·        осуществляет ряд дополнительных действий, связанных с автоматизацией измерений.


Рис. 4.4. Структурная схема подключения микро-ЭВМ

Рассмотренный пример показывает, что в данном случае микро-ЭВМ не участвует в непосредственном формировании сигнала, а только управляет им. В других приборах, например, цифровых вольтметрах, осциллографах, микро-ЭВМ через АЦП и ЦАП непосредственно включаются в тракт обработка сигнала. Естественно, что во втором случае от нее требуется существенно большее быстродействие.

4.3. Применение МП в промышленности. связи, в быту

Рассмотрим конкретный пример использования МП в средствах связи. Точно так же как и в измерительных приборах, МП могут использоваться непосредственно в тракте сигнала, и для управления характеристиками этого тракта. Например, в приемниках МП может обрабатывать входной сигнал, осуществляя цифровую фильтрацию, а может управлять синтезатором частоты для управления только настройкой приемника. В качестве примера использования МП в радиоприемных устройствах приведем схему вычислителя для автоматической настройки одиночного параллельного контура на частоту приемника Fo. Настройка проводится с помощью варикапа, на который подается управляющее напряжение Uупр. На рис. 4.5 показана упрощенная схема приемника.


Рис. 4.5. Схема входного контура приемника

Напряжение на контуре детектируется амплитудным детектором (АД),преобразуется в АЦП в двоичный код и поступает на МП. МП оценивает сигнал и выдает управляющее напряжение Uy, которое после ЦАП поступает на варикап для изменения частоты настройки контура. Задача, решаемая МП, состоит в поиске экстремума функции Uy(F). Из всех известных алгоритмов поиска вследствие малой разрядности МП выбирается метод нулевого порядка - метод случайного пошагового поиска экстремума с запоминанием верного шага.

Суть алгоритма состоят в следующем. Так как напряжение на контуре является функцией расстройки {Fk-Fo}, то пря изменении F изменяется и Uk. МП формирует приращение U4(может быть и положительным и отрицательным). Происходит сравнение Uk=f(Uy) и Ukn+1=f(Uy+DUy).Если Ukn+1>Ukn, то делается шаг в ту же сторону, в противном случае - в противоположную. Одноэкстремальный вид функции настройки позволяет одновременно осуществить операцию автоматического поиска частоты Fo.  АЦП и ЦАП подсоединяются к МПС через порты ввода/вывода. Покажем на примере, как можно построить минимальную конфигурацию МПС на ОЭВМ серии MCS-51, выполняющую данную задачу. Для построения портов ввода/вывода используются порты Р1 и Р2 ОЭВМ (рис. 3.1). Это позволяет использовать для ввода/вывода команды ОЭВМ работы портами. Предположим, что  для АЦП  осуществляется программная задержка на время, большее времени преобразования, чтобы избежать ввода еще одного регистра для опроса сигнала готовности АЦП. Сигнал на  ЦАП подается сразу из ОЭВМ через порт. Однако при регулировании необходимо организовать программную задержку на время установления переходных процессов в контуре. Кроме того, для исключения влияния шума на процесс регулирования нужно установить нижний предел изменения  DUk.

Распределим ресурсы системы. Регистр ОЭВМ R2 будет хранить значения Uy, в  R3 помещаются значения предыдущего шага Uk-1, а в А - последующего шага Uk. В регистр R4 в процессе работы программы будем помещать число N - параметр программной задержки. На рис. 4.6 приведена структурная схема программы автоматического поиска и настройки на резонанс. Пояснения, данные справа каждого программного блока иллюстрируют, логику программы. Программа занимает в ПЗУ 53 ячейки, время обработки одного значения Uk вместе с временной задержкой составляет 400 мкс.

Рассмотренный пример показывает особенности применения МП в радиосистемах: работа в реальном масштабе времени, экономия памяти и аппаратных средств, использование программной задержки и т.п.

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



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

4.4. Система сбора аналоговой информации

Пусть по 8-ми каналам передается аналоговая информация с амплитудой не более 1 В положительной полярности и надо осуществлять выборку каждого канала не реже 1 раза в 20 мс. Точность представления сигнала  должна быть не хуже +-10 мВ. Опрос каналов  осуществляется в течение 10 с, а затем должна быть сделана обработка накопленной информации. Требуется спроектировать аппаратную часть системы с выбором основных ее элементов, составить программу опроса каналов и накопления информации в ОЗУ системы.

Этап 1. Составление структурной схемы системы. Для экономии средств и времени на разработку выберем в качестве ведущего модуля ОЭВМ семейства MCS-51 КР1830ВЕ751 (аналог ОЭВМ I87C51 фирмы Intel). Эта ОЭВМ в настоящее время широко распространена, дешева, для нее существует практически вся номенклатура аппаратных и программных средств разработки.

Выбор АЦП. Для опроса аналоговых каналов и преобразования сигналов в цифровую форму, естественно, надо предусмотреть в системе АЦП. Его выбор основывается на заданных параметрах аналогового сигнала: амплитуде, точности, скорости выборки. Прежде всего, выберем разрядность, исходя из точности 10 мВ при диапазоне сигнала в 0...1 В. Разделив второе число на первое получим коэффициент деления, который определяет разрядность АЦП. Он равен 100, поэтому вполне подойдет 8-разрядный АЦП, для которого этот коэффициент равен 28 = 256>100. Таким образом, не слишком жесткие параметры позволяют выбрать достаточно простой и дешевый 8-разрядный АЦП AD7575, который имеет следующие характеристики:

*                    входной диапазон  - 0...2,56В;

*                    время преобразования <2,5 мкс;

*                    из внешней "обвязки" требует только подключения источника опорного напряжения величиной 1,28В, который также выпускается в интегральном исполнении -  ИС LM306.

Для хранения считанной информации надо предусмотреть внешнее ОЗУ емкостью: (10000мс/20 мс)х8 каналов = 4000 байт. Для работы с запасом возьмем БИС ОЗУ объемом 8 Кбайт= 8192 байта типа HM6164 с временем доступа 100 нс. Этот тип ОЗУ также широко распространен и дешев.

Для переключения аналоговых каналов надо взять стандартный 8-канальный налоговый мультиплексор, например, отечественный КР590КН9.

Таким образом, были выбраны все основные компоненты системы, и можно составить структурную схему устройства (рис. 4.7).

Так как к ОЭВМ нужно подсоединить внешнюю ОЗУ, то надо организовать ША, ШД и ШУ. С этой целью в систему включен так называемый "регистр-защелка" DD2 типа К555ИР22, в котором по фронту сигнала ALE из ОЭВМ запоминается младший байт адреса внешней ОЗУ, который в этот момент присутствует на выводах порта Р0. Остальные 5 старших разрядов образуются сигналами, выставляемыми на выводах Р2.0 - Р2.4 порта Р2 ОЭВМ, которые держатся весь цикл обращения к ОЗУ.

Память программ будет использована внутренняя (в составе ОЭВМ имеется 4 Кбайта УФ ППЗУ).

Для того, чтобы не включать в схему дешифратора адреса для выбора либо БИС ОЗУ, либо БИС АЦП используется сигнал Р2.5 порта Р2: при установке его в 0 включается внешнее ОЗУ (фактический диапазон адресов этого ОЗУ 0000 - 1FFF), при установке его в 1 выбирается БИС АЦП (любой адрес внешней памяти, начинающийся с 2000).

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

Этап 3. Составление укрупненной структурной схемы. Структурная схема приведена на рис. 4.8.

По условию необходимо производить опрос каналов в течение 10 с, а затем идет обработка, которая в данной задаче не рассматривается.

Временные интервалы проще всего отсчитывать с помощью внутренних таймеров. Будем считать, что тактовая частота ОЭВМ составляет 12 МГц, так что длительность импульса внутренней синхронизации, который может быть подан на таймер, составляет 1 мкс. Так как регистр таймера 16-разрядный, то максимальное накапливаемое время будет составлять 65535 мкс = примерно 65 мс. В течение интервала 10 с таких событий должно быть 10000/65=154. Для регистрации такого числа событий можно использовать известный прием накопления их в каком-либо регистре и выдаче сигнала об окончании путем установки определенного флага.

Этап 4. Распределение ресурсов. Желательно все переменные распределить во внутренней памяти и еще лучше в текущих регистрах R0-R7 ОЭВМ.

R0 - Текущий номер опрашиваемого канала.

А - Текущий байт, считанный с АЦП.

R2 - накапливающий регистр для таймера (см. выше).

R3 - регистр для временного хранения младшего байта DPTR

R4 - регистр для временного хранения старшего байта DPTR

R5 - счетчик числа опрошенных каналов

R6 -

R7 -

DPTR - адрес внешней ячейки памяти для записи текущего байта.

FLAG - битовая переменная для сигнализации, что 10 с прошло. Пусть FLAG = 1 сигнализирует, что интервал времени сбора информации прошел.

Регистрацию времени по таймеру проще всего вести по программе прерывания по таймеру. Если это прерывание разрешено ( флажок ET0 в регистре IE установлен в 1), то при переполнении таймера 0 происходит переход на адрес 000В внутренней памяти программ, где должна находиться подпрограмма обработки этого прерывания.

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

·        запретить прерывания на время своего выполнения (флажок ET0 в регистре IE устанавливается в 0) (в данной задаче с одним источником прерывания это можно не делать, но когда источников несколько, то нежелательно, чтобы другое прерывание прерывало эту подпрограмму).

·        остановить таймер ( флажок TF0 устанавливается в 0 для таймера 0),

·        прибавить к накапливающему регистру 1, так как очередной 50-мс цикл прошел,

·        проверить, превысило это значение в регистре число 154, т.е. прошло ли уже 10 с,

·        если прошло 10 с установить  FLAG в 1, иначе оставить FLAG =0,

·        Загрузить в регистры таймера числа для очередного 50-мс цикла,

·        запустить таймер 0 ( флажок TF0 устанавливается в 1 для таймера 0),

·        разрешить прерывания от таймера 0 (флажок ET0 в регистре IE устанавливается в 1).





























Рис. 4.7. Структурная схема системы сбора аналоговой информации

 






























Рис. 4.8.  Укрупненная структурная схема алгоритма

Расчет чисел, загружаемых в регистры таймера, чтобы он переполнялся ровно через 50 мс, осуществляется так:

в программе предусмотрена двухбайтная псевдопеременная TIME, которая и определяет интервал 50 мс. Она записывается так:

TIME  = NOT(50000 - 1), где 50000 - требуемый интервал в мкс. Тогда операторы загрузки этого числа в таймер 0 выглядят следующим образом:

           MOV TL0,#HIGH(TIME)

           MOV TH0,#LOW(TIME)

где символы HIGH и LOW означают для программы Ассемблера соответственно старший и младший байты двухбайтного числа TIME.

Этап 5. Составление подробной структурной схемы алгоритма.

На рис. 4.9 показана структурная схема программы прерывания, а на рис. 4.10 – общей программы.


 
























Рис. 4.9. Структурная схема подпрограммы прерывания


 


Рис. 4.10. Структурная схема основной программы

Текст программы опроса каналов

Метка

Мнемоники

Комментарии


Name  EXMPLADC

; название модуля программы для сборки;

TIME

EQU NOT(10000-1)

;задание константы для 10 с опроса

DSEG AT 50H

;сегмент данных во внутренней памяти данных

dirAdr:

DS 1;


BSEG AT 20H

; сегмент битовых данных во внутренней памяти данных

Flag:

DBit 1

; бит флага окончания 10 с интервала


CSEG AT0H

; абсолютный кодовый сегмент, начинающийся с адреса 0000Н


ORG 0H

;псевдокоманда задания адреса памяти


LJMP Start

;переход на начало основной программы


ORG 000BH

;псевдокоманда задания адреса подпрограммы прерывания от таймера


LJMP INTER0

;переход на начало подпрограммы обработки прерывания от таймера

INTER0:

clr ET0

;запрет прерывания от таймера 0


clr TR0

;останов  таймера 0


mov th0,#High(TIME)

;загрузка в таймер числа для 50 мс интервала таймера


mov tl0,#low(TIME);


inc r2

;увеличение на 1 счетчика 50 мс интервалов для получения 10 с времени опроса


cjne r2,#159,int11

;если это число не равно 159, то снова запуск таймера на 50 мс


mov r2,#0

;иначе, обнуление счетчика


setb Flag

;установка флага конца 10 с интервала


ljmp int12;


int11:

setb TR0

;запуск таймера


setb ET0

;разрешение прерывания от таймера

int12:

reti

;возврат из программы прерывания

Start:


;начало основной программы


mov SP, #60H

;установка указателя стека на конец внутренней памяти данных


mov r2,#0

;подготовка счетчика числа 50 мс интервалов


setb EA

;разрешение всех прерываний


mov th0,#High(TIME)

;загрузка в таймер числа для 50 мс интервала таймера


mov tl0,#low(TIME)

;


mov dptr,#2000h

;загрузка в DPTR адреса АЦП в памяти


mov r3,#0

;подготовка пары регистров для хранения текущего адреса ячейки ОЗУ


mov r4,#0

;


mov p1,#0

;установка 0 аналогового канала


mov r5,#8

;установка счетчика каналов


setb ET0

;разрешение прерывания от таймера 0


setb TR0

;запуск таймера 0

m1:

movx @dptr,a

;команда начала преобразования АЦП


lcall delay

;задержка на 25 мкс


movx a,@dptr

;считывание кода с АЦП


mov dph,r3

;загрузка в DPTR адреса текущей ячейки ОЗУ


mov dpl,r4

;


movx @dptr,a

;запись считанного с АЦП кода во внешнюю память


inc dptr

;увеличение адреса текущей ячейки внешнего ОЗУ на 1


mov r3,dph

;сохранение в регистрах адреса текущей ячейки внешнего ОЗУ


mov r4,dpl ;


mov dptr,#2000h

;загрузка в DPTR адреса АЦП в памяти


inc p1

;увеличение на 1 номера канала


djnz r5,m1

;цикл опроса  следующего канала


mov p1,#0

;обнуление номера канала


mov r5,#8

;установка 0 аналогового канала


mov c,Flag

;проверка флага окончания опроса


jz m1

;цикл по следующей выборке из 8 каналов


lcall mathem

;окончание опроса, вызов программы обработки


ljmp start

;на начало программы для повторения полного цикла

delay:

mov r6,#8

;подпрограмма задержки на 25 мкс для готовности АЦП, в R6 рассчитанное на 25 мкс число

m5:

nop

;пустая операция, длится 1 мкс


djnz r6,m5

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


ret

Mathem::

ret

;"заглушка" программы обработки информации из каналов, в данном примере не рассматривается

END


;конец модуля

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14



Реклама
В соцсетях
бесплатно скачать рефераты бесплатно скачать рефераты бесплатно скачать рефераты бесплатно скачать рефераты бесплатно скачать рефераты бесплатно скачать рефераты бесплатно скачать рефераты