MIKROKONTROLERY - MAGISTRALE SZEREGOWE

Podobne dokumenty
MIKROKONTROLERY - MAGISTRALE SZEREGOWE

Wbudowane układy komunikacyjne cz. 1 Wykład 10

Instytut Teleinformatyki

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Przerwania w architekturze mikrokontrolera X51

MAGISTRALE MIKROKONTROLERÓW (BSS) Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

MIKROPROCESORY architektura i programowanie

Systemy wbudowane - wykład 8. Dla zabicia czasu Notes. I 2 C aka IIC aka TWI. Notes. Notes. Notes. Przemek Błaśkiewicz.

Interfejsy szeregowe TEO 2009/2010

Mikroprocesory i Mikrosterowniki Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Komunikacja w mikrokontrolerach Laboratorium

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

Hardware mikrokontrolera X51

Współpraca procesora ColdFire z urządzeniami peryferyjnymi

Magistrala LIN

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Komunikacja w mikrokontrolerach. Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

TECHNIKA MIKROPROCESOROWA

Mikroprocesory i mikrosterowniki Wydział Elektroniki Mikrosystemów i Fotoniki Politechniki Wrocławskiej Ćwiczenie nr 4

MIKROPROCESORY architektura i programowanie

Uniwersalny asynchroniczny. UART Universal Asynchronous Receier- Transmiter

Instytut Teleinformatyki

(przykład uogólniony)

Mikroprocesory i Mikrosterowniki Laboratorium

Ćwiczenie 7 Matryca RGB

Zastosowania mikrokontrolerów w przemyśle

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Konfiguracja i programowanie Gamepad'a PlayStation2 na mikrokontrolerze STM32

Współpraca procesora z urządzeniami peryferyjnymi

Systemy wbudowane - wykład 7

Podstawy systemów mikroprocesorowych. Interfejs USART. Interfejsy szeregowe w mikrokontrolerach AVR

Analizowanie protokołów szeregowych oscyloskopami Rohde&Schwarz (2) SPI, I 2 C

Programowalne układy logiczne kod kursu: ETD Układy sekwencyjne W

4 Transmisja szeregowa, obsługa wyświetlacza LCD.

Programowanie mikrokontrolerów. 8 listopada 2007

Komunikacja z urzadzeniami zewnętrznymi

Charakterystyka mikrokontrolerów

Magistrala SPI. Linie MOSI i MISO sąwspólne dla wszystkich urządzeńna magistrali, linia SS jest prowadzona do każdego Slave oddzielnie.

Architektura mikrokontrolera MCS51

Architektura mikrokontrolera MCS51

Architektura komputerów

4 Transmisja szeregowa na przykładzie komunikacji dwukierunkowej z komputerem PC, obsługa wyświetlacza LCD.

Architektura komputerów. Układy wejścia-wyjścia komputera

Techniki mikroprocesorowe i systemy wbudowane

Współpraca procesora z urządzeniami peryferyjnymi

Pamięci EEPROM w systemach mikroprocesorowych, część 2

Przykład oprogramowania protokołu komunikacyjnego dla łącza równoległego pomiędzy procesorem master i wieloma procesorami slave

Interfejsy systemów pomiarowych

Magistrale szeregowe

16. Szeregowy interfejs SPI

Sprzężenie mikrokontrolera (nie tylko X51) ze światem zewnętrznym lokalne interfejsy szeregowe

Interfejsy szeregowe cz. 2

Współpraca procesora z urządzeniami peryferyjnymi

Magistrala I 2 C. Podstawy systemów mikroprocesorowych. Wykład nr 5 Interfejsy szeregowe c.d.

Omówimy przykłady 8-mio bitowego licznika z wyposażenia ADuC812 (CISC 51) oraz mikrokontrolera ATMega128 należącego do rodziny AVR.

Laboratorium mikroinformatyki. Szeregowe magistrale synchroniczne.

SmartDRIVE protokół transmisji szeregowej RS-485

Expandery wejść MCP23S17 oraz MCP23017

Programowanie Układów Logicznych kod kursu: ETD6203. Komunikacja z układami cyfrowymi W dr inż. Daniel Kopiec

KOMPUTEROWE SYSTEMY POMIAROWE

Pracownia elektryczno-elektroniczna klasa IV

petla:... ; etykieta określa adres w pamięci kodu (docelowe miejsce skoku) DJNZ R7, petla

Charakterystyka mikrokontrolerów. Przygotowali: Łukasz Glapiński, Mateusz Kocur, Adam Kokot,

MOBOT-RCR v2 miniaturowe moduły radiowe Bezprzewodowa transmisja UART

TECHNIKA MIKROPROCESOROWA

Interfejsy. w systemach pomiarowych. Ryszard J. Barczyński, 2016 Materiały dydaktyczne do użytku wewnętrznego

Zagadnienia zaliczeniowe z przedmiotu Układy i systemy mikroprocesorowe elektronika i telekomunikacja, stacjonarne zawodowe

architektura komputerów w 1 1

Instytut Teleinformatyki

Układ transmisji szeregowej AVR

CompactPCI. PCI Industrial Computers Manufacturers Group (PICMG)

Mikrokontroler AVR ATmega32 - wykład 9

Systemy Wbudowane. Raspberry Pi Sterowanie serwomechanizmem (wersja 2019) Serwomechanizm. Serwomechanizm z silnikiem krokowym

I 2 C BUS (1) 1 L.Łukasiak: Podstawy Techniki Mikroprocesorowej (materiały pomocnicze)

Programowanie mikrokontrolerów. 5 grudnia 2007

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Ćwiczenie 6 Komunikacja z komputerem (łącze RS232)

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja. do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1.

Programowanie mikrokontrolerów. 15 stycznia 2008

Ćw. 5. Obsługa portu szeregowego UART w mikrokontrolerach 8051.

Problematyka sieci miejscowej LIN

Obszar rejestrów specjalnych. Laboratorium Podstaw Techniki Mikroprocesorowej Instytut Mikroelektroniki i Optoelektroniki PW

MIKROKONTROLERY I MIKROPROCESORY

Programowanie Mikrokontrolerów. Magistrala I2C (Inter-Integrated Circuit).

Systemy wbudowane Wykład 6 - transmisje szeregowe: UART i pochodne. Komunikacja szeregowa Notes. Rodzaje transmisji Notes. Rodzaje transmisji Notes

KAŻDY Z 8-MIO BITOWYCH PORTÓW MIKROKONTROLERÓW RODZINY 51 MA JEDYNIE REJESTR PORTU: P0, P1, P2, P3, PEŁNIĄ ONE ROLĘ REJESTRÓW DANYCH WE/WY.

. Rodzaje transmisji sygnału i RS-232

Kurs Elektroniki. Część 5 - Mikrokontrolery. 1/26

Interfejs urządzeń peryferyjnych

Wykład 10. Komunikacja

ad a) Konfiguracja licznika T1 Niech nasz program składa się z dwóch fragmentów kodu: inicjacja licznika T1 pętla główna

Lista instrukcji procesora 8051 część 2 Skoki i wywołania podprogramów, operacje na stosie, operacje bitowe

Architektura Systemów Komputerowych. Transmisja szeregowa danych Standardy magistral szeregowych

MSP430 w przykładach (8)

System interfejsu RS 232C opracowali P. Targowski i M. Rębarz

Ultradźwiękowy generator mocy MARP wersja Dokumentacja techniczno-ruchowa

interfejs szeregowy wyświetlaczy do systemów PLC

architektura komputerów w 1 1

Układy czasowo-licznikowe w systemach mikroprocesorowych

Projekt MARM. Dokumentacja projektu. Łukasz Wolniak. Stacja pogodowa

Transkrypt:

Liczba magistral szeregowych jest imponująca RS232, i2c, SPI, 1-wire, USB, CAN, FireWire, ethernet... Równie imponująca jest różnorodność protokołow komunikacyjnych. Wiele mikrokontrolerów ma po kilka interfejsów komunikacyjnych. Łatwo dostępne są też kości obsługujące protokół jednego typu magistrali 'tłumaczące go na inny protokól. Np CAN-RS232. Każdy protokół (ale zwykle z ograniczeniami dotyczącymi szybkości transmisji) można zaprogramować. Zwykle ma to jednak jedynie wartość dydaktyczną. Zajmowanie jednostki centralnej do udawania układu peryferyjnego jest w większości wypadków pomyłką. Sprzętowy interfejs komunikacyjny poza realizacją protokołu ma z reguły szereg funkcji kontrolnych, których zaprogramowanie nie jest możliwe. JEDNĄ Z PODSTAWOWYCH REGUŁ MAŁO PODKREŚLANYCH W OPISACH WAŻNĄ DLA WIĘKSZOŚCI PROTOKOŁÓW JEST ZDOLNOŚĆ ( OBOWIĄZEK ) KAŻDEGO INTERFEJSU DO PERMANENTNEJ KONTROLI STANU LINII. 1/33

SPI Serial Peripheral Interface Wprowadzona przez MOTOROLĘ synchroniczna magistrala dla komunikacji typu master-slave. Nazywana czasem 4-wire: SCLK Serial Clock MOSI Master Output MISO Master Input SS Slave Select 2/33

Konwencja nazw nie jest ściśle przestrzegana Spotyka się SCK, CLK, SDI, DI, SI, SDO, DO, SO, ncs, CS, CSB CSN... BUS SPI MOŻE OPEROWAĆ Z POJEDYNCZYM MASTER I WIELOMA SLAVE MASTER ZAWSZE INICJUJE TRANSMISJĘ PRZEZ PRZYGOTOWANIE ZEGARA. JEGO CZĘSTOTLIWOŚĆ MUSI BYĆ MNIEJSZA LUB RÓWNA MAKSYMALNEJ CZĘSTOTLIWOŚCI AKCEPTOWANEJ PRZEZ ODBIORNIKI. ZWYKLE 1 70 MHz. NASTĘPNIE MASTER WYBIERA SLAVE'a PRZEZ LINIĘ SS ( ACTIVE LOW ) ZWYKLE POWINIEN ODCZEKAĆ NIM ZACZNIE NADAWAĆ CLOCK. W CZASIE KAŻDEGO CYKLU ZEGARA ODBYWA SIĘ TRANSMISJA FULL DUPLEX MASTER PRZESYŁA BITY LINIĄ MOSI, A SLAVE ODCZYTUJE JE Z TEJ SAMEJ LINII. RÓWNOCZEŚNIE SLAVE WYSYŁA BITY LINIĄ MISO, A MASTER CZYTA JE Z TEJ LINII. TAKA TRANMISJA WYMAGA ZWYKLE DWÓCH REJESTRÓW PRZESUWNYCH, JEDEN U MASTER'A JEDEN U SLAVE'A. TRANSMISJA ZWYKLE ZACZYNA SIĘ OD PRZESYŁANIA MSB (ALE MOŻE TO BYĆ PRZEDMIOTEM KONFIGURACJI NP. W AVR). TRANSMISJA MOŻE TRWAĆ DOWOLNĄ LICZBĘ CYKLI. ZWYKLE KOŃCZY SIĘ, GDY MASTER WSTRZYMUJE ZEGAR (I ZDEJMUJE WYBÓR SLAVE'A ) 3/33

GDY WIĘCEJ NIŻ JEDEN SLAVE WYSTĘPUJE W SIECI TO MOŻNA ROZRÓŻNIĆ DWA TYPY POŁĄCZEŃ: - SIEĆ NIEZALEŻNYCH ODBIORNIKÓW - SIEĆ ODBIORNIKÓW POŁĄCZONYCH SZEREGOWO ( DAISY CHAIN ) 4/33

MASTER WYBIERA CZĘSTOTLIWOŚĆ ZEGARA oraz KONFIGURUJE JEGO FAZĘ (CPHA) I POLARNOŚĆ (CPOL) CPOL i CPHA PRZYJMUJĄ WARTOŚCI 0 i 1 PRÓBKOWANIE (ODCZYT) ORAZ USTAWIANIE LINII DANYCH (MOSI I MISO) ODBYWA SIĘ PRZY ZMIANACH STANU LINII ZEGARA SCK CPOL = 0 CPHA = 0 SCK: ZBOCZE NARASTAJĄCE =ODCZYT OPADAJĄCE = ZAPIS CPOL = 0 CPHA = 1 SCK: ZBOCZE NARASTAJĄCE = ZAPIS OPADAJĄCE = ODCZYT CPOL = 1 CPHA = 0 SCK: ZBOCZE NARASTAJĄCE = ZAPIS OPADAJĄCE = ODCZYT CPOL = 1 CPHA = 1 SCK: ZBOCZE NARASTAJĄCE = ODCZYT OPADAJĄCE = ZAPIS 5/33

I2C - BUS MAGISTRALA WPROWADZONA PRZEZ PHILIPS'a WYMAGA DWÓCH LINII AKTYWNYCH I MASY LINIE AKTYWNE TO SDA LINIA DANYCH SCL LINIA ZEGARA 6/33

KAŻDE URZĄDZENIE DOŁĄCZONE DO MAGISTRALI MA SWÓJ UNIKALNY ADRES. KAŻDE MOŻE BYĆ ODBIORNIKIEM LUB NADAJNIKIEM JEST TO MAGISTRALA MULTIMASTER CO ZNACZY, ŻE URZĄDZENIE STARTUJĄCE TRANSMISJĘ STAJE SIĘ MASTER'em. ALE, ZATEM, POJAWIA SIĘ PROBLEM ARBITRACJI CZASOWE RELACJE SCL I SDA DEFINIJJĄ ISTOTNE ELEMENTY PROTOKOŁU. SEKWENCJA START SEKWENCJA STOP DANE OK, GDY SCL HIGH DANE ZMIENIAMY, GDY SCL LOW 7/33

TRANSMISJA DANYCH POTWIERDZENIE --- ACKNOWLEDGE 8/33

9/33

10/33

KLASYCZNE I2C STOSUJE 7-MIO BITOWE ADRESOWANIE W WERSJI ROZSZERZONEJ ADRES JEST 10-BITOWY. ALE NAWET WTEDY PO PIERWSZYCH SIEDMIU BITACH ADRESU NADAWANY JEST 8-MY BIT KIERUNKU NASTĘPNEJ TRANSMISJI N.B. LSB KIERUNKU = 0 OZNACZA, ŻE MASTER BĘDZIE PISAĆ (NADAWAĆ) KOLEJNY BAJT = 1 OZNACZA, ŻE MASTER BĘDZIE CZYTAĆ NASTĘPNY BAJT SYNCHRONIZACJA ZEGARA I ARBITRACJA DOSTĘPU DO MAGISTRALI.. SYNCHRONIZACJA OPIERA SIĘ NA POMYŚLE 'WIRED-AND WSZYSTKICH LINII SCL. SCL LOW JEST WYZNACZONY PRZEZ URZĄDZENIE O NAJDŁUŻSZYM OKRESIE LOW A STAN HIGH WYZNACZA URZĄDZENIE O NAKRÓTSZYM OKRESIE HIGH ARBITRACJA DOSTĘPU DO LINII OPIERA SIĘ NA POMYŚLE DOMINANT LOW LINII SDA (I WSPOMNIANYM OBOWIĄZKU CZYTANIA STANU LINII) 11/33

JESZCZE RAZ PRZYKŁADY RAMEK DLA TRANSMISJI DANYCH 12/33

CAN BUS Control Area Network Magistrala wymyślona dla przemysłu samochodowego przez BOSCH'a 13/33

RAMKI CAN MIKROKONTROLERY - MAGISTRALE SZEREGOWE CAN 2 A CAN 2 B 14/33

BARDZO BOGATA RAMKA 11-BITOWY LUB 29-BITOWY IDENTYFIKATOR IDENTYFIKOWANY JEST TYP KOMUNIKATU, NIE URZĄDZENIE! ROZWINĘTA DETEKCJA BŁĘDÓW TRANSMISJI DETEKCJĘ BŁĘDÓW MUSZĄ PROWADZIĆ STALE WSZYSTKIE URZĄDZENIA KAŻDE WYKRYCIE BŁEDU OZNACZA OBOWIĄZEK WYSŁANIA KOMUNIKATU BŁĘDU BŁĘDNY KOMUNIKAT JEST SKASOWANY U WSZYSTKICH (WĘZŁÓW) STAN WSZYSTKICH KONTROLERÓW JEST ODNOWIONY co to oznacza... KOMUNIKAT JEST POWTARZANY, A JEŚLI JEST WIĘCEJ CHĘTNYCH DO NADAWANIA, TO ODBYWA SIĘ ZWYKŁA ARBITRACJA DOSTĘPU TYPY WYKRYWANYCH BŁEDÓW BŁĘDY BITÓW - BIT STUFFING ERROR - ZWYKŁA NIEZGODNOŚĆ NADAWANIA/ODCZYTU U NADAWCY BŁĘDY KOMUNIKATU - SUMA KONTROLNA - BŁĄD RAMKI - BŁĄD POTWIERDZENIA KAŻDY WĘZEŁ MOŻE BYĆ W JEDNYM Z TRZECH STANÓW: ERROR ACTIVE ERROR PASSIVE BUS OFF 15/33

CAN BUS LENGTH Bus length (metres) Maximum bit rate (bit/s) 40 1 Mbit/s 100 500 kbit/s 200 250 kpit/s 500 125 kbit/s 6 km 10 kbit/s 16/33

17/33

18/33

19/33

20/33

http://www.interfacebus.com/glossary-of-terms-network-topologies.html 21/33

22/33

USB Pin Location, Type A Connector MIKROKONTROLERY - MAGISTRALE SZEREGOWE USB Pinout, Cable Assembly Pin Signal Name Description 1 VBUS Red 2 D- White 3 D+ Green 4 GND Black Shell Shield Drain 23/33

Extreme USB - USB Converter, Hub/Hub allows USB up to 100 meters 24/33

. 25/33

26/33

27/33

Przykład wyposażenia w interfejsy szeregowe 28/33

PRZYKŁAD OBSŁUGI INTERFEJSU RS232 WŁĄCZONEGO W SYSTEM PRZERWAŃ ZREALIZOWANY NA ADuC812 (ANALOG DEVICES) ZAŁOŻENIA DOTYCZĄCE KOMUNIKACJI: 1. ROZMAWIAJĄCE STRONY WYMIENIAJĄ KOMUNIKATY O DŁUGOŚCI NBYTE +1 (< 32). Pierwszy bajt komunikatu to NBYTE, po którym następuje NBYTE bajtów danych, 2. KOMUNIKACJA ODBYWA SIĘ BEZ KONTORLI PARZYSTOŚCI, 3. SZYBKOŚĆ TRANSMISJI, TAKTOWANIE PROCESORA, KONFIGURACJA TRYBU TRANSMISJI WŁĄCZAJĄCA UŻYCIE TIMERA1 ZOSTAŁA POPRAWNIE WYKONANA W PROGRAMIE GŁÓWNYM, 4. PĘTLA GŁÓWNA UŻYWA BANKU REJESTRÓW 0, W OBSŁUDZE PRZERWANIA OD ŁĄCZA RS232 UŻYWA SIĘ BANKU 1. 5. ODEBRANIE PEŁNEGO KOMUNIKATU SYGNALIZOWANE JEST (PROGRAMOWI GŁÓWNEMU) USTAWIENIEM FLAGI 9 (BIT 9 W BITOWO-ADRESOWALNYM OBSZARZE PAMIĘCI DANYCH) 6. ZAKOŃCZENIE NADAWANIA KOMPLETNEGO (N-BYTOWEGO) KOMUNIKATU SYGNALIZOWANE JEST USTAWIENIEM BITU 8 ;Przykład UART ISR (interrupt service routine) dla ADuC812 ;; FLAGS ; 08H serial input completed ; 09H serial transmission completed ; $MOD812 ;rodzaj include file, podającej asemblerowi słownik dotyczący ADuC812 ; ; Własne definicje nazw komunikowane asemblerowi ; STOS DATA 70H 29/33

PRZYKŁAD OBSŁUGI INTERFEJSU RS232 WŁĄCZONEGO W SYSTEM PRZERWAŃ ZREALIZOWANY NA ADuC812 (ANALOG DEVICES) ;Przykład UART ISR (interrupt service routine) dla ADuC812 KONTYNUACJA ; STOS DATA 70H STATUS DATA 22H BUFIN DATA 30H ;bufor dla komunikatów przychodzących CNB DATA 3FH ;NBYTE BUFOU DATA 60H ;bufor dla komunikatów wysyłanych BOLNG EQU 06H ;jego długość ; CSEG ;dyrektywa asemblera (raczej zbędna) ORG 000H ;ta za to BARDZO ważna: tu ładuj następujący fragment programu AJMP START ; stamtąd naprawdę zaczynamy, ale sprzęt ustawia początek na ZERO ;==================================================================== ; INTERRUPT SERVICES ;==================================================================== ; UPRZEDZAJĄC PEŁNE STUDIA OBSŁUGI PRZERWAŃ WIEDZMY, ŻE: - WEWNĘTRZNE UKŁADY PERYFERYNE MOGĄ ZGŁASZAĆ PRZERWANIA - NP. USART ZGŁASZA ODEBRANIE NOWEGO BAJTU DO REJESTRU SBUF - LUB ZAKOŃCZENIE WYSYŁANIA BAJTU Z REJESTRU SBUF (wyjściowego) - DLA ADuC812 TO ODDZIELNE FLAGI, ALE ADRES OBSŁUGI JEST JEDEN 30/33

PRZYKŁAD OBSŁUGI INTERFEJSU RS232 WŁĄCZONEGO W SYSTEM PRZERWAŃ ZREALIZOWANY NA ADuC812 (ANALOG DEVICES) KONTYNUACJA ORG 23H ;RSR232 ma tu sprzętowy adres dla obsługi przerwania PUSH ACC PUSH PSW SETB RS0 ;BANK 1 JBC TI,WYDAJ CLR RI ;przerwania było z powodu ODCZYTU bajtu przez usart ; MOV @R0,SBUF ;R0 zawiera bierzący adres buforze wejściowym CJNE R2,#00H,avan MOV CNB,@R0 ;NBYTE do CNB avan: MOV A,R2 CJNE A,CNB,avant SETB 8 ;ustaw czytanie komunikatu zakończone flaga 9 SJMP back avant: INC R2 ;izwiększ licznik przeczytanych bajtów INC R0 ;i adres dla przyjęcia kolejnego w buforze SJMP back WYDAJ: 31/33

PRZYKŁAD OBSŁUGI INTERFEJSU RS232 WŁĄCZONEGO W SYSTEM PRZERWAŃ ZREALIZOWANY NA ADuC812 (ANALOG DEVICES) KONTYNUACJA WYDAJ: CJNE R3,#00H,go SETB 9 ;transmisja zakończona MOV R1,#BUFOU MOV R3,#BOLNG ;można przygotować ewentualnie nowy adres i długość SJMP back go: MOV SBUF,@R1 DEC R3 INC R1 back: CLR RS0 POP PSW POP ACC RETI ;------------------------------------------------------------------ ; ORG 70H ;==================================================================== START: 32/33

PRZYKŁAD OBSŁUGI INTERFEJSU RS232 WŁĄCZONEGO W SYSTEM PRZERWAŃ ZREALIZOWANY NA ADuC812 (ANALOG DEVICES) KONTYNUACJA START: MOV SP,#STACK ANL STATUS,#00H ;clear STATUS ; ; initiate timer and serial transmission MOV TMOD,#00100001B ;Timer0, mode1, Timer1 mode2 MOV SCON,#92H ;SERIAL MODE 2,READ ENBL, TI UP MOV PCON,#80H ;DOUBLE SPEED, SMOD=1 SETB RS0 ;BANK1 MOV R0,#BUFIN MOV R2,#00H ;input buffer counter, used to count up MOV R1,#BUFOU MOV R3,#BOLNG ;out buf counter, used to count down CLR RS0 ; CLR 8 ;"new string completed and waiting" CLR 9 ;------------------------------------------------------------------------------------------- ; MAIN LOOP ; lupa: ; setb AJMP lupa END 33/33