R=U/ I=5/ 0,005=1 кОм. ( )
Мощность рассеиваемая резистором будет равна:
Р=I2*R=0,0052*1000=0,025 Ом.
Из [ ] выберем для R18_R25 следующие номиналы: C2-33H - 0,125 - 1кОм +10%. Теперь произведем расчет для схемы управления электродвигателем. Так как микроконтроллер должен быть связан с мощным потребителем энергии, нужно предусмотреть в схеме управления гальваническую развязку между микроконтроллером и электродвигателем. Электромотор включается подачей логической единицы на порт Р1.6.(выключается нулем). В связи с этим предлагается применить оптронную развязку со схемой рекомендуемой предприятием-изготовителем. Оптрон типа — твердотельное реле 5П19Т. Его параметры: Iвх=25мА; Uком=+400В; tcраб,max=0,01мс; Iвх и=10мА; Iвых=1 А; тип корпуса 37х24х11 мм. Оптрон связан с микроконтроллером через буферный элемент НЕ и резистор R26 сопротивлением 360 Ом. Такая же схема включения идет на второй электродвигатель(порт Р1.7).Для задания направления вращения электродвигателя предлагается использовать электромагнит(“1”-- вращение по часовой стрелке; “0”--вращение против часовой стрелки).Электромагнитный замок собран на транзисторе VT6 и подключен на порт Р.1.4. Резистор в базе рассчитывается исходя из тока коллектора транзистора. Диод VD11 предназначен для защиты транзистора во время включения и выключения , так как катушка электромагнита является индуктивной нагрузкой. Из [ ] выбираем диод КД226.
Расчет схемы контроля датчика физической массы пользователя. Так как для контроля массы в шлюзе предполагается использовать в качестве датчика массы обычные весы с аналоговым сигналом на выходе, то необходимо применить аналого-цифровой преобразователь. Для оцифровки этого напряжения необходимо использовать АЦП, который должен удовлетворять следующим требованиям: легко сопрягаться с микроконтроллером и требовать минимум внешних элементов для сиоей работы. Таким требованиям удовлетворяет микросхема К1113ПВ1 [ ]. Это функционально-законченный АЦП, основные технические характеристики которого следующие:
диапазон изменения входных напряжений — от -5 до +5 вольт;
разрядность — 10 бит;
время преобразования — 30мксек;
логические выходные сигналы — ТТЛ.
Работает схема следующим образом. При поступлении на вход “Запуск” АЦП сигнала низкого уровня запускается его внутренний генератор, и начинается процесс преобразования величины напряжения, присутствующего на выводе 13, в цифровую форму. Через 30 мксек. этот процесс заканчивается и на выходы D1_D10 выдается цифровой код. О том, что данные поступили на выход, АЦП сообщает выдачей сигнала низкого уровня на выводе 17 (“Готовность”). Во время преобразования выходные линии данных находятся в Z-состоянии. Уровень логического нуля на выводе 15 определяет работу АЦП в режиме преобразования однополярного входного напряжения. Питается схема двуполярным напряжением +5В и -15В.
Так как высокой точности определения положения R29 не требуется, то ограничимся разбиением всего диапазона положений на 128 уровней. Тогда для представления номера каждого уровня потребуется log2128=7 двоичных разрядов. Поэтому задействованы будут выходы D1_D7 АЦП. Определим теперь диапазон входных напряжений, которые необходимо снимать с датчика для получения на выходе АЦП кодов от 0 до 128 (от 0000000 до 1111111 в двоичном представлении). При работе с однополярными входными сигналами диапазон входных напряжений составляет от 0 до 10 вольт. Им соответствует выходные двоичные коды от 0 до 1023 ( т. е. от 0000000000 до 1111111111). Таким образом, вес младшего разряда составляет 10/1023 В - т.е. приблизительно 10мВ. Тогда для получения кода “1111111” необходимо подать входное напряжение 10*128=1,28 В. При перемещении движка реостатного датчика R29 в верхнее по схеме положение, напряжение на входе АЦП составит:
U=5*R29/(R29+R28) ( )
Приравнивая его к 1,28 , находим требуемое сопротивление резистора шкалы R28:
R28=3,9*R29
Резистор R28 выбран переменным для возможности подстройки под конкретный тип датчика. Итак, для обработки сигналов от датчика массы потребуется девять линий связи с микроконтроллером: семь линий данных и две линии управления (запуска и готовности).
5.Разработка алгоритма управляющей программы
При проектировании системы в основу данной разработки блок-схемы алгоритма (БСА) была положена та же процедура модульного проектирования, которая традиционно используется разработчиками аппаратурных средств. Алгоритм управляющей программы составлен для контроллера шлюза и ориентирован на микроконтроллер AT89C51-20PI (см. чертеж “Блок схема алгоритма”).
Алгоритм имеет разветвленную структуру и дальнейшее его описание будет происходить в строгом соответствии с каждым символом-блоком действий.
Запрос прерывания. Алгоритм начинается с проверки условий запроса прерывания. Имеется в виду прерывание по портам P3.2 (INT0) и P3.3(INT1). Инициатором прерывания являются электронные идентификаторы. Регистор масок прерываний устанавливается в “разрешение внешних прерываний”. От внешних прерываний (если пользователь прикоснулся идентификатором считывателя кода) устанавливаются флаги IE0 или IE1 в регистре TCON, которые инициируют вызов соответствующей подпрограммы обслуживания прерывания. Флаги опрашиваются аппаратно в каждом машинном цикле. Внешние прерывания INT0 и INT1 вызываются переходом сигнала из 1 в 0 на входах МК51. То есть проверка запроса прерывания заключается в проверке условий: установлен флаг IE0 (или IE1) или нет. Если флаг установлен, значит есть запрос прерывания и программа переходит к обслуживанию ввода 64-ех битного кода идентификатора пользователя. Если флаг не установлен (то есть нет запроса прерывания), тогда программа переходит к блоку обработки — “Опрос датчиков”.
Ввод кода. После того как обнаружено прерывание, происходит переход к вводу идентификационного кода, который заключается в комбинациях минизадержек и опросов порта P3.2 (или P3.3). Задержка организуется запуском таймера (105 мксек), в течении которой опрашиваются входные порты. Инициатором запуска таймера выступает микроконтроллер, который выдает “стробирующие импульсы” на выход порта P3.5( или Р3.7) и переходит в режим ожидания ответа от идентификатора в течении задержки. Считывая код, микроконтроллер каждый бит заносит в резидентную память данных. Программа считывания кода с идентификатора приведена в приложении 3.
ИК1=1; ИК2=1. После того как код считан и занесен в РПД, программа переходит к следующему блоку. В данном случае блок индикации. Контроллер настраивает порты Р1.0 и Р1.1 на вывод логических нулей, для того чтобы “зажечь” красные светодиоды на обеих сторонах шлюза. Красные светодиоды сигнализируют пользователю, что код считан и система обрабатывает полученные данные, причем внешние прерывания от идентификаторов игнорируются. Затем программа переходит к блоку передачи кода в моноканал.
4) Вывод кода. Вывод кода в моноканал для передачи его на пульт управления происходит следующим образом. МК51 переходит в режим ожидания запроса от пульта управления. Имеется в виду следующее.
В регистре специальных функций SCON микроконтроллера имеется управляющий бит SM2, который в режиме 3 УАПП позволяет относительно простыми средствами реализовать обмен информацией в локальной сети между контроллерами и пультом управления (компьютером). Механизм обмена информацией через последовательный порт МК51 построен на том, что в режиме 3 программируемый девятый бит данных при приеме фиксируется в бите RB8. УАПП программируется таким образом, что при получении стоп-бита прерывание от приемника будет возможно только при условии RB8=1. Это выполняется установкой управляющего бита SM2 в регистре SCON. Компьютер в протокольном режиме “широковещательной” передачи (всем ведомым контроллерам) выдает в моноканал слово-адрес микроконтроллера, которое отличается от слов-данных только тем, что в его девятом бите содержится 1. Программа реализации протокола сетевого обмена информацией построена таким образом, что при получении слова-адреса, МК51 сверяет полученный адрес со своим адресом и в случае совпадения выдает в моноканал слово подтверждающее запрос адреса. Затем сбрасывает свой управляющий бит SM2 и готовится к подтверждению ответа от компьютера. После подтверждения микроконтроллер переходит к передаче кода-идентификатора в моноканал и заканчивает передачей кода “конец связи”. Передача ведется в режиме 3 УАПП.
Ожидание1. “Ожидание1” является подпрограммой обслуживающей обмен данными между компьютером и контроллером. Когда МК51 передает данные в моноканал он затем переходит в режим ожидания от компьютера. Это реализуется аппаратурной реализацией временного интервала на основе таймера задержки длительностью 2мсек.
В задачу ожидания также входит определение момента прихода ответа от компьютера. Для этого каждые два цикла микроконтроллера опрашивается регистор SCON.0( или бит RI). Бит RI устанавливается аппаратно в единичное состояние для фиксации приема байта в регистре SBUF. (Флаг прерывания приемника RI устанавливается аппаратурно в середине периода стоп-бита в режиме 3. Подпрограмма обслуживания прерывания должна сбрасывать бит RI). То есть если обнаружено, что в течении ожидания RI=1, значит пришел ответ от компьютера.
Ввод ответа. В течении ожидания приходит ответ от компьютера, который заносится в РПД. А в резидентной памяти программ (РПП) хранятся коды правильных и неправильных кодов-ответов (см. Таблицу5.1)
Таблица 5.1
адрес РПП | информационный код | назначение |
0CH | 00001111 | пользователь идентифицирован |
0DH | 11110000 | пользователь неидентифицирован |
0EH | 00011111 | подлиность подтверждена |
0FH | 11100000 | подлиность неподтверждена |
Сверяя полученные ответы с хранящимися кодами, МК51 принимает соответствующее решение о переходе на ту или иную подпрограмму.