телевизори. Конзоли. Проектори и аксесоари. Технологии. Цифрова телевизия

Какво прави микроконтролерът в едно устройство? Какво е микроконтролер? Приложение на микроконтролери. Прочетете повече за вътрешните блокове на микроконтролера

Какво е необходимо, за да станете професионален разработчик на програми за микроконтролери и да достигнете ниво на умения, което ще ви позволи лесно да намерите и получите работа с висока заплата (средната заплата на програмист на микроконтролери в Русия в началото на 2015 г. е
80 000 рубли).

За да разберете за какво ще говоря, препоръчително е да знаете електрониката поне на начално ниво или поне повече или по-малко да помните училищния курс по физика. Ако не можете да се похвалите с това, тогава също не се притеснявайте, тъй като ще се опитам да обясня всичко възможно най-ясно. Е, ако някои неща са ви останали неясни, задавайте въпроси. Просто ви моля да опишете проблема си възможно най-подробно, за да не губим вашето и моето време в кореспонденция с допълнителни разяснения.

За тези, които имат проблеми с гледането на видеото, ще обясня накратко съдържанието му.

И така, микропроцесорът и микроконтролерът са специални чипове. Но как се различават един от друг?

Въпросът не е толкова прост, колкото ни се иска. Ще кажа повече, не съм сигурен, че знам правилния отговор))) Въпреки това, въз основа на моите значителни знания и опит, мога да се опитам да отговоря.

В древни времена компютърните системи са били изграждани на много различни видове чипове. Едно време изобщо нямаше микропроцесори. Компютърните системи първо бяха механични, след това базирани на тръби, след това транзисторни. След това дойде времето на интегралните схеми.

Имах възможност да работя в първата съветска автоматична телефонна централа (АТС) с програмно управление. Процесорът му беше сглобен на чипове от серия 155 (инженерите по електроника ще ме разберат). Тази телефонна централа заемаше цяла стая.

Но с времето елементна базаставаше все по-малък и по-малък по размер. Това, което преди това беше сглобено от няколко десетки микросхеми, беше натъпкано в една микросхема. Така се появи микропроцесорът.

Въпреки това, за да се създаде пълноценна изчислителна система, бяха необходими и други елементи: памет, входно-изходни елементи и др. В резултат на това микропроцесорната система се състои от няколко чипа и контролира цялата система микропроцесор.

Технологията обаче не стои неподвижна. Учени и инженери са успели да направят кристалите на микрочипа още по-малки. И някой излезе с идеята да комбинира всички елементи на микропроцесорна система в един чип. Ето как се появи микроконтролер.

Толкова модерно микроконтролере чип, който включва всички елементи на микропроцесорна система, като процесор, входно/изходни портове, RAM и др.

По този начин, за да сглобите някакво просто устройство, просто трябва:

  • Разработете схема на устройството
  • Изберете микроконтролер
  • Напишете програма за микроконтролер
  • Заредете програмата в микроконтролера („флашнете“ микроконтролера)
  • Сглобете устройството
  • Насладете се на резултата

Труден? Да, не е лесно. Но ако сте от онези, които се отказват при първия проблем, то тази професия не е за вас. Професионалният програмист е силна личност, човек, за когото няма нерешими задачи.

Приложения на микроконтролери

Днес микроконтролерите се използват в почти всички електронни устройства- от китайски гирлянди до системи за управление на атомни електроцентрали. Разбира се, функционалността и надеждността на микроконтролерите в гирляндите и в атомните електроцентрали са различни.

Почти всички уреди(с възможно изключение на обикновени електрически чайници и подобни устройства) се управлява от микроконтролери: перални машини, телевизори, хладилници, мултикукъри и др.

Съвременните автомобили също използват микроконтролери в бордовите компютри.

Като цяло е трудно да се модерен святнамерете сфера на човешката дейност, в която не се използват микроконтролери.

Какъв е изводът от това?

вярно Ако станете професионален програмист в областта на разработването на устройства на микроконтролери и тяхното програмиране, тогава няма да останете без работа. И като се има предвид факта, че тази професия е сложна и не всеки иска да се занимава с нея, тази работа също ще бъде високо платена, тъй като търсенето на такива специалисти е високо.

Но ще говорим за това повече в следващите статии. Чакай писма. И ако все още не сте се абонирали, тогава

Микроконтролерите днес се използват почти навсякъде: в модерни монитори, хладилници, таблети, системи за сигурност, перални машинии така нататък. Във всяко електронно устройство, което изисква контрол, микроконтролерът може да заеме своята ниша. И всичко това благодарение на факта, че може да се програмира почти както желаете. Следователно дори един тип микросхема може да се използва в различни електронни устройства.

Въпреки сложността на дизайна на модерен микроконтролер, можете да кажете как работи само с едно изречение: „Програмният код просто се записва в паметта на микроконтролера, MK чете команди от тази програма и след това просто ги изпълнява, ” - това е целият принцип на работа.


Разбира се, микроконтролерът не може да изпълнява никакви команди, а само тези, за които е предназначен (основен набор от команди), той ги разбира и знае как да ги усвоява. Чрез комбиниране на команди можете да напишете почти всяка програма, с която едно електронно устройство ще работи точно както искате.

Някои MK могат да имат огромен брой основни команди, други много по-малко. Това е условно разделение, за което мислителите използват два термина: CISC и RISC. CISC е много различни видове команди, RISC са само най-необходимите.

Повечето MK предпочитат да се молят на бога RISC. Това се обяснява с факта, че когато се използва намален набор от команди, MK са много по-лесни и много по-евтини за производство, освен това те са по-лесни за разработчиците на хардуер, особено за чайници, за смилане. Има много разлики между CISC и RISC, но единственото нещо, което е фундаментално важно за един чайник да разбере е, че CISC има много команди, RISC има малко. Ще погледнем по-задълбочено малко по-късно, когато не си толкова зелен.

Нека си представим идеален случай: Имаме MK и програмният код вече е записан в паметта му. Или, както обикновено казват ушите чушки, микроконтролерът е “firmware” (в случая програмният код се нарича “firmware”).

Какво се случва, ако подадете захранване към веригата с този MK? Оказва се, че нищо особено няма да се случи, МК само учтиво ще се поинтересува какво има в паметта му. В същото време той лесно ще намери първата команда на своята програма, тъй като местоположението на началото на програмния код е зашито по време на производството на MK във фабриката и никога не се променя. Чипът чете първата команда, след това я изпълнява, след това чете втората команда и я изпълнява отново, след това третата и т.н. Когато MK преброи последната команда, тогава всичко ще започне отново, при условие че не е спряно. Така че това е как работи.

Можете също да опитате да научите как да създавате устройства, управлявани от микроконтролер. Но това ще изисква малко от вашето лично време, желание и дори лава. Но тогава определено можете да го върнете.

Структурата на типичен МК

Всеки MK, като всяка микропроцесорна система, се основава на три стълба:

Процесор (ALU + контролен блок)
Памет (RAM, ROM, FLASH)
I/O портове.

Процесорът, използвайки I/O портове, получава или изпраща различни данни под формата на числа и ги обработва. аритметични операциии след това ги записва в паметта. Обменът на данни между процесора, паметта и портовете се осъществява чрез проводници, които в цифровата електроника обикновено се наричат ​​шина (шините се делят на няколко вида според предназначението им). Това е общата идея за това как работи микропроцесорната система.


Физическата структура на микроконтролерите от различни серии може да бъде доста различна, но тяхната обща основа ще бъде сходна и ще се състои от следните блокове: RAM, ROM, ALU, таймери, I/O портове, регистри, броячи.

ROM Памет само за четене или памет само за четене. Всичко, което е записано в ROM-а, остава в него дори след изключване на захранването.
RAM Паметта с произволен достъп е работната памет на МК. В него се съхраняват всички междинни резултати от изпълнението на програмния код или данни от външни сензори.
ALU Мозъкът на МК. Той е този, който изважда, събира, умножава, а понякога и дели, сравнява единици и нули по време на изпълнение на програмата.
I/O портове Входни и изходни портове: Устройства, чрез които MK комуникира с външния свят с външния свят. Нашият MK трябва да комуникира с външния свят. Благодарение на портовете можем да изпращаме сигнали от сензори, клавиатури и т.н. към микроконтролера. И след обработка на такива сигнали, MK ще изпрати своя отговор чрез тези устройства, с които можете да регулирате яркостта на лампата или скоростта на въртене на двигателя.
Таймери Той брои интервали, издава тригерен сигнал и т.н.
Броячи Необходимо е, когато трябва да изчислите нещо.
Всеки регистър е миниатюрна клетка с памет. И обикновено има само няколко десетки от тях в MK.

Както вече знаете от курса по основи на цифровата електроника, цялата информация в цифровия свят е представена под формата на двоични числа, които се записват само с две цифри: „нула“ и „едно“ в двоичната бройна система. Числото три в познатата ни десетична система ще бъде "11" в двоична система, т.е. 3 10 = 11 2. Долните индекси показват бройната система. Една цифра в двоично число се нарича цифра. Ранговете имат старшинство. Най-дясната цифра се нарича най-малко значима, а най-лявата, съответно, най-старша. Редът на ранга се увеличава отдясно наляво:


Когато микроконтролерът работи, "едни и същи двоични числа се въртят в него." Те се придвижват от процесора към паметта и обратно, както и към входно/изходните устройства (I/O). Цифрите вървят по жиците (в MK те са скрити вътре в микросхемата). Всеки такъв проводник в някои определени от програмататочка във времето може да предава само един бит със стойност "0" или "1". Следователно, за да прехвърлите 8-битово число от процесора в паметта и обратно, ще ви трябват поне 8 такива проводника.

Няколко такива комбинирани проводника се наричат ​​автобус. Гумите се предлагат в няколко вида:

Адресна шина
Шина за данни
Контролна шина

Числата вървят по адресния адрес, който указва адреса на клетката с памет или бордовото устройство, от което е необходимо да се получават или записват данни. И самите данни вече ще текат по шината за данни.

Ширината на адресната шина влияе върху броя на адресите, които могат да бъдат прекарани през нея. Да кажем, че в 4-битова система това е 2 4 = 16 адреса, в 64-битова система броят на адресите вече ще бъде 2 64 = 18446744073709551616, т.е. колкото по-голяма е битовата дълбочина на адресната шина, толкова по-голяма е количество памет и повече ефирни вълни, които можете да използвате, с които можете да работите MK. Това е много важен момент.

Ширината на шината за данни влияе върху това колко данни може да прочете процесорът наведнъж. Колкото по-голяма е битовата дълбочина, толкова повече данни могат да бъдат прочетени наведнъж. Ширината на шината за данни се определя изцяло от дизайна на конкретен MK. Но винаги ще бъде кратно на осем. Това се обяснява с факта, че в почти всички устройства с памет минималната единица информация е байт, т.е. редовно двоично число от осем цифри.

Необходим е байт, за да посочи количеството информация. Ако броят на битовете разказва само за дължината на едно двоично число, то битовостта ни разказва за количеството информация, което това число предава. Смята се, че една цифра от двоично число може да предаде един бит информация. В този случай битовете се групират в байтове, килобайти, мегабайти и т.н.

Между другото, за разлика от обичайната бройна система, 1 байт = 8 бита, 1 килобайт = 1024 байта, 1 мегабайт = 1024 килобайта и т.н. Защо 1024? Ти питаш. Да, защото размерът на паметта е кратно на степен две: т.е. 2 3 = 8, 2 10 = 1024.

Нека да разгледаме по-отблизо момента на взаимодействие между паметта и MK и да се опитаме да разберем защо е необходима контролна шина. В допълнение към извършването на аритметични и логически операции, всеки микроконтролер е в състояние да изпълнява няколко по-важни команди, като например: четене или запис от клетка с памет, четене или запис в I/O порт:

За да се каже на микроконтролера коя от тези команди трябва да бъде изпълнена, е необходима управляваща шина. Сигналите го следват към паметта или I/O портовете:

Ако MK има нужда от достъп до паметта, той задава сигнала MREQ на управляващата шина и в същото време се задава сигналът RD/WR. Ако MK пише в паметта, тогава сигналът WR е зададен, ако чете, тогава RD. Същото ще се случи, когато МК се свърже с ПВО.

Но сигналът READY е необходим, за да се каже на микроконтролера, че четенето или записът е завършен.

По този начин, ако приложите захранващо напрежение към MK, той задава сигнал на управляващата шина MREQ, RD и на адресната шина - адреса, на който се изпълнява първата команда на неговия алгоритъм (програмен код, обикновено нулев адрес на паметта) трябва да е в клетката с памет. След това MK го изпълнява и в зависимост от командите за управление, данните и сигналите, съответстващи на програмата, ще се появят на шините за управление, адрес и данни.

AVR MK придобиха огромна популярност в радиолюбителската общност, привличайки инженери по електроника с такива показатели като цена, енергийна ефективност и производителност. В допълнение, огромно предимство са удобните режими на програмиране, свободната достъпност софтуерподдръжка и богат избор от MK. Тази серия Atmel се използва в автомобилостроенето и потребителска електроника, мрежови картиИ дънни платкикомпютри и лаптопи, смартфони и таблети.

Една от първите компании, които пуснаха микроконтролери, базирани на ARM ядро Cortex-M3 се произвежда от STMicroelectronics. Всичко започна не толкова отдавна през 2007 г. с появата на две семейства - „Performance Line“ (STM32F103) и „Access Line“ (STM32F101). В момента STM32 MCU са представени от десет основни линии за различни задачи. Основните им предимства са “pin-to-pin” и пълна софтуерна съвместимост за всички възможни линии. И всичко това пасва на ядрото ARM Cortex-M3. Нека да разгледаме основните инструменти, за да можете да започнете с STM32 MK.

Микроконтролере специален чип, предназначен за управление на различни електронни устройства. Микроконтролерите се появяват за първи път през същата година като микропроцесорите с общо предназначение (1971).

Разработчиците на микроконтролери излязоха с гениална идея - да комбинират процесора, паметта, ROM и периферните устройства в един пакет, който изглежда като обикновена микросхема. Оттогава производството на микроконтролери ежегодно надвишава многократно производството на процесори и нуждата от тях не е намаляла.

Микроконтролерите се произвеждат от десетки компании и те произвеждат не само модерни 32-битови микроконтролери, но и 16 и дори 8-битови (като i8051 и аналози). В рамките на всяко семейство често можете да намерите почти идентични модели, различаващи се по скорост на процесора и капацитет на паметта.

Микроконтролерите, като правило, не работят сами, а са запоени във верига, където в допълнение към нея има екрани, входове на клавиатурата, различни сензории т.н.

Софтуерът за микроконтролери може да привлече вниманието на тези, които обичат да „преследват битове“, тъй като паметта в микроконтролерите обикновено варира от 2 до 128 KB. Ако е по-малко, тогава трябва да пишете на асемблер или Forte; ако е възможно, използвайте специални версии на BASIC, Pascal, но най-вече C. Преди окончателното програмиране на микроконтролера, той се тества в емулатори – софтуерни или хардуерни.

Тук може да възникне въпрос: дали микропроцесорът и микроконтролерът са просто различни имена за едно и също устройство или все още са различни неща?

Микропроцесорът е централното устройство на всеки компютър, направен с помощта на интегрирана технология. Самото име подсказва, че именно в него протичат изчислителните процеси. За да стане компютър, дори и да не е много модерен и мощен (спомнете си аматьорските разработки на Radio-86 или Sinclair), той трябва да бъде допълнен външни устройства. На първо място, това е RAM и входно-изходни портове.

Микроконтролерът съдържа процесор, RAM, програмна памет и в допълнение цял набор от периферни устройства, които превръщат процесора в напълно функционален компютър. Според старата терминология от съветско време такива устройства се наричаха едночипови микрокомпютри. Но съветската изчислителна техника, както знаем, стигна до задънена улица, а с нея и OMEVM.

Чуждестранните изчислителни технологии не стояха неподвижни, така че OMEVM започнаха да се наричат ​​​​контролери (от английския Control - за управление, контрол). И всъщност контролерите се оказаха много подходящи за управление на различни съоръжения, дори и не много сложни.

МИКРОКОНТРОЛЕРЪТ вече не е процесор, но не е и компютър.

Централният процесор във всеки компютър е главният компютър. Въпреки че компютърът не е предназначен единствено за изчислителни натоварвания, процесорът е основният елемент в него. Но не само компютърът има процесор.

Ако се замислите и погледнете по-отблизо, ще откриете, че процесорите се използват в повечето домакински уреди. Само те използват не същите процесори като в компютъра, а микропроцесори и дори микроконтролери.

И така, какво е микроконтролер и как се различава от самия процесор или това са напълно различни електронни компоненти?

Големите интегрални схеми или силно интегрираните схеми са процесори. Микропроцесорите по същество са едни и същи процесори, но поради префикса "микро" тяхната същност се определя, че те са по-малки от техните "големи" събратя. В своето историческо време един процесор с размерите си можеше да заеме повече от една стая, уместно е да ги наречем, подобно на изчезналите динозаври, макропроцесори, за да ги рационализираме по някакъв начин в съвременната концепция за електроника.

По-малък и опакован процесор заема по-малко място и може да бъде поставен в по-компактен продукт; това е микропроцесор. Но самият процесор не е способен да прави нищо друго освен да прехвърля данни между регистрите и да извършва някои аритметични и логически операции върху тях.

За да може микропроцесорът да изпраща данни към паметта, същата тази памет трябва да присъства или на самия чип, на който е разположен самият процесорен елемент, или да е свързана към външен оперативна паметнаправени под формата на отделен кристал или модул.

В допълнение към паметта, процесорът трябва да взаимодейства с външни устройства - периферия. Иначе каква полза да очакваш от работата на процесора, смесвайки и премествайки данни напред-назад? Значението идва, когато процесорът взаимодейства с I/O устройства. За компютър това е клавиатура, мишка и устройства за показване като дисплей, по избор принтер и например скенер, отново за въвеждане на информация.

За управление на I/O устройства са необходими подходящи буферни схеми и елементи. На тяхна база е реализиран интерфейс, т.нар. хардуер. Методите за взаимодействие с елементите на интерфейса изискват наличието на вериги на I/O портове, адресни декодери и шинни драйвери с буферни вериги за увеличаване на товароносимостта на микропроцесора.

Интегрирането на процесора с всички необходими допълнителни елементи, за да може този продукт да доведе до някакъв завършен дизайн, води до формирането на микроконтролер. Микросхемата или микроконтролерният чип реализира процесор и интерфейсни вериги на един чип.

Самодостатъчен чип, който съдържа почти всичко, така че да е достатъчно за изграждането на завършен продукт, е пример за типичен микроконтролер. Например китката Цифров часовникили будилник има вътре микроконтролер, който изпълнява всички функции на такова устройство. Индивидуалните периферни устройства са свързани директно към щифтовете на чипа на микроконтролера или се използват заедно допълнителни елементи или микросхеми с ниска или средна интеграция.

Микроконтролерите се използват широко в продукти, които съдържат цялата система само в един миниатюрен чип, често наричан микросборка. Например кредитна карта с „чип“ съдържа микроконтролер вътре в пластмасова основа. Той също така съдържа микроконтролер вътре. И примерите за използване и приложение на микроконтролери са толкова обширни в съвременния свят, че е лесно да се открие наличието на контролер във всяко повече или по-малко интелигентно устройство, от детска играчка до безжична слушалка за мобилен телефон.

Вижте и на нашия уебсайт:

Вижте също образователните видео курсове на Максим Селиванов по тази тема:

Курс за тези, които вече са запознати с основите на електрониката и програмирането, които знаят основните електронни компоненти, сглобяват прости вериги, знае как да държи поялник и иска да премине на качествено ново ниво, но постоянно отлага този преход поради трудности при усвояването на нов материал.

Курсът е страхотен и за тези, които едва наскоро са направили първите си опити да научат програмирането на микроконтролери, но вече са готови да се откажат, защото нищо не работи за тях или не работи, но не и по начина, по който им трябва (звучи ли познато?!).

Курсът ще бъде полезен и за тези, които вече сглобяват прости (или може би не толкова прости) схеми на микроконтролери, но не разбират добре същността на това как работи микроконтролерът и как взаимодейства с външни устройства.

Курсът е посветен на обучението по програмиране на микроконтролери на език C. Отличителна чертакурс - изучаване на езика на много задълбочено ниво. Обучението се провежда на примера на AVR микроконтролери. Но по принцип е подходящ и за тези, които използват други микроконтролери.

Курсът е предназначен за обучени студенти. Това означава, че курсът не покрива основните основи на компютърните науки и електрониката и микроконтролерите. Но за да овладеете курса, ще ви трябват минимални познания за програмиране на AVR микроконтролери на всеки език. Познанията по електроника са желателни, но не са задължителни.

Курсът е идеален за тези, които току-що са започнали да учат AVR програмиранемикроконтролери на език C и иска да задълбочи знанията си. Също така е добре за тези, които имат малко познания за програмиране на микроконтролери на други езици. Подходящ е и за обикновени програмисти, които искат да задълбочат познанията си по езика C.

Този курс е за тези, които не искат да бъдат ограничавани в развитието си от прости или готови примери. Курсът е идеален за тези, които се интересуват от създаването на интересни устройства с пълно разбиране за това как работят. Курсът е много подходящ за тези, които вече са запознати с програмирането на микроконтролери на езика C и за тези, които ги програмират от дълго време.

Материалът на курса е насочен предимно към практическа употреба. Обхванати са следните теми: радиочестотна идентификация, аудио възпроизвеждане, безжичен обмен на данни, работа с цветни TFT дисплеи, тъч скрийн, работи с файлова система FAT SD карти.

Нека да разгледаме вътрешната архитектура на AVR микроконтролерите, нека се опитаме да разберем от какви блокове се състои чипът на микросхемата и за какви функции отговаря всеки блок, как те взаимодействат помежду си. Ще има и полезни сравнения и примери, ценни бележки, които ще помогнат за изясняване на принципите на работа на микроконтролера с външни устройства и периферни устройства.

AVR микроконтролер отвътре

Микроконтролерът отвътре е компютър със собствено изчислително устройство, постоянна и динамична памет, I/O портове и различни периферни устройства.

Ориз. 1. Структура на микроконтролера AVR. Рисуване от digikey.com

Вътре в микроконтролера има:

  • Високоскоростен процесор с RISC архитектура;
  • Флаш памет;
  • EEPROM памет;
  • RAM памет;
  • I/O портове;
  • Периферни и интерфейсни модули.

RISC (Reduced Instruction Set Computer) е архитектура с внимателно подбран набор от инструкции, които обикновено се изпълняват в един процесорен цикъл. Съвременните AVR микроконтролери съдържат около 130 команди, които се изпълняват много бързо и не изискват големи разходи както по отношение на вътрешнопроцесорни ресурси, така и на консумация на енергия.

Блокова схема на AVR микроконтролер

Нека да разгледаме фигурата по-долу и да разберем от какви блокове се състои микроконтролерът и как са свързани един с друг:

Ориз. 2. Структурна схема AVR микроконтролер.

Нека да разгледаме накратко какво е показано на блоковете в диаграмата:

  • JTAG интерфейс(Joint Test Action Group Interface) - интерфейс за отстраняване на грешки в схемата (4 проводника);
  • ФЛАШ- препрограмируема памет за запис на програмата;
  • Сериен периферен интерфейс, SPI- сериен периферен интерфейс (3 проводника);
  • EEPROM(Electrically Erasable Programmable Read-Only Memory) - препрограмируем ROM, енергонезависима памет;
  • процесор(ПРОЦЕСОР) - процесоруправление, микроконтролерно сърце, 8-битово микропроцесорно ядро;
  • ALU(ALU) - аритметично-логическо устройство, основа на процесора;
  • RAM(Random Access Memory) - RAM на процесора;
  • Програмен брояч- брояч на команди;
  • 32 Регистри с общо предназначение- 32 регистъра с общо предназначение;
  • Регистър на инструкциите- регистър на команди, инструкции;
  • Декодер на инструкции- команден декодер;
  • OCD(On-Chip Debugger) - вътрешно устройство за отстраняване на грешки;
  • Аналогов компаратор- аналогов компаратор, устройство за сравнение аналогови сигнали;
  • A/D конвертор(Analog/Digital converter) - аналогово-цифров преобразувател;
  • LCD интерфейс(Liquid-Crystal Display Interface) - интерфейс за свързване на течнокристален дисплей, индикатор;
  • USART(Universal Asynchronous Receiver-Transmitter), UART - универсален асинхронен приемо-предавател;
  • TWI(Two-Wire serial Interface) - сериен интерфейс с двупроводна връзка;
  • Таймер за наблюдение- пазач или контролен таймер;
  • I/O портове- портове за вода/изход;
  • Прекъсвания- блок за управление и реакция при прекъсвания;
  • Таймери/броячи- модули за таймер и брояч.

Прочетете повече за вътрешните блокове на микроконтролера

Сега нека разгледаме по-отблизо всички блокове на микроконтролера, нека да разберем какво е необходимо и защо, ще дам прости примеридостъпен език.

JTAG интерфейс- важен интерфейс, който позволява вътрешно отстраняване на грешки директно в чипа с помощта на вътрешния блок за отстраняване на грешки ( OCD), без да използвате емулатори. Можем да кажем, че JTAG е интерфейс за „хардуерно“ отстраняване на грешки на микроконтролер. Чрез JTAG адаптер чипът е директно свързан към софтуерен пакетза програмиране и отстраняване на грешки.

Използвайки този интерфейсМожете да изпълните програмата директно в микроконтролера в режим стъпка по стъпка, да наблюдавате как се променя съдържанието на регистрите, как индикаторите и светодиодите, които са свързани към микроконтролера, мигат след всяка стъпка и т.н. За да се свържете с JTAG интерфейса, са достатъчни 4 проводника: TDI (Test Data In), TDO (Test Data Out), TCK (Test Clock), TMS (Test Mode Select).

Интерфейсът JTAG не е наличен във всички AVR микроконтролери; като правило, чипове с 40 или повече пина и капацитет на паметта от най-малко 16 KB имат такова вкусно допълнение. За сериозни задачи - сериозни материали и инструменти.)

ФЛАШ-програмна памет, енергонезависима ROM (памет само за четене), изработена по FLASH технология. Тук се съхранява програмата, която ще се изпълнява от ALU модула на микроконтролера. Флаш паметта на чипа може да се презаписва многократно, като по този начин се променя или добавя към програмния код за изпълнение. Този тип памет може да съхранява записаните в нея данни в продължение на 40 години, а броят на възможните цикли на изтриване/запис може да достигне 10 000.

В зависимост от модела на микроконтролера, размерът на FLASH паметта може да достигне 256 KB.

Сериен периферен интерфейс, SPI -сериен периферен интерфейс (SPI), който често се използва за обмен на данни между няколко микроконтролера със скорости до няколко MHz (няколко милиона такта в секунда).

За обмен на данни през SPI интерфейса между две устройства са достатъчни 3 проводника:

  1. MOSI (Master Output Slave Input) - Данни от master към slave;
  2. MISO (Master Input Slave Output) - Данни от slave към master;
  3. CLK (Clock) - часовников сигнал.

Устройствата със SPI интерфейс са разделени на два типа: Master и Slave. Ако няколко устройства са свързани към интерфейса, тогава са необходими допълнителни комуникационни линии (проводници) за обмен на данни между тях, така че главният да може да избере подчинено устройство и да отправи заявка към него.

SPI интерфейсът се използва и за вътрешносхемно SPI програмиране; чрез този интерфейс към микроконтролера е свързан програмист.

EEPROM -енергонезависима памет за данни, в която данните ще се съхраняват дори когато захранването на микроконтролера е изключено. В тази памет можете да съхранявате настройки за изпълнение на програмата, събрани данни за статистика на работата на устройството и други полезна информация. Например, след като сте сглобили малка метеорологична станция на микроконтролер, можете да съхранявате данни за температурата на въздуха, налягането, силата на вятъра в EEPROM за всеки ден и след това по всяко време да четете тези събрани данни и да провеждате статистически изследвания.

EEPROM има отделно адресно пространство, което се различава от RAM и FLASH адресното пространство. EEPROM паметта на микроконтролера е много ценен ресурс, тъй като обикновено е много малък - от 0,5 до няколко килобайта на чип. Брой пренаписвания за от този типпаметта е за 100 000, което е 10 пъти повече от ресурса на FLASH паметта.

ALU- Аритметично логическо устройство, което е синхронно с тактовия сигнал и разчита на състоянието на програмния брояч ( Програмен брояч) избира от програмната памет ( ФЛАШ) следващата команда и я изпълнява.

Тактовият сигнал за микроконтролера се генерира от тактов генератор и може да бъде доставен от няколко налични източника, от които да избирате:

  • вътрешен RC осцилатор, който може да бъде калибриран до желаната честота;
  • керамичен или кварцов резонатор с кондензатори (не се предлага при всички модели);
  • външен часовников сигнал.

Настройка на източника тактови импулсипроизведени с помощта на битове FUSE.

ПРЕДПАЗИТЕЛИ(от английски: топене, щепсел, предпазител) - специални 4 байта (4 * 8 = 32 бита) данни, които конфигурират някои глобални параметримикроконтролер в процеса на фърмуер. След мигане тези битове не могат да се променят чрез вътрешна програмакоето е записано в МК.

С тази битова конфигурация казваме на микроконтролера следното:

  • кой главен осцилатор да се използва (външен или вътрешен);
  • разделете честотата на генератора с фактор или не;
  • използвайте щифта за нулиране (RESET) за нулиране или като допълнителен I/O щифт;
  • количество памет за буутлоудъра;
  • други настройки зависят от използвания микроконтролер.

процесор- това е мозъкът на микроконтролера, който съдържа ALU, регистри и RAM.

Блок от 32 регистъра с общо предназначение е свързан към ALU ( 32 Регистри с общо предназначение- регистрова памет), всяка от които представлява 1 байт памет (8 бита). Адресното пространство на регистрите с общо предназначение се намира в началото на паметта с произволен достъп (RAM), но не е част от нея. С данните, които се поставят в регистрите, можете да извършвате различни аритметични, логически и битови операции. Извършването на такива операции в RAM не е възможно. За да работите с данни от RAM, трябва да ги запишете в регистри, да извършите необходимите операции в регистрите и след това да запишете получените данни от регистрите в паметта или в други регистри, за да извършите някои действия.

RAM- RAM. Можете да записвате данни от регистрите в него , чете данни в регистри; всички операции с данни и изчисления се извършват в регистри. За различните фамилии AVR чипове размерът на RAM е ограничен:

  • ATxmega - до 32 KB;
  • ATmega - 16 KB;
  • ATtiny - 1 KB.

Аналогов компаратор- този блоксравнява две нива на сигнала помежду си и съхранява резултата от сравнението в определен регистър, след което изпратеният резултат може да бъде анализиран и необходимите действия да бъдат извършени. Например: можете да използвате този блок като ADC (аналогово-цифров преобразувател) и да измервате напрежението на батерията, ако напрежението на батерията достигне ниско ниво- извършване на някои действия, мигане на червения светодиод и т.н. Този модул може да се използва и за измерване на продължителността на аналогови сигнали, прочетени установени режимиработа на устройството с помощта на потенциометър и др.

A/D конвертор- този блок преобразува аналоговата стойност на напрежението в цифрова стойност, с която може да се работи в програмата и въз основа на която могат да се извършват определени действия. Като правило диапазонът на напрежението, който се подава към входа на ADC в микроконтролера AVR, е в диапазона 0-5,5 волта. За това устройство е много важно микроконтролерът да се захранва от стабилен и висококачествен източник на захранване. Много AVR микроконтролери имат специален отделен щифт за подаване на стабилно захранване към ADC веригата.

LCD интерфейс- интерфейс за свързване на течнокристален индикатор или дисплей. Те се използват за показване на информация, състоянието на устройството и неговите компоненти.

USART- сериен асинхронен интерфейс за обмен на данни с други устройства. Има поддръжка за протокола RS-232, благодарение на който микроконтролерът може да бъде свързан за обмен на данни с компютър.

За такава връзка между MK и COM порта на компютъра ви е необходим преобразувател на логическо ниво на напрежение (+12V за COM към +5V за микроконтролера) или просто RS232-TTL. За подобни цели се използват микросхеми MAX232 и други подобни.

За да свържете микроконтролера към компютър чрез USB чрез интерфейса UART, можете да използвате специализирана микросхема FT232RL. По този начин, на нови компютри и лаптопи, без да имате физически COM порт, можете да свържете микроконтролер с помощта на USB порт чрез интерфейса USART.

TWI- интерфейс за обмен на данни по двупроводна шина. Тази шина за данни може да свърже до 128 различни устройства, използвайки две линии за данни: тактов сигнал (SCL) и сигнал за данни (SDA). Интерфейсът TWI е аналогичен на основната версия на интерфейса I2C.

За разлика от интерфейса SPI (един главен и един/няколко подчинени), интерфейсът TWI е двупосочен; позволява ви да организирате малка вътрешна мрежа между няколко микроконтролера.

Таймер за наблюдениее система за наблюдение на замразяването на устройството и след това рестартирането му. Това е като бутон за автоматично НУЛИРАНЕ за стар компютър с бъгава операционна система.))

I/O портове, GPIO- това е набор от блокове от входно/изходни портове, към чиито изводи можете да свържете различни сензори, изпълнителни устройства и вериги. Броят на входно/изходните пинове, които идват от портовете в микроконтролера, може да бъде от 3 до 86.

Изходните драйвери в портовете на микроконтролера AVR ви позволяват директно да свържете товар с консумация на ток от 20 mA (максимум 40 mA) при захранващо напрежение от 5V. Общият ток на натоварване за един порт не трябва да надвишава 80 mA (например, окачете светодиод с ток 15-20 mA на 4 пина за един от портовете).

Прекъсвания- това е блок, който отговаря за реакцията и стартирането на определени функции, когато сигнал пристигне на определени входове на микроконтролера или поради някакво вътрешно събитие (например тиктакане на таймер). За всяко прекъсване се разработва отделна подпрограма и се записва в паметта.

Защо този блок се нарича блок за прекъсване? - защото при възникване на събитие, специфично за прекъсване, изпълнението на основната програма прекъснати настъпва приоритетно изпълнение на подпрограмата, която е написана за текущото прекъсване. След завършване на подпрограмата, изпълнението на основната програма се връща от момента, в който е била прекъсната.

Таймери/броячи- набор от таймери и броячи. Микроконтролерът обикновено съдържа от един до четири таймера и броячи. Те могат да се използват за преброяване на външни събития, генериране на сигнали с определена продължителност, генериране на заявки за прекъсване и др. Ширината на таймерите и броячите е 8 и 16 бита (вижте в листа с данни за чипа).

Заключение

Това е основно всичко, което първоначално е полезно да знаете за структурата AVR микроконтролер. Освен това, в процеса на работа и програмиране, ще имате възможност да изучавате таблици с данни за различни модели AVR чипове, научете по-подробно принципите на работа на всеки от структурните кубове MK и проучете как работят, играйте си с отстраняване на грешки и т.н.

В следващата статия ще се опитаме да разберем етикетирането на микроконтролерите и да помислим за най-достъпните и подходящи чипове за първоначално проучване.

Микроконтролерите са неразделна част от вградените системи. Микроконтролерът е евтин и малък компютър на един чип, който съдържа процесор, малко количество RAM и програмируеми I/O периферни устройства. Те са предназначени за използване в автоматично управлявани продукти и устройства за изпълнение на предварително зададени и програмирани задачи. За да получите по-добра представа какво всъщност представлява микроконтролерът, нека да разгледаме пример за продукт, който използва микроконтролер. Дигитален термометър, който показва температурата на околната среда, използва микроконтролер, към който са свързани температурен сензор и индикация (като LCD). Микроконтролерът тук получава входните данни от температурния сензор в необработена форма, обработва ги и ги показва на малък LCD дисплей в удобна за четене форма. По същия начин, един или повече микроконтролери се използват в много електронни устройства според изискванията и сложността на приложенията.

Къде се използват микроконтролери?

Микроконтролерите се използват във вградени системи, главно различни продукти и устройства, които са комбинация от хардуер и софтуер, и са предназначени да изпълняват специфични функции. Няколко примера за вградени системи, които използват микроконтролери, могат да бъдат перални машини, вендинг машини, микровълнови печки, цифрови фотоапарати, автомобили, медицинско оборудване, смартфони, умен часовник, роботи и различни домакински уреди.

Защо използваме микроконтролери?

Микроконтролерите се използват за автоматизация във вградени приложения. Основната причина за огромната популярност на микроконтролерите е способността им да намалят размера и цената на продукт или дизайн, в сравнение с дизайн, който трябва да бъде изграден с помощта на отделен микропроцесор, памет и I/O устройства.

Микроконтролерите също имат функции като вграден микропроцесор, RAM, ROM, серийни интерфейси, паралелни интерфейси, аналогово-цифров преобразувател (ADC), цифрово-аналогов преобразувател (DAC) и др. това улеснява изграждането приложения около него. Освен това средата за програмиране на микроконтролера предоставя широки възможности за управление на различни видове приложения според техните изисквания.

Различни видове микроконтролери.

На пазара има широка гама от микроконтролери. Различни компании, като Atmel, ARM, Microchip, Texas Instruments, Renesas, Freescale, NXP Semiconductors и др. др производство на различни видове микроконтролери с различни видовефункции. Гледам към различни параметри, като например програмируема памет, капацитет на флаш памет, захранващо напрежение, I/O, скорост и т.н., човек може да избере правилния микроконтролер за тяхното приложение.

Нека да разгледаме тези параметри и различни видове микроконтролериспоред тези параметри.

Шина за данни (битов капацитет):

Когато се класифицират по битов размер, повечето микроконтролери са между 8-битови и 32-битови (съществуват и микроконтролери с по-висок бит). 8-битовият микроконтролер има своята шина за данни, състояща се от 8 линии за данни, а 16-битовият микроконтролер има своята шина за данни, състояща се от 16 линии за данни, и така нататък за 32-битови и по-високи микроконтролери.

Памет:

Микроконтролерите се нуждаят от памет (RAM, ROM, EPROM, EEPROM, флаш памет и др.), за да съхраняват програми и данни. Въпреки че някои микроконтролери имат вградени чипове с памет, други изискват външна памет в пакета. Те се наричат ​​съответно вградена памет на микроконтролер и външна памет на микроконтролер. Вградената памет също варира различни видовемикроконтролери и като цяло ще намерите микроконтролери с 4B до 4MB памет.

Брой входно/изходни контакти:

Микроконтролерите се различават по брой I/O размери. Човек може да избере конкретен микроконтролер според изискванията на приложението.

Набор от команди:

Има два вида набори от инструкции - RISC и cisc. Микроконтролерът може да използва RISC (компютър с намален набор от инструкции) или CISC (набор с компютърни инструкции) процесор. Както подсказва името, RISC намалява времето за работа, което определя тактовия цикъл на дадена инструкция; и CISC позволява една инструкция да бъде приложена като алтернатива на много инструкции.

Архитектура на паметта:

Има два вида микроконтролери – архитектура на паметта на микроконтролер от Харвард и архитектура на паметта на микроконтролер в Принстън.

Ето някои популярни микроконтролери сред студенти и любители.

Микроконтролери от серия 8051 (8-битови)

AVR микроконтролери от Atmel (ATtiny, серия atmega)

Microchip е серия от pic микроконтролери

Texas Instruments, микроконтролери msp430

ARM микроконтролери

Характеристики на микроконтролерите

Микроконтролерите се използват във вградени системи на техните различни характеристики. Както е показано на блоковата диаграма на микроконтролера по-долу, той се състои от процесор, I/O, серийни портове, таймери, ADC, DAC и управление на чопър.

Процесор или централен процесор

Процесорът е мозъкът на микроконтролера. При даден входен сигнал чрез входни щифтове и инструкции чрез програми, обработете данните и ги предоставете съответно на изходните щифтове.

В памет

В микроконтролера са интегрирани чипове с памет за съхраняване на всички програми и данни. Може да има различни видовепамет, интегрирана в микроконтролери като RAM, ROM, EPROM, EEPROM, флаш памет и др.

I/O портове

Всеки микроконтролер има входно-изходни портове. В зависимост от типовете микроконтролери, броят на входните щифтове може да варира. Те се използват за свързване на външни входни и изходни устройства, като сензори, дисплеи и др.

Серийни портове

Те улесняват комуникацията на микроконтролера чрез сериен интерфейс периферни устройства. Серийният порт е сериен комуникационен интерфейс, през който информацията се прехвърля на вход или изход един бит наведнъж.

ADC и DAC

Понякога вградените системи използват преобразуване на данни от цифрови към аналогови и обратно. Поради това повечето микроконтролери са комбинирани с вградени ADC (аналогово-цифров преобразувател) и DAC (цифрово-аналогови преобразуватели), за да извършат необходимото преобразуване.

Таймери

Таймерите и броячите са важни компоненти на вградените системи. Те са необходими за различни операции като формиране на импулси, преброяване на външни импулси, модулация, осцилация и др.

Контрол на прекъсванията

Прекъсването на контрола е едно от мощни функциимикроконтролери. Това е вид известие, което прекъсва текущия процес и го инструктира да изпълнява задачи, определени от контрола на прекъсването.

За да обобщим всичко това, микроконтролерите са вид компактни мини компютри, които са предназначени да изпълняват специфични задачи в областта на вградените системи. СЪС широк обхватФункциите, тяхното значение и ползи са огромни и могат да бъдат намерени в продукти и уреди за всички индустрии.



Свързани публикации