księgarnia informatyczna aton.pl

USB dla niewtajemniczonych w przykładach na mikrokontrolery STM32

Wydawnictwo BTC

Cena:    89.00   71.20zł

USB dla niewtajemniczonych w przykładach na mikrokontrolery STM32


Autor: Marcin Peczarski

ISBN: 978-83-60233-93-1

Ilość stron: 408

Data wydania: 05/2013

Oprawa: Twarda

Format: 16.4x23.5cm

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:

1. Architektura USB
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
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
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
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
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
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
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
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

Cena:    89.00   71.20zł


USB dla niewtajemniczonych w przykładach na mikrokontrolery STM32Książka informatyczna: USB dla niewtajemniczonych w przykładach na mikrokontrolery STM32
Księgarnia informatyczna aton.pl

Tutaj możesz kupić tę książkę w dobrej cenie. Zapraszamy na zakupy do naszej księgarni internetowej.