Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
diplom kz Микроконтроллер құрылғыларының.docx
Скачиваний:
57
Добавлен:
17.02.2016
Размер:
5.05 Mб
Скачать

1.3 Микроконтроллерлер құрылғыларының функциялары

Кез келген микропроцессорлы жүйедегідей МК-дің ОП-нің командалар жиыны өзіне негізгі төрт командалар тобын қосады:

  • Мәліметтерді салып жіберу командалары;

  • Арифметикалық командалар;

  • Логикалық командалар;

  • Өту командалары;

Бірқатар регистрлерге тәуелсіз басқару мүмкіндігін жүзеге асыру үшін көптеген заманауи МК-де биттік басқару командаларының тобы(буль немесе биттік процессор) қарастырылған. Биттік процессор командаларының бар болуы басқарушы программа кодының көлемін және олардың орындалу уақытын елеулі түрде қысқартуға рұқсат береді.

Микроконтроллерлердің қазіргі кезде қолдану аясы өте кең. Өнеркәсіптік автоматикадан тұрмыстық аспаптарға дейін, ядролық станцияларды басқарудан балалар ойыншығына дейін, құпия әскери жүйелерден сіздің радиоқабылдағышыңыздың каналдарын ауыстыруға дейін қолданылады. Бір сөзбен олар қолданылмайтын аяларды айтып берген оңайырақ.

Микроконтроллерлардың ойлап табылуы және олардың ары қарай дамуы сандық электроникада нағыз революцияға алып келді. Сұлбатехника мен элементтік базамен қатар жүйені құрастыру пинциптері де өзгерді. Контроллерлерсіз тіршілік ете алмайтын бірқатар құрылғылардың түрлері пайда болды.

Бірақ кез-келген технология жақсы жағынан көрінгенмен оның кері жағы да бар. Оған бір көргенде байқалмайтын қиындықтар; жаңа тәсілден туындаған проблемалар және шектеулер. Технология беретін жаңа мүмкіндіктер күтпеген жерде қолданыс табуы мүмкін, бірақ ол игі істерге жұмсалмауы да болатын жайт. Төменде микроконтроллерлердің көптеп қолданудың оң және теріс жақтарын айтылған.

Оң жағы. Егер қатқыл логика құрылғылары мен контроллердегі схемотехниканы салыстырсақ онда контроллердікі оңайлау болып келеді. Оны өндіріске әзірлеу кезінде оның қандай функционалды блоктан тұратынын, қандай интерфейстермен оларды біріктіру керек, және қандай элементарлы базаны таңдау керектілігін айқындау керек. Бөлек бөлшектерден болашақ құрылғының сызбасын жасағанның орнына енді блокті проектілеу қолданылады. Микроконтролер бір кристаллда аяқталған бір немесе бірнеше блокті құруға ерік береді

Барлық алгоритмді іске асыру енді контроллердің жұмысы, ал программа жазу сандық сызбаның синтезіне қарағанда еңбекті көп қажет етпейді. Есептеулердің қиындылығының артуымен бұл артықшылық айқын көзге түседі. Программалық кодтың өлшемінің өсуі оның құрылымының жинақтылығымен және абстракцияның қосымша деңгейлерін енгізуімен орнын толтырады. Ендірмелі ОЖ мен стандартты кітапханалар кең қоланылады, ол аппаратурамен жұмыс істейтін кодты және алгоритм мен оның тәртібін бөлуге рұқсат етеді.

Унификация. Программалық және аппараттық бөлімдерінің бөлінісі элементтік базаны унификациялауға мүмкіндік берді. Бір контроллер көптеген құрылғыларды жасап шығару үшін қолданылуы мүмкін. Унификация өндіріс бағасының төмендеуіне алып келеді. Жүздеген логикалық микросхемалардың түрлерін өндіргенше оншақты контроллерлердің түрлерін жасаған экономикалық тұрғыдан тиімді.

Функциясы жағынан түрлі құрылғылар бір схемадан тұруы мүмкін, ал программасы әр түрлі бола алады. Айқын мысал ретінде өнеркәсіптік ПЛК (программируемые логические контроллеры) алуға болады. Олар стандартты модульдерден құралады: енгізу/шығару құрылғылары, есептеуші және интерфейстік модульдер. Модульдер арасындағы өзара әрекеттестікке және жүйенің жұмыс істеу алгоритміне негізінен програмалық бөлігі жауап береді. Осылайша, сандартты блоктардың жиынынан кез келген керек жүйені құрастыруға болады.

Өзгерістерді енгізу қарапайымдылығы. Қатқыл логикадағы сұлбаның жұмыс істеу алгоритмін өзгерту үшін, оның элементтерін басқа тәртіппен қосу қажет, оның бір бөлігін жойып жаңа бөлікті қосу керек. Бұл іс-әрекеттерді көп жағдайда макеттеу кезінде ғана істеуге болады, ал егер құрылғы дайын болса онда өзгеріс енгізудің жалғыз жолы- жаңа нұсқасын шығару.

Микроконтроллер бұл жағдайда айтарлықтай көбірек икемділікті қамтамасыз етеді. Құрылғының жұмыс істеу алгоритміне өзгеріс енгізу үшін жаңа программаны қайта жүктеу керек (прошивка). Қазіргі зманғы электрониканың біраз бөлігінің программасын қызмет көрсету орталығы арқылы қайта жүктеуге болады. Ал кей жағдайда қолданушылардың өздері де оны орындай алады. Қазіргі кезде біз өз телефонымызың, принтер және фотоаппаратымыздың ОЖ-сін жаңарта аламыз. Келешекте біз осы әрекетті , айталық, кіржуғыш машина немесе кофеқайнатқышпен істей аламыз. Көптеген құрылғылардың желіге қосылуының өсуіне байланысты, автожаңару механизмінің көптеп таралуын күтуге болады. Ол қазіргі кезде компьютерлік программаларда қолданылады.

Теріс жағы.Егер микроконтроллерлердің қолданудың жақсы жақтары айқын көрініп жан-жақты қарастыруды қажет етпесе, оған байланысты мәселелер тереңде жаты және ол бірден байқалмайды.

Беріктігінің төмендеуі. Беріктілік теориясы өзіне көптеген аспектілерді қосады, ал «тұрмыстық» мағынада беріктілік туралы сөз қозғалғанда әдете істен шығу мен тұрақсыздық туралы айтылады. Істен шығу дегеніміз- жұмыс істеу қабілеттілігінің жойылуын айтамыз, мысал ретінде лампаның жанып кетуін алуға болады. Тұрақсыздық (сбой)- бұл бұзылудың өзінен-өзі немесе оператордың көмегімен қайта қалпына келуін айтамыз. Ескі теледидарды төбесінен ұрғанда «жөнделетіні», бұл тұрақсыздықпен жұмыс істейтін жүйенің мысалы.

Жүйе неғұрлым көп элементтен құралса, олардың біреуінің істен шығуы әбден мүмкін. Бұл арада контроллердің миллиондаған транзисторы бар интегралды сұлбасы бір қарағаннан бірнеше жүз транзисторы бар кристаллға логикалық тұрғыдан ұтылады. Бірақ қазіргі кезде микроэлектроникадағы беріктілік деңгейі айтарлықтай жоғары. Күмән келтіретін барлық кристаллдар өндірістік кезеңде бракқа алынып тасталды. Микросхемаларды өзінің арасында және пассивті элелементтерді микросхемалармен қосатын баспа платасы, әлсіз жер болып табылады. Осылайша ішкі себептермен пайда болған істен шығу жиілігі бойынша микроконтроллерлі сұлбалар жалпы ұтады.

Олар тұрақсыздыққа ұтылады. Тұрақсыздық, сыртқы ықпал әсерінен туындайды: температура, электромагнитты ақаулар, радиация. Әсіресе контроллерлер электромагнитті ықпалға сезімтал, ол одан өзінен-өзі қайта жүктеледі және тұрып қалады. Микроконтроллерлі жүйелерді мұндай ақаулардан қорғау үшін арнайы шаралар қажет: қоректендіру шинасын бөлу, қарауыл таймерлер, плата бетіндегі қосымша металл қабаттары және т.б.

Әдетте істен шығу көзі нашар жүктелген бағдарламаның арқасында болады. Немесе сенімсіз жұмыс жасаудың себебі программалық және аппаратты бөлімінің арасында жатуы мүмкін. Мысалы, flash жадының бір ұяшығына қайта-қайта жазу ерте ме кеш пе ұяшықтың қорының тауысуына алып келеді, одан соң мәліметтерге де зиянын тигізеді. Микроконтроллер көптеген міндеттерге керек тұрақтылық деңгейін қамтамасыз ете алады, бірақ ол сауатты түрде жобалануы керек.

Әзірлеменің оңай болып көрінуі. Элетрониканы әзірлеп бастау үшін алдымен елеулі білім жинау қажет. Сандық құрылғылардың сұлбатехникасы – бұл үлкен көлемді институттік курс. Оған қоса электротехниканы, аналогті сұлбатехниканың негізін және дискретті математиканы білу қажет. Бір сөзбен электрноды сұлбаларды әзірлеп құрастыру үшін шекті білімнің жоғары болуы шарт.

Ал программалап бастау үшін білім шегі төменірек. Кез келген тілдің негізін бір-екі сағатта оқып біліп «Hello world» сөзін жазуға болады. Әрине «программист» және «жақсы программисттің» арасында үлкен алшақтық жатыр, бірақ программаларды жазып бастаудың оңайлығы қызықтырады.

Тура осы сияқты контроллерлерде құрылғыларды әзірлеу үшін кіру табалдырығы төмен. Қазігі кезде Arduino тәрізді комплекттер жетіп жатыр, оларға келетін перефериялық модульдердің де түрлері көп, енді бос уақытты IDE (әзірлеме ортасы) зерттеуге өткізіп – бірінші проектті бастауға болады.

Осы жерден қондырылатын жүйелердің жақсы программисті- салыстырмалы түрде сирек кездеседі деген сұрақ туады. Мәселе мынада жақсы программист код жазып қана қоймай ол өзі құрастырып жатқан құралдың сәулетінің әр түрлі ерекшелігін де білуі қажет. Ол сандық құрылғылардың қалай жұмыс істейтіндігін ойша білу крек, сигналдарды кодтауда түсінігі болу керек, және құрылғы өзін әр түрлі жағдайларда қалай көрсететіндігін білгені абзал. Микроконтроллермен жұмыс жасайтын программист қолданбал программистке қарағанда «темірге» жақынырақ болады. Соған сәйкес сол темірдің жұмыс істеу негіздерін білу оған шарт.

Сонымен, контроллерлердің негізіндегі құрылғыларды әзірлеудің оңайлығы тек алдамшы көрініс қана. Микроконтроллерлер программисттің қателігіне «үлкен компьютерлермен» салыстырғанда сезімтал болып келеді. Жадының көлемінің шекті болуы, «такт бойынша» тезәрекеттілікке талап және «тәжірибесі жоқ программисттерден қорғау» жүйесінің болмауы әзірлеушіден жоғарғы квалификацияны талап етеді.

2 КОНТРОЛЛЕР ЖӘНЕ МИКРОКОНТРОЛЛЕРЛІК ҚҰРЫЛҒЫЛАРДЫҢ ПРОГРАММАЛАУ ҚҰРАЛДАРЫ

2.1 Микроконтроллер құрылғыларының программалау ортасы

Микроконтроллер негізінде программды және аппаратты қамтамасыз ету жүйелерінің бір болуы өте маңызды ой болып табылады. Программалық қамтамасыз ету инструменталды құралдармен аппаратты қамтамасыз ету инструменталды құралдарының бірігуі құрылғыны құрастыруда маңызды артықшылық болуы мүмкін. Микроконтроллер негізінде қосымшаларды жасау үшін қолданылатын бес түрлі құралдар бар, және олардың функцияларының бірігуі құрастыру процесін жеңілдетеді.

Құрастырушының бес негізгі құралдарының қатарына бастапқы мәтін редакторы, компилятор/ассемблер, программды симулятор, аппаратты эмулятор және программатор кіреді. Бір жағынан бұл құралдардың барлығынын қолдану шарт емес, олардың әрқайсысын бөлек қолануға болады, бірақ оларды бірге қолдану құрастыруды және қосымшаны түзеуді жеңілдетеді.

Редактор программаның бастапқы кодын жазу үшін қолданылады. Қазіргі кезде редакторлардың көптеген түрлері бар, қарапайым редактор пренетақтадан енгізілетін кодты файлға көшіреді, ал мамандандырылған редакторларда әр батырманың басылу реакциясы қоланушымен программалануы мүмкін.

Мысалы С тілінде программа жазуға арналған редактор, негізінде батырманы басқан сайын «REXX» программасын орындай алады. Бұл программа пернетақтаның басылуын өңдеп әр түрлі жағдайларға байланысты арнаулы үн қатуларды қамтамасыз етеді. Мысалы, «if» операторын енгізгеннен кейін, редактор келесідей үн қатады, ол С тілінің форматында бұл операторды іске асырады:

if ()

{

}

else

{

} /* endif */

Редактордың мұндай реакциясы операторды синтаксистің дұрыстығы жөнінде қадағалау қажеттілігінен арылтады.

Бұл редактор DOS командалық жолынан жұмыс жасайды, бұл қасиет оны Windows секілді графикалық интерфейс ортасында жұмыс істеуінің пайдалылығын азайтады, себебі берілген мәліметтер стандартты түрде қиып керекті жеріне қою мүмкін болмайды. Бірақ С тілінде қосымшаларды әзірлеу үшін бұл редакторды қлдану әжептәуір ыңғайлы болып келеді. Айта кетеін жайт, редактор ең алдымен қолданушы үшін ыңғайлы болу керек.

Компилятор/ассемблер бастапқы мәтінді, микроконтроллердің ассемблер командаларына одан кейін программа жадысына жүктеуге болатындай форматқа аударады.

Келесі айтылатын интерфейс ол редактор мен компилятор/ассемблер арасындағы интерфейс. Компиляция қателері туралы анықтаманы беру және қате жолдарды дисплейда көрсетілуі әзірлеу процесін оңай және ұтымды етеді. Жоғарыда сипатталған редакторға компиляция орындалу барысында бастапқы мәтінді сақтап отыратын REXX-программасын жазуға болады , ол қате жолдарды тауып бастапқы мәтінде көрсетіп отырады. Негізінде бұл REXX-программасы бастапқы мәтінді комплексті түрде өңдеуден өткізеді.

Симуляторлар - әзірлеу жүйесінің (host) инструменталды компьютерінде компиляциядан өткен программалық кодты орындайтын программа, бірақ ол программаны бақылауға алынған жүйедегідей(target) орындайды. Бұл әр түрлі оқиғаларға микроконтроллердің реакциясы мен программаның артынан бақылауға мүмкндік береді. Симулятор программалық жабдықтаманы әзірлеу процесінде теңдесіз құрал болуы мүмкін, ол шын аппатратурада іске асыруға қиын әр түрлі оқиғаларды зерттеуге мүмкіндік береді.

Сыртқы жағдайлар мен оқиғаларды иммитациялау үшін, әдетте енгізу әрекетінің арнайы файлы қолданылады. Бұл файл үлгіленген құралға қабылданатын енгізу сигналдарының тізбектелуін береді. Әдетте бұл келесідей көрінеді:

қадам   Bit0     Bit1     ; Енгізілетін биттерді анықтау

1            1         1          ; бастапқы жағдай-барлық бірліктер

100       0         1          ; мәліметтердің жылжуын иммитациялау

101       0         0

102       0         1

105       1         1          ; келесі битке өту

106       1         0

107       1         1

Және ары қарай жалғаса береді...

Мұндай файлды әзірлеу үшін көп уақытты және көп күшті жұмсау керек. Бірақ микроконтроллер мен программа белгілі бір жағдайларда қалай әрекет ететіндігін түсіну үшін енгізу әрекетінің файлы мен симуляторды қолдану ең жақсы әдіс болып табылады. Әдетте мұндай файл аналогті кіруді иммитациялау үшін қолданылмайды.

Көп жағдайда сұлбаны құрастыру мен шын құралдарды қосу алдында симуляцияны қолдану дұрыс болып табылады. Құрылғыны сынақ кезінде жағып жібергенше, бірінші құралдағы белгілі бір жағдайды имитациялаған абзал. Егер құрал күтілгендей жұмыс жасамаса, онда енгізу әрекетінің файлын өзгертіп мәселенің қайда жатқанын түсіну керек, ол үшін симуляторды қолданған дұрыс болып табылады, ол шын аппаратураға қарағанда программаның орындалу ретін бақылауға мүмкіндік береді, ал шын аппаратурада тек соңғы нәтижелерді ғана көруге болады.

Осы шақтағы микроконтроллер интерфейсін іске асыратын арнайы сұлба- «сұлбалық эмулятор» (In-Circuit Emulator — ICE) деп аталады. Эмулятор программаның ПЗУ-ына емес ОЗУ -ына қосылған микроконтроллердің микросхемасын қолданады, ол қолданбалы тапсырмалардын орындау жылдамдығы жоғары. Көптеген эмуляторлар командаларды жазу үшін қолданылады, олар белгілі бір уақытта процесормен орындалады. Бұл берілген оқиғаға байланысты поцессордың қалай әрекет ететінін түсінуге мүмкіндік береді.

Сұлбалы эмулятордың екі түрлі кемшілігі бар. Біріншісі – бағасы, себебі нағыз эмулятор мың доллардан астам тұрады. Екіншісі құрылып жатқан жүйе мен эмулятор арасындағы электірлік қосындысына байланысты. Ол үшін қолданылатын эмулятордың шанышқыларының шығаруларының сапасы төмен, сондықтан олар тез сынып қалады, әсіресе шанышқы ажыратуға көп рет енгізіп шығарылса. Бірақ бұл кемшіліктер онша еленбейді. Іс жүзінде жақсы жобаланған эмулятор қосымшаларды құрастыру үшін қуатты құрал болып табылады.

Бір жағынан симуляторлар программаның осы шақта орындалуын қамтамасыз етпесе де, көптеген құрастырушылар өздерінің кіру әсерлерінің файлдарын жасауын дұрыс деп санайды және симуляторды құрылғылардың жобалану кезіндегі жұмысын модельдеу үшін қолданылады. Осындай әдіс құрылғының жұмыс істеу кезіндегі қателіктерін табуға мүмкіндік береді. Айта кету керек, құрастырушыға программалық қамамасыздандыруды компилятор арқылы жасалған файлға қарағанда бастапқы мәтінді қолдану арқылы түзету оңайлау болып келеді. Бұл әдіс «бейнелі түзету» деп атлады. Программаның орындалу барысын компиляциядан өткен объектті кодқа қарағанда бастапқы мәтін арқылы бақылаған ыңғайлырақ.

Әзірлеушінің соңғы құралы - микроконтроллер программа жадысының программаторы. Дегенмен микроконтроллердің кейбір өндірушілері оларды маскалы–программаланатын программа жадысымен қоса өндіргенді ұнатады, олар әдетте қосымшаларды жасау үшін E(E)PROM  жадысымен микроконтроллерлердің ұқсас түрлерін шығарады. Ол дегеніміз, қосымша жасау кезіндегі микроконтроллердің тікелей программалау мүмкіндігі бар болып табылады.

Кейбір микроконтроллерлерге арнайы программатор керек, бірақ көбінесе ISP жүйе ішінде программалау мүмкіндігі қолданылады. Бұл жағдайда программатор жобаланып жатқан құрылғының бір бөлігі болып табылады.

Программалау кезінде дұрыс мәліметтерді қолдану маңызды болып келеді. Әсіресе оны конфигурациясы программаланатын құрылғыларда қамтамасыз ету керек, әйтпесе биттердің дұрыс емес орнатылуы құрылғының берілген функцияларды орындамайтындығына алып келеді.

Кейбір программаторлар сұлбалы эмулятордың функцияларын іске асырады. Сонымен бірге программаторға қойылған микроконтроллер түзетіліп жатқан жүйеге қосылып содан кейін эмуляторда орындалатын жұмысқа ұқсас жұмысты басқарады.