2.2 Исполнение микроконтроллера
Микроконтроллер выпускается в двух видах корпусов.
Расположение выводов и конструктивные размеры различных корпусов приведены на Рис. 2 и Рис.3.
Рис. 2 - Конструктивные размеры микроконтроллера РIС16F84A (исполнение 1)
Рис. 3 - Конструктивные размеры микроконтроллера РIС16F84A (исполнение 2)
2.3 Особенности микроконтроллеров серии PIC16F
Особенности CPU Высокой Производительности RISC:
• Только 35 единых команд операции над словами для узнавания
• Весь единый цикл инструкций за исключением программы ветви, которые являются два-циклом
• Действие скорости: DC - 20 отмечающего время входа Mгц DC - 200 цикла инструкции ns
• 1024 слова памяти программы
• 68 байтов Оперативной ПАМЯТИ Данных
• 64 байта Данных EEPROM
• 14-разрядные широкие команды
• 8-разрядные широкие байты данных
• 15 Специальных Аппаратных записей Функции
• Восьми-горизонтальный глубокий аппаратный стек
• Направьте, косвенные и относительные способы адресации
• Четыре источника прерывания:
- Внешняя иголка RB0/INT
- Избыток таймера TMR0
- PORTB<7:4> включенное изменение прерывания
- Запись данных EEPROM завершить
2.4 Периферийные особенности, специальные особенности, технология
Периферийные Особенности
• 13 входов I/O с индивидуальным контролем направления
• Высокая текущая сточный выход/источник для прямого выхода
- 25 max сточного выхода mA. за направление
- 25 max источника mA. за направление
• TMR0: 8-разрядный таймер/счетчик с 8-куском программируемый prescaler
Специальные Особенности Microcontroller:
• 10,000 стереть/написать Увеличенную ВСПЫШКУ циклов
Типичная память программы
• 10,000,000 типично стереть/написать циклы EEPROM
Типичная память данных
• Сдерживание Данных EEPROM > 40 лет
• Включенная длина окружности Серийный Programming™ (ICSP™) – через два входа
• Энергетический Включенный Reset (POR), Энергетический Верхний Таймер (PWRT)
Таймер Старта Осциллятора (OST)
• Таймер (WDT) watchdog с собственным включенным Осколком RC
Осциллятор для надежного действия
• Защита кода
• Мощность, сохранение метода СНА
• Выбираемые варианты осциллятора
CMOS Увеличенный FLASH/EEPROM
Технология:
• Низкая мощность, технология большой скорости
• Полностью неподвижный проект
• Повсюду ряд операционного напряжения:
- Коммерчески: 2.0V 5.5V
- Индустриально: 2.0V 5.5V
• Низкое энергетическое потребление:
- < 2 mA типично @ 5V, 4 мгц
- 15 ???типично @ 2V, 32 kHz
- < 0.5 типичных текущих резервирования ?????2V
2.5 Эксплуатационные характеристики
Температура окружающей среды под bias-55°C +125°C
Температура хранения -65°C +150°C
Напряжение на любой входе относительно VSS (кроме того VDD, MCLR, и RA4) -0.3V (VDD + 0.3V)
Напряжение на VDD относительно VSS -0.3 +7.5V
Напряжение на MCLR относительно VSS(1). -0.3 +14V
Напряжение на RA4 относительно VSS -0.3 к +8.5V
Полное энергетическое потребление(2).800 mW
Максимальный ток вне входа. 150 mA
Максимальный ток на входе VDD 100 mA
Входной текущий зажим, IIK (VI < 0 или VI > VDD)?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ??20 mA
Выходной текущий зажим, IOK (VO < 0 или VO > VDD) ?????????????????????????????????????????????????????????????????????????????????????????????????????????????? ??20 mA
Максимальный вывод, текущий ниже уровня чем угодно I/O pin. 25 mA
Максимальный вывод текущий sourced любой вход I/O 25 mA
Максимально текущий ниже уровня?PORTA 80 mA
Максимальный текущий sourced PORTA 50 mA
Максимально текущий ниже уровня PORTB 150 mA
Максимальный текущий sourced PORTB 100 mA
Примечание 1: Значения напряжения ниже VSS на входе MCLR, индуктируя больше токи, чем 80 mA, может вызвать верхним пределом.
Поэтому, резистор серии 50-100W должен использоваться при обращении “низкого уровня” ко входу MCLR скорее, чем вдергивание этого входа непосредственно к VSS
3. Разработка алгоритмов устройства
Алгоритм работы программы модулятора показан на рис. 4. После пуска и инициализации регистров программа переходит к постоянному контролю датчиков на размыкание. Контроль датчиков производится в то время, когда несущая включена. Это происходит через одну секунду. Если любой из 11 датчиков сработал, то номер этого датчика переписывается в регистр модуляции. Далее значение регистра модуляции сравнивается на ноль, и если оно не равно нулю, то регистр декрементируется. Устанавливается логическая единица на выходе RA3, включая тем самым модуляцию передатчика. Отработав паузу, равную 2,7 мс, выход устанавливается в нулевое состояние. Программа переходит на сравнение регистра модуляции на ноль. Таким образом, в то время, когда включена несущая, произойдет модуляция количеством импульсов, равным номеру сработавшего датчика.
Когда регистр модуляции обнулится, программа выключит несущую и установит флаг выключения несущей по срабатыванию датчика. Далее программа ожидает выключения флага несущей по переполнению таймера. Прерывание по переполнению таймера происходит либо из подпрограммы ожидания выключения флага несущей, либо, если датчик не сработал, из подпрограммы опроса датчиков.
При кварцевом резонаторе на частоту 32768 Гц, коэффициенте деления предделителя, равном 32, и коэффициенте деления таймера, равном 256, прерывание по переполнению таймера будет происходить каждую секунду. После сохранения регистров проверяется флаг включения несущей. Если несущая была включена, то проверяется флаг выключения несущей по срабатыванию датчиков. Если несущая выключена, то прерывание завершается восстановлением регистров. Если несущая не выключена по срабатыванию датчиков, формируется импульс модуляции, выключается несущая и устанавливается флаг выключения несущей по переполнению таймера. Прерывание завершается.
Рис. 4 - Алгоритм работы программы модулятора для пожарной сигнализации
Через секунду все повторится с включения несущей и формирования импульса модуляции, если не произошло выключение несущей по срабатыванию датчиков. Если датчики сработали, то импульс модуляции не формируется. Таким образом, если ни один датчик не разомкнут, каждую секунду будет формироваться импульс модуляции длительностью 2,7 мс. Импульс модуляции будет сформирован в центре импульса включения несущей. Длительность импульса включения несущей равна 8 миллисекундам. Если же какой-либо датчик сработал, то несущая включится на время формирования количества импульсов модуляции, равном номеру датчика. Если охранные датчики не сработали, то идет постоянный опрос датчиков и сброс флага выключения несущей по срабатыванию датчиков.
Алгоритм работы программы демодулятора показан на рис. 5. В демодуляторе используется два прерывания: по переполнению таймера и по изменению сигнала на входе порта «ВО». После пуска и инициализации программа выполняет постоянную индикацию. В дежурном режиме регистр индикации нулевой и все сегменты индикации будут иметь нулевое значение. Для семисегментного индикатора с общим катодом это равносильно выключению индикатора.
В дежурном режиме пожарной сигнализации с компаратора приемника будут поступать импульсы на вход RB0 с интервалом в одну секунду. С такой же частотой будет происходить прерывание по входу RB0. После сохранения значений регистров определяется, почему произошло прерывание-. Если прерывание произошло не по переполнению таймера, то проверяется длительность входного импульса. Если длительность импульса короче, чем половина длительности импульса посылки с передатчика (т.е. 1,34 мс), то такой импульс воспринимается как помеха и не подсчитывается счетчиком. Если длительность импульса больше 1,34 мс, то обнуляется таймер, определитель и счетчик миллисекунд. Если флаг переполнения включен (было переполнение), то инкрементируется регистр счета. Далее процессор проверяет значение регистра счета. Если в регистр записано 20 и более импульсов, то регистр обнуляется и включается звуковой сигнал. Ситуация, когда на счетчик приходит 20 импульсов, принята аварийной. Это возможно при работе пожарной сигнализации в зоне повышенных помех или помех, которые наводятся специально.
Рис. 5 - Алгоритм работы программы, демодулятора для пожарной сигнализации
Каждые 0,125 секунды может происходить прерывание от переполнения таймера. За одну секунду между импульсами, поступающими на вход RB0, произойдет 8 прерываний по переполнению таймера. При каждом прерывании будет инкрементироваться счетчик миллисекунд. Но поскольку коэффициент деления счетчика миллисекунд равен 11, то переполнения счетчика за одну секунду не будет. А каждая новая секунда будет начинаться с обнуления таймера и счетчика миллисекунд. При значении счетчика, равном 5 (0,6 с), переписывается значение регистра счета в регистр индикации. Это необходимо для того, чтобы при выходе передатчика из аварийного режима обнулялось предыдущее значение регистра счета. Далее проверяется значение регистра индикации, чтобы оно не превышало число 12. Если значение регистра индикации равно или больше 12, то регистр обнуляется. Последующая проверка регистра счета на число 20 является дублирующей аналогичную проверку при инкрементировании регистра счета.
При значении счетчика миллисекунд, равном 7 (0,88 с), выключается звуковой сигнал, если он был включен, и сбрасывается флаг переполнения (рис. 8.). Это также необходимо для нормального выхода из аварийного режима, поскольку эти операции (при значении счетчика 5 и 7) выполняются в интервале времени, равном 1 секунде.
Если после последнего импульса, пришедшего на вход, прошло более 1 секунды, точнее, 1,125, а это соответствует значению счетчика миллисекунд, равному 9, включится звуковой сигнал и установится флаг переполнения. Включение флага переполнения разрешает подсчет входных импульсов. А при каждом входном импульсе сбрасывается счетчик миллисекунд, таймер и предделитель. Поэтому значение счетчика миллисекунд, равное 11, возможно только тогда, когда приемник выходит из зоны действия передатчика или если передатчик прекратил функционирование. В этой ситуации счетчик миллисекунд обнуляется, а звуковой сигнал уже включен.
Таким образом, при поступлении импульсов на вход RB0 каждую секунду, что свидетельствует о нормальной работе охраны, сигнал тревоги включаться не будет, а цифровой индикатор не будет светиться. При размыкании любого из датчиков произойдет переполнение счетчика миллисекунд, включится сигнал, а на индикаторе можно наблюдать номер сработавшего датчика.
Рис. 6 - Алгоритм работы программы демодулятора для пожарной сигнализации
Для наглядности алгоритма работы программы демодулятора рассмотрим диаграмму, показанную на рис. 7 (для наглядности на диаграмме масштаб не соблюдается). В дежурном режиме каждое включение несущей передатчика сопровождается выдачей импульса модуляции. Импульс модуляции с выхода компаратора приемника будет поступать на демодулятор через одну секунду. В аварийном режиме несущая передатчика будет включаться только на время «t» для формирования импульсов с числом, равным номеру датчика. Учитывая, что период импульсов равен 5,37 мс, максимальное значение «t» будет приблизительно равно 0,06 мс (И импульсов). А максимальное значение длительности паузы между импульсами будет равно 2 - 0,06 = 1,94 с. Счетчик миллисекунд демодулятора до включения аварийного режима имеет коэффициент деления, равный 9, поэтому переполнение счетчика будет происходить через 1,125 секунды, что гораздо меньше максимального значения паузы.
При первом переполнении счетчика миллисекунд включается флаг переполнения. После включения флага переполнения начинает заполняться регистр счета. Перезапись в регистр индикации производится спустя 0,6 с после прихода последнего импульса. Таким образом, индикация обновляется каждые две секунды.
Если число импульсов, поступивших с компаратора, больше 11, то результат не выводится на индикатор как заведомо ложный. Такой вариант возможен при высоком уровне помех. Но даже и в этом случае включение звукового сигнала будет свидетельствовать о несанкционированном вторжении на охраняемый объект. При поступлении более 20 импульсов при любом значении флага переполнения включится тревожный сигнал. Это сделано для того, чтобы невозможно было вывести систему из строя путем подачи непрерывного сигнала помехи.
Рис. 7 - Диаграммы работы демодулятора
При экспериментировании с подачей сигнала сильной помехи по общему проводу наблюдался самопроизвольный переход микроконтроллеров в режим повышенного энергопотребления. Это я могу объяснить самопроизвольной переустановкой регистра, который определяет установку входа как выход (TRISA, TRISB).
4. Ассемблирование
Для ассемблирования спользуется макpоассемблеp MPASM, он содеpжит все необходимые нам возможности. MPASM входит в пакет программ Microchip MPLAB фирмы Microchip Technology.
Программа на языке Ассемблеp приведена в Приложении А.
... информации о количестве полученной потребителем или выработанной производителем тепловой энергии, температуре, давлении, объеме (массе) теплоносителя и о времени работы в открытых и закрытых водяных системах теплоснабжения при давлениях до 1,6 МПА (16 кгсм2) и температурах до +150 °С. Область применения - теплоэнергетика, системы коммерческого учета расхода горячей воды и тепловой энергии, ...
... , элементы питания – 2400 мм2) высота пульта управления с учётом ширины корпуса будет равна 10 мм. 7. ТЕХНИКО-ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ 7.1 Характеристика проекта Проектируемая система представляет собой систему охранной сигнализации автомобилей. В разрабатываемой системе будут реализованы функции, как автономной охраны, так и централизованной. Так, например, она будет в режиме «Тревога» ...
... сигналами времени. Ядро предлагает интерфейс для программирования приложения с целью получения функций в виде отдельных программ. 1.2 Разработка автоматизированной системы управления электроснабжением КС «Ухтинская» 1.2.1 Цель создания АСУ-ЭС Целью разработки является создание интегрированной АСУ ТП, объединяющей в единое целое АСУ электрической и теплотехнической частей электростанции, ...
... процессорной станции осуществлять высоконадежную защиту и эффективный контроль доступа на объект защиты. 2.Выбор и обоснование технических требований Структура технических средств системы защиты и контроля доступа в помещения (СЗКДП) должна представлять собой двухуровневую централизованную систему, работающую в реальном времени. На верхнем уровне — пульт управления (ЭВМ, совместимая с IBM ...
0 комментариев