Kierunek Elektronika, III rok Systemy Cyfrowe Interfejsy szeregowe cz. 2
Program wykładu Zewnętrzne interfejsy danych RS-232 / 422 / 485 PS/2 CAN, USB, FireWire Wewnętrzne interfejsy danych 1-Wire I2C / TWI SPI JTAG Wewnętrzne interfejsy audio I2S STbus AC 97 Interfejsy multi-mega/giga-bitowe
Literatura Strony WWW standardów, np.: http://www.computer-engineering.org (PS/2) Dokumenty producentów, np.: http://www.maxim-ic.com/ (1-Wire) http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf (I2C) Analog Devices: AN-877. Interfacing to High Speed ADCs via SPI
Zewnętrzne interfejsy danych Port PS/2 przeznaczony do podłączenia myszy i klawiatury, 4 sygnały: CLK, DATA, masa, zasilanie złącze: 6-stykowe Mini-DIN wprowadzony w komputerach IBM Personal System 2 (1987r.) oznaczenia barwne standard PC 97: fioletowy dla klawiatury zielony dla myszy PS/2 zastąpił: złącze DIN XT/AT(dla klawiatury) port RS232 / złącze DB9 dla myszy PS/2 aktualnie zastępowany przez USB (adaptery PS/2 USB, rzadziej w drugą stronę) nadal stosowany w komputerach stacjonarnych, ekstenderach konsoli (KVM: Keyboard-Video-Mouse) itp.
Interfejs PS/2 Parametry fizyczne dane szeregowe @ 10,0-16,7kHz bity startu (0) i stopu (1) oraz bit nieparzystości i bit potwierdzenia (tylko host-to-device) styki: 1 DATA 2 nc, w niektórych laptopach DATA dla myszy (rozdzielacz) 3 GND 4 VCC: +5V (+4,5...+5,5V) @ 275 ma 5 CLK 6 nc, w niektórych laptopach CLK dla myszy (rozdzielacz) porty myszy i klawiatury obsługiwane przez ten sam sterownik port nie zapewnia hot plugging sygnały CLK i DATA typu OC sygnał CLK zawsze generowany przez device dane czytane są przez host na opadającym zboczu CLK, a przez device na narastającym
Interfejs PS/2 Parametry logiczne DATA CLK stan 1 1 bierny 1 0 wstrzymanie transmisji przez host (min. 100µs) 0 1 żądanie nadawania przez host transmisja device-to-host transmisja host-to-device
Interfejs PS/2 Klawiatura Scan Code Sets (1, 2, 3) Make / Brake Codes make break przycisk 1C F0, 1C A E0, 74 E0, F0, 74 E0,12, E0,7C E0, F0, 7C, E0, F0,12 Print Screen Typematic Repeat komendy do klawiatury (kilkanaście: Reset, Resend, Set Key Type, Set All Keys, Disable, Enable, Set Typematic, Set Scan Code Set, Read ID, Echo, Set/Reset LEDs) procedura inicjalizacji klawiatury Keyboard: AA Self-test passed Host: ED Set/Reset Status Indicators Keyboard: FA Acknowledge Host: 00 Turn off all LEDs Keyboard: FA Acknowledge Host: F2 Read ID Keyboard: FA Acknowledge Keyboard: AB First byte of ID...
Interfejs PS/2 Mysz 3-bajtowe pakiety (wzgl. 4-bajtowe dla IntelliMouse ze scrollem) Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Bajt 1 Y Ovf X Ovf Y Sgn X Sgn 1 M Btn R Btn L Btn Bajt 2 Bajt 3 tryby: Reset, Stream, Remote, Wrap komendy do myszy (kilkanaście: Reset, Resend, Set Defaults, Disable/Enable Data Reporting, Set SampleRate/Resolution/Scaling, Set/Reset Stream/Remote/Wrap Mode, Get DeviceID, Status Request) procedura inicjalizacji myszy Host: FF Reset command Mouse: FA Acknowledge Mouse: AA Self-test passed Mouse: 00 Mouse ID Host: F3 Set Sample Rate Mouse: FA Acknowledge Host: 0A decimal 10 Mouse: FA Acknowledge... X movement Y movement Bajt 4 0 0 5 Btn 4 Btn Z movement
Interfejs PS/2 Zastosowanie
Wewnętrzne interfejsy danych 1-Wire Cechy: 1 styk (+ masa): Half-Duplex unikalny numer ID w każdym elemencie zasilanie elementu z sygnału danych (pasożytnicze) magistrala OC (możliwe podłączenie wielu elementów do magistrali) wzmocniona ochrona ESD Typowe aplikacje: utrzymanie akcesoriów (baterie, cartridge drukarek itp.) identyfikacja produkcji (cyfrowy numer seryjny) kontrola dostępu / autoryzacja IP cores
Interfejs 1-Wire Złącza ibutton ( piguła ): 64-bitowy unikalny numer ID (ROM) + ew. pomiar i logowanie temperatury i/lub wilgotności albo + pamięć EPROM / EEPROM / NV SRAM (do 64 kb) albo + zegar RTC 1-Wire (TO-92, TSOC-6, SOIC-8, TDFN-14, FlipChip): 64-bitowy unikalny numer ID (ROM) pamięć EPROM / EEPROM / NV SRAM (do 64 kb) termometr / termostat zegar RTC monitor baterii (pomiar napięcia, prądu i temperatury) 4-krotny ADC interfejsy (I2C / UART 1-Wire)
Interfejs 1-Wire Podstawy
Interfejs 1-Wire Sygnalizacja Time Slots kodowanie 0 i 1 w szczelinach czasowych (Time Slots): binarna 1: krótszy impuls binarne 0: dłuższy impuls 2 prędkości: standardowa T = 60 µs przyśpieszona T = 8 µs
Interfejs 1-Wire Sygnalizacja Reset / Presence Read / Write
Interfejs 1-Wire Cykl komunikacji transakcja 3-fazowa: reset / inicjalizacja wybór układu (ROM-level command) funkcja układu (device-level command)
Interfejs 1-Wire Komunikacja: ROM-level ROM-level commands: Read ROM: read 64-bit ROM ID of single device on bus Match ROM: identify device on bus with known ROM ID Search ROM: find devices on the 1-Wire bus Skip ROM: skip device selection for single device on bus Resume: restart communication with selected device Overdrive-Skip ROM: skip device selection and put device in overdrive
Interfejs 1-Wire Komunikacja: device-level Device-level commands (DS2431 1Kb EEPROM): Write Scratchpad: host writes 8 bytes to scratchpad Read Scratchpad: host reads contents of scratchpad Copy Scratchpad: scratchpad is copied to memory location specified by host Read Memory: host reads memory contents from specified address location
Interfejs 1-Wire Zasilanie pasożytnicze Bus level = HIGH Bus level = LOW
Interfejsy wewnętrzne I2C / TWI: magistrala 2-przewodowa I2C (IIC, Inter-Integrated Circuit) Philips TWI (Two Wire Interface) Atmel Standard Mode (1980...) 100 kbps 7-bitowy adres Fast Mode (1992...) v1.0 400 kbps (Fast Mode Plus 2006... 1 Mbps) 10-bitowy adres High Speed Mode (1998...) v2.0 3,4 Mbps zwiększenie zakresu napięć do 2,3...5,5 V zastosowania: komunikacja między układami RTV (geneza) pamięci NV RAM zegary RTC wolne ADC / DAC (także interfejs konfiguracyjny) wyświetlacze LCD zdalne porty I/O
Interfejs I2C Warstwa fizyczna sygnały (SCL i SDA) typu OC sygnał SCL generowany przez master nadawanie w kolejności od bitu najstarszego dzięki detekcji kolizji możliwa praca w trybie multi-master (im niższy adres tym wyższy priorytet) max. pojemność magistrali: 400 pf podczas transmisji danych: linia SDA musi być stabilna gdy SCL = HIGH linia SDA może zmieniać stan gdy SCL = LOW START: zmiana SDA z 1 na 0 gdy SCL = HIGH STOP: zmiana SDA z 0 na 1 gdy SCL = HIGH
Interfejs I2C Warstwa fizyczna transfery 8-bitowe liczba bajtów nieograniczona każdy bajt zakończony przez odbiornik bitem potwierdzenia ACK (SDA = LOW) wstrzymanie przez slave transmisji z mastera przez wymuszenie SCL = LOW
Interfejs I2C Warstwa fizyczna synchronizacja zegarów masterów arbitraż masterów
Interfejs I2C Warstwa łącza danych 7-bitowy adres bit kierunku transmisji (R/W)
Interfejs I2C Warstwa łącza danych zapis danych przez mastera odczyt danych przez mastera wielokrotna transmisja bez bitów STOPu
Interfejs I2C Warstwa łącza danych master-transmitter adresuje slave-receiver z 10-bitowym adresem master-receiver adresuje slave-transmitter z 10-bitowym adresem master adresuje slave z 10-bitowym adresem: zapis i odczyt
Interfejsy wewnętrzne Interfejs SPI (Serial Peripheral Interface) SPI (Motorola) / Microwire (NatSemi) zastosowania: ADC/DAC (port sterujący i/lub danych) układy Clock Distribution (port sterujący) układy RTC karty Flash (np. SD) pamięci nieulotne e-poty sensory µkontrolery! 4 sygnały: SCLK: Serial Clock (output from master) MOSI: Master Output, Slave Input (output from master) MISO: Master Input, Slave Output (output from slave) SS: Slave Select (active low, output from master) inne spotykane oznaczenia sygnałów: SCLK: SCK, CLK MOSI: SDI, DI, SI (Serial Data In; Data In, Serial In) MISO: SDO, DO, SO (Serial Data Out; Data Out, Serial Out) SS: nss, CS, ncs, CSN, CSn, CSB, STE (Chip Select, Chip Select Bar, SlaveTransmit Enable)
Interfejs SPI Master / Slave synchroniczny (DC ~50MHz) full-duplex master / slave(s) różna spotykana długość rejestrów przesuwnych (8, 12, 16, 24, 32 ) zawsze zachodzi transmisja full-duplex (ew. przetransmitowane dane nie są wykorzystywane)
Interfejs SPI Clock Polarity / Phase CPOL - Clock Polarity CPHA - Clock Phase CPOL = 0 CPHA = 0 - data captured on clock - data propagated on clock CPHA = 1 - data captured on clock - data propagated on clock CPOL = 1 CPHA = 0 - data captured on clock - data propagated on clock CPHA = 1 - data captured on clock - data propagated on clock
Interfejs SPI Schematy połączeń independent slave (typical) faster more lines (multiple SS) 3-state MISO daisy-chain slave (some) slower fewer lines (single SS) 2-state MISO poza pełnym (4-przewodowym): 3-przewodowy (SDIO dwukierunkowa linia danych) 2-przewodowy (SDIO, SS na stałe tylko niektóre układy)
Interfejs SPI Zalety i wady Zalety: full-duplex większa przepustowość niż I²C elastyczny protokół i liczba bitów prosty interfejs mniejszy niż dla I²C pobór mocy (brak pull-upów, brak wewnętrznego oscylatora w slave'ach) slave'y nie potrzebują ustawiania indywidualnego adresu najwyżej 1 indywidualny sygnał dla każdego slave'a (reszta sygnałów wspólna) łatwa izolacja galwaniczna (sygnały są jednokierunkowe) Wady: wymaga więcej sygnałów niż I²C brak adresacji układów w protokole danych (wymagane oddzielne sygnały adresujące) brak sprzętowego sterowania transmisją (hardware flow control) brak sprzętowego potwierdzenia od slave'a tylko 1 master brak protokołu kontroli błędów transmisji wrażliwy na zakłócenia (zwłaszcza sygnał zegarowy)
Interfejs SPI Narzędzia uruchomieniowe PICkit SA PICkit Serial Analyzer: I2C - Master I2C - Slave SPI - Master USART Asynchronous USART Synchronous LIN MICROWIRE gotowe GUI Visual Basic support DLLs & sample GUIs pełna dokumentacja niska cena! (~150zł) firmware download demo target board
Interfejs SPI PICkit SA przykład zastosowania
Interfejsy szeregowe Analizator Quickly debug common serial buses with automated trigger, decode and search: I2C SPI USB CAN LIN Ethernet FlexRay RS-232/422/485/UART I2S/LJ/RJ/TDM MIL-STD-1553
Ciąg dalszy nastąpi