SPRZĘŻENIE RÓŻNYCH STANDARDÓW INTERFEJSÓW Z WYKORZYSTANIEM UKŁADÓW FPGA



Podobne dokumenty
ANALIZA RELACJI CZASOWYCH W UKŁADZIE REJESTRACJI DANYCH Z SYSTEMU ELEKTROENERGETYCZNEGO

Synchronizacja operacji w przyrządzie do oceny i rejestracji parametrów jakości energii elektrycznej

Układy reprogramowalne i SoC Implementacja w układach FPGA

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Bezpieczeństwo informacji oparte o kryptografię kwantową

ZASTOSOWANIA UKŁADÓW FPGA W ALGORYTMACH WYLICZENIOWYCH APPLICATIONS OF FPGAS IN ENUMERATION ALGORITHMS

Technika Mikroprocesorowa

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

Badanie właściwości wysokorozdzielczych przetworników analogowo-cyfrowych w systemie programowalnym FPGA. Autor: Daniel Słowik

1. Synteza układów opisanych w języku VHDL Xilinx ISE Design Suite 10.1 VHDL 2. Obsługa przetwornika CA Project Add source...

Aby w pełni przetestować układ o trzech wejściach IN_0, IN_1 i IN_2 chcemy wygenerować wszystkie możliwe kombinacje sygnałów wejściowych.

UNIWERSALNY ANALIZATOR-ESTYMATOR JAKOŚCI ENERGII ELEKTRYCZNEJ CZĘŚĆ II. PROJEKT I REALIZACJA TECHNICZNA

Projektowanie z użyciem softprocesora picoblaze w układach programowalnych firmy Xilinx

WERYFIKACJA ALGORYTMÓW POMIAROWYCH W PRZYRZĄDZIE DO OCENY JAKOŚCI ENERGII ELEKTRYCZNEJ

PROTOTYPOWANIE UKŁADÓW ELEKTRONICZNYCH Programowalne układy logiczne FPGA Maciej Rosół, Katedra Automatyki AGH,

1. Cel ćwiczenia. 2. Podłączenia urządzeń zewnętrznych w sterowniku VersaMax Micro

Generator przebiegów pomiarowych Ex-GPP2

Programowalne Układy Cyfrowe Laboratorium

Elektrotechnika II Stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

Wstęp Architektura... 13

Metody optymalizacji soft-procesorów NIOS

Systemy Czasu Rzeczywistego FPGA

Systemy na Chipie. Robert Czerwiński

CYFROWY ANALIZATOR SIECI PRZEMYSŁOWYCH JAKO NARZĘDZIE DO DIAGNOSTYKI MAGISTRALI CAN

Spis treści. Wykaz ważniejszych skrótów Wprowadzenie Rdzeń Cortex-M Rodzina mikrokontrolerów XMC

Sprawdzian test egzaminacyjny 2 GRUPA I

Układy FPGA w przykładach, część 2

Lista zadań nr 1. Zagadnienia stosowanie sieci Petriego (ang. Petri net) jako narzędzia do modelowania algorytmów sterowania procesami

Technika cyfrowa. Laboratorium nr 7. Liczniki synchroniczne. Mirosław Łazoryszczak. Temat:

USB interface in 8-bit microcontrollers PIC18F family manufactured by Microchip.

Sprawozdanie z projektu MARM. Część druga Specyfikacja końcowa. Prowadzący: dr. Mariusz Suchenek. Autor: Dawid Kołcz. Data: r.

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki. ĆWICZENIE Nr 4 (3h) Przerzutniki, zatrzaski i rejestry w VHDL

Podstawy Projektowania Przyrządów Wirtualnych. Wykład 9. Wprowadzenie do standardu magistrali VMEbus. mgr inż. Paweł Kogut

Programowanie Układów Logicznych kod kursu: ETD6203 W dr inż. Daniel Kopiec. Pamięć w układach programowalnych

To jeszcze prostsze, MMcc1100!

projekt przetwornika inteligentnego do pomiaru wysokości i prędkości pionowej BSP podczas fazy lądowania;

SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701. SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701.

Projektowanie z użyciem bloków funkcjonalnych w układach programowalnych firmy Xilinx

Realizacja bezpiecznego programowalnego sterownika logicznego z wykorzystaniem języków HDL

Systemy Czasu Rzeczywistego FPGA

Elektronika i techniki mikroprocesorowe

XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej. XXXII Olimpiada Wiedzy Elektrycznej i Elektronicznej

PROGRAMOWALNE STEROWNIKI LOGICZNE

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

LEKCJA TEMAT: Zasada działania komputera.

Laboratorium Asemblerów, WZEW, AGH WFiIS Tester NMOS ów

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

ZL10PLD. Moduł dippld z układem XC3S200

Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu.

Ćw. 12. Akwizycja sygnałów w komputerowych systemach pomiarowych ( NI DAQPad-6015 )

1. ISE WebPack i VHDL Xilinx ISE Design Suite 10.1 VHDL Tworzenie projektu Project Navigator Xilinx ISE Design Suite 10.1 File

Lista zadań nr 5. Ścieżka projektowa Realizacja każdego z zadań odbywać się będzie zgodnie z poniższą ścieżką projektową (rys.

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

Parametryzacja przetworników analogowocyfrowych

PRZEWODNIK PO PRZEDMIOCIE

Systemy uruchomieniowe

FPGA, CPLD, SPLD. Synteza systemów reprogramowalnych 1/27. dr inż. Mariusz Kapruziak pok. 107, tel

Programowanie Układów Logicznych kod kursu: ETD6203. Szczegóły realizacji projektu indywidualnego W dr inż.

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH Wydziałowy Zakład Metrologii Mikro- i Nanostruktur SEMESTR LETNI 2016

Sposoby projektowania systemów w cyfrowych

ICD Wprowadzenie. Wprowadzenie. Czym jest In-Circuit Debugger? 2. O poradniku 3. Gdzie szukać dodatkowych informacji? 4

LABORATORIUM UKŁADÓW PROGRAMOWALNYCH

Krótkie wprowadzenie do ModelSim i Quartus2

Bezpieczeństwo informacji oparte o kryptografię kwantową

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08

PROJEKT I OPTYMALIZACJA STRUKTURY LOGICZNEJ DYDAKTYCZNEGO SYSTEMU MIKROPROCESOROWEGO DLA LABORATORIUM PROJEKTOWANIA ZINTEGROWANEGO

Wykład 2. Przegląd mikrokontrolerów 8-bit: -AVR -PIC

Wyjścia analogowe w sterownikach, regulatorach

NX700 PLC

Język opisu sprzętu VHDL

1. Cel ćwiczenia. Celem ćwiczenia jest zestawienie połączenia pomiędzy dwoma sterownikami PLC za pomocą protokołu Modbus RTU.

LABORATORIUM ELEKTRONIKA Projektowanie koderów, transkoderów i dekoderów w języku VHDL

AKADEMIA MORSKA KATEDRA NAWIGACJI TECHNICZEJ

Opracował: Jan Front

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

Laboratorium Komputerowe Systemy Pomiarowe

Wbudowane układy komunikacyjne cz. 1 Wykład 10

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

WYKŁAD 5. Zestaw DSP60EX. Zestaw DSP60EX

CompactPCI. PCI Industrial Computers Manufacturers Group (PICMG)

DTR PICIO v Przeznaczenie. 2. Gabaryty. 3. Układ złącz

Programowanie Układów Logicznych kod kursu: ETD6203. Komunikacja z układami cyfrowymi W dr inż. Daniel Kopiec

Architektura komputerów

Sterowniki Programowalne (SP)

Politechnika Gdańska. Gdańsk, 2016

Implementacja Gigabitowego Ethernetu na układach FPGA dla eksperymentów fizycznych

ZL6PLD zestaw uruchomieniowy dla układów FPGA z rodziny Spartan 3 firmy Xilinx

Projekt prostego procesora

Komputerowe systemy pomiarowe. Dr Zbigniew Kozioł - wykład Mgr Mariusz Woźny - laboratorium

Protokoły sieciowe model ISO-OSI Opracował: Andrzej Nowak

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Wykorzystanie układów FPGA w implementacji systemów bezpieczeństwa sieciowego typu Firewall

Przetwarzanie analogowo-cyfrowe sygnałów

METODY ZINTEGROWANEGO PROJEKTOWANIA SPRZĘTU I OPROGRAMOWANIA Z WYKORZYSTANIEM NOWOCZESNYCH UKŁADÓW PROGRAMOWALNYCH

Organizacja laboratorium. Zadania do wykonania w czasie laboratorium z części PSPICE

Systemy Czasu Rzeczywistego FPGA

Komunikacja w mikrokontrolerach Laboratorium

Testowanie systemów informatycznych Kod przedmiotu

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

PL B1. AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE, Kraków, PL BUP 21/12

Transkrypt:

Romuald Maśnicki, Damian Hallmann Akademia Morska w Gdyni SPRZĘŻENIE RÓŻNYCH STANDARDÓW INTERFEJSÓW Z WYKORZYSTANIEM UKŁADÓW FPGA Układy FPGA, ze względu na ich otwartą konfigurację oraz sposób ich implementacji, mają szeroki zakres zastosowań. W artykule opisano uwarunkowania występujące przy projektowaniu aplikacji z wykorzystaniem układów FPGA, umożliwiających wymianę danych pomiędzy portami interfejsów o różnych standardach. Przedstawiono etapy realizacji projektu: od analizy wybranych interfejsów, poprzez dobór odpowiedniego układu FPGA, projekt aplikacji w języku VHDL, realizację symulacji, po konfigurację układu rzeczywistego oraz testowanie jego działania. W artykule przedstawiono przykładowe rozwiązanie przyrządu do pomiaru i rejestracji parametrów jakości energii elektrycznej, ilustrujące etapy projektowania układu łączącego porty interfejsów o różnych standardach, zarówno w zakresie parametrów sygnałów interfejsowych, jak i formatów przesyłanych danych. Przedstawiono sposoby realizacji aplikacji konfiguracyjnej FPGA. Omówiono metodykę badań prowadzonych na etapie symulacji funkcji wykonywanych w FPGA dla weryfikacji konfiguracji układu. Załączono wyniki badań prowadzonych podczas testowania poprawności działania sprzężonych interfejsów. Na przykładzie wybranego układu FPGA sformułowano wnioski określające zakres jego wykorzystania w kontekście możliwych do realizacji standardów sygnałowych, ograniczeń częstotliwości sygnałów wejściowych/wyjściowych oraz wskazano przykładowe standardy interfejsów, z którymi skonfigurowany układ FPGA może wymieniać dane przy określonych parametrach komunikacji. WSTĘP Dwa urządzenia mogą współdziałać ze sobą, tj. prowadzić wymianę informacji, jedynie wtedy gdy wyposażone są w porty zgodnych (kompatybilnych) interfejsów. Pod pojęciem interfejs rozumie się powszechnie środki techniczne umożliwiające połączenie ze sobą urządzeń, które bez tych środków nie mogą ze sobą współpracować. W Katedrze Elektroenergetyki Okrętowej Akademii Morskiej w Gdyni zaprojektowano i zbudowano estymator/analizator urządzenie przeznaczone do wyznaczania określonych wskaźników jakości energii elektrycznej, m.in. oceny parametrów napięć trójfazowych oraz analizy prądów, mocy w systemach tróji czteroprzewodowych, w sieci lądowej bądź dla różnych konfiguracji pracy równoległej generatorów w okrętowym systemie elektroenergetycznym. Na rysunku 1 przedstawiono wstępną koncepcję [5] układów wewnętrznych analizatora/estymatora.

R. Maśnicki, D. Hallmann, Sprzężenie różnych standardów interfejsów z wykorzystaniem układów FPGA 17 Rys. 1. Wstępna konfiguracja bloków funkcjonalnych analizatora/estymatora jakości energii elektrycznej [5] Fig. 1. The initial configuration of the functional blocks of the Analyzer/Estimator of electrical power quality [5] W urządzeniu, w torach pomiarowych napięć sieciowych (L1, L2, L3), zastosowano układy separacji galwanicznej AD215 oraz programowalne filtry antyaliasingowe LTC1564. W torach pomiaru prądów (I1...I6) wbudowano jedynie filtry antyaliasingowe, gdyż separacja galwaniczna urządzenia od potencjałów sieciowych w tych torach realizowana jest za pośrednictwem cewek Rogowskiego, dołączanych do wejść prądowych urządzenia. W projekcie urządzenia do akwizycji danych pomiarowych przewidziano zastosowanie przetworników ADC (ang. Analogto-Digital Converter) AD7656 firmy Analog Devices. Do wyznaczania wartości wskaźników jakości energii wytypowano procesor sygnałowy DSP (ang. Digital Signal Processor) ADSP TS201 TigerSHARC firmy Analog Devices [2]. Moduł GPP procesora ogólnego przeznaczenia (ang. General Purpose Precessor), pełniący funkcje interfejsu użytkownika, zdecydowano się zrealizować z wykorzystaniem modułu procesora LPC3250 firmy NXP. Analiza elementów projektu wykazała, że układy elektroniczne, które do realizacji zadanych funkcji pomiarowych muszą wymieniać między sobą informację cyfrową, wyposażone są w różne standardy interfejsów komunikacyjnych. Nie ma

18 ZESZYTY NAUKOWE AKADEMII MORSKIEJ W GDYNI, nr 85, grudzień 2014 możliwości bezpośredniego połączenia między tymi układami. Przetworniki ADC wykorzystują linie niesymetryczne w komunikacji z układami zewnętrznymi, zarówno do wyprowadzenia 16-bitowych słów wyników przetwarzania A/C (interfejs kompatybilny z SPI (ang. Serial Peripheral Interface)), jak i wymiany informacji sterujących (linie GPIO ang. General Purpose Input/Output), zaś linie portów komunikacyjnych procesora DSP są liniami symetrycznymi, opartymi na standardzie interfejsu LVDS (ang. Low Voltage Differential Signaling) [7], z wykorzystaniem protokołu Link Port [10]. Dodatkowe utrudnienia wynikają z różnych formatów ramek komunikacyjnych oraz różnych szybkości transmisji danych przez porty tych interfejsów. Szukając rozwiązania problemu, brano pod uwagę zastosowanie układu opartego na mikrokontrolerze, który mógłby w czasie rzeczywistym konwertować dane pomiędzy interfejsami. Żaden pojedynczy mikrokontroler nie udostępniał takich możliwości. W wyniku analiz uwagę zwrócono w kierunku układów FPGA (ang. Field Programmable Gate Array). Z wykorzystaniem takich układów można wykonywać kilka różnych specyficznych operacji, bez nich wymagałoby to jednoczesnego użycia kilku mikrokontrolerów o rozmaitych właściwościach. W efekcie modyfikacji projektu do struktury urządzenia włączono układ FPGA. Na rysunku 2 przedstawiono konfigurację bloków funkcjonalnych urządzenia po wprowadzeniu układu FPGA. Rys. 2. Zmodyfikowana konfiguracja analizatora/estymatora jakości energii elektrycznej [1] Fig. 2. The modified configuration of the Analyzer/Estimator of electrical power quality [1]

R. Maśnicki, D. Hallmann, Sprzężenie różnych standardów interfejsów z wykorzystaniem układów FPGA 19 Rysunek 3 przedstawia uproszczoną konfigurację podstawowych bloków funkcjonalnych urządzenia. Sygnały napięciowe u i oraz prądowe i i dostarczane są do wejść układów kondycjonowania UK (tory napięciowe i prądowe). Wyjścia tych układów połączone są z wejściami przetworników analogowo-cyfrowych ADC. Dane cyfrowe z wyjść ADC wysyłane są do procesora DSP za pośrednictwem układu FPGA Spartan 3 firmy Xilinx. Również z wykorzystaniem tego układu FPGA bloki przetworzonych danych, zawierające wartości wyznaczonych parametrów, przesyłane są z układu DSP do modułu GPP, nadzorującego funkcjonowanie interfejsu użytkownika urządzenia. u 1 u 2 u 3 i 1 i 6... UK UK ADC AD7656 ADC AD7656 DSM STSL Module FPGA Spartan 3 Xilinx DSP TigerSHARC GPP Rys. 3. Połączenia między podstawowymi blokami funkcjonalnymi urządzenia [1] Fig. 3. The modified device configuration [1] Wobec szerokiego asortymentu dostępnych układów FPGA wybór typu układu FPGA jest konsekwencją zastosowania w projektowanym urządzeniu modułu DSM STSL, wyposażonego w procesor DSP TigerSHARC oraz układ Spartan 3 firmy Xilinx. Układy FPGA są układami cyfrowymi o dużej skali integracji, większej niż np. układy CPLD (ang. Complex Programmable Logic Devices) [6]. Są one coraz powszechniej wykorzystywane do tworzenia układów cyfrowych o wymaganych funkcjach, realizowanych w czasie rzeczywistym. Pobierają one o wiele mniej energii niż standardowe układy cyfrowe czy procesory. Zmiana funkcji układu nie wymaga zmian sprzętowych, a jedynie programowej modyfikacji konfiguracji. Pojemności układów FPGA sięgają 8 milionów bramek, przy ponad 500 konfigurowalnych wejściach/wyjściach i czasie propagacji jednej komórki układu mniejszym niż 1 ns.

20 ZESZYTY NAUKOWE AKADEMII MORSKIEJ W GDYNI, nr 85, grudzień 2014 1. ANALIZA WŁAŚCIWOŚCI INTERFEJSÓW I DOBÓR UKŁADU FPGA Rozwiązanie problemu sprzężenia różnych interfejsów należy rozpocząć od rozpoznania kilku podstawowych zagadnień: charakterystyki sprzęganych interfejsów, prędkości komunikacji poprzez interfejsy, sposób synchronizacji danych, buforowania danych, kontroli przepływu i poprawności przesyłania danych. Pierwsze zagadnienie odnosi się do specyfikacji elektrycznej linii interfejsowych, definicji poziomów logicznych w powiązaniu z sygnałami interfejsowymi, konfiguracji linii interfejsowych i ich relacji z potencjałem odniesienia (linie niesymetryczne lub różnicowe), napięć zasilających układy interfejsu (tab. 1) i sposobu obsługi układów wejścia/wyjścia interfejsów (rys. 4 i 5). W obydwu interfejsach transmisja może się rozpocząć po pojawieniu się sygnału gotowości urządzenia do komunikacji. Transmisja poszczególnych bitów danych kontrolowana jest sygnałem zegarowym, przy czym w interfejsie SPI, w jednym cyklu zegarowym przesyłany jest jeden bit danych [3], zaś w interfejsie LVDS dwa bity danych [7, 10]. Tabela 1. Porównanie wybranych parametrów interfejsów SPI oraz LVDS w układach ADC i DSP [2, 7] Table 1. The comparison of selected parameters of SPI and LVDS interfaces in ADC and DSP devices [2,7] Poziomy logiczne Parametry SPI (ADC) LVDS (DSP) V OH [V] min. 2,5 max. 1,85 V OL [V] max. 0,2 min. 0,92 Konfiguracja linii interfejsowych linie niesymetryczne linie różnicowe Napięcia zasilające układy interfejsu [V] 3,3 2,5 Rys. 4. Przebiegi w liniach interfejsu SPI [3] Fig. 4. The waveforms in SPI lines [3]

R. Maśnicki, D. Hallmann, Sprzężenie różnych standardów interfejsów z wykorzystaniem układów FPGA 21 Data 1 0 V O + V OO = 350 mv V O V CM = 1,25 V Rys. 5. Sygnały w linii interfejsu LVDS [7] Fig. 5. The signals in LVDS interface lines [7] W przypadku łączenia interfejsów o różnych prędkościach należy rozpoznać, czy dane w interfejsach muszą być wysyłane/odbierane w sposób kontrolowalny (na żądanie), czy w sposób ciągły, oraz określić źródło sygnałów zegarowych, synchronizujących wymianę danych. Prędkość przesyłania danych w urządzeniu, z wykorzystaniem protokołu Link Port, wynosi 250 Mb/s przy transmisji z DSP do FPGA oraz 200 Mb/s w kierunku odwrotnym. Porty SPI w ADC pozwalają na transmisję danych z prędkością nieprzekraczającą 16,7 Mb/s. Przy takich właściwościach interfejsów konieczne jest buforowanie danych pomiędzy ich portami, zrealizowane w pamięci BlockRAM układu FPGA. Konieczność buforowania danych wynika również z tego, że w ramach protokołu Link Port komunikacja odbywa się w ramkach 128-bitowych, zaś przetwornik ADC za pomocą protokółu SPI udostępnia dane w ramkach 32-bitowych. Kontrola poprawności danych w sprzęganych interfejsach polega na wykorzystaniu mechanizmów zawartych w ich protokołach komunikacyjnych. Protokół Link Port pracuje w trybie full-duplex z kontrolą przepływu typu handshake. W przypadku interfejsu SPI, wykorzystywanego do wyprowadzania danych z przetwornika ADC, kontrola przepływu realizowana jest za pomocą zegara taktującego transmisję bitów danych, zrealizowanego w strukturze FPGA. Procedury odbioru/wysyłania danych przez porty interfejsów są nadzorowane przez odpowiedni sterownik, zawarty w algorytmie konfiguracyjnym FPGA, który zapewnia właściwą sekwencję sygnałów na odnośnych liniach interfejsowych. 2. APLIKACJA W JĘZYKU VHDL, SYMULACJA I KONFIGURACJA UKŁADU FPGA Projekt układu sprzęgającego interfejsy LVDS (DSP) i SPI (ADC) zrealizowano w środowisku Xilinx ISE WebPack. W środowisku tym przeprowadzono symulacje, wykorzystując wbudowane narzędzia, opisane w [4, 11]. Zaprojektowaną w języku VHDL aplikację konfiguracyjną zapisano w pamięci Flash układu

22 ZESZYTY NAUKOWE AKADEMII MORSKIEJ W GDYNI, nr 85, grudzień 2014 FPGA. Do badania zaprogramowanych funkcji układu sprzęgającego interfejsy napisano aplikację symulacyjną, której zadaniem było odwzorowanie funkcji sprzęganych interfejsów. Aplikacja symulacyjna używa aplikacji głównej jako modułu w postaci podprogramu. Przykład takiej implementacji, wiążącej aplikację główną (testowaną) i definiującej na potrzeby symulacji sygnały wykorzystywane w aplikacji głównej, przedstawiono poniżej. COMPONENT spi_linkport PORT( tx_clk : OUT std_logic; tx_dane : OUT std_logic; tx_ack : IN std_logic; sck : IN std_logic; mosi : IN std_logic; clk0 : IN std_logic; clk90 : IN std_logic; clk180 : IN std_logic; clk270 : IN std_logic; lsck_reset : in STD_LOGIC); END COMPONENT; Na listingu poniżej przedstawiono sposób implementacji badanego modułu w aplikacji symulacyjnej. Komponent spi_linkport jest implementowany jako część aplikacji symulacyjnej. Za pomocą deklaracji PORT MAP sygnały komponentu spi_linkport przypisane są liniom sygnałowym w aplikacji symulacyjnej. uut: spi_linkport PORT MAP ( tx_clk => tx_clk, tx_dane => tx_dane, tx_ack => tx_ack, sck => sck, mosi => mosi, clk0 => clk0, clk90 => clk90, clk180 => clk180, clk270 => clk270, lsck_reset => lsck_reset);

R. Maśnicki, D. Hallmann, Sprzężenie różnych standardów interfejsów z wykorzystaniem układów FPGA 23 W aplikacji symulacyjnej badano różnego rodzaju wydarzenia, jakie mogą wystąpić w trakcie działania układu sprzęgającego. Przykładowe fragmenty programu symulacyjnego, dotyczące badania portu SPI, przedstawiono na listingu poniżej. mosi_proc: process begin wait for 540 ns; mosi <= 0 ; wait for 80 ns; mosi <= 1 ; wait for 80 ns;... wait for 2 us; end process; sck_proc: process begin wait for 500 ns; sck <= 0 ; wait for 40 ns; sck <= 1 ; wait for 40 ns;... wait for 2 us; end process; Przedstawiony fragment symulacji odnosi się do obsługi wejścia mosi oraz zegara taktującego sck. Odpowiednie przebiegi (sygnały) generowane są na podstawie szeregu komend w języku VHDL. Pomiędzy liniami process i end process komendy wykonywane są w sposób sekwencyjny, lecz poza nimi wszystkie procesy działają w sposób równoległy i niezależny. W trakcie symulacji uwzględniono również najbardziej ekstremalne przypadki, związane z relacjami czasowymi pomiędzy sygnałami w badanym układzie sprzęgającym, w których występowała możliwość hazardów w układzie lub stanów krytycznych w liniach sprzęganych interfejsów. Przeprowadzone symulacje umożliwiły eliminację większości błędów konfiguracji układu sprzęgającego. Po weryfikacji programu konfiguracyjnego FPGA w zakresie funkcjonalnym przeprowadzono rozmieszczenie prymitywów w strukturze FPGA, składających się na bloki funkcjonalne układu sprzęgającego. Jest to istotny etap, szczególnie w przypadku sprzęgania interfejsów o dużych szybkościach, ze względu na różnego rodzaju uzależnienia czasowe występujące wewnątrz struktury FPGA. Sposób konfiguracji układów FPGA przedstawiono w [4, 11]. Standardy napięciowe wykorzystywane na liniach wejść/wyjść układu FPGA zostały zadeklarowane w pliku z rozszerzeniem UCF, należącym do projektu. Każde wejście/wyjście przypisane jest do konkretnego sygnału zadeklarowanego w aplikacji VHDL, w powiązaniu z określonym standardem napięciowym.

24 ZESZYTY NAUKOWE AKADEMII MORSKIEJ W GDYNI, nr 85, grudzień 2014 3. TESTOWANIE UKŁADU RZECZYWISTEGO Testowanie działania układu jest kluczowym etapem projektu. Dopiero na tym etapie można stwierdzić, czy napisana aplikacja konfiguracyjna FPGA jest prawidłowa, czy połączenia pomiędzy blokami FPGA i rozmieszczenie wykorzystywanych bloków w strukturze FPGA są poprawne. Podczas symulacji nie można było przewidzieć wszystkich sytuacji, jakie mogą wystąpić w układzie rzeczywistym. Również poprawność konfiguracji wszystkich układów wewnętrznych FPGA można zweryfikować jedynie eksperymentalnie, po uruchomieniu zaprogramowanego układu. Badania rzeczywistego układu sprzęgającego porty interfejsów LVDS i SPI przeprowadzono z wykorzystaniem modułu ZL10PLD, zawierającego układ FPGA typu XC3S200. W badaniach wykorzystano również moduł ADSP-TS201 EZ-KIT LITE REV.2.1, zawierający mikroprocesor TigerSHARC TS201 [4] z portami LVDS oraz moduł MSP-TS430PM64, z mikrokontrolerem MSP430F149 [8], wyposażonym w port SPI. W środowisku VisualDSP++ napisano oprogramowanie procesora DSP, realizujące odbiór i nadawanie przez port interfejsu Link Port ramek 128-bitowych. W oprogramowaniu tym zainstalowano liczniki, mające na celu zliczanie poprawnych i błędnych ramek odbieranych przez mikroprocesor DSP. W mikrokontrolerze MSP430F149 zainstalowano analogiczne oprogramowanie, zaprojektowane w środowisku IAR, gdzie również rejestrowano liczbę błędnych i poprawnych ramek wysyłanych z DSP. Na podstawie takich testów przeprowadzono weryfikację algorytmu konfiguracyjnego FPGA. PODSUMOWANIE Układ FPGA można wykorzystać do połączenia ze sobą dowolnych interfejsów cyfrowych. Przykłady połączenia różnych interfejsów znajdują się w [9]. Przedstawiono tam połączenia między takimi interfejsami, jak port równoległy, interfejsy szeregowe SPI, I 2 C, One-wire i USB. W prezentowanych rozwiązaniach stosowano również układy FPGA. Przy sprzęganiu portów różnych interfejsów należy liczyć się z pewnymi ograniczeniami. Podstawowym problemem mogą być różne częstotliwości sygnałów wejściowych/wyjściowych, różniące się standardy sygnałów w liniach interfejsowych i różne protokoły, wykorzystywane w komunikacji. Przy obecnie dostępnej technologii wykorzystanie układów FPGA do sprzęgania różnych interfejsów jest jednym z najbardziej optymalnych rozwiązań.

R. Maśnicki, D. Hallmann, Sprzężenie różnych standardów interfejsów z wykorzystaniem układów FPGA 25 LITERATURA 1. AD7656/AD7657/AD7658, Data sheet, Rev. D, Analog Devices, 2010. 2. Analog Devices, ADSP-TS201 TigerSHARC Processor, Hardware Reference, Revision 1.1, December 2004. 3. Analog Devices, Interfacing to High Speed ADCs via SPI, Application Note AN-877, Rev. A 12/05. 4. Digilent, Xilinx ISE Simulator VHDL Test Bench Tutorial, February 27, 2010. 5. Instytut Energetyki, Jednostka Badawczo-Rozwojowa Oddział Gdańsk, Opracowanie i wykonanie części sprzętowej prototypu analizatora/estymatora jakości energii elektrycznej oraz wykonanie oprogramowania procesora ogólnego przeznaczenia, Etap 1, Koncepcja prototypu analizatora/ estymatora, Gdańsk 2008. 6. Majewski J., Zbysiński P. Układy FPGA w przykładach, Elektronika Praktyczna, 2006, nr 10, 11, 12; 2007, nr 1. 7. National Semiconductor, LVDS Owner s Manual, 2008. 8. Texas Instruments, MSP430x1xxx Family User s Guide, 2004. 9. Thanee S., Somkuarnpanit S., Saetang K., FPGA-Based Multi Protocol Data Acquisition System with High Speed USB Interface, IMECS 2010, Hong Kong 2010. 10. Xilinx, Analog Devices TigerSHARC Link Port, Application Note: Spartan II and Spartan 3 Families, Virtex and Virtex-II Series, XAPP634 (v1.2) October 26, 2004. 11. Xilinx, ISE Simulator (ISim), In-depth Tutorial, April 27, 2009. THE COUPLING OF DIFFERENT STANDARD INTERFACES USING FPGA Summary The FPGAs have great possibilities of their application thanks to the open structure and convenient way of their configuration. In paper, the conditions occurring in the design of FPGA applications that allows exchange of data between the different standards interfaces were described. The paper presents the stages of project implementation, starting with analysis of the activities of specific interfaces by selecting the FPGA, application and simulation design in VHDL, configuration and testing of actual operation of the system. The paper shows an example illustrating the project stages of the connection between the interfaces with different signal standards and different data frame formats. It also presents how to implement the FPGA configuration application as well as the methodology of research carried out on the stage of user functions simulation, the FPGA configuration verification and the results of research conducted during the testing operation of coupled interfaces. Taking into account the selected FPGA the proposals providing range of ts use in the context of possible signal standards implementation were formulated, input/output signal frequency restrictions were indicated as well as the examples of interface standards with which the configured FPGA can exchange the data with specific parameters of communication.