9
ЕЛЕКТРОНСКИ ФАКУЛТЕТ У НИШУ ОБРАЗАЦ ЗА ПРИЈАВУ ТЕХНИЧКОГ РЕШЕЊА У складу са одредбама Правилника о поступку и начину вредновања, и квантативном исказивању научноистраживачких резултата истраживача, који је донео Национални савет за научни и технолошки развој Републике Србије Службени гласник РС», бр. 38/2008) достављам следеће податке. Обавезни подаци: Аутор/аутори решења: Борисав Јовановић, Дејан Мирковић, Милунка Дамњановић Назив техничког решења: Коло за програмирање IP блока 8051 микроконтролера Категорија техничког решења (навести према одредбама Правилника садржаним у НАПОМЕНИ* ): прототип, нове методе, софтвер, инструмент, нове генске пробе, микроорганизми и сл.”-лабораторијски прототип М85 За кога је решење рађено и у оквиру ког пројекта МНТР: Коло за програмирање ИП блока 8051 микроконтролера пројектовано је у LEDA Лабораторији Електронског факултета Универзитета у Нишу према спецификацијама корисника резултата EWG огранак Ниш”. Ово техничко решење проистекло је из рада на пројекту под називом НАПРЕДНЕ ТЕХНОЛОГИЈЕ ЕЛЕКТРОНСКОГ МЕРЕЊА, УПРАВЉАЊА И КОМУНИКАЦИЈЕ НА ЕЛЕКТРИЧНОЈ ДИСТРИБУТИВНОЈ МРЕЖИ ”, које је финансирало Министарство за науку Републике Србије под шифром ТР32004. Ко решење користи тј. Ко је прихватио-примењује решење: Коло за програмирање IP блока микроконтролера директно је пројектованo по спецификацији корисника резултата истраживања а то је EWG огранак Нишкоји развија прототип трофазног вишефункциалног бројила и система за даљинско очитавање и управљање потрошњом електричне енергије Година када је решење урађено: 2014. година Како су резултати верификовани(од стране кога тела): Решење је верификовао корисник истраживања EWG огранак Ниш”, из Ниша а затим је прихваћено од стране ресорног Министарства за науку и технолошки развој Републике

IP 8051 - Елфак · Коло за ... електричне енергије, укључујући сигма-делта ad конверторе, дигиталне филтре

  • Upload
    others

  • View
    36

  • Download
    0

Embed Size (px)

Citation preview

Page 1: IP 8051 - Елфак · Коло за ... електричне енергије, укључујући сигма-делта ad конверторе, дигиталне филтре

ЕЛЕКТРОНСКИ ФАКУЛТЕТ У НИШУ

ОБРАЗАЦ ЗА ПРИЈАВУ ТЕХНИЧКОГ РЕШЕЊА

У складу са одредбама Правилника о поступку и начину вредновања, и квантативном исказивању научноистраживачких резултата истраживача, који је донео Национални савет за научни и технолошки развој Републике Србије («Службени гласник РС», бр. 38/2008) достављам следеће податке. Обавезни подаци: Аутор/аутори решења:

Борисав Јовановић, Дејан Мирковић, Милунка Дамњановић

Назив техничког решења:

Коло за програмирање IP блока 8051 микроконтролера

Категорија техничког решења (навести према одредбама Правилника садржаним у НАПОМЕНИ* ):

„прототип, нове методе, софтвер, инструмент, нове генске пробе, микроорганизми и сл.”-лабораторијски прототип – М85

За кога је решење рађено и у оквиру ког пројекта МНТР: Коло за програмирање ИП блока 8051 микроконтролера пројектовано је у LEDA Лабораторији Електронског факултета Универзитета у Нишу према спецификацијама корисника резултата „EWG огранак Ниш”. Ово техничко решење проистекло је из рада на пројекту под називом „НАПРЕДНЕ ТЕХНОЛОГИЈЕ ЕЛЕКТРОНСКОГ МЕРЕЊА, УПРАВЉАЊА И КОМУНИКАЦИЈЕ НА ЕЛЕКТРИЧНОЈ ДИСТРИБУТИВНОЈ МРЕЖИ ”, које је финансирало Министарство за науку Републике Србије под шифром ТР32004. Ко решење користи тј. Ко је прихватио-примењује решење: Коло за програмирање IP блока микроконтролера директно је пројектованo по спецификацији корисника резултата истраживања а то је „EWG огранак Ниш” који развија прототип трофазног вишефункциалног бројила и система за даљинско очитавање и управљање потрошњом електричне енергије

Година када је решење урађено:

2014. година Како су резултати верификовани(од стране кога тела): Решење је верификовао корисник истраживања „EWG огранак Ниш”, из Ниша а затим је прихваћено од стране ресорног Министарства за науку и технолошки развој Републике

Page 2: IP 8051 - Елфак · Коло за ... електричне енергије, укључујући сигма-делта ad конверторе, дигиталне филтре

Србије усвајањем завршног извештаја са пројекта под називом „НАПРЕДНЕ ТЕХНОЛОГИЈЕ ЕЛЕКТРОНСКОГ МЕРЕЊА, УПРАВЉАЊА И КОМУНИКАЦИЈЕ НА ЕЛЕКТРИЧНОЈ ДИСТРИБУТИВНОЈ МРЕЖИ”, под шифром ТР32004 На који начин се резултати користе Остварено техничко решење доступно је као VHDL опис (дигитални део),  као Verilog опис,  као детаљно описана процедура за пројектовање и у GDSII формату у виду претпројектоване структурe реализоване на бази CMOS технологије TSMC 65nm. Област на коју се техничко решење односи Коло за програмирање IP блока микроконтролера примењује се у технологији мерења, контроле и управљање електричном енергијом. Овај блок налази примену као претпројектована структура која се примењује у пројектовању интегрисаних мерача потрошње електричне енергије. Проблем који се техничким решењем решава У модерним системима на чипу, нове технологије фабрикације кола омогућиле су интеграцију мноштва нових функција на истој површини силицијума, затим, знатно веће брзине сигнала такта, мању динамичку компоненту снаге дисипације. Овде је објашњен поступак верификације пројекта, глобална шема, сам рад уграђених кола која омогућавају поступак програмирања IP блока 8051 микроконтролера. Пројектовани микроконтролер део је сложеног интегрисаног система на чипу – интегрисаног мерача потрошње електричне енергије. IP блок користи стандардни 8051 скуп инструкција. Рад микроконтролера проверава се кроз серијски комуникациони интерфејс. Стање решености овог проблема у свету 8051 микроконтролери налазе примену у многим електронским колима и системима, где се захтева нека обрада сигнала или контрола процеса, тако да се у зависности од спецификација пројекта користи одговарајућа тактна фреквенција микроконтролера, скуп периферијских јединица и друге карактеристике. Постоје различите имплементације 8051 микроконтролера. Често се 8051 микроконтролери имплементирају на чипу специфичне намене заједно са другим IP блоковима. Поред тога, 8051 микроконторлер може да се имплементира и на FPGA чиповима. У нашем случају пројектовани IP блок је део система на чипу - интегрисаног мерача потрошње електричне енергије. Овде је објашњен поступак верификације пројекта, глобална шема и рад уграђених кола, која омогућавају поступак програмирања микроконтролера. Објашњење суштине техничког решења и детаљан опис са карактеристикама, укључујући и пратеће илустрације и техничке цртеже Опис микроконтролера - глобална шема IP блок микроконтролера (MCU) је пројектован да извршава стандардни 8051 скуп инструкција, који садржи чак 255 различитих инструкција. Због обимног скупа инструкција и постојања 6 модова адресирања, 8051 микроконтролер може се сврстати у CISC микрорачунаре (микрорачунаре са сложеним скупом инструкција). Овај скуп инструкција се често користи и подржан је од стране многих алата за развој софтвера.

Page 3: IP 8051 - Елфак · Коло за ... електричне енергије, укључујући сигма-делта ad конверторе, дигиталне филтре

Главна структура MCU-а се састоји од језгра, меморијских блокови, блока за програмирање и иницијализацију и периферијских јединица (Сл.1). Језгро MCU-а прибавља, декодира и извршава инструкције. Периферијске јединице се састоје из три паралелна дигитална улазно/излазна порта (P0, P1 и P2), неколико комуникационих модула - једног универзалног асинхроног пријемника/предајника (UART) и I2C комуникациониг контролера. Такође, MCU садржи три кола тајмера/бројача. Сви меморијски блокови се физички налазе на чипу. MCU не садржи меморију за трајно складиштење програмског кода. Уместо тога, користи SRAM меморију, капацитета 8kB и један екстерни серијски EEPROM чип (Сл.1). Сваки пут након ресетовања микроконтролера, програмска меморија се аутоматски учитава из спољашњег EEPROM-а у SRAM блок. Пројектовани 8051 микроконтролер је део Интегрисаног мерача потрошње електричне енергије (ИПМ) који садржи све потребне функционалне блокове за 3-фазно мерење електричне енергије, укључујући сигма-делта AD конверторе, дигиталне филтре и блок за дигиталну обраду сигнала. Везе микроконтролера ка Baseband процесору и I2C EEPROM меморији

Слика 1. Блок шема блока микроконтролера

Микроконтролер је повезан са екстерним Baseband процесором преко Serial Protocol Interface (SPI) (Сл.1) . Baseband процесор управља радом микроконтролера преко скупа од укупно седам 8-битних регистара mSPI_reg који су физички имплементирани у микроконтролеру. SPI интерфејс (Сл. 1) садржи 4 линије:

SCLK - такт сигнала SDIN - улазни сигнал за податке SDOUT - излазни сигнал за податке SEN - сигнал дозволе за пренос података.

SCLK, SDIN и SEN представљају улазне сигнале микроконтролера; генерисани су дакле, од стране Baseband процесора. SDOUT је излазни сигнал микроконтролера. У серијском

Page 4: IP 8051 - Елфак · Коло за ... електричне енергије, укључујући сигма-делта ad конверторе, дигиталне филтре

преносу података преко SPI интерфејса микроконтролер обавља функцију слејва, док је Basebend мастер. Сигнал SCLK није у синхронизму са основним тактом 8051 микроконтролера. Ово представља значајан изазов током пројектовања и логичке верификације. Пројектовано је јединствено решење SPI контролера који садржи додатна подкола за синхронизацију тактних сигнала SCLK и CLK. Употребом овог кола SPI комуникација ради и на фреквенцији од 100МHz. Од укупно седам mSPI_reg регистара посебно су важни:

-mSPI_reg2 - контролни регистар преко кога Baseband управља радом микроконтролера

-mSPI_reg3 - статусни регистар преко ког Baseband добија информације о раду микроконтролера

-регистар mSPI_reg4, преко кога се преносе подаци из Baseband–а у микроконтролер Посебно су важна два бита регистра mSPI_reg2, која су означена са Mode(1:0). Преко њих Baseband може да ресетује микроконтролер или да бира начине (модове) програмирања. Поред тога, Baseband може да уписује програмски код у SRAM меморију микроконтролера. Микроконтролер jе повезан даље, преко I2C серијске магистрале, са екстерном EEPROM меморијом у којој се трајно памти програмски код (Сл.1). Током свога рада микроконтролер може да уписује податке у EEPROM меморију. То је нарочито важно, јер микроконтролер не поседује у себи неки вид трајне меморије за чување резултата. I2C магистрала се састоји од две линије:

SDA - за податке SCL – за тактни сигнал

У I2C комуникацији микроконтролер обавља функцију мастера, док је EEPROM меморија слејв. Брзина I2C комуникације ограничена је на 100kHz Модови за програмирање микроконтролера Baseband процесор ресетује микроконтролер уписивањем команде за ресет у регистар mSPI_reg 2 - Моde (1: 0) = "00". Након ресетовања, следи програмирање. Две се опције користе - обележене су као опције А и Б. Опција А не користи EEPROM меморију. Састоји се из следећих операција: 1. Baseband поставља битове Моde (1:0) = "10". 2. Baseband програмира 8kB програмског кода у SRAM микроконтролера преко SPI интерфејса. Када се заврши уписивање програма, микроконтролер почиње извршавање програма. Програмска меморија MCU-a од 8kB јe имплементирана као SRAM блок на чипу. SRAM губи свој садржај након нестанка напајања. Да би се то спречило, потребно је да се програм запамти у спољашњи EEPROM чип. Приликом рестартовања микроконтролера, програм се ишчитава из EEPROM-а у SRAM меморију.

Слика 2. Пакет података за уписивање у EEPROM меморију

Oпција Б користи 24LC64 EEPROM меморију и састоји се из следећих операција: 1. Baseband процесор поставља битове Мode (1: 0) = "01"

Page 5: IP 8051 - Елфак · Коло за ... електричне енергије, укључујући сигма-делта ad конверторе, дигиталне филтре

2. Baseband програмира 8kB програма у SRAM преко SPI линија 3. истовремено, док прима програмски код, микроконтролер уписује исти у ЕЕPROM 4. када је пренос програма у SRAM и EEPROM завршен, MCU почиње извршавање програма. Програмски код у виду пакета од 32 бајтова преноси се преко I2C линија ка EEPROM меморији. Слика 2 приказује структуру једног пакета података. Пакет почиње стартним битом иза кога следи адреса EEPROM меморије. Затим следе MSB и LSB бајтови адресе на којој се подаци смештају, низ од 32 бајта дела програмског кода и на крају стоп бит за крај преноса. Бајтови су раздвојени битом потврде. Време кашњења од 5ms је потребно између узастопних пакета ради исправног уписивања у ЕЕPROM меморију. Baseband процесор проверава да ли је процес програмирања готов преко бита Programmed који се налази у регистру mSPI_reg3. Када је Programmed = '1' поступак програмирања је завршен. Опција Б подразумева следеће: 1. Baseband поставља битове Моde (1:0) = "11". Садржај ЕЕPROM - се чита и пребацује у SRAM преко I2C-а. Када је пренос програмског кода у SRAM завршен, MCU почиње извршавање програма.

Сл. 3. Пакет података за читање ЕЕПРОМ меморије.

Слика 3 приказује структуру података који се преносе преко I2C магистрале. Поворка бајтова има два дела. Први део се користи за уписивање почетне адресе ЕЕPROM са које се подаци читају. Почиње стартним битом, затим следи адреса ЕЕPROM меморије и I2C команда за упис, и након ње, MSB и LSB делови адресе. Други сео секвенце почиње битом поновљеног старта, следи адреса ЕЕPROM меморије и команда за читање. Након ње, микроконтролер прима низ од 8192 бајтова. И у овом случају, Baseband процесор добија информацију о завршетку програмирања преко бита Programmed који се налази се у регистру mSPI_reg3. Имплементација микроконтролера MCU је реализован је у технологији TSMC 65nm и користи напон напајања од 1.2V. Приликом имплементације коришћени су Cadence алати за пројектовање кола:

-RTL Compiler за синтезу -SoC Encounter за размештај и повезивање веза. -NCSim за логичку верификацију кола

Реализовани микроконтролер има следеће предности у односу на основну архитектуру индустријског 8051 микроконтролера:

-коло је имплементирано у модерној TSMC 65nm технологији -нова проточна архитектура језгра микроконтролера 8051 остварује брзину од

једне једнобајтне инструкције која се извршава у два тактна циклуса.

Page 6: IP 8051 - Елфак · Коло за ... електричне енергије, укључујући сигма-делта ad конверторе, дигиталне филтре

-коло може да ради на фреквенцији од 60MHz -кориштено је више техника за смањење динамичке потрошње. На фреквенцији од

60MHz потрошња снаге је свега 3mW.

Логичка верификација поступка програмирања микроконтролера Поступци програмирања SRAM меморије преко SPI интерфејса, програмирања EEPROM меморије и каснијег ишчитавања његовог садржаја у SRAM обухваћени су опсежним логичким проверама. Поступак верификације логичке почиње писањем асемблерског програма који се компајлира Keil [1] или SDCC [2] C компајлерима у одговарајући .hex фајл. Након тога, посебни C програм преводи .hex фајл у VHDL код. VHDL програм са програмским кодом се убацује y посебан тестбенч опис написан у VHDL -у, који проверава поступак програмирања микроконтролера. Микроконтролер који је предмет провере, је инстанциран је у тестбенчу. Тестбенч пролази кроз све модове за програмирање. У VHDL опису тестбенча је посебним процесом симулиран рад SPI комуникационог контролера Baseband процесора. Такође, инстанциран је и VHDL опис EEPROM меморије. Током поступка логичке верификације, VHDL програм са програмским кодом се ишчитава и бајт-по-бајт, пребацује преко SPI порта у микроконтролер (Сл. 1). Релевантни резултати логичке симулације рада микроконтролера добијени у облику временских дијаграма омогућавају увид у промену стања SFR регистара микроконтролера. Поређењем добијених и очекиваних стања верификован је рад истог. Посебну тешкоћу при пројектовању микроконтролера и нарочито, његовог подсистема SPI комуникације, представља то што су такт процесора Baseband SCLK и такт микроконтролера CLK независни. Зато су пројектована посебна кола која синхронизују ова два тактна сигнала.

Симулације које проверавају кола за синхронизацију разматрају разне комбинације фреквенција тактних сигнала SCLK и CLK. Максимална тактна фреквенција микроконтролера је 60MHz. SPI комуникација верификована је до вредности од 100MHz. Контролна логика реализована тестбенчом, која симулира рад Baseband процесора, управља поступком слања бајтова програмског кода. Бајтови се шаљу преко SPI интерфејса. Затим, преко I2C магистрале у EEPROM меморију.

Током симулације опције Б, када се програмира EEPROM чип, битови mSPI_REG2 регистра се постављају у стање Mode(1: 0) = "01". После ресета, бајтови се серијски шаљу у пакетима од по 32 бајтова у EEPROM, на начин које је већ описан. Након успешног програмирања, микроконтролер поставља сигнал Programmed на ниво логичке "1". Контролна логика тестбенча, која симулира рад Baseband процесора, чита садржај статусног бита Programmed.

Иницијализација програмске SRAM меморије из EEPROM-а почиње након ресетовања чипа, када се поставља Mode(1: 0) = "11". Подаци се ишчитавају из EEPROM -а и смештају у 8kB SRAM. Контролу преноса података из једне меморије у другу обавља логика реализована у тестбенчу, која симулира рад Baseband процесора. Читање EEPROM-a траје све док бројач који прослеђује адресу не постигне вредност адресе задње локације SRAM. Такође, процес ишчитавања се завршава када је Programmed = '1'.

Тестирање модова за програмирање чипа

Page 7: IP 8051 - Елфак · Коло за ... електричне енергије, укључујући сигма-делта ad конверторе, дигиталне филтре

Глобална шема система за тестирање микроконтролера приказана је на Слици 4.

Састоји се контролне апликације која је инсталирана на персоналном рачунару и штампане плоче која пројектована је за потребе тестирања чипа.

Везе између рачунара и штампане плоче је USB. Поред чипа који је предмет провере, плоча садржи Baseband процесор и EEPROM меморију која се користи за меморисање програма.

Сл. 4. Глобална шема система за тестирање микроконтролера

Контролна апликација се користи за контролу параметара свих подсистема

интегрисаног кола у коме је уграђен IP блок MCU 8051. Посебан део контролне апликације односи се на рад са микроконтролером и преко њега могуће је:

-ресетовати 8051 микроконтролер -унети (лоадовати) .hex фајл којим се микроконтролер програмира -одабрати мод програмирања и по њему испрограмирати микроконтролер -тестирати рад микроконтролера преко посебног мода микроконтролера -проверити садржај интерне RAM меморије микроконтролера и свих SFR

регистара, што је од значаја приликом верификације микроконтролера и провере асемблерских програма писаних за исти.

Контролна апликација преко Baseband чипа управља радом микроконтролера. Развијена је у Code Blocks open-source развојном окружењу коришћењем GCC компајлера. У фирмверу Baseband чипа уграђене ова основне функције за упис и читање регистара mSPI_REG. Ове функције директно користе SPI протоколл за пренос података између Baseband процесора и микроконтролера. Поједини делови контролне апликације користе ове основне функције да би све горе наведене функције биле омогућене.

Надаље, описани су алгоритми који су имплементирани у апликацији а користе се за програмирање микроконтролера. Наиме, следи опис алгоритма који се користи за уписивање програмског кода у микроконтролер. На почетку, микроконтролер се ресетује уписом команде за ресет у регистар mSPI_REG2. Два LSB бита регистра mSPI_REG2 (битови Mode1 и Mode0) се ресетују. Након тога, у ова два бита уписују се нове вредности - Mode(1:0)="01" или "10", у зависности од избора мода за програмирање. Током мода 1, код програма се снима у SRAM и EEPROM. Током мода 2, само се SRAM иницијализује новим програмским кодом. Код програма се шаље у пакетима који се састоје од 32 бајтова. Сигнал микроконтролера EmptyFIFO садржи информацију да ли је FIFO меморија празна (део блока за програмирање и иницијализацију који је приказан на Сл.1). тј. да ли је меморија спремна да прими нове податке из Baseband-а. EmptyFIFO може да се провери читањем статусног регистра mSPI_REG3 и проналажењем вредности на LSB бит позицији. Ако EmptyFIFO = '1', подаци могу да се шаљу из Baseband-а, тако што се 32 бајтова програма уписују један за другим у регистар mSPI_REG4. Уписивање пакета се понавља 256 пута за свих 8192 бајтова програма. На крају се Programmed бит проверава за завршетак програмирања.

Page 8: IP 8051 - Елфак · Коло за ... електричне енергије, укључујући сигма-делта ad конверторе, дигиталне филтре

Сл. 5. Поступак програмирања микроконтролера у моду 3

Слика 5 приказује алгоритам који се користи за иницијализацију програмског кода, када се он чита из спољашњег EEPROM чипа. На почетку алгоритма, микроконтролер се ресетује уписом команде за ресет у регистар mSPI_REG2. Након тога, у битове регистра Mode1 и Mode0 уписују се нове вредности - Mode (1:0)="11". На крају, проверава се бит Programmed. IP блок 8051 микроконтролера представља део сложеног система чипу и успешно је верификован након опсежних симулација. Све провере потврђене су симулацијама након израде лејаута. Посебно су верификовани делови кода који се користе за програмирање микроконтролера. Микроконтролер користи неколико модова за програмирање. Један од њих директно иницијализује програмску SRAM меморију микроконтролера кодом који се преноси преко Baseband процесора; друга опција за програмирање смешта програмски код истовремено у SRAM меморију и спољашњу I2C EEPROM меморију, где се тај код трајно чува. У серијском преносу података преко SPI интерфејса микроконтролер обавља функцију слејва, док је Baseband мастер. Такни сигнала SPI комуникације није у синхронизму са основним тактом микроконтролера. Посебно пројектовано решење SPI контролера превазилази овај проблем. Како је реализовано и где се примењује, односно које су могућности примене Коло за програмирање IP блока 8051 микроконтролера реализовано је заједничким радом стручњака из LEDA Лабораторије Електронског факултета Универзитета у Нишу, према спецификацијама које је дао корисник резултата „EWG огранак Ниш” који раzвија прототип трофазног вишефункционалног бројила и система за даљинско очитавање и управљање потрошњом електричне енергије. Коло је реализовано у CMOS теhнологији TSMC 65nm. Истовремено отворене су могућности да се пројекат прилагођава новим технологијама производње.

Page 9: IP 8051 - Елфак · Коло за ... електричне енергије, укључујући сигма-делта ad конверторе, дигиталне филтре