Микроконтроллеры. 2



 

Содержание

Содержание

1 Техническое задание

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

3 Блок чтения информации с датчиков

4 Блок вывода управляющих сигналов

5 Блок последовательного канала связи

6 Пульт управления

7 Общий алгоритм управления

8 Алгоритм работы блока чтения информации с цифровых датчиков

9 Алгоритм работы блока чтения информации с аналоговых датчиков

10 Алгоритм работы блока обмена информацией по последовательному каналу связи

11 Алгоритм работы блока взаимодействия с оператором

12 Алгоритмы обработки аварийных ситуаций

13 Расчет электрических параметров микропроцессорной системы управления

14 Разработка блока питания

Приложение А Схема электрическая принципиальная микропроцессорной системы управления

Приложение Б Листинг управляющей программы

 

1 Техническое задание

Обработка цифровой информации

Микропроцессорная система опрашивает двоичные датчики Х1-Х5, Х8, вычисляет значение функции Y1=.

При единичном значении функции система вырабатывает выходной сигнал Y1 = 1 длительностью 262 мкс.

В системе имеется также двоичный датчик аварийной ситуации X0, единичный сигнал с которого должен вызывать аварийный останов системы в любой момент времени.

Обработка аналоговой информации

Сигналы с аналоговых датчиков V1, V2 преобразуются в цифровую форму в АЦП. С выхода АЦП 8-разрядные коды N1 и N2, представляющие собой целые числа без знака, поступают на обработку. Величина К — 8-разрядный код уставки, поступающий от оператора. Далее система вычисляет функцию N=max(N1+N2;K). Полученное значение функции сравнивается с константой Q, хранящейся во внутренней памяти.

Если N меньше Q, то система выводит двоичный управляющий сигнал Y2 длительностью 143 мкс.  Если N больше Q, то система выводит двоичный управляющий сигнал Y3 длительностью 394 мкс.

Управляющее воздействие Y4 формируется в виде аналогового сигнала V4 и с выхода ЦАП и поступает на исполнительный механизм. Значение Y4 определяется как восьмиразрядное двоичное число по формуле

Y4=A0+A1*N2,

где А0 и А1 — 8-разрядные коэффициенты, хранящиеся во внутренней памяти микроконтроллера;

N2 — 8-разрядный код, поступающий с выхода АЦП.

Исходные величины, поступающие с АЦП, меньше единицы и представляются двоичным числом с фиксированной запятой.

Если после умножения значение Y4 превышает 8 разрядов, но необходимо принимать значение Y4 равное младшему байту.

Обработка запросов на прерывания

Система обрабатывает пять запросов на прерывание:

–     запрос на прерывание по сигналу отказа источника питания IRQ0;

–     запрос на прерывание по сигналу аварийного датчика IRQ1;

–     запрос на прерывание от терминала внешней ЭВМ IRQ2;

–     запрос на прерывание от таймера IRQ3;

–     запрос на прерывание от пульта управления IRQ4.

Прерывание работы системы при отказе источника питания имеет высший приоритет. Система при этом переходит на резервный источник питания (батарейка), вырабатывает сигнал Y5 установки внешних устройств в исходное состояние и передает в последовательный канал связи (если он был активен) код символа «!». Сигнал Y5 представляет собой два прямоугольных импульса длительностью 30 мкс, следующие с интервалом 30 мкс. После выполнения указанных действий микроконтроллер необходимо перевести в режим пониженного энергопотребления.

Прерывание сигнала аварийного датчика включает на пульте управления аварийную сигнализаци(световую с частотой 2 Гц) и обеспечивают выдачу на индикацию сигналов двоичных датчиков Х1 —Х5 и цифрового кода N1. После этого микроконтроллер необходимо перевести в режим пониженного энергопотребления.

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

Приемник последовательного адаптера выставляет при этом запрос на прерывание работы основной программы с целью передачи в последовательный канал связи запрашиваемой информации. Запрашиваемая информация формируется в зависимости от принятого из канала символа. При приеме символа «D» в канал передается значение Y1, при приеме символа А - значение Y4. После загрузки в буфер передатчика последовательного адаптера запрашиваемой информации управление передается в прерванную программу.

Прерывание от пульта управления влечет за собой выполнение следующих действий:

–     выдать на регистр индикации РИ1 значения следующих четырех булевых переменных: Y1; результат сравнения N>Q; значение выражения ; значение выражения ;

–     выдать на регистр индикации РИ2 значение сохраняемой во внутренней памяти константы Q;

–     организовать выход из прерывания на начало программы обработки.

Пульт управления

Пульт управления должен содержать следующие элементы:

–     устройство индикации;

–     входной 8-разрядный регистр для приема с тумблеров пульта кода К;

–     светодиод аварийной сигнализации, на который подается меандр с частотой 2 Гц;

–     кнопку «Сброс», при нажатии на которую производится начальная установка элементов системы;

–     тумблер «Останов», опрашиваемый в конце каждого цикла выполнения программы.

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

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

Входными сигналами для системы являются:

–     сигналы бинарных датчиков X1-Х5,Х8;

–     сигналы аналоговых датчиков V1-V2.

Выходными управляющими сигналами для системы являются:

–     цифровые сигналы Y1-Y3, Y5;

–     аналоговый сигнал V4, формируемый ЦАП из кода Y4.

Рисунок 1 — Структурная схема микропроцессорной системы управления

В качестве микроконтроллера выбрана микросхема AT89С51IС2 со следующими характеристиками:

–     ядро MCS-51;

 

–     четыре 8-разрядных цифровых порта ввода-вывода;

–     2 отдельных вывода встроенного порта шины I2С, скорость передачи до 400 Кбит/с;

–     256 байт памяти данных;

 

–     10 источников прерываний с 4-мя уровнями приоритета;

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

–     тактовая частота до 60 МГц;

–     32 Кбайта встроенной флэш-памяти с ресурсом 100 тысяч циклов записи;

–     дополнительные 1024 Кбайта расширенной памяти данных, доступные с помощью специальных команд;

–     порт клавиатуры, совмещенный с портом 1, каждая линия которого может генерировать низкоприоритетное прерывание;

–     встроенный порт SPI;

–     встроенный в чип резонатор с частотой 32 КГц;

–     5-канальный программируемый счетный массив;

–     полнодуплексный УАПП;

–     специальный регистр для задания скорости передачи УАПП;

–     встроенный охранный таймер;

–     напряжение питания от плюс 2,7 до плюс 5 В;

–     маскимальный ток потребления — 8 мА при напряжении питания плюс 5 В;

–     коммерческий (от 0 до 70°С ) и промышленный (от минус 40 до плюс 85°С) температурные диапазоны;

–     корпуса PLC44 или VQFP44.

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

Т.к. микроконтроллер имеет только два входа для внешних прерываний, то два из трёх таких прерываний (IRQ1, IRQ4) будут обрабатываться с использованием линий порта 3.

Блок чтения информации с датчиков предназначен для согласования уровней сигналов датчиков с уровнями ТТЛ и ввода этих сигналов в микроконтроллер. Для этого используются схемы согласования и АЦП.

Блок вывода управляющих сигналов предназначен для вывода цифровых сигналов управления Y1-Y3, Y5. Для вывода аналогового управляющего сигнала V4 в схеме блока присутствует ЦАП.

Пульт управления служит для управления системой. Он содержит блок тумблеров для задания кода уставки, схему индикации, аварийную сигнализацию и тумблер «Останов».

Блок канала с последовательным доступом состоит из микросхемы преобразователя уровней и разъёма.

3 Блок чтения информации с датчиков

Согласно задания нижний уровень входного сигнала составляет плюс 60 В, верхний — плюс 42 В. Чтобы МК мог принимать информацию с датчиков, необходимо преобразовать эти уровни в уровни ТТЛ.

Схема согласования с бинарным датчиком представлена на рисунке 2.

Рисунок 2 — Схема согласования с бинарным датчиком

Для корректной обработки цифровых входных сигналов воспользуемся схемой сопряжения, выполненной на оптронах. На выходе цифровые сигналы также требуется преобразовать в заданный формат, и для этой цели воспользуемся транзисторным оптроном АОТ101АС. На рисунке 2 изображена схема сопряжения для входных цифровых сигналов.

Формула расчета сопротивления резистора R2:

;

где Uпр – прямое падение напряжения на светодиоде оптрона при прямом токе Iпр. Для оптрона АОТ101АС Uпр = 1,6 В при Iпр.= 5 мА. – напряжение стабилизации стабилитрона. Произведя вычисления получим R2=8,68 кОм. Такого номинала нет в ряду Е24. Примем номинал R2 равным 8,2 кОм.

Учитывая, что все входные схемы сопряжения имеют одинаковую структуру, резисторы остальных входных схем сопряжения будут соответственно равны написанным выше.

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

В качестве операционных усилителей возьмем  ОУ AD 202 имеющих гальваническую развязку входа и выхода

Для согласования аналоговых сигналов с АЦП используем инвертирующий сумматор напряжений:

 

Рисунок 5 – Схема инвертирующего сумматора с гальванической развязкой

 

расчет сопротивлений резисторов:

;

;   

 

Принимаем R2=470 Ом

  

R4=1/3,404=0.293 кОм.  Принимаем R4=0,3 кОм

Где Uпит – напряжение источника питания, подключаемого к резистору R2.

Это напряжение выбирается следующим образом:

Если Uвхmin > 0 В, то Uпит = -7,5 В (резистор R2 соединяется с выводом 5 ОУ (-Viss));

Преобразование входных аналоговых сигналов V1 и V2 в цифровую форму производится с помощью АЦП.

Характеристики АЦП AD7999:

 

–          встроенный 4-канальный аналоговый коммутатор;

–          использование напряжения питания в качестве опорного напряжения;

–          возможность использовать внешний источник опорного напряжения;

–          скорость преобразования — 100 тыс. отсчетов в секунду при скорости обмена по шине I2C 400 Кбит/с;

–          однополярное питание;

–          низкая цена.

АЦП имеет 4 аналоговых входа, 2 вывода шины I2С, выводы питания и земли. Назначение выводов АЦП дано в таблице 1.

Таблица 1 — Назначение выводов АЦП AD7999

Наименование вывода

Выполняемая функция

VIN0-VIN3

Входы аналоговые

SDA

Линия данных шины I2C

SCL

Тактовая линия шины I2C

VDD

Питание

GND

Земля

АЦП AD7999 работает следующим образом:

1.      МК начинает обмен по шине, выдав условие START.

2.      Выбирается микросхема АЦП для записи. Для этого МК выдает на шину 7-битный адрес АЦП совместно с битом «чтение-запись», установленным в «запись».

3.      Подключается нужный аналоговый вход. Для этого на шину выдается байт

 

конфигурации АЦП, в котором установлен необходимый бит.

4.      Автоматически запускается преобразование. Во время преобразования АЦП удерживает шину, не давая остальным устройствам производить обмен.

5.      После задержки на преобразование, которая составляет около 2 мкс, в выходной буфер АЦП записывается результат преобразования и АЦП перестает удерживать шину.

6.      Для того, чтобы считать результат из буфера АЦП, необходимо адресовать АЦП, установив бит «чтение-запись» в «чтение», и принять 2 байта результата.

7.      Для завершения обмена контроллер выдает условие STOP.

Т.к. на вход АЦП AD7999 можно подавать напряжение от 0 до 5В, то схема согласования будет аналогична схеме согласования с цифровым датчиком, за исключением составляющих ее элементов. Для обеспечения необходимой точности следует взять прецизионные операционные усилители OP 270 и прецизионные резисторы Р1-8.

4 Блок вывода управляющих сигналов

Для получения аналогового управляющего сигнала Y4 применим ЦАП. В качестве ЦАП используем микросхему AD5301 фирмы Analog Devices.

Характеристики данного ЦАП:

–       разрядность — 8 бит;

–       максимальная ошибка преобразования — половина младшего разряда результата;

–       выход по напряжению;

–       максимальное время установления выходного сигнала — 6 мкс;

–       возможность работы с однополярным питанием от 2,7 до 5,5 В;

–       диапазон выходного напряжения — от 0 до напряжения питания;

–       максимальный ток потребления — 200 мкА.

ЦАП AD5301 имеет 2 вывода шины I2C, аналоговый выход, 2 адресных входа. Назначение выводов ЦАП дано в таблице 2.

Таблица 2 — Назначение выводов ЦАП AD5301

Наименование вывода

Выполняемая функция

SDA

Линия данных шины I2C

SCL

Тактовая линия шины I2C

A0

Адресный вход

А1

Адресный вход

VOUT

Буферизованный аналоговый выход. Выходной повторитель напряжения на ОУ rail-to-rail

GND

Аналоговая земля

VDD

Питание

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

Рисунок 3 — Схема согласования с исполнительным механизмом

ЦАП AD5301 работает следующим образом:

1.      МК инициирует обмен по шине, выдав условие START.

2.      Выбирается микросхема ЦАП для записи. Для этого МК выдает на шину 7-битный адрес ЦАП совместно с битом «чтение-запись», установленным в «запись».

3.      ЦАП отвечает, посылая ACK.

4.      МК выдает на шину два байта. В первом байте содержится два нуля, два бита конфигурации ЦАП и 4 старших бита данных. Во втором байте содержится четыре оставшихся бита данных и четыре незначащих бита.

5.      После приема второго байта ЦАП выдает NO ACK.

6.      Автоматически запускается преобразование.

7.      Во время преобразования возможен прием новых данных, т.к. время преобразования существенно меньше времени передачи 3-х байт по шине I2C.

8.      Для завершения обмена МК выдает на шину условие STOP.

5 Блок последовательного канала связи

Электрические характеристики интерфейса RS-422 приведены в таблице 3.

Таблица 3 — Электрические характеристики интерфейса RS-422

Наименование параметра

Значение

Диапазон напряжений "1" передатчика

+2...+10 В

Диапазон напряжений "0" передатчика

–2...–10 В

Диапазон синфазного напряжения передатчика

–3...+3 В

Допустимый диапазон напряжений приемника

–7...+7 В

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

±200 мВ

Из таблицы 3 видно, что уровни сигналов в линии RS-422 не совпадают с уровнями сигналов ТТЛ, а значит микроконтроллер не может передавать информацию в линию RS-422 напрямую. Для преобразования уровней сигналов микроконтроллера в уровни сигналов линии связи необходимы специальные микросхемы преобразователей уровня.

Для организации канала с последовательным доступом в полудуплексном режиме применим преобразователь уровней ADM4854. Назначение выводов преобразователя уровней дано в таблице 4.

Таблица 4 — Назначение выводов преобразователя уровней ADM4854

Наименование вывода

Выполняемая функция

RO

Выход приемника

DI

Вход передатчика

A

Неинвертирующий вход приемника

B

Инвертирующий вход приемника

Y

Неинвертирующий выход передатчика

Z

Инвертирующий выход передатчика

VCC

Питание

GND

Земля

Вход передатчика DI соединим с выводом TxD микроконтроллера, а выход приемника RO — с выводом RxD. Выходы передатчика и входы приемника подключим к 25-контакному разъему DB-25F.

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

Рисунок 4 — Схема блока последовательного канала связи

Для получения скорости передачи, равной  2400 бит/с, необходимо выполнить следующие условия:

1.      При инициализации МК задать режим 1 или 3 работы UART.

2.      При инициализации МК задать режим работы UART от встроенного задатчика скорости.

3.      Загрузить в регистр BR задатчика скорости константу, расчитанную по формуле

где К — константа,

SMOD1 — бит номер 7 регистра PCON, при установке бита в 1 скорость передачи удваивается,

 

F — частота тактового генератора МК,

SPD — бит номер 1 регистра BDRCON, при установке бита в 0 UART тактируется от генератора МК через делитель частоты на 6,

V — скорость передачи.

Для скорости передачи 2400 бит/с константа K будет равна 244 (F4h) при установленных в 0 битах SMOD1, SPD и частоте тактового генератора МК равной 11,059 МГц.

6 Пульт управления

Пульт управления содержит восемь тумблеров для ввода 8-разрядного кода уставки, кнопку «Сброс», тумблер «Останов», устройство индикации — жидкокристаллический знакосинтезирующий индикатор, светодиод в качестве аварийной сигнализации.

Тумблеры подключены к питанию через ограничительный резистор. В начальный момент времени замыкания тумблера его сопротивление очень мало, а значит через него протекает большой ток, который может повредить контакты.

Жидкокристаллический знакосинтезирующий индикатор WH7414 имеет встроенный контроллер и способен отображать 4 строки по 40 символов. Этого достаточно для индикации значений всех величин в процессе работы МПСУ. Индикатор имеет восемь входов данных DB0-DB7 и 4 входа управления RS, R/W, E, V0. Вход E предназначен для выбора микросхемы. Вход RS определяет, что будет записано в буфер дисплея — данные или команда управления. По входу R/W устанавливается режим обмена с дисплеем: чтение либо запись. Считывать информация из памяти индикатора мы не будем, поэтому данный вывод заземлен. Вход V0 управляет контрастом экрана, поэтому он подключен в питанию через переменный резистор на 10 кОм.

Внутри индикатора есть ячейки памяти, называемые обычно видеопамятью. При помощи соответствующих команд мы можем в любую из этих ячеек занести любое 8-битное число. Каждому из этих чисел взаимно однозначно соответствует при отображении определенный символ: например, числу 32h соответствует цифра 2, числу 47h — заглавная латинская буква G и т.д. В кодовой таблице индикатора содержится полный набор кириллических символов.

Алгоритм работы с индикатором по 4-битной шине данных выглядит следующим образом.

1.   Установить в 0 сигнал на входе R/W индикатора.

2.   Установить в 1 сигнал на входе RS индикатора. При RS=1 встроенный контроллер воспринимает передаваемую информацию как данные, а при RS=0 — как команду.

3.   На входы DB4-DB7 вывести передаваемые в индикатор старшие 4 бита кода символа.

4.   На входы DB0-DB4 вывести передаваемые в индикатор младшие 4 бита кода символа.

5.   Подать на вход Е индикатора стробсигнал — положительный импульс длительностью не менее 500 нс. По перепаду стробсигнала из 1 в 0 осуществится запись данных из буфера в видеопамять индикатора.

6.   После записи всех кодов символов в видеопамять подается команда на индикацию.

Индикатор имеет параллельные шины данных и управления. Поэтому к последовательной шине I2C он подключен через соответствующий преобразователь. Это преобразователь последовательного кода шины I2C в параллельный

 

код PCA8574 фирмы NXP Semiconductor, бывшей Philips Semiconductor.

Блок тумблеров подключен к порту 0 МК. К линии 0 порта 2 МК через токоограничительный резистор подключен тумблер «Останов». Аварийная сигнализация подключена к линии 1 порта 2 МК.

Схема пульта управления представлена на рисунке 6.

Рисунок 5 — Схема пульта управления

7 Общий алгоритм управления

Рисунок 6 — Общий алгоритм управления

Блок i1 выполняет начальную установку системы.

Блок d1 реализует задачу логического управления: принимает информацию от двоичных датчиков Х1-Х5,Х8, вычисляет значение функции f(X1,…Х5,Х8)  выдает это значение в качестве управляющего сигнала Y1 по соответствующему выходному каналу на исполнительный механизм.

Блок a1 обеспечивает прием информации с аналоговых датчиков, ее преобразование в цифровую форму, вычисление значений управляющих воздействий Y2, Y3, Y4 и выдачу их на исполнительные механизмы. При выполнении этого блока учитывается значение уставки, заданной оператором с пульта.

Блок l1 обеспечивает циклический режим управления или останов системы в соответствии с командой, поступающей с пульта управления.

8 Алгоритм работы блока чтения информации с цифровых датчиков

Рисунок 7 — Алгоритм работы блока чтения информации с цифровых датчиков

В блоке d1 происходит побитовый ввод значений X1-X5,Х8 с одновременным вычислением значения функции f во флаге переноса.

Блок d2 проверяет значение функции f и если оно равно 0, то организуется обход блока d3.

Микроконтроллеры. 2