Menu English Ukrainian Rosyjski Strona główna

Bezpłatna biblioteka techniczna dla hobbystów i profesjonalistów Bezpłatna biblioteka techniczna


ENCYKLOPEDIA RADIOELEKTRONIKI I INŻYNIERII ELEKTRYCZNEJ
Darmowa biblioteka / Schematy urządzeń radioelektronicznych i elektrycznych

Projektujemy urządzenia na mikrokontrolerach. Encyklopedia elektroniki radiowej i elektrotechniki

Bezpłatna biblioteka techniczna

Encyklopedia radioelektroniki i elektrotechniki / Mikrokontrolery

Komentarze do artykułu Komentarze do artykułu

Pomiędzy początkowym pomysłem stworzenia urządzenia opartego na mikrokontrolerze (MCU) a opracowaniem jego programu następuje ważny etap – sporządzenie schematu blokowego algorytmu. Często się o tym zapomina lub, co gorsza, zaniedbuje. Programowanie odbywa się „heurystycznie”, zasadniczo metodą prób i błędów. Efektem jest słabo działający, uciążliwy program, który nie jest w pełni zrozumiały nawet dla jego twórcy i jest trudny do modernizacji. Jednak od dawna znane są dość proste metody, stosowane przez programistów, pozwalające już od werbalnego sformułowania algorytmu kompetentnie zaprojektować jego schemat blokowy. Zainteresowania zawodowe autora artykułu dotyczą opracowań MK serii Z8, ale prezentowany przez niego materiał dotyczy w równym stopniu innych typów MK.

Interakcję dowolnego systemu MK z operatorem i obiektem sterującym można przedstawić w sposób pokazany na rys. 1 schemat [1]. W ogólnym przypadku obiekt sterujący jest wyposażony w elementy wykonawcze i czujniki. Operator oddziałuje na mikrokontroler za pomocą urządzeń nadrzędnych i otrzymuje informacje o stanie obiektu z odczytów urządzeń wyświetlających. Te pierwsze to przełączniki, przyciski, rezystory zmienne, drugie to wskaźniki świetlne (w tym graficzne i alfanumeryczne), urządzenia emitujące dźwięk i inne urządzenia sygnalizacyjne.

Projektujemy urządzenia na mikrokontrolerach

Wszystkie jednostki funkcjonalne i połączenia pokazane na schemacie są wymagane tylko w złożonych interaktywnych systemach monitorowania i sterowania. W tzw. układach sterowania w otwartej pętli mikrokontroler pracuje „na ślepo”, nie otrzymując żadnej informacji o stanie obiektu. Czasami nawet nie dostarcza operatorowi żadnych informacji o pracy (zarówno własnej, jak i obiektu), zwłaszcza jeśli możliwa jest ocena wyników kontroli poprzez obserwację samego obiektu. W zamkniętych układach sterowania MC dostosowuje działania sterujące na obiekcie w zależności od odczytów czujników, ale tutaj również nie są wymagane urządzenia wyświetlające. Układy sterowania nie zawierają elementów wykonawczych, a za pomocą urządzeń nadrzędnych operator jedynie dobiera kontrolowane parametry lub przełącza tryby pracy wskaźników.

Metodologia projektowania systemów na MK [2, 3] obejmuje sformułowanie i analizę problemu, jego inżynierską interpretację, opracowanie schematu blokowego algorytmu i tekstu programu aplikacyjnego. W takich systemach mają tendencję do przypisywania maksymalnej liczby funkcji oprogramowaniu. Skuteczność ich wdrożenia ostatecznie determinuje wymaganą ilość pamięci, szybkość i niezawodność systemu jako całości. Oczywiście musimy jeszcze opracować diagram koncepcyjny i projekt samego produktu, ale poruszymy je tylko w zakresie niezbędnym do rozwoju programu MK.

Stwierdzenie problemu to słowne sformułowanie wymagań dla projektowanego systemu. Przede wszystkim opisują jego przeznaczenie, charakterystykę obiektu sterującego, czujniki, wskaźniki, elementy wykonawcze i urządzenia nadrzędne. Następnie należy szczegółowo porozmawiać o pożądanym zachowaniu systemu we wszystkich możliwych sytuacjach, w tym także „nienormalnych”. W żadnym wypadku nie należy polegać na bezbłędnych działaniach operatora. Na przykład, po usłyszeniu sygnału alarmowego, może nacisnąć przycisk „START” zamiast przepisanego przycisku „STOP” lub losowo nacisnąć wszystkie przyciski z rzędu. Oczywiście nie da się przewidzieć wszystkich takich sytuacji, ale trzeba do tego dążyć. Konieczne jest określenie wartości liczbowych parametrów projektowanego układu.

Po pierwsze, zadanie jest formułowane z reguły „na poziomie użytkownika”. Na przykład początkowe zadanie opracowania systemu sterowania wentylatorem może brzmieć następująco: „Włącz i wyłącz wentylator, dostosuj intensywność przepływu powietrza i zmień jego kierunek (wywiew / wywiew)”. Analiza inżynierska sprowadzi ten problem do sterowania prędkością i kierunkiem obrotów napędu wentylatora – silnika elektrycznego prądu stałego. Ponieważ moc sygnałów wyjściowych MC jest oczywiście niewystarczająca do bezpośredniego sterowania silnikiem, konieczne będzie zainstalowanie między nimi specjalnego urządzenia sterującego, generującego sygnały o wymaganej mocy, a zadanie rozwiąże MC. będzie ograniczona do zapewnienia kierowcy działań kontrolnych.

Nie będziemy szczegółowo omawiać wyboru elementów sterujących mocą, czujników i urządzeń do ich interfejsu z MK. Dziś do tych celów produkowane są specjalistyczne mikroukłady, których zastosowanie jest znacznie efektywniejsze niż budowanie układu z dyskretnych elementów.

Załóżmy, że zastosowany zostanie zintegrowany sterownik silnika prądu stałego LMD18200 firmy National Semiconductor. Typowy schemat jego podłączenia pokazano na ryc. 2. Zawiera mostek potężnych tranzystorów MOS, których przekątna zawiera silnik.

Projektujemy urządzenia na mikrokontrolerach

Sterowanie sterownikiem odbywa się za pomocą trzech sygnałów logicznych. Na wejście PWM (modulacja szerokości impulsu) podawane są impulsy prostokątne, których stosunek czasu trwania do okresu powtarzania (współczynnik wypełnienia) określa prędkość obrotową silnika. Poziom logiczny sygnału na wejściu DIR (kierunek) wyznacza polaryzację napięcia podawanego do silnika, a co za tym idzie, kierunek jego obrotów. Ustawiając dziennik poziomu. 1 na wejściu BR (hamulec) silnik jest wyłączony i jeśli w tym momencie jest log na wejściu PWM. 0, obwód zasilania silnika zostanie po prostu otwarty, w przeciwnym razie przewody silnika zostaną również połączone ze sobą, co zapewni hamowanie awaryjne.

Sterownik ma wbudowane dwa czujniki. Jeden z nich generuje prąd płynący z pinu CUR (prąd) i jest proporcjonalny do prądu silnika ze współczynnikiem 377 μA/A. Wyjście czujnika temperatury TF (flaga termiczna) jest dyskretne w przypadku otwartego kolektora. Przechodzi w stan dziennika. 0. jeśli kryształ sterownika nagrzeje się powyżej 145°C.

Sformułujmy wymagania dla urządzenia sterującego silnikiem wentylatora, a w istocie sterownika silnika.

Urządzenie sterujące musi być wyposażone w przyciski, za pomocą których operator (użytkownik) może włączyć i wyłączyć silnik, zmienić kierunek, zwiększyć i zmniejszyć jego prędkość. Musi istnieć wskazanie kierunku obrotu silnika za pomocą sygnałów świetlnych w różnych kolorach oraz alarm dźwiękowy o wypadku (przegrzanie lub przeciążenie).

Po podaniu napięcia zasilającego urządzenie musi, bez włączania silnika, poczekać na komendę określającą kierunek obrotów. Jej otrzymanie należy potwierdzić sygnałem świetlnym. Po wydaniu polecenia „START” silnik musi zostać włączony i zacząć obracać się w określonym kierunku ze średnią częstotliwością (cykl pracy sygnału PWM = 0.5). Dla poleceń „WOLNIEJ” i „SZYBCIEJ” współczynnik pracy powinien odpowiednio się zmniejszać lub zwiększać, nie przekraczając wartości 0.2... 1. Komenda „STOP” powinna natychmiast zatrzymać silnik, po czym można go ponownie uruchomić wydając klawisz Komenda „START”.

W przypadku przekroczenia dopuszczalnej wartości poboru prądu, co może być następstwem np. mechanicznego zablokowania wału silnika, należy go wyłączyć i włączyć przerywany sygnał dźwiękowy o częstotliwości 1000 Hz. w formie krótkich serii (czas ich trwania i przerwy pomiędzy nimi wynoszą 1 s). W przypadku przegrzania mikroukładu należy zatrzymać silnik i włączyć sygnał dźwiękowy długimi seriami (czas trwania serii i przerw wynosi 2 s). Do tego czasu alarm dźwiękowy powinien pozostać włączony. do czasu wydania przez operatora komendy STOP, przywracając urządzenie do stanu pierwotnego. Przed wydaniem takiego polecenia nie powinno ono reagować na żadne inne.

Już na tym etapie należy abstrahować od szczegółów, które nie są istotne dla opracowania programu MK. Na przykład w tym przypadku nie ma to znaczenia. że obiekt sterujący (silnik) służy jako napęd wentylatora, rodzaj wentylacji (wywiewny lub nawiewny) zależy od kierunku jego obrotu, a natężenie przepływu powietrza zależy od częstotliwości. Co więcej, opracowując algorytm, można całkowicie zapomnieć o silniku i jego sterowniku, skupiając się na generowaniu sygnałów sterujących PWM. DIR, BR i przetwarzanie sygnałów z czujników CUR i TE.

Analizując sformułowany problem, warto od razu zidentyfikować pewne problemy, które nieuchronnie ujawnią się w kolejnych etapach. Na przykład, czy system powinien odpowiedzieć na polecenie RUN, jeśli kierunek obrotu nie jest ustawiony? Jeśli tak. w jakim zatem kierunku w takim wypadku powinien obracać się silnik? Czy po zatrzymaniu i ponownym uruchomieniu silnika należy zachować zadaną prędkość i kierunek obrotów? A po rozwiązaniu sytuacji awaryjnej? Na wszystkie takie pytania należy odpowiedzieć jak najszybciej.

Na podstawie opisu słownego sporządzane są listy sygnałów wejściowych i wyjściowych MK. Pierwsza z nich zawiera polecenia wydawane przez operatora oraz sygnały z czujników: „WYCIĄG”. "POMPOWANIE". "POCZĄTEK". "SZYBCIEJ". „WOLNIEJ”. "ZATRZYMYWAĆ SIĘ". „PRZECIĄŻENIE” (CUR). „PRZEGRZANIE” (TF). Druga zawiera sygnały sterujące dla sterownika silnika oraz wskaźniki: PWM – prędkość obrotowa. DIR - kierunek obrotów, BR - wyłącz silnik. G - włącz zieloną diodę LED. Y - włącz żółtą diodę LED. S - dźwięk.

Biorąc pod uwagę powyższe, możemy wyciągnąć wstępny wniosek. czego wymaga MK. posiadający co najmniej 14 pinów do podłączenia obwodów zewnętrznych (osiem wejść i sześć wyjść). Ponieważ sygnał CUR jest analogowy, potrzebny będzie komparator, aby porównać odczyty czujnika z akceptowalną wartością i wygenerować sygnał logiczny „PRZECIĄŻENIE”. Dlatego preferowany jest MK. wyposażony w wbudowany komparator. Odpowiednia jest na przykład minimalna 18-pinowa modyfikacja serii Z86 MK. Najtańszą opcją jest mikroukład. Z86E02. To wszystko na teraz. jeśli chodzi o sprzęt urządzenia. Rozkład sygnałów wejściowych i wyjściowych na pinach MC nie jest na tym etapie znaczący.

Następnie zaleca się zobrazowanie ustnie określonego algorytmu w postaci tzw. grafu maszyny skończonej. Urządzenie dyskretne uważa się za maszynę o skończonych stanach, jeśli możliwe jest wyliczenie wszystkich stanów, w jakich może się znajdować, wszystkich zdarzeń (wpływów zewnętrznych) prowadzących do zmiany stanu oraz wszystkich generowanych sygnałów wyjściowych. To właśnie urządzenia bazujące na MK.

Przykład wykresu automatu pokazano na ryc. 3.

Projektujemy urządzenia na mikrokontrolerach

Stany są reprezentowane przez węzły (wierzchołki) grafu. W tym przypadku są ich cztery: A. B. C i D. Wierzchołki połączone są łukami wyposażonymi w strzałki wskazujące kierunek przejścia, nad łukiem wskazane jest zdarzenie Xi powodujące to przejście, a poniżej znajduje się zbiór sygnałów wyjściowych Yi generowanych przez maszynę w tym momencie i niezmiennych aż do następnego przejścia. Teoretycznie z każdego wierzchołka grafu powinno wychodzić dokładnie tyle łuków. ile różnych wpływów zewnętrznych na maszynę jest możliwych. Jeśli jakieś zdarzenie nie zmieni stanu automatu, pokazany zostanie odpowiadający mu łuk wchodzący do tego samego wierzchołka, z którego wyszedł. Aby jednak nie zaśmiecać rysunku, w praktyce pozostają tylko te łuki. z którymi powiązane są zmiany sygnałów wyjściowych. Przykładowo, z wykresu pokazanego na ryc. 3. Możesz usunąć łuki A-A i B-B. W języku potocznym oznacza to, że maszyna w stanach A i B nie reaguje na zdarzenie X3.

Zdarzenia mające wpływ na maszynę, realizowane w formie programu MK. są nie tylko „bezpośrednie”, spowodowane zmianami poziomów logicznych sygnałów dostarczanych na zewnętrzne piny MC, ale także „pośrednie”. Te ostatnie obejmują na przykład pewien wynik porównania obliczonych i określonych wartości określonego parametru lub zakończenie długotrwałej operacji. Granica między zdarzeniami bezpośrednimi i pośrednimi jest czasami trudna do wytyczenia. Na przykład takie powszechne zdarzenie, jak wyzwolenie timera wbudowanego w MK, można uznać za pośrednie, jeśli zostanie zarejestrowane. analizując liczbę znajdującą się w odpowiednim rejestrze lub bezpośrednio, reagując na sygnał wygenerowany przez timer na zakończenie zliczania. Sygnały wyjściowe mogą być również pośrednie, nie zmieniające bezpośrednio poziomów logicznych na wyjściach MK. Często przy przejściu pomiędzy stanami automatu przypisują one jedynie określone wartości zmiennym programowym.

Wracając do omawianego problemu, zbudujmy wykres maszyny sterującej silnikiem. Analizując zadanie możemy wyróżnić następujące stany:

  • START - ustawiany natychmiast po włączeniu zasilania. Wykonywane są niezbędne czynności wstępne – ustawiane są początkowe wartości zmiennych programu i sygnałów wyjściowych oraz konfigurowane są urządzenia peryferyjne. Następnie maszyna przechodzi do stanu STOP1 (dobry przykład przejścia bazującego na zdarzeniu pośrednim – zakończeniu inicjalizacji);
  • STOP 1 - maszyna wchodzi do niego po zakończeniu inicjalizacji lub po wyjściu z sytuacji awaryjnej. Wyprowadza według poleceń określających kierunek obrotów silnika:
  • STOP2 - maszyna czeka na komendę „START”;
  • PRACA - stan główny, urządzenie generuje sygnał PWM. Wyjście komendą „STOP” lub sygnałem z czujników awaryjnych;
  • PRZEGRZAĆ. PRZECIĄŻENIE - stan, w który maszyna przechodzi ze stanu PRACA w wyniku zadziałania odpowiednich czujników. Silnik zostaje wyłączony, a urządzenie generuje sygnały dźwiękowe. Wyjście następuje wyłącznie komendą „STOP”.

Skonstruowany wykres pokazano na ryc. cztery.

Projektujemy urządzenia na mikrokontrolerach

Łatwo zauważyć, że nie da się zmienić przypadkowo ustawionego błędnego kierunku obrotów bez włączania i wyłączania silnika. Dodatkowo, aby go uruchomić, zawsze trzeba wydać dwie komendy – kierunek i start. Odmawiając wydania polecenia „START”, można wyeliminować warunek STOP2. i skieruj łuki poleceń „PUSH” i „EXTRACTION” bezpośrednio do stanu PRACA. W rezultacie na panelu sterowania będzie o jeden przycisk mniej, a jedno wejście MK zostanie zwolnione. a silnik włączy się natychmiast po naciśnięciu dowolnego przycisku ustawiającego kierunek. Ściśle rzecz biorąc, jakakolwiek zmiana danego algorytmu sterowania musi uzyskać zgodę klienta lub przyszłego użytkownika urządzenia. Jednak w praktyce amatorskiej klient, wykonawca i użytkownik to często jedna osoba i wystarczy „skonsultować się ze sobą”.

Uderzające jest to, że wykres nie odzwierciedla sposobu generowania sygnału PWM przy zmiennym współczynniku wypełnienia. Generalnie można to zrobić za pomocą specjalnego urządzenia sterowanego z MK. Ale staramy się zaimplementować wszystko czysto programowo, więc będziemy musieli podzielić stan WORK na dwa. W pierwszym z nich (PRACA) PWM = 0, w drugim (PRACA 1) - PWM = 1.

Teraz uwzględnimy zdarzenia powodujące przejścia między nimi - naprzemienne wyzwalanie dwóch timerów, z których jeden ustala czas trwania impulsów PWM, a drugi - przerwy między nimi, a każdy timer po uruchomieniu uruchamia drugi. Z uwagi na to, że w tym przypadku timery „logiczne” nigdy nie działają jednocześnie, można je zrealizować wykorzystując jeden timer „fizyczny”, programowo zmieniając jego opóźnienie po każdej operacji.

Komendy „SZYBCIEJ” i „WOLNIEJ” regulują opóźnienia czasowe timerów, pozostawiając ich sumę niezmienioną i równą zadanemu okresowi powtarzania impulsów PWM. Maszyna może reagować na te polecenia w obu rozpatrywanych stanach. Aby jednak uprościć algorytm, dopuszczalne jest ograniczenie reakcji tylko do jednego z nich. Ze względu na krótki czas trwania tych stanów, opóźnienie wykonania pozostanie niewidoczne dla operatora.

Kolejnym niezbędnym wyjaśnieniem jest sprawdzenie dopuszczalności wartości opóźnienia czasowego. W zależności od zadania cykl pracy sygnału PWM. równe T1/(T1+T0). gdzie T1 i T0 są opóźnieniami czasowymi timerów, muszą zawsze mieścić się w przedziale 0,2...1. Zatem po każdym wydaniu polecenia zmiany prędkości maszyna musi przejść w stan KONTROLA i dopiero stamtąd wrócić do PRACY stan wzdłuż jednego z dwóch łuków. Pierwszy odpowiada pozytywnemu wynikowi testu, po kliknięciu na niego ustawiane są nowe wartości czasu otwarcia migawki. Drugi - wynik jest negatywny, poprzednio obowiązujące fragmenty pozostają niezmienione.

Kontynuując analizę wykresu zauważamy, że stany PRZEGRZANIE i PRZECIĄŻENIE różnią się jedynie okresem powtarzania sygnału dźwiękowego. Warto połączyć je w jedno, nazywając to WYPADKIEM. Sygnał audio S może być generowany przy użyciu dwóch timerów, podobnie jak omówiony powyżej sygnał PWM. Ponadto wskazane jest użycie tego samego „fizycznego” timera, który w tym stanie pozostaje bezczynny.

Aby dźwięk był przerywany, można zastosować inny timer, ale łatwiej jest się bez niego obejść, zliczając okresy generowanego sygnału za pomocą licznika zaimplementowanego w oprogramowaniu, włączając i wyłączając sygnał wyjściowy po określonej ich liczbie. Wszystko to będzie wymagało zapewnienia dodatkowych stanów maszyny i przejść pomiędzy nimi.

Opracowany wykres automatycznego sterowania silnikiem przedstawiono na ryc. 5.

Projektujemy urządzenia na mikrokontrolerach

Należy pamiętać, że słowne stwierdzenia dotyczące wykonanych czynności zastępuje się przypisywaniem określonych wartości zmiennym. Przykładowo, zamiast wyrażenia „włącz żółtą diodę LED” wskazane jest Y = 1 i określono, że zielona dioda LED powinna być wyłączona, G = 0. Oprócz wspomnianych wcześniej sygnałów wyjściowych i opóźnień timerów, stała T to okres powtarzania impulsów PWM, a zmienna N to liczba impulsów S pozostałych do końca wygenerowanego interwału sygnału audio.

Kolejnym krokiem jest konwersja wykresu na schemat blokowy algorytmu działania MK. Przede wszystkim należy ponumerować wszystkie wierzchołki grafu (stany maszyny). Kolejność numeracji jest bardzo ważna w implementacji sprzętowej maszyny. Wybierając go prawidłowo, możesz znacznie uprościć urządzenie. W przypadku implementacji oprogramowania nie ma to tak dużego znaczenia i w większości przypadków numeracja może być dowolna. Program musi udostępniać tzw. „zmienną stanu”, której podczas pracy przypisywane są wartości równe numerom aktualnych stanów. W złożonych programach może być kilka takich zmiennych. Wiele języków programowania pozwala na nadawanie wartościom liczbowym nazw symbolicznych. Można to zastosować szeroko, gdyż linia programu, w której zmiennej przypisuje się wartość RABOTA, jest znacznie wyraźniejsza niż linia przypisująca np. wartość 6.

Na ryc. Na rys. 6 przedstawiono typowy schemat blokowy algorytmu sterowania w jego najbardziej ogólnej postaci. Po inicjalizacji program działa cyklicznie. Po przeanalizowaniu zmiennej stanu wykonuje w każdym cyklu odpowiednią procedurę. Zmiana stanu maszyny odzwierciedlana jest poprzez przypisanie zmiennej stanu nowej wartości, w wyniku czego w kolejnym cyklu zostanie wykonana inna procedura.

Projektujemy urządzenia na mikrokontrolerach

Procedury realizujące każdy stan maszyny zbudowane są według schematów blokowych podobnych do tych pokazanych na rys. 7. Przede wszystkim analizowane są wpływy zewnętrzne (zdarzenia). Następnie proces dzieli się na tyle gałęzi, ile jest łuków wychodzących z odpowiedniego wierzchołka grafu automatu, każdy z nich przewiduje wykonanie funkcji niezbędnych do realizacji tego przejścia, a na koniec wartość równą numerowi wierzchołka do którego skierowany jest łuk, przypisuje się do zmiennej stanu. Możliwe jest również inne podejście: najpierw realizują łuki wchodzące w wierzchołek, a następnie reagują na wpływy. Jego główną wadą jest to, że program musi „wiedzieć”, z jakiego stanu maszyna przeszła do tego, co w poprzednim przypadku nie było wymagane.

Projektujemy urządzenia na mikrokontrolerach

Należy pamiętać, że na rys. Rysunek 7 przedstawia dwie możliwe opcje wyjścia z procedury stanu. W pierwszym zdarzenia analizowane są cyklicznie do momentu wykrycia jednego z nich powodującego wyjście z tego stanu. W drugim - jeśli nie ma takich wpływów. procedura jest zakończona, jak pokazano linią przerywaną.

Jeżeli wpływów zewnętrznych jest niewiele i reakcja na nie w każdym stanie jest specyficzna, w blokach przetwarzania stanu zawarte są procedury detekcji zdarzeń. Można np. sprawdzić, czy przycisk „START” jest wciśnięty tylko w takim stanie, w jakim maszyna powinna na to zareagować. Często procedura filtrowania zdarzeń jest umieszczana w pętli głównej (na rys. 6 jest ona pokazana linią przerywaną) i dostarczana jest zmienna, której przypisuje się wartość jednoznacznie powiązaną ze zdarzeniem, które miało miejsce. Na przykład wynikiem odpytywania klawiatury jest kod naciśniętego klawisza. W bloku przetwarzania stanu, realizowanym według drugiej z omówionych powyżej opcji, analizowana jest jedynie wartość tej zmiennej.

W przeciwieństwie do modelu teoretycznego, rzeczywiste zdarzenia często zachodzą jednocześnie. W takiej sytuacji maszyna musi najpierw zareagować na zdarzenie, które ma najwyższy priorytet. Najprostszym sposobem ustalenia priorytetów jest wybranie właściwej sekwencji analizy zdarzeń. Przykładowo, zgodnie ze schematem blokowym pokazanym na ryc. 7, zdarzenie X1 ma najwyższy priorytet. najniższy dotyczy HZ. Jeśli zdarzenia o wysokim priorytecie występują znacznie częściej niż zdarzenia o niskim priorytecie, kolejka może nigdy nie dotrzeć do ostatnich. Aby tego uniknąć, należy nadać najwyższy priorytet rzadkim zdarzeniom. Czasami trzeba zmienić rozkład tych ostatnich w trakcie działania programu, np. umieszczając każde nowo przetworzone zdarzenie na końcu kolejki.

Nieprzewidywalne zachowanie systemu w MK często tłumaczy się zakłóceniami lub odbijaniem styków sterujących. Takie fałszywe zdarzenia należy „odfiltrować” za pomocą filtrów programowych. Najczęściej, aby rozpoznać zdarzenie jako mające miejsce, wystarczy upewnić się, że poziom sygnału logicznego na odpowiednim wejściu MK nie zmienił się przez pewien czas. W krytycznych przypadkach stosuje się bardziej złożone procedury.

Wśród wielu zdarzeń często można wyróżnić te „awaryjne”, na które trzeba natychmiast zareagować. Typowy przykład. Aby nie przegapić momentu uruchomienia timera, program musi na bieżąco sprawdzać stan swojego rejestru, nie będąc w stanie zrobić nic innego, dopóki timer nie upłynie. Sygnał żądania przerwania wygenerowany przez licznik czasu na koniec zliczania rozwiązuje problem. Po zaakceptowaniu tego. MK natychmiast (w każdym razie znacznie szybciej niż podczas normalnego przetwarzania programu tego samego zdarzenia) przystępuje do wykonania podprogramu obsługi tego przerwania, którego adres (wektor) musi być podany w specjalnie wyznaczonych komórkach pamięci programu.

W zdecydowanej większości mikrokontrolerów przewidziano urządzenie obsługujące przerwania wektora priorytetu wykonywanego programu. Przerwania mogą być zewnętrzne lub wewnętrzne. W tym drugim przypadku wejście żądania przerwania nie ma wyjścia zewnętrznego, ale jest podłączone do źródła żądania zlokalizowanego bezpośrednio w chipie MK. Zazwyczaj wewnętrzne przerwania są dostarczane nie tylko z timera, ale także z innych urządzeń wbudowanych w ten MK: kontrolerów portu szeregowego, komparatorów sygnału analogowego, przetworników analogowo-cyfrowych.

Często jedna z wewnętrznych zakłóceń współczesnych MK jest powiązana z tzw. Watch Dogiem, który służy do ochrony przed przypadkowymi awariami. Ten licznik czasu wymaga stałej

inicjalizacja poprzez zapisanie określonego kodu w określonym miejscu w przestrzeni adresowej. Program MK jest zbudowany w taki sposób, że podczas normalnego przebiegu taka procedura jest wykonywana dość często. Jeżeli MK jest zamrożony, inicjalizacja timera watchdoga zostaje zatrzymana i po chwili wysyła żądanie przerwania, którego przetworzenie ma na celu przywrócenie normalnej pracy systemu. Zwykle reakcja na przerwanie watchdoga jest taka sama. jako sygnał zewnętrzny, który ustawia MK do stanu początkowego.

Przerwania są kontrolowane poprzez włączanie lub wyłączanie ich w zależności od stanu wdrażanej maszyny. Jeżeli to samo przerwanie w różnych stanach ma zostać przetworzone w różny sposób, procedura przetwarzania jest zbudowana podobnie jak główna pętla programu, zapewniając analizę stanu. Różnica jest taka. że taka procedura nie jest zamknięta w pierścieniu. Po jego zakończeniu MK będzie kontynuował wykonywanie programu od miejsca, w którym został przerwany. Jest to obarczone awariami, ponieważ w stanie, który zmienił się w wyniku przetwarzania przerwań, kontynuowanie przerwanych działań może dać nieprawidłowy wynik. Są one chronione przed takimi błędami, zakazując przerw w wykonywaniu krytycznych odcinków przebiegu programu, które. niewątpliwie spowalnia reakcję systemu.

Jeśli w systemie jest więcej źródeł żądań przerwań niż przewidzianych dla nich wejść MK, żądanie grupowe jest implementowane sprzętowo, łącząc wyjścia kilku źródeł za pomocą obwodu OR. Przyjmując taką prośbę. MK ma obowiązek dowiedzieć się, kto go wysłał i odpowiednio go przetworzyć.

Cały algorytm działania urządzenia jest czasami implementowany przez zestaw procedur obsługi przerwań. W tym przypadku główna pętla rozpada się na kilka instrukcji maszynowych, aż do jednego polecenia bezwarunkowego przeskoku do siebie. Wielu MK udostępnia specjalne polecenia HALT lub IDLE, których używa. Zasadniczo przestają działać (czasami wyłącza się nawet generator zegara). Tylko przychodzące żądanie przerwania może wyprowadzić MC z tego stanu. Po zakończeniu przetwarzania żądania. Mikrokontroler wykonuje bezwarunkowe przejście na polecenie stop podane w pętli głównej i ponownie „zasypia”. Ten tryb jest bardzo ekonomiczny, ponieważ moc pobierana przez zatrzymany MK jest wielokrotnie zmniejszana, zwiększając się tylko podczas reakcji na wpływy zewnętrzne.

Schemat blokowy algorytmu sterowania silnikiem wentylatora, opracowany z uwzględnieniem powyższego, składa się z dwóch części, przedstawionych na rys. 8 (cykl główny) i ryc. 9 (przetwarzanie przerwań czasowych). Obydwa odpowiadają w zasadzie typowym schematom blokowym omówionym powyżej, z tą różnicą, że łączone są te same operacje wykonywane podczas przetwarzania różnych zdarzeń. Funkcja obsługi przerwań czasowych generuje sygnały PWM i S. Przy przejściu ze stanu STOP do stanu RUN przerwanie jest włączone, a po powrocie do stanu STOP jest wyłączane.

Projektujemy urządzenia na mikrokontrolerach

Program posiada teraz zmienną stanu ST, której dla przejrzystości przypisane są wartości łańcuchowe – nazwy odpowiednich stanów. Jak wspomniano powyżej, w programie będą to liczby - numery stanów lub ich symboliczne nazwy. Wartości przypisane zmiennej N0 dobierane są w oparciu o założenie, że okresy powtarzania generowanych impulsów PWR i S są takie same i wynoszą 1 ms. Jeśli tak nie jest. Schemat blokowy będzie musiał zostać nieco zmieniony.

Projektujemy urządzenia na mikrokontrolerach

Teraz możesz przejść do wyboru MK, rozprowadzić sygnały wejściowe i wyjściowe na jego pinach i opracować kompletny schemat obwodu urządzenia. Po ustaleniu, do jakich obwodów zewnętrznych zostaną podłączone bity konkretnego portu wejścia/wyjścia MK oraz poziomów logicznych sygnałów w tych obwodach, programista może przystąpić do tworzenia programu.

literatura

  1. Franke K. Wprowadzenie do mikrokomputerów: Per. z nim. - M.: Energoatomiedat. 1998.
  2. Kagan B. M., Stashin V. V. Podstawy projektowania mikroprocesorowych urządzeń automatyki. - M.: Energoatomiedat. 1987.
  3. Stashin V.V., Urusov A.V., Mologoitseva O.F. Projektowanie urządzeń cyfrowych na mikrokontrolerach jednoukładowych. - M.: Energoatomiedat. 1990.

Autor: M. Gladshtein, Rybinsk

Zobacz inne artykuły Sekcja Mikrokontrolery.

Czytaj i pisz przydatne komentarze do tego artykułu.

<< Wstecz

Najnowsze wiadomości o nauce i technologii, nowa elektronika:

Hałas drogowy opóźnia rozwój piskląt 06.05.2024

Dźwięki, które otaczają nas we współczesnych miastach, stają się coraz bardziej przeszywające. Jednak niewiele osób myśli o tym, jak ten hałas wpływa na świat zwierząt, zwłaszcza na tak delikatne stworzenia, jak pisklęta, które nie wykluły się jeszcze z jaj. Najnowsze badania rzucają światło na tę kwestię, wskazując na poważne konsekwencje dla ich rozwoju i przetrwania. Naukowcy odkryli, że narażenie piskląt zebry rombowatej na hałas uliczny może spowodować poważne zakłócenia w ich rozwoju. Eksperymenty wykazały, że zanieczyszczenie hałasem może znacznie opóźnić wykluwanie się piskląt, a pisklęta, które się wykluwają, borykają się z szeregiem problemów zdrowotnych. Naukowcy odkryli również, że negatywne skutki zanieczyszczenia hałasem rozciągają się na dorosłe ptaki. Zmniejszone szanse na rozrodczość i zmniejszona płodność wskazują na długoterminowe skutki, jakie hałas drogowy wywiera na dziką przyrodę. Wyniki badania podkreślają taką potrzebę ... >>

Bezprzewodowy głośnik Samsung Music Frame HW-LS60D 06.05.2024

W świecie nowoczesnych technologii audio producenci dążą nie tylko do nienagannej jakości dźwięku, ale także do łączenia funkcjonalności z estetyką. Jednym z najnowszych innowacyjnych kroków w tym kierunku jest nowy bezprzewodowy system głośników Samsung Music Frame HW-LS60D, zaprezentowany podczas wydarzenia World of Samsung 2024. Samsung HW-LS60D to coś więcej niż tylko system głośników, to sztuka dźwięku w stylu ramki. Połączenie 6-głośnikowego systemu z obsługą Dolby Atmos i stylowej konstrukcji ramki na zdjęcia sprawia, że ​​produkt ten będzie idealnym dodatkiem do każdego wnętrza. Nowa ramka Samsung Music Frame jest wyposażona w zaawansowane technologie, w tym Adaptive Audio zapewniający wyraźne dialogi na każdym poziomie głośności oraz automatyczną optymalizację pomieszczenia w celu uzyskania bogatej reprodukcji dźwięku. Dzięki obsłudze połączeń Spotify, Tidal Hi-Fi i Bluetooth 5.2, a także integracji inteligentnego asystenta, ten głośnik jest gotowy, aby zaspokoić Twoje ... >>

Nowy sposób kontrolowania i manipulowania sygnałami optycznymi 05.05.2024

Współczesny świat nauki i technologii rozwija się dynamicznie i każdego dnia pojawiają się nowe metody i technologie, które otwierają przed nami nowe perspektywy w różnych dziedzinach. Jedną z takich innowacji jest opracowanie przez niemieckich naukowców nowego sposobu sterowania sygnałami optycznymi, co może doprowadzić do znacznego postępu w dziedzinie fotoniki. Niedawne badania pozwoliły niemieckim naukowcom stworzyć przestrajalną płytkę falową wewnątrz falowodu ze stopionej krzemionki. Metoda ta, bazująca na zastosowaniu warstwy ciekłokrystalicznej, pozwala na efektywną zmianę polaryzacji światła przechodzącego przez falowód. Ten przełom technologiczny otwiera nowe perspektywy rozwoju kompaktowych i wydajnych urządzeń fotonicznych zdolnych do przetwarzania dużych ilości danych. Elektrooptyczna kontrola polaryzacji zapewniona dzięki nowej metodzie może stanowić podstawę dla nowej klasy zintegrowanych urządzeń fotonicznych. Otwiera to ogromne możliwości dla ... >>

Przypadkowe wiadomości z Archiwum

Sztuczna inteligencja pomoże Ci wybrać przepis 06.09.2017

Naukowcy z Massachusetts Institute of Technology opracowali program, który może opowiedzieć o przepisie i składnikach dania na podstawie jego zdjęcia.

Równocześnie z poważnym skutkiem dla zwykłych użytkowników, rozwiązanie może przynieść ogromne korzyści naukowcom. Analizując zdjęcia jedzenia zamieszczane na portalach społecznościowych, system sztucznej inteligencji o nazwie Pic2Recipe da migawkę cech gastronomicznych mieszkańców określonych krajów, regionów i grup społecznych.

Pozornie bezużyteczne zdjęcia w mediach społecznościowych mogą dostarczyć cennego wglądu w nawyki związane z opieką zdrowotną i preferencje żywieniowe, powiedział Yusuf Aytar z MIT, ponieważ nie ma znaczących ilości danych do analizy”.

Projekt jest prowadzony przez dwa laboratoria MIT - informatyki i sztucznej inteligencji - we współpracy z Qatar Research Institute.

Twórcy rozwiązania zauważają, że na tym etapie znakomicie radzi sobie z rozpoznawaniem deserów, w szczególności różnych wypieków, ale na razie ma trudności z mniej popularnymi produktami, takimi jak sushi czy smoothies. Celem na najbliższą przyszłość jest nauczenie sztucznej inteligencji określania metody gotowania (duszone lub smażone), a także urozmaicenie przepisów na wypadek, gdyby użytkownik nie miał pod ręką niezbędnych składników.

Inne ciekawe wiadomości:

▪ Monitor Samsung U32D970Q UHD

▪ Smartfony Samsung Galaxy S6 i Galaxy S6 Edge

▪ wymiatacz kosmosu

▪ Islamski telefon

▪ Wspinacze szkodzą naturze

Wiadomości o nauce i technologii, nowa elektronika

 

Ciekawe materiały z bezpłatnej biblioteki technicznej:

▪ sekcja witryny Film artystyczny. Wybór artykułu

▪ artykuł Substancje psychoaktywne i mechanizmy powstawania narkomanii. Podstawy bezpiecznego życia

▪ artykuł Gdzie jest jezioro, składające się z czystego płynnego asfaltu? Szczegółowa odpowiedź

▪ artykuł Słodki ogórek. Legendy, uprawa, metody aplikacji

▪ artykuł Wielopoziomowy wskaźnik napięcia. Encyklopedia elektroniki radiowej i elektrotechniki

▪ artykuł Zasilacz do chorej baterii. Encyklopedia elektroniki radiowej i elektrotechniki

Zostaw swój komentarz do tego artykułu:

Imię i nazwisko:


Email opcjonalny):


komentarz:





Wszystkie języki tej strony

Strona główna | biblioteka | Artykuły | Mapa stony | Recenzje witryn

www.diagram.com.ua

www.diagram.com.ua
2000-2024