uk£ady cyfrowe - Paweł Tomaszewicz
Transkrypt
uk£ady cyfrowe - Paweł Tomaszewicz
UKŁADY CYFROWE PROJEKT Autorzy: Prowadzący: Paulina Przybyszewska dr inż. Paweł Tomaszewicz Konrad Dudała Instytut Telekomunikacji Grupa: Zakład Podstaw Telekomunikacji C1T2 (4T2) pokój 481 Email: tel. 660 7894 [email protected] e-mail: [email protected] [email protected] Temat: Komunikacja bezprzewodowa między dwiema płytkami testowymi firmy ALTERA – ODBIORNIK Cel projektu: Celem pracy było uzyskanie połączenia bezprzewodowego między dwiema płytkami UP2 firmy ALTERA, za pomocą portów podczerwieni IrDA. Dane do wysłania przez nadajnik pobierane są przez port USB, następnie wysyłane podczerwienią do odbiornika, gdzie odpowiednio zinterpretowane i przekształcane zostają wysłane przez USB do drugiego komputera. Elementy użyte przy realizacji projektu: 1. Płytka UP2 firmy Altera, oparta na układzie FLEX10K (EPF10K70RC240-4). 2. Dołączana do portu FLEX_EXPAN_B płytka z modułem USB oparta na układzie FTDI245BM firmy FTDI. 3. Port podczerwieni IrDA dołączany do portu FLEX_EXPAN_B znajdującego się na płytce. Projekt zrealizowany został w języku AHDL w środowisku Max+Plus II BASELINE firmy Altera 1 IrDA – co to jest: IrDA (ang. Infrared Data Association) - grupa skupiająca kilkudziesięciu producentów sprzętu komputerowego. Grupa ta opracowała firmowy system bezprzewodowej transmisji danych cyfrowych z wykorzystaniem podczerwieni. Jego elementy przeznaczone są przede wszystkim do tworzenia sieci tymczasowych, w których znajdują się komputery przenośne. Podstawowe usługi, wymienione w opisie systemu obejmują: • przesył plików między komputerami, • drukowanie. • dostęp do zasobów sieci przewodowej, • transmisja danych i mowy między komputerem a telefonem komórkowym, • sterowanie urządzeniami telekomunikacyjnymi. Port podczerwieni - port optyczny w komputerze i nie tylko umożliwiający komunikację z innymi komputerami lub urządzeniami przy użyciu podczerwieni, czyli bez kabli. Porty podczerwieni są stosowane w niektórych komputerach przenośnych, drukarkach i kamerach. Opis ogólny standardu IrDA: IrDA jest protokołem transmisji cyfrowych w podczerwieni, zawdzięczającym swoje powstanie procesom normalizacyjnym. Dzisiaj Forum IrDA specyfikuje trzy standardy komunikacji za pośrednictwem fal podczerwonych: IrDA-Data, IrDA-Control oraz nowy AIr (Advanced Infrared). Na razie IrDA zapewnia transmisję typu punkt-punkt na odległość do 1 m w zakresie falowym 850-900 nm. Osiągane przepływności dochodzą do 16 Mb/s, a kąt transmisji nie przekracza 30°. Po obniżeniu szybkości transmisji do 75 kb/s można komunikować się na odległość ponad 5 m. W przyszłości protokół AIr zapewni przesyłanie danych w konfiguracji wielopunktwielopunkt. Teraz oferuje przepływność 4 Mb/s na odległości 4 m lub 250 kb/s po podwojeniu tego dystansu. Wykorzystany przez nas port zapewnia prędkość tylko 115 kb/s. Do stowarzyszenia IrDA należą: Acer, Ascom, Agilent Technologies, Apple Computer, Compaq, Ericsson, Hewlett-Packard, Intel, Linux-IrDA, Matsushita, Microsoft, Motorola, National Semiconductor, Nokia, Philips, Seiko Instruments, Sony, Toshiba, ZiLOG i wiele innych. Rys. Podzespoły wykorzystywane przez interfejs IrDA 2 Ogólny schemat zasady działania projektu: Jak widać na rysunku, tekst wpisany w komputerze nadajnika, musi zostać przesłany za pomocą podczerwieni (IrDA) do komputera odbiornika. Opis działania odbiornika: Odbiornik składa się z kilu bloków funkcyjnych, z których w zasadzie jeden pełni zasadniczą rolę, a reszta to bloki pomocnicze (takie jak widoczne dwa wyświetlacze siedmiosegmentowe). Blok „odbiornik” wyposażony został w 5 wejść oraz 5 wyjść, z czego tylko 3 są używane (pozostałe 2 wyjścia „test” i „businfo” są czasem pomocne podczas symulacji) Wejścia: • clk – jest to wejście zegara systemowego (ok. 25MHz) • ena – wejście uruchamiające odbiornik i elementy w nim zawarte (domyślnie cały czas włączone) 3 • • • clr wejście odpowiadające za czyszczenie zawartości poszczególnych rejestrów I - najważniejsze wejście bloku – tędy wchodzą dane pobrane z portu wejściowego płytki clk_slow – wejście drugiego zegara (wolniejszego niż clk) Wyjścia: • bus[7..0] – główne wyjście (szyna danych – 1 bajt) – tędy wychodzą zmodyfikowane dane z wejścia, które następnie, podłączone do widocznych wyjść USB, wysyłane są do komputera • dready – wyjście odpowiedzialne za „poinformowanie” o wysłaniu przez data[7..0] paczki danych • start_odbior – wyjście uruchamiające zegar clk_slow Zasada działania odbiornika: Odbiornik dostając dane z portu wejściowego, otrzymuje je w postaci ciągu bitów. Aby móc przesłać je przez port USB do komputera, musi je odpowiednio przekształcić. Dane wysyłane przez USB muszą być w postaci 8 równoległych bitów, czyli wymagane jest zastosowanie szyny 8 bitowej. W tym celu zastosowany został rejestr szeregowo – równoległy (sipo: serial in – parallel out). Poszczególne bity z wejścia I, gromadzone są w rejestrze przesuwnym sipo, a po zebraniu 8 bitów wypuszczane na zewnątrz przez wyjście data[7..0]. Jako zabezpieczenie przed błędami i brakiem synchronizacji między nadajnikiem i odbiornikiem wprowadzone zostały 2 zabezpieczenia: 1. Do przesyłanych danych wychodzących z nadajnika dodawany jest dodatkowy 1 bit (o wartości 1) na początku oraz na końcu ciągu bitów niosących potrzebną informację, np. jeżeli nadajnik chce przesłać ciąg 00011000, przesłany zostaje ciąg 1000110001. W związku z tym odbiornik skonstruowany został w taki sposób, aby na wyjście wypuszczać tylko bajty, posiadające 2 bity zabezpieczające. Zanim sygnał wypuszczony zostanie na szynę data[7..0] sprawdzany jest warunek o istnieniu dodatkowych bitów. 2. Jako, że nie można uzyskać odpowiedniej synchronizacji między nadajnikiem i odbiornikiem, odbiornik skonstruowany jest tak aby rejestrować sygnały zawsze jeżeli na wejście dostanie bit w stanie wysokim. Uruchamiany zostaje wtedy wolniejszy zegar sterujący zliczaniem bitów o częstotliwości odpowiedniej do częstotliwości wysyłanych przez nadajnik bitów. Spowodowane jest to przez ograniczenia szybkości nadawania i odbierania wynikające z konstrukcji portów IrDA. Ponadto szybszy systemowy zegar clk dodatkowo pomaga w rozpoznawaniu przychodzących bitów – istnieje większe prawdopodobieństwo, że żaden bit przychodzący nie zostanie pominięty. Wyniki przykładowej symulacji wraz z opisem umieszczone są niżej: 4 Całość symulacji odebrania i przekształcenia ciągu poprawnego (1000110001): Przybliżenie fragmentu: Jak widać na pokazanej symulacji, gdy rejestr sipo zebrał 10 bitów z wejścia „i”, które w dodatku okazały się poprawne (są 2 dodatkowe bity), a licznik doliczył do odpowiedniej wartości, na wyjście bus[7..0] wypuszczona została tylko część odebranego ciągu niosąca informację, co zaznaczone zostało dodatkowo przez wyjście dready. 5 Całość symulacji odebrania i przekształcenia ciągu niepoprawnego (1000110000): Przybliżenie fragmentu: Jak widać, jako, że przesłany przez nadajnik ciąg bitów nie był w odpowiedniej formie – nie zawierał prawidłowego dodatkowego bitu końcowego – na wyjście bus[7..0] nie został przekazany żaden sygnał. Opis części programowej (software) użytej przy projekcie: Do testowania projektu używaliśmy darmowego programu: DLP Design Test Application Jest to program służący do testowania układu USB doczepionego do naszej płytki UP2. Wysyłane są z komputera przez USB dowolnie ustawione przez użytkownika bity. Strona odbiornika może również za pomocą powyższego programu zobaczyć w odpowiednim oknie czy wysłane przez nadajnik bity zostały w odbiorniku odebrane i poprawnie wysłane przez USB do komputera. 6 Stopień ukończenia projektu: Niestety z przyczyn technicznych projekt nie został w pełni ukończony. Okazało się jednak, że odbiorczy port podczerwieni IrDA, po odebraniu sygnału (to, że odbiera pokazane zostało prowadzącemu na oscyloskopie), modyfikuje go znacznie, uniemożliwiając poprawny odbiór w bloku odbiornika. Robiąc projekt, początkowo łączyliśmy płytki nadawczą oraz odbiorczą za pomocą kabelka, uzyskując odbiór sygnału w zasadzie bezproblemowy i prawidłowy. Dużą przeszkodą w tworzeniu projektu był również ograniczony dostęp do płytek laboratoryjnych (do testowania potrzebne były 2 – nadawcza i odbiorcza), wypożyczonych przez innych studentów. Materiały pomocnicze i inne pomoce związane z projektem: • • • Łuba T., Zbierzchowski B.: „Komputerowe projektowanie układów cyfrowych.” WKŁ, Warszawa 2000. Instrukcja obsługi płytki uniwersyteckiej UP2 (rozkład portów) firmy Altera Wykłady do przedmiotu Układy Cyfrowe dostępne na stronie internetowej Zakładu Podstaw Telekomunikacji: http://wwwzpt.tele.pw.edu.pl/ Inne: Schemat podłączenia modułu USB do płytki testowej: Wszystkie użyte w dokumentacji rysunki można obejrzeć w lepszej jakości: images.rar Kody źródłowe dostępne są tu: zrodla.rar 7