1 Mateusz Klimkowski IV rok Koło Naukowe Techniki Cyfrowej dr inż. Wojciech Mysiński opiekun naukowy USB interface in 8-bit microcontrollers PIC18F family manufactured by Microchip. Interfejs USB w 8-bitowych mikrokontrolerach typu PIC18F, firmy Microchip. Keywords: USB, microcontroller, PIC18F, Microchip Słowa kluczowe: USB, mikrokontroler, PIC18F, Microchip USB (Universal Serial Bus) jest standardem szyny do komunikacji szeregowej. Pierwotnie zamierzony jako zastąpienie dla szeregowych i równoległych połączeń z komputerem PC do podłączania myszy, klawiatury i drukarki, a urosło do standardu złącza między PC i różnymi urządzeniami peryferyjnymi. 1. Podstawowe parametry portu USB. Usb 1.0 - styczeń 1996r. [1.5 Mbit/s (Low-Speed) i 12 Mbit/s (Full-Speed)] Usb 1.1- wrzesień 1998r. [1.5 Mbit/s (Low-Speed) i 12 Mbit/s (Full-Speed)] Usb2.0 - początek 2000r. [max do 480Mbit/s (Hi-Speed)] 2. Tryby transmisji USB. Proces komunikacji w systemie USB bazuje na transmisji danych w 1ms (125us) ramkach czasowych, w których może być realizowanych kilka z czterech zdefiniowanych w standardzie USB rodzajów transmisji danych: transmisja typu izochronicznego (Isochronous Transfer) - wykorzystywana głównie przez urządzenia wymagające ściśle gwarantowanego maksymalnego czasu opóźnienia oraz transmitujące duże bloki danych. Nie ma zaimplementowanego mechanizmu handshake u oraz retransmisji w przypadku wystąpienia błędu. transmisja typu masowego (Bulk Transfer) - dedykowana dla urządzeń transmitujących większe bloki danych (do 64 bajtów) i robiących to tylko w wybranych momentach czasowych. Transmisja ta ma mechanizmy handshake u oraz retransmisji w przypadku wykrycia błędów. transmisja typu przerwaniowego (Interrupt Transfer) posiada właściwości transmisji bardzo zbliżone do transmisji typu Bulk, jednakże przeznaczona jest jedynie dla punktów końcowych typu IN, które wymagają okresowego sprawdzania gotowości do transmisji posiadanych danych (interwał czasowy, definiujący częstotliwość, z jaką powinno odbywać się odpytywanie, zdefiniowany jest w deskryptorze danego punktu końcowego). transmisja typu kontrolnego (Control Transfer) wykorzystywana jest do konfiguracji oraz wysyłania, zdefiniowanych przez standard USB, komend do urządzenia. Standard ten
2 narzuca także bardzo wysokie wymagania, co do konieczności jej przetwarzania przez urządzenia interfejsowe oraz kontroli jej poprawności. 3. Rodzina MCU typu PIC18F Rys.1. Cechy mikrokontrolerów rodziny PIC18F; źródło www.microchip.com Rodzina PIC18F jest wyprodukowana w technologii tzw. nanowatt Technology co sprawia ze ma mały pobór mocy. Dzięki tej technologii do budowy układów opartych na mikrokontrolerach tej rodziny można wykorzystać zasilanie bateryjne. 4. Parametry portu USB w PIC18F. USB V2.0 Low Speed (1.5 Mb/s) i Full Speed (12 Mb/s) transmisja typu izochronicznego, masowego, przerwaniowego i kontrolnego 1-kilobajt Dual Access RAM dla USB Wewnętrzne urządzenia nadawczo-odbiorcze USB z regulatorem napięcia Zewnętrzne urządzenia nadawczo-odbiorcze USB 5. USB - RAM 4 spośród 7 banków pamięci danych są mapowane do specjalnych podwójnych pamięci portu. Kiedy moduł USB jest wyłączony banki te są traktowane jako normalna przestrzeń pamięci danych, natomiast gdy moduł USB jest włączony pamięć w tych bankach jest wydzielona jako bufor RAM do działania USB.
3 Rys.2. Implementacja pamięci USB w przestrzeni pamięci danych; źródło www.microchip.com 6. Układ dystrybucji sygnału zegarowego. Rys.3. Schemat układu dystrybucyjnego sygnał zegarowy: źródło www.microchip.com
4 7. Przerwania. W przeciwieństwie do innych urządzeń peryferyjnych, moduł USB potrafi wygenerować szeroki zakres przerwań sprzętowych dla wielu typów zdarzeń takich jak: przerwania normalnej komunikacji przerwania zdarzeń stanu przerwania zdarzeń błędu Aby poradzić sobie z tym moduł USB jest zaopatrzony w jego własną logikę systemu przerwań. 8. Elementy składowe portu USB. Rys.4. Elementy składowe portu USB w MCU rodziny PIC18F; źródło www.microchip.com 9. Przykłady zastosowań. Układ sterowania przekaźnikami, diodami LED, odczyt stanu wejść portów. Układ do akwizycji danych analogowych z wykorzystaniem wewnętrznego przetwornika AC. Pobieranie, rejestracja danych i przesyłanie wyników do komputera. Przenośny rejestrator danych. Kilka trybów pracy o obniżonym poborze mocy.
5 10. Narzędzia i oprogramowanie oferowane przez firmę Microchip. 10.1. Oprogramowanie z firmy Microchip. MCHPFSUSB Framework v2.1- pakiet zawierająca projekty oprogramowania układowego dla PIC18 oraz sterowniki i oprogramowanie dla komputera PC. AN1003 aplikacja zawierająca projekt i implementacje masowego urządzenia przechowującego dane wykorzystującego karty Secure Digital. 10.2. Zestawy uruchomieniowe. PICDEM FS-USB (DM163025)- urządzenie z układem PIC18F4550. PIC18F87J50 FS USB Demonstration Plug-In Module (MA180021)- urządzenie z układem PIC18F87J50. 10.3. Narzędzia programistyczne. MPLAB Integrated Development Environment środowisko programistyczne. MPLAB C18 C Compiler kompilator języka C. 10.4. Narzędzia do programowania i debugowania. PICkit 2 Development Programmer/Debugger- programator i debuger dla wybranego wykazu MCU. MPLAB ICD 2- wewnątrzukładowy debugger. MPLAB REAL ICE In-Circuit Emulator- emulator. 11. Przykładowe projekty. 11.1. Projekt oparty na mikrokontrolerze PIC18F4550 komunikujący się z komputerem PC za pośrednictwem aplikacji C#.NET. Projekt ten realizuje komunikacje mikrokontrolera z komputerem PC. Za pomocą prostego programu komputerowego sterujemy diodami D3 i D4. Diody D5 i D6 służą do sygnalizacji komunikacji USB. W programie tym można również wysłać do mikrokontrolera dwie wartości liczbowe a on zwróci nam wynik sumy. Projekt składa się z następujących komponentów: Część sprzętowa
6 Rys.5. Schemat ideowy układu; źródło - www.sixca.com Oprogramowanie dla MCU Oprogramowanie dla PC Rys.6. Program komunikujący się z mikrokontrolerem; źródło www.sixa.com Sterowniki dla systemu operacyjnego Windows 11.2. Sterowanie silnikiem krokowym przez interfejs USB. Projekt ten realizuje sterowanie silnikiem krokowym za pomocą komputera PC.
7 Rys.7. Schemat ideowy układu; źródło - www.sixca.com Oto podstawowe cechy projektu: MCU PIC18F4550 z pełną szybkością interfejsu USB Standard USB 2.0 Sterowanie 1 silnikiem krokowym Oprogramowanie oraz sterowniki dla sprzętu z firmy Microchip Oprogramowanie po stronie PC Rys.8. Program komputerowy służący do sterowania silnikiem; źródło www.sixa.com 12. Literatura. [1] PIC18F2455/2550/4455/4550 Data Sheet, 2007; www.michrochip.com [2] www.sixa.com