. Flashcards

l (89 cards)

1
Q

W zależności od typu struktury mapy pamięci, procesory rdzeniowe mogą mieć następującą architekturę:

A
  • Architektura harwardzka -obszary adresowe pamięci danych i programu (wewnętrznych i czasami zewnętrznych) są rozdzielone. Magistrale danych i rozkazów mają różną szerokość długość słowa).
  • Zmodyfikowaną architekturę harwardzką - jest rozwiązaniem pośrednim, starającym się połączyć zalety architektury harwardzkiej i Von-Neumanna. Obszary pamięci ROM i RAM są rozdzielone, ale charakteryzują się taką samą długością słowa.
  • Architektura Von-Neumanna - cechuje się jednolitą przestrzenią adresową.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Architektury mikroprocesorów:

A
  • von Neumanna, Harvard
  • RISC i CISC
  • VLIW i EPIC
  • ARM, MIPS
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

CISC

A
  • rozbudowane instrukcje
  • operacje arytmetyczne bezpośrednio na lokalizacjach w pamięci
  • możliwość zawansowanego programowania w języku maszynowym
  • różna długość instrukcji
  • często występujące instrukcje - 8 bitów
  • rzadsze, rozbudowane instrukcje o większej długości
  • znaczne różnice czasu wykonania poszczególnych instrukcji
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

RISC

A
  • znacznie ograniczony zestaw instrukcji
  • operacje ALU tylko na rejestrach
  • prosty tryb adresowania - uproszczone odwołania do pamięci
  • wszystkie instrukcje identycznej długości (32 bity)
  • znacznie prostsza konstrukcja procesora
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Cechy architektury RISC (Reduced Instruction Set Computer):

A
  • Zredukowana liczba rozkazów. Upraszcza to znacznie dekoder rozkazów.
  • Redukcja trybów adresowania, dzięki czemu kody rozkazów są prostsze, procesor jest zbudowany zgodnie z architekturą harwardzką,
  • Ograniczenie komunikacji pomiędzy pamięcią, a procesorem. Do przesyłania danych pomiędzy pamięcią, a rejestrami służą dedykowane instrukcje (load, store) .
  • Zwiększenie liczby rejestrów (np. 32, 192, 256),
  • Dzięki przetwarzaniu potokowemu (ang. pipeling) wszystkie rozkazy wykonują się w jednym cyklu maszynowym.
  • Zbiór realizowanych instrukcji jest ograniczony i spełnia warunki ortogonalności (symetrii).
  • Procesor tego typu zamiast prostego rejestru instrukcji stosuje pamięć FIFO (first-in first-out), która gromadzi kolejkę instrukcji.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Cechy architektury von Neumanna:

A
  • rozkazy i dane przechowywane są w tej samej pamięci,
  • nie da się rozróżnić danych od rozkazów (instrukcji),
  • dane nie maja przypisanego znaczenia,
  • pamięć traktowana jest jako liniowa tablica komórek, które identyfikowane są przy pomocy dostarczanego przez procesor adresu,
  • procesor ma dostęp do przestrzeni adresowej, dekodery adresowe zapewniają mapowanie pamięci na rzeczywiste układy.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Cechy architektury Harwardzkiej:

A
  • rozkazy i dane przechowywane są w oddzielnych pamięciach,
  • organizacja pamięci może być różna (inne długości słowa danych i rozkazów),
  • możliwość pracy równoległej – jednoczesny odczyt danych z pamięci programu oraz danych,
  • stosowana w mikrokontrolerach jednoukładowych.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Architektura ARM Cortex-M4

A

 Wysoce wydajna, tania i energooszczędna, wykorzystywana w milionach urządzeń
 Cortex-M należy do wersji nazw ARM, ARMv7. Wcześniejsze wersje ARM: ARMv4, ARMv5, ARMv6
 Cortex-M: Procesory w tych profilach są wykorzystywane do rozwoju systemów wbudowanych opartych na mikrokontrolerach. Rodzina Cortex-M: Cortex-M0, Cortex-M0+, Cortex-M1, Cortex-M3, Cortex-M4 i Cortex-M7.
 Cortex-A: Procesory w tym profilu są używane w urządzeniach o wysokiej wydajności, takich jak telefony komórkowe / komórkowe.
 Cortex-R: Główny rynek procesorów tego profilu znajduje się w aplikacji w czasie rzeczywistym, gdzie głównym celem jest planowanie czasu reakcji.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Mikrokontrolery rodziny AVR – architektura

A

 Rodzina 8- i 32-bitowych mikrokontrolerów o zmodyfikowanej architekturze harwardzkiej RISC, rozwijanych i produkowanych przez firmę Atmel
 Jedna z najpopularniejszych rodzin mikrokontrolerów wykorzystywanych w dydaktyce, prostych projektach amatorskich, niewielka liczba projektów komercyjnych
 Dzielą się na kilka rodzin, kompatybilnych binarnie, ale różniących się znacząco rozmiarem pamięci, częstotliwością taktowania i liczbą
 wbudowanych układów peryferyjnych, najpopularniejsze to: ATtiny, ATmega, ATxmega
 Dostępne są również modele przewidziane do specjalistycznych zastosowań, z wbudowanym kontrolerem CAN czy obsługujące zaawansowane tryby PWM

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Mikrokontrolery rodziny AVR – architektura 
Zalety

A
  • Jedna z najpopularniejszych architektur, duża liczba użytkowników zgrupowana w społecznościach, duża ilością gotowego kodu, przykładów, tutoriali i narzędzi
  • Mininalna liczba elementów potrzebna do działania mikrokontrolera
  • Są ławo dostępne i tanie, nie ma zróżnicowania na modele łatwiej i trudniej dostępne
  • Wiele wersji programatorów, większość bardzo prostych w budowie
  • Wysoka wydajność
  • Bardzo duże zróżnicowanie wersji, umożliwiające wybór optymalnego mikrokontrolera do danego zastosowania
  • Posiadają obudowy „przyjazne” do prototypowania
  • Mogą być zasilane napięciem od 3 do 5V
  • Cena i dostępność
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Rodzina UC3 układy wyposażoną w rdzeń AVR32 i pamięć Flash

A
  • Rdzeń AVR32 zaprojektowany został w oparciu o architekturę harwardzką
  • Posiada Hmatrix - wielopoziomową wewnętrzną magistrale komunikacyjną, która zapewnia szybki transfer pomiędzy modułami wewnętrznymi mikrokontrolera
  • Wyposażona jest w szybkie interfejsy komunikacyjne, w tym ethernet i duży stopień integracji peryferii.
  • Zewnętrzna magistrala obsługuje pamięci SRAM, SDRAM, ROM, Flash oraz inne urządzenia o organizacji pamięci (LCD, FPGA)
  • Realizuje jednocyklowe instrukcje DSP- mnożenie i mnożenie z akumulacją. Wyniki operacji mogą być 32-, 48- i 64-bitowe
  • Przy częstotliwości taktowania 66 MHz układ UC3 pracuje z wydajnością 80 MIPS. Porównywalny z ARM 7
  • Dla układów z rdzeniem AVR32 powstało środowisko programowe AVR32 Studio oraz kompilator GNU GCC (obecnie zintegrowane w ATMEL studio 7) oraz FreeRTOS
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Mikrokontrolery rodziny AVR – architektura, lista rozkazów
 Peryferia komunikacyjne.

A
  • Konfigurowalny Ethernet MAC 10/100 wspiera zarówno tryb pracy MII. Ethernet MAC ma dedykowany kanał DMA.
  • USB 2.0 FS 12Mbps z funkcją hosta OTG.
  • TWI (I2C), 2xSPI, SSC i aż cztery USART-y ze sprzętową kontrolą transmisji.
  • Jeden port USART posiada wsparcie dla: IrDA, modemu i ISO7816.
  • Wielofunkcyjne linie I/O - alternatywne funkcje specjalne, np. USART i SPI, użycie jednego z nich uniemożliwia korzystanie z drugiego.
  • Kontroler portów I/O zawiera osobne rejestry do ustawiania stanów wysokich, niskich oraz osobny do zmiany stanu na przeciwny.
  • standardowe peryferia takie jak timery, przetwornik A/C, watchdog oraz układy nadzorujące zasilanie.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

 Programowanie i narzędzia

A
  • Układy UC3A i UC3B dostarczane są z bootloaderem USB zaprogramowanym w początkowej części Flasha (8kB).
  • Kolejnym sposobem jest programowanie przez interfejs JTAG, do którego można użyć JTAG ICE mkII.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Cechy mikrokontrolera ATmega32

A
  • Architektura RISC - 131 instrukcji procesora (wykonywanych w jednym cyklu zegara), 32 ×8 -bitowych rejestrów ogólnego przeznaczenia,
  • Nieulotna pamięćprogramu i danych - 32kB pamięci programu, ISP, z opcją Bootloadera, 1024 bajty pamięci danych EEPROM, 2kB wewnętrznej pamięci SRAM,
  • Peryferia - 8-bitowe i 16-bitowy timery/liczniki z opcją preskalera, cztery kanały PWM, 8×10 − bitowych przetworników ADC, interface Two-wire, programowalny Serial USART, interface Master/Slave SPI, programowalny Watchdog, komparator analogowy,
  • Inne cechy - wewnętrzny generator RC, wewnętrzne i zewnętrzne źródła przerwań, układy oszczędności energii, zasilanie 4.5 − 5.5V, częstotliwość pracy zegara do 16MHz.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Pamięć danych EEPROM mikrokontrolera AVR ATmega32

A

ATmega32 posiada nieulotną pamięć danych o rozmiarze 1024 bajty, zorganizowanej w osobnej przestrzeni adresowej.
 W przestrzeni tej mogą być zapisane lub odczytane pojedyncze bajty.
 Dostęp do tej pamięci możliwy jest za pomocą rejestrów EEARH, EEARL, EEDR i EECR. Rejestry te pełnią następujące funkcje: EEARH i EEARL - adres, EEDR - wpisywane lub odczytywane dane, EECR - rejestr kontrolny.
 PamięćEEPROM data jest chroniona przed zniszczeniem, które może powodować zbyt niskie napięcie zasilania VCC .

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Pamięć urządzeń wejścia/wyjścia mikrokontrolera AVR ATmega32

A

 Do wszystkich peryferii mikrokontrolera AVR ATmega32 odwołuje się za pomocą rejestrów I/O umieszczonych w tej samej przestrzeni adresowej co Rejestry ogólnego przeznaczenia i pamięćSRAM (ścieżka danych),
 Używając mnemoników IN lub OUT należy używać adresów $00 − $3F, w przypadku, gdy odwołujemy siędo nich używając instrukcji LD i ST należy dodać $20H E X tj. 3210 do ich adresu (gdyż poprzedzają je 32 rejestry ogólnegoprzeznaczenia).
 Niektóre rejestry I/O, w zależności od pełnionej funkcji w urządzeniach peryferynych, sąchronione przed zapisem. Do niektórych rejestrów można się odwołać dopiero po ustawieniu odpowiedniej flagi (patrz dokumentacja).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Struktura portu – AVR

A

 Wszystkie porty AVR mają funkcjonalność : Read/Modify/Write
 Każdy pin w porcie może być modyfikowany selektywnie
 Rejestrom przydzielono trzy adresy w pamięci We/Wy
 dla każdego portu:
* rejestr danych — PORTx (odczyt/zapis)
* rejestr kierunku danych — DDRx (odczyt/zapis)
* piny wejściowe portu – PINx (odczyt)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Cechy portu – AVR
Port jako wejście:
 Port jako wyjście:

A

Port jako wejście:
* histereza (około 50 mV), pozwalająca na eliminację błędów przy sygnałach wolnozmiennych i zaszumionych,
* przy odczycie portu po jego zapisaniu należy odczekać około 1 takt zegara (wewnętrzny układ synchronizujący).
 Port jako wyjście:
* stan pinu może się pojawiać z opóźnieniem jednego taktu zegara przy zmianie PORTxn,
* typowe obciążenie linii portu wynosi 20mA, maksymalnie 40mA

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Timery/Liczniki - AVR

A
  • 2 liczniki 8-bitowe
  • licznik impulsów wewnętrznych i zewnętrznych, odczytanie i zapisanie wartości licznika
  • ustalenie zakresu licznika
  • porównanie bieżącej wartości licznika z zadaną wartością, przełączenie napięcia portu binarnego
  • 1 licznik 16-bitowy - dodatkowo
  • porównanie wartości licznika z dwoma zadanymi wartościami
  • rejestracja wartości licznika w momencie pojawienia się impulsu zewnętrznego
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Timery/Liczniki – AVR: 8-mio bitowy licznik czasomierz T0 z funkcją PWM
Cechy

A
  • Licznik z pojedynczym komparatorem
  • Tryb CTC (Clear Timer on Compare)
  • Tryb PWM z korekcją fazy
  • Tryb PWM (fast PWM)
  • Zewnętrzny licznik zdarzeń
  • 10-bitowy Prescaler (1, 8, 64, 256, 1024)
  • Flagi przerwań TOV0 – flaga przepełnienia; OCF0 – flaga porównania (komparatora)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

System przerwań - AVR

A
  • Zmiana stanu pewnych wejść (przerwania INT0, INT1, INT2, ICP1).
  • Określony stan pewnych wejść (przerwania INT0, INT1).
  • Przepełnienie licznika (TIMER0 OVF, TIMER1 OVF, TIMER2 OVF).
  • Osiągnięcie przez licznik zadanej wartości (TIMER0 COMP, TIMER1 COMPA, TIMER1 COMPB, TIMER2 COMP).
  • Zakończenie przetwarzania analogowo-cyfrowego (ADC).
  • Zakończenie transmisji przez interfejs szeregowy (SPI STC, USART TXC, TWI).
  • Odebranie danych przez interfejs szeregowy (USART RXC).
  • Gotowość pamięci EEPROM (EERDY).
  • Zmiana stanu wyjścia komparatora (ANACOMP).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

System przerwań – AVR: Tablica przerwań

A
  • W standardowej konfiguracji mikrokontrolera 42 najniższe adresy w pamięci programu zajmuje tablica przerwań.
  • Im mniejszy adres, tym wyższy priorytet przerwania.
  • Najwyższy priorytet ma RESET, potem przerwanie zewnętrzne INT0 itd.
  • Przerwania są numerowane od 1 do 21.
  • Obsługując przerwanie o numerze x, mikrokontroler ładuje do licznika programu wartość 2(x – 1)
  • Powoduje to wykonanie rozkazu spod tego adresu w pamięci programu.
  • Najczęściej jest to skok (rjmp lub jmp) do właściwej procedury obsługi przerwania.
  • Uwaga: ATmega16 i ATmega32 obsługują ten sam zbiór przerwań, ale są one inaczej ponumerowane.
  • sei() – uaktywnia obsługę przerwań
  • cli() – wyłącza obsługę przerwań (domyślnie po sygnale RESET)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Port szeregowy synchroniczny-asynchroniczny USART

A
  • Możliwość pracy synchronicznej i synchronicznej
  • Ramka od 5 do 9 bitów
  • 1 lub 2 bity stopu
  • Dwa rodzaje kontroli parzystości
  • Wykrywanie błędu ramki
  • Eliminacja szumów
  • Możliwość współpracy wieloprocesorowej
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Układy peryferyjne mikrokontrolera AVR – zarządzanie energią
Programowe sposoby zarządzania energią

A

 zredukowanie częstotliwościzegara,
 wykorzystania trybów wstrzymania (sleep modes).
Wstrzymywanie systemu możliwe przy użyciu instrukcji SLEEP

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Interakcje w mikrokontrolerze:
 nie pracuje jednostka centralna,  pamięć danych zachowywana,  rejestry wejścia wyjścia zachowywane,  układy peryferyjne pracują w zależności od trybu uśpienia.
26
TABLICE
 Tablicę definiuje się pisząc kolejno: typ danych, nazwę tablicy i objętą parą nawiasów kwadratowych [] liczbę elementów tablicy. Definicję należy zakończyć średnikiem.  Elementami tablic mogą być wartości typów: char, int, float, double oraz: struktury, unie, pola bitowe i wskaźniki.  Elementami tablicy mogą być też same tablice; w taki sposób tworzy się w języku C tablice wielowymiarowe.
27
Interfejsy programowania i uruchomieniowe AVRISP mkII Podstawowe cechy:
* programowanie pamięci Flash i EEPROM, * ustawianie/kasowanie fuse bitów i lock bitów, * funkcja aktualizacji oprogramowania celem współpracy z nowymi mikrokontrolerami, * praca w zakresie napięć 1,8-5,5V, * regulacja szybkości programowania (od 50 Hz do 8 MHz), * kompatybilny z interfejsem USB 2.0 (full speed, 12 Mbps), * zasilany z USB, przez co nie wymaga dodatkowego źródła zasilania, * zabezpieczenie interfejsu programowanego mikrokontrolera, zabezpieczenie przeciwzwarciowe.
28
AVR Dragon Podstawowe cechy:
* wspierane interfejsy: SPI, JTAG, PDI, HVSP, PP, aWire, * do 3 sprzętowych breakpointów, * do 32 programowych breakpointów, * wbudowane 128 kB pamięci SRAM, * wysoka szybkość (256 Kb w 60 s dla XMEGA przez JTAG), * funkcja aktualizacji oprogramowania celem współpracy z nowymi mikrokontrolerami, * kompatybilny z interfejsem USB 2.0 (full speed, 12 Mbps), * wspiera NanoTrace, * zasilany z USB, * może zasilać zewnętrzne układy, * miejsce na wbudowanie podstawek do programowania równoległego (HVSP, PP).
29
AVR JTAGICE mkII
- programowanie mikrokontrolerów AVR zarówno 8-bitowych, jak i 32-bitowych Podstawowe cechy: * do 3 sprzętowych breakpointów, * obsługuje złożone typy zmiennych wraz z zakresem ich dostępności, * do 128 programowych breakpointów, * wbudowane 512 kB pamięci SRAM, * praca w zakresie napięć 1,8-5,5 V, * wysoka szybkość (256 Kb w 30 s dla XMEGA przez JTAG), * kompatybilny z interfejsem USB 2.0 (full speed, 12 Mbps), zasilany z USB, przez co nie wymaga dodatkowego źródła zasilania
30
JTAGICE 3
 JTAGICE 3 jest następcą popularnego JTAGICE mkII i przeznaczony został do prac rozwojowych systemów opartych na mikrokontrolerach AVR i AVR32.  Podobnie jak poprzednik, jest w pełni funkcjonalnym programatorem układów tinyAVR, megaAVR, XMEGA i UC3.  Narzędzie obsługuje wszystkie interfejsy wykorzystywane do debugowania i programowania AVR i AVR32 (JTAG, SPI, dWire, PDI).  Zwiększono również odporność urządzenia na wszelkiego rodzaju zakłócenia i uszkodzenia pochodzące z układu programowanego (ESD, odwrotna polaryzacja złącza, zbyt wysokie napięcie zasilania).
31
Architektura RISC (Reduced Instruction Set Computers)
* ograniczona lista wykonywanych rozkazów, * ograniczona ilość trybów adresowania, * operacje wykonywane na rejestrach (brak rozkazów operujących na pamięci – poza rozkazami LOAD i STORE) * operacje na danych w pamięci wykonywane są według schematu Read-Modify-Write, * proste kody rozkazów -> uproszczenie dekodera rozkazów, * prosta budowa rdzenia -> mniejsza ilość elementów -> zmniejszony pobór prądu.
32
Rdzeń ARMv4T (ARM7) Rejestry mikrokontrolerów RISC
* zwiększona liczba rejestrów roboczych, * wszystkie rejestry są 32-bitowe.
33
Architektura von Neumana Rdzeń ARMv4T (ARM7)
* brak podziału pamięci na pamięć danych i programu * możliwość wykonywania kodu programu zarówno z pamięci Flash jak i RAM (możliwość modyfikacji kodu w trakcie wykonywania programu). * 32-bitowa magistrala danych – możliwość jednoczesnego odczytu i zapisu danych, jednostkami 8, 16 lub 32-bitowymi (problem wyrównywania danych).
34
Rdzeń ARMv4T (ARM7) Wyjątki obsługiwane przez rdzeń ARM7TDMI
* SWI – napotkanie specjalnej instrukcji SWI * Abort – próba wykonania instrukcji, przy pobieraniu której wystąpił błąd w dostępie do pamięci lub próba zapisu/odczytu niewyrównanych danych, * Undefined – napotkanie instrukcji, której rdzeń nie jest w stanie zdekodować, * nIRQ – przerwanie – pojawienie się na linii wejściowej nIRQ stanu niskiego, * nFIQ – przerwanie o wyższym priorytecie od nIRQ – wykorzystywane tam gdzie konieczna jest szybka reakcja,
35
Tryby pracy rdzenia
* tryby zależne od rodzaju obsługiwanego wyjątku (np. po wystąpieniu wyjątku Abort rdzeń pracuje w trybie Abort), * tryby pracy w czasie wykonywania programu głównego: Supervisor, System, User (różnią się poziomem praw dostępu do zasobów oraz obszarów pamięci mikrokontrolera),
36
Rdzeń ARMv4T (ARM7) Tryby pracy rdzenia (z punktu widzenia instrukcji) tryb ARM – rozkazy zakodowane na 32 bitach:
* dostępna pełna lista rozkazów, * rozkazy mogą przyjmować większą liczbę parametrów, * program złożony z instrukcji ARM działa szybciej, * rozmiar programu jest większy.
37
tryb Thumb – rozkazy zakodowane na 16 bitach:
* program wykonywany jest wolniej ze względu na konieczność konwersji każdej instrukcji do pełnej instrukcji ARM przed jej wykonaniem, * rozmiar programu jest mniejszy.
38
Fazy wykonania rozkazu – praca potokowa
* każdy rozkaz wykonywany jest w trzech cyklach - pobranie, dekodowanie, wykonanie, * przetwarzanie odbywa się z zastosowaniem potoku trójpoziomowego, * efektywny czas wykonania rozkazu to jeden cykl
39
Rdzeń ARMv4T (ARM7)
Kontroler przerwań Przerwania są charakterystycznym elementem architektury mikroukładów. Model kontrolera przerwań omawianego układu można uprościć do dwu obwodów:  Obwód żądania przerwania - odpowiada za to aby zgłosić zapotrzebowanie.  Obwód obsługi przerwania – wystawia on odpowiedni adres obsługi procedury.  Wyjątki IRQ oraz FIQ są zgłaszane przez urządzenia peryferyjne (zwane przerwaniami), natomiast źródłem pozostałych jest rdzeń SAM7.  Aby mogło zaistnieć przerwanie – mając na myśli skok do adresu 0x18 lub 0x1C - musi zostać wyzerowany bit 6 (FIQ) i/lub bit 7 (IRQ).  Są 32 linie przerwań, każda z linii (źródeł) przerwań może mieć nadany priorytet w zakresie 0-7. Każdej z tych linii możliwe jest przyporządkowanie indywidualnej procedury obsługi.
40
Rdzeń ARMv4T (ARM7) Przerwanie programowe
* Wyjątek SWI (Software Interrupt) można rozumieć jako „przerwanie wywołane w programie”. * Rdzeń ARM, napotykając w kodzie maszynowym specjalną instrukcję SWI wywołującą ten wyjątek, przechodzi do jego obsługi. * Wyjątek SWI zgłaszany może być np. przez program użytkownika pracujący pod kontrolą systemu operacyjnego w celu poinformowania o awarii lub zapotrzebowaniu na pewien zasób sprzętowy. * Wyjątek SWI można bez większych problemów zgłaszać w programie pisanym w języku C - wystarczy umieścić w kodzie prościutką, jednolinijkową wstawkę asemblera zawierającą samą instrukcję o mnemoniku SWI.
41
Rdzeń ARMv4T (ARM7) Przerwania współdzielone
Blok urządzeń systemowy (AT91C_ID_SYS) dysponuje jednym, wspólnym przerwaniem SYS (ang. shared interrupt) o numerze ID=1, które obejmuje następujące urządzenia: * timery PIT, RTT, WDT, * interfejs diagnostyczny DBGU, * Sterownik DMA PMC, * Układ zerowania procesora RSTC, * Sterownik pamięci MC. W procedurze obsługi przerwania SYS należy sprawdzić kolejno stan wszystkich urządzeń, czy występują przerwania odmaskowane. Jeżeli przerwanie jest aktywne należy sprawdzić flagę sygnalizującą przerwanie w rejestrze statusu danego urządzenia. Jeżeli flaga jest ustawiona należy wykonać program związany z obsługą przerwania od danego urządzenia.
42
Rdzeń ARMv4T (ARM7) Kontroler PIO
* Rdzeń AT91SAM7X256/128 posiada dwa kontrolery PIO: PIOA i PIOB. Zadaniem każdego z kontrolerów jest multipleksowanie zestawu wyprowadzeń urządzeń peryferyjnych. * Każdy kontroler steruje 32 liniami. Każda linia może być przypisana do jednego z dwu urządzeń peryferyjnych A lub B. Lub też działać jako uniwersalne wyjście/wejście. Na każdej linii
43
System wbudowany dla układu SAM7TDMI System wbudowany dla mikrokontrolera SAM7TDMI, zawiera mikrojądro obejmujące (model systemu monolitycznego):
* planistę, * obsługę Timera systemowego, * system przerwań.
44
Środowisko deweloperskie
* Kompilator GCC - główn kompilator dla systemu Linux, dzięki niemu możliwe jest skompilowanie całego systemu wraz z programami dla wielu architektur. * Uzupełnieniem jest program make automatyzujący proces kompilacji oraz standardowe programy zarządzające pilikami projektu GNU. * Rolą dostawcy – CodeSourcery – jest przygotowanie paczki binarnej oraz dostarczanie płatnego wsparcia technicznego. Paczki dostępne są na systemy Linuks oraz Windows. * Istnieją skrypty pozwalające samemu przygotować narzędzia do kompilacji bezpośrednio ze źródeł np. summon-arm-toolchain.
45
Wywołania systemowe
* Obsługa wywołań systemowych w autorskim systemie wbudowanym odbywa się w kilku krokach: * Wywołanie funkcji obudowywującej * Przerwanie programowe SWI przekazanie sterowania do systemu * Wybranie odpowiedniej f systemowej z tabeli (dispatch table) w zależności od nr * Wybranie deskryptora z tablicy otwartych deskryptorów lub deskryptorów zainicjowanych * Wykonanie operacji za pomocą funkcji z wybranego deskryptora * Oddanie sterowania do programu
46
Wątki i przełącznik wątków
System dedykowany posiada ograniczoną ilość procesów do 1 z powodu braku MMU. Dla uproszczenia oraz w wyniku braku możliwości efektywnego wyegzekwowania ochrony pamięci. Czy też realnej izolacji. Wyróżniono minimum 3 elementy systemu potrzebne do uzyskania wielowątkowości. * odpowiednio przyszykowana procedura obsługi przerywania zapewniająca zachowanie kontekstu procesu oraz jego przywrócenie tuż przed zakończeniem * procedura wywoływana co interwał czasowy, rozpoczynająca epoki i zmieniająca kontekst * procedura szeregująca planisty
47
Zarządzanie zasobami
Zarządzenia zasobami odbywa się poprzez deskryptory. Deskryptor posiadają : * Każdy sterownik urządzenia * Każdy wątek * Zbiory danych (w tym pliki)
48
Każdy deskryptor ma dostępną podstawową grupę operacji, dodatkowo w zależności od rodzaju posiada dodatkowy zestaw pól. Funkcje/pola dostępne dla każdego deskryptora jest to:
* Otwarcie * Zamknięcie * Zapis * Odczyt * Sprawdzenie gotowości * Stan deskryptora (otwarty, zamknięty)
49
Funkcje/pola dostępne dla deskryptora wątku
* Zestaw rejestrów określający stan procesora * Stan wątku * Punkt rozpoczęcia
50
Funkcje/pola dostępne dla deskryptora urządzenia
* Zapis do rejestrów kontrolnych urządzenia * Procedura obsługi przerwania * Niektóre deskryptory mogą być współdzielone.
51
Organizacja pamięci systemu wbudowanego
* Mapowanie pamięci po uruchomieniu płytki SAM7-EX256, w lokacje 0x0000 0000 mapuje pamięć flash czyli sekcje .text. Z stąd też wykonywany jest program. Wartości adresów zostały odczytane za pomocą narzędzi nm oraz objdump. * Struktury jądra przechowywane są w statycznych strukturach przechowywanych w rejonie zmiennych globalnych. W statycznych tablicach.
52
Lokalne interfejsy cyfrowe w systemach wbudowanych EIA-232
prosty, wiekowy, standardowy interfejs szeregowy, służący do komunikacji pomiędzy urządzeniem nadrzędnym, a peryferyjnym.
53
I2C (TWI)
interfejs będący poprzednikiem innych współczesnych interfejsów szeregowych w tym CAN. Pozwala na szybka komunikację (do 400kb/s, dla trybu multimaster do 3,4 Mb/s).
54
SPI –
interfejs o możliwościach i właściwościach podobnych do I2C, o większej szybkości transmisji danych sięgającej kilka Mb/s. Stworzony przez Motorolę, obecnie jest dość często wykorzystywany przez innych producentów. Interfejs ten został standardowo wbudowany w wiele mikrokontrolerów.
55
USB (od ang. Universal Serial Bus), uniwersalna magistrala szeregowa
port lub lokalny interfejs szeregowy opracowany przez firmy Microsoft, Intel, Compaq, IBM i DEC. * USB 1.1 – prędkość transmisji (full speed) 12 Mbit/s i (low speed) 1,5 Mbit/s * USB 2.0 (high speed) 480 Mbit/s * USB 3.1 Gen 1 (SuperSpeed) (wcześniej noszący nazwę USB 3.0) Urządzenia zgodne z warunkami nowej specyfikacji mogą pracować z szybkością 5 Gbit/s. * USB 3.1 Gen 2 (SuperSpeed+) - prędkość maksymalna to 10 Gbit/s, a moc może wynosić 100 W. * USB 3.2 - wprowadza dwa nowe tryby SuperSpeed+ przez złącze USB typ C o szybkości transmisji danych wynoszące 10 i 20 Gbit/s (1250 i 2500 MB/s).
56
UART – Universal Asynchronous Receiver Transmitter:
* Standard rozwinięty już w latach 60’, * Prosty, uniwersalny, dobrze udokumentowany, * Wolna komunikacja: max. 1Mbit/s, * Po jednym przewodzie komunikacyjnym w każdym z kierunków plus wspólna masa sygnałowa, * Asynchroniczna – odbiornik i nadajnik muszą wcześniej znać szybkość transmisji oraz format ramki, * Bity START i STOP normują przesyłanie, * Możliwe dołączenie informacji o parzystości (kontrola błędów).
57
Dwa podstawowe typy komunikacji szeregowej:
* synchroniczna – równolegle z ciągiem bitów przesyłany jest sygnał synchronizujący, określający kiedy dane są ważne , * asynchroniczny – dane nie są związane z żadnym sygnałem synchronizującym – parametry transmisji trzeba ustawić wcześniej – ręcznie, a do danych trzeba dodać pewne informacje mogące zsynchronizować dane przesyłane i odbierane (np.: ramka 8, N, 1; 8, E, 2),
58
USART - Universal Synchronous and Asynchronous Reciever and Transmitter
* Interfejs komunikacyjny, dostępny w większości popularnych mikrokontrolerów. * W niektórych występuje kilka pracujących niezależnie od siebie USART-ów.
59
Ramka danych w transmisji UART wygląda następująco:
* Zawiera bit startu, sygnalizujący początek kolejnej ramki (od 5 do 9 bitów danych), bit parzystości, służący do kontroli błędów odbioru. * Może działać w trzech trybach - brak kontroli (no), suma zawsze parzysta (even), suma zawsze nieparzysta (odd). * Każdą ramkę zamyka od jednego do dwóch bitów stopu. Najpopularniejszą konfiguracją jest 8 bitów danych, brak kontroli parzystości i 1 bit stopu.
60
Moduł diagnostyczny DBGU Cechy portu diagnostycznego DBGU (DeBuG Unit):
* Asynchroniczna transmisja danych zgodna ze standardem EIA-232 (8 bitów danych, jeden bit parzystości z możliwością wyłączenia), * Możliwość zgłaszania przerwań systemowych współdzielonych (PIT, RTT, WDT,DMA, PMC, RSTC, MC), * Analiza poprawności odebranych ramek, * Sygnalizacja przepełnionego bufora TxD lub RxD, * Trzy tryby diagnostyczne: zdalny loopback, lokalny loopback oraz echo, * Maksymalna szybkość transmisji rzędu 1 Mbit/s, * Możliwość komunikacji z rdzeniem procesora COMMRx/COMMTx.
61
FIFO (ang. First In, First Out) –
przeciwieństwem stosu LIFO jest kolejka, bufor typu FIFO (pierwszy na wejściu, pierwszy na wyjściu), w którym dane obsługiwane są w takiej kolejności, w jakiej zostały dostarczone (jak w kolejce do kasy)
62
Kolejka FIFO
* Dane do kolejki FIFO mogą być wpisywane przez kilka niezależnych aplikacji, wątków lub urządzeń. W takiej sytuacji dostęp do kolejki kontrolowany jest przez Semafor (zmienna globalna). * Dane zgromadzone w kolejce wysyłane są w kolejności w jakiej zostały wpisane. Zapis danej do kolejki FIFO: * Zwiększ wskaźnik Head o jeden, zapisz daną. Odczyt danej z kolejki FIFO: * Odczytaj daną, zwiększ wskaźnik Tail o 1. W przypadku, gdy Tail lub Head wskazuje na ostatni dostępny element kolejki zamiast inkrementacji wskaźnik jest zerowany. Pozwala to na płynne przesuwanie wskaźników – bufor kołowy (ang. circular buffer)
63
Ramka w I2C
* Bit startu (S) SDA 10 dla SCL = 1 * Bit stopu (P) SDA 01 dla SCL = 1 * powtórzenie startu (Sr) start jest generowany zamiast stopu * Stany magistrali * busy … po S i przed następnym P * Wolna … po P i przed następnym S
64
Data Transfer MagistraIa I2C
* Bity danych wysyłane są po bicie startu (S lu Sr) * Transmitowany jest pojedynczy bajt * Bajt = 8 bits + jeden acknowledge bit (ACK) * Bit MSB (most significant bit) nadawany jako pierwszy * slave adres jest traktowany jako dana * Transmitowany jest pierwszy bajt * W trakcie transferu: * master jest nadajnikiem * Adresowany slave jest odbiornikiem * Następny bajt: wysyłany jest po ostatnim bicie w bajcie adresowym * master ustawia SCL = 0 i generuje impulsy dla innych bitów danych * 8 impulsów dla bitów danych są zakończone przez impuls dla bitu ack. * po ack. * master przygotowuje się do generowania impulsów pod następny bajt * slave jest w stanie HOLD SCL low  master przechodzi do stanu oczekiwania
65
Masters and Slaves
* Urządzenie typu Master * Kontroluje linię SCL * Generuje bity startu i stopu * Kontroluje (generuje) adresy innych urządzeń * Urządzenie typu Slave * Urządzenie adresowane (podległe) master * Nadajnik/ Odbiornik (Transmitter/Receiver) * master lub slave * master-nadaje (wysyła) daną do slave-odbiornika * master-odbiera żądaną daną z urządzenia slave-nadajnika
66
Cechy interfejsu TWI procesora ARM firmy ATMEL:
Moduł TWI procesorów ARM jest odpowiednikiem standardu opracowanego przez firmę Philips (firma Philips posiada patent na interfejs I2C). Cechy interfejsu TWI procesora ARM f: * Zgodny ze standardem I2C, * Praca w trybie Master, Multimaster lub Slave, * Umożliwia dołączenie urządzeń zasilanych napięciem 3,3 V, * Transmisja danych z częstotliwością zegara do 400 kHz, * Transfery poszczególnych bajtów wyzwalane przerwaniami, * Automatycznie przejście do trybu Slave w przypadku kolizji na magistrali * (Arbitration-lost interrupt), * Przerwanie zgłaszane, gdy zostanie wykryty adres urządzenia w trybie Slave, * Automatyczne wykrywanie stanu zajętością magistrali, * Obsługa adresów 7 i 10-cio bitowych.
67
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), * karty pamięci z interfejsem szeregowym SD/SDHC/MMC
68
Cechy modułu SPI układu SAM7X:
* Obsługa transferów w trybie Master lub Slave, * Bufor nadawczy, odbiorczy oraz bufor transceivera, * 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ń), * Programowalne opóźnienia pomiędzy transferami, * Programowalna polaryzacja i faza zegara.
69
Charakterystyka magistrali USB Standardy USB:
* USB 1.1 - jego transfer wynosi, w zależności od typu urządzenia 1.5 lub 12 Mbit/s. * USB 2.0 - osiąga transfer do 480 Mbit/s. * USB 3.0 – transfer powyżej => 5 Gb/s. Magistrala USB tworzy strukturę warstwową, jednak zachowuje logiczną strukturę gwiazdy, a komunikacja przebiega tak, jakby urządzenia były podłączone bezpośrednio do hosta. Gdy hub jest odłączony, wszystkie urządzenia podłączone do huba zostają usunięte z logicznej topologii hosta.
70
Przepływ danych w systemie USB
Punkty końcowe posiadają cechy, które determinują typu transferów pomiędzy nimi a oprogramowaniem klienckim. Endpointy opisywane są przez: * zalecenia częstotliwości taktowania magistrali, * numer endpointu, * rozmiar pakietów, * zachowanie w wypadku błędów w transmisji, * typ transferu, * kierunek przepływu danych.
71
Proces konfiguracji
Enumeracja (ang. Enumeration) – konfiguracja urządzeń przeprowadzana po dołączeniu lub odłączeniu nowego urządzenia od magistrali. Proces konfiguracji przeprowadzany jest przez urządzenie nadrzędne (Master). Master przypisuje indywidualne adresy do urządzeń oraz ustanawia podstawowe parametry transmisji: * Adres urządzenia w przestrzeni USB, * Rodzaj transferu, * Kierunek transmisji danych (read, write, read-write), * Rozmiar przesyłanych pakietów, * Szybkość transmisji, * Adresy buforów używanych przez sterowniki urządzenia, * Prąd pobierany przez urządzenie.
72
Rodzaje sygnałów sterowania w magistrali USB :
* Sygnał zerowania SE0 (single ended zero) - napięcie pary przewodów sygnałowych D+ i D- wprowadzone w stan 0 logicznego na 2,5 mikrosekundy. * Zawieszenie działania urządzenia ma miejsce w razie wykrycia stanu spoczynkowego linii sygnałowych przez co najmniej 3 ms. Zawieszenie trwa nie dłużej niż 10 ms. * Wznowienie działalności urządzenia następuje w razie wykrycia stanu logicznego K linii sygnałowych, czyli 0 dla trybu FS lub 1 dla LS. Wznowienie działania wymusza kontroler USB przez ustawienie stanu logicznego K szyny przez co najmniej 20 ms. * Znacznik końca pakietu EOP (End of Packet) składa się z 2-bitowego sygnału zerowania SE0 oraz 1-bitowego sygnału o stanie logicznym J, tzn. 1 dla FS lub 0 dla LS.
73
Rodzaje transferu danych
* masowy (asynchroniczny); * izochroniczny (synchroniczny); * obsługi przerwania; * sterująco-kontrolny.
74
Blok UDP w układzie SAM7
Typowe podłączenie mikrokontrolera SAM7 do magistrali USB Aby host wykrył, że urządzenie full-speed zostało podłączone do magistrali USB, należy zagwarantować podciągnięcie linii DP do plusa zasilania. Obecność hosta na magistrali można wykryć przez monitorowanie linii zasilającej w interfejsie USB. Blok UDP obsługuje wszystkie cztery transmisje zdefiniowane w standardzie: * kontrolny (ang. Control) – EP0, * masowy (ang. Bulk), * przerwaniowy (ang. Interrupt), * izochroniczny (ang. Isochronous). Mikrokontrolery SAM7 posiadają 6 punktów końcowych (endpointów) EP0 .. EP5, z których każdy może obsługiwać różne typy transferów. * Konfiguracja endpointu polega na określeniu jego numeru, kierunku, maksymalnego pakietu danych oraz rodzaju transferu, w jakim będzie pracował dany endpoint. * Każde urządzenie USB musi obsługiwać transfer kontrolny, który wykorzystywany jest do konfiguracji urządzenia podczas enumeracji.
75
Blok UDP w układzie SAM7 Potwierdzenie STALL
* Urządzenie USB przesyła do hosta potwierdzenie STALL aby poinformować go o braku możliwości przekazu danych ze względu na wystąpienie poważnego błędu w urządzeniu. * Aby układ UDP wygenerował pakiet STALL należy ustawić bit FORCESTALL w rejestrze CSR odpowiedniego endpointu. * Po pomyślnym wysłaniu pakietu STALL zostanie ustawiony bit STALLSENT w rejestrze CSR
76
Transakcja Setup
* Setup - specjalny typ transakcji wykorzystywanej podczas transferu kontrolnego. * Host wysyła do urządzenia pakiet-token Setup oraz pakiet danych Data0, a następnie urządzenie wysyła do hosta pakiet ACK potwierdzający odebranie danych.
77
Transakcja Data IN
* Podczas tej transakcji host wysyła do urządzenia pakiet-token IN, następnie urządzenie w odpowiedzi wysyła do hosta pakiet Data IN. * Na końcu w zależności od poprawności danych host wysyła pakiet potwierdzający ACK, NAK lub w przypadku błędu STALL
78
Transakcja Data OUT
* Podobnie jak Data IN transakcja ta jest wykorzystywana jest przez wszystkie rodzaje transferów USB. * Host wysyła do urządzenia pakiet-token OUT a następnie pakiet danych Data OUT * Po odebraniu danych urządzenie przesyła do hosta pakiet potwierdzający ACK, NAK lub w przypadku błędu STALL. * Po odebraniu pakietu-tokena, układ UDP mikrokontrolera automatycznie przyjmuje dane i wysyła pakiet potwierdzający ACK do hosta. * Jeżeli poprawnie odebrano pakiet danych bit RX_DATA_BK0 w rejestrze CSR odpowiedniego endpointu zostaje ustawiony. * Liczbę odebranych bajtów wskazuje pole bitowe RXBYTECNT. * Następnie program użytkownika powinien odczytać odpowiednią ilość bajtów danych z kolejki FIFO po przez rejestr FDR odpowiedniego endpointu. * Po odczycie przesłanych danych program użytkownika musi wyzerować bit RX_DATA_BK0 powiadamiając układ o dostępności kolejki FIFO.
79
Blok UDP w układzie SAM7
* Stan „Attached” (podłączenia) występuje, gdy urządzenie jest podłączone do magistrali oraz urządzenie sygnalizuje swoją obecność przez podciągnięcie linii DP do plusa zasilania. * Urządzenie przechodzi do stanu „Powerd” (zasilania). W tym stanie do układu UDP musi być załączony sygnał zegarowy. * Nadajnik i odbiornik mogą pozostać zablokowane. Po podłączeniu urządzenie oczekuje na tzw. „end-of-bus reset” sygnał oznaczający rozpoczęcie procesu enumeracji. * Jeżeli układ UDP wykryje to zdarzenie bit ENDBUSRES w rejestrze ISR zostaje ustawiony. Dodatkowo ustawienie tego bitu może powodować przerwanie. * Po obsłużeniu tego przerwania urządzenie przechodzi do stanu „Default” (domyślny). W tym stanie należy uaktywnić endpoint 0 przez ustawienie bitu EPEDS w rejestrze CSR[0]. * Uaktywniamy nadajnik i odbiornik przez wyzerowanie bitu TXVDIS w rejestrze TXVC. * Po odebraniu standardowego żądania hosta SET_ADDRESS, urządzenie przechodzi do stanu „Addressed” (zaadresowane). W tym stanie należy ustawić bit FADDEN w rejestrze GLB_STAT, oraz wpisać adres przydzielony przez hosta do rejestru FADDR. * Kiedy urządzenie odbierze standardowe żądanie hosta SET_CONFIGURATION, przechodzi do stanu „Configured” (skonfigurowane). W tym stanie należy skonfigurować odpowiednio wszystkie używane endpointy. * Po okresie bezczynności na magistrali urządzenie powinno przejść do stanu „Suspend” (obniżonego poboru mocy). Po wykryciu bezczynności przez układ UDP mikrokontrolera, bit RXSUSP w rejestrze ISR zostaje ustawiony. * Należy wyzerować bit RXSUSP przez zapisanie rejestru ICR, a następnie zmienić stan mikrokontrolera na „Suspend”.
80
Sterownik UDP i USB
Magistrala USB jest bardzo skomplikowana. Sterownik interfejsu podzieli się na dwie części: sterownika 1 poziomu (UDP) – obsługującego blok UDP mikrokontrolera, sterownika 2 poziomu (USB) – obsługującego stos USB. Z uwagi na dużą ilość funkcji należących do sterownika przedstawiono załączniku 3 definicje wszystkich funkcji. Opis najważniejszych funkcji – patrz: Blok UDP SAM7 materiały do wykładu.pdf - str. 16 – 17
81
Komunikacja między urządzeniami MODBUS
 Urządzenia MODBUS komunikują się: * za pomocą techniki master-slave, w której tylko jedno urządzenie (master) może inicjować transakcje (zwane zapytaniami). * urządzenia (urządzenia podrzędne – slave) odpowiadają, dostarczając żądane dane do urządzenia master lub podejmując żądane działanie w zapytaniu. * slave to dowolne urządzenie peryferyjne (przetwornik we / wy, zawór, napęd sieciowy lub inne urządzenie pomiarowe), które przetwarza informacje i wysyła je do urządzenia master za pomocą MODBUS. * master mogą zwracać się do indywidualnych slave lub mogą inicjować wiadomość rozgłoszeniową dla wszystkich slave * slave zwracają odpowiedź na wszystkie zapytania kierowane do nich indywidualnie, ale nie odpowiadają na zapytania o transmisję.
82
MODBUS REGISTER MAP
 Urządzenia MODBUS zwykle zawierają mapę rejestru.  Działają funkcje MODBUS: * rejestrowanie rejestrów map w celu monitorowania, * konfigurowania * sterowania we / wy modułu.  wymagana znajomość mapy rejestrów urządzenia, aby lepiej zrozumieć jego działanie.  przesyłanie danych było zorganizowane pod kątem rejestrów 16-bitowych (format całkowity) lub jako informacja o statusie pod względem bajtów danych.  dodano nowe typy danych, zwłaszcza w celu uzyskania wyższej rozdzielczości przesyłanej wartości.  protokół został przyjęty dla nowych mediów przekazu, powstały dialekty, takie jak Modbus Plus lub Modbus / TCP.
83
Szeregowe tryby transmisji sieci MODBUS
 ASCII Transmission Mode - każdy bajt znaków w wiadomości jest wysyłany jako 2 znaki ASCII. Ten tryb umożliwia interwały czasowe do jednej sekundy pomiędzy znakami podczas transmisji bez generowania błędów. RTU (Remote Terminal Unit) Transmission Mode – każdy bajt wiadomości zawiera dwa 4-bitowe znaki szesnastkowe, a wiadomość jest przesyłana ciągłym strumieniem. Większa efektywna gęstość znaków zwiększa przepustowość w trybie ASCII przy tej samej szybkości transmisji.
84
MODBUS MESSAGE FRAMING
* Ramka wiadomości służy do oznaczania początkowego i końcowego punktu wiadomości, umożliwiając urządzeniu odbierającemu określenie, które urządzenie jest adresowane, oraz określenie, kiedy wiadomość zostanie ukończona. * Umożliwia także wykrycie częściowych komunikatów i zgłoszenie błędów. * Komunikat MODBUS jest umieszczany w ramce danych przez urządzenie nadawcze. Każde słowo tej wiadomości (w tym ramka) jest również umieszczane w ramce danych, która dołącza bit początkowy, bit zatrzymania i bit parzystości. * W trybie ASCII rozmiar słowa wynosi 7 bitów, podczas gdy w trybie RTU; rozmiar słowa to 8 bitów (efektywnie 11 bitami, gdy uwzględnione są bity startu, stopu i parzystości ramki danych). Nie należy mylić ramki danych z ramką danych pojedynczego bajtu (tryb RTU) lub 7- bitową (tryb ASCII). Struktura ramki danych zależy od trybu transmisji (ASCII lub RTU). W MODBUS Plus protokół sieciowy obsługuje tworzenie ramek wiadomości i używa końcowe ograniczniki charakterystyczne dla sieci.
85
ASCII Mode Message Frames
* komunikaty rozpoczynają się od znaku dwukropka ":" (ASCII 3AH) i kończą znakiem pary znaków końca linii karetki (CRLF, ASCII 0DH i 0AH). * Jedynymi dopuszczalnymi znakami dla wszystkich pozostałych pól są cyfry szesnastkowe 0-F.
86
RTU Mode Message Frames
* Komunikaty rozpoczynają się od cichego interwału o długości co najmniej 3,5 znaków wprowadzonych jako wielokrotność czasów znaków przy prędkości transmisji używanej w sieci. * Pierwsze przesyłane pole to adres urządzenia. Dopuszczalne znaki przesyłane dla wszystkich pól są wartościami szesnastkowymi 0-F. * Urządzenie sieciowe stale monitoruje sieć, łącznie z cichymi interwałami, a gdy pierwsze pole jest odbierane (adres) po cichym interwale wynoszącym co najmniej 3,5 znaków czasu, urządzenie dekoduje go, aby określić, czy jest to adresowane urządzenie. * Po ostatnim przesłanym znaku podobny cichy interwał o długości 3,5 znaku oznacza koniec wiadomości, a po tym interwale może rozpocząć się nowa wiadomość. * Cała wiadomość musi być przesłana jako ciągły strumień. Jeśli cichy interwał więcej niż 1,5 znaków pojawia się przed zakończeniem ramki (nie ciągły strumień), urządzenie odbierające usuwa niekompletną wiadomość i zakłada, że następny bajt będzie polem adresu nowej wiadomości.
87
MODBUS FUNCTIONS
* Pole kodu funkcji ramki wiadomości będzie zawierało dwa znaki (w trybie ASCII) lub 8 bitów (w trybie RTU), które informują slave, jaki rodzaj akcji należy podjąć. * Poprawne kody funkcji są z zakresu od 1 do 255, ale nie wszystkie kody będą dotyczyły modułu, a niektóre kody są zarezerwowane do wykorzystania w przyszłości
88
Zadania realizowane przez sterowniki
* Sterowanie maszynami lub procesami zgodnie z zapisanym programem * Realizacja funkcji diagnostycznych sterowanych urządzeń i procesów (również autodiagnostyka) * Kontrola układów zabezpieczeń (specjalne sterowniki bezpieczeństwa np. Wieland) * Komunikacja z systemami zarządzania produkcją i urządzeniami typu HMI (panele operatorskie, monitory itp.) umożliwiająca na bieżąco prezentację i archiwizację stanu procesów produkcyjnych (współpraca z systemami SCADA)
89
CECHY STEROWNIKÓW PLC
* programowalność – zapisywanie algorytmu działania sterownika do pamięci sterownika w postaci programu, * uniwersalność – wykonywanie różnych algorytmów bez konieczności zmian w budowie systemów automatyki, * funkcjonalność – współpraca z układami pomiarowymi, elementami wykonawczymi i innymi urządzeniami sterującymi, * elastyczność – możliwość dostosowania odpowiedniego sterownika do danego systemu automatyki, * niezawodność – wynikająca z zastosowania różnych elementów sprzętowych i programowych zabezpieczających przed uszkodzeniem sterownika, * komfort obsługi – dzięki dobrze rozwiniętemu oprogramowaniu narzędziowemu, * niskie koszty – nawet przy zastosowaniu sterowników PLC do małych zadań automatyki.