Да облекчим живота си чрез логика. Конфигурируемите логически клетки опростяват реализацията на комплексни функции чрез микроконтролер
Начало > Електроника > Сп. Инженеринг ревю - брой 7/2018 > 05.11.2018

Маноу Венкатегоуда
Понякога нещо просто може да донесе значителна полза. При решаването на конкретна практическа задача повечето инженери използват различни по естество сигнали или логика и проектират сложни платки с логически елементи. Но за осигуряване на желаното функциониране на сложни приложения някои микроконтролери имат гъвкава периферия с конфигурируеми логически клетки (Configurable Logic Cell – CLC). Тази CLC периферия, допълваща разнообразните периферни модули на Microchip PIC микроконтролерите (MCU), позволява да се реализират прости функции с възможност за връзка с MCU.
CLC периферията позволява на потребителя да определи набор от сигнали като входни към някаква логическа функция и да използва логически изходи за управление на други периферни модули и на входно-изходни пинове. CLC се поддържа от приложението MPLAB Code Configurator (MCC) на Microchip. Това позволява на проектанта да поставя и премахва логически елементи с цел свързване на входове и изходи в GUI формат и да генерира C код с едно натискане на бутон, което опростява реализацията на CLC модули.
Независимата от ядрото периферия (Core Independent Peripheral – CIP) постига целите си, без да е необходим допълнителен код или управление от страна на CPU. По своята същност CLC представлява CIP, която опростява реализацията на сложни управляващи системи и в същото време дава на проектанта предостатъчна гъвкавост чрез разтоварване на CPU и разширяване възможностите на микроконтролерите. Тук ще изясним как в конкретно приложение CLC могат да бъдат използвани за фазова детекция на сигнали, генериране на комплементарни сигнали или за следене на множество параметри. Наличието на голям брой входове, тригери и изходи прави безкрайни възможностите на CLC.
За какво става въпрос
По своята същност CLC представлява конфигурирана от потребителя периферия, подобна на програмируемите логически устройства (Programmable Logic Devices – PLD), но вградена в микроконтролера. Неговите вътрешни и външни входове могат да бъдат използвани за входове на CLC, а CLC клетките приемат сигнали от други периферни модули или от входни пинове. След това извършват необходимата логическа операция и подават изходен сигнал за управление на друг периферен модул или го прилагат към друг В/И пин. Клетките могат да приемат сигнали от вътрешен генератор на импулси, от изхода на друг периферен модул и да следят процеси в периферията, например изход на таймер. През стъпало за следене на сигнала (signal gating stage) избраните входни сигнали могат да бъдат прехвърлени към желаната логическа функция.
Клетките поддържат различни логически функции като AND, OR, NOT, XOR, NAND, NOR и XNOR. В тях изходите на стъпалото за следене на данни (data gating stage) представляват входове към логическата функция на избраното стъпало. Последното стъпало на клетките е това за полярността, която може да бъде избирана. Една CLC клетка може да бъде използвана като самостоятелен периферен модул за реализация на последователни и комбинационни логически функции, което улеснява бързо регистриране и реакция на събития. Съвместното им използване с други периферни модули позволява разширяване на възможностите на модулите, което улеснява хардуерната реализация на сложни функции.
Тъй като CLC са независима от ядрото периферия те реално намаляват изискванията към честотната лента на CPU за дадено приложение чрез прехвърляне на множество прости функции от него към периферията. Същевременно намаляват изискванията към Flash и RAM паметта, тъй като се намалява обемът на необходимия софтуер. Реализираните чрез хардуер логически блокове са с по-голямо бързодействие от софтуерно реализираните. Освен това CLC осигуряват по-голяма степен на интеграция, тъй като не изискват никакви външни елементи, а това намалява площта на печатните платки.
Фазов детектор
Гъвкавостта и простотата на CLC разширява възможностите за проектиране с PIC микроконтролери. Един от добрите примери, който показва възможностите на CLC, е фазовият детектор с многобройни приложения включително измерване на разстояние. Принципът на действието му е, че при изпращане към обект на високочестотна радиовълна, разстоянието до него е пропорционално на фазовата разлика между нея и отразената вълна. CLC може да се използва за измерване на фазовата разлика между два сигнала с еднаква честота. Сигналите от изпратената и приетата вълна се използват като входни за CLC и фазовата разлика между тях на изхода на CLC може да се използва за изчисляване на разстоянието между източника и обекта.
В реализацията на фазов детектор чрез CLC тяхната логическа функция AND-OR може да бъде използвана за реализация на функция XOR с цел измерване на големината на фазовата разлика, докато логическата функция на D-тригер (D-FF) позволява да се получи информация за изпреварването и закъснението на сигналите. Освен между правоъгълни импулси, е възможно да се измерва фазата между други видове аналогови сигнали, например синусоидални. На фиг. 1 е дадена схемата на реализиран чрез CLC фазов детектор.
Източниците на сигнали, чиято фазова разлика трябва да бъде измерена, се съединяват към входовете на два компаратора, свързани към нулеви детектори (ZCD) за преобразуване на входните аналогови сигнали в правоъгълни импулси със същата честота. Когато самите входни сигнали са правоъгълни импулси, нулевите детектори не са необходими. Чрез вътрешни връзки получените правоъгълни импулси се подават на няколко CLC модула. Клетката CLC1 и входният регистриращ блок (Input Capture - IC) служат за определяне на големината на фазовата разлика. Свързването на тази клетка е за реализиране на логическата функция AND-OR, от която да се получи действието XOR. Изходът XOR на CLC1 се свързва външно като източник на сигнал за IC, а продължителността на импулса на изхода дава големината на фазовата разлика между двата сигнала, измервана чрез IC. Липсата на изходен сигнал на CLC1 означава, че двата източника на сигнали са във фаза.
За да се получи информация за изпреварването/закъснението на двата входни сигнала клетката CLC се свързва като D-FF, единият сигнал се подава на вход D и другият служи за тактов сигнал. Високото и ниското логическо ниво на изхода на CLC2 означават съответно изпреварване и закъснение на фазата на вход D спрямо тактовия вход. Определянето на фазовата разлика между два сигнала с еднаква честота е полезно в много приложения – измервателни прибори, цифрови захранвания, комуникационна и медицинска апаратура.
Генератор на комплементарни сигнали
Друг начин за използване на CLC е в генератор на комплементарни сигнали (Complementary Waveform Generator – CWG) с управление от входния източник на мъртвия интервал (Dead-Band Control). Този интервал с определена продължителност (Dead-Band Time) се вмъква между двата сигнала за избягване появата на отскоци на тока в различни захранвания. Тук са показани възможностите за използване на CLC за разпознаване на мястото на фронтовете и създаване на прекъсвания при генериране на комплементарни сигнали с единичен регистриращ/сравняващ/ШИМ модул (Single Capture/Compare/PWM - SCCP) като входен блок. Много приложения, например управление на електродвигатели, изискват за работата си няколко генератора на комплементарни сигнали. Това се осъществява чрез многолентов регистриращ/сравняващ/ШИМ модул (Multiple Capture/Compare/PWM - MCCP) за генериране на сигнали без припокриване чрез управление на мъртвите интервали в изхода. Когато дадено приложение изисква повече МССР от съществуващите в наличния прибор, може да се използва комбинация на SCCP и CLC.
Друга комбинация е на CLC периферия и SCCP за генериране на комплементарни сигнали с желан мъртъв интервал, тъй като самият SCCP модул не може да генерира сигнали без припокриване. Възможно е добавянето на мъртъв интервал както в изходи SCCP със съвпадащи фронтове (Edge-Aligned SCCP Output), така и в такива със съвпадащи среди на импулсите (Centre-Aligned SCCP Output). На фиг. 2 е показана структура с CLC1, CLC2 и CLC3 за регулиране на мъртвия интервал в SCCP изход със съвпадащи фронтове.
Например драйвер за електродвигател реализиран като пълен мост може да се захранва чрез MCCP периферия, като на неин изход се генерира комплементарен сигнал. При необходимост от захранване на няколко реализирани като пълен мост драйвера за електродвигател и недостатъчен брой MCCP периферия МССР в даден прибор може да се използва комбинация от SCCP и CLC.
Следене на множество параметри
Многобройни са приложенията, изискващи едновременен контрол на различни параметри като температура, налягане и влажност. Когато той се състои в регистрирането на определен горен или долен праг на параметър, действието му може да предотврати катастрофални последици. Източници на входните сигнали на CLC при този контрол могат да бъдат многоканални компаратори, докато компараторът в микроконтролер може да следи един-единствен параметър. За контрол на множество параметри може да се съчетае изходът на многоканален компаратор със CLC, като задействането е възможно при прехвърляне на прага на който и да е от следените параметри или на всички.
На фиг. 3 е показана схема със CLC за следене на два параметъра, която практически се използва за температурата и налягането в индустриална инсталация така, че тя да може да бъде изключена при надхвърляне на предварително установен праг на един от тях. Възможно е приложение на схемата и за следене на напреженията на непрекъсваемо захранване.
Заключение
Допълването на периферните модули с конфигурируеми логически клетки позволява на потребителите по прост начин да реализират традиционно външна логика в PIC микроконтролери. Чрез комбиниране на изходите на различни периферни модули се подобряват възможностите на наличните и се разширява приложението им. Тъй като хардуерно реализираните логически функции са по-бързи от изпълняваните по програмен път, използването на CLC увеличава бързодействието на цялата система. Постига се и по-висока степен на интеграция, защото не са необходими външни логически елементи за реализиране на определени функции. Освен това CLC позволява чрез ползването на логически елементи да се комбинират различни източници на входни сигнали и да се получават изцяло нови сигнали. Всички тези гъвкави входове, изходи и логически функции се реализират лесно чрез GUI базирания MPLAB Code Configurator, който генерира C код за конкретното приложение.
Вижте още от Електроника
Ключови думи: PIC микроконтролери, конфигурируеми логически клетки, независима от ядрото периферия, генератор на комплементарни сигнали
Новият брой 9/2024