Grzegorz Lisowski. Przemysłowe interfejsy komunikacyjne



Podobne dokumenty
TECHNIKA MIKROPROCESOROWA

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

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

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

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

MIKROKONTROLERY - MAGISTRALE SZEREGOWE

Programowanie mikrokontrolerów. 15 stycznia 2008

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Artykuł techniczny CVM-NET4+ Zgodny z normami dotyczącymi efektywności energetycznej

Metrologia: miary dokładności. dr inż. Paweł Zalewski Akademia Morska w Szczecinie

Magistrala LIN

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

UW-DAL-MAN v2 Dotyczy urządzeń z wersją firmware UW-DAL v5 lub nowszą.

Komunikacja w mikrokontrolerach Laboratorium

Układ transmisji szeregowej AVR

Kod produktu: MP01105T

IC200UDR002 ASTOR GE INTELLIGENT PLATFORMS - VERSAMAX NANO/MICRO

Kod produktu: MP01105

NX70 PLC

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Urządzenia wej.-wyj. Plan (1) Plan (2) Właściwości urządzeń wejścia-wyjścia (2) Właściwości urządzeń wejścia-wyjścia (1)

. Rodzaje transmisji sygnału i RS-232

NX700 PLC

MODBUS RTU wersja M1.14 protokół komunikacyjny wyświetlaczy LDN

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

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

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

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

TECHNIKA MIKROPROCESOROWA

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

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

dokument DOK wersja 1.0

ELEKTROTECHNIKA I ELEKTRONIKA

Opis czytnika TRD-FLAT CLASSIC ver Naścienny czytnik transponderów UNIQUE w płaskiej obudowie

Materiały dodatkowe Krótka charakterystyka protokołu MODBUS

Systemy wbudowane - wykład 7

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

MiniModbus 4DO. Moduł rozszerzający 4 wyjścia cyfrowe. Wyprodukowano dla. Instrukcja użytkownika

Technika Mikroprocesorowa

Kod produktu: MP01611-ZK

Współpraca procesora ColdFire z urządzeniami peryferyjnymi

ELEKTROTECHNIKA I ELEKTRONIKA

Komunikacja z urzadzeniami zewnętrznymi

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

INTERFEJSY SYSTEMÓW ELEKTRONICZNYCH. Interfejsy klasy RS

SM210 RS485 - JBUS/MODBUS dla SM102E. Æ Instrukcja obsługi

PUNKTOWE STEROWNIKI VERSAMAX MICRO

Mini Modbus 1AI. Moduł rozszerzający 1 wejście analogowe, 1 wyjście cyfrowe. Wyprodukowano dla

Problematyka sieci miejscowej LIN

Mikroprocesory i Mikrosterowniki Laboratorium

Kod produktu: MP01611

Współpraca procesora z urządzeniami peryferyjnymi

PODSTAWY OPRACOWANIA WYNIKÓW POMIARÓW Z ELEMENTAMI ANALIZY NIEPEWNOŚCI POMIAROWYCH

Mini Modbus 1AO. Moduł rozszerzający 1 wyjście analogowe, 2 wyjście cyfrowe. Wyprodukowano dla

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

L A B O R A T O R I U M T E C H N I K I C Y F R O W E J

RS485 MODBUS Module 6RO

Opis czytnika TRD-80 CLASSIC ver Moduł czytnika transponderów UNIQUE z wbudowaną anteną

MiniModbus 4DI. Moduł rozszerzający 4 wejścia cyfrowe. Wyprodukowano dla

RS485 MODBUS Module 6RO

Konwerter DAN485-MDIP

MiniModbus 4DI-M. Moduł rozszerzający 4 wejścia cyfrowe z pamięcią liczników. Wyprodukowano dla

Laboratorium mikroinformatyki. Szeregowe magistrale synchroniczne.

Uniwersalny asynchroniczny. UART Universal Asynchronous Receier- Transmiter

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

Instytut Teleinformatyki

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

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

Rozproszony system zbierania danych.

16. Szeregowy interfejs SPI

RS485 MODBUS Module 6RO

Interfejsy szeregowe TEO 2009/2010

SafeTest 60 Prosty, solidny i ekonomiczny tester bezpieczeństwa elektrycznego urządzeń medycznych.

Komunikacja w mikrokontrolerach Laboratorium

Kod produktu: MP01611-ZK

1.10 MODUŁY KOMUNIKACYJNE

Programowanie Mikrokontrolerów

RS485 MODBUS Module 16RO

MAGISTRALA MODBUS W SIŁOWNIKU XSM Opis sterowania

Sterownik procesorowy S-2 Komunikacja RS485 MODBUS

TRD-MINI COMBO. Uniwersalny moduł czytnika transponderów UNIQUE - wersja OEM. Podstawowe cechy :

RS485 MODBUS Module 16O

STHR-2810, 2811, 2812 Przetwornik temperatury i wilgotności z czujnikiem Sensirion

Magistrale szeregowe

Laboratorium Sensorów i Pomiarów Wielkości Nieelektrycznych. Ćwiczenie nr 1

CM Konwerter SUCOM_A Master - ModBus RTU Slave

m e d i a s e r v i c e Moduł kamery JPEG z komunikacją szeregową CJ0706A

RS485 MODBUS Module 8I8O

Kod produktu: MP-1W-2480

Moduł komunikacyjny Modbus RTU do ciepłomierza SonoMeter 30

Instrukcja integracji urządzenia na magistrali Modbus RTU. wersja 1.1

Jak obliczać podstawowe wskaźniki statystyczne?

DZT Licznik energii elektrycznej Sieć trójfazowa 4-przewodowa Połączenie bezpośrednie 100A Wyjście impulsowe oraz RS485/Modbus.

IC200UDD110 ASTOR GE INTELLIGENT PLATFORMS - VERSAMAX NANO/MICRO

Protokół Modbus RTU / Sieć RS-485

WYKŁAD 6 TRANZYSTORY POLOWE

CM ModBus RTU Slave Danfoss MCD3000 Master

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

Zastosowania mikrokontrolerów w przemyśle

Transkrypt:

Grzegorz Lisowski

Grzegorz Lisowski Iterfejsy komuikacyje wykorzystywae w systemach sterowaia. Wstęp. Opracowaie przedstawia wykorzystaie i opis szeregowej komuikacji między elemetami sterowaia jakimi mogą być pojedycze sterowiki mikroprocesorowe, czy też sterowiki PLC, które staowią część sieci moitorujących, sieci sterujących i adzorujących. Przykłady takich sieci to MODBUS, PROFIBUS, CANOPEN, DEVICENET. Iym zagadieiem opisaym w tej pracy jest komuikacja między sterowikami mikroprocesorowymi, a peryferiami bez których współczesy układ sterowaia ie mógłby istieć. Peryferia te to przetworiki A/C i C/A, układy rozszerzeń portów, pamięci ieulote, zegary czasu rzeczywistego, różego rodzaju czujiki itp. Do wymiay iformacji między tymi urządzeiami wykorzystuje się iterfejsy SPI, -WIRE, I2C. Dlaczego iformacje przesyłamy w sposób szeregowy? Przede wszystkim ze względu a łatwość łączeia poszczególych urządzeń w sieć (połączeia szeregowe są łatwiejsze w układaiu i ekraowaiu). Elemety trasmisji szeregowej emitują miej zakłóceń i są bardziej odpore a ie. Łatwo też zaimplemetować izolację galwaiczej między elemetami trasmisji..2 Podstawowe pojęcia. Każdy protokół komuikacyjy ma formę warstwową ( layer) opisaą w modelu ISO/OSI. Model te wyróżia siedem różych warstw (Rys..). Przykładowo ostatia warstwa aplikacji określa sposób wykorzystaia przez użytkowika daych przesyłaych w postaci programu aplikacji do sterowaia lub adzorowaia procesem. Warstwami różych protokołów opisaymi w tym opracowaiu są warstwa fizycza i warstwa daych. Warstwa fizycza określa jakim medium przesyłae są dae (przykładowo dla RS485 jest to liiowy kabel w postaci skrętki), jaki jest sposób łączeia urządzeń w sieć (traceiver RS485), ilość elemetów w sieci, jaka jest forma przesyłaia daych. Warstwa daych opisuje sposób adresowaia urządzeń w sieci detekcję błędów i sposób potwierdzaia poprawości przesłaych iformacji. Podstawowe pojęcia używae w dalszej części opracowaia: Master - urządzeie adrzęde z oprogramowaiem kotrolującym, iicjujące lub prowadzące trasmisje daych. Slave urządzeie, które prowadzi trasmisję z masterem odpowiadając a jego rozkazy i zapytaia. Nie ma wymiay iformacji miedzy slave'ami. Half-duplex - trasmisja, która w daej chwili czasowej może odbywać się tylko w jedym kieruku (Master > Slave lub Slave -> Master). 2

Full-duplex - trasmisja, która w daej chwili czasowej może odbywać się w obu kierukach jedocześie (Master < > Slave). Wagą sieci azywamy całkowitą długość przewodu podłączoego w sieci Promieiem sieci trasmisyjej azywamy długość przewodu od urządzeia master do ajdalszego urządzeia slave. Szybkość trasmisji możliwa ilość przesyłaych bitów w ciągu jedej sekudy liczoa w bodach (bit/s). Rys.. Model warstwowy protokołu komuikacyjego.3 Przykłady wykorzystaia iterfejsów komuikacyjych. Typowym przykładem sieci sterującej i adzorującej jest PROFIBUS (Rys..2). Opracowaą ją w firmie SIEMENS i oparto przede wszystkim a iterfejsie UART z taceiver'em RS-485. Jest to elastycza sieć, do której moża podłączyć urządzeia różych producetów o skrajie różej fukcjoalości. Węzłami sieci mogą być zarówo proste urządzeia wejścia/wyjścia aalogowe i cyfrowe, czujiki lub elemety wykoawcze, jak i komputery, sterowiki programowale, falowiki, czy też termiale operatorskie. Rys..2 Przykład sieci Profibus DP z jedym masterem 3

Iym przykładem sieci sterującej może być sieć typu CAN (Cotroller Cotroller Area Network) używaa w sterowaiu pojazdów trakcyjych (Rys..3) czy też owoczesych samochodów. W pojazdach sieć taka składa się z dwóch podsieci o różej prędkości trasmisji. Szybka obsługuje sterowaie silikami i elemetami trakcyjymi. Sieć wola steruje klimatyzacją, elemetami drzwi i paelami sterowaia. Rys..3 Przykład sterowaia pojazdem trakcyjym Rozbudoway system sterowaia oparty a mikrokotrolerze prócz zewętrzych iterfejsów (CAN, UART) do komuikacji z iymi sterowikami zawiera wewętrze iterfejsy iskiego poziomu wykorzystywae do obsługi peryferii. Iterfejsy SPI, I2C oraz -Wire pozwalają wykorzystać specjalizowae przetworiki A/C i D/C czy też dodatkowe pamięci lub układy I/O (Rys..4). Rys..4 Przykład rozbudowaego systemu mikroprocesorowego. 4

.4 Magistrale komuikacyje wykorzystywae w obsłudze peryferii mikrokotrolerów. W obsłudze peryferii wśród ajbardziej popularych wyróżiamy trzy stadardy trasmisji: I2C - opracoway przez firmę Philips w latach 8-tych ( 982 r. ) SPI - opracoway przez firmę Motorola w latach 9-tych -Wire - opracoway przez firmę Dallas Semicodactor Corp. Występują jeszcze trzy stadardy miej populare: SMBus - ( System Maagemet Bus ) firmy INTEL ( jest to właściwie I2C z dodatkowymi obwarowaiami czasowymi i elektryczymi ) Microwire - (bardzo podoby do SPI i właściwie dziś już ieużyway) opracoway przez Natioal Semicoductor Corp. UNI/O Bus - Firma Microchip wypuściła ostatio a ryek pamięci EEPROM z tą ową magistralą opartą a kodowaiu Machester bitu iformacji..4. I2C Iter Itegrated Circuit Jest to iterfejs oparty a dwóch sygałach: SCL serial clock, SDA serial data. Jest to trasmisja sychroicza, a jede bit iformacji przesyłay liią SDA przypada jede impuls a liii SCL. Trasmisja rozpoczya się bitem Startu ( zbocze opadające sygału SDA przy staie wysokim sygału SCL), kończy bitem Stopu ( zbocze arastające sygału SDA przy staie wysokim sygału SCL). Gdy iterfejs I2C jest w staie spoczyku a obu sygałach SCL i SDA jest sygał wysoki (logicza ''). Zmiaa stau a liii SDA możliwa jest tylko gdy liia SCL jest w staie iskim (logicze '') za wyjątkiem bitu startu i stopu. Testowaie (odczyt ) liii SDA odbywa się gdy liia SCL jest w staie wysokim ( logicza ''). Trasmisja jest half-duplex czyli odbywa się tylko w jedym kieruku w daej chwili. W sieci przeważie jest jede master i jede lub więcej układów typu slave. Wyjścia sygałów SCL i SDA każdego z urządzeń w stadardzie I 2C są realizowae jako otwarty dre lub otwarty kolektor (Rys..5). Liię trasmisyją staowią przeważie dwie ścieżki a płytce drukowaej. Obie ścieżki są dwukierukowe i połączoe do dodatiego biegua zasilaia przez źródło prądowe lub rezystor. Jedyka logicza a daym sygale występuje gdy wszystkie trazystory są odcięte, zero gdy przyajmiej jede trazystor jest wysteroway. 5

Rys..5 Przykład łączeia sieci I2C dla szybkości Stadard Mode i Fast Mode wraz wewętrzymi układami Master wybiera urządzeie (slave), z którym będzie przeprowadzał wymiaę daych poprzez 7-bitowy adres (pierwszy bajt trasmisji), co daje możliwość podłączeia do 28 układów typu slave. Jedakże 6 adresów jest zarezerwowaych pozostaje do wykorzystaia 2 adresów. Najmłodszy bit bajta adresowego iformuje czy dae będą zapisywae do slave'a ( ''), czy będą odczytywae ze slave'a (''). Liczba podłączoych urządzeń do jedej sieci ograiczoa jest przez liczbę adresów lub całkowitą pojemość sieci, która wyosi 4pF. Każdy elemet sieci wprowadza pewą pojemość. Master rozpoczya wymiaę iformacji wysyłając bit startu i kończy ją wysyłając bit stopu (Rys..6). Przeprowadza trasmisję poprzez sychroizowaie daych sygałem SCL i adzoruje czy przebiega oa prawidłowo poprzez sprawdzaie bitu ACK akceptacji (po każdym wysłaiu paczki 8 bitów - bajt urządzeie wystawiające dae a liię SDA wysyła dodatkowy bit o wartości jeżeli urządzeie odbierające dae z liii SDA odebrało je poprawie wystawia a liię bit o wartości '', gdy trasmisja ie przebiegła prawidłowo wystawia bit o wartości '' - master rówież wysyła bit ACK gdy dae są odczytywae ze slave'a.) Rys..6 Przykład trasmisji pojedyczego bajtu - I2C O szybkości przesyłaia daych decyduje master. Wyróżiamy cztery szybkości w stadardzie I2C : Stadard Mode od do kbit/s Fast Mode do 4kbit/s Fast Mode-plus do Mbit/s High-speed Mode do 3,4Mbit/s 6

Master ie może jedak prowadzić trasmisji szybciej iż stadard ajwoliejszego slave'a. Sposób łączeia sieci dla High-speed Mode jest iy iż a Rys..5 (Specyfikacja I2C []). Istieje możliwość sieci o ilości slave'ów większej iż 2, używając części zabroioych adresów postaci xxb. Dwa ajmłodsze bity w takim adresie oraz jeszcze jede bajt adresu pozwala a zaadresowaie 24 urządzeń. Rys..7 Sekwecja zapisu i odczytu daych w komuikacji I2C przy adresowaiu 7-bitowym Jeżeli master zapisuje dae do slave'a (przy adresowaiu 7-bitowym) to musi wygeerować astępujące sekwecje a liii SCL i SDA (Rys..7): wysłaie Bit Startu wysłaie a liię bajtu zawierającego 7-bitowy adres oraz bit /W. odebraie poprawego bitu ACK zero logicze (jeżeli ie, to ależy skończyć wysyłaie bitem stopu i powtórzyć sekwecje) wysłaie pierwszego bajtu daych odebraie poprawego bitu ACK zero logicze (jeżeli ie, to ależy skończyć wysyłaie bitem stopu i powtórzyć sekwecje) powtórzeie ostatich dwóch kroków tyle razy, ile daych jest do wysłaia (po wysłaiu ostatiej daej bit ACK ie jest aalizoway) wysłaie Bitu Stopu Jeżeli master odczytuje dae z slave'a (przy adresowaiu 7-bitowym) to musi wygeerować astępujące sekwecje a liii SCL i SDA: wysłaie Bit Startu wysłaie a liię bajta zawierającego 7-bitowy adres oraz bit R. odebraie poprawego bitu ACK (jeżeli ie, to ależy skończyć wysyłaie bitem stopu i powtórzyć sekwecje) odebraie 8-bitów daych poprzez wygeerowaie 8 impulsów a SCL wysłaie bitu poprawego bitu ACK zero logicze powtórzeie ostatich dwóch kroków tyle razy, ile daych jest do odebraia (po ostatiej daej odbieraej bit ACK wysyłay jest w postaci jedyki logiczej wysłaie Bitu Stopu 7

Rys..8 Sekwecja zapisu i odczytu daych w komuikacji I2C przy adresowaiu -bitowym Jeżeli master zapisuje dae do slave'a (przy adresowaiu -bitowym) to musi wygeerować astępujące sekwecje a liii SCL i SDA (Rys..8): wysłaie Bit Startu wysłaie a liię bajta zawierającego adres A9 A8 oraz bit /W. odebraie poprawego bitu ACK zero logicze (jeżeli ie to ależy skończyć wysyłaie bitem stopu i powtórzyć sekwecje) wysłaie a liię bajta zawierającego młodszą część adresu A7...A. odebraie poprawego bitu ACK zero logicze (jeżeli ie, to ależy skończyć wysyłaie bitem stopu i powtórzyć sekwecje) wysłaie pierwszego bajta daych odebraie poprawego bitu ACK zero logicze (jeżeli ie, to ależy skończyć wysyłaie Bitem Stopu i powtórzyć sekwecje) powtórzeie ostatich dwóch kroków tyle razy, ile daych jest do wysłaia (po wysłaiu ostatiej daej bit ACK ie jest aalizoway) wysłaie Bitu Stopu Jeżeli master odczytuje dae z slave'a (przy adresowaiu -bitowym) to musi wygeerować astępujące sekwecje a liii SCL i SDA: wysłaie Bit Startu wysłaie a liię bajta zawierającego adres A9 A8 oraz bit /W. odebraie poprawego bitu ACK zero logicze (jeżeli ie to ależy skończyć wysyłaie bitem stopu i powtórzyć sekwecje) wysłaie a liię bajta zawierającego młodszą część adresu A7...A. odebraie poprawego bitu ACK zero logicze (jeżeli ie, to ależy skończyć wysyłaie bitem stopu i powtórzyć sekwecje) wysłaie Bit Startu poowie wysłaie a liię bajta zawierającego adres A9 A8 oraz bit R. odebraie poprawego bitu ACK (jeżeli ie, to ależy skończyć wysyłaie bitem stopu i powtórzyć sekwecje) odebraie 8-bitów daych poprzez wygeerowaie 8 impulsów a SCL wysłaie bitu poprawego bitu ACK zero logicze powtórzeie ostatich dwóch kroków tyle razy, ile daych jest do odebraia (po ostatiej daej odbieraej bit ACK wysyłay jest w postaci jedyki logiczej wysłaie Bitu Stopu 8

Iterfejs I2C bardzo często obsługiway jest przez mikrokotrolery w sposób software'owy. Tylko ielicza grupa kotrolerów posiada hardware'owy iterfejs I2C. Przykładem są procesory 8-bitowe firmy Atmel typu AVR. Poieważ azwa I 2C jest zarezerwowaa dla firmy Philips, w kotrolerach tych azywa się o Two Wire serial Iterface (TWI). Tabela. Przykładowe układy peryferyje z iterfejsem I2C. Symbol Firma Opis MCP236 Microchip Dodatkowy port wejść/wyjść (6 bitowy) MCP32 Microchip -bitowy przetworik A/C AT24C32 Atmel Pamięć EEPROM (32Kbit) AD582A Aalog Devices -bitowy przetworik C/A AD744 Aalog Devices -bitowy przetworik temperatury TDF8553J Philips Wzmaciacz mocy i regulator apięcia PCA955 Philips Uiwersaly sterowik LED.4.2 SMBus (System Meagemet Bus) Iterfejs SMBUS pod względem formy wysyłaia daych i topologii sieci jest idetyczy do Stadard Mode I2C jedakże moża wymieić kilka różic: Dla SMBus ie ma szybszych trybów pracy, maksymala częstotliwość pracy wyosi khz. Dla SMBus miimala częstotliwość sygału SCK (SMBCLK) wyosi khz oraz długość sygału wysokiego ie może przekroczyć określoego czasu (5μs) - takich waruków ie ma dla I2C Sygał SDA (SMBDAT) po zboczu opadającym a sygale SMBCLK ie może się zmieić przez 3s oraz musi być stabily 25s przed zboczem arastającym a SMBCLK. SMBus sygał ACK (logicze zero) musi wystąpić po każdym przesłaym bajcie. SMBus przewiduje przesyłaie a końcu, choć ie jest to koiecze, dodatkowego bajta sumy kotrolej Packet Error Code (PEC). Ia specyfikacja progów apięć dla zera i jedyki logiczej (Tabela.2). Nie ma restrykcji co do pojemości sieci, ale są określoe czasy arastaia i opadaia sygałów. Tabela.2 Specyfikacja elektrycza dla iterfejsu I2C i SMBus. I2C (Stadard Mode) Mi. Max. VIL -.5V.3VCC VIH.7VCC VCCmax+.5V SMBus 9 Mi. Max. -.8V 2.V 5.5V

.4.3 Serial Peripheral Iterface Bus (iterfejs opracoway przez firmę Motorola ) Właściwości iterfejsu SPI Do trasmisji używae są trzy sygały SCK (CLK)- serial clock, SDI (DI,SI) -serial data i, SDO (DO,SO) serial data out Trasmisja sychroicza odbywa się w takt sygału SCK (jede bit iformacji przypada a okres sygału SCK) Trasmisja daych jest full duplex, czyli może odbywać się w obu kierukach jedocześie liiami SDI i SDO Trasmisja jest typu master slave, z jedym masterem, który wymusza przepływ iformacji Sygały SDI, SDO i SCK są typowymi wejściami, wyjściami cyfrowymi SDO dla Slave'a przeważie jest bramką trójstaową SPI ma większą przepustowość iż I 2C przeważie do Mbit/s (może być więcej) Nie ma limitu przesyłaia daych do 8 bitowych słów Slave ie potrzebuje uikalego adresu, jest wybieray poprzez sygał /CS ( CS, /SS, SS, STE ) chip select Nie ma potwierdzeia poprawości trasmisji ( master może ie wiedzieć, że slave ie odbiera iformacji) Urządzeie typu slave używa sygału CLK mastera, który może być wykorzystay p. do taktowaia przetworika A/C SPI jest sprzętowo i programowo ajłatwiejszy do zrealizowaia Większość owych procesorów pojawiających się a ryku półprzewodików wyposażoych jest w hardware'owy iterfejs SPI oparty a rejestrze przesuwym (Rys..9), który może być skofiguroway jako master lub slave. Sygał MOSI (Master Output Slave Iput), gdy iterfejs skofiguroway jest jako master pełi role wyjścia, gdy skofiguroway jest jako slave pełi role wejścia. Sygał MISO (Master Iput Slave Output) pełi odwrote role. Master jest źródłem sygału clock a óżce SCL, slave pobiera te sygał do prawidłowego działaia rejestru przesuwego. Rys..9 Idea przesyłaia daych w iterfejsie SPI

Sposób łączeia wielu slave'ów w sieć SPI pokazao a rysukach obok. Gdy każdy z slave ów pełi różą role, wtedy łączymy je w sposób rówoległy. Master musi sterować komuikacją wybierając każde urządzeie osobym sygałem CS lub SS (Chip Select), który w większości jest aktywy sygałem iskim (logicze zero). Gdy mamy do czyieia z rozszerzeiami portów I/O lub sterowikami LED, które występują w ilości większej iż jede wtedy stosuje się strukturę połączeń szeregową wykorzystując właściwości rejestru przesuwego. Do wyboru układów w tym wypadku portów I/O, wykorzystuje się pojedyczy sygał Chip Select, a liczba bajtów wysyłaych przez procesor w jedym cyklu komuikacyjym jest pomożoa przez ilość układów występujących w połączeiu szeregowym. Iterfejs SPI może pracować w czterech różych trybach w zależości od bitów kofiguracyjych CPOL, CPHA występujących w rejestrze kotrolym SPCON (Rys.. i Rys..), w którym ustawiamy rówież czy kotroler jest masterem czy też slave'm oraz częstotliwość sygału SCK. Bit CPOL ustawia, które aktywe zbocze sygału SCK pojawia się jako pierwsze (CPOL= zbocze arastające, CPOL= zbocze opadające). Bit CPHA określa, kiedy pojawiają się dae a liii MOSI i MISO (CPHA= przed pierwszym zboczem SCK, CPHA po pierwszym zboczu). Układy peryferyje pracują w różych trybach pracy, dlatego program kotrolera, który obsługuje te układy zmuszoy jest to zmiay trybu pracy iterfejsu SPI przed każdym zapisem lub odczytem daych do i z daego urządzeia.

Rys.. Diagram przesyłaia daych dla iterfejsu SPI (CPHA=). Rys.. Diagram przesyłaia daych dla iterfejsu SPI (CPHA=). 2

Tabela.3 Przykładowe układy peryferyje z iterfejsem SPI. Symbol Firma Opis MAX4896 Maxim 8-bitowy port sterujący przekaźikami MAX73 Maxim 2-bitowy kofigurowaly port I//LED DS35 Maxim/Dallas Sem. Zegar czasu rzeczywistego M4T94 ST Zegar czasu rzeczywistego ADE7763 Aalog Devices Mierik eergii elektryczej 25LC256 Microchip 256kbit pamięć EEPROM AT45DB6 ATMEL 6Mbit pamięć Flash ( jak w kartach pamięci) Przykładem użycia iterfejsu SPI może być obsługa 8-kaałowego przetworika aalogowo-cyfrowego typu SAR firmy Microchip o rozdzielczości 2-bitów. By zaiicjować przetwarzaie określoego kaału pomiarowego oraz odczytać wyik pomiaru sterowik procesorowy musi wysłać 3 bajty daych w formacie jak a Rys..2. Bit SGL/DIFF określa czy pomiar będzie różicowy czy też odiesioy do masy aalogowej, a bity D2, D, D wyzaczają, który kaał aalogowy został wybray do pomiaru. Drugi i trzeci bajt przesłay z przetworika zawiera iformację o wyiku przetwarzaia. Co ciekawe, sygał SCL iterfejsu ie jest wykorzystyway przez przetworik tylko do komuikacji, ale rówież do taktowaia układu przetwarzaia. Obsługa przetworika może być zrealizowaa przez procesor firmy ATMEL AT89C5ED2, którego iterfejs SPI kofiguroway jest przez rejestr SPCON i SPSTA, a dae wysyłae i odbierae są przez rejestr SPDAT. Rys..2 Rejestry procesora AT89C5ED2 związae z iterfejsem SPI oraz zawartość ramki komuikacyjej z przetworikiem MCP328 Bity CPOL i CPHA w rejestrze SPCON określają tryb pracy iterfejsu SPI (w aszym przypadku,). SPR2, SPR i SPR wyzaczają wraz z kwarcem procesora 3

prędkość trasmisji. Flaga MSTR wyzacza, czy procesor będzie masterem czy slave'm. SPEN włącza iterfejs SPI, gdy bit ustawioy jest a. Hardware'owy iterfejs sam wysyła dae gdy SPEN= i program procesora zaiicjuje wpis do rejestru SPDAT daej, którą ależy wysłać. Gdy proces wysyłaia jest zakończoy, flaga SPIF w rejestrze SPSTA zostaje ustawioa i a jej podstawie może zostać zgłoszoe przerwaie od trasmisji SPI. Gdy koiec trasmisji 8-bitowej daej zostaie przez program zauważoy (odczyt rejestru SPSTA z SPIF=), flaga SPIF zostaie wyzerowaa automatyczie po odczytaiu rejestru SPDAT zawierającego daą przesłaą ze slave'a. Następie program może zaiicjować wysłaie kolejej daej. Poiżej przedstawioo przykłady fukcji apisaych w języku C obsługujących przetworik MCP328 z wykorzystaiem procesora AT89C5ED2 dla środowiska programistyczego Keil uvisio3. Fukcja kofigurująca iterfejs SPI: #defie mode <<2 #defie mode <<2 #defie mode2 2<<2 #defie mode3 3<<2 #defie master_spi x #defie slave_spi x #defie spi_eable x4 #defie spi_disable x #defie spi_clock_2 x #defie spi_clock_4 x #defie spi_clock_8 x2 #defie spi_clock_6 x3 #defie spi_clock_32 x8 #defie spi_clock_64 x8 #defie spi_clock_28 x82 sbit cs_mcp328 = x9; //pi P. jako chip select iic_spi_aalog_mcp328() { cs_mcp328 = ; SPCON = mode3 master_spi spi_clock_4 spi_disable; SPCON = mode3 master_spi spi_clock_4 spi_eable; } Poiżej przedstawioo fukcję iicjalizującą przetwarzaie przetworika, której argumetem jest liczba 8-bitowa określająca kaał przetwarzaia. Wyikiem działaia fukcji jest liczba 6-bitowa - rezultat przetwarzaia. usiged it aalog_pomiar(usiged char r_kaalu) { uio { usiged it s; usiged char buf[2]; }data pomoc; pomoc.s=x6 (r_kaalu<<7); 4

cs_mcp328=; SPDAT=pomoc.buf[]; while((spsta&x8)==){} ACC=SPDAT; SPDAT=pomoc.buf[]; while((spsta&x8)==){} pomoc.buf[]=spdat&xf; SPDAT=; while((spsta&x8)==){} pomoc.buf[]=spdat; cs_mcp328=; retur pomiar.s; } Ie układy oparte a iterfejsie SPI są obsługiwae według własej specyfikacji umieszczoej w otach aplikacyjych. Trzeba pamiętać, że mimo iż trasmisja odbywa się w obu kierukach jedocześie, bardzo często część daych dostarczaych do jak i odbieraych z układów ie ma istotego zaczeia w ich obsłudze..4.4 Iterfejs -Wire Iterfejs -Wire został opracoway przez firmę Dallas Semicoductor (teraz ależy oa do Maxim Corp.) Wszędzie tam, gdzie ie jest potrzeba szybka wymiaa iformacji, a z drugiej stroy wymagaa jest prosta kostrukcja o iskich kosztach istalacyjych tam moża zastosować urządzeia oparte a iterfejsie -Wire. Jest to dwukierukowy szeregowy protokół Half-Duplex. Trasmisja odbywa się a jedym przewodzie ( masa oczywiście też musi być poprowadzoa jako potecjał odiesieia). W sieci -Wire jest jede Master i jede lub więcej Slave'ów. Każdy Slave ma swoje ID-umer idetyfikacyjy złożoy z 48-bitów umeru urządzeia, 8-bitów określających rodzię urządzeń, 8-bitów sumy kotrolej. Trasmisja oparta jest a tak zwaym slocie czasowym iicjowaym przez Mastera (trasmisja sychroicza). Wyróżiamy dwie prędkości trasmisyje: 5,4kb/s stadard, 25kb/s - overdrive. Iterfesjem -Wire obsługiwae są różego rodzaju czujiki, łącziki. Sieć -Wire może mieć długość do 2m (waga sieci). Jedyka logicza a liii wytwarzaa jest poprzez rezystor pull-up podłączoy do apięcia zasilaia przy braku wysterowaia trazystora mastera i trazystorów slave'ów. Zero a liii występuje gdy jede z trazystorów jest wysteroway (Rys..3). Układy slave mogą być zasilae poprzez liię trasmisyją (do trasmisji i zasilaia potrzebe są tylko dwa przewody- pierwszy to przewód sygałowy drugi to przewód GND). Rys..4 pokazuje rozpływ prądów przy staie wysokim liii (a zieloo) i przy staie iskim liii (a czerwoo). Gdy układy peryferyje ie mogą być zasilae przez liię trasmisyją wtedy prowadzoy jest trzeci przewód zasilający. 5

Rys..3 Kofiguracja sieci - Wire wraz ze strukturą wewętrzą układów. Rys..4 Rozpływ prądów dla układu zasilaego z sieci trasmisyjej -Wire. W iterfejsie -Wire każda wymiaa iformacji zaczya się od sekwecji resetu (Rys..5) iicjowaej przez mastera (wystawiaie zera logiczego a liie 6

o określoym czasie). Każdy slave w sieci odpowiada swoją sekwecją resetu. Po prawidłowo przeprowadzoym resecie liii master rozpoczya komuikację iicjując każdą sekwecje zapisu lub odczytu pojedyczego bitu od wystawieia a liii zera logiczego a czas t (trasmisja sychroicza). Następie jeżeli zapisuje bit do slave'a to przedłuża sygał iski do czasu t3 lub przestaję sterować swoim wewętrzym trazystorem powodując, że a liii pojawi się jedyka logicza. Gdy bit jest odczytyway trazystor mastera po czasie t przestaje być aktywy, a sygał z liii testoway jest przez układ logiczy po czasie t5. Slave wystawia do tego czasu zero a liii poprzez swój trazystor gdy odczytyway bit ma być '' lub pozostawia trazystor w staie ie aktywym gdy ma być ''. Specyfikacja iterfejsu -Wire dokładie określa zakresy poszczególych czasów stau liii dla sekwecji resetu, zapisu i odczytu. Zostały oe przedstawioe w dalszej części opracowaia (Tabela.4). Rys..5 Sekwecje resetu, zapisu i odczytu a liii -Wire. 7

Tabela.4 Czasy określające sekwecje resetu, zapisu o odczytu a liii trasmisyjej dla iterfejsu -Wire. μs Tryb pracy miimaly zalecay maksymaly t stadard 5 6 5 overdrive,5,85 t2 stadard 59 64 /a overdrive 7,5 7,5 /a t3 stadard 6 6 2 overdrive 7 7,5 4 t4 stadard 8 /a overdrive 2,5 2,5 /a t5 stadard 5 9 2 overdrive,5,75,85 t6 stadard 5 55 /a overdrive 6,75 7 /a t7 stadard overdrive 2,5 2,5 /a t8 stadard 48 48 64 overdrive 68 7 8 t9 stadard 63 7 78 overdrive 7,2 8,5 8,8 t stadard 4 4 /a overdrive 39,5 4 /a Przykładowe procedury obsługujące iterfejs -Wire dla procesora AT89C5 w języku C przedstawioo poiżej: sbit liia_o_wire = P_; bit reset_oe_wire() { bit test; liia_oe_wire=; opz_t8(); liia_oe_wire=; opz_t9(); test=~liia_oe_wire; opz_t(); retur test; } zapis_oe_o_oe_wire() { liia_oe_wire=; opz_t(); liia_oe_wire=; opz_t2(); } zapis_zero_o_oe_wire() { liia_oe_wire=; opz_t3(); liia_oe_wire=; opz_t4(); } bit odczyt_liia_oe_wire() { bit test; liia_oe_wire=; opz_t(); liia_oe_wire=; opz_t5(); test=liia_oe_wire; retur test; } 8

zapis_byte(usiged char daa) { usiged char i; for(i=;i<8;i++) { if(daa & x) { zapis_oe_o_oe_wire(); } else zapis_zero_o_oe_wire(); daa=daa>>; } } usiged char odczyt_byte() { usiged char i,daa; for(i=;i<8;i++) { daa=daa>>; if(odczyt_oe_o_oe_wire()) { daa=daa x8; } } retur daa; } Fukcja reset_oe_wire() geeruje sekwecje resetu a liii -Wire. Wartością zwracaą przez fukcję jest flaga, która przyjmuję wartość,gdy slave odpowiedział swoją sekwecją resetu i w przeciwym wypadku. Fukcja zapis_byte(usiged char daa) geeruje sekwecję zapisującą argumet 8-bitowy bez zaku do slave a. Wykorzystuje oa procedury zapis_oe_o_oe_wire() i zapis_zero_o_oe_wire(). Fukcja usiged char odczyt_byte() wywołuje sekwecję odczytu 8-bitowej zmieej bez zaku, a astępie zwraca tą zmieą w postaci wyiku procedury. Fukcja ta wykorzystuje procedurę bit odczyt_liia_oe_wire(). Każdy pakiet trasmisyjy w stadardzie -Wire składa się z trzech etapów (Rys..6): RESET resetu liii (master) i odpowiedzi slave'a a reset ROM COMMAND (Tabela.5) istrukcji wysyłaej przez Mastera związaej z idetyfikacją sleve'a FUNCTION COMMAND istrukcji związaej z fukcjoowaiem Slave'a Rys..6 Pakiet trasmisyjy -Wire. 9

Tabela.5 Kody i opisy Rom Fuctio Commads. Nazwa fukcji Opis fukcji (Rom Fuctio Commads) Read Rom [33H] Wywołaie tej fukcji pozwala Masterowi odczytać ID urządzeia a liii, które zawiera 8-bitów kodu rodziy urządzeń, 48-bitów umeru seryjego i 8-bitów bajta kotrolego CRC. Na liii powiie zajdować się tylko jede Slave. Match Rom[55H] Wywołaie tej fukcji pozwala Masterowi wybrać urządzeie a liii poprzez podaie 64-bitowego ID. Skip Rom [CCH] Wywołaie tej fukcji pozwala Masterowi zaadresować (wybrać) wszystkie urządzeia a liii. Często używaa gdy mamy tylko jede Slave a liii i obsługujemy go bez używaia ID lub gdy mamy urządzeia tego samego typu i zadajemy tą samą operacje dla wszystkich Slave'ów p. start kowersji dla przetworików A/C Search Rom [FH] Wywołaie tej fukcji pozwala Masterowi a zajdowaie ID urządzeń podłączoych do liii, wykorzystując specjaly algorytm. Algorytm wyzaczaia ID urządzeń a liii -Wire (po wywołaiu fukcji Search Rom - FH ) składa się z trzech etapów określających pojedyczy bit ID: Każde z aktywych urządzeń wysyła a liię swój ( kolejy ) bit ID ( licząc od ajmłodszego ). Master zapisuje sta liii. Następie urządzeia wysyłają komplemetarą wartość tego bitu. Master zapisuje sta liii. Master aalizuje zapisae dwa bity. Na tej podstawie może określić jakie są bity ID poszczególych urządzeń: - są aktywe urządzeia a liii, które mają day bit ID rówy i są takie, które mają day bit ID rówy - są tylko aktywe urządzeia a liii, które mają day bit ID jako - są tylko aktywe urządzeia a liii, które mają day bit ID jako - ie ma aktywych urządzeń a liii Master, po przeaalizowaiu tych daych wysyła a liię bit, który określa urządzeia pozostające aktywe a liii ( - urządzeia, które mają a daej pozycji ID, - urządzeia, które mają a daej pozycji ID). Następie kroki te są powtarzae dla astępego bitu ID. Niżej przedstawioo przykład zachowaia się slave ów w algorytmie odczytu ID fukcją Search Rom. W sieci -Wire mamy procesor - master oraz cztery urządzeia slave o adresach ID, których sześć ajmłodszych bitów przedstawioo w tabeli. Adres urządzeia Adres urządzeia 2 Adres urządzeia 3 Adres urządzeia 4............... bit5 bit4 bit3 bit2 bit bit Po wysłaiu a liię kodu FH, każdy ze slave ow wystawia a liii swój ajmłodszy bit. Poieważ wartość jest wartością domiującą odczyt z liii -Wire też będzie gdyż trzy urządzeia mają taką wartość a pozycji bit. Następie slave y wysyłają a liie komplemetarą wartość pierwszego bitu. Slave 4 ustawia liię a 2

wartość. Master po kroku i 2 wie, że a liii zajdują się urządzeia o różych wartościach bitu a tej pozycji. W trzecim kroku wystawia a liię co powoduje, że slave r 4 w dalszej części algorytmu ie będzie brał udziału, gdyż przeszedł w sta ieaktywy. Powtarzae jest to dla kolejych bitów ID. Po przeaalizowaiu bitu r 3, a liii zastaje aktywy tylko slave r 3. Master przeprowadza algorytm dla pozostałych bitów ID, wyzaczając cały adres urządzeia r 3. Następie może wysłać poowie kod fukcji Search Rom i przy bicie r 3 w kroku 3 wystawić co spowoduje, że a liii zostaie aktywy tylko slave r 2, itd. Krok Slave Slave 2 Slave 3 Slave 4 Master Liia -Wire bit 2 3 bit 2 3 bit2 2 3 bit3 2 3 bit4 2 3 Dla każdego rodzaju urządzeia w stadardzie -Wire stworzoo ie fukcje FUNCTION COMAND. Przykładowo, dla układu DS8S2 opis tych fukcji przedstawioo w tabeli (Tabela.6). DS8S2 jest scaloym czujikiem temperatury stworzoym przez firmę Dallas Semicoductor Maxim. Jest to termometr, który steroway jest za pomocą mikrokotrolera przez magistralę -Wire. Układ DS82 może być podłączoy do mikrokotrolera za pomocą dwóch lub trzech przewodów: masy (GND), liii daych (DQ) i liii zasilającej (VDD) koieczej w przypadku wykorzystywaia wewętrzej pamięci EEPROM. Najbardziej rozbudowaa wersja termometru prócz pamięci Scrachpad (dwa bajty pomierzoej temperatury, dwa bajty temperatury alarmowej, rejestru kofiguracyjego, trzech rejestrów z przezaczeiem w przyszłych rozwiązaiach oraz rejestru sumy kotrolej), posiada pamięć EEPROM, która przechowuje kopie temperatury alarmu i rejestru kofiguracyjego (Rys..7). Rejestr kofiguracyjy wyzacza poprzez bity R i R dokładość pomiaru przetworika (, 9-bitowy,, 2-bitowy). Najprostsza wersja ie posiada pamięci EEPROM i a stałe skofigurowaa jest jako przetworik 9-bitowy. Temperatura w rejestrach temperatury wyrażoa w stopiach Celsjusza w formie moduł zak (Rys..8). Tabela.6 Fukcje Commad dla układu DS8B2 Fuctio Commad Covert T Write Scrachpad Read Scrachpad Copy Scrachpad Hex 44H 4EH BEH 48H ReCallE2 B8H Read Power Supply B4H Opis fukcji Rozpoczya kowersję temperatury Kopiuje 3 bajty do pamięci Srachpad Odczytuje 9 bajtów z pamięci Scrachpad Kopiuje 3 bajty pamięci Scrachpad do pamięci EEPROM Kopiuje 3 bajty pamięci EEPROM do pamięci Scrachpad Pozwala określić czy slave zasilay jest zliii Wire, czy z óżki VDD 2

Sekwecje a liii -Wire, jakie muszą być wywołae przez mastera by dokoać pomiaru temperatury przez układ DS8B2, pokazae zostały a (Rys..9 i Rys..2). Rys..7 Odwzorowaie pamięci Scrachpad oraz EEPROM układu DS8S2 Rys..8 Odwzorowaie pomiaru temperatury dla układu DS8B2 Rys..9 Sekwecja a liii -Wire geerowaa przy pomiarze temperatury, gdy a liii jest tylko jede układ DS8B2 Rys..2 Sekwecja a liii -Wire geerowaa przy pomiarze temperatury, gdy a liii jest wiele układów w tym DS8B2. 22

Przykład programu w języku C dla procesora AT89C5 obsługującego układ DS8B2 ( układ jest jedyym urządzeiem a liii -Wire) : #defie skip_rom #defie match_rom #defie covert_t #defie read_scrachpad #defie write_scrachpad xcc x55 x44 xbe x4e sbit liia_oe_wire = x9; bit kowersja; usiged char data scrachpad[9]; usiged char data i; if(kowersja) { zapis_byte(skip_rom); zapis_byte(covert_t); }.. if(kowersja) { kowersja=; if(reset_oe_wire()) { zapis_byte(skip_rom); zapis_byte(read_scrachpad); for(i=;i<9;i++) scrachpad[i]=odczyt_byte(); } kowersja=reset_oe_wire(); Tabela.7 Przykładowe układy peryferyje z iterfejsem -Wire. Symbol Firma Opis DS243 Maxim/Dallas Sem. Podwójy port I/O DS276 Maxim/Dallas Sem. Układ adzorujący baterię Li + DS247 Maxim/Dallas Sem. Zegar czasu rzeczywistego DS28EC2 Maxim/Dallas Sem. 2kbit pamięci EEPROM DS245 Maxim/Dallas Sem. 6-bitowy przetworik A/C DS2423 Maxim/Dallas Sem. 4kbit pamięci RAM DS289 Maxim/Dallas Sem. Cyfrowy potecjometr.5 Magistrale i protokoły komuikacyje wykorzystywae do wymiay iformacji w sieciach sterujących adzorujących i rejestrujących dae procesowe Do komuikowaia się sterowików procesorowych w różego rodzaju sieciach przez wiele lat wykorzystywao tylko i wyłączie protokoły komuikacyje oparte a iterfejsie UART. Wykorzystując te iterfejs wprowadzoo stadardy RS232, RS422 oraz RS485, które pozwoliły a przesyłaie daych a duże odległości. UART oraz RS485 wykorzystuje większość zaych protokołów komuikacyjych (Profibus firmy 23

Siemes, Modbus firmy Modico). Zwiększoe wymagaia co do pewości przesyłaia iformacji spowodowały, że powstały owe iterfejsy: CAN i LIN, których promotorem jest przemysł samochodowy. Z drugiej stroy powszechość sieci iteretowej spowodowała, że coraz więcej producetów sterowików wykorzystuje to medium do przesyłaia daych wykorzystując owe protokoły lub stosując zmodyfikowae stadardy (Modbus TC/IP). W opracowaiu tym uwzględioo tylko część tych zagadień, które moża zaaplikować w większości 8, 6 czy 32-bitowych mikrokotrolerach..5. UART Trasmitter Uiversall Asychroous Reseiver ad UART jest to asychroiczy port szeregowy służący wymiaie daych między procesorami lub urządzeiami zawierających procesory. Charakteryzuje się wysyłaiem iformacji w formie paczek (daa) 7-bitowych ( tryb ASCII ) lub 8-bitowych ( jede bajt ), sychroizowaych bitem startu ( zero logicze ) i kończących się lub 2 bitami stopu ( jedyka logicza ) - jest też opcja bitu stopu o długości.5 bitu. Dla sprawdzeia poprawości iformacji moża wysyłać ( opcja ) dodatkowy bit mówiący o liczbie parzystej ( EVEN ) lub ieparzystej ( ODD ) jedyek w polu daych włączając w to rówież bit parzystości. Urządzeia komuikujące się między sobą mają ustawioą zawsze taką samą szybkość trasmisji (czas trwaia pojedyczego bitu). Pozwala to a poprawe odczytaie daych. Dae a liii są testowae trzy razy w chwili gdy przewidyway jest stabily sta bitu (Rys..2). Wartość odczytaa przyjmowaa jest za taką, która wystąpiła przyajmiej dwa razy. Szybkości trasmisji ajczęściej używae to 24, 48, 96, 92, 384, 576, 52 bodów. Rys..2 Format daej wysyłaej po iterfejsie UART Prawie wszystkie sterowiki mikroprocesorowe zawierają jede lub więcej hardware owych iterfejsów UART. Rejestry kotrole tego iterfejsu ustalają tryb pracy i szybkość trasmisji. Przykładowo procesory AVR firmy ATMEL posiadają pięć rejestrów kofigurujących UART (Rys..22) oraz rejestr UDR daych odbieraych 24

(tylko odczyt) i daych wysyłaych (tylko zapis). Układ te zawiera prócz rejestrów przesuwych wyjściowego i wejściowego, dwuelemetowy bufor odbiorczy i pojedyczy bufor trasmisyjy. W rejestrze UCSRA bit RXC= ozacza, że w buforze odbiorczym zajdują się ieodczytae dae. TXC= iformuje, że dae wpisae do bufora adawczego zostały wysłae (bufor adawczy oraz rejestr przesuwy związay bezpośredio z liią trasmisyją są puste). UDRE= ozacza, że bufor adawczy jest pusty (rejestr przesuwy może jeszcze zawierać dae wysyłae). Bity FE (Frame Error-bit stopu o ieprawidłowej wartości) i PE (Parity Error bit parzystości o ieprawidłowej wartości) określają czy ie wystąpiły błędy przy odbiorze daej zajdującej się w buforze odbiorczym. DOR= ozacza, że bufor odbiorczy był zapełioy ( dae ie zostały odczytae ) i astąpiło przepisaie owej dae z rejestru przesuwego do bufora przez co jede bajt iformacji został utracoy. U2X włącza podwóją szybkość trasmisji, a MPCM tryb pracy wieloprocesorowej. W rejestrze UCSRB bity RXCIE, TXCIE i UDRIE uaktywiają przerwaia od bitów RXC, TXC i UDRE. Bity RXEN i TXEN włączają układ odpowiedio odbiorczy i adawczy iterfejsu. RXB8 i TXB8 wyzaczają dziewiąte bity przy trasmisji 9-bitowej. RXB8 musi być odczytay przed odczytem UDR, a TXB8 zapisay przed zapisem do UDR. Bity UCSZ2.. wyzaczają długość zaku w trasmisji ( może być ustawioa od 5 do 9 bitów). Bity UPM.. określają, czy jest aktywa opcja wysyłaia bitu parzystości i w jakiej formie. USBS określa liczbę bitów stopu (-jede, -dwa). UMSEL i UCPOL wyzaczają tryb pracy w formie sychroiczej. Rejestry UBBRH i UBBRL wyzaczają wraz z zegarem systemowym procesora szybkość trasmisji. W iych procesorach iych producetów rejestry kofigurujące iterfejsu UART wyglądają iaczej, ale moża w ich ustawić takie same opcje działaia. Rys..22 Rejestry związae z iterfejsem UART w procesorach AVR 25

Na rysukach poiżej przedstawioo trzy typowe sposoby wykorzystaia iterfejsu UART w systemach wymiay daych. Procesor A i B zajdują się w tym samym urządzeiu sterującym, wymiaa iformacji odbywa się a iewielką odległość. Liie trasmisyje zasilae są przez procesory mające to samo źródło zasilaia. Trasmisja Full-Duplex. Poziomy logicze sygałów są w stadardzie TTL lub CMOS. Procesor wymieia iformację z iym układem (poit-to-poit), który może zajdować się awet m. od iego. Wykorzystuje liie trasmisyje zasilae z iego źródła przeważie (+V,V,-V) stadard RS232. Poziomy logicze są ie iż TTL/CMOS. Trasmisja Full-Duplex. Procesor wymieia iformację z iymi układami, a duże odległości. Liia trasmisyja składa się z dwóch sygałów A i B (jest dwukierukowa, ale w daej chwili czasowej odbywa się tylko w jedą stroę Half-Duplex, zero i jedyka logicza określaa jest a podstawie różicy potecjałów sygałów A i B). Stadard RS485. 26

Stadard RS232 ( Recommeded Stadard ) opracowao w 962 a zleceie stowarzyszeia producetów elektroiki w USA, chcąc ujedolicić parametry sygałów i kostrukcję urządzeń do wymiay daych cyfrowych w sieci telefoiczej (połączeia DTE -Data Termial Equipmet- komputer z DCE- Data Commuicatio Equipmet- modem). RS232C pozwala a przesyłaie daych z szybkością do 2kbit/s a odległość do 5m. Często w systemach procesorowych wykorzystuje się tylko dwa sygały RxD i TxD do wymiay iformacji. W stadardzie RS232 jedykę logiczą defiiuje się jako apięcie od -5V do -3V a sygale trasmisyjym, a zero logicze od +3V do +5V. Napięcie a liii ie może przekroczyć wartości powyżej +25V i poiżej -25V. Tabela.8 Preferowaa maksymala prędkość trasmisji w zależości od długość kabla trasmisyjego RS232 Szybkość trasmisji 92 bit/s 96 bit/s 48 bit/s 24 bit/s Maksymala długość połączeia 5 m 5 m 3 m m Rys..23 Sposób łączeia dwóch urządzeń w stadardzie RS232. 27

Tabela.9 Opis wyprowadzeń złącza DB9 typu żeńskiego dla stadardu RS232 Numer 2 3 4 5 6 7 8 9 Kieruek Ozaczeie Nazwa agielska DCE->DTE DCD Data Carrier Detected DCE->DTE RxD Receiver Data DCE<-DTE TxD Trasmit Data DCE<-DTE DTR Data Termial Ready GND Groud DCE->DTE DSR Data Set Ready DCE<-DTE RTS Request to Sed DCE->DTE CTS Clear to Sed Data DCE->DTE RING Rig idicator Nazwa polska Sygał wykrycia ośej Odbiór daych Trasmisja daych Gotowość termiala Masa Gotowość modemu Żądaie wysyłaia Gotowość wysyłaia Wskaźik dzwoka Rys..24 Przykład rejestracji oscyloskopem a liii RS232 RS485- stadard komuikacyjy wykorzystujący różicowy dwuprzewodowy adajik i taki sam odbiorik. Umożliwia podłączeie stadardowo do 32 adajików i odbiorików. Opracowao go dla lepszego (odporość a zakłóceia) i szybszego przesyłu daych (35 Mbit/s a odległość do m, kbit/s do 2m). Stosując przewód trasmisyjy w postaci skrętki moża wyelimiować wpływ większości zakłóceń elektromagetyczych. RS485 jest ajczęściej stosowaym iterfejsem przewodowym w sieciach przemysłowych. Na jego bazie opracowao wiele protokołów komuikacyjych. 28

Liia trasmisyja a obu końcach zakończoa jest termiatorem R=2Ω, jedakże ie zawsze jest to potrzebe. Sygały wykorzystywae do sterowaia iterfejsem RS485: DE- Driver Output Eable sygał zezwalający a wysyłaie a liię DI - Driver Iput tym sygałem procesor wysyła dae a liię /RE- Receiver Output Eable - sygał zezwalający a odbiór RO- Receiver Output te sygał przekazuje sta liii Sygał a liii RS485 odczytyway jest jako trasmitowaa logicza jedyka gdy potecjał liii A jest większy o 2mV od potecjału liii B. Zero logicze realizowae jest gdy potecjał liii B jest większy o 2mV od potecjału liii A (Rys..25). Rys..25 Przykład przebiegu sygałów a liii A i B przy wysyłaiu daej (RS485) Rys..26 Przykład kofiguracji sieci opartej a RS485 (N- adajik, O- odbiorik, Rt- rezystor termiatora) 29

.5.2 MODBUS ( protokół trasmisyjy ) W 979r firma Modico wprowadziła a ryek owy protokół wymiay iformacji w systemach automatyki przemysłowej. System został uzay za stadard iżyierski przez wielu producetów sterowików przemysłowych. Umożliwia o asychroiczą szeregową wymiaę iformacji pomiędzy urządzeiami systemów pomiarowo kotrolych, komuikacji sterowików programowalych PLC itp. Obecie istieją trzy rodzaje protokołu Modbus: Modbus ASCII oparty a warstwie sprzętowej RS232/RS485 warstwa fizycza Modbus RTU oparty a warstwie sprzętowej RS232/RS485 warstwa fizycza Modbus TCP/IP oparty a warstwie sprzętowej łącza Etheretowego warstwa fizycza Pierwszy z ich jest obecie rzadko wykorzystyway gdyż, oparty jest a wysyłaiu daych w postaci zaków tekstowych ( kod ASCII ) co jest iewygode dla mikroprocesorów i mało wydaje. Drugi, opisay w dalszej części wykładu został zaaplikoway w wielu sterowikach programowalych oraz falowikach i jest powszechie używay. Modbus TCP/IP wykorzystuje format daych wysyłaych jak w Modbus RTU tylko zaaplikoway w stadardową ramkę protokołu TCP/IP i staowi jego alteratywę. W związku z coraz większą popularością Etheretu zaczya być coraz częściej wykorzystyway. Protokół komuikacyjy MODBUS jest protokołem z jedym masterem iicjującym wymiaę iformacji ze slave'ami. Opiera się a rozkazach, które powodują zapis lub odczyt do różych obszarów pamięci slave a. Na każdy wysłay rozkaz przez mastera zaadresoway slave powiie odpowiedzieć albo potwierdzeiem, albo przesłaiem daych. Rys..27 Ruch a liii trasmisyjej MODBUS RTU. Wyróżiamy cztery obszary pamięci (Rys..28), które mogą być skofigurowae w urządzeiu typu slave: Pamięć Wyjść określa sta wyjść wykoawczych przekaźików ( Coil cewka ), który moża ustawiać i odczytywać. Pamięć wejść cyfrowych określa sta wejść urządzeia, który moża tylko odczytać. Pamięć rejestrów Iput (wejściowych), którą moża tylko odczytać. Zawiera oa p. dae pomiarowe lub dae procesowe iezależe od Mastera 3

Pamięć rejestrów Holdig (przechowujących), którą moża zapisywać i odczytywać. Zawiera oa p. dae procesowe zadawae przez Mastera (prędkość realizowaa przez falowik) Z każdą z tych pamięci związae są określoe fukcje, którym przypisae odpowiedie kody. Rys..28 Obszary pamięci w protokole MODBUS Wszystkie wejścia i wyjścia są zmieymi bitowymi, atomiast rejestry są daymi 6-bitowymi. Protokół Modbus RTU oparty jest a formacie ramki trasmisyjej pokazaej a (Tabela.). Ramka zawiera : Zaczik początku, który jest jedocześie zaczikiem końca ramki poprzediej, która pojawiła się a liii trasmisyjej ( cisza trasmisyja o długości mi. 3,5 zaku przeważie przyjmuje się 4 zaków). Adresu Slave'a (8 bitów) w zakresie od do 247 (adres zarezerwowao dla Mastera). Kodu fukcji, który określa czy dae do daego obszaru pamięci będą zapisywae czy odczytywae. Dae, w których zawarty jest adres, długość daych oraz same dae Suma kotrola Cyclikal Redudacy Check (CRC), która jest liczoa z wcześiej przesłaych bajtów w ramce. Tabela. Forma ramki protokołu Modbus RTU Zaczik Adres początku slave a T-T2-T3-T4 8- bitów Kod fukcji 8-bitów Dae CRC suma Zaczik kotrola końca N x 8-bitów 6 - bitów T-T2-T3-T4 Elemety poszczególych pamięci ideksujemy od do 65536, ale adresujemy od do 65535. Dlatego jeżeli chcemy p. odczytać rejestr r to musimy podać adres 99. W czasie przesyłaia ramki cisza a liii między poszczególymi bajtami ie może być dłuższa iż,5 zaku, gdyż będzie to błąd trasmisji (Rys..27). Opis fukcji komuikacyjych protokołu Modbus RTU: Fukcja ( H ) Read Status Coil odczytać sta wyjść przekaźikowych. Jeżeli odczytao to przekaźik załączoy ( - wyłączoy ).W przykładzie poiżej odczytujemy sta 37 wyjść od r 2. 3

Master: Slave: Fukcja 2 ( 2H ) Read Iput Status odczytać sta wejść logiczych daego urządzeia. Jeżeli odczytao to a wejściu jest sta wysoki ( - sta iski ). W przykładzie odczytujemy sta 22 wejść od r 97. Master: Slave: Fukcja 3 ( 3H ) Read Holdig Registers odczytać zawartość rejestrów przechowujących. Fukcja podaje adres początkowy do odczytu i liczbę rejestrów do odczytu. W przykładzie odczytujemy 3 rejestry od r 8. Master: Slave: 32

Fukcja 4 ( 4H ) Read Iput Registers odczytać zawartość rejestrów wejściowych. Fukcja podaje adres początkowy odczytu i liczbę rejestrów do odczytu. W przykładzie odczytujemy jede rejestr o r 9. Master: Slave: Fukcja 5 ( 5H ) Force Sigle Coil ustaw pojedycze wyjście przekaźikowe o określoym umerze. Jeżeli w polu daych jest FFH ustawiamy a załącz, gdy H ustawiay a wyłącz. W przykładzie ustawiay wyjście o r 73 a załącz. Master: Slave: Fukcja 6 ( 6H ) Preset Sigle Register zapisz pojedyczy rejestr daą. Fukcja podaje adres rejestru i daą do zapisu. W przykładzie zapisujemy rejestr o r 2 wartością 3. Master: 33

Slave: Fukcja 8 ( 8H ) Diagostic. W zależości od Kodu fukcji diagostyczej, może zwracać iformacje o staie działaia urządzeia Slave p. wartości liczika iepoprawie odebraych ramek. W przykładzie wywołao fukcje zwrotu daej wysłaej, dlatego odpowiedź jest idetycza. Master: Slave: Przykładowe kody fukcji diagostyczej to: H Retur Querty Data 2H Retur Diagostic Register 4H Force Liste Oly Mode BH Retur Bus Message Cout CH - Retur Bus Commuicatio Error Cout Fukcja 5 ( FH ) Force Multiple Coil ustaw wyjścia przekaźikowe od określoego umeru. Jeżeli w polu daych jest a daej pozycji to załączamy wyście, a gdy to wyłączamy. Master: 34

Slave: Fukcja 6 ( H ) Preset Multiple Registers zapisz rejestry daymi. Fukcja podaje adres pierwszego rejestru, liczbę rejestrów i dae do zapisu. W przykładzie zapisujemy 2 rejestry od r 2 wartościami i 258. Master: Slave: Gdy slave wykryje błąd trasmisyjy lub błąd wyikający z ieprawidłowego zakresu pamięci (p. zapis do ieistiejącego rejestru Holdig) wysyła ramkę która zawiera w sobie : adres slave a, kod fukcji + 8H, kod błędu, sumę kotrolą. Przykład pokazay poiżej dotyczy fukcji 6 przedstawioej wcześiej. Kod błędu określa zły adres rejestru. Adres slave a H Kod fukcji H+8H=9H Kod błędu 2H CRC MSB LSB xx xx Przykładowe kody błedu: H Illegal Fuctio 2H Illegal Data Adress 3H Illegal Data Value 6H Slave Device Busy W.6 przedstawioo przykłady fukcji w języku C liczących sumę kotrolą dla protokołu MODBUS ASCII oraz MODBUS RTU..5.3 CAN- Cotroller Area Network CAN to szeregowy, asychroiczy, multi-master (czyli każdy elemet podłączoy do sieci ma takie same prawa) protokół i iterfejs komuikacyjy służący do przesyłu daych w aplikacjach przemysłowych. 35

Właściwości protokołu: Oparty jest a wiadomościach i ich priorytetach Zapewia elastyczość systemu Każde urządzeie podłączoe do sieci ma takie same prawa (multi-master) Gwaratuje wysoką sychroizację urządzeń Zapewia detekcje i sygalizację błędów Zapewia automatyczą poową trasmisję daych po odbiorze błędu Pozwala a odróżiaie błędów zakłóceiowych (chwilowych) od tych związaych ze złym działaiem urządzeń i wyłączaie tych urządzeń Może działać w dwóch trybach adresowych stadard i exteded Trasmisja może odbywać się awet do szybkości bodów Praca ad CAN polegała a tym by wypracować sposób przesyłaia daych, który zapewia ajwiększe prawdopodobieństwo przesyłaia ieziekształcoych iformacji i atychmiastowe powtórzeie trasmisji jeżeli a liii trasmisyjej CAN wystąpią błędy. Prawdopodobieństwo ie wykrycia błędu w tym protokole jest miimale i wizualizuje je astępujący przykład. Nierozpozaie błędu trasmisyjego może wystąpić jede raz a lat przy trasmisji 5 kilobodów, pracy sieci 8 godzi dzieie przez 365 di w roku i występującym błędzie a liii co,7 sek. CAN jest protokołem warstwowym. Od stroy sterowika CAN składa się z warstwy fizyczej i warstwy daych. Każda z tych warstw jest bardzo rozbudowaa i składa się z kilku elemetów (Rys..29). Rys..29 Warstwa fizycza i warstwa daych protokołu Ca. Warstwa fizycza. Sieć CAN oparta jest przeważie a kablu typu skrętka (dwie żyły sygałowe plus masa) i traceiver ach geerujących sygały CAN_H i CAN_L. Na końcach liii jak w przypadku RS485 są termiatory rezystory o rezystacji w okolicach 2Ω. Sterowik CAN ma dwa sygały TX i RX. Pierwszy służy do wymuszaia stau a liii, drugi do testowaia liii rówież w trakcie wysyłaia daych. Umożliwia to aalizowaie czy trasmisja przebiega prawidłowo i szybkie reagowaie a błędy. 36

Rys..3 Przykład sieci dla protokołu CAN. Rys..3 Złącze DB9 w stadardzie CAN. Tabela. Wartości prędkości trasmisji CAN w stosuku do długości sieci Prędkość trasmisji [kbit/sek] 5 25 25 62,5 Długość liii trasmisyjej [m]...3 3.. 25 25 5 5 Tabela.2 Preferowae grubości kabli trasmisyjych w zależości od liczby węzłów i długości sieci CAN Długość liii/ liczba wezłów m 25m 5m 32 64,25mm2,34mm2,75mm2,25mm2,5mm2,75mm2,25mm2,5mm2,mm2 W trasmisji CAN występuje Noe-Retur-to-Zero Codig ( NRZ ) - ie ma zboczy w trakcie trwaia pojedyczego bitu. Wyróżiamy w tym kodowaiu sta Domiat (domiujący), który określa sygał logiczy '' (w stadardzie TTL V37

,4V, dla liii CAN różica potecjałów a CAN_H i CAN_L około 2V większa iż.9v) oraz sta Recessive, który określa sygał logiczy '' (w stadardzie TTL 2,4V-5V, a liii CAN różica potecjałów a CAN_H i CAN_L około V- ie większa iż.5v)(rys..32). Gdy liia jest w staie spoczyku to jest a iej sta logiczy. Rys..32 Kodowaie bitów a liii CAN Czas trwaia pojedyczego bitu jest pochodą pewego odcika czasu (kwatu) zwaego TIME QUANTUM ozaczoego tq. Na podstawie tq budoway jest BIT TIME (max 25 tq), który składa się z 4 segmetów: SYNC_SEG tq, służy do sychroizowaia urządzeń w sieci PROP_SEG tq do 8 tq, służy do kompesowaia opóźień w sieci PHASE_SEG tq do 8 tq, służy do kompesowaia błędów fazowych wydłużając czas bitu PHASE_SEG2 tq do 8 tq, służy do kompesowaia błędów fazowych skracając czas bitu. Rys..33 Defiicja czasu pojedyczego bitu dla trasmisji CAN Takie podejście pozwala sychroizować urządzeia w sieci bez dodatkowego sygału zegara oraz wyzaczyć momet próbkowaia sygału odbieraego gdy 38

prawdopodobieństwo odczytaia poprawej wartości bitu jest ajwiększe. Przy każdym zboczu, gdy po bicie recesywym astępuje bit domiujący realizowae jest poowe sychroizowaie urządzeń w stosuku do sygału adawaego. Wszystkie elemety kofigurujące czas bitu jak: PROG_SEG, PHASE_SEG, PHASE_SEG2 oraz RJW (Resychroizatio Jump Width) służą do kompesowaia opóźień czasowych trasmisji. Określa je projektat sieci CAN po uwzględieiu: Długości i topologii liii Opóźień wprowadzaych przez liię Opóźień trasceiver a Opóźień układów izolacji galwaiczej, jeżeli taka występuje Możliwej różicy częstotliwości kwarców urządzeń. Nie jest to łatwe zadaie i wymaga doświadczeia, iformacji o poszczególych elemetach sieci oraz wiedzy a czym polega proces sychroizacji odbiorika do adajika. Elemet RJW (czas trwaia od tq do 4tq) określa o ile bieżący bit jest wydłużay lub skracay w celu skompesowaia opóźień (dodatich lub ujemych) wyikających z różicy przebiegu rzeczywistego sygału a liii CAN, a oczekiwaego przebiegu trwaia bitu urządzeia odbiorczego. Gdy propagacja sygału astępuję w trakcie trwaia PHASE_SEG2 poprzediego bitu, PHASE_SEG2 bieżącego bitu jest skracay o RJW w układzie kompesowaia długości bitu węzła odbiorczego. Momet próbkowaia się ie zmieia. Gdy propagacja występuje w trakcie PROG_SEG, PHASE_SEG jest wydłużay o RJW i momet występowaia SAMPLE_POINT jest opóźiay w stosuku do wyliczoego przez odbiorik. Gdy propagacja astępuje w trakcie SYNC_SEG układ kompesacyjy ie wykouje żadych działań (Rys..34). Rys..34 Kompesowaie opóźień układu odbiorczego sterowika CAN 39

Warstwa daych. By uikąć zbyt długiego czasu a zsychroizowaie urządzeia adawczego i odbiorczego (przy trasmitowaiu samych '' lub samych '') wprowadzoo idee tzw. Stuffig Bitu. Jest to dodatkowy bit o przeciwej logice, który występuje zawsze po wysyłaych kolejo 5 bitach tej samej wartości. Urządzeie, które adaje, koduje ramkę wstawiając Stuffig bity. Urządzeie odbiorcze dekoduje iformacje usuwając Stuffig bity i przesyła do procesora pierwotą iformacje (Rys..35). Kodowaie to odbywa się tylko dla obszarów ramki : Arbitratio Field, Cotrol Field, Data Field i CRC Field (Rys..36). Rys..35 Kodowaie Stuffig Bit Trasmisja w protokole CAN oparta jest a wiadomościach, którym przypisuje się określoe adresy. Nie ma urządzeia typu master. Wszystkie elemety w sieci mają takie sam prawa i rówy dostęp do adawaia. W trasmisji CAN wyróżiamy dwie formy ramek i dwa sposoby adresowaia. Urządzeia mogą wysyłać ramki daych (DATA FRAME ), które są odczytywae przez pozostałe węzły sieci, ale tylko te zaiteresowae tymi daymi w rzeczywistości odbierają je oraz potwierdzają te fakt poprzez wysłaie w odpowiedim momecie bitu akceptacji ACK. Gdy urządzeie potrzebuje daych z wiadomości o określoym adresie wysyła ramkę zapytaie (REMOTE FRAME ramka bez daych). Węzeł, który kotroluję wiadomości o tym adresie powiie iezwłoczie odpowiedzieć wysyłając DATA FRAME. Wyróżiamy dwa tryby adresowaia: Stadard ( bitów adresu) i Exteded (29 bitów adresu). Obie formy adresowaia mogą występować jedocześie. Format ramki w protokole CAN składa się z poszczególych elemetów (Rys..36): SOF start of frame ( bit startu ) Arbitratio Field (pole adresu - arbitrażu dostępu do liii) Cotrol Field (pole kotrole) Data Field (pole daych) CRC Field (pole sumy kotrolej) ACK (pole potwierdzeia odbioru ramki) EOF Ed of Frame (pole końca ramki) 4

Rys..36 Formy ramek w protokole CAN Pole Start of Frame jest to jede bit o wartości zero. Rozpoczya oo ramkę trasmisyją. Zbocze opadające tego bitu sychroizuje układy odbiorcze urządzeń a liii z węzłem adawczym. Pole Ed of Frame kończy ramkę trasmisyją i składa się z 7 bitów recesywych. Pola tego ie dotyczy kodowaie oparte a Stuffig bitach. Po EOF występuje a liii CAN sta zway Iter-Missio. Liia jest wtedy w staie Idle. Sta Iter-Missio musi trwać przyajmiej czas długości trzech bitów (Rys..37). Rys..37 Pole Start of Frame i Ed of Frame Pole Arbitratio Field (Rys..38) służy do określaia adresu daej wiadomości jeżeli jest to Data Frame (bit RTR=) oraz do wyzaczeia o jakie dae pyta się urządzeie przy Remote Frame (bit RTR=). Pole to pozwala a zrealizowaie fukcji arbitrażu dostępu węzła do liii. Jeżeli po zakończoej poprawie ramce (EOF plus Iter-Missio) jest kilka urządzeń, które chcą wysłać a sieć CAN swoje wiadomości rozpoczya się proces arbitrażu. Wysyłają oe SOF, a po mi swój adres ramki. Dostęp do liii wygrywa urządzeie, które wysyła wiadomość o ajiższym adresie, czyli te które w adresie ma bity domiat o ajwiększych wagach. W przykładzie z (Rys..39) jest to węzeł sieci r. W formacie Stadard pole to składa się z jedeastu bitów adresowych oraz bitu RTR. W formacie Exteded ajpierw pojawia się jedeaście ajstarszych bitów (a28 a8) astępie bit SSR, daje to pełą kompatybilość z ramkami adresowaymi w formacie Stadard. Po bicie SSR występuje bit IDE=, który określa w jaki sposób ramka jest adresowaa. Należy zwrócić uwagą, że przy adresowaiu Stadard bit IDE= występuje dokładie w tym samym miejscu uwzględiając liczbę bitów od początku ramki, jedakże zajduje się o już w polu Cotrol. W formacie Exteded po IDE wygeerowae są bity pozostałej części adresu 4

(a...a), a po ich bit RTR. Z powyższych rozważań wyika, że jeżeli wysyłae są ramki o idetyczych bitach adresowych (a...a dla formy Stadard oraz a28...a8 dla formy Exteded) to wygrywa arbitraż ajpierw ramka Data w adresowaiu Stadard, późiej ramka Remote w tym a trybie adresowaia, dalej ramka Data, a a końcu Remote w trybie Exteded. Rys..38 Pole Arbitratio w trybie adresowaia Stadard i Extesio. Rys..39 Arbitraż dostępu do sieci w protokole CAN Pole Cotrol wyzacza ile bajtów będzie przesyłaych w polu daych. Określają to bity DLC3...DLC. Poieważ maksymala liczba daych przesyłaych może być 8 dlatego możliwe kombiacje tych bitów to: B, B, B, B, B, B, B, B, B i określają oe liczbę od do 8. Dla ramek Remote bity ie mają zaczeia. W adresowaiu Stadard w polu tym mamy jeszcze bity IDE= oraz r=, a w Exteded r=, r= (Rys..4). 42

Rys..4 Pole Kotrole w formacie ramki CAN. Pole Data zawiera liczbę bajtów określoą w polu kotrolym dla ramki Data. Dla ramki Remote pole to ie występuje. Po Data Field wysyłae są bity sumy kotrolej (CRC Field), która wyliczaa jest specjalym algorytmem. Pole CRC zawiera 5 bitów sumy kotrolej i jede bit CRC delimiter o wartości (Rys..4). Po wysłaiu przez urządzeie adające 6 bitów pola CRC wysyła oo 2 bity recesywe w polu ACK. Węzły, które odczytały poprawie ramkę i ją akceptują, wysyłają w trakcie pierwszego bitu (ACK Slot) tego pola bit domiujący potwierdzając odbiór. Urządzeie adające poprzez sta tego bitu wie, że iformacja została wykorzystaa przez odbioriki w przeciwym przypadku astąpi próba poowego wysłaia daej ramki. Rys..4 Pola Data Field, CRC Field i ACK 43

Każdy ze sterowików CAN posiada fukcje filtru wiadomości odbieraych oraz związae z ią rejestry acceptace code i acceptace mask Program obsługujący sterowik może wybrać, które wiadomości są akceptowae, a co za tym idzie a które będzie wysyłay bit ACK. Acceptace code wyzacza adresy ramki akceptowaej, acceptace mask, które bity w tym adresie są waże, a których wartość może być dowola. Przedstawia to Tabela.3. Tabela.3 Przykład działaia filtru akceptującego wiadomości Bit adresu A A9 Acceptace code Acceptace mask Adresy akceptowae x- bit o dowolej wartości A8 A7 A6 A5 x A4 x A3 A2 x A x A x Wysyłaie ramki CAN jest przez cały czas moitorowaa przez urządzeia wysyłające jak i odbierające. Jeżeli jedo z ich wykryje, że ramka wysyłaa ma ieprawidłową strukturę ( brak bitów Stuffig, ieprawidłowa wartość bitów r, r, ACK delimiter, CRC delimiter, EOF, ieprawidłowa suma kotrola lub ieprawidłowa forma) wysyła a liię ramkę błędu (Error Flag).Ramka ta atychmiast przerywa bieżące adawaie umożliwiając możliwie jak ajszybciej poową trasmisję. Ramka błędu składa się zawsze z 6 bitów. W protokole CAN wyróżiamy dwa rodzaje ramek błędów : aktywą 6 bitów domiujących i pasywą 6 bitów recesywych. O tym jaka ramka błędu zostaie wysłaa po zauważeiu ieprawidłowości decydują licziki błędów ramek wysyłaych i odbieraych (REC - reseive error couter, TEC trasmit error couter). Licziki te są zwiększae przy wykryciu błędu i zmiejszae przy poprawym wysłaiu lub odbiorze. Jeżeli oba licziki mają wartość poiżej 27 to sterowik jest w staie aktywym błędu. Jeżeli ich wartość jest od 27 do 255 to mamy sta pasywy błędu sterowika. Jeżeli liczik przekroczą wartość 255 sterowik odłącza się od szyy CAN (Rys..43). Pozwala to a wyelimiowaie z sieci urządzeń, które są ieprawidłowo skofigurowae lub wprowadzają zakłóceia a liii. Rys..42 Aktywa ramka błędu w trasmisji CAN Urządzeie powio wrócić do stau aktywego, gdy a liii ie zauważy błędu w odbieraych 28 kolejych ramkach. 44

Rys..43 Zależość stau sterowika CAN w fukcji liczików błędów. Właściwości protokołu CAN spowodowały, że iżyierowie aplikacyji coraz chętiej stosują tą trasmisję w wielu systemach sterowaia. CAN stał się stadardem przy obsłudze urządzeń w owoczesych samochodach tramwajach oraz trolejbusach. Coraz więcej owych procesorów ma w sobie sterowiki CAN. Przykładem owoczesego procesora jest sterowik 8- bitowy firmy Ifieo XC888 (Rys..44), który posiada dwa iterfejsy UART, jedostkę MultiCAN, która staowić może dwa węzły trasmisyje. Dodatkowo zawiera hardware owy układ SSC, który może być skofiguroway jako iterfejs SPI lub LIN. Rys..44 Przykład rozbudowaego procesora 8-bitowego firmy Ifieo. 45