Tytuł: | 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 | Cena: | 89.00zł |
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
USB dla niewtajemniczonych w przykładach na mikrokontrolery STM32 --- Pozycja niedostępna.---
|