You are hereLogic Analyzer Console

Logic Analyzer Console


Rozkazy Konsolowe Analizatora

   Konfiguracja "Analizator Stanów Logicznych" systemu In Circuit Spy (ICS) wymaga użycia dwóch rozkazów do przeprowadzenia pełnego cyklu pomiarowego.

  • --dev_logic_analyzer_200_anz Zarządza pomiarem. Rozpoczyna cykl pomiarowy oraz dostarcza informacji o stanie cyklu pomiarowego

  • --dev_logic_analyzer_200_dma Zarządza przesyłem danych. Transmituje zarejestrowane dane do Systemowego Bufora Serwera

Wymienione powyżej rozkazy jednak nie wystarczą do wykonania pomiaru. Są to jedynie dedykowane dla danej konfiguracji polecenia, które nie są dostępne w np. konfiguracji typu Częstościomierz/Okresomierz. Rozkazy te wchodzą w skład cyklu pomiarowego którego stosunkowo najprostszą wersję przedstawiono w następującym algorytmie:

  1. ics_server.exe --ics32sx --connect TCP --privileged
    Uruchomienie serwera

  2. --dev_open_serial IP TCP ics0a001
    Otwarcie urządzenia ICS. Nazwa ics0a001 musi odpowiadać numerowi seryjnemu urządzenia które zostało podpięte do komputera PC. Można skorzystać z polecenia --dev_list

  3. --dev_jump_to_address IP TCP 0x0
    Przekierowanie wykonywania programu do Bootloadera. Jest to etap konieczny do zrealizowania w przypadku gdy urządzenie obsługiwało wcześniej inną konfigurację

  4. --sys_config_buffer IP TCP --config 4 2200000
    Przygotowanie Systemowych Buforów Serwera. 4 bufory o rozmiarze 2200000 bajtów każdy

  5. --sys_client_wr_rd_buffer IP TCP --wr_s 0 0 la200uc0.ifs
    Wgranie do zerowego Systemowego Bufora Serwera programu na procesor.

  6. --sys_client_wr_rd_buffer IP TCP --wr_s 1 0 la200anz.ifh
    Wgranie do pierwszego Systemowego Bufora Serwera implementacji pomiarowej dla układu FPGA

  7. --sys_client_wr_rd_buffer IP TCP --wr_s 2 0 la200dma.ifh
    Wgranie do drugiego Systemowego Bufora Serwera implementacji transmisyjne dla układu FPGA

  8. --dev_wr_rd_buffer IP TCP --wr_s 0 0 0x40000000 7564
    Przekopiowanie programu z Systemowych Bufora Serwera do pamięci RAM procesora urządzenia ICS. Wartość 7564 oznacza w tym przypadku rozmiar wgrywanego pliku którego to rozmiar można uzyskać za pomocą rozkazu sys_client_crc_file

  9. --dev_jump_to_address IP TCP 0x40000000
    Przekierowanie wykonywania programu z Bootloadera do nowo wgranego programu.

  10. --dev_config_hardware IP TCP --pd 1 0 210000
    Zaprogramowanie układu FPGA implementacją pomiarową Analizatora Stanów Logicznych

  11. --dev_ext_clock IP TCP 0xa11a01
    Zaprogramowanie układu sygnału zegarowego ICS'a. Wartość 0xa11a01 jest przykładowa, a zależy od częstotliwości wymaganej przez przeprowadzany pomiar

  12. --dev_logic_analyzer_200_anz IP TCP --start 0x0 0x0 0x1 0x0 0x1 0x0 0xffffffff 0x0 0xffffffff
    Rozpoczęcie pomiaru wg warunków przekazanych jako parametry rozkazu

  13. --dev_logic_analyzer_200_anz IP TCP --status
    Pętla sprawdzająca stan pomiaru. Należy wykonywać ten rozkaz do momentu zakończenia cyklu pomiarowego. Pomiędzy kolejnymi sprawdzeniami, w celu odciążenia procesora komputera PC, można przyjąć odstęp czasowy równy setkom milisekund

  14. --dev_ext_clock IP TCP 0xA00202
    Zaprogramowanie układu sygnału zegarowego ICS'a do wartości redukującej moc pobieraną przez układ

  15. --dev_config_hardware IP TCP --pd 2 0 210000
    Zaprogramowanie układu FPGA implementacją transmisyjną Analizatora Stanów Logicznych

  16. --dev_logic_analyzer_200_dma IP TCP --rd_s 1 3 0 0 2097152 2097144
    Przekopiowanie zarejestrowanych danych przez ICS do trzeciego Systemowego Bufora Serwera

  17. --sys_client_wr_rd_buffer IP TCP --rd_s 3 0 2097152 "swap\file.smp"
    Przekopiowanie zarejestrowanych danych z trzeciego Systemowego Bufora Serwera do pliku znajdującego się na komputerze PC na którym wywoływane są polecenia dla aplikacji ics_client.exe. Dane zapisywane są do pliku określonego ścieżką dostępu i nazwą.

  18. --dev_close_serial IP TCP currently_opened
    Zamknięcie urządzenia ICS. W przypadku gdy użytkownik nie chce zwalniać uchwytu do urządzenia który uzyskał za pomocą rozkazu dev_open_serial, etap ten musi zostać pominięty. Dopiero na końcu pracy z urządzeniem zalecanie jest wywołanie tego rozkazu

  19. --sys_close_socket
    Zamknięcie połączenia TCP/IP. Rozkaz warto wywołać jedynie przy posługiwaniu się bezpośrednio biblioteką ics_client.dll. Co więcej rozkaz ten można wywołac jedynie na końcu pracy z urządzeniem ICS

W przypadku gdy wykonywany jest kolejny cykl pomiarowy, powyższy algorytm może zostać zmodyfikowany. Modyfikacja polega na pominięciu rozkazów zamykających uchwyt do urządzenia i połączenie TCP/IP. Rozkazy do pominięcia mają numery 18 i 19.
Przy takim podejściu każdy następny cykl pomiarowy może składać się wyłączeni z rozkazów 10..17 włącznie. Na końcu pracy z urządzeniem warto jedynie wywołać rozkazy zamykające 18 i 19

Uwagi

  • Wywołanie każdego rozkazu (poza uruchomieniem serwera) poprzedzone jest ścieżką dostępu i nazwą aplikacji klienckiej ics_client.exe. W przypadku gdy użytkownik chce przyśpieszyć pomiar powinien skorzystać z biblioteki ics_client.dll. Przykład aplikacji operującej na tej bibliotece dołączono do pakietu. Aplikacja ta to kod źródłowy aplikacji ics_client.exe bazującej na opisywanej bibliotece.

  • Aplikacja graficzna Analizatora Stanów Logicznych w oknie Console rejestruje wszystkie polecenia wysyłane do biblioteki ics_client.dll. Dzięki temu użytkownik znacznie lepiej może zrozumieć zasadę przeprowadzenia pełnego cyklu pomiarowego dla Analizatora Stanów Logicznych

dev_logic_analyzer_200_anz

    Funkcja odpowiedzialna jest za przeprowadzenie pierwszego etapu cyklu pomiarowego Analizatora Stanów Logicznych. Cykl ten to skonfigurowanie parametrów startowych analizatora, uruchomienie pomiaru i monitorowanie postępu zakończenia dane cyklu pomiarowego

    Ogólne informacje dotyczące rozkazu

  • Wywołanie rozkazu wymaga połączenia z serwerem i otwartego kanału komunikacyjnego z urządzeniem

  • Uruchomienie rozkazu wymaga wgrania do urządzenia ICS oprogramowania procesora o nazwie
    la200uc0.ifs
    lub o nazwie poszerzonej o wersję i sumę kontrolną CRC. Po załadowaniu pliku do urządzenia należy "skoczyć" do nowego programu. Wymagane jest również wgrania konfiguracji dla układu FPGA. Plik konfiguracyjny w tym przypadku to
    la200anz.ifh
    lub o nazwie poszerzonej o wersję i sume kontrolną CRC. Oprogramowanie dostępne w dostarczonym pakiecie w katalogu:
    ics32sx\logic_analyzer\la_200\XXX\firmware

  • Przed uruchomieniem pomiaru konieczne jest przede wszystkim skonfigurowanie wewnętrznego zegara. Służy do tego polecenie dev_ext_clock.
    Uwaga. W przypadku gdy Analizator taktowany jest sygnałem zewnętrzny należy wprowadzić wartość
    0xa11a01
    W przypadku taktowania sygnałem zegarowym wewnętrznym należy użyć konfiguracji zalecanej w definicji rozkazu dev_ext_clock

  Rozkazy  
  • --start Rozpoczyna pomiar
  • --status Sprawdza stan pomiaru
  • --abort Przerywa pomiarowy

Opis rozkazów

  --start  

Składnia

ics_client.exe --dev_logic_analyzer_200_anz IP TCP --start clk_mode clk_settings threshold_level word_bit_mode bit_compare bit_mask word_compare word_mask
  • IP Adres IP serwera

  • TCP Numer portu TCP serwera

  • --start Słowo klucz

  • clk_mode Określa w jaki sposób doprowadzany jest sygnał zegarowy do Analizatora. Parametr przyjmuje wartości z zakresu 0..3. Inne wartość są poddane operacji "and 0x3". Znaczenie parametru jest następujące:     <> 0x0
           Taktowanie Analizatora zegarem wewnętrznym. Sygnał zegarowy podany jest bezpośrednio na moduły pomiarowe Analizatora
        <> 0x1
           Taktowanie Analizatora zegarem wewnętrznym. Sygnał zegarowy podany jest procesowi dzielenia przez funkcje wartości określoną przez parametr clk_settings
        <> 0x2
           Taktowanie Analizatora zegarem zewnętrznym. Sygnał zegarowy podany jest na moduły pomiarowe Analizatora po przejściu przez moduł opóźniający. Opóźnienie określone jest przez parametr clk_settings
        <> 0x3
           Tak jak dla parametru 0x2 z tą różnicą że sygnał zegarowy jest dodatkowo negowany

  • clk_settings Parametr przyjmuje wartości z zakresu 0..15. Inne wartość są poddane operacji "and 0xF". W zależności od clk_mode parametr ten pełni rolę podzielnika wewnętrznego sygnału zegarowego Analizatora lub wprowadza opóźnienie do zewnętrznego sygnału taktującego. Zależność przyjmuje formę:     <> clk_mode = 0x0
           Wartość parametru clk_settings powinna być ustawiona na '0'
        <> clk_mode = 0x1
           W tym trybie parametr clk_settings jest wykorzystywany jako zmienna wyrażenia określającego przez jaką wartość jest dzielona wewnętrzna częstotliwość Analizatora. Wyrażenie ma postać:
    podzielnik = 2 (clk_settings + 1)
    co dla wartość '0' daje podzielnik przez dwa, dla wartość '1' otrzymujemy podzielnik przez cztery, itd
        <> clk_mode = 0x2 lub 0x3
           W tych trybach pracy parametr clk_settings określa o ile opóźniony zostaje zewnętrzny sygnał zegarowy wprowadzony do Analizatora przez użytkownika. Opóźnienie jest proporcjonalne do wartość wprowadzonego parametru. Opóźnienie należy stosować w celu uchwycenia właściwego momentu zatrzaśnięcia danych pomiarowych. Pojedyncza wartość parametru to opóźnienie rzędu 2ns. Przy szybkim sygnale zegarowym opóźnienie może więc wynosić kilka cykli zegarowych. Nie ma to jednak znaczenia gdy sygnał taktujący jest niezmienny w czasie. Wartość tego parametru należy dobrać doświadczalnie.

  • threshold_level Określa w jakim miejscu bufora zatrzaśnięty zostanie warunek wyzwalający trigger Analizatora Stanów Logicznych. Parametr ten wpływa na cykl pomiarowy w przypadku gdy użytkownik uaktywnił przynajmniej jedno Wyzwalanie Bitowe lub Słowem. Szczegółowa interpretacja tego parametru została przedstawiona w opisie zasady działania Analizatora. W skrócie i w uproszczeniu parametr ten oznacza w jakim miejscu na ekranie aplikacji graficznej Analizatora Stanów Logicznych widoczny będzie stan na liniach wejściowych, który wyzwolił Analizator. Parametr przyjmuje wartości z zakresu 0..15. Inne wartość są poddane operacji "and 0xF"

  • word_bit_mode Określa sposób aktywność Wyzwalania Analizatora. Parametr przyjmuje wartości z zakresu 0..15. Inne wartość są poddane operacji "and 0xF". Znaczenie poszczególnych kombinacji jest następujące:
        <> 0x0 Moduł wyzwalania wyzwalania wyłączony. Po uruchomieniu pomiaru Analizator wykona cykl pomiarowy bez oczekiwania na spełnienie jakiegokolwiek warunku wyzwolenia
        <> 0x1 Bitowe - zbocze narastające
        <> 0x2 Bitowe - zbocze opadające
        <> 0x3 Bitowe - wyzwalanie poziomem
        <> 0x4 Słowem - zbocze narastające
        <> 0x5 Bitowe - zbocze narastające, Słowem - zbocze narastające
        <> 0x6 Bitowe - zbocze opadające, Słowem - zbocze narastające
        <> 0x7 Bitowe - wyzwalanie poziomem, Słowem - zbocze narastające
        <> 0x8 Słowem - zbocze opadające
        <> 0x9 Bitowe - zbocze narastające, Słowem - zbocze opadające
        <> 0xA Bitowe - zbocze opadające, Słowem - zbocze opadające
        <> 0xB Bitowe - wyzwalanie poziomem, Słowem - zbocze opadające
        <> 0xC Słowem - wyzwalanie poziomem
        <> 0xD Bitowe - zbocze narastające, Słowem - wyzwalanie poziomem
        <> 0xE Bitowe - zbocze opadające, Słowem - wyzwalanie poziomem
        <> 0xF Bitowe - wyzwalanie poziomem, Słowem - wyzwalanie poziomem

  • events_counter Określa ile musi wystąpić warunków wyzwolenia określonych przez użytkownika zanim Analizator Stanów Logicznych przejdzie do kolejnego etapu cyklu pomiarowego. Parametr przyjmuje wartości z zakresu 1..0xFFFFFFFF. Wartość '0' jest zabroniona.
    Dzięki tej funkcji użytkownik może łatwo użyć Analizatora jako licznika zdarzeń. Wystarczy jedynie ustawić wyzwalanie na oczekiwaną wartość, a parametr events_counter na np. wartość 0xFFFFFFFF.

  • bit_compare 32 bitowa liczba bez znaku z którą porównywany jest stan linii wejściowych Analizatora

  • bit_mask 32 bitowa liczba bez znaku która określa które bity wejściowe są analizowane. '1' oznacza, że dany bit jest aktywny.
    Zasada działania wyzwalania bitowego polega na porównywaniu aktywnych bitów aktywnych wejściowych, wybranych za pomocą parametru bit_mask, z równoważnymi bitami parametru bit_compare. Gdy którykolwiek z aktywnych bitów przyjmie oczekiwaną wartość pojawi się wstępny warunek wyzwolenia. Warunek ten następnie jest traktowany jako stan '0' i '1'. Stan ten poddawany jest analizie czy pojawiło się zbocze narastające (nie było spełnionego warunku a następnie warunek jest spełniony), czy pojawiło się zbocze opadające (warunek jest spełniony a następnie nie jest spełniony), czy w końcu sprawdzenie czy jest zgodność na poziom (pojawiła się wartość '1'). Po tym etapie analizy sprawdzane jest czy ilość wystąpień warunku wyzwolenia jest większa lub równa wartości określonej parametrem events_counter. Jeżeli tak występuje właściwy warunek wyzwolenia.

  • word_compare 32 bitowa liczba bez znaku z którą porównywany jest stan linii wejściowych Analizatora

  • word_mask Tak jak dla bit_mask z tą różnicą, że wstępny warunek wyzwolenia pojawia się gdy wszystkie (nie gdy którykolwiek z bitów) aktywne bity są zgodne z wartością określoną przez użytkownika za pomocą parametru word_compare

Poprawna odpowiedź

O. code
I. comment
  • "O." Identyfikator poprawnego wykonania rozkazu
  • code Kod wykonania rozkazu. Powinien być '0'
  • "I." Identyfikator komentarza
  • comment Komentarz dla użytkownika

Wystąpił błąd

E. code
I. comment
  • "E." Identyfikator błędnego
  • code Kod błędu
  • "I." Identyfikator komentarza
  • comment Komentarz dla użytkownika

Uwagi

  • Patrz uwagi ogólne
  --status  

Składnia

ics_client.exe --dev_logic_analyzer_200_anz IP TCP --status
  • IP Adres IP serwera
  • TCP Numer portu TCP serwera
  • --status Słowo klucz

Poprawna odpowiedź

O. stage counter_pos events_cnt ctrl_word
I. Measurement status:
I. FSM Position: stage : fsm_stage_name
I. Counter Position: counter_pos
I. Events Counter Position: events_cnt
I. Control Word: ctrl_word
  • "O." Identyfikator poprawnego wykonania rozkazu
  • stage Określa etap w którym znajduje się Analalizator Stanów Logicznych. Możliwe stany to:
        <> 0 Przed pomiarem
        <> 1 Pomiar. Przed etapem oczekiwania na Warunek Wyzwolenia
        <> 2 Oczekiwanie na Warunek Wyzwolenia
        <> 3 Dopełnienie bufora po zaistnieniu Warunku Wyzwolenia
        <> 4 Pomiar zakończony
  • counter_pos Bufor urządzenia ICS pracującego jako Analizator Stanów Logicznych ma pojemność 524288 próbek na każdy bit wejścia pomiarowego Analizatora. Parametr ten informuje jaka ilość bufora została już zapełniona danymi wejściowymi. Na zakończenie pomiaru rejestr ten powinien wynosić '0'
  • events_cnt Ilość warunków wyzwolenia, które zostały zarejestrowane przez Analizator
  • ctrl_word Słowo kontrolne. Należy go zapamiętać i użyć przy pobieraniu z Analizatora zarejestrowanych danych
  • "I." Identyfikator komentarza
  • fsm_stage_name Słowna interpretacja parametru stage

Wystąpił błąd

E. code
I. comment
  • "E." Identyfikator błędnego
  • code Kod błędu
  • "I." Identyfikator komentarza
  • comment Komentarz dla użytkownika

Uwagi

  • Patrz uwagi ogólne
  --abort  

Składnia

ics_client.exe --dev_logic_analyzer_200_anz IP TCP --abort
  • IP Adres IP serwera
  • TCP Numer portu TCP serwera
  • --abort Słowo klucz

Poprawna odpowiedź

O. code
I. comment
  • "O." Identyfikator poprawnego wykonania rozkazu
  • code Kod wykonania rozkazu. Powinien być '0'
  • "I." Identyfikator komentarza
  • comment Komentarz dla użytkownika

Wystąpił błąd

E. code
I. comment
  • "E." Identyfikator błędnego
  • code Kod błędu
  • "I." Identyfikator komentarza
  • comment Komentarz dla użytkownika

Uwagi

  • Patrz uwagi ogólne

dev_logic_analyzer_200_dma

    Funkcja odpowiedzialna jest za przekopiowanie zawartości pamięci urządzenia In Circuit Spy do Systemowego Bufora Serwera

    Ogólne informacje dotyczące rozkazu

  • Wywołanie rozkazu wymaga połączenia z serwerem i otwartego kanału komunikacyjnego z urządzeniem

  • Uruchomienie rozkazu wymaga wgrania do urządzenia ICS oprogramowania procesora o nazwie
    la200uc0.ifs
    lub o nazwie poszerzonej o wersję i sumę kontrolną CRC. Po załadowaniu pliku do urządzenia należy "skoczyć" do nowego programu. Wymagane jest również wgrania konfiguracji dla układu FPGA. Plik konfiguracyjny w tym przypadku to
    la200dma.ifh
    lub o nazwie poszerzonej o wersję i sume kontrolną CRC. Oprogramowanie dostępne w dostarczonym pakiecie w katalogu:
    ics32sx\logic_analyzer\la_200\XXX\firmware

  • Nie zaleca się stosowania wersji asynchronicznej rozkazu --rd_a Spowodowane jest to większą podatnością rozkazu na błędy mogące zakłócić transmisję danych

  Rozkazy  
  • --rd_s Synchroniczny odczyt danych. Funkcja blokująca. Rozkaz zwraca kontrolę po zakończeniu transmisji danych
  • --rd_a Asynchroniczny odczyt danych. Zlecone zostaje polecenia kopiowania danych. Status transmisji sprawdza się za pomocą rozkazu dev_transmission_state

Opis rozkazów

  --rd_s, --rd_a  

Składnia

ics_client.exe --dev_logic_analyzer_200_dma IP TCP --rd_x dma_mode sys_buf sys_adr dev_adr size offset
  • IP Adres IP serwera

  • TCP Numer portu TCP serwera

  • --rd_x Słowo klucz. Odpowiednio --rd_s lub --rd_a

  • dma_mode Określa tryb pracy DMA. Obecnie jedyną dozwoloną wartością jest '1'

  • sys_buf Numer bufora systemowego Serwera. Należy ustawić na wartość '0'

  • sys_adr Adres w Systemowym Buforze Serwera pod który rozpocznie się zapis pobranych z urządzenia danych. Należy ustawić na wartość '0'

  • dev_adr Adres miejsca w urządzeniu od którego rozpocznie się pobieranie danych. W przypadku Analizatora Stanów Logicznych parametr ten należy ustawić na wartość '0'

  • size Ilość danych do przekopiowania. W przypadku Analizatora Stanów Logicznych parametr ten należy ustawić na wartość '2097152'. Wartość ta odpowiada rozmiarowi bufora urządzenia ICS

  • offset Przesunięcie w buforze danych. W miejsce to należy wprowadzić wynik wyrażenia opartego o zwrócony w wyniku przeprowadzenia pomiaru parametr ctrl_word. Parametr ten dostępny jest w funkcji dev_logic_analyzer_200_anz po wywołaniu rozkazu --status. Wyrażenie wyliczające wymaganą wartość ma postać:
    offset = ctrl_word * 8

Poprawna odpowiedź

O. code
I. comment
  • "O." Identyfikator poprawnego wykonania rozkazu
  • code Kod wykonania rozkazu. Powinien być '0'
  • "I." Identyfikator komentarza
  • comment Komentarz dla użytkownika

Wystąpił błąd

E. code
I. comment
  • "E." Identyfikator błędnego
  • code Kod błędu
  • "I." Identyfikator komentarza
  • comment Komentarz dla użytkownika

Uwagi

  • Patrz uwagi ogólne

Szukaj