MIKROSYSTEMY ROZPROSZONE

Podobne dokumenty
Wykład Mikrokontrolery i mikrosystemy Cele wykładu:

Technika Mikroprocesorowa

Temat: Pamięci. Programowalne struktury logiczne.

Wykład Mikroprocesory i kontrolery

WPROWADZENIE Mikrosterownik mikrokontrolery

Mikrokontrolery i mikrosystemy

Technika mikroprocesorowa. W. Daca, Politechnika Szczecińska, Wydział Elektryczny, 2007/08

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

Artykuł zawiera opis i dane techniczne

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

43 Pamięci półprzewodnikowe w technice mikroprocesorowej - rodzaje, charakterystyka, zastosowania

2. Architektura mikrokontrolerów PIC16F8x... 13

System mikroprocesorowy i peryferia. Dariusz Chaberski

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

SML3 październik

Interfejsy systemów pomiarowych

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

Programowanie Mikrokontrolerów

Wykorzystanie standardu JTAG do programowania i debugowania układów logicznych

RODZAJE PAMIĘCI RAM. Cz. 1

Systemy na Chipie. Robert Czerwiński

HC541 8-bitowy bufor jednokierunkowy HC245 8-bitowy bufor dwukierunkowy HC244 dwa 4-bitowe bufory jednokierunkowe

Wstęp Architektura... 13

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka

Pamięci półprzewodnikowe w oparciu o książkę : Nowoczesne pamięci. Ptc 2013/

Programowanie w językach asemblera i C

1.2 Schemat blokowy oraz opis sygnałów wejściowych i wyjściowych

Pamięci półprzewodnikowe

Cyfrowe układy scalone

ZL10PLD. Moduł dippld z układem XC3S200

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

STM32Butterfly2. Zestaw uruchomieniowy dla mikrokontrolerów STM32F107

LEKCJA TEMAT: Zasada działania komputera.

Cyfrowe układy scalone

Szkolenia specjalistyczne

1. Podstawowe wiadomości Możliwości sprzętowe Połączenia elektryczne Elementy funkcjonalne programów...

Programowalne Układy Cyfrowe Laboratorium

AVR DRAGON. INSTRUKCJA OBSŁUGI (wersja 1.0)

dokument DOK wersja 1.0

Wykład 2. Przegląd mikrokontrolerów 8-bit: -AVR -PIC

Architektura komputerów

Systemy uruchomieniowe

Komunikacja w mikrokontrolerach Laboratorium

Rozproszony system zbierania danych.

Opracował: Jan Front

Mikroprocesor Operacje wejścia / wyjścia

Urządzenia zewnętrzne

Standard transmisji równoległej LPT Centronics

UKŁAD SCALONY. Cyfrowe układy można podzielić ze względu na różne kryteria, na przykład sposób przetwarzania informacji, technologię wykonania.

Wykład II. Pamięci półprzewodnikowe. Studia Podyplomowe INFORMATYKA Architektura komputerów

Parametryzacja przetworników analogowocyfrowych

Wykład 4. Przegląd mikrokontrolerów 16-bit: - PIC24 - dspic - MSP430

AVREVB1. Zestaw uruchomieniowy dla mikrokontrolerów AVR. Zestawy uruchomieniowe

SML3 październik

Pamięci magnetorezystywne MRAM czy nowa technologia podbije rynek pamięci RAM?

ZL4PIC. Uniwersalny zestaw uruchomieniowy dla mikrokontrolerów PIC

Kod produktu: MP01611-ZK

Podstawy elektroniki cz. 2 Wykład 2

Ćwiczenie 5 Zegar czasu rzeczywistego na mikrokontrolerze AT90S8515

2. PRZERZUTNIKI I REJESTRY

PROGRAMOWALNE STEROWNIKI LOGICZNE

Ćw. 7: Układy sekwencyjne

Podział układów cyfrowych. rkijanka

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

Pamięci półprzewodnikowe na podstawie książki: Nowoczesne pamięci

Dyski półprzewodnikowe

Cyfrowe układy scalone

MIKROPROCESORY architektura i programowanie

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

MCAR Robot mobilny z procesorem AVR Atmega32

ZL15AVR. Zestaw uruchomieniowy dla mikrokontrolerów ATmega32

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

Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu.

Architektura komputerów

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

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

Wykład II. Pamięci operacyjne. Studia stacjonarne Pedagogika Budowa i zasada działania komputera

Systemy Wbudowane. Arduino - rozszerzanie. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD. Podłączanie wyświetlacza LCD

Pracownia Transmisji Danych, Instytut Fizyki UMK, Toruń. Instrukcja do ćwiczenia nr 10. Transmisja szeregowa sieciami energetycznymi

Ogólne przeznaczenie i możliwości interfejsu sieciowego przepływomierza UniEMP-05 z protokołem MODBUS. ( )

2.1 Porównanie procesorów

Systemy wbudowane. Paweł Pełczyński

Problematyka sieci miejscowej LIN

Podstawy Informatyki JA-L i Pamięci

SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701. SigmaDSP - zestaw uruchomieniowy dla procesora ADAU1701.

Elektronika cyfrowa i mikroprocesory. Dr inż. Aleksander Cianciara

Rejestratory Sił, Naprężeń.

Opis przedmiotu zamówienia CZĘŚĆ 1

LITEcompLPC1114. Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Sponsorzy:

2.1 Przesył danych między procesorem a tabelą zmiennych

Instrukcja do ćwiczenia : Matryca komutacyjna

ARCHITEKTURA PROCESORA,

Opis funkcjonalny i architektura. Modu³ sterownika mikroprocesorowego KM535

Elementy struktur cyfrowych. Magistrale, układy iterowane w przestrzeni i w czasie, wprowadzanie i wyprowadzanie danych.

o Instalacja środowiska programistycznego (18) o Blink (18) o Zasilanie (21) o Złącza zasilania (22) o Wejścia analogowe (22) o Złącza cyfrowe (22)

UKŁADY SEKWENCYJNE Opracował: Andrzej Nowak

Architektura systemu komputerowego

Politechnika Białostocka Wydział Elektryczny Katedra Automatyki i Elektroniki

Tranzystor JFET i MOSFET zas. działania

Projektowanie urządzeń mikroprocesorowych cz. 2 Wykład 4

Transkrypt:

Mikrosterowniki i mikrosystemy rozproszone Materiały do wykładu Tom II MIKROSYSTEMY ROZPROSZONE dr hab. inż. Zbigniew Czaja Gdańsk 2015

Mikrosterowniki i mikrosystemy rozproszone 112 Spis treści Tom I 1. Wstęp...4 2. Mikrosterowniki wbudowane (mikrokontrolery)...6 2.1. Jednostka centralna...8 2.1.1. Architektury procesorów rdzeniowych mk...10 2.2. Pamięci...15 2.3. Struktury mikrokontrolerów...16 2.4. Elementy składowe procesora rdzeniowego...20 2.4.1. Oscylator i dystrybucja sygnałów zegarowych...20 2.4.2. Techniki redukcji mocy i tryby specjalne mk...25 2.4.3. Reset mk...28 2.4.4. Układy nadzorujące - układ watchdog...31 2.4.5. System przerwań...32 2.5. Porty równoległe mk - warstwa multiplekserów i zacisków we/wy...36 2.6. Wewnętrzne urządzenia peryferyjne mk...38 2.6.1. Układy licznikowe/czasowe...40 2.6.2. Przetworniki analogowo-cyfrowe (A/C)...49 2.6.3. Komparatory analogowe...54 2.6.4. Wewnętrzna pamięć EEPROM...56 2.6.5. Sterowniki komunikacji szeregowej...59 2.6.5.1. Interfejs UART...60 2.6.5.2. Interfejs SPI...68 2.6.5.3. Interfejs 1-Wire...76 2.6.5.4. Interfejs I 2 C...79 2.6.5.5. Interfejs CAN...83 2.6.5.6. Interfejs USB...85 2.6.6. System zdarzeń...88 2.7. Typy obudów mk...91 2.8. Rodziny mk...92 2.9. Programowanie mk...95 2.9.1. Programowanie w języku asemblera...96 2.9.2. Programowanie w językach wyższego poziomu...98 2.9.3. Uruchamianie programu mk...101 2.9.4. Sposoby programowania mk z pamiecią FLASH...102 2.9.4.1. Tryb programowania równoległego...102 2.9.4.2. Tryb programowania szeregowego (ISP)...104

Mikrosterowniki i mikrosystemy rozproszone 113 Tom II 1. Wstęp... 115 2. Systemy interfejsowe w mikrosystemach rozproszonych... 120 2.1. Konfiguracje interfejsowe...121 2.2. Techniki adresowania modułów interfejsowych...122 2.2. Funkcje interfejsowe...123 2.3. Metody transmisji w interfejsach szeregowych...123 3. Elementy składowe mikrosystemów rozproszonych... 125 4. Układy buforów... 127 4.1. 8-bitowy jednokierunkowy nieodwracający bufor 74HC541...128 4.2. 8-bitowy dwukierunkowy nieodwracający bufor 74HC245...129 4.3. 8-bitowy rejestr zatrzaskujący 74HC573...130 5. Układy scalone pamięciowe... 132 5.1. Pamięć asynchroniczna SRAM o dostępie równoległym... 134 5.2. Pamięć FLASH o dostępie równoległym...137 6. Programowalne układy logiczne... 146 6.1. Układy logiczne SPLD na przykładzie układu GAL16V8... 147 6.2. Układy logiczne CPLD...154 6.2.1. Rodzina układów ATF15xx firmy Atmel...154 6.2.2. Rodzina Ultra37000 firmy Cypress...156 6.2.2. Rodzina XC9500 firmy Xilinx...158 7. Układy peryferyjne z interfejsem szeregowym standardu SPI...167 7.1. Szeregowe pamięci z interfejsem SPI...170 7.1.1. Szeregowe pamięci EEPROM z interfejsem SPI...172 7.1.2. Szeregowe pamięci SRAM z interfejsem SPI...179 7.2. Zewnętrzne przetworniki analogowo-cyfrowe (A/C)...183 7.2.1. Zewnętrzny przetwornik A/C pracujący na zasadzie SAR...184 7.2.2. Zewnętrzny przetwornik A/C typu signa-delta...187 7.3. Programowalne czujniki temperatury z interfejsem SPI...195 7.4. Kontrolery czujników pojemnościowych...199 7.5. Zewnętrzne przetworniki cyfrowo- analogowe (C/A)...204 7.5.1. Pojedynczy przetwornik C/A...206 7.3.2. Wielokanałowy przetwornik C/A...209

Mikrosterowniki i mikrosystemy rozproszone 114 7.6. Cyfrowe potencjometry sterowane interfejsem SPI...219 7.7. Programowalne wzmacniacze sterowane interfejsem SPI...226 7.8. Klucze analogowe sterowane interfejsem SPI...229 7.8.1. Układy z kluczami PSPT...229 7.8.2. Układy z matrycami przełączającymi...232 7.9. Programowalne generatory sterowane interfejsem SPI...234 7.10. Kontrolery interfejsów szeregowych sterowane interfejsem SPI...240 7.10.1. Kontrolery sieci Ethernet...241 7.10.2. Kontrolery sieci bezprzewodowych...249 7.11. Układy MEMS sterowane interfejsem SPI...255 8. Bibliografia...261 8.1. Literatura podstawowa... 261 8.2. Dokumentacja w postaci plików PDF... 262

Mikrosterowniki i mikrosystemy rozproszone 115 1. Wstęp System elektroniczny jest zorganizowanym zbiorem przyrządów/urządzeń lub układów mającym na celu przetwarzanie danych i ich ekspozycję, jakościową i ilościową ocenę właściwości obiektów badanych (system pomiarowy), sterowanie obiektami (systemy sterujące), itd. System ma interfejs lub interfejsy umożliwiające komunikację między poszczególnymi elementami systemu. W systemie elektronicznym można też wyodrębnić element lub elementy sterowania i kontroli pracy systemu. Ze względu na zastosowanie i budowę systemy elektroniczne można podzielić na: mikrosystemy wbudowane (ang. System on a Chip SoC), mikrosystemy mikrosystemy rozproszone, systemy, makrosystemy. Przez mikrosystem wbudowany (SoC) rozumiemy mikrosystem umieszczony w jednym układzie scalonym. Składa się on najczęściej z mikroprocesora, pamięci danych i programu, urządzeń peryferyjnych cyfrowych i analogowych oraz bloków z logiką programowalną, również nadajników i odbiorników radiowych. Komunikacja pomiędzy wewnętrznymi blokami odbywa się głownie za pomocą interfejsu AMBA (dla rdzeni ART7) (rys. 1.1). Rys. 1.1. Schemat blokowy przykładowego mikrosystemu wbudowanego

Mikrosterowniki i mikrosystemy rozproszone 116 Mikrosystemy wbudowane wykonywane są najczęściej w następujących technologiach: full-custom układy projektowane od podstaw pod konkretne zadanie, optymalizowane pod względem prędkości, pobieranej mocy i wykonywanych zadań, Standard-cell projektowane za pomocą języka HDL. Standardowe komórki łączy się w bloki realizujące zadane funkcje, FPGA matryca składająca się z programowalnych bloków logicznych i połączeń. Pozostałe typy systemów elektronicznych oraz interfejsy na bazie których są budowane przedstawiono na rys. 1.2. Rys. 1.2. Podział systemów elektronicznych ze względu na używane interfejsy W takim przypadku system elektroniczny będziemy rozumieć jako system składający się z przyrządów lub urządzeń połączonych ze sobą za pomocą interfejsów równoległych lub szeregowych, w którym elementem sterowania i kontroli oraz przetwarzania danych najczęściej jest komputer PC. Natomiast makrosystem rozproszony system elektroniczny jest systemem rozłożonym terytorialnie. Przy czym rozłożenie geograficzne poszczególnych elementów może przybierać różną skalę: - od systemu kontroli produkcji np. w obrębie jednej hali produkcyjnej (rys. 1.3), - do systemów globalnych np. metrologicznych z centralą i kontrolą w jednym miejscu, a czujnikami rozrzuconymi po terenie kraju. Rozproszony system elektroniczny może być zbudowany korzystając z sieci przewodowej lub z sieci bezprzewodowej. W pierwszym przypadku najczęściej stosuje się okablowanie standardu Ethernet 10Base-T lub 100Base-TX oraz interfejsy szeregowe np. RS- 485, czy typowe łącza telekomunikacyjne komutowane lub dzierżawione (z zastosowaniem modemów). Sieci bezprzewodowe realizuje się korzystając między innymi ze standardów: - ZigBee (standard IEEE 802.15.4), - Bluetooth (standard IEEE 802.15.1),

Mikrosterowniki i mikrosystemy rozproszone 117 - Wi-Fi (standard IEEE 802.11 ), - GPRS/GSM, 1XRTT/CDMA, UTMS, - WiMAX (standard IEEE 802.16). W tabeli 1.1 przedstawiono zastosowanie i wybrane cechy standardów sieci bezprzewodowych. Tabela 1.1. Wybrane cechy standardów IEEE 802.xx Standard IEEE Nazwa Typ sieci Zastosowanie Cechy Przepływność (teoretyczna) 802.15.4 ZigBee WPAN monitoring i sterowanie Zasięg nominalny 10m maks. 250kb/s 802.15.1 Bluetooth WPAN zastępowanie kabli Zasięg nominalny 10m maks. 1Mb/s 802.11x Wi-Fi WLAN www, e-mail, wideo Zasięg do ok. 100m, maks. 54Mb/s szerokość pasma 20MHz 802.16x WiMAX WMAN szerokopasmowy i Zasięg maks. do ok. 50km, maks. 70Mb/s mobilny dostęp do sieci szerokość pasma skalowalna Internet od 1,5MHz do 20MHz, QoS, NLOS, liczne protokoły WPAN, WLAN, WMAN odpowiednio Wireless Personal Area Network, Wireless Local Area Network, Wireless Metropolitan Area Network. Rys. 1.3. Standardowy rozproszony terytorialnie system elektroniczny (pomiarowo-sterujący) Rozproszony mikrosystem elektroniczny (w skrócie mikrosystem (ms)) można zdefiniować jako zestaw układów elektronicznych stanowiących funkcjonalną, integralną część urządzenia lub samo urządzenie, które komunikują się między sobą za pomocą dedykowanych mikrointerfejsów. Przeważnie komunikacja mikrosystemu z otoczeniem odbywa się również za pomocą dedykowanych interfejsów szeregowych przewodowych, jak również bezprzewodowych radiowych i na podczerwień. W mikrosystemie możemy wyróżnić dwie warstwy: sprzętową płytka drukowana (printed board) z umieszczonymi na niej układami scalonymi, programową czyli oprogramowanie dla mikrokontrolera realizujące zadane przez nas algorytmy, zapisane w pamięci programu FLASH mikrokontrolera lub zewnętrznej pamięci FLASH oraz zapis konfiguracji połączeń i realizowanych funkcji w programowalnych układach logicznych (PLD). Na rys. 1.4 pokazano schemat blokowy elektronicznego mikrosystemu rozproszonego: Elementami sterowania, kontroli i przetwarzania danych są mikrokontroler (mk) i logika programowalna (SPLD, CPLD lub FPGA). Mikroprocesory oraz niektóre mikrokontrolery korzystają z zewnętrznych pamięci danych i programu za pośrednictwem magistral równoległych (magistrala danych, adresów i sterująca).

Mikrosterowniki i mikrosystemy rozproszone 118 Komunikacja pomiędzy elementami mikrosystemu odbywa się za pomocą mikrointerfejsów szeregowych. Mikrosystem porozumiewa się z otoczeniem za pomocą interfejsów szeregowych przewodowych bądź bezprzewodowych. Cały mikrosystem jest zasilany z zasilacza stabilizowanego podłączonego do sieci energetycznej lub z baterii albo akumulatora. Rys. 1.4. Przykładowy schemat blokowy mikrosystemu elektronicznego Czyli mikrosystem składa się z dwóch grup elementów: mikrointerfejsów (interfejsów) organizujących jego pracę (opis w rozdz. 2), bloków (układów) składowych mikrosystemu (opis w rozdz. 3, 4, 5, 6,7). Do pierwszej grupy można zaliczyć interfejsy SPI, I 2 C, 1-Wire, UART oraz pośrednio układy dopasowujące i kontrolery interfejsów szeregowych takich jak: USB, CAN, Ethernet, RS-232, RS-485, LIN. Drugą grupę stanowią układy: mikrokontroler(y) najważniejszy element ms, pamięć RAM opcjonalnie w zależności od typu mk, pamięć ROM opcjonalnie w zależności od typu mk, logika programowalna zastępująca konwencjonalne układy TTL, układy peryferyjne z mikrointerfejsem szeregowym: układy mieszane sygnałowo np. przetworniki A/C, C/A, potencjometry, MEMs, szeregowe pamięci EEPROM, SRAM, itp., kontrolery interfejsów szeregowych, układy peryferyjne z interfejsem równoległym, układy dopasowujące i kontrolery interfejsów szeregowych RS232, RS485, Ethernet, CAN, USB i bezprzewodowych IrDA, Bluetooth, Wi-Fi, Zig Bee. bufory równoległe, blok interfejsu użytkownika (nie zaznaczony na rys. 1.4): wyświetlacze LCD, LED oraz zestawy przycisków, przełączników, itp., układy zasilające.

Mikrosterowniki i mikrosystemy rozproszone 119 Ms sterowane mk, bądź procesorami sygnałowymi, mogą być częścią większego urządzenia, np.: są zrealizowane w postaci karty komputerowej lub pakietu montowanego do danego urządzenia, lub mogą być samodzielnym urządzeniem np.: telefon komórkowy, inteligentny czujnik. Stąd nazywa się je wbudowanymi systemami elektronicznymi. Gdyż, zgodnie z definicją: System wbudowany jest to jakikolwiek produkt elektroniczny zawierający procesor lub procesory, nie dający się zakwalifikować jako komputer biurowy (ogólnego przeznaczenia). Uwzględniając najistotniejsze właściwości i cechy systemów wbudowanych można powiedzieć, że system wbudowany: to mikrokomputer (lub urządzenie), będący częścią jakiegoś większego systemu macierzystego (wbudowany w niego) w celach innych niż dostarczanie obliczeń i działań o ogólnym zastosowaniu, posiada typowo dedykowane oprogramowanie, często bez klawiatury, wyświetlacza, monitora. Typowy system wbudowany składa się z procesora (mikrokontrolera), odpowiednich urządzeń wejścia /wyjścia, pamięci ROM, RAM i oprogramowania. Oczywiście system może być tak rozbudowany, ze będzie potrzebował kilku procesorów na jednej lub kilku płytach głównych, służy do wykonywania zaimplementowanych w niego funkcji takich jak, np. sterowanie ABS (Anti-lock Braking System) i ESP (Electronic Stability Program) w samochodzie, sterowanie linią produkcyjna, trajektorią lotu pocisku, kompresją i dekompresja dźwięku, obrazu i danych w systemach multimedialnych, itd., zwykle ma pracować przez cały czas życia systemu macierzystego, w którym jest on wbudowany; może to być parę lat (nieskomplikowany podzespół dźwiękowy), lub całe dekady (np. system sterowania lotem), nieraz zdarza się tak, ze system jest niszczony po wykonaniu zadania (system wbudowany w pocisk Cruise jest niszczony wraz z detonacją ładunku), musi nadążać za wymaganiami czasowymi dyktowanymi przez środowisko zdefiniowane przez system macierzysty. Wymagania te określają maksymalny czas reakcji na zaistniałe w systemie zdarzenie oraz mogą dotyczyć np. zapewnienia minimalnej częstotliwości próbkowania. Systemy spełniające powyższe wymagania określane są jako systemy czasu rzeczywistego. Można stwierdzić, że prawie wszystkie systemy wbudowane są systemami czasu rzeczywistego.

Mikrosterowniki i mikrosystemy rozproszone 120 2. Systemy interfejsowe w mikrosystemach rozproszonych Praca mikrosystemu jest organizowana za pomocą mikrointerfejsów (interfejsów). Służą one do komunikacji pomiędzy blokami (układami) mikrosystemu. Za ich pośrednictwem przesyła się rozkazy (sterowanie) i dane (np. pomiarowe, konfiguracyjne, statusowe). Stosowane są głównie interfejsy szeregowe, gdyż w porównaniu do magistral równoległych posiadają następujące zalety: mniej linii połączeniowych (przeważnie trzy lub dwie), mniej dodatkowych układów, transmisję charakteryzują łagodniejsze wymagania czasowe, układy transmisyjne zajmują mniej miejsca i zacisków we/wy układu scalonego. Obecnie występują dwa główne standardy interfejsów stosowanych w mikrosystemach do komunikacji między układami scalonymi: SPI (Serial Peripherial Interface), I 2 C (Inter-Integrated Circuit) opracowany przez firmę Philips. Jednak można spotkać również: Microwire (protoplasta interfejsu SPI), 1-Wire przede wszystkim do komunikacji z czujnikami, do budowy mikro-sieci, UART/USART (Universal Asynchronous (Synchronous) Receiver/Transmitter), JTAG (IEEE 1149.1) do testowania i programowania układów cyfrowych, LVDS (Low Voltage Differential Signaling TIA/EIA-644-A). Aby zbudować mikrosystem oparty na jednym z wymienionych interfejsów szeregowych, konieczne są układy zawierające w sobie układ interfejsu. W przypadku mk można wyróżnić dwa sposoby implementacji interfejsów szeregowych: sposób sprzętowy układ interfejsu jest zawarty w mk. sposób programowy interfejs szeregowy jest emulowany za pomocą linii portów mk i odpowiedniego oprogramowania. Zaletą pierwszego rozwiązania jest to, iż obsługa interfejsu przez mk może odbywać się w trybie przerwaniowym. W tym trybie mk może realizować inne zadania, podczas gdy trwa transmisja. Jc jest angażowana tylko przy odczycie lub zapisie danych do rejestru szeregowego danych interfejsu. Powiadomienie jc o zakończeniu transmisji bajta odbywa się za pomocą przerwania od interfejsu, który wpierw musi być właściwie skonfigurowany. Kolejną zaletą jest fakt, iż konwersja równoległo-szeregowa (wpis danej przez jc do bufora szeregowego i wysłanie jej szeregowo przez wyjście danych interfejsu) i szeregoworównoległa (szeregowy odczyt danej z wejścia interfejsu do bufora i odczyt jej przez jc z tego bufora) danych odbywa się sprzętowo, czyli szybko i bez udziału jc, a nie programowo jak ma to miejsce w drugim przypadku. Jednak, gdy mk nie posiada układu interfejsu w jaki wyposażone są układy peryferyjne (np. 1-Wire) to emulacja sprzętowa jest konieczna. Możemy wymienić następujące zastosowania interfejsów szeregowych w mikrosystemach: komunikacja między układami scalonymi (modułami) w ramach mikrosystemu (SPI, I 2 C), komunikacja między mikrosystemami i zewnętrznymi czujnikami w ramach danego urządzenia (1-Wire, CAN, LIN, UART), diagnostyka i programowanie za pomocą komputera PC (UART, USB. JTAG).

Mikrosterowniki i mikrosystemy rozproszone 121 2.1. Konfiguracje interfejsowe Przez konfigurację interfejsową rozumiemy wzajemny sposób połączenia ze sobą modułów interfejsowych (układów scalonych wyposażonych w układy interfejsowe) za pośrednictwem medium transmisyjnego. Wyróżniamy trzy podstawowe konfiguracje interfejsów: magistralowa (parallel bus system) rys. 2.1a, gwiazdowa (star system) rys. 2.1b, pętlowa (loop system) rys. 2.1c. a) b) c) Rys. 2.1. Konfiguracje interfejsowe: a) magistralowa, b) gwiazdowa, c) pętlowa gdzie: koło określa moduł interfejsowy, a strzałka medium transmisyjne Poniżej przedstawiono cechy poszczególnych konfiguracji interfejsowych: Konfiguracja magistralowa: wspólne medium transmisyjne, elastyczna konfiguracja, najtrudniejsze warunki transmisji, każdy moduł posiada wyróżnik logiczny, system N:N (N modułów widzi N modułów), transmisja jest wielokierunkowa, występuje problem konfliktów dostępu do magistrali, możliwość synchronizacji równoległej (broadcasting), szybka transmisja, energochłonna, wrażliwa na zakłócenia. Konfiguracja gwiazdowa: rozdzielne i różne media transmisyjne, sztywna konfiguracja, stałe warunki transmisji, każdy moduł jest wyróżniony fizycznie, system 1:1 (jeden moduł widzi tylko jeden moduł), transmisja dwukierunkowa, brak konfliktów dostępu do medium transmisyjnego, szybka transmisja, energooszczędna, niej wrażliwa na zakłócenia od konfiguracji magistralowej.

Mikrosterowniki i mikrosystemy rozproszone 122 Konfiguracja pętlowa: rozdzielne ale takie same medium transmisyjne, elastyczna konfiguracja, stałe i proste warunki transmisji, każdy moduł jest wyróżniony logicznie, ale posiada wyróżnik logiczny, system 1:1, transmisja jednokierunkowa, brak konfliktów dostępu do medium, wolna transmisja, energooszczędna, wrażliwa na uszkodzenia pętli. Na rys. 2.2 pokazano sposoby podłączenia nadajników (N) i odbiorników (O) w poszczególnych konfiguracjach interfejsowych. a) b) c) Rys. 2.1. Sposoby podłączenia nadajników (N) i odbiorników (O) dla konfiguracji: a) magistralowej, b) gwiazdowej, c) pętlowej Z wymienionych interfejsów tylko interfejs SPI może pracować w trzech konfiguracjach. Interfejsy I 2 C, CAN, LIN oraz 1-Wire pracują w konfiguracji magistralowej, a interfejsy UART i USB w gwiazdowej. 2.2. Techniki adresowania modułów interfejsowych Przez adresowanie modułu interfejsowego (urządzenia peryferyjnego) rozumiemy włączenie go do udziału w transmisji. Wyróżniamy dwie techniki adresowania urządzeń peryferyjnych: Najczęściej spotykana w przypadku układów pojedynczych technika, polegająca na wydzieleniu jednej linii adresującej układ (CS- chip select). Wprowadzenie tej linii w stan aktywny (najczęściej niski) jest jednoznaczne z zaadresowaniem układu do udziału w transmisji. Kolejna technika polega na zawarciu adresu w przesyłanym ciągu danych do układu peryferyjnego. Gdy układ odbiorczy stwierdzi zgodność adresu, to odbiera dane zawarte po adresie.

Mikrosterowniki i mikrosystemy rozproszone 123 Czyli wyróżnikiem logicznym urządzenia jest linia wyboru układu lub jego adres. Pierwszą technikę powszechnie stosuje się w interfejsie SPI dla prostych układów, natomiast drugą w układach składających się z wielu niezależnie programowanych bloków, z których każdy ma swój własny adres. Zawarcie adresu urządzenia w ciągu danych jest również częścią specyfikacji interfejsu I 2 C. 2.3. Funkcje interfejsowe Dla interfejsów szeregowych można wymienić 3 funkcje interfejsowe: funkcja odbiornika (listener, receiver), funkcja nadajnika (talker), funkcja pośrednika (repeater). Funkcja odbiornika składa się z następujących etapów: skompletowanie w buforze szeregowym danych wprowadzanych szeregowo do odbiornika (bitów podawanych na linii/wejściu odbiornika), równoległe przesłanie danych z bufora szeregowego do rejestrów mk za pomocą wewnętrznej magistrali. Funkcja nadajnika jest realizowana w krokach: przesłanie za pomocą magistrali wewnętrznej (równolegle) danej z rejestrów mk do bufora nadajnika, wystawienie szeregowo (bit po bicie) danej z bufora nadajnika na jego linię wyjściową. Funkcja repeatera pozwala wyłącznie na pośredniczenie w transmisji. Realizuje tylko dwa zadania: kompletowanie w buforze szeregowym danych wprowadzanych szeregowo (bit po bicie), po skompletowaniu danej wystawienie jej w następnym cyklu transmisji szeregowo (bit po bicie) na linii wyjściowej. Trzecia funkcja jest konieczna do zbudowania systemu pętlowego. Moduły interfejsowe mk realizują dwie pierwsze funkcje. Proste układy peryferyjne najczęściej mają zaimplementowaną jedną funkcję zależną od aplikacji układu (np. przetwornik A/C tylko wysyła dane, a przetwornik C/A tylko je odbiera). Obecnie coraz więcej układów peryferyjnych jest wyposażanych w funkcję repeatera (np. układy firmy Analog Devices) dzięki czemu można z nich budować systemy pętlowe. 2.4. Metody transmisji w interfejsach szeregowych Wyróżnia się dwa rodzaje transmisji szeregowej: asynchroniczną (UART, USB, CAN, LIN, Ethernet), synchroniczną (SPI, I 2 C). Dane przesyłane asynchronicznie nie są związane z żadnym sygnałem synchronizującym, w szczególności nie towarzyszy im sygnał zegara. Transmisja przebiega zwykle bajtami przesyłanymi w postaci ciągów bitów. Oprócz ośmiu bitów danych przesyła się dodatkowo bit startu oraz opcjonalnie bit parzystości do detekcji błędów i bit stopu. Pomiędzy nadajnikiem, a odbiornikami musi być ustalona częstotliwość przesyłania danych.

Mikrosterowniki i mikrosystemy rozproszone 124 Przy transmisji synchronicznej równolegle z ciągiem bitów danych przesyła się sygnał synchronizujący (zegarowy), który określa chwile, w których stan linii danych odpowiada ważnym wartościom kolejnych bitów. Po każdym bajcie może być dodatkowo przesłany bit parzystości. Sterownik komunikacji szeregowej (w skrócie: port szeregowy) nazywa się dwukierunkowym (dupleksowym), jeśli może równocześnie odbierać i nadawać dane. Jest to możliwe, gdy jest wyposażony w dwie oddzielne linie do nadawania i do odbioru. Tabela 2.1. Podział interfejsów szeregowych ze względu na typ transmisji typ transmisji full-duplex (dwukierunkowa) half-duplex (jednokierunkowa) synchroniczna SPI, Microwire I 2 C asynchroniczna UART, Ethernet CAN, USB, 1-Wire, LIN

Mikrosterowniki i mikrosystemy rozproszone 125 3. Elementy składowe mikrosystemów rozproszonych Rys. 3.1. Przykładowy schemat rozproszonego mikrosystemu elektronicznego z jego elementami składowymi Na rys. 3.1 pokazano typowe elementy składowe elektronicznego mikrosystemu rozproszonego. Komunikacja pomiędzy nimi najczęściej jest zorganizowana za pomocą mikrointerfejsów szeregowych (omówionych w poprzednim rozdziale) oraz magistral równoległych. Czyli można wyodrębnić następujące elementy składowe mikrosystemów: Mikrosterowniki budowane na bazie mikrokontrolerów, procesorów sygnałowych, SoC (ang. System on a Chip), układów programowalnych, szczególnie układów FPGA. Układy cyfrowe obecnie zastępowane przez logikę programowalną opartą na układach SPLD i CPLD oraz FPGA. Pamięci zewnętrzne pamięci danych typu SRAM (rzadko DRAM) oraz pamięci programu typu FLASH. Układy analogowe w skład których wchodzą wszelkiego rodzaju czujniki z wyjściami analogowymi, filtry i wzmacniacze analogowe, itp. Układy interfejsów szeregowych do których zalicza się układy dopasowujące (np. zamiana poziomów interfejsu UART na RS232) oraz kontrolery interfejsów szeregowych. Część tych kontrolerów jest zaimplementowana w mikrokontrolerach, czego ze względu na przejrzystość rys. 3.1 nie zaznaczono, a o czym należy pamiętać. Interfejs użytkownika rozumiemy przez niego zbiór elementów umożliwiających komunikację pomiędzy użytkownikiem a urządzeniem jakim jest nasz mikrosystem. Składa się on z układów ekspozycji: wyświetlaczy tekstowych lub graficznych LCD, LED, OLED itp., diod świecących, lampek, sygnalizatorów dźwiękowych oraz układów interakcji użytkownika: przycisków, klawiszy, przełączników itp. Zasilanie w zależności od typu mikrosystemu układ może zawierać wbudowany zasilacz lub stabilizator napięcia (w przypadku korzystania z zewnętrznego zasilacza), lub może być zasilany bateryjnie. W ostatnim przypadku mikrosystem wyposażony jest w źródło zasilania zbudowane na bazie baterii lub akumulatorów.

Mikrosterowniki i mikrosystemy rozproszone 126 Na szczególną uwagę zasługują układy peryferyjne z mikrointerfejsami szeregowymi. Przynależą one do czterech grup elementów składowych mikrosystemów: układów cyfrowych i analogowych, układów interfejsów szeregowych, pamięci. Wynika to z faktu, iż zawarty w nich mikrointerfejs szeregowy SPI, czy I 2 C, czy 1-Wire jest układem cyfrowym sterującym pracą tych układów. Poza nim implementuje się w nich układy analogowe (np. potencjometry cyfrowe, czujniki temperatury), układy mieszane-sygnałowo (np. przetworniki A/C i C/A, generatory przebiegów analogowych) oraz sterowniki interfejsów szeregowych (np. USB, CAN, Ethernet). Popularne są również szeregowe pamięci typu EEPROM i FLASH. W pierwszej części wykładu omówiono mikrosterowniki, kładąc nacisk na mikrokontrolery zamknięte 8-bitowe. W dalszej części rozdziału zostaną omówione najważniejsze wybrane elementy elektronicznego mikrosytsemu rozproszonego: Cyfrowe układy buforów. Zewnętrzne pamięci typu SRAM i FLASH. Układy logiki programowalnej typu SPLD i CPLD. Układy peryferyjne z mikrointerfejsem szeregowym: szeregowe pamięci EEPROM, SRAM, układy analogowo-cyfrowe (mieszane sygnałowo) układy przetwarzające wielkości fizyczne (np. napięcie, temperaturę, zmianę pojemności) na kod cyfrowy, przetworniki C/A, układy MEMS itp., kontrolery interfejsów szeregowych.

Mikrosterowniki i mikrosystemy rozproszone 127 4. Układy buforów Można wyróżnić dwa podstawowe zastosowania układów buforujących magistralę 8- bitową w systemach z mk: Zwiększenie liczby linii sterujących mk przez podłączenie buforów do portu mk. Wówczas można sekwencyjnie ustawiać 8*N linii wyjściowych (zapamiętywać je na N buforach np. z nieodwracającymi rejestrami zatrzaskowymi 74HC573) lub sekwencyjnie czytać 8*M linii wejściowych (np. z M nieodwracających buforów typu 74HC541). Zwiększenie wydajności prądowej linii wyjściowych. Linie wyjściowe układów scalonych buforów mają zdecydowanie większe wydajności prądowe niż linie mk, zatem nadają się do ich buforowania. Na rys. 4.1 pokazano fragment mikrosystemu wykorzystującego trzy układy buforów. Wszystkie one są podłączone do portu C mk. Moduł ośmiu przełączników, tzw. dip switch typu piano jest buforowany za pomocą układu bufora U4 (74HC541). Odczyt stanu przełączników odbywa się przez podanie na linie OE1 i OE2 stanu niskiego. Rys. 4.1. Fragment schematu ideowego stanowiska laboratoryjnego dla mk ATmega16 Aby zmienić sposób świecenia 8 diod LED, czy wyświetlacza 7-segmentowego należy na porcie C wystawić nową daną, a następnie uruchomić wpis do danego układu (U5 lub U6 typu 74HC573) podając na jego wejście sterujące LE stan niski. Poniżej pokazano funkcje napisane w języku C sterujące poszczególnymi buforami. void SetLedBar(uint8_t bajt) { PORTC = bajt; sbi (PORTA,3); cbi (PORTA,3); return; } Listing 4.1. Wysterowanie linijki 8 diod LED // wystawienie zmiennej na port // zatrzaśnięcie wyjścia układu U5

Mikrosterowniki i mikrosystemy rozproszone 128 void Set7Segm(uint8_t bajt) { PORTC = bajt; sbi (PORTA,4); cbi (PORTA,4); return; } Listing 3.2. Wysterowanie wyświetlacza 7-segmentowego // zatrzaśnięcie wyjścia układu U6 uint8_t ReadDip(void) { uint8_t bajt; cli(); // blokada przerwan DDRC = 0x00; // kierunek IO: wejscia cbi (PORTA,2); // uaktywnienie bufora U4 (od DIP8) bajt = PINC; // próbny odczyt (w celu 1 cyklu opoznienia) bajt = PINC; // odczyt z pinów stanu przełączników sbi (PORTA,2); // wylaczenie ukladu U4 (od DIP8) DDRC = 0xFF; // kierunek IO: wyjscia sei(); // globalne odblokowanie przerwań return bajt; } Listing 4.2. Odczyt stanu przełączników DIP8 4.1. 8-bitowy jednokierunkowy nieodwracający bufor 74HC541 Układ 74HC541 jest 8-bitowym jednokierunkowym nieodwracającym buforem linii z 8 trójstanowymi liniami wyjściowymi. Stan tych linii jest kontrolowany za pomocą wejść OE1 i OE2. Stan wysoki na linii OEn wprowadza linie trójstanowe w stan wysokiej impedancji. Dzięki tej właściwości układ stosowany jest w systemach magistralowych. Natomiast stan niski uaktywnia bufory, zatem to co jest podawane na wejście układu pojawia się na jego wyjściu. Sposób sterowania układem przedstawia tabela 4.1. Tabela 4.1. Sterowanie układem 74HC541 gdzie: OE1 i OE2 aktywują linie wyjściowe (aktywne stanem niskim), An linie wejściowe, Yn trójstanowe linie wyjściowe. Na rys. 4.2a pokazano wyprowadzenia układu 74HC541, a na rys. 4.2b jego logiczny symbol. Jego odpowiednikiem z wyjściami odwracającymi jest układ 74HC540.

Mikrosterowniki i mikrosystemy rozproszone 129 a) b) Rys. 4.2. Układ 74HC541: a) wyprowadzenia układu, b) schemat logiczny 4.2. 8-bitowy dwukierunkowy nieodwracający bufor 74HC245 Układ 74HCT245 jest dwukierunkowym 8-bitowym nieodwracającym buforem linii. Czyli posiada 8 linii, którymi dane mogą być przesyłane w obu kierunkach. Niski poziom na linii OE (output enable input) uaktywnia bufory, czyli to co jest na wejściu układu to pojawia się na jego wyjściu, natomiast wysoki poziom na tej linii wprowadza wszystkie bufory w stan wysokiej impedancji. Odpowiednikiem układu 74HC245 ale z buforami odwracającymi jest układ 74HCT640. Linia wejściowa DIR służy do wyboru kierunku przepływu danych, tak jak pokazano w tabeli 4.2. Tabela 4.2. Sterowanie układem 74HC245 gdzie: An linia wejściowo/wyjściowa, Bn linia wejściowo/wyjściowa, OE aktywacja bufora wyjściowego, DIR kontrola kierunku przepływu danych.

Mikrosterowniki i mikrosystemy rozproszone 130 a) b) Rys. 4.3. Układ 74HC245: a) wyprowadzenia układu, b) schemat logiczny 4.3. 8-bitowy rejestr zatrzaskujący 74HC573 Często istnieje potrzeba zastosowania w mse takich prostych układów jak 8-bitowy rejestr zatrzaskujący. Np. układy te stosuje się w celu zwiększenia liczby linii wyjściowych mk lub np. jako układy pamiętające młodszą część adresu przy adresowaniu zewnętrznej pamięci RAM i ROM np. przez mk 8051, itp. Jednym z takich układów jest 8-bitowy rejestr zatrzaskujący 74HC573. Posiada on następujące właściwości: trzystanowe nieodwracające wyjścia, co pozwala na stosowanie układu w systemach magistralowych, zawiera w sobie 8-bitowy rejestr składający się z przerzutników typu D wyzwalanych poziomem niskim, każdemu przerzutnikowi przyporządkowana jest linia wejściowa i wyjściowa, dla wszystkich przerzutników jest wspólny sygnał wprowadzania danych LE (latch enable) i sygnał sterowania ich buforami wyjściowymi OE. Gdy na linii LE pojawi się poziom niski, to stan sygnałów na liniach wejściowych układu (D0 D7) zostaje zapamiętany w rejestrze. Kiedy sygnał OE jest w stanie wysokim wyjścia układu (Q0 Q7) są w stanie wysokiej impedancji. Stan niski na linii OE spowoduje wystawienie zawartości rejestru na linie wyjściowe. Linia OE nie wpływa na zawartość rejestrów układu. a) b)

Mikrosterowniki i mikrosystemy rozproszone 131 Rys. 4.4. Układ 74HC573: a) wyprowadzenia układu, b) diagram funkcyjny Jak widać z rys. 4.4 układ składa się z rejestru zatrzaskującego złożonego z ośmiu przerzutników typu D wyzwalanych poziomem i bloku ośmiu buforów trójstanowych. Rejestry są sterowane wyłącznie sygnałem LE, a bufory sygnałem OE. Poniżej przedstawiono tabelę 4.3 opisującą sposób sterowania tym układem. Tabela 4.3. Sterowanie układem 74HC573 Rys. 4.5. Schemat logiczny układu 74HC573

Mikrosterowniki i mikrosystemy rozproszone 132 5. Układy scalone pamięciowe W skład mse często mogą wchodzić układy pamięciowe. Szczególnie, gdy użyty mk nie posiada wewnętrznej pamięci danych i programu. Generalnie, ze względu na sposób trzymania danych scalone układy pamięciowe można podzielić na trzy grupy: pamięci ulotne, trzymają dane tylko wtedy, gdy są zasilane. Zanik napięcia zasilania powoduje utratę przechowywanych informacji, są to: statyczne SRAM pseudostatyczne PSRAM, dynamiczne DRAM, pamięci stałe, zachowane dane nie ulegają skasowaniu po wyłączeniu napięcia zasilania, jednokrotnie programowane: programowane przez producenta: ROM, mask-rom, jednokrotnie programowane przez użytkownika: PROM, OTPROM, pamięci nieulotne, zachowane dane nie ulegają skasowaniu po wyłączeniu napięcia zasilania, istnieje możliwość ich wielokrotnego programowania przez użytkownika: reprogramowane (programowane i kasowane) w systemie docelowym: EEPROM, FLASH, F-RAM, pamięci statyczne RAM z podtrzymaniem bateryjnym NOVRAM, pamięci hybrydowe: NVRAM złożone z pamięci SRAM i EEPROM, wielokrotnie programowane przez użytkownika: EPROM, UV-PROM. Pierwsza grupa to pamięci RAM (Random Access Memory). Są one pamięciami, w których dane mogą być zarówno zapisywane, jak z niej odczytywane z czasem praktycznie niezależnym od miejsca pobytu informacji w pamięci. Pamięć SRAM przechowuje bity informacji w postaci stanów przerzutników bistabilnych. Każda komórka pamięci składa się z około od 4 do 6 tranzystorów. Układy SRAM mogą mieć względnie niski pobór mocy w trybie podtrzymywania zawartości pamięci, natomiast w trybie pracy pobierają dość duży prąd. Zaletą tych pamięci jest prostota sterowania oraz szybkość (pamięci te wykonane z arsenku galu GaAs mają czas dostępu poniżej 1ns). Dzięki prostemu sterowaniu są one najczęściej stosowane w mse. W pamięci DRAM informacja przechowywana jest w postaci ładunków zgromadzonych w kondensatorach, jakie powstają pomiędzy emiterami tranzystorów MOS i podłożem układu. Dane w tych pamięciach mają tendencje do zanikania i wymagają ciągłego odnawiania. Proces taki nazywa się odświeżaniem i wymaga specjalnych układów do wytwarzania sygnałów odświeżających. Zaletą układów DRAM jest niski koszt produkcji, ze względu na niewielką powierzchnię zajmowanej powierzchni krzemu. Każda komórka pamięci DRAM ma tylko jeden tranzystor MOS. Z zalety tej wynika również inna cecha: pamięci DRAM posiadają znacznie większą pojemność od pamięci SRAM (obecnie dostępne są na rynku pamięci SRAM do 512kB). Wadą tych układów jest skomplikowane sterowanie, wynikające z multipleksowania adresów rzędów i kolumn (pamięci te adresuje się jak macierz) oraz wynikającego z tego dłuższego czasu dostępu, który jest dodatkowo zwiększany o czas potrzebny na odświeżanie.

Mikrosterowniki i mikrosystemy rozproszone 133 Istnieje cały szereg pamięci nieulotnych (część z nich zestawiono w tabeli 2.1). Poniżej przedstawiono najczęściej spotykane typy tych pamięci (ze względu na technologię wykonania): Pamięć ROM (Read Only Memory) służy tylko do odczytywania. Informacja w pamięci ROM jest zapisywana w czasie produkcji w formie maski, na podstawie dostarczonego wzorca. Dla zamawiającego taką pamięć oznacza to wysoki koszt jednostkowy. Dlatego pamięci ROM używa się jedynie w urządzeniach, które są produkowane w długich seriach. Pamięć EPROM jest pamięcią programowaną elektrycznie. Użytkownik sam programuje swój wzór informacji, jaką chce zapisać. Gdy układ posiada okienko ze szkła kwarcowego, można taką pamięć kasować i programować ponownie. Jest to duża zaleta w fazie uruchamiania mse. Kasowanie odbywa się na ogół przy pomocy światła ultrafioletowego. Pamięć EPROM umieszczona w obudowie plastikowej, znacznie tańszej od obudowy ceramicznej z okienkiem szklanym, nosi nazwę OTP (One Time Programmable). Komórki pamięci EPROM są tranzystorami MOS z pływającymi bramkami. Są one programowane przez wstrzykiwanie elektronów o wysokiej energii. Komórka taka zawiera 0, podczas gdy nie zaprogramowane komórki zawierają 1. Zaprogramowanego w ten sposób tranzystora nie można wprowadzić w stan przewodzenia i usunąć zgromadzonego w nim ładunku. Można tego dokonać jedynie przez kasowanie światłem UV. Promienie UV dostarczają elektronom energii, wystarczającej do ponownego przejścia przez barierę energetyczną w warstwie izolacyjnej dwutlenku krzemu wokół pływającej bramki. Układy EPROM mogą być kasowane i ponownie programowane około 100 razy. Pamięci EEPROM są układami, które nie tylko są elektrycznie programowalne, ale również elektrycznie kasowane. Mają ograniczoną liczbę cyklów programowania od około 10000 razy do 1000000 razy. Komórka pamięci EEPROM składa się z tranzystora NMOS (Metal Nitride Oxide Semiconductor). Do każdej komórki można wprowadzić ładunek elektryczny, który przechowywany jest w izolowanej warstwie azotku krzemu, znajdującej się między bramką tranzystora, a podłożem z tlenku krzemu. Ładowanie inicjuje się poprzez tzw. efekt tunelowy. Powstaje on po przyłożeniu wysokiego napięcia (20-40V) do bramki tranzystora. Przez zmianę polaryzacji tego napięcia, układ można programować, bądź też kasować. Pamięć błyskowa (FLASH) jest również pamięcią programowaną i kasowaną elektrycznie. Koszt jej produkcji jest niższy niż układu EEPROM. W porównaniu z pamięcią EEPROM cechuje się ona szybszymi czasami programowania i kasowania. Najczęściej pamięć ta składa się z sektorów, na których mogą być wykonywane odpowiednie operacje, posiada własną listę komend automatyzujących programowanie i kasowanie pamięci. Pamięć FRAM zbudowana jest z materiału ferroelektrycznego o nazwie PZT (związek ołowiu, cyrkonu i tytanu), którego cechuje możliwość zapamiętania jednego z dwóch kierunków pola elektrycznego. Do zapamiętania informacji wykorzystuje się efekt ferroelektryczny - pod wpływem działania pola elektrycznego następuje trwała zmiana polaryzacji cząstek. Nieobecność pola elektrycznego nie powoduje zmiany polaryzacji. Komórkę pamięci można sobie wyobrazić jako kondensator z materiałem ferroelektrycznym jako dielektrykiem, ładowany na przemian napięciem o przeciwnej polaryzacji. Poprzez zmianę polaryzacji ładunków w takim kondensatorze można zapamiętać dwa stabilne stany odpowiadające stanom logicznym 0 i 1. Jej zalety to: mały pobór energii, bardzo duża trwałość (co najmniej 10 mld. cykli), bardzo duża szybkość zapisu (rzędu nanosekund), a wady to: duży rozmiar komórki, kłopotliwe odświeżanie, mała kompatybilność z technologią CMOS.

Mikrosterowniki i mikrosystemy rozproszone 134 5.1. Pamięć asynchroniczna SRAM o dostępie równoległym Pamięć o dostępie asynchronicznym SRAM zostanie przedstawiona na przykładzie układu K6R4008C1D firmy Samsung Electronics. Jest to pamięć SRAM o pojemności 512 K x 8 bitów wykonana w technologii CMOS o małym poborze mocy. Na rys. 5.1 pokazano schemat logiczny i wyprowadzenia układu. Są one zgodne ze standardem przemysłowym dla pamięci o tej pojemności. a) b) Rys. 5.1. Pamięć SRAM K6R4008C1D: a) schemat logiczny, b) wyprowadzenia układu Rys. 5.2. Schemat blokowy układu K6R4008C1D

Mikrosterowniki i mikrosystemy rozproszone 135 Na rys. 5.2 pokazano schemat blokowy układu pamięci SRAM. Składa się on z układu kontrolnego, do którego podłączone są sygnały CS, WE i OE za pośrednictwem których steruje się pamięcią, układu we/wy służącego do wymiany danych pomiędzy matrycą pamięci składającej się z 1024 rzędów i 512 x 8 kolumn, a liniami danych I/O 1 do I/O 8. Wybór komórki (bajtu) do zapisu lub odczytu odbywa się za pomocą układów wyboru wierszy i rzędów, do których podłączone są linie adresowe A0 A18. W tabeli 5.1 przedstawiono znaczenie poszczególnych sygnałów. Tabela 5.1. Funkcje sygnałów dla układu K6R4008C1D Znaczenie linii sterujących pamięcią asynchroniczną SRAM: Linia CS służy do uaktywnienia układu. Stan niski na tej linii aktywuje układ do transmisji. Linia OE jest wykorzystywana w trakcie czytania danej, niski poziom na tej linii uaktywnia bufory wyjściowe pamięci. Niski poziom na linii WE uaktywnia bufory wejściowe i dezaktywuje wyjściowe (niezależnie od stanu na linii OE), czyli służy do wprowadzenia danej do pamięci za pośrednictwem dwukierunkowych linii I/O 1 I/O 8, pod adres wskazany przez linie A 0 A 18. Tabela 5.2. Zastosowanie sygnałów sterujących dla układu K6R4008C1D Jak widać z tabeli 4.2, aby móc odczytać bajt z pamięci musi być ona aktywna (CS stan niski (L) oraz na linii OE ma być stan niski (aktywny), a na linii WE stan wysoki (nieaktywny). Podobnie jest dla zapisu bajta. W tym przypadku na linii CS jest stan niski i na linii WE też stan niski (warto aby OE było w stanie wysokim). Na poniższych rysunkach pokazano dwa przebiegi cyklu odczytu bajtu z pamięci SRAM oraz dwa zapisu do niej bajta.

Mikrosterowniki i mikrosystemy rozproszone 136 Przy odczycie bajta sygnał WE musi być w stanie wysokim. W przeciwnym razie (gdy WE będzie w stanie niskim) będziemy mieli zawsze cykl zapisu. Rys. 5.3. Przebiegi czasowe cyklu odczytu danych z pamięci (zmiana adresu) Rys. 5.4. Przebiegi czasowe cyklu odczytu danych z pamięci (sterowanie sygnałem OE) Rys. 5.5. Przebiegi czasowe cyklu zapisu danych do pamięci (sterowanie sygnałem WE) Rys. 5.6. Przebiegi czasowe cyklu zapisu danych do pamięci (sterowanie sygnałem CS)

Mikrosterowniki i mikrosystemy rozproszone 137 Chwile, w których sygnały CS, OE, czy WE mogą przyjmować dowolny stan (oczywiście 0 lub 1 ) zostały zaznaczone jako szare pola między linią reprezentującą stan niski a linią reprezentującą stan wysoki. 5.2. Pamięć FLASH o dostępie równoległym Szczególną zaletą pamięci FLASH (błyskowych) w stosunku do pamięci EEPROM jest krótki czas kasowania i zapisu. Wynika to między innymi z faktu, iż podczas jednej operacji programowania wykonywane jest zapisywanie lub kasowanie na raz wielu komórek pamięci (zgrupowanych w tzw. sektor). Do programowania i kasowania pamięci błyskowych potrzebne jest podwyższone napięcie około 12 V. Obecnie napięcie to jest wytwarzane przez wbudowaną w strukturę układu pamięci przetwornicę DC/DC. Zatem do programowania i kasowania pamięci FLASH wystarcza pojedyncze napięcie zasilania np.: 5 V, 3 V, 1,8 V. Ze względu na typ zastosowanej w komórkach pamięci bramki logicznej wyróżnia się dwa rodzaje pamięci FLASH. NOR - ma długie czasy zapisu i kasowania, ale umożliwia bezpośredni dostęp do każdej komórki pamięci. Z tego względu nadaje się do przechowywania danych, które nie wymagają częstej aktualizacji, ale wymagany jest bezpośredni dostęp do każdej komórki, np. kod programu mk. NAND w stosunku do pamięci typu NOR ma krótszy czas zapisu i kasowania, większą gęstość upakowania danych, korzystniejszy stosunek kosztu pamięci do jej pojemności oraz dziesięciokrotnie większą wytrzymałość. Jej główną wadą jest sekwencyjny dostęp do danych, przez co może być stosowana jako pamięć masowa, np. w kartach pamięci, lecz jest bezużyteczną jako pamięć trzymająca kod programu. Ze względu na architekturę i sposób obsługi transmisji danych można wyróżnić następujące interfejsy pamięci FLASH o dostępie równoległym (zachowano oryginalne nazewnictwo): Conventional, Burst-mode, Page-mode, Simultaneous Read/Write, I NAND. Pamięci FLASH typu NOR z interfejsem standardowym (conventional) zostaną przedstawione na przykładzie 8-Mbitowej pamięci typu Am29F080B o organizacji 1 M x 8 bitów. Jest to pamięć firmy Spansion należącej do AMD (Advanced Micro Devices) i Fujitsu. Pamięć ta posiada następujące właściwości: pojedyncze zasilanie, 5V +-10% dla czytania, zapisu i operacji kasowania programu, maksymalny czas dostępu 55ns, niskie zużycie energii, maksymalnie 25 ma na odczyt i 30 ma na programowanie oraz czyszczenie, mniej niż 1 µa podczas trybu standby, elastyczna architektura oparta na sektorach, 16 zunifikowanych sektorów, każdy po 64 kb, wszystkie kombinacje sektorów mogą być kasowane, możliwość kasowania całego układu, ochrona grupy sektorów przed zapisem, wsparcie sprzętowe dla zablokowania i odblokowania programowania i czyszczenia dla wszystkich kombinacji sektorów, wbudowany algorytm kasowania automatycznie kasuje cały układ lub wybraną kombinację sektorów, wbudowany algorytm programowania automatycznie wpisujący i weryfikujący dane spod zadanego adresu,

Mikrosterowniki i mikrosystemy rozproszone 138 minimum 1 mln. gwarantowanych cykli programowania i kasowania, czas trzymania danych 20 lat, wyprowadzenia pamięci i jej sposób obsługi (polecenia) zgodne ze standardem JEDEC dla pamięci FLASH zasilanych pojedynczym napięciem, obsługuje programowe metody sprawdzania stanu pamięci (czy jest w cyklu kasowania, czy w cyklu programowania, itd.), obsługuje sprzętowe metody odpytywania stanu pamięci: wyjście RY/BY#, posiada linię wejściową RESET# pozwalającą na wymuszenie trybu odczytu. a) b) Rys. 5.7. Pamięć FLASH Am29F080B: a) schemat logiczny, b) wyprowadzenia układu Znaczenie linii pamięci FLASH z interfejsem standardowym: A0 An (n+1)-bitowa magistrala adresowa (dla Am29F080B n = 19), wystawiany jest na niej n-bitowy adres komórki do odczytu lub zapisu, DQ0 DQ7 8-bitowa dwukierunkowa magistrala danych służąca do wprowadzania i wyprowadzania danych spod adresów ustawianych na magistrali adresowej, CE# (Chip Enable) wybór (aktywacja) układu poziomem niskim, WE# (Write Enable) niski poziom na tej linii powoduje zapis bajta pod wskazany adres (ale nie zapis bajta do pamięci FLASH to wymaga uruchomienia procedury programowania), OE# (Output Enable) niski poziom na tej linii powoduje wystawienie na magistrali danych danej spod wskazanego adresu, RESET# sprzętowy reset wprowadzający pamięć w tryb odczytu, aktywny stanem niskim, RY/BY# wyjście służące do sprawdzania czy pamięć zakończyła wewnętrzne algorytmy kasowania/programowania, stan wysoki oznacza gotowość na przyjęcie kolejnych poleceń, stan niski informuje, że pamięć jest zajęta (niegotowa), bo jest w trakcie wykonywania wewnętrznych operacji. Pamięć Am29F080B produkowana jest w obudowach typu 40-pin TSOP i 44-pin SO. Zaprojektowano ją z możliwością programowania w systemie ze standardowym 5V zasilaniem. Ponadto może być programowana za pomocą standardowego programatora do pamięci EPROM.

Mikrosterowniki i mikrosystemy rozproszone 139 Pamięć posiada wbudowany algorytm programowania (wewnętrzny algorytm, który automatycznie weryfikuje szerokość i czas trwania impulsów programowania). Zawiera ona także wbudowany algorytm kasowania. Podczas kasowania urządzenie automatycznie kontroluje czas i szerokość sygnałów oraz weryfikuje właściwe komórki docelowe. System nadrzędny (np. mk) może wykrywać zakończenia operacji kasowania lub programowania poprzez czytanie bitów statusu : DQ7 (DATA#Polling) i DQ6 (toggle) lub kontrolę linii RY/BY#. Po zakończeniu cyklu programowania/kasowania pamięć jest gotowa do czytania z niej danych lub oczekuje na następną komendę. Sektorowa architektura pamięci pozwala na kasowanie, czy ponowne programowanie wybranych sektorów pamięci bez wpływu na pozostałe sektory. Sprzętowa ochrona danych wykrywa spadek poziomu napięcia zasilania poniżej założonego progu i wstrzymuje proces zapisywania danych do pamięci. Pamięć można przełączyć w tryb standby, w celu znacznej redukcji pobieranej mocy. Rys. 5.8. Schemat blokowy pamięci Am29F080B Na rys. 4.8 przedstawiono schemat blokowy pamięci Am29F080B. Jak widać, składa się ona z wielu bloków, z których część służy do obsługi procesu zapisu do pamięci (blok Cell Matrix), są nimi generatory napięć PGM Voltage Generator i Erase Voltage Generator. Pracą całego układu zarządza blok State Control / Command Register. Komórki pamięci są wybierane za pomocą układu dekodera adresu. Sterowanie przepływem danych odbywa się za pośrednictwem dwukierunkowego bufora i rejestru zatrzaskującego oraz bloku Chip Enable / Output Enable Logic. Rejestr komend (Command Register) składa się z zatrzasków, które przechowują komendy z adresami i danymi potrzebnymi do wykonania komendy. Zawartość rejestru służy jako wejścia dla wewnętrznej maszyny stanu. Wyjścia maszyny stanu dyktują funkcje urządzenia. Funkcje te (operacje na magistralach układu) zestawiono w tabeli 5.3.

Mikrosterowniki i mikrosystemy rozproszone 140 Tabela 5.3. Operacje na magistralach pamięci Am29F080B Aby odczytać dane z pamięci system musi zapewnić niski stan na wejściach CE# i OE#. Linia CE# aktywuje pamięć. Linia OE# steruje buforem wyjściowym. Sygnał na linii WE# powinien być na poziomie V IH. Żadna komenda nie jest wymagana w tym trybie. Jest on trybem domyślnym po włączeniu napięcia zasilania. Zatem mk może podawać na linie adresowe A0 A19 adresy danych, które chce otrzymać na liniach danych DQ0 DQ7. Urządzenie pozostaje dostępne do odczytu dopóki nie zmieni się zawartość rejestru komend. Aby wprowadzić bajt do pamięci (dokładniej: do jej rejestru komend) wchodzący w skład sekwencji komendy (np. programującej czy czyszczącej wybrane sektory pamięci), system musi zapewnić następujące stany na wejściach: WE# i CE# stan niski V IL oraz na wejściu OE# stan wysoki V IH. Operacja kasowania uruchamiana po wprowadzaniu do pamięci komendy kasowania może skasować jeden sektor, wiele sektorów lub całe urządzenie. Tablica adresów sektorów wskazuje na adres w przestrzeni jaką każdy sektor zajmuje. Adres sektora to najstarsze bity adresu potrzebne aby jednoznacznie zidentyfikować sektor (patrz tabela 5.4). Tabela 5.4. Tablica adresów sektorów pamięci Am29F080B Podczas operacji czyszczenia lub programowania system może sprawdzić status operacji przez czytanie bitów statusu DQ7-DQ0 wystawianych na magistrali danych. Po włączeniu zasilania domyślnie ustawiany jest tryb odczytu danych. Tryb ten jest ustawiany domyślnie także po wykonaniu wbudowanego algorytmu programowania

Mikrosterowniki i mikrosystemy rozproszone 141 (Embedded Program Algorithm) lub wbudowanego algorytmu kasowania (Embedded Erase Algorithm). Odczyt jest możliwy bez użycia jakichkolwiek rozkazów. Pamięć posiada tryb autoselect, który umożliwia identyfikację urządzenia oraz producenta, a także weryfikację chronionych sektorów. Odbywa się to przez odczyt kodów identyfikacyjnych wystawianych na DQ7-DQ0. Ten tryb jest niezbędny dla urządzeń programujących pamięć, gdyż na podstawie uzyskanych informacji wybierają one właściwy algorytm programujący. Poprawne sekwencje rozkazowe przedstawia tabela rozkazów (tabela 4.5). Zapis niepoprawnych wartości adresu i danych lub zapis sekwencji w nieodpowiedniej kolejności przestawia pamięć w tryb odczytu danych. Po poprawnym wpisie sekwencji rozkazowej następuje natychmiastowe wykonanie danego rozkazu. Adres jest "zatrzaskiwany" w momencie pojawienia się opadającego zbocza na linii WE# lub CE#, w zależności od tego, które z tych zdarzeń wystąpi jako ostatnie. Tabela 5.5. Formaty poleceń sterowania pamięcią Am29F080B Z tabeli 5.5 widać, iż zgodnie ze standardem JEDEC dla pamięci tego typu każda sekwencja rozkazowa składa się z: dwóch cykli odblokowujących: w pierwszym cyklu następuje wpis wartości AAh pod adres 555h, w drugim cyklu wpisywana jest wartość 55 pod adres 2AAh, w trzecim cyklu następuje wprowadzenie kodu polecenia do rejestru komend, czyli zapis kodu komendy pod adres 555h, po tym cyklu pamięć znajduje się w trybie zgodnym z wydanym rozkazem, czwarty cykl zależny jest od wydanej komendy: w trybie autoselect następuje odczyt danych identyfikacyjnych,