Współpraca procesora ColdFire z urządzeniami peryferyjnymi 1
Współpraca procesora z urządzeniami peryferyjnymi Interfejsy dostępne w procesorach rodziny ColdFire: Interfejs równoległy, Interfejsy szeregowe: Interfejs zgodny ze standardem EIA 232, Interfejs SPI, Interfejs I2C, Interfejs CAN, Interfejs USB, Magistrala PCI. 2
Współpraca procesora z urządzeniami peryferyjnymi Interfejsy dostępne w procesorach rodziny ColdFire: Interfejs równoległy, Interfejsy szeregowe: Interfejs zgodny ze standardem EIA 232, Interfejs SPI, Interfejs I2C, Interfejs CAN, Interfejs USB, Magistrala PCI. 3
Serial Peripheral Interface Cechy interfejsu SPI: Szeregowa transmisja synchroniczna, Transfer full duplex, master-slave lub master-multi-slave, Duża szybkość transmisji (>12 Mbit/s), Zastosowanie: układy peryferyjne (ADC, DAC, RTC, EEPROM, termometry, itp), sterowanie pomocnicze (matryca CCD z szybkim interfejsem równoległym). 4
Serial Peripheral Interface Master Output Slave Input Master Input Slave Output CS Master Slave 5
Protokół interfejsu SPI Konfiguracja sygnału zegarowego: Polaryzacja zegara: Polaryzacja ujemna CPOL = 0 (stan niski, 8 impulsów zegara), Polaryzacja dodatnia CPOL = 1 (stan wysoki, 8 ujemnych impulsów zegara). Faza zegara: Zerowa faza zegara (próbkowanie na pierwszym zboczu zegara), Opóźniona faza zegara (próbkowanie na drugim zboczu zegara). 6
Termometr z interfasem SPI TMP 121: Obudowa SOT 23-6, FClk mak. = 15 MHz Interfejs: SPI-Compatible Interface Rozdzielczość: 12-Bit + Sign, 0.0625 C Dokładność: ±1.5 C od 25 C do +85 C Pobór prądu w stanie uśpienia: 50μA (mak.) Zasilanie: 2.7V to 5.5V 3 mm 7
Ramka SPI termometru TMP121 8
Queued SPI (2) Cechy modułu QSPI: Kolejka FIFO umożliwiająca obsługę do 16 transferów (bez udziału procesora), Transfery danych od 8 do 16 bitów, Cztery programowalne wyjścia aktywujące urządzenia dołączone do SPI (obsługa do 15 urządzeń), Szybkość transmisji od 129,4 kbps do 16,67 Mbps dla 66 MHz, Programowalne opóźnienia pomiędzy transferami, Programowalna polaryzacja i faza zegara, Wsparcie do ciągłej pracy z minimalnym udziałem procesora (przetwornika ADC, DAC) 9
Queued SPI (2) TxD FIFO 8x16 B RxD FIFO 8x16 B Command FIFO 3x8x16 B 10
Magistrala I2C Magistrala I2C: Dwuprzewodowy interfejs synchroniczny (SDA linia danych, SCL linia zegara), Transmisja dwukierunkowa, typu master-slave (multi-master), ramki 8-bitowe, Szybkość transmisji: 100 kbps (standard mode), 400 kbps (fast mode), 3,4 Mbps (high-speed mode), Urządzenia posiadają niepowtarzalne adresy (7-bitów lub 10-bitów), Synchronizacja przy pomocy sygnału zegarowego umożliwia pracę urządzeń komunikujących się z różnymi szybkościami, Liczba urządzeń dołączonych do magistrali ograniczona jest pojemnością magistrali (400 pf), Mechanizmy arbitrażu umożliwiające uniknięcie kolizji i utraty danych. 11
Zastosowanie interfejsu I2C W sprzedaży dostępnych jest wiele bardzo tanich układów scalonych sterowanych poprzez I²C: * PCF8563/8583 - zegar, kalendarz, alarm, timer, dodatkowo może służyć jako RAM * PCF8574 - pseudo-dwukierunkowy 8-bitowy ekspander * PCF8576, PCF8577 - sterowniki wyświetlaczy LCD * PCF8582 - pamięć EEPROM 256 bajtów (1, 2, 4 kb,... MB) * PCF8591-8-bitowy, 4-kanałowy przetwornik analogowo-cyfrowy i cyfrowoanalogowy 12
Magistrala I2C Urządzenie nadrzędne (Master) inicjuje transmisję, generuje sygnał zegarowy Urządzenie podrzędne (Slave) analizuje wysłany przez urządzenie adres i transmituje lub odbiera dane. 13
Rozpoczęcie oraz zakończenie transmisji Rozpoczęcie transmisji generacja sygnału START (opadające zbocze na szynie SDA, zmiana stanu z 1 na 0 logiczne, podczas ważnego sygnału SCL = 1 ). Sygnał generuje Master. Zakończenie transmisji generacja sygnału STOP (narastające zbocze na szynie SDA, zmiana stanu z 0 na 1 logiczną,podczas ważnego sygnału SCL = 1 ). Sygnał generuje Master. 14
Protokół I2C A) Transmisje rozpoczyna Master generując sygnał START. B) Następnie transmituje 8 bitów danych (7 bitów adresowych, bit R/W). C) Po transmisji 8 bitów Slave przejmuje magistralę i wymusza odpowiedni poziom na linii SDA (9 takt zegara). Odpowiada w ten sposób bitem potwierdzenia ACK (brak potwierdzenia, ACK = 1 ). E) Po przesłaniu adresu następuje faza odczytu lub zapisu danej do obsługiwanego urządzenia (8 bitów danych). F) Po przesłaniu danych urządzenie nadrzędne kończy transmisję generując brak potwierdzenia (ACK = 1 ) oraz bit stopu. 15
Zapis lub odczyt 7-bit 7-bit 16
Magistrala I2C Moduł sterujący interfejsem I2C procesorów z rodziny ColdFire: Zgodny ze standardem w wersji 2.1, Umożliwia dołączenie urządzeń zasilanych napięciem 3,3 V, Praca w trybie multimater, Możliwość użycia 50 różnych częstotliwości zegara (fclk/28 - fclk/2048), Transfery poszczególnych bajtów wyzwalane przerwaniami, Arbitration-lost interrupt with automatic mode switching from master to slave Przerwanie zgłaszane, gdy zostanie wykryty adres urządzenia w trybie Slave, Automatyczne Wykrywanie stanu zajętością magistrali. 17
Schemat blokowy modułu I2C 18
Rejestr statusowy I2SR 19
Magistrala CAN (Control Area Network) Charakterystyka magistrali CAN: Szeregową magistralą komunikacyjną typu multi-master (obecny standard 2.0A oraz 2.0B), Długość identyfikatora: 11-bitowy identyfikator (2.0A ) i 29-bitowy identyfikator (2.0B), Transmisja oparta na komunikatach rozgłoszeniowych (broadcast), Transmisja różnicowa, Szybkość transmisji do 1 Mbit/s na dystansie do 40 m (250 kbit/s na 250 m), Transmisja do 8 bajtów w jednym komunikacie, Komunikaty rozpoznawana są na podstawie identyfikatorów, CAN charakteryzuje się dużą odpornością na zakłócenia elektromagnetyczne i niezawodnością, Rozbudowana sprzętowa obsługa błędów, Możliwość dołączenia do 30 urządzeń do magistrali. 20
Model warstwowy interfejsu CAN 21
Warstwa fizyczna (1) SN65HVD230 Rter. = 120 R 22
Warstwa fizyczna (2) Dwa stany magistrali: 1 niedominujący (recessive) 0 dominujący (dominant) 23
Transceiver CAN 24
Przykładowa ramka magistrali CAN ID identyfikator ramki RTR (Remote Transmit Request) żądanie przesłania danych Arbitration Field ustala priorytet komunikatu (12 bit, 0 najwyższy priorytet) Control Field (IDE 0 ramka standardowa CAN 2.0A, 1 ramka rozszerzona CAN 2.0B, RB0 - zarezerwowany, DLC długość ramki) CRC 15-bitowa suma kontrolna Data Field transmitowane dane (maksymalnie 8 B) Error Frame błąd w odebranej ramce (CRC) Overload Frame urządzenie nie jest gotowe do przesłania danych a 25
Sterownik CAN procesora ColdFire (1) Cechy charakterystyczne: Sterownik kompatybilny ze standardem CAN 2.0: Obsługa ramek zgodnych z CAN 2.0A (do 109 bit), Obsługa ramek rozszerzonych zgodnych z CAN 2.0B (do 127 bit), Długość pola danych maksymalnie 8 B, Programowalna szybkość transmisji do 1 Mbit/s, 16 programowalnych buforów pracujących jako Rx lub Tx (0-8 B), Adresowanie zależne od zawartości ramki, 16-bitowy rejestr odmierzający czas, Licznik czasu synchronizowany specjalnymi komunikatami Maskowalne przerwania, Sterownik niezależny od medium fizycznego (transmisja różnicowa, światłowodowa), Krótki czas obsługi komunikatów o dużym priorytecie, Tryb obniżonego poboru mocy (Sleep, Hibernation). 26
Sterownik CAN procesora ColdFire (2) 27
Współpraca procesora ColdFire z zewnętrznym układem PHY 28
Bufory komunikacyjne CAN SRR 0 Data Frame Remote Frame ID = 29 bit RTR 0 Data Frame Remote Frame ID = 11 bit 29
Egzamin Sala Seminaryjna Egzamin: 26.01.2007 1.02.2007 ~16.02.2007 30
Prace magisterskie 1. Współpraca z ośrodkiem naukowo-badawczym DESY w Hamburgu w ramach projektu CARE 2. Współpraca w ramach projekty PERPLEXUS 31
CARE (1) Sterownik SimCon 3.1L 32
CARE (2) Sterownik ATCA ATCA - Advanced Telecom Computing Architecture 33
CARE (3) Płyta uruchomieniowa z interfejsem PCIe 34
PERPLEXUS (1) 35
PERPLEXUS (2) 36
PERPLEXUS (3) 37