Аппаратная реализация микроконтроллеров на базе нечёткой логики

Автор работы: Пользователь скрыл имя, 18 Мая 2012 в 20:18, курсовая работа

Описание работы

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

Содержание работы

Введение 3
Нечеткая логика в Матлабе 9
Общая структура нечёткого микроконтроллера 11
Реализация системы проектирования нечётких контроллеров 12
Примеры проектирования нечеткого контроллера в среде Matlab 13
Примеры некоторых реально существующих микроконтроллеров, реализованных на базе нечёткой логики 23
Семейство 16-разрядных микроконтроллеров Motorola 68HC12: архитектура, основные характеристики, средства программирования-отладки 24
Заключение 45
Список используемой литературы 47

Файлы: 1 файл

Кр МСУ_10сем.docx

— 296.40 Кб (Скачать файл)

 Процессор CPU12 выполняет набор из 208 команд над операндами, расположенными в регистрах и ячейках памяти.

Система команд CPU12 является расширенным  набором команд семейства 68HC11 и включает в себя команды пересылки данных, команды арифметических и логических операций, сравнения и сдвигов, битовые команды, команды управления программой и управления процессором, а также группу дополнительных команд для обработки табличных данных и реализации “нечёткой логики”.

Группа команд пересылки включает в себя команды загрузки регистров  процессора (LDAA, LDAB, LDD, LDS, LDX, LDY), сохранения их содержимого в памяти (STAA, STAB, STD, STS, STX, STY) и команды пересылки и  обмена данными между различными регистрами (TAB, TAP, TBA, TFR, TPA, TSX, TSY, TXS, TYS, EXG, XGDX, XGDY). К этой группе относятся также команды, выполняющие запись содержимого регистров A, B, C, D в стек (PSHA, PSHB, PSHX, PSHY) и загрузку этих регистров из стека (PULA, PULB, PULX, PULY). Команды очистки устанавливают в 0 содержимое регистров-аккумуляторов и ячеек памяти (CLRA, CLRB, CLR).  Дополнительно введены команды MOVB и MOVW, позволяющие осуществлять пересылку 8- и 16-разрядных данных из памяти в память, команды LEAS, LEAX, LEAY, выполняющие вычисление эффективного адреса и его загрузку в регистры SP, X или Y, а также команды для записи содержимого регистров D, CCR в стек (PSHD, PSHC) и их загрузки из стека (PULD, PULC).

    Группа команд арифметических операций позволяет выполнять сложение и вычитание содержимого двух регистров или регистра и ячейки памяти с учётом или без учёта признака переноса (ABA, ABX, ABY, ADCA, ADCB, ADDA, ADDB, ADDD, SBA, SBCA, SBCB, SUBA, SUBB, SUBD), производить коррекцию результата сложения двоично-десятичных чисел (DAA), выполнять инкремент и декремент содержимого ячейки памяти или регистра (DEC, DECA, DECB, DES, DEX, DEY, INC, INCA, INCB, INS, INX, INY), изменять его знак (NEG, NEGA, NEGB). К командам умножения 8х8 (MUL) и деления 16/8 (FDIV, IDIV, IDIVS), имеющимся в микроконтроллерах семейства 68HC11, добавлены команды 16-разрядного умножения 16x16 (EMUL, EMULS), умножения 16x16 с накоплением (EMACS), деления 32/16 (EDIV, EDIVS) и знакового расширения (SEX).

   Команды сравнения выполняют установку признаков N, Z, V, C в регистре CCR в соответствии с результатом вычитания содержимого двух операндов, хранящихся в регистрах-аккумуляторах или регистре и ячейке памяти (CBA, CMPA, CMPB, CPD, CPS, CPX, CPY). Команды тестирования устанавливают значения признаков N, Z в соответствии с содержимым ячейки памяти или регистра-аккумулятора (TST, TSTA, TSTB). Команды побитового тестирования устанавливают признаки N, Z в соответствии с результатом логической операции И над содержимым регистра-аккумулятора и ячейки памяти (BITA, BITB).

          Команды логических операций реализуют побитовые операции И, ИЛИ, Исключающее ИЛИ над содержимым регистра и ячейки памяти (ANDA, ANDB, ANDCC, EORA, EORB, ORAA, ORAB, ORCC) и инвертирование содержимого регистра или ячейки памяти (COM, COMA, COMB).

         Группа команд сдвига включает команды одноразрядных арифметических, логических и циклических сдвигов, выполняемых над содержимым регистров-аккумуляторов и ячейки памяти (ASLA, ASLB, ASLD, ASRA, ASRB, LSRA, LSRB, LSRD, ROLA, ROLB, RORA, RORB, ASL, ASR, LSR, ROL, ROR).

         Команды битовых операций обеспечивают установку в 0 или 1 заданного бита в ячейке памяти (BCLR, BSET) и установку требуемого значения признаков C, I, V в регистре CCR (CLC, CLI, CLV, SEC, SEI, SEV).

        Команды управления  программой реализуют условные  и безусловные ветвления (JMP, Bcc, LBcc, BRA, LBRA, BRCLR, BRSET), организацию циклов (DBNE, DBNQ, IBNE, IBNQ), вызов подпрограмм  (JSR) и выход из подпрограммы (RTS) или процедуры обработки прерывания (RTI). Условиями ветвления могут быть значения признаков Z (нулевой или ненулевой результат), N (положительный или отрицательный результат), результаты выполнения команд сравнения операндов со знаком или без знака (>, >=, <, <=). В эту группу входит также команда программного прерывания (SWI).

       Для управления  процессором служат команды, переводящие  его в режим ожидания и останова (WAIT, STOP), в режим отладки (BGND), а  также команда отсутствия операций (NOP).

       В дополнительную  группу команд, реализуемых процессором  CPU12, входят команды интерполяции табличных данных (ETBL, TBL), которые позволяют вычислить значение линейной функции в заданной промежуточной точке. При обработке табличных данных обычно используются также команды, позволяющие выбрать минимальное или максимальное из двух чисел, расположенных в регистре-аккумуляторе и ячейке памяти (EMIND, EMINM, MINA, MINM, EMAXD, EMAXM, MAXA, MAXM).

Процессор CPU12 аппаратно поддерживает операции “нечеткой логики”, что  позволяет эффективно реализовывать на базе микроконтроллеров семейства HC12 соответствующие системы контроля. Группа команд “нечёткой логики” включает четыре команды. Команда MEM производит фазификацию, выполняя преобразование точных значений входных переменных в значения лингвистических переменных в соответствии с функциями принадлежности из базы знаний. Далее с помощью команд REVW и REV проводится непосредственно обработка полученных значений по заданному алгоритму с учётом или без учёта весовых коэффициентов правил обработки. С помощью команды WAV осуществляется дефазификация, в результате которой осуществляется переход от нечётких значений выходной переменной к точным выходным значениям, обеспечивающим требуемое управление системой.

Команды имеют длину от 1 до 6 байт. Выполнение большинства команд занимает от 2 до 6 тактов. Большее время выполнения имеют команды деления (11–12 тактов), умножения с накоплением (13 тактов) и прерывания (8–11 тактов).

Набор периферийных устройств

 

 

Из периферийных устройств микроконтроллеры семейства 68HC12 содержат модули параллельного и последовательного ввода/вывода данных, таймерный модуль, многоканальный аналого-цифровой преобразователь (АЦП), модуль формирования сигналов с широтно-импульсной модуляцией (ШИМ). Процессор CPU12 взаимодействует с этими модулями, обращаясь к их регистрам, которые после начальной загрузки микроконтроллера расположены в первых 512 позициях адресного пространства (рис. 16).

Порты ввода/вывода

Микроконтроллеры семейства 68НС12 имеют в своём составе от 8 до 12 параллельных портов ввода/вывода. Эти порты могут служить для обмена данными с внешними устройствами или выполнять определённые служебные функции. Например, при работе микроконтроллера в расширенном режиме порты A, B, C, D, E служат для организации обмена с внешней памятью. При использовании порта для ввода/вывода данных направление передачи для каждого отдельного вывода программируется путём загрузки соответствующего содержимого в регистр управления этого порта. Выходные буферные каскады портов могут программироваться на работу со стандартной или повышенной задержкой переключения. При увеличении задержки переключения достигается снижение потребления мощности и шумов на линиях. Можно также запрограммировать подключение “подтягивающих” резисторов к выводам порта, используемым в качестве входов.

Модуль последовательного  интерфейса

Для организации последовательного  обмена в состав микроконтроллеров включен модуль последовательного интерфейса, который состоит из одного или двух блоков асинхронного обмена SCI и блока синхронного обмена SPI. В состав этого модуля входит 8-разрядный порт S, отдельные линии которого служат для реализации последовательного обмена, а неиспользуемые линии могут служить для параллельного ввода/вывода данных. Блок SCI позволяет осуществлять обмен 8- или 9-разрядными данными по линиям связи с помощью протокола, совместимого с RS-232. Скорость передачи программируется и может достигать 38400 бит/c при тактовой частоте 8 МГц. Блок SPI обычно используется для обмена с периферийными устройствами и другими микроконтроллерами. В некоторых моделях микроконтроллеров имеются дополнительные модули последовательного обмена, реализующие протоколы CAN, I2C или J1850 (табл. 2).

Таймерный модуль

Этот модуль содержит 16-разрядный  счётчик с программируемым делителем  частоты, 8 каналов, индивидуально настраиваемых на работу в режиме захвата или в режиме сравнения, и 16-разрядный счётчик внешних импульсов. Сигналы захвата-сравнения поступают на выводы 8-разрядного порта T. Неиспользуемые линии этого порта могут служить для ввода/вывода данных. Таймерный модуль может использоваться для генерации периодических прерываний, измерения параметров входных сигналов или генерации выходных сигналов с широтно-импульсной модуляцией (ШИМ) без вмешательства центрального процессора.

Модуль формирования ШИМ-сигналов

В дополнение к возможностям генерации  ШИМ-сигнала с помощью таймерного модуля, в ряде моделей микроконтроллеров  имеется отдельный модуль формирования ШИМ-сигналов, оптимизированный для  применения в системах управления электроприводом. Данный модуль обеспечивает работу двух выходных каналов с 16-разрядной модуляцией ШИМ-сигналов (65536 значений скважности формируемых импульсов) или четырёх каналов с 8-разрядной модуляцией (256 значений скважности импульсов). Возможны комбинации сигналов с 16-разрядной и 8-разрядной модуляцией. Каждый из каналов имеет индивидуальный регистр настройки, что позволяет независимо программировать частоту и длительность выходных импульсов.

Модуль АЦП

В состав микроконтроллеров семейства 68НС12 входит 8- или 10-разрядный АЦП  последовательного приближения, который  имеет 8 или 16 входных каналов. АЦП  реализует 8 различных режимов преобразования. При работе в режимах без сканирования каналов АЦП отключается по окончании процесса преобразования. В режимах со сканированием каналов АЦП функционирует непрерывно, последовательно обслуживая входные каналы. Для работы АЦП не требуется подключение дополнительных внешних цепей. Опорное напряжение подаётся на соответствующие выводы процессора. Имеется также возможность подачи напряжения питания АЦП от отдельного стабилизированного источника.

 

 

 

Средства отладки  и программирования микроконтроллеров 68НС12

 

 

Для микроконтроллеров семейства 68НС12 существует достаточное количество средств разработки, поставляемых как  компанией Motorola, так и третьими фирмами.

Компания Motorola (www.mot-sps.com) предлагает два вида программно-аппаратных средств отладки: набор отладочных плат и устройство для внутрисхемной отладки по последовательному интерфейсу SDI. Отладочные платы, выпускаемые для каждой модели микроконтроллера, предназначены для макетирования разрабатываемой системы и отладки программ пользователя, написанных для данного микроконтроллера. В качестве примера можно указать платы 68EVB912B32, M68HC812A4EVB и M68KIT912DG128, предназначенные для работы с микроконтроллерами 68HC912B32, 68HC812A4 и 68HC912DG128, соответственно. Они содержат микроконтроллер, набор периферийных модулей и встроенный монитор, с помощью которого осуществляется связь отладочной платы с терминалом через один из последовательных портов микроконтроллера. Платы могут использоваться в качестве прототипной системы, для чего на них имеется монтажное поле.

Интерфейс SDI использует внутренние средства отладки (режим BDM), реализованные в микроконтроллерах семейства 68HC12. В состав интерфейса входят кабель с адаптером, который подключается к BDM-порту микроконтроллера и COM-порту компьютера. Программное обеспечение интерфейса позволяет выполнять внутрисхемную отладку и программирование микроконтроллера.

Аналогичные средства отладки поставляются рядом других фирм. Например, немецкая фирма Electronic Laden (www.elektronikladen.de) поставляет микроконтроллерные платы (например, Card12.D60), которые содержат различные модели микроконтроллеров семейства 68HC12 и схемы, необходимые для реализации необходимых интерфейсов.

С реди производителей программных средств отладки для семейства 68HC12 cледует отметить компании Cosmic Software и Hiware. Компания Cosmic Software (www.cosmic-software.com) предлагает кросс-компилятор Си и отладчик ZAP. Эти программы имеют удобный интерфейс пользователя и работают в среде Windows95/98. Компания Hiware (www.hiware.com) предлагает макроассемблеры (HI300301), компиляторы языков Си (HI200301) и Си++ (HI200311), симуляторы (HI400816, HI400843, HI400844) и отладчики (HI400800, HI400801 HI400822), работающие с аппаратными средствами различных производителей.

Эффективным и недорогим средством  разработки и отладки систем на базе микроконтроллеров семейства 68HC12 является аппаратно-программный комплекс 68HC12DK, разработанный в научно-методическом центре “Моторола-Микропроцессорные системы” МИФИ (www.micro.mephi.ru/motlab). Основой комплекса является BDM-адаптер, который обеспечивает взаимодействие системы отладки, реализованной на базе компьютера, и платы пользователя. Адаптер подключается к компьютеру по интерфейсу RS-232 и выполняет трансляцию команд системы отладки в команды BDM-режима, которые управляют работой отлаживаемой системы, реализуемой на базе микроконтроллера 68НС12.

Информация о работе Аппаратная реализация микроконтроллеров на базе нечёткой логики