Диссертация (1143270), страница 13
Текст из файла (страница 13)
3-10. Структурная организациямикроконтроллера со встроенным модулем нечетких вычисленийК преимуществам данной структуры относится отсутствие потребностииспользования АЛУ процессорного ядра блоком НВ, что обеспечиваетнезависимость протекания процесса нечеткой обработки данных от процессаалгоритмических вычислений и допускает их одновременность, что в своюочередь повышает вычислительную производительность микропроцессорнойсистемы в целом в сравнении с референтными моделями микроконтроллеров совстроенными аппаратными узлами нечетких вычислений, описанными в главе1.Наличие у блока нечетких вычислений собственного встроенного АЛУобеспечивает работу с описаниями термов произвольного вида, задаваемых иобрабатываемых посредством описанных в разделах 2.2 и 2.3 методов иструктур, что расширяет многообразие нечетких систем, реализуемых на119основе данного способа, в сравнении референтными системами, описанными вглаве 1.Кдополнительнымпреимуществамданнойструктурыотноситсяпотенциальное достижение высокого темпа обмена данными между основнымядром и НВ, а также снижение трудоемкости формирования термовпроизвольного вида.
Кроме того, подобный способ доступа к памятиобеспечивает простоту и высокую достижимую скорость смены баз нечеткихзнаний, расположенных в общем адресном пространстве.Наконец,минимизациюпредлагаемыеархитектурныемассогабаритныхпараметроврешенияобеспечиваютмикропроцессорныхсистемуправления и обеспечивают экономное использование линий ввода-выводаосновного микроконтроллера [143].НК включает следующую минимальную совокупность узлов (рис. 3-11)[133]:Нечеткий микроконтроллерБлок нечетких вычисленийСистемауправленияи сопряженияFuzAddrFuzDatПроцессорноеядроБазавходныхтермовБазаправилБазавыходныхтермовФаззификаторБлоклогическихзаключенийДефаззификаторFuzConFuzInputFuzOutputРис.
3-11. Структурная схема нечеткого контроллера.120 процессорное ядро; система управления и сопряжения блока нечетких вычислений; модуль фаззификации; модуль логических заключений; модуль дефаззификации; модуль хранения базы правил; модули хранения баз входных и выходных термов.Обмен информацией между процессорным ядром и блоком нечеткихвычислений осуществляется посредством регистров специальных функций(SFR) – их перечень с указанием назначения и адресами дан в табл.
3-1 [133].Табл. 3-1. Регистры специальных функций блока нечетких вычислений.Управляющие биты регистра FuzCon описаны в табл. 3-2, организацияпамяти встроенного нечеткого вычислителя показана на рис. 3-12 [133].Табл. 3-2. Формат регистра FuzCon.РазрядИмя битаНазначение7startЗапуск вычислений (”1”). Установка программная, сброс аппаратный6busyСостояние (”0”–свободен, ”1”–вычисляет). Уст. и сброс аппаратные.5wrRuleCntСтроб записи количества правил. Установка и сброс программные.121РазрядИмя бита4wrRule3–2resetНазначениеСтроб записи в память правил. Установка и сброс программные.ЗарезервированИнициализация.
Установка программная, сброс аппаратный.wr(Tiyj)max Строб записи очередного (Tiyj)max. Установка и сброс программные.10wrTermFuzAddr_H/FuzAddr_LСтроб записи в память термов. Установка и сброс программные.Памятьвходных термов.Строб записи: wrTermПамятьFuzAddr_H/ максимумов.FuzAddr_L Строб записи:FuzAddr_H/FuzAddr_LПамятьправил.Строб записи: wrRule00/00…00/FF01/00…01/FFНомера термовдля столбца Х1матрицы правилНомера термовдля столбца Х2матрицы правил……04/00…04/FF05/00…05/FF06/00…06/FFНомера термовдля столбца Х5матрицы правилНомера термовдля столбца Y1матрицы правилНомера термовдля столбца Y2матрицы правилwr(Tiyj)max00/00…00/FF01/00…01/FFРазвертка терма 1для Х1……09/00…09/FF0A/00…0A/FF0B/00…0B/FFРазвертка терма 10для Х1…Развертка терма 1для Х200/19hРазвертка терма 2для Х200/20h(Т1y3)max………………31h/00…31h/FFРазвертка терма 10для Х5(Т10y5)max09/00…09/FFНомера термовдля столбца Y5матрицы правилРазвертка терма 2для Х1количества правил.FuzAddr_H/ РегистрСтроб записи: wrRuleCntFuzAddr_L:количество00/00используемых правил00/00(Т1y1)max……00/09(Т10y1)max00/0A…00/0F–00/10h(Т1y2)max…(Т10y2)max00/1A…00/1F–00/49hнумерация с нуля.в позиции термов,Примечание: не используемых вправиле, занести 0FhРис.
3-12. Адресное пространство нечеткого вычислителя.1223.3. Микропроцессор со встроенным контроллером сети элементарныхнечетких вычислителейДетализированная структура микроконтроллера с блоком сопроцессорасетей элементарных нечетких вычислителей показана на рис. 3-13 и включаетследующие узлы [133]: процессорное ядро; система управления сопроцессором сети ЭНВ и его сопряжения с внутреннейшиной; модульуказателябазынечеткихзнанийэлементарногонечеткоговычислителя; модуль указателя базы сети ЭНВ; модуль ЭНВ; модуль хранения выходных результатов узлов сети элементарных нечеткихвычислителей.Нечеткий микроконтроллерСопроцессор СЭНВСистемауправленияи сопряженияFuzX1..FuzXnFuzY1..FuzYkПроцессорноеядроFuzConKDB_PTRУказательбазынечеткихзнанийЭНВПамятьвыходовузловСЭНВЭНВУказательбазысетиЭНВфаззификаторблок логическихвыводовдефаззификаторNEFS_PTRРис.
3-13. Взаимодействие микроконтроллера с сопроцессором СЭНВ.123Система управления и сопряжения процессорного ядра со встроеннымсопроцессором сети ЭНВ обеспечивает возможность занесения из ядра МКнастроек и исходных данных для работы сопроцессора, прием из ядра МКвходных значений, активизацию нечетких вычислений и управление процессомвыполнения их стадий, передачу на процессорное ядро выходных значений.Обмен информацией между ядром МК и СЭНВ выполняется традиционнымобразом – путем обращения к SFR.Регистры FuzX1..FuzXn содержат значения входных величин блока СЭНВ,а FuzY1..FuzYk – значения его выходных величин.Регистр FuzCon содержит разряды флага активации нечетких вычислений,флага занятости, флага разрешения генерации сопроцессором СЭНВ поокончании вычислений запроса прерывания и обслуживания этого прерывания.Регистр KDB_PTR является указателем на начало области памяти МК,содержащей базу нечетких знаний элементарного нечеткого вычислителя.Память МК является двухпортовой, при этом через основной порт (портпроцессорного ядра) память доступна для чтения и записи, а черездополнительный порт (порт сопроцессора СЭНВ) память доступна только длячтения (рис.
3-14). Этим гарантируется бесконфликтность и независимостьчастично или полностью совпадающих во времени процессов доступа к памятисо стороны ядра и стороны сопроцессора СЭНВ.Такимобразом,подготовивБНЗЭНВ,процессорноеядромикроконтроллера устанавливает KDB_PTR на ее начало, обеспечиваясопроцессору СЭНВ возможность вычислений по заданной БНЗ.
Подготовив впамяти несколько БНЗ, процессорное ядро имеет возможность оперативной (завремя выполнения одной команды пересылки нового значения в KDB_PTR)смены базиса ЭНВ.Аналогичным образом с помощью регистра NEFS_PTR осуществляетсязадание и смена описания графа сети ЭНВ (рис. 3-15).124Нечеткий микроконтроллерПамятьАдресПроцессорноеядроЧтениеДешифратор1ДешифАдресратор2МатрицарегистровБуфер1СопроцессорСЭНВЧтениеБуфер2ЗаписьДанныеДанныеРис. 3-14. Совместный доступ к памяти микроконтроллера и сопроцессора СЭНВ.N НКNвых … N НКNвыхХnХ1N НКпарам_1…Nвых парам_mNвых … N НКХnХ1НК mНК 1а)Y1…YkНК 1…Y1…б)YkНК mРис.
3-15. Организация базы описания сети ЭНВ (а),хранение промежуточных результатов вычислений (б).125Система управления сопроцессором СЭНВ, обратившись посредствомNEFS_PTR к памяти описания графа СЭНВ, загружает в ЭНВ описание входовочередного j-го узла нечеткой сети, принимая их значение либо из FuzX1..FuzXn (если Nнк=0), либо из внутренней памяти значений выходов узловСЭНВ Y1..Yk НК с соответствующим номером.
Вычисленные значения Y1..YkЭНВ заносятся в предназначенные для хранения ячейки НКj. По окончаниидвижения по графу СЭНВ выходные значения из памяти промежуточныхзначений заносятся в регистры FuzY1.. FuzYk.Регистры специальных функций, управляющие работой аппаратноговычислителя сети ЭНВ, приведены в табл. 3-3.Табл. 3-3. Регистры специальных функций сопроцессора СЭНВПримеры подпрограмм на языке ассемблера для процессорного ядраосновногомикроконтроллераархитектурыx51,используемыхдляконфигурирования и использования ЭНВ на основе проектов, разработанных всистеме Fuzzy51, приведены на рис.
3-16. Рассмотренные выше архитектурныерешения были реализованы на языке VHDL в инструментальной среде Quartusс применением дополнительных инструментальных средств, описанных вразделе 3.4, и интегрированы с процессорным ядром семейства x51 [85,86,150].126mov dptr, #vX2_T2 ;установка dptr на начало;развертки терма2 для Х2;во внешней памяти МКmov FADDRH, #Bh ;начальные значенияmov FADDRL, #0 ;указателя адреса ЭНВmov r0,#0;счетчик повторенийcycle:;цикл: чтение точкиmovx a,@dptr;развертки термаinc dptr;подгот.
к след. чтению;из внешней памяти МКmov FUZDAT, a;занесение в Рег данныхsetb FUZCON.0;подать строб записиclr FUZCON.0;для памяти термов ЭНВinc FADDRL;увеличение указателяdjnz r0,cycle;повтор для всех точек;развертки (256 раз)a) Пример занесения терма в память ЭНВmov dptr,#NUMRUL ;чтение кол-ва правилmovx a,@dptr;из внешней памяти МКmov r0,a;счетчик правилmov FADDRH,#0 ;установка указателяmov FADDRL,#0 ;базы правил НВ на Х1mov dptr,#RULES ;установка dptr на начало;таблицы правил;во внешней памяти МКcycle: ;цикл: перенос кодов термов заданной;переменной из внешней памяти МК в ЭНВmovx a,@dptr;считать элемент правилаdec a;в НВ нумерация с нуляanl a,#0Fh ;если не используется, занести Fhmov FUZDAT, a;занесение в Рег данныхsetb FUZCON.4;подать строб записиclr FUZCON.4;для памяти правил ЭНВinc FADDRL;увелич. указатель ЭНВmov a,dpl;в таблице правилadd a,#10;во внешней памяти МКmov dpl,a;коды термов каждойmov a,dph;лингвистич.















