Multimedialne Interfejsy Użytkownika Technologie Wytwarzania Oprogramowania SUM Semestr 2, 2011/2012 19 luty 2012
dr inż. Bartłomiej Prędki Pokój 124 Telefon 61665-2932 Bartlomiej.Predki@cs.put.poznan.pl http://zajecia.predki.com
Trochę historii
Karty dziurkowane
Drukarki liniowe
Terminale znakowe
Interfejs graficzny
Ekrany dotykowe
Interfejs głosowy
Siri
Force feedback
Kamery
Microsoft Kinect Dodatek do XBOX 360 sterowanie konsolą bez potrzeby kontrolera wbudowana kamera 3D od niedawna SDK dla Windows
Kinect
Akcelerometry
Playstation Move
Multi-touch
Przyszłość
Microsoft Surface $12,500
Microsoft Surface 1 - ekran 2 - czytnik podczerwieni (1280x960) 3 - jednostka centralna 4 - projektor
Samsung SUR40 40 wyświelacz LED 1080p do 50 punktów dotyku na raz może stać lub wisieć $8400
Interfejsy sprzętowe i ich programowanie
Intefejsy dostępne w typowym PC LPT RS232 PS/2 PCI/PCI-X IDE (ATA/SATA) USB FireWire VGA/DVI/HDMI/DisplayPort/Thunderbolt
Pozostałe interfejsy Bluetooth IRDA Ethernet PC CARD (PCMCIA) ExpressCard SCSI
LPT Line Printer Terminal Jeden z najstarszych interfejsów Standard IEEE-1284 Trzy wersje: SPP (Standard Parallel Port) EPP (Enhanced Parallel Port) ECP (Enhanced Capability Port)
LPT Widziany jako zbiór komórek pamięci zaczynający się od pewnego adresu (np. 3BCh) Może wykorzystywać przerwania IRQ ECP ma przypisany kanał DMA (Direct Memory Access)
LPT typowe urządzenia Drukarka Skaner Napęd zewnętrzny (ZIP, CD-R, ) Klucze sprzętowe Połączenie ParallelLink Urządzenia specjalizowane
COM Standard RS-232C Widziane jako adres w pamięci Korzystają z przerwań (IRQ3 i IRQ4) Złącza DB25 i DB9 Może działać w trybie asynchronicznym i synchroniczym (rzadko, tylko DB25)
Transmisja asynchroniczna Najmniejszą jednostką przesyłanych danych jest jeden bajt (aczkolwiek może mieć różną długość 5-8 bitów). Przerwy między poszczególnymi bajtami mogą być dowolnej długości.
Transmisja asynchroniczna Umożliwia wykrywanie błędów transmisji Opcjonalna kontrola parzystości Szybkości: 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 b/s Bity stopu: 1, 1.5, 2
Sterowanie przepływem danych Sprzętowe sygnały RTS/CTS Programowe sygnały XON/XOFF Plug and Play Istnieje protokół Plug and Play dla urządzeń COM pozwalający na ich wykrywanie i automatyczne instalowanie sterowników
Typowe urządzenia Modemy, Myszy, Klucze sprzętowe, Null-modemy, Drukarki, Inne urządzenia
Interfejsy bezprzewodowe Na podczerwień: IrDA www.irda.org Radiowe: Bluetooth (2.4 GHz) www.bluetooth.org
IrDA Infrared Data Association Obecnie standard 1.1 Wersje: SIR, HP-SIR od 9.6 kb/s do 115.2 kb/s HDLC, MIR - 0.566 Mb/s, 1.152 Mb/s FIR 4 Mb/s ASK IR od 9.6 kb/s do 57.6 kb/s
Protokół IrCOMM Umożliwia emulację połączeń przewodowych: Trójsygnałowego RS-232C (TXD, RXD, GND) Dziewięciosygnałowego RS-232C Portu równoległego
Inne protokoły IrLAN umożliwia transmisję ramek Ethernet przez podczerwień IrOBEX protokół wymiany obiektów, wykorzystywany np. w telefonach komórkowych, czy PDA
Bluetooth Konsorcjum składające się z firm: 3Com, Agere Systems, Ericsson, IBM, Intel, Microsoft, Motorola, Nokia i Toshiba Wersje 1.0 1.1 1.2 2.0 + EDR 3.0 Specyfikacja v. 1.1 1200 stron
Rodzaje transmisji Synchroniczna Izosynchroniczna (np. streaming dźwięku) Asynchroniczna
Profile Każde urządzenie implementujące bluetooth musi zawierać przynajmniej jeden z profili. Profile są związane z udostępnianą przez urządzenie funkcjonalnością i jego charakterem Przykładowe profile: Port szeregowy (SPP), HID, FTP,
Profile Specyfikacja przewiduje obecnie ponad 40 profili. Każde urządzenie ma swój adres MAC. Urządzenia mogą wymagać autoryzacji połączeń.
Protokoły Specyfikacja bluetooth przewiduje implementacje kilku protokołów: SDP Service Discovery Protocol umożliwia wykrywanie usług oferowanych przez urządzenia RFCOMM emulacja portu szeregowego OBEX wymiana obiektów TCS BIN transmisja binarna BNEP Bluetooth Network Encapsulation inne
Obsługa bluetooth Obsługa sprzętu bluetooth jest często realizowana za pomocą tzw. stosu (stack) W przypadku PC lub PocketPC 2 wersje stosu: Widcomm, Microsoft (od XP SP2)
Magistrale szeregowe Universal Serial Bus USB Implementers Forum składające się z: Agere Systems, HP, Intel, Microsoft, NEC, Philips FireWire (IEEE 1394) Opracowane przez Apple
Wersje: Universal Serial Bus 1.0 (1996 r.) 1.1 (1998 r.) poprawki w stosunku do 1.0 2.0 (2000 r.) nowy szybki tryb transmisji 3.0 (2009 r.) jeszcze szybsze, łącza optyczne Szybkości: FullSpeed 12 Mb/s LowSpeed 1.5 Mb/s HighSpeed 480 Mb/s (tylko USB 2.0) SuperSpeed - 4.8 Gb/s (tylko USB 3.0)
Architektura W systemie wyróżniony jest jeden Host przeważnie komputer. Do hosta można podłączyć do 127 urządzeń peryferyjnych. Magistrala może tworzyć strukturę drzewiastą z wykorzystaniem koncentratorów.
Rodzaje transmisji Izochroniczna bez kontroli błędów, np. streaming, Przerwania do transmisji komunikatów, np. klawiatura, mysz, Dane masowe z kontrolą błędów, np. urządzenia pamięci masowych, Sterująca zarządzanie urządzeniami magistrali.
Rodzaje hostów Uniwersalny kontroler hosta (Universal Host Controler) Otwarty kontroler hosta (Open Host Controler) Ulepszony kontroler hosta (Enhanced Host Controler) USB 2.0
USB Topologia fizyczna Topologia logiczna
Złącza typ A typ B miniusb mikrousb USB 3.0
Porównanie Interfejsy tradycyjne Każde urządzenie wymaga własnego kontrolera Każdy kontroler potrzebuje przydziału zasobów Można podłączyć tylko kilka urządzeń Sterowniki mogą się komunikować niezależnie z każdym kontrolerem Różne interfejsy, złącza, przewody Problemy z Plug n Play Brak mechanizmów zarządzania błędami Brak domyślnego zasilania urządzeń USB Wszystkie urządzenia są podłączone do jednego kontrolera Tylko jeden kontroler potrzebuje przydziału zasobów Można podłączyć do 127 urządzeń Sterowniki urządzeń komunikują się tylko z kontrolerem hosta Zunifikowany interfejs i rodzaj przewodów Działa Plug n Play Wbudowane mechanizmy zapewniające integralność danych Zasilanie urządzeń z magistrali
Typowe zastosowania Urządzenia wejściowe klawiatura, mysz,, Drukarki, Skanery, Urządzenia audio, Syntezatory muzyczne, Aparaty i kamery cyfrowe, Komunikacja, Urządzenia pamięci masowej, Konwertery interfejsów,
FireWire Obecnie 2 wersje: FireWire 400 szybkości transmisji: 100 Mb/s 200 Mb/s 400 Mb/s FireWire 800 dodatkowo: 800 Mb/s 1600 Mb/s 3200 Mb/s
FireWire W odróżnieniu od USB w architekturze FireWire nie ma wydzielonego hosta wszystkie urządzenia są równorzędne. Można podłączyć do 63 urządzeń. Nie trzeba korzystać z koncentratorów można tworzyć łańcuch, topologia może być mieszana.
Typowe zastosowania Łączenie komputerów w sieć, Cyfrowe kamery wideo (DV), Urządzenia pamięci masowej
Złącza 6 pin 4 pin FW 800
Magistrale równoległe Magistrala SCSI (Small Computer System Interface) Występuje w wielu odmianach. Umożliwia współistnienie kilku hostów w sieci.
Przygotowane w oparciu o:
Programowanie I/O
Programowanie obsługi urządzeń we/wy Porty szeregowe COM i LPT są widziane przez system jako pliki, Przy zastosowaniu odpowiednich narzędzi programowania portów można sobie znacząco ułatwić. Komunikacja z urządzeniami USB lub FW odbywa się na poziomie jądra systemu konieczność stosowania sterowników.
IrDA i Bluetooth Dzięki protokołom IrCOMM i RFCOMM można się z takimi urządzeniami komunikować poprzez port szeregowy. Jeżeli chcemy korzystać z innego profilu niż SPP konieczna jest komunikacja poprzez stos bluetooth. Przykładowa bilbioteka do obsługi bluetooth: http://www.franson.com/ bluetools/
Programowanie COM Na poziomie API Windows, Komponent ActiveX MsCOMM, Specjalizowane biblioteki,.net Framework 2.0 (klasa SerialPort)
Przykład - GPS Odczyt informacji z GPS podłączonego przez Bluetooth Visual C# Express 2005
Przykład - GPS Podłączenie GPS a
Przykład - GPS
Przykład - GPS C# - aplikacja typu Windows Inicjalizacja formularza
Przykład - GPS Otwarcie portu Obsługa odczytu
Przykład - GPS Wpisanie tekstu do kontrolki
Przykład - GPS Zamknięcie portu Rezultat końcowy
Przykład Paramex Komunikacja po COM ze specjalizowanym urządzeniem. Protokół transmisji: Urządzenie co zadany okres czasu przesyła 12 bajtów danych, 3 pierwsze bajty to bajty synchronizujące (255), Potem bajt kontrolny, 8 bajtów danych różne kanały danych, Komputer powinien potwierdzić transmisję odsyłając stary bajt kontrolny i nowy bajt kontrolny.
Przykład Paramex Visual Studio 2003, C#. Biblioteka Franson Serial Tools. Urządzenie może być połączone przez fizyczny port, albo konwerter USB. Transmisja jest obsługiwana na zasadzie zdarzeń.
Przykład Paramex Klasa zawierająca dane dotyczące transmisji, dziedziczy po EventArgs Każde pole jest dostępne przez właściwość
Przykład Paramex Konstruktor Kontrola poprawności transmisji
Przykład Paramex Konstruktor c.d. Odczyt danych
Przykład Paramex Klasa obsługująca transmisję
Przykład Paramex Inicjalizacja portu
Przykład Paramex Odczyt danych
Przykład Paramex Odpowiedź komputera
Przykład Paramex Potwierdzenie transmisji Zakończenie transmisji
Przykład Paramex Wykorzystanie klasy
Do zobaczenia 1 kwietnia