Ta strona wykorzystuje pliki cookies. Korzystając ze strony, zgadzasz się na ich użycie. OK Polityka Prywatności Zaakceptuj i zamknij X

USB dla niewtajemniczonych w przykładach na STM32

16-10-2014, 12:39
Aukcja w czasie sprawdzania była zakończona.
Cena kup teraz: 73 zł     
Użytkownik ksiazka_gliwice
numer aukcji: 4612785772
Miejscowość Gliwice
Wyświetleń: 13   
Koniec: 16-10-2014 11:48:13

Dodatkowe informacje:
Stan: Nowy
Okładka: twarda
Rok wydania (xxxx): 2013
Kondycja: bez śladów używania
info Niektóre dane mogą być zasłonięte. Żeby je odsłonić przepisz token po prawej stronie. captcha

USB dla niewtajemniczonych w przykładach na mikrokontrolery STM32

Marcin Peczarski


rok wydania: 2013
stron: 408
format: B5
oprawa: twarda
wydawnictwo: BTC
Książka powstała z myślą o konstruktorach i programistach systemów mikroprocesorowych niewtajemniczonych w arkana USB, który jest obecnie najpopularniejszym interfejsem komunikacyjnym, zarówno w urządzeniach przenośnych jak i stacjonarnych.

Autor na praktycznych przykładach pokazał, jak zaprogramować interfejsy USB w mikrokontrolerach STM32 z rdzeniami ARM Cortex-M3 lub Cortex-M4. Przykłady przetestowano na mikrokontrolerach STM32F103, STM32F107, STM32F207, STM32F407 oraz STM32L152, co daje pełny przekrój "silników" interfejsów USB stosowanych w mikrokontrolerach STM32.
Zamiarem autora było zainteresowanie tematyką USB w systemach embedded zarówno elektroników hobbystów, studentów kierunków związanych z elektroniką lub informatyką, jak i doświadczonych konstruktorów i programistów systemów mikroprocesorowych. Żeby opanować materiał przedstawiony w książce potrzebne jest minimalne doświadczenie w programowaniu mikrokontrolerów i znajomość podstaw języka C.


SPIS TREŚCI:

Przedmowa 7
Ważniejsze skróty użyte w książce 11

1. Architektura USB 13
1.1. Ogólna charakterystyka interfejsu 14
1.2. Warstwa fizyczna 17
1.3. Warstwa łącza 24
1.4. Warstwa protokołu 27
1.5. Deskryptory 36
1.6. Warstwa aplikacji dla danych sterujących 45
1.7. Wiadomości uzupełniające 51

2. Podstawy 55
2.1. Warianty sprzętu 56
2.1.1. Mikrokontrolery STM32 56
2.1.2. Płytki prototypowe 60
2.2. Struktura archiwum z przykładami 67
2.3. Pisanie programów dla wielu wariantów sprzętu 70
2.3.1. Jeden interfejs - wiele implementacji 70
2.3.2. Daj szansę kompilatorowi 71
2.3.3. Kompilacja warunkowa 73
2.3.4. Pliki konfiguracyjne 75
2.4. Biblioteka mikrokontrolera 79
2.4.1. Odmierzanie czasu 79
2.4.2. Diody świecące 81
2.4.3. Wyświetlacz ciekłokrystaliczny 83
2.4.4. Interfejs I2C 88
2.4.5. Interfejs I2S 89
2.4.6. Inicjowanie programu 91
2.4.7. Inicjowanie sprzętu 91
2.4.8. Parametry uruchamiania aplikacji 93
2.4.9. Przerwania 95
2.4.10. Wsparcie dla standardowej biblioteki języka C 98
2.5. Projekt wstępny 99
2.6. Kompilowanie programów 100
2.6.1. Narzędzia 100
2.6.2. Program make 101
2.6.3. Skrypt konsolidatora 112
2.7. Uruchamianie przykładowych programów 112
2.7.1. Uwagi dla użytkowników systemu Linux 113
2.7.2. Uwagi dla użytkowników systemu Windows 117
2.8. Dalsza lektura 117

3. Typowe urządzenia USB 119
3.1. Projekt urządzenia klasy HID 120
3.1.1. Deskryptory 120
3.1.2. Żądania 122
3.1.3. Protokół fazy rozruchu dla myszy i klawiatury 124
3.1.4. Implementacja myszy 126
3.1.5. Dżojstik 139
3.1.6. Funkcja main 142
3.1.7. Kompilowanie i testowanie 143
3.2. Projekt wirtualnego portu szeregowego 144
3.2.1. Deskryptory 144
3.2.2. Żądania i powiadomienia 147
3.2.3. Implementacja 149
3.2.4. Dioda świecąca mocy 160
3.2.5. Kompilowanie i testowanie 161
3.3. Projekt odtwarzacza audio 164
3.3.1. Deskryptory 164
3.3.2. Żądania 172
3.3.3. Synchronizacja 174
3.3.4. Przetwornik cyfrowo-analogowy 175
3.3.5. Implementacja 180
3.3.6. Kompilowanie i testowanie 187

4. Biblioteki 189
4.1. Biblioteka urządzenia USB dla STM32 190
4.1.1. Makra, stałe i struktury danych 191
4.1.2. Konfigurowanie urządzenia 192
4.1.3. Interfejs programistyczny 194
4.1.4. Rdzeń protokołu 206
4.1.5. Przerwania 207
4.1.6. Abstrakcja sprzętu 208
4.1.7. Główna funkcja programu 214
4.1.8. Wybrane fragmenty implementacji 214
4.2. Biblioteka libusb 225
4.2.1. Inicjowanie i zwalnianie biblioteki 226
4.2.2. Wyszukiwanie i otwieranie urządzenia 227
4.2.3. Wybieranie konfiguracji i rezerwowanie interfejsu 230
4.2.4. Przesyłanie blokujące 231
4.2.5. Przesyłanie nieblokujące 233
4.2.6. Pozostałe funkcje 237
4.3. Projekt urządzenia własnej klasy 238
4.3.1. Deskryptory 238
4.3.2. Żądania 238
4.3.2. Implementacja 239
4.3.3. Kompilowanie i testowanie 249

5. Zarządzanie zasilaniem urządzenia USB 253
5.1. Wymagania standardu i praktyczne sposoby ich realizacji 254
5.1.1. Komentarz do zawartości standardu 254
5.1.2. Rozszerzenie biblioteki urządzenia 257
5.2. Projekt wirtualnego portu szeregowego zasilanego z szyny 259
5.2.1. Implementacja 259
5.2.2. Zdalne budzenie 263
5.2.3. Kompilowanie i testowanie 266

6. Projekt urządzenia USB wysokiej szybkości 269
6.1. Deskryptory i żądania 270
6.2. Protokoły pamięci masowej 272
6.2.1. Protokół BOT 272
6.2.2. Protokół SCSI 274
6.3. Implementacja 276
6.3.1. Pamięć zewnętrzna 276
6.3.2. Protokół SCSI 276
6.3.3. Protokoły USB i BOT 286
6.4. Kompilowanie i testowanie 300

7. Projekt kontrolera HID 305
7.1. Biblioteka kontrolera USB dla STM32 306
7.1.1. Kody błędów 307
7.1.2. Abstrakcja sprzętu 308
7.1.3. Niskopoziomowe wejście-wyjście 312
7.1.4. Rdzeń protokołu 318
7.1.5. Funkcje pomocnicze 323
7.1.6. Przerwania kontrolera 324
7.1.7. Wybrane fragmenty implementacji 325
7.2. Obsługa myszy i klawiatury 342
7.2.1. Protokół fazy rozruchu 342
7.2.2. Program demonstrujący 345
7.2.3. Kompilowanie i testowanie 349

8. Projekt kontrolera pamięci masowej 351
8.1. System plików 352
8.1.1. Struktura aplikacji 352
8.1.2. Implementacja 356
8.2. Obsługa pamięci USB Flash 368
8.2.1. Protokół BOT 368
8.2.2. Protokół SCSI 384
8.3. Przykład użycia 391
8.3.1. Program demonstrujący 391
8.3.2. Kompilowanie i testowanie 395

Dodatek. Instalowanie narzędzi dla ARM Cortex-M 397

Literatura 405