elecena.pl

Projektowanie systemów wbudowanych na przykładzie rodziny SAM7S z rdzeniem ARM7TDMI

Kristech

Projektowanie systemów wbudowanych na przykładzie rodziny SAM7S z rdzeniem ARM7TDMI RSS 71.27 71.27 57.94 + VAT
Kod:
138
Dodany do bazy:
Ostatnio widziany:
Zmiana ceny:
-1.89% (10.12.2013)
Poprzednia cena:
72.64

Autor: Jacek Augustyn Wydawnictwo IGSMiE PAN, rok wydania: 2007, numer wydania: 1, ilość stron: 304 wymiary: B5, oprawa: twarda, ISBN: 978-83-60195-55-0.

Książka z zakresu projektowania i programowania aplikacji dla 32-bitowych mikrokontrolerów SoC z rdzeniem ARM7TDMI na przykładzie rodziny AT91SAM7S. Omówiono rdzeń ARM7TDMI, listę rozkazów w trybie ARM oraz budowę procesorów rodziny AT91SAM7S. Zagadnienia zilustrowano przykładami wielu praktycznych rozwiązań sterowników wybranych urządzeń peryferyjnych. Przedstawione programy ilustrują metodykę rozwiązywania problemów napotkanych w trakcie projektowania i implementowania wbudowanych systemów sterujących i pomiarowo-sterujących. Książka zawiera między innymi:

* opis rdzenia ARM7TDMI,

* opis listy rozkazów rdzenia ARM7TDMI 32-bit ARM z przykładami,

* opis architektury procesorów AT91SAM7S, większość informacji może być wykorzystana przy programowaniu m.in. rodzin SAM7X, 7SE, 7XC,

* opis jakie pełni funkcje i co powinien zawierać plik startowy dla rdzeni ARM7TDMI dowolnych producentów, opis inicjalizacji kluczowych urządzeń peryferyjnych konfigurowanych podczas startu procesorów SAM7S i 7X (może być pomocna także dla 7SE, 7XC),

* wytyczne jak projektować i programować systemy wbudowane (a więc przeznaczone głównie dla mikrokontrolerów),

* notacja JagNOT zmniejszająca „nazewniczą zmorę” podczas programowaniu urządzeń peryferyjnych,

* opis 13 urządzeń peryferyjnych, ich działania, struktury rejestrów oraz praktyczne przykłady programowania (25 sterowników/modułów):

* kontroler resetu RSTC oraz jego sterownik,

* kontroler pamięci MC oraz jego sterownik,

* układ nadzorujący WDG oraz jego sterownik,

* obwód oscylatora i blok pętli fazowej CKGR/PLL, blok zegara PMC,

* mapowanie pamięci,

* kontroler wyprowadzeń PIO,

* sterownik GPIO,

* sterownik LED,

* sterownik mikrowyłączników,

* sterownik klawiatury w trybie odpytywania,

* sterownik wyświetlacza LCD,

* programowy sterownik menu hierarchicznego (obsługa użytkownika, funkcje wybierane z menu),

* kontroler przerwań AIC oraz jego sterownik (jedno z najistotniejszych urz. peryferyjnych),

* kontroler bezpośredniego dostępu do pamięci DMA PDC oraz jego sterownik,

* port DBGU,

* sterownik DBGU w trybie odpytywania,

* sterownik DBGU z użyciem DMA i kontrolera przerwań,

* śledzenie pracy systemu,

* timer PIT,

* sterownik timera PIT,

* odmierzanie czasu systemowego sterownik klawiatury z użyciem timera i syst. przerwań,

* moduł programowego sprawdzania przekroczenia czasu oczekiwania,

* timer PWM,

* sterownik timera PWM/sterowanie mocą/napięciem,

* sterownik timera PWM do zgłaszania okresowych przerwań,

* przetwornik AD,

* sterownik przetwornika AD w trybie odpytywania,

* sterownik przetwornika AD z użyciem kanału DMA,

* sterownik timera TC do precyzyjnego wyzwalania konwersji w przetworniku AD,

* port USART,

* sterownik portu USART z użyciem kanału DMA i systemu przerwań,

* sterownik komunikacji pakietowej (protokół pakietowy, sterownik przeznaczony do szybkiej wymiany pakietów danych binarnych),

* wybrane informacje o pozostałych urządzeniach peryferyjnych,

* kody sterowników (driverów) mogą służyć jako „klocki” do budowy własnych systemów, można bez żadnych zmian (co zostało przetestowane) użyć je w rodzinie SAM7X i pochodnych,

* 25 przykładów aplikacji stanowiących punkt wyjścia do rozwijania własnych, zależnych od przeznaczenia systemów,

* schemat starter-kit’a z procesorem SAM7S „na amatorską kieszeń”, może być on starter-kit’em umożliwiającym praktyczne programowanie tych procesorów, a równocześnie modułem bazowym do użycia we własnych, docelowych systemach. Spis treści Wstęp 9

1. Informacje ogólne o procesorach rodziny AT91SAM7S 11

1.1. Typy procesorów SAM7S 11

1.2. Architektura procesorów SAM7S 11

1.3. Źródła zegara taktującego 13

1.4. Funkcje wyprowadzeń zewnętrznych 14

1.5. Sygnały żądania przerwania 14

1.6. Mapa pamięci 15

1.7. Typowe struktury rejestrów urządzeń peryferyjnych 16

1.8. Ładowanie programu 17

2. Rdzeń ARM7TDMI 19

2.1. Architektura rdzenia 19

2.2. Tryby ARM i Thumb 21

2.3. Tryby operacyjne 22

2.4. Dostępne rejestry w zależności od trybu pracy 23

2.4.1. Rejestry stanu 23

2.4.2. Rejestry w trybie ARM 24

2.4.3. Rejestry w trybie Thumb 26

2.5. Omówienie listy instrukcji w trybie ARM 27

2.5.1. Wykonywanie warunkowe instrukcji 29

2.5.2. Rozkazy arytmetyczne, logiczne, MOV/MVN 30

2.5.3. Przesuwnik bitowy 31

2.5.4. Modyfikator uaktualniania rejestru CPSR 33

2.5.5. Rozkazy mnożenia 34

2.5.6. Rozkazy rozgałęzień 35

2.5.7. Rozkazy przesłań z lub do pamięci 37

2.5.8. Pseudoinstrukcja LDR Rd,= 41

2.5.9. Rozkazy przesłań wielu rejestrów 42

2.5.10. Rozkaz SWAP/SWAPB 45

2.5.11. Rozkazy MSR/MRS 45

2.5.12. Rozkaz SWI 46

2.5.13. Rozkazy opcjonalnych koprocesorów 47

2.6. Informacje o liście instrukcji w trybie Thumb 47

3. Plik startowy 49

3.1. Struktura pliku startowego 49

3.2. Mapa pamięci aplikacji 50

3.3. Definicje stałych symbolicznych 51

3.4. Inicjalizacja wektorów przerwań i wskaźników stosów 52

3.5. Przekazanie sterowania do dalszej części programu 55

3.6. Inicjalizacje podstawowych urządzeń peryferyjnych 56

3.6.1. Maskowanie przerwań w kontrolerze AIC 57

3.6.2. Konfiguracja wyprowadzenia NRST 57

3.6.3. Kontroler pamięci MC 57

3.6.4. Deaktywacja układu nadzorującego WDT 58

3.6.5. Konfiguracja i wybór zegara 58

3.6.6. Komenda REMAP 59

3.7. Szkielet aplikacji 61

3.8. Ładowanie programu 61

3.8.1. Wariant SAMBAFLASH 61

3.8.2. Wariant JTAGRAM 62

4. Wybrane techniki organizacji plików nagłówkowych w języku C 63

4.1. Pliki nagłówkowe 63

4.1.1. Zastosowania i zawartość plików nagłówkowych 63

4.1.2. Struktura pliku nagłówkowego 64

4.1.3. Organizacja hierarchii plików nagłówkowych 65

4.2. Nazewnictwo rejestrów i bitów urządzeń peryferyjnych oraz używana notacja 65

4.2.1. Rejestry urządzeń peryferyjnych 65

4.2.2. Bity rejestrów urządzeń peryferyjnych 67

4.3. Makra 69

4.4. Funkcje inline 69

5. Podstawowe urządzenia peryferyjne 71

5.1. Kontroler resetu RSTC 71

5.1.1. Interfejs użytkownika 72

5.1.2. Przykład funkcji konfigurującej kontroler RSTC 73

5.2. Kontroler pamięci MC 74

5.2.1. Przykład funkcji konfigurującej kontroler MC 75

5.2.2. Przykład komendy REMAP 75

5.3. Blok zegarów taktujących oraz kontroler PMC 76

5.3.1. Zegar SLOWCLK 77

5.3.2. Główny oscylator MAINCLK 77

5.3.3. Blok PLL 77

5.3.4. Rozprowadzanie sygałów zegarów taktujących, blok PMC 78

5.3.5. Interfejs użytkownika 79

5.3.6. Przykład funkcji konfigurującej zegar taktujący 83

5.3.7. Przykład funkcji załączającej i wyłączającej zegar taktujący dla urządzeń peryferyjnych 83

5.4. Obwód nadzorujący WDT 84

5.4.1. Interfejs użytkownika 85

5.4.2. Przykład funkcji konfigurującej obwód WDT 87

5.5. Inicjalizacja podstawowych urządzeń peryferyjnych w języku C 87

5.6. Szkielet aplikacji 88

6. Organizacja komponentów programowych 91

6.1. Dekompozycja systemu 91

6.2. Sterowniki urządzeń peryferyjnych 91

6.3. Podział sterowników 94

6.3.1. Sterowniki linii wejściowych i wyjściowych GPIO ogólnego przeznaczenia 94

6.3.2. Sterowniki timerów i timerów PWM 95

6.3.3. Sterowniki urządzeń komunikacyjnych 95

6.4. Sterowniki protokołów 97

6.5. Komponenty programowe 97

6.6. Zestawienie sterowników 98

7. Kontroler wyprowadzeń PIO 101

7.1. Funkcje wyprowadzeń zewnętrznych 101

7.2. Wybrane parametry elektryczne wyprowadzeń zewnętrznych 102

7.3. Struktura bloku PIO 102

7.3.1. Wybór trybu GPIO 104

7.3.2. Wybór urządzenia peryferyjnego A lub B 104

7.3.3. Konfiguracja wejścia lub wyjścia w trybie GPIO 104

7.3.4. Zapis i odczyt stanu wyprowadzenia 105

7.3.5. Konfiguracja wyjścia typu multi-drive 105

7.3.6. Rezystor podciągający 105

7.3.7. Filtr przeciwzakłóceniowy 105

7.3.8. Żądanie przerwania 106

7.4. Interfejs użytkownika 106

7.5. Przykład sterowników kontrolera PIO 107

7.5.1. Funkcje konfigurujące i obsługujące tryb GPIO-wejście 108

7.5.2. Funkcje konfigurujące i obsługujące tryb GPIO-wyjście 108

7.5.3. Funkcje konfigurujące wyprowadzenia do trybu urządzenia peryferyjnego 109

7.5.4. Zaawansowana konfiguracja wyprowadzeń 110

7.5.5. Funkcje konfigurujące żądania przerwania 111

7.6. Przykład sterownika diod LED 111

7.7. Przykład funkcji opóźniającej 112

7.8. Przykład sterownika obsługującego mikrowyłączniki 113

7.9. Przykład zastosowania sterowników LED i SW 114

7.10. Przykład sterownika klawiatury w trybie odpytywania 115

7.10.1. Definicje stałych symbolicznych 116

7.10.2. Funkcje składowe 116

7.10.3. Przykład aplikacji wykorzystującej sterownik KB 118

7.11. Przykład sterownika dla wyświetlacza HD44780 119

7.11.1. Zapis wartości do wyświetlacza 119

7.11.2. Definicje stałych symbolicznych dla komend wyświetlacza 121

7.11.3. Funkcje składowe sterownika LCD 122

7.11.4. Przykład użycia sterownika LCD 124

8. Sterownik hierarchicznego menu 125

8.1. Założenia 125

8.2. Organizacja plików 127

8.3. Organizacja danych 128

8.3.1. Definicje struktur danych 129

8.3.2. Umieszczenie struktur danych w pamięci FLASH 131

8.4. Treść funkcji stowarzyszonych z pozycjami menu 131

8.5. Przykład sterownika hierarchicznego menu 132

8.6. Przykład użycia sterownika MNU 136

9. System przerwań 137

9.1. Pojęcia podstawowe 137

9.2. Typowe zastosowania systemu przerwań 137

9.3. Struktura systemu przerwań w procesorach SAM7S 139

9.4. Obsługa żądań przerwania przez rdzeń ARM7TDMI 139

9.4.1. Szczegóły przyjęcia przerwania IRQ 140

9.4.2. Szczegóły przyjęcia przerwania FIQ 141

9.5. Sygnały żądań przerwania od urządzeń peryferyjnych 141

9.5.1. Numerowanie urządzeń peryferyjnych 141

9.5.2. Grupa żądań przerwania pochodząca od bloku systemowego 142

9.5.3. Sygnały żądań IRQ0, IRQ1 oraz FIQ 142

9.6. Struktura wewnętrzna kontrolera przerwań AIC 143

9.6.1. Obwód konfiguracji żądania przerwania 143

9.6.2. Obwód wektoryzacji 144

9.6.3. Fałszywe przerwanie 146

9.7. Interfejs użytkownika 146

9.8. Sterownik kontrolera przerwań AIC 149

9.8.1. Funkcje składowe 149

9.8.2. Szkielet procedury obsługi przerwania IRQ bez zagnieżdżeń 151

9.8.3. Szkielet procedury obsługi przerwania FIQ 152

9.9. Przykłady konfiguracji oraz procedur obsługi przerwania IRQ 152

9.9.1. Konfiguracja oraz procedura obsługi przerwania z kontrolera wyprowadzeń PIO 152

9.9.2. Konfiguracja oraz procedury obsługi przerwań zewnętrznych IRQ0, IRQ1 154

9.10. Zagnieżdżanie przerwań IRQ 155

9.10.1. Przykładowa realizacja makr obsługujących zagnieżdźanie 157

9.10.2. Przykład aplikacji z zagnieżdżonymi przerwaniami 158

9.10.3. Komentarze i uwagi 159

9.11. Przykłady konfiguracji oraz procedur obsługi przerwania FIQ 160

9.11.1. Konfiguracja oraz procedura obsługi przerwania z kontrolera wyprowadzeń PIO 161

9.11.2. Konfiguracja oraz procedura obsługi przerwania zewnętrznego FIQ 162

9.12. Opóźnienia w przyjęciu przerwania 162

9.13. Alternatywna postać wywołań procedur obsługi przerwań 163

9.14. Wybrane informacje o wyjątku SWI 165

9.15. Wybrane informacje o wyjątku UND 166

9.16. Wybrane informacje o wyjątku ABORT 166

10. Kontroler PDC 167

10.1. Informacje ogólne 167

10.2. Interfejs użytkownika 169

10.3. Przykład sterownika kanałów DMA 171

10.3.1. Kanał nadawczy 171

10.3.2. Kanał odbiorczy 171

11. Port DBGU 173

11.1. Informacje ogólne 173

11.2. Interfejs użytkownika 174

11.3. Przykład sterownika portu DBGU w trybie odpytywania 177

11.3.1. Funkcje składowe 178

11.3.2. Przykład aplikacji wykorzystującej sterownik DBGUPOL 179

11.3.3. Implementacja wejścia/wyjścia dla funkcji scanf/printf 181

11.4. Przykład sterownika z użyciem kontrolera PDC i systemu przerwań 182

11.4.1. Funkcje składowe 183

11.4.2. Interpretacja poleceń 186

11.4.3. Makro Trace 188

11.4.4. Przykład aplikacji wykorzystującej sterownik DBGU 188

12. Timer PIT 191

12.1. Informacje ogólne 191

12.2. Interfejs użytkownika 192

12.3. Przykład sterownika timera PIT 193

12.3.1. Funkcje składowe 193

12.3.2. Przykład aplikacji wykorzystującej sterownik PIT 196

12.4. Przykład sterownika obsługującego klawiaturę w przerwaniu zegarowym 197

12.4.1. Funkcje składowe 198

12.4.2. Przykład aplikacji wykorzystującej sterownik KBPIT 199

12.5. Programowe sprawdzanie przekroczenia czasu oczekiwania 201

12.5.1. Funkcje składowe 201

12.5.2. Przykłady aplikacji wykorzystującej komponent PTO 203

13. Timer RTT 205

13.1. Informacje ogólne 205

13.2. Interfejs użytkownika 206

13.3. Przykład sterownika timera RTT 207

13.3.1. Funkcje składowe 207

13.3.2. Przykład aplikacji wykorzystującej sterownik RTT 209

13.4. Organizacja aplikacji z użyciem funkcji typu callback 210

13.4.1. Koncepcja wywołań callback 210

13.4.2. Przykładowa realizacja 211

13.4.3. Wybrane aspekty związane z projektowaniem funkcji callback 212

14. Timery PWM 213

14.1. Informacje ogólne 213

14.1.1. Obwód dzielników sygnałów taktujących 214

14.1.2. Obwód kanałów PWM 215

14.1.3. Konfiguracja i załączenie kanału, zmiana nastaw, wyłączenie kanału 216

14.2. Interfejs użytkownika 217

14.3. Przykłady obliczania nastaw PWM 220

14.4. Przykład sterownika timera PWM 221

14.4.1. Funkcje składowe 221

14.4.2. Przykład aplikacji wykorzystującej sterownik PWM 223

14.5. Przykład sterownika timera PWM do zgłaszania okresowych żądań przerwania 224

14.5.1. Funkcje składowe 224

14.5.2. Przykład aplikacji wykorzystującej sterownik PWMTMR 226

15. Przetwornik ADC 227

15.1. Informacje ogólne 227

15.2. Interfejs użytkownika 229

15.3. Przykład sterownika przetwornika ADC w trybie odpytywania 232

15.3.1. Funkcje składowe 232

15.3.2. Przykład aplikacji wykorzystującej sterownik ADPOL 234

15.4. Przykład sterownika przetwornika ADC z użyciem kanału DMA 235

15.4.1. Funkcje składowe 236

15.4.2. Przykład aplikacji wykorzystującej sterownik ADDMA 238

15.5. Przykład sterownika timera TC2 do wyzwalania przetwornika ADC 239

15.5.1. Stała częstotliwość próbkowania 239

15.5.2. Funkcje składowe 239

15.6. Przykład sterownika przetwornika AD wyzwalanego timerem TC2 241

15.6.1. Funkcje składowe 241

15.6.2. Przykład aplikacji sterującej używającej sterownika ADTC2DMA 242

16. Porty szeregowe USART 245

16.1. Informacje ogólne 245

16.2. Zegar taktujący transmisję 246

16.2.1. Prędkość transmisji w trybie asynchronicznym 247

16.2.2. Ułamkowy podzielnik zegara w procesorach SAM7S128/S256/S512 247

16.2.3. Prędkość transmisji w trybie synchronicznym 247

16.2.4. Prędkość transmisji w trybie ISO7816 248

16.3. Podstawowy tryb pracy portów USART 249

16.3.1. Tryb asynchroniczny 249

16.3.2. Tryb synchroniczny 250

16.3.3. Dodatkowe przerwy pomiędzy wysyłanymi znakami 251

16.3.4. Timeout odbiornika 251

16.3.5. Sygnał BREAK 252

16.3.6. Tryb multidrop 253

16.4. Pozostałe tryby pracy portów USART oraz specyficzne konfiguracje trybów 253

16.4.1. Tryb sprzętowej kontroli przepływu danych 253

16.4.2. Tryb modem 254

16.4.3. Tryb RS485 255

16.4.4. Tryb IrDA 255

16.4.5. Tryb ISO7816 256

16.4.6. Tryby diagnostyczne 257

16.5. Interfejs użytkownika 257

16.6. Przykład sterownika portu USART z pojedynczym buforowaniem za pomocą kanału DMA 264

16.6.1. Funkcje składowe 264

16.6.2. Przykład aplikacji wykorzystującej sterownik U0DMA 268

16.7. Przykład sterownika protokołu komunikacji pakietowej 271

16.7.1. Idea komunikacji pakietowej 271

16.7.2. Analiza struktury i działania sterownika 272

16.7.3. Funkcje składowe sterownika portu USART 274

16.7.4. Funkcja interpretująca rozkazy 278

16.7.5. Przykład aplikacji wykorzystującej sterownik U0PKT 279

Dodatek A. Skrócone informacje o pozostałych urządzeniach peryferyjnych procesorów rodziny SAM7S 283

A.1. Układy czasowo-licznikowe (timery) TC 283

A.2. Port SPI 284

A.3. Port TWI 284

A.4. Port SSC 285

A.5. Port USB-UDP 285

A.6. Programowanie pamięci FLASH 286

A.7. Interfejsy JTAG i ICE 286

A.8. Obwód BOD 286

A.9. Obwód VREG 286

Dodatek B. Przykład środowiska programistycznego dla procesorów z rdzeniem ARM7TDMI 287

B.1. Instalacja i konfiguracja środowiska 287

B.2. Tworzenie nowego projektu 289

B.3. Organizacja struktury plików projektu 290

B.4. Konfiguracja kluczowych opcji projektu 293

B.5. Utworzenie plików wynikowych 297

Dodatek C. Schemat blokowy procesorów rodziny SAM7S oraz przykład zestawu uruchomieniowego 299

Literatura 301

Elecena nie prowadzi sprzedaży elementów elektronicznych, ani w niej nie pośredniczy.

Produkt pochodzi z oferty sklepu