Bezpłatna biblioteka techniczna ENCYKLOPEDIA RADIOELEKTRONIKI I INŻYNIERII ELEKTRYCZNEJ emulator ROMu. Encyklopedia elektroniki radiowej i elektrotechniki Encyklopedia radioelektroniki i elektrotechniki / Mikrokontrolery Opisany w artykule emulator wraz z komputerem może zastąpić swoją pamięć ROM podczas debugowania oprogramowania urządzenia mikroprocesorowego. Umożliwi to szybkie dostosowanie programu, oszczędzając czas, który w przeciwnym razie zostałby poświęcony na przeprogramowanie pamięci ROM. Emulator działa stosunkowo wolno, ponieważ nie ma własnej pamięci RAM. Ale z tego samego powodu jest prosty i tani. Jednym z problemów pojawiających się podczas opracowywania sprzętu mikroprocesorowego jest debugowanie programu zapisanego w pamięci ROM. Zwykle w tym celu stosuje się tak zwane reprogramowalne pamięci ROM (RPM), w których informacje są usuwane pod wpływem promieniowania ultrafioletowego. Ponieważ każda zmiana w programie powoduje konieczność usunięcia RPOM i ponownego zapisania w nim informacji, debugowanie zajmuje dużo czasu. Ponadto po 10–25 cyklach, z których każdy zmniejsza niezawodność przechowywania danych, należy wymienić mikroukład. Tym samym pracę twórczą przyćmiewa żmudny, mechaniczny proces przepisywania, nie mówiąc już o finansowej stronie problemu - pamięci EPROM z kasowaniem ultrafioletowym nie są tanie. Emulator, którego schemat pokazano na ryc. 1, pomoże rozwiązać problem. 64. Zamiast chipa ROM o pojemności do 1 KB, włóż wtyczkę XP27512 do przeznaczonego dla niego panelu debugowanego urządzenia. W zależności od typu ROM-u może zmieniać się jedynie kolejność podłączania przewodów emulatora do styków wtyczki (pokazana na schemacie odpowiada układowi 64 o pojemności XNUMX KB). Wtyczkę XP2 podłącza się do gniazda portu równoległego LPT1 dowolnego komputera osobistego (PC) kompatybilnego z IBM. Ponieważ port przeznaczony jest przede wszystkim do przesyłania danych do urządzenia zewnętrznego (drukarki), posiada 12 linii wyjściowych i tylko pięć linii wejściowych. Wymusza to multipleksowanie 16-bitowego adresu ROM otrzymanego przez komputer, co oczywiście wpływa na szybkość emulacji. Emulator składa się z następujących bloków funkcjonalnych: generator zegara (DD1.1-DD1.2), synchronizator zegara (DD2.2, DD3.1), urządzenie wyzwalające (DD2.1), licznik impulsów (DD4), blok rejestrujący impuls moduł kształtujący adres (DD1.5, DD3.3), rejestr danych (DD5) i multiplekser adresu (DD6, DD7). Prace rozpoczynają się od dotarcia sygnału CS niskiego poziomu z urządzenia mikroprocesorowego do wejścia S (pin 4) wyzwalacza DD2.1 (schematy czasowe sygnałów pokazano na ryc. 2). Ten ostatni przechodzi w stan odpowiadający logicznej 1 na wyjściu bezpośrednim (pin 5) podłączonym do wejścia D (pin 12) wyzwalacza DD2.2. W miarę zmniejszania się impulsu zegara (zapewnia to falownik DD1.4), logiczna 1 pojawia się również na wyjściu (pin 9) DD2.2, umożliwiając przejście impulsów zegara na wyjście elementu DD3.1. Zliczane są przez licznik DD4, którego sygnały wyjściowe dwóch najmniej znaczących bitów sterują adresami multiplekserów DD6 i DD7. Adres ROM jest przesyłany do komputera w czterech czterobitowych grupach: A0 - A3, A4 - A7, A8 - A11, A12 - A15. Do jego odbioru wykorzystywane są wejścia ERROR. Port równoległy SLCT, ACK, PE. Licznik DD4 objęty jest sprzężeniem zwrotnym w taki sposób, że jego współczynnik konwersji wynosi 5. Tyle okresów zegara zajmuje cykl emulacji. W pierwszych czterech impulsy z wyjścia elementu DD3.4 docierają na wejście BUSY portu LPT jednocześnie z załączeniem multiplekserów. zsynchronizować procedurę odczytu adresu przez komputer. W piątym okresie komputer wyprowadza bajt danych na wyjścia DATA1-DATA8, które muszą znajdować się w emulowanej pamięci ROM pod określonym adresem. Bajt ten jest przechowywany w rejestrze DD5. Po upływie tego okresu wyzwalacz DD2.1 powraca do stanu pierwotnego. To prawda, to drugie nastąpi tylko wtedy, gdy sygnał CS zakończy się w tym momencie. W przeciwnym razie opisany cykl się powtórzy. Emulator zmontowany jest na dwustronnej płytce drukowanej, której rysunek pokazano na ryc. 3. Na płytce znajdują się grupy pól stykowych X1-X4, do których wlutowane są przewody prowadzące do wtyczek XP1 i XP2. Zamiast mikroukładów wskazanych na schemacie obwodu dopuszczalne jest stosowanie ich funkcjonalnych analogów z dowolnej serii TTL lub TTLSh (K155, K555, KR1533, KR531). Podczas wymiany mikroukładu DD1 może być wymagany wybór elementów generatora zegara (R1, R3, C2), których częstotliwość powtarzania impulsów określa prędkość emulacji. Nie zaleca się ustawiania częstotliwości powyżej 100 kHz, gdyż może to prowadzić do nieprawidłowego działania. Wtyczka XP1 może być wykonana z wadliwej pamięci ROM z kasowaniem przez promieniowanie ultrafioletowe. Po rozbiciu przezroczystego okna należy usunąć cienkie przewodniki łączące kryształ z polami stykowymi obudowy. Żyły kabla są przylutowane do zewnętrznej części zacisków w taki sposób, aby nie przeszkadzały w włożeniu poprzedniego mikroukładu do panelu. Opisany powyżej algorytm działania emulatora wymaga przełączenia urządzenia mikroprocesorowego w tryb krokowy. Jest to wygodne przy pierwszym „uruchomieniu” programu i początkowych etapach jego debugowania. Aby pracować w trybie ciągłym, należy uzupełnić emulator o urządzenie synchronizujące, montując je zgodnie ze schematem pokazanym na ryc. 4. Przeznaczony jest do mikroprocesora KR580VM80A z generatorem zegara KR580GF24 i był testowany na komputerze Radio-86RK. W przypadku innych typów mikroprocesorów może być konieczne wprowadzenie zmian w synchronizatorze. Tabela pokazuje procedurę emulacji pamięci ROM z komputerem przy maksymalnej prędkości. Jest napisany w języku ASSEMBLY wbudowanym w system programowania Borland Pascal i jest przeznaczony do stosowania w programach tworzonych przy użyciu tego systemu. Zmiennej globalnej pDATA typu pointer w programie głównym należy przypisać wartość adresu pierwszego elementu tablicy bajtów zawierającej obraz emulowanej pamięci ROM. Wymiana danych odbywa się z maksymalną szybkością poprzez minimalizację liczby dostępów do pamięci komputera i wykorzystanie rejestrów procesora do tymczasowego przechowywania danych (dostęp do pamięci trwa kilkukrotnie dłużej niż operacja rejestr-rejestr). Osobliwością opisywanej procedury jest to, że jest to nieskończona pętla i w celu przyspieszenia pracy wyłącza wszelkie zakłócenia, w tym te z klawiatury. Dlatego emulację można zatrzymać jedynie poprzez naciśnięcie przycisku „RESET” komputera lub wyłączenie jego zasilania. Wykluczone jest także wyświetlanie jakichkolwiek informacji o działaniu debugowanego urządzenia na ekranie monitora komputera. Umiarkowanie wykwalifikowany programista może wyeliminować te niedociągnięcia, ale tylko kosztem spowolnienia procedury. Za pomocą przełączników określonych w wierszu poleceń lub w pliku konfiguracyjnym ustawia się tryb emulacji i wybierany jest plik z obrazem emulowanej pamięci ROM. Priorytet wiersza poleceń jest wyższy niż pliku konfiguracyjnego. Dostępne są następujące klucze: -sf - najszybsza emulacja (przy użyciu procedury omówionej powyżej); -sns - tryb, nieco wolniejszy niż poprzedni, ponieważ umożliwia odpytywanie klawiatury i wyjście przez naciśnięcie klawisza [Esc]; -sp - najwolniejszy tryb. Adres każdej komórki ROM, do której ma dostęp debugowane urządzenie, oraz pochodzące z niej dane są wyświetlane na ekranie monitora. Wyświetlany jest także postęp odczytu ćwiartek adresu. Jest to wygodne na początkowych etapach debugowania urządzenia mikroprocesorowego, ponieważ pozwala monitorować postęp jego programu; -f nazwa_pliku - określa nazwę pliku z obrazem ROM: /у - wyłącza kontrolę równości długości pliku obrazu ROM pod względem pojemności informacyjnej tego ostatniego; /? - Wyświetla pomoc dotyczącą trybów pracy emulatora. Naciśnięcie klawisza [F2] zatrzymuje bieżący proces odczytu adresu i wprowadza program w stan gotowości do przyjęcia nowego adresu. Obraz ROM to plik binarny, w którym wszystkie bajty przechowywane w emulowanej pamięci ROM są zapisywane sekwencyjnie, w rosnącej kolejności adresów, zaczynając od zera. - kody poleceń i danych debugowanego urządzenia mikroprocesorowego. Należy pamiętać, że luki w sekwencji adresów są niedozwolone. Wartości w nieużywanych komórkach również należy zapisać do pliku. Taki plik można utworzyć za pomocą asemblera krzyżowego TASM, jeśli zostanie wywołany w linii poleceń TASM.EXE -85 -g3 PROG.ASM Tutaj przełącznik -85 ustawia typ procesora (8085), dla którego przeznaczony jest przetłumaczony program PROG.ASM, a -g3 określa wynik w postaci binarnej. Powstały plik PROG.OBJ może służyć jako obraz ROM dla emulatora. Autorzy: S. Belyaev, D. Chernykh, Tambow Zobacz inne artykuły Sekcja Mikrokontrolery. Czytaj i pisz przydatne komentarze do tego artykułu. Najnowsze wiadomości o nauce i technologii, nowa elektronika: Hałas drogowy opóźnia rozwój piskląt
06.05.2024 Bezprzewodowy głośnik Samsung Music Frame HW-LS60D
06.05.2024 Nowy sposób kontrolowania i manipulowania sygnałami optycznymi
05.05.2024
Inne ciekawe wiadomości: ▪ Zapnij pasy bezpieczeństwa, pasażerowie na tylnym siedzeniu ▪ AT76C113 - nowa rodzina procesorów cyfrowych kamer wideo ▪ Nietoperze są głównymi nosicielami chorób wirusowych Wiadomości o nauce i technologii, nowa elektronika
Ciekawe materiały z bezpłatnej biblioteki technicznej: ▪ sekcja serwisu Wzmacniacze niskich częstotliwości. Wybór artykułu ▪ artykuł Czym jest prawda? Popularne wyrażenie ▪ artykuł Skąd się wzięło słowo zamrożenie? Szczegółowa odpowiedź ▪ Artykuł Trzcina cukrowa. Legendy, uprawa, metody aplikacji ▪ artykuł Niepalny samochodowy ULF. Encyklopedia elektroniki radiowej i elektrotechniki ▪ artykuł Niecięty papier. Sekret ostrości
Zostaw swój komentarz do tego artykułu: Wszystkie języki tej strony Strona główna | biblioteka | Artykuły | Mapa stony | Recenzje witryn www.diagram.com.ua |