Sposób ST na USB
| Prezentacje firmowe ArtykułyCoraz większa liczba mikrokontrolerów wprowadzanych przez producentów na rynek jest wyposażana w wewnętrzny interfejs USB. O ile problem "sprzętowy" został rozwiązany przez wielu producentów, to - obecnie - niewielu z nich dostarcza bezpłatnie dobrej jakości biblioteki będące programową częścią stosu USB. Bez nich najdoskonalszy interfejs sprzętowy jest jedynie efektowną, ale trudną w użyciu, ozdobą.
Kłopoty z samodzielną obsługą interfejsu USB, na jakie napotykają konstruktorzy i programiści, doskonale znają inżynierowie z firmy STMicroelectronics, którzy opracowali i bezpłatnie udostępnili zestaw bibliotek programowych obsługujących interfejsy device USB-FS oraz OTG-USB-FS w mikrokontrolerach STM32. Noszą one nazwę "STM32F10xxx USB-FS-Device firmware", lokalizację tych bibliotek w projekcie wykorzystującym interfejs USB pokazano na rys. 1.
Ponieważ programiści przygotowujący projekty dla STM32 mają do dyspozycji kilka środowisk IDE (m.in. RIDE, TrueSTUDIO, HiTOP, EWARM i MDK-ARM), twórcy bibliotek przygotowali je w bardzo uporządkowany sposób (rys. 2), minimalizujący kłopoty programistów: rozdzielono i logicznie nazwano katalogi projektów dla poszczególnych IDE, w osobnych katalogach znajdują się pliki źródłowe przykładowych projektów, pliki *.inc, a także pliki źródłowe programów realizujących najniższe warstwy stosu.
Kunsztu programistów przygotowujących biblioteki i projekty przykładowe dowodzi m.in. fakt, że wszystkie projekty wykorzystują te same pliki źródłowe, co - pomimo sformalizowania standardu języka C - w przypadku wielu projektów programistycznych nie jest oczywiste.
Dodatkowe informacje i materiały opisane w artykule są dostępne na stronie www.st.com/stm32 |
Biblioteki "STM32F10xxx USB-FS-Device firmware" mogą być stosowane w projektach dla wszystkich mikrokontrolerów z rodziny STM32 wyposażonych w interfejs USB lub USB-OTG: F102, F103, F105 oraz F107. Na rys. 3 przedstawiono zestawienie wyposażenia wewnętrznego wszystkich dostępnych obecnie mikrokontrolerów STM32, łącznie z podrodzinami F100 i F101, które nie są wyposażone w USB.
Twórcy bibliotek zaimplementowali mechanizmy sterowania przepływem danych, a także trzy metody transferu danych: przerwaniową (interrupt transfer), blokową (bulk transfer) oraz izochroniczną - niezbędną w aplikacjach wykorzystujących strumieniowy transfer danych.
Mechanizmy te wykorzystywano w 7 przykładowych aplikacjach, dla których kompletne oprogramowanie udostępniono na stronie www.st.com w postaci archiwum, którego zawartość została opisana w dokumencie UM0424.
Wśród opisanych aplikacji znajdują się m.in.:
- stereofoniczne głośniki USB,
- strumieniowy odtwarzacz audio, wykorzystujący interfejs OTG-USB,
- wykorzystanie joysticka dołączonego do mikrokontrolera jako myszki USB,
- urządzenie mass-storage obsługujące polecenia SCSI,
- emulowany na USB port COM, który umożliwia jeden z najprostszych sposobów komunikowania się aplikacji na PC z zewnętrznym systemem wykonanym na mikrokontrolerze z rodziny STM32,
- urządzenie klasy HID (Human Interface Device), komunikujące się z PC za pomocą standardowego sterownika systemowego HID w Windows,
- DFU (Device Firmware Upgrade)
- zestaw oprogramowania umożliwiającego wymianę oprogramowania przechowywanego w pamięci Flash mikrokontrolera poprzez USB.
Aplikacje przygotowane przez inżynierów firmy STMicroelectronics są nie tylko efektowne, ale także - dzięki ich uporządkowaniu - użyteczne w praktyce, łatwe w zrozumieniu i podatne na uzupełnienia oraz samodzielne modyfikacje.
Jedyną "niedogodnością" jest brak zaimplementowanej w nich obsługi trybu USB host oraz pełnego trybu OTG, ale programiści zainteresowani wykorzystaniem interfejsu USB w trybie OTG mogą wykorzystać inny zestaw opracowanych przez STMicroelectronics bibliotek (także dostępnych bezpłatnie) o nazwie STM32_OTG_LIB, których możliwości i sposób korzystania opisano w dokumencie UM0721.
Ten krótki przegląd wyraźnie dokumentuje intensywne starania firmy STMicroelectronics, mające na celu maksymalne uproszczenie pracy programistów, którzy dzięki bezpłatnym bibliotekom nie muszą łamać sobie głowy nad tajnikami USB i mogą w tym czasie pisać aplikacje skupiając się całkowicie na potrzebach zleceniodawcy projektu.
Rozpowszechniane bezpłatnie przez STMicroelectronics biblioteki "STM32F10xxx USB-FS-Device firmware" mają certyfikat konsorcjum USB dla klasy aplikacji USB 2.0 FullSpeed. Większość mikrokontrolerów z rodziny STM32 jest wyposażona w wewnętrzny interfejs USB (podrodziny F102 i F103) lub USB-OTG (podrodziny F105 i F107). Opisane w artykule biblioteki programowe i przykładowe projekty przygotowano w taki sposób, że mogą być implementowane w mikrokontrolerach bez konieczności jakiejkolwiek ich adaptacji. Biblioteki opisane w artykule są w pełni zgodne ze standardem CMSIS firmy ARM. |
Piotr Zbysiński
STMicroelectronics
www.st.com