3.2.3.2. Таймерлер және оқиға процессорлары
Микроконтроллер арқылы жүзеге асырылатын көптеген басқару мәселелері іс жүзіндегі уақытқа байланыстырылуды қажет қылады. Бұндай жағдайда жүйенің басқарылушы объектісінің жағдайы туралы мәлімет алу, қажетті есептемелер жүргізу және объект жағдайының талапқа сай өзгертілуіне жеткілікті уақыт аралығында басқару әрекеттерін тудыру қабілеті болу керек.
Іс жүзіндегі басқару қызметтерінің қалыптастырылуын орталық процессорға ғана жүктеу тиімді болмайды. Сондықтан, қазіргі заманғы көптеген микроконтроллерлерде іс жүзіндегі уақытқа байланысты қызмет таймер (таймерлер) пайдалану арқылы жүзеге асырылады.
Таймер модулдері сәйкесті сыртқы сезгіштерінен тексерілімді оқиғаның туған мезеті туралы информация қабылдау және уақытқа байланған басқару әрекеттерін қалыптастыру қызметтерін атқарады.
8-разрядты микроконтроллердің таймер модулі басқару схемасымен біріктірілген 8- немесе 16-разрядты санауыш түрінде құрылған. Микро-контроллердің схемақұралысында таймердің сыртқы оқиғаларды санау режимінде пайдаланылу мүмкіндігі ескерілген, сондықтан ол көбіне таймер/санауыш деп аталады. Микроконтроллер құрамындағы қалыпты 16-разрядты таймер/санауыштың құрылымы 3.5-суретте келтірілген.
3.5 Сурет
Микроконтроллер жадысында 16-разрядты санауыш екі регистрмен суреттеледі: TH – санауыштың үлкен байты, ал TL – кіші байты. Оларға оқу үшін де, жазу үшін де байланысуға болады және олардың санау бағыты – тек қана тура, яғни әрбір кіріс импульсі түскен кезде санауыш мәні бірге өсіріледі. Бастапқы қойылымына байланысты, санауыш келесі кіріс сигналдарының біреуін пайдалана алады:
басқарылымды жиілік бөлгішінің шығысындағы импульстер тізбесін (fBUS);
микроконтроллердің TOCKI кірісіне түсетін сыртқы оқиғалардың сигналдарын.
Бірінші жағдайда санауыш – таймер режимінде, екінші жағдайда – оқиға санауышы режимінде істейді. Санауыштың асып түсу жағдайында асылым триггері (TF) бірге қойылып, ол (таймерден үзіліске рұқсат қойылған жағдайда) үзіліс сұранысын тудырады. Таймердің іске қосылуы мен тоқтатылуы бағдарлама басқаруымен ғана жүзеге асырылады. Бағдарламалық тәсілмен санауыштың үлкен және кіші байттарын кез келген жағдайға қоюға және оның кезекті кодын оқуға болады.
Қарастырылған “дәстүрлі” таймер/санауыш модулі қарапайым микроконтроллерлердің әртүрлі моделдерінде кеңінен қолданылады. Оны уақыт интервалдарын өлшеуге және импульстер тізбесін қалыптастыру үшін пайдалануға болады. “Дәстүрлі” таймер/санауыштың келесі кемістіктері бар:
таймердің іске қосылуы мен тоқтатылу командаларының орындалуына уақыт кететініне байланысты, өлшенетін уақыт интервалдарының төменгі мөлшерінің (бірнеше мс) шектелуі;
толық санау коэффициентінің периодынан өзгеше келетін, уақыт интервалдарын қалыптастыру күрделілігі. Толық санау коэффициентінің периоды – (Kбөл/fBUS) · 216;
бірнеше арнаға қатар қызмет жасау (өлшеу немесе импульстік сигнал қалыптастыру) мүмкіндігінің жоқтығы.
Олардың біріншісі MCS-51 (Intel) микроконтроллерлер жинамындағы таймер/санауыштың жетілдірілген модулінде жойылтқан. Санау кірісінің қосымша логикасы тактілік импульстердің санауыш кірісіне, кіріс жолдарының біреуіндегі сигнал деңгейі “1” болған кезде түсуіне мүмкіндік береді. Бұл жағдайда таймердің іске қосылуы мен тоқтатылуы аппараттық тәсілмен жүзеге асырылатындықтан, уақыт интервалдарының өлшену дәлдігі көтеріледі. Жетілдірілген таймерде, оның асып кету мезетінде оған кез келген кодтың қайта енгізілуі де жүзеге асырылады. Бұл толық санау коэффициентінің периодынан өзгеше келетін, уақыт интервалдарын қалыптастыруға мүмкіндік береді.
Бұл жетілдірімдер “дәстүрлі” таймердің басты кемістігін (оның жұмысының бірарналылығын) жоймайды. Микроконтроллерлердің іс жүзіндегі уақыт бойынша істеу жүйесін жетілдіру қазіргі заманда келесі бағыттарда жүргізіліп жатыр:
таймер/санауыш модулдерінің санын ұлғайту. Бұл жол MCS-51 құрылымды микроконтроллерлер шығарушы фирмалардың және Mitsubishi мен Hitachi компанияларының микроконтроллерлеріне тән;
таймер/санауыш модулінің құрылымын, кіріс ұсталымы (input capture – IC) және шығыс салыстырымы (output compare – OC) түріндегі қосымша аппараттық құралымдар енгізу арқылы өзгерту. Бұл жол, мысалы, Motorola компаниясының микроконтроллерлерінде пайдаланылады.
Кіріс ұсталымы арнасының жұмыс приципін оның 3.6-суретте келтірілген құрылым схемасы арқылы түсінуге болады.
Оқиға детекторының схемасы микроконтроллердің бір кірісіндегі кернеу деңгейін “бақылап” отырады. Көбіне ол үшін енгізу/шығару портының бір жолы алынады. Бұл жолдағы логикалық сигналдың деңгейі 0-ден 1-ге және керісінше өзгеруі жазу стробын тудырып, таймер санауышының кезекті жағдайы 16-разрядты кіріс ұсталымы регистріне жазылады. Суреттелген әрекет микропроцессорлық техникада ұсталым оқиғасы деп аталады. Оқиға ретінде қабылданатын, кірістегі сигналдың келесі түрлерінің біреуінің таңдалу мүмкіншілігі ескерілген:
сигналдың тура (алғы) ауытқымасы;
сигналдың кері (артқы) ауытқымасы;
сигналдың логикалық деңгейінің кез келген өзгерісі.
Ұсталым оқиғасының түрін таңдау таймердің жандандырылым барысында қойылады және оны бағдарламаның орындалу барысында бірнеше рет өзгертуге болады. Әрбір ұсталым оқиғасы ұсталым триггерінің бірге қойылуына әкеледі де, оның шығысында ICF туы (белгісі) көтеріледі. Кіріс ұсталымы триггерінің жағдайын бағдарламалы оқу арқылы (ұсталым оқиғасына байланысты үзіліске рұқсат қойылған жағдайда) үзіліс сұранысы INT IC қалыптастырылады.
3.6 Сурет
Кіріс ұсталымын пайдалану кезінде санауыштың кезекті жағдайын көшіру аппаратты тәсілмен жүзеге асырылатындықтан, үзілістің қосалқы бағдарламасына ауысу уақытына байланысты туатын кірістік уақыт интервалының өлшенім қателіктері жойылады. Бірақ, үзіліс өңделуінің қосалқы бағдарламасына ауысу уақыты өлшенетін уақыт интервалының ұзақтығына (келесі ұсталым оқиғасының туу мезетіне байланысты) бұл жағдайда шек қойылады.
Шығыс салыстырымы арнасының құрылымы 3.7-суретте көрсетілген. Цифрлық компаратор санауыштың кезекті кодын 16-разрядты шығыстық салыстырым регистрінде жазылған кодпен үздіксіз салыстырып отырады. Кодтардың теңескен мезетінде микроконтроллердің Pxj шығысында логикалық сигналдың берілген деңгейі қойылады. Әдетте, шығыстық салыстырым оқиғасының туу мезетінде Pxj шығысындағы сигналдың келесі өзгерістерінің біреуі ескеріледі:
жоғарғы логикалық деңгейдің қойылуы;
төменгі логикалық деңгейдің қойылуы;
шығыс сигналын терістелуі.
3.7 Сурет
Салыстырым оқиғасының тууы кезінде шығыс салыстырымының триггері бірге қойылып, оған сәйкесті шығыс салыстырымының туы OCF көтеріледі. Кіріс ұсталымы режиміндегі сияқты шығыс салыстырымы триггерінің жағдайын бағдарламалы оқу арқылы (салыстырым оқиғасына байланысты үзіліске рұқсат қойылған жағдайда) үзіліс сұранысы INT OC қалыптастырылады.
Шығыс салыстырымы режимі, негізінде, берілген ұзақтықтағы уақыт интервалдарын қалыптастыруға арналған. Қалыптасқан уақыт интервалының ұзақтығы, шығыс салыстырымы регистріне тізбектеп енгізілетін кодтардың айырымымен ғана анықталады. Салыстырым арнасының регистріне кодтың жаңа мәнін жазуға қажетті уақыт қалыптасатын уақыт интервалының ұзақтығының ең кіші мөлшерін шектейді.
Жетілдірілген таймер модулдері микроконтроллердің әртүрлі құбылмаларында пайдаланылады. Бұл кездегі оның кірістік ұсталым және шығыстық салыстырым арналарының саны әртүрлі болуы мүмкін. Мысалы, Motorola фирмасының HC05 жинамының микроконтроллерлерінде қалыпты шешім ретінде 1IC+1OC немесе 2IC+2OC модулдері алынған, ал микроконтроллер құрамындағы таймер модулі – біреу ғана. Кейбір модулдердің арналарын кіріс ұсталымына немесе шығыс салыстырымына бастама қойылым арқылы еркін қоюға болады. Жетілдірілген таймер модулінің санауышының бағдарламалы тоқтатылым қызметінің болмауы мүмкін. Бұл кезде санауыш жағдайын микроконтроллер жұмысының бір мезетімен сәйкестіруге болмайды да, санауыш еркін санауыш (free counter) ретінде сипатталады.
Жетілдірілген таймердің аппараттық құралдары іс жүзіндегі уақытқа байланысты көптеген басқару мәселелерін шешуге мүмкіндік береді. Бірақ, басқару алгоритмдерінің күрделілігінің өсуіне байланысты жетілдірілген таймердің келесі шектеулері көзге түсе бастайды:
уақыт негізінің бір санауышына қатысты ұсталым және салыстырым арналарының санының жетпестігі. Бұл өзара сәйкестірілген көпарналы импульстер тізбесін қалыптастыруға мүмкіндік бермейді;
арнаның нақтылы анықталған құралымы (немесе ұсталым, немесе салыстырым) көбіне шешілуші мәселенің талаптарына сай келмейді;
енді-импульсті модуляциялау (ЕИМ) тәсілімен сигнал қалыптастыру бағдарламалы көмек қажет қылады, ал бұл шығыс сигналының ең жоғарғы жиілігін шектейді.
Сондықтан, микроконтроллерлердің іс жүзіндегі уақытқа байланысты жүйе модулдері әрі қарай дамытылуда.
Достарыңызбен бөлісу: |