Interfejsy szeregowe 2013/2014
Plan wykładów Wykład 1: - Wstęp. Interfejsy szeregowe SCI Wykład 2: - Interfejs SPI, I 2 C Wykład 3: - Interfejs USB Wykład 4: - Interfejsy bezprzewodowe ZigBee i Bluetooth Laboratorium 1-6: - program podczas laboratorium
Wykład 1 Wprowadzenie Interfejsy szeregowe vs interfejsy równoległe Interfejsy SCI
Klasyfikacje mikroprocesorów SIMD ang. Single Instruction Multiple Data SISD ang. Single Instruction Single Data MIMD ang. Multiple Instruction Multiple Data MISD ang. Multiple Instruction Single Data CISC ang. Complex Instruction Set Computers RISC ang. Reduced Instruction Set Computers Architektury: Von Neumanna Harvardzka Harvardzka zmodyfikowana
Klasyfikacje mikroprocesorów Cechy procesorów SISD: - jeden ciąg instrukcji - jeden ciąg danych - prostota konstrukcji - mała wydajność - duża popularność - większość mikrokontrolerów ma architekturę SISD
Klasyfikacje mikroprocesorów Cechy procesorów MISD: - wiele ciągów instrukcji - jeden ciąg danych - przetwarzanie równoległe - wiele jednostek wykonuje operację na jednych danych - rzadko używana
Klasyfikacje mikroprocesorów Cechy procesorów SIMD: - jeden ciąg instrukcji - wiele ciągów danych - wydajne przetwarzanie równoległe - różne dane obrabiane są w identyczny sposób - używane w superkomputerach, procesorach wektorowych oraz DSP
Klasyfikacje mikroprocesorów Cechy procesorów MIMD: - wiele ciągów instrukcji - wiele ciągów danych - wydajne przetwarzanie równoległe - wiele jednostek wykonuje operację asynchronicznie i niezależnie - używana w sieciach obliczeniowych w różnych konfiguracjach - pamięć może być współdzielona lub rozproszona
Klasyfikacje mikroprocesorów Cechy procesorów CISC: - duża liczba rozkazów (instrukcji) - mała optymalizacja - niektóre rozkazy potrzebują dużej liczby cykli procesora do wykonania - występowanie złożonych, specjalistycznych rozkazów - duża liczba trybów adresowania - do pamięci może się odwoływać bezpośrednio duża liczba rozkazów - mniejsza od RISC-ów częstotliwość taktowania procesora - powolne działanie dekodera rozkazów
Klasyfikacje mikroprocesorów Cechy procesorów RISC: - zredukowana liczba rozkazów (instrukcji) nawet poniżej 30! - duża optymalizacja czasowa wykonania rozkazu (1 cykl) - większość rozkazów wykonywana w jednym cyklu procesora - rozkazy proste lub bardzo proste - bardzo mała liczba trybów adresowania - ograniczony dostęp do pamięci - duża częstotliwość taktowania procesora - szybkie działanie dekodera rozkazów - większość operacji wykonywana według schematu: REG C =REG A operacja REG B - duża liczba rejestów pomocniczych - przetwarzanie potokowe (ang. pipelining)
Klasyfikacje mikroprocesorów Architektura von Neumanna:
Klasyfikacje mikroprocesorów Architektura von Neumanna: wspólna pamięć programu i danych procesor podzielony na ALU, pamięć i układy wejścia/wyjścia wspólna magistrala dla danych i programu dane odczytane z pamięci mogą zarówno danymi, jak i rozkazami łatwość programowania (jedna, ciągła mapa pamięci) mała wydajność
Klasyfikacje mikroprocesorów Architektura harvardzka:
Klasyfikacje mikroprocesorów Architektura harvardzka: osobne pamięci programu i danych prostsza architektura procesora uproszczony dekoder adresów/rozkazów osobna magistrala dla danych i programu dane odczytane z pamięci danych mogą być tylko danymi, a z pamięci rozkazów tylko rozkazami niemożliwa samo-modyfikacja programu procesora trudniejsze programowanie (dwie mapy pamięci, różne polecenia dostępu do różnych pamięci) większa wydajność dzięki uproszczeniu architektury i podwojeniu magistral używane np. W DSP i odczycie pamięci cache
Klasyfikacje mikroprocesorów Architektura harvardzka zmodyfikowana: modyfikacja polega na pozostawieniu oddzielnych pamięci ale wykorzystaniu wspólnej magistrali dzięki temu możliwa jest samo-modyfikacja kodu
Microprocessor - operation
Microprocessor - basics Microprocessor: is a programmable device accepts digital input data processes the data according to instructions stored in memory provides results as output operates on symbols represented in binary numeral system
Microprocessor - basics Main elements: Arithmethic Logic Unit Status Register Stack Pointer Program Counter Instruction Decoder Registers / Scratch Memory
Microprocessor - basics
Microprocessor - ALU ALU Arithmetic Logic Unit is the heart of microprocessor Width of A,B and R defines if microprocessor is 8-, 16-, 32- or 64 bits!!!
Microprocessor - ALU Functionality of ALU depends on the paticular realisation Usually it offers: Addition Subtraction Comparison Logical operations Multiplication Division
Microprocessor Status register Status register contains various flags and control bits Flags in the register are modified by different assembly code instructions
Microprocessor Stack Pointer The Stack is mainly used: for storing temporary data for storing local variables for storing return addresses after interrupts and subroutine calls The Stack Pointer Register always points to the top of the Stack the Stack is implemented as growing from higher memory locations to lower memory locations
Microprocessor Program Counter Program Counter (PC) - a special register holding the address of the instruction currently being executed Program counter is automatically advanced to point to the next instruction in the case of a jump, subroutine call, etc., a new value will simply be loaded into the program counter in order to cause a jump
Microprocessor Instruction decoder Instruction decoder fetches instructions from a proper memory In the next cycle the instructions are decoded and then executed For faster execution pipelining is used
Microprocessor Registers Each CPU consists of a certain number of universal registers They are usually used as temporary storage of data In some CPUs instead of registers a memory is used Access to the registers/momey is much faster than to external memory
Microprocessor program flow
Microprocessor program flow The program control logic and programaddress generation logic work together to provide proper program flow Normally, the flow of a program is sequential: the CPU executes instructions at consecutive program-memory addresses Discontinuities are caused by branches, function calls or interrupts
Microprocessor program flow Program execution starts from the address pointed by a special RESET pointer Instructions are in a machine code i.e. stream of 8-, 16- or 32b long values For simplicity assembly code is used:
Microprocessor memory map
8 vs 16 vs 32 bity Uwagi: więcej bitów = łatwiejsza praca z dużą ilością danych więcej bitów = mniejsze problemy z dokładnością obliczeń więcej bitów szybsza praca prostsze procesory jest łatwiej przyspieszać! procesory 32-bit są zazwyczaj szybsze bo taka jest potrzeba mniejsze procesory są często dużo sprawniejsze i prostsze w oprogramowaniu od większych braci
Numbers in microcontrollers CPUs natively support only integer numbers signed or unsigned CPU accumulator width defines size of supported numbers: 8b -> [0;0xff] = [0;255] 16b -> [0;0xffff] = [0;65535] 32b -> [0;0xffffffff] = [0;4294967296]
Numbers in microcontrollers Signed integers are usually written in U2 code: i.e. -1 = 0xff -128 = 0x80
Numbers in microcontrollers In CPUs there is problem with non-integer numbers Some CPUs support fractional numbers Some have additional coprocessor (Floating Point Unit FPU) for real numbers calculation
Numbers in microcontrollers Comparison of Integer and Fractional numbers:
Numbers in microcontrollers Floating point arithmetic is defined in IEEE754-2008 Standard defines: arithmetic formats: finite numbers (including signed zeros and subnormal numbers), infinities, and special "not a number" values (NaNs) interchange formats: encodings that may be used to exchange floating-point data in an efficient and compact form rounding algorithms: methods to be used for rounding numbers during arithmetic and conversions operations: arithmetic and other operations on arithmetic formats exception handling: indications of exceptional conditions (such as division by zero, overflow, etc.)
Numbers in microcontrollers Single precision: S EEEEEEEE FFFFFFFFFFFFFFFFFFFFFFF 0 1 8 9 31 X = ( 1) S 1. F 2 E 127 S sign E exponent bits F - fraction
Numbers in microcontrollers Double precision: S EEEEEEEEEEE FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFF 0 1 11 12 63 X = ( 1) S 1. F 2 E 1023 S sign E exponent bits F - fraction
Endiannes Endiannes is the same as byte-order Big-endian = MSB goes first Little-endian = LSB goes first
Interfejsy po co? Interface: a. equipment or programs designed to communicate information from one system of computing devices or programs to another. b. any arrangement for such communication.
Typy interfejsów: - Sprzętowe - Programowe - Szeregowe - Równoległe: - 4-bitowe - 8-bitowe - 16-bitowe - 32-bitowe - inne Interfejsy po co?
Interfejsy szeregowe vs równoległe Cechy interfejsów szeregowych: - prostota: - od średniej (RS232C) - do bardzo dużej (OneWire) - wydajność: - b. mała do małej (RS232, I2C) - średnia (ZigBee, SPI) - duża do b. dużej (USB, Ethernet) - trudność implementacji: - mała (OneWire, SCI) - średnia (USB, Ethernet) - duża (Bluetooth)
Interfejsy szeregowe vs równoległe Cechy interfejsów równoległych: - prostota: - średnia - wydajność: - duża (teoretycznie największa), - tym większa im szersza magistrala - limitowana przez błędy propagacji i przesłuchy - trudność implementacji: - mała przy niskich prędkościach - średnia przy wysokich - trudności z uzyskaniem dużego zasięgu - problemy z odbiciami
Błędy propagacji Czas propagacji sygnału na płytce PCB: Microstrip = 1 c + 2 ε c r Stripline = ε c r
Błędy propagacji Przykład: Dla laminatu FR4 przenikalność względna ε r =4 przy technologii wykonania Microstrip (lub podobnej): τ p = 1.5/c = 5 ns/m = 0.5 ns/10 cm Dla laminatu FR4 przenikalność względna ε r =4 przy technologii wykonania Stripline (lub podobnej): τ p = 2/c = 6,7 ns/m = 0.67 ns/10 cm Okres sygnału o częstotliwości 1 GHz to 1ns.
Interfejsy równoległe
Interfejsy równoległe Zastosowanie: - szeroko wykorzystywane do wzajemnych połączeń na płytach PCB (krótki zasięg) procesorów, pamięci, wyświetlaczy,układów programowalnych itp., itd. - wykorzystywane do połączeń między układami mikroprocesorowymi (średni zasięg), np. Parallel ATA - bardzo rzadko wykorzystywane do połączeń między systemami mikroprocesorowymi (duży zasięg), np. LPT
Parallel ATA Standard używany od prawie 20 lat do połączeń między płytami głównymi, a dyskami twardymi czy też napędami optycznymi. Początkowo używano przewodu 40-pinowego, później 80- pinowego z dodatkowymi pinami masy (zmniejszenie przesłuchów). Powstało wiele standardów (np. PCMCIA, S.M.A.R.T.)
Parallel ATA
Parallel ATA Zalety PATA: - długi czas rozwoju sprawdzona technologia Wady PATA: - wydajność poniżej 100MBps - niewygodny kabel połączeniowy - problemy Master/Slave - wykorzystanie napięć 5V obecnie zdecydowanie niepożądanych - CRC tylko danych, nie poleceń
Interfejs SCI
RS232C Cechy: Jeden z najbardziej popularnych interfejsów szeregowych Szeregowy, dwuprzewodowy Służy do komunikacji wewnętrznej i zewnętrznej Oryginalne wersje (np. RS-232C) wymagaję wielu linii sterujących (DB9, DB25) Dwa stany logiczne używane, ale nie TTL! Asynchroniczny transfer danych. Zegar nie przekazywany! Pełna transmisji duplex Transmisja Point - to - point Wydajność do kilkuset kb / s
RS232C
SCI serial communication interface Uproszczona wersja RS232C: wystarczające są tylko dwa piny transmisji danych RxD, TxD oraz masa GND - nie jest wymagana używanie ujemnych napięć - można użyć standardowych układów konwersji poziomów do standardu RS232C (np. MAX232) - prędkości osiągalne do kilku Mb/s (w ramach jednej płyty PCB, w wykorzystaniem warstwy RS422/485)
MAX232
MAX232 Układ bardzo popularny, Układ wytwarzany przez wielu producentów, Układ wytwarzany w bardzo wielu wersjach, np.: Dla napięć LVTTL33: MAX3232 Z zabezpieczeniem ESD: MAX3230E Dla obsługi pełnego portu RS232C: MAX3237E O dużej prędkości działania: MAX13235E Układ dostępny w wielu wersjach obudów od µmax i SOT-6 do PLCC44, czy DIP16
SCI USART (ATMega)
SCI ustawienia prędkości
SCI TMS320f2810 1/2
SCI TMS320f2810 2/2
SCI TMS320f2810 Cechy: - prędkość programowalna na 64k poziomów - edytowalna długość słowa: - od 1 do 8 bitów danych - parzystość, nieparzystość lub brak bitu - jeden lub dwa bity danych - buforowanie nadawanie i odczyt - obsługa przez przerwania lub sprawdzanie bitu - 16-to poziomowe FIFO odczytu i nadawania - automatyczna detekcja prędkości transmisji - możliwość komunikacji międzyprocesorowej
SCI Multiprocessor Communication Cechy: - komunikacja międzyprocesorowa umożliwia efektywną wymianę danych między procesorami podłączonymi do linii szeregowej, - możliwe do osiągnięcia prędkości sięgają kilkunastu Mb/s - pierwszy bajt jest adresem; - procesory o właściwym adresie odbierają następujące bajty danych - pozostałe procesory przechodzą w stan uśpienia/oczekiwania
SCI Multiprocessor Communication
RS232 Hardware flow control: It is possible to control the serial data flow between 2 devices by using the CTS input and the RTS output
USART in STM32F4 Hardware flow control: Request To Send - RTS flow control nrts is asserted (tied low) as long as the USART receiver is ready to receive a new data
USART in STM32F4 Hardware flow control: Clear To Send - CTS flow control the transmitter checks the ncts input before transmitting the next frame
Interfejs SPI
SPI serial peripheral interface Cechy: wydajny interfejs szeregowy do połączeń z układami peryferyjnymi, - architektura typu master-slave - połączenie z wykorzystaniem co najmniej czterech linii (MISO, MOSI, SCK, GND) - zazwyczaj nie jest wymagana konwersja poziomów sygnałów - transmisja synchroniczna względem linii zegara SCK - prędkości osiągalne do kilkudzisięciu Mb/s
SPI - podłączenie MISO master input slave output MOSI master output slave input SCLK serial clock SS slave select
SPI przebieg komunikacji Zarówno w obiekcie Master, jak i Slave występują rejestry przesuwne (zazwyczaj 8-bit) typu SIPO (serial-in, parallelout) i PISO (parallel-in, serial-out) W takt zegara następuje wymiana danych Po 8 (16) cyklach zegara wymiana danych jest zakończona
SPI konfiguracja Konfiguracji wymaga: Częstotliwość zegara (tylko master) Polaryzacja zegara Faza zegara CPOL=0 wartością bazową zegara jest 0 CPHA=0 dane czytane na narastającym zboczu CPHA=1 dane czytane na opadającym zboczu CPOL=1 wartością bazową zegara jest 1 CPHA=0 dane czytane na opadającym zboczu CPHA=1 dane czytane na narastającym zboczu
SPI konfiguracja
SPI podłączenia wielu urządzeń Typowa magistrala Daisy chain (łańcuch)
SPI AVR
SPI DSP 1/2
SPI DSP 2/2
SPI Pamięć EEPROM M95256 1/2
SPI Pamięć EEPROM M95256 2/2
SPI ADC MAX1402 1/3
SPI ADC MAX1402 2/3
SPI ADC MAX1402 3/3
Dziękuję za uwagę