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

Moduł debugujący dla mikrokontrolerów serii MCS51. Encyklopedia elektroniki radiowej i elektrotechniki

Bezpłatna biblioteka techniczna

Encyklopedia radioelektroniki i elektrotechniki / Mikrokontrolery

Komentarze do artykułu Komentarze do artykułu

Rozwój urządzeń opartych na mikrokontrolerach (MCU) z reguły odbywa się według prostego planu: MCU w typowym połączeniu jest „obciążany” niezbędnymi peryferiami, następnie pisane jest oprogramowanie. W takim przypadku trzeba skorzystać z różnych narzędzi, które załatwią rutynową pracę, pozostawiając programiście rozwiązanie twórczych problemów.

Opisane poniżej urządzenie jest „półproduktem” układu mikrokontrolera, narzędziem do jego debugowania i jednocześnie obiektem badań. Przeznaczony jest do nabycia umiejętności programowania i debugowania programów MCS51, ale może również służyć jako makieta rzeczywistego systemu, umożliwiając debugowanie oprogramowania aplikacyjnego wraz z obiektem sterującym. Mając taki moduł, programista uniknie konieczności częstego korzystania z programatora lub emulatora ROM, które są niedostępne dla wielu ze względu na ich wysoki koszt.

Schemat ideowy modułu debugującego dla mikrokontrolera serii MCS51 pokazano na rysunku. Większość węzłów jest wykonana zgodnie ze standardowymi obwodami, a urządzenie interfejsu z portem szeregowym komputera osobistego (PC) jest zapożyczone z urządzenia opisanego w artykule S. Kuleshova i Yu. Zaumenny „Programista chipów ROM” („ Radio”, 1995, nr 10, s. 22-25). Do wolnych pinów portów P1 i P3 mikrokontrolera DD1 można podłączyć różne urządzenia peryferyjne (na schemacie zakończone są strzałkami). Wtyczkę XP1 podłącza się kablem do gniazda jednego z portów szeregowych komputera PC, pod którym będzie pracował moduł.

Moduł debugowania mikrokontrolerów serii MCS51
(kliknij, aby powiększyć)

Po przyłożeniu napięcia zasilania kondensator C3 jest ładowany przez rezystor R1. Zgodnie z sygnałem resetu RES wygenerowanym przez element DD3.4, MK DD1 przechodzi do stanu początkowego i wykonuje operacje przygotowawcze, obejmujące ustawienie poziomu logicznego na 1 na wszystkich pinach portu P3. Wyzwalacz na elementach DD3.1, DD3.2 znajduje się w stanie, w którym jego sygnał wyjściowy ustala rozkład pamięci w taki sposób, że obszar adresowy 0-7FFFH pamięci programu zajmuje ROM (DD5), a 8000H-0FFFFH zajmuje RAM ( DD6). Wykonywany jest program Monitor znajdujący się w pamięci ROM. Wpisując na klawiaturze komputera polecenia Monitor, operator może pracować z pamięcią RAM i urządzeniami peryferyjnymi modułu.

Aby przenieść wyzwalacz do innego stanu, należy wydać z komputera sterującego opisaną poniżej komendę RESET Monitor, która ustawia sygnał MOD=0. Adresy pamięci RAM i ROM pamięci programu zostają zamienione miejscami i program wprowadzony wcześniej przez operatora do pamięci RAM modułu zaczyna działać. Pozwala to emulować działanie prawdziwego urządzenia i sprawdzać programy przetłumaczone na niskie adresy pamięci, np. przygotowane do zapisu do ROM. Przycisk SB1 służy do resetowania MK do pierwotnego stanu bez zmiany przydziału pamięci. Monitor można uruchomić ponownie jedynie poprzez naciśnięcie przycisku SB2 lub wyłączenie i włączenie zasilania. Dzięki temu debugowane programy mogą swobodnie działać ze stanem portu P3 (na przykład podczas pracy z urządzeniami peryferyjnymi), bez obawy o przypadkowe przełączenie alokacji pamięci.

Dioda LED HL1 służy jako najprostszy sposób wyświetlania informacji i jest bardzo przydatna, zwłaszcza jeśli z tego czy innego powodu nie ma połączenia z komputerem. Po włączeniu zasilania miga z częstotliwością około 1 Hz, co oznacza, że ​​monitor działa. Dioda Zenera chroni urządzenie przed odwrotną polaryzacją lub przepięciem zasilacza +5 V.

Program Monitor (tabela 1) umożliwia kontrolę modułu i jego interakcję poprzez port szeregowy RS-232C z komputerem PC, z którego przesyłane są polecenia i dane niezbędne do pracy nad konkretnym zadaniem. Za pośrednictwem tego samego portu komputer PC odbiera i wyświetla na swoim ekranie wyniki pracy modułu. Na komputerze musi być uruchomiony program komunikacyjny „Telemax” z powszechnie używanej powłoki Norton Commander 5.0, „Hyper Terminal” z systemu Windows 95 OSR2 lub inny podobny. W ostateczności można obejść się bez specjalnego programu, po prostu wysyłając pliki z przygotowanymi danymi do portu szeregowego komputera za pomocą polecenia MS DOS.

Moduł debugowania mikrokontrolerów serii MCS51
(kliknij, aby powiększyć)

Konfigurując program komunikacyjny, należy usunąć linie inicjujące modem, ustawić tryby „Local Echo” i „CR/LF Broadcast” oraz w razie potrzeby wybrać terminal ANSI i tabelę kodów ASCII. Tryb pracy portu szeregowego powinien być następujący: prędkość - 4800 Baud, liczba bitów na znak - 8, kontrola parzystości wyłączona, liczba bitów stopu - 1. Jeżeli wszystko się zgadza, tekst wpisany na klawiaturze komputera zostanie wysyłane do modułu debugującego, a odpowiedzi - wyświetlane na ekranie.

Polecenia monitora można wpisywać zarówno na klawiaturze, używając wielkich, jak i małych liter. Wszystkie znaki muszą być w kodowaniu ASCII. Klawisz [BackSpace] usuwa ostatnio wprowadzony znak z bufora modułu debugowania. Każde polecenie składa się z nazwy i argumentu. Koniec nazwy jest oznaczony znakiem ogranicznika: spacją, tabulatorem, zmianą wiersza lub powrotem karetki. Poniżej tradycyjnie oznaczymy to podkreśleniem (_), ale możesz wpisać dowolne z powyższych.

Po otrzymaniu separatora Monitor porównuje pierwsze cztery otrzymane wcześniej znaki znajdujące się w buforze z zawartością tablicy poleceń w pamięci ROM. Po znalezieniu dopasowania zapamiętuje adres procedury obsługi poleceń z tej samej tabeli i zaczyna odbierać operand - jedną lub więcej liczb szesnastkowych. Umówmy się, że jedno- i dwubajtowe adresy pamięci wewnętrznej i zewnętrznej MK zostaną oznaczone odpowiednio XX i XXXX, długość bloku - YYYY, inne dane - ZZ lub ZZZZ. Na przykład XXXX,YYYY to blok zewnętrznej pamięci danych rozpoczynający się od adresu XXXX i długości YYYY bajtów. Należy uwzględnić wszystkie zera wiodące. Operand musi również kończyć się ogranicznikiem, po otrzymaniu którego rozpoczyna się procedura obsługi poleceń. Separator wprowadzony do pustego bufora jest ignorowany.

RESET_ ZZZZ_ - włącza się drugi tryb alokacji pamięci, MK powraca do stanu pierwotnego, sterowanie zostaje przekazane na adres ZZZZ. Do normalnego działania polecenia wymagana jest działająca pamięć RAM.

DANE_ XXXX:_ ZZ_ [ZZ_][XXXX:_ZZ_ [ZZ_]._ - informacja jest wprowadzana do kolejnych komórek zewnętrznej pamięci danych, zaczynając od adresu XXXX. Nie ma potrzeby wprowadzania nawiasów kwadratowych, wskazują one jedynie, że liczba argumentów ZZ_ może być dowolna. Wprowadzanie danych kończy się symbolem kropki. W tabeli Rysunek 2 pokazuje przykład użycia poleceń DATA i RESET do wprowadzenia prostego programu do pamięci RAM i uruchomienia go.

READ_XX_ lub READ_XXXX_ - z komórek pamięci wewnętrznej lub zewnętrznej RAM danych odczytywane jest słowo (dwa kolejne bajty). Wynik w postaci liczby szesnastkowej (najpierw bajt pod najwyższym adresem) przesyłany jest do portu szeregowego.

WRITE_XX,ZZ_, WRITE_XX,ZZZZ_, WRITE_XXXX,ZZ_ lub WRITE_XXXX,ZZZZ_ - bajt ZZ lub słowo ZZZZ zapisywany jest pod adres XX lub XXXX.

Należy pamiętać, że instrukcje READ i WRITE są realizowane przy użyciu adresowania pośredniego, więc nie mogą współpracować z rejestrami funkcji specjalnych. Aby uzyskać dostęp do rejestrów, należy napisać procedury wymiany z adresowaniem bezpośrednim dla każdego z nich. Przykładem może być procedura obsługi poleceń SPEED. Jeśli moduł posiada MCU z 256 bajtami wewnętrznej pamięci RAM, polecenia READ i WRITE będą mogły pracować z dodatkowymi 128 bajtami pod adresami 80H-0FFH.

LOAD_XXXX,YYYY_ - wypełniony informacją otrzymaną poprzez port szeregowy, blok zewnętrznej pamięci danych.

SAVE_XXXX,YYYY_ - zawartość bloku zewnętrznej pamięci danych przesyłana jest do portu szeregowego.

CALL_ZZZZ_ - wywoływany jest podprogram zaczynający się od adresu ZZZZ. Aby powrócić do Monitora, należy zakończyć go poleceniem RET. Przerwania są wyłączone podczas wykonywania podprogramu.

CHECK_XXXX,YYYY_ - obliczana jest suma kontrolna - młodszy bajt sumy wszystkich bajtów bloku zewnętrznej pamięci danych.

FILL_XXXX,YYYY,ZZ_ - obszar zewnętrznej pamięci danych jest wypełniany bajtem ZZ i obliczana jest jego suma kontrolna.

COPY_XXXX,YYYY,ZZZZ_ lub COPY_PXXXX,YYYY,ZZZZ_ - blok zewnętrznej pamięci danych jest kopiowany pod adres ZZZZ. Znak P oznacza, że ​​kopiowany obszar znajduje się w pamięci programu. Jednocześnie obliczana jest suma kontrolna.

TEST_XXXX,YYYY_ - sprawdzana jest sprawność zewnętrznego bloku pamięci RAM. Jeżeli nie ma błędów, wyświetla się komunikat „OK”, w przeciwnym razie „XXXX: YY<>ZZ”, gdzie XXXX to adres uszkodzonej komórki, YY to wpisana do niej wartość, a ZZ to odczytana wartość. Polecenie nie niszczy zawartości pamięci RAM.

SPEED_ZZ_ lub SPEED_ZZ+_ - zmienia prędkość wymiany danych poprzez port szeregowy. Domyślnie jest to 4800 Baud (określane przez bajt programu Monitor pod adresem 2DH). Wartość równa argumentowi ZZ umieszczana jest w rejestrze TH1 mikrokontrolera i określa prędkość pracy jego transceivera. Znak plus w operandzie powoduje podwojenie prędkości poprzez ustawienie bitu PCON.7.

Port szeregowy komputera może działać z szybkością transmisji 110, 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600 i wyższą. Możliwość dość dokładnej konfiguracji portu szeregowego MCU serii MSC51 przy określonych prędkościach zależy od częstotliwości użytego rezonatora kwarcowego. Na przykład, jeśli jest to 12 MHz, port można skonfigurować na 300, 600, 1200, 2400 i 4800 bodów za pomocą polecenia SPEED z argumentami odpowiednio 98, CC, E6, F3 i F3+. Stosując rezonator 11 MHz, można było osiągnąć prędkość 9600 bodów. Jednak podczas przesyłania plików MK prawdopodobnie nie będzie w stanie przetworzyć danych przybywających ze zbyt dużą szybkością.

Opisany zestaw poleceń można rozszerzać i uzupełniać bez konieczności ponownego tłumaczenia Monitora, a nawet bez kasowania pamięci ROM. Nowa procedura obsługi poleceń jest umieszczana w wolnym obszarze. Nazwa polecenia (pierwsze cztery znaki wielkimi literami) jest zapisywana począwszy od adresu 5ABH, po którym następuje dwubajtowy adres procedury obsługi i bajt 0FFH. Procedura obsługi musi zakończyć się przejściem na adres 23FH.

Wszystkie adresy komórek jednobajtowych wymienione poniżej odnoszą się do wewnętrznej pamięci RAM MK. Monitor wykorzystuje banki rejestrów 0 i 2 oraz komórki 20H-3FH. Stos rośnie od adresu 50H. Gdy nie odbiera i nie przetwarza poleceń, mikrokontroler w sposób ciągły wykonuje podprogram znajdujący się w pamięci ROM pod adresem określonym w komórkach 35H i 36H. Domyślnie jest to 063H. Podprogram ten, zmieniając okresowo stan rozładowania P3.4, zapala i wyłącza diodę HL1. Częstotliwość migania zależy od zawartości komórki 3DH. Jeżeli bit ten ma być wykorzystany do innych celów należy wydać komendę WRITE_35,006A_.

Komórki 37H i 38H zawierają adres modułu obsługi przerwań portu szeregowego, który faktycznie służy jako szkielet monitora i określa jego reakcję na polecenia operatora. Domyślnie zapisywane jest tutaj 0, co odpowiada wywołaniu standardowej procedury obsługi znajdującej się w pamięci ROM pod adresem 081H.

Wpisując kod inny niż 3 do adresu 0BH, można aktywować funkcję „Echo”. Monitor odeśle wszystkie dane otrzymane przez port szeregowy. Umożliwi to wyłączenie „Local Echo” w programie komunikacyjnym i, jeśli to konieczne, zapisanie wszystkich poleceń wysyłanych do modułu debugującego i jego odpowiedzi na nie w pliku tekstowym.

Liczba pod adresem 3AH określa przerwę pomiędzy otrzymaniem polecenia przez Monitor a odpowiedzią na nie, która jest konieczna do przełączenia niektórych programów komunikacyjnych z nadawania na odbiór (nie jest to wymagane w przypadku „Telemaxu”). Jest równy czasowi przerwy w sekundach pomnożonemu przez 50.

Jednym z wyników poleceń operujących na blokach pamięci (LOAD, SAVE, CHECK, FILL, COPY) jest suma kontrolna bloku umieszczona w komórce 39H. Można go używać do monitorowania poprawności wykonania wymienionych poleceń.

Monitor może bezpośrednio akceptować pliki w formacie Intel HEX utworzone przez wiele asemblerów. Wystarczy taki plik przesłać na port szeregowy komputera za pomocą programu komunikacyjnego lub po prostu komendą MSDOS COPY <nazwa pliku> COM2. Używany wcześniej port (w tym przypadku COM2) należy skonfigurować za pomocą polecenia MODE COM2:4800,N,8,1. Informacja zostanie zapisana w zewnętrznej pamięci danych modułu debugującego, a w przypadku niezgodności sum kontrolnych zostanie wyświetlony odpowiedni komunikat.

Każdy wiersz pliku Intel HEX zaczyna się od dwukropka, po którym bez spacji następują następujące dwucyfrowe bajty szesnastkowe:

  • liczba bajtów danych zawartych w wierszu;
  • wysoki i niski bajt adresu pierwszego z bajtów danych;
  • bajt zerowy;
  • bajty danych (ich liczbę podaje pierwszy bajt ciągu);
  • sprawdź sumę
  • młodszy bajt zwykłej sumy wszystkich bajtów łańcucha, pobranego ze znakiem minus.

Plik HEX zawsze kończy się linią zawierającą zerowe dane i bajty adresu po dwukropku, po której następuje flaga ostatniej linii (01) i suma kontrolna równa FF. W tabeli 3 przedstawiono przykład takiego pliku zawierającego te same dane, które zostały wprowadzone poleceniem Monitor DATA zgodnie z tabelą 2.

Autor: W. Oglezniew, Iżewsk

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

Układ jednoukładowy Exynos 9611 17.11.2019

Samsung udostępnił informacje o jednoukładowym układzie Exynos 9611, który jest przeznaczony do użytku w smartfonach.

Nowy procesor mobilny Samsung Exynos 9611 zawiera wbudowany silnik sztucznej inteligencji, który obejmuje również jednostkę przetwarzania wizualnego. Osobno wymieniono ulepszenia intelektualne w kręceniu zdjęć i filmów.

Samsung stawia na technologię sztucznej inteligencji. Według południowokoreańskiego producenta technologia ta ma kluczowe znaczenie dla urządzeń mobilnych nowej generacji.

System sztucznej inteligencji w Exynos 9611 oparty jest na technologii głębokiego uczenia. Jednostka przetwarzania obrazu wykorzystuje cyfrowy procesor sygnału i silnik sieci neuronowej, który może analizować analogowe sygnały obrazu i wideo w celu identyfikacji obiektów i otoczenia.

Exynos 9611 potrafi rozpoznawać sceny za pomocą tej technologii i precyzyjnie dostrajać charakterystykę zdjęcia (balans bieli, nasycenie, kontrast itd.). Aby poprawić jakość zdjęć, obsługuje różne kombinacje inteligentnych kamer wykrywających głębię. Ponadto Exynos 9611 obsługuje kodeki HEVC H.265 i H.264, kodując i dekodując wideo 4K przy 120 fps.

Wydajność Exynos 9611 została znacznie poprawiona. Układ składa się z 64-bitowego 8-rdzeniowego procesora. Wykorzystuje architekturę czterech rdzeni Cortex-A73 o częstotliwości 2,3 GHz i czterech rdzeni Cortex-A53 o częstotliwości 1,7 GHz. Jeśli chodzi o procesor graficzny, Exynos 9611 korzysta z procesora graficznego Mali-G72 MP3.

Inne ciekawe wiadomości:

▪ Tranzystory bawełniane

▪ Dieta wegańska może pomóc w odstawieniu leków

▪ Sztuczna inteligencja będzie przewidywać burze magnetyczne

▪ Deszcz i telefony

▪ US: E inteligentny zamek do drzwi;

Wiadomości o nauce i technologii, nowa elektronika

 

Ciekawe materiały z bezpłatnej biblioteki technicznej:

▪ sekcja witryny Duża encyklopedia dla dzieci i dorosłych. Wybór artykułu

▪ artykuł Im gorzej, tym lepiej. Popularne wyrażenie

▪ artykuł Która religia uważa Lenina, Szekspira i Joannę d'Arc za świętych? Szczegółowa odpowiedź

▪ Artykuł Karagana jest podobny do drzewa. Legendy, uprawa, metody aplikacji

▪ artykuł Regulator obrotów wentylatora zasilacza. Encyklopedia elektroniki radiowej i elektrotechniki

▪ artykuł Ładowarka akumulatorów, 2,5 A. 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