POLITECHNIKA BIAŁOSTOCKA
Transkrypt
POLITECHNIKA BIAŁOSTOCKA
Białostocka Politechnika WYDZIAŁ ELEKTRYCZNY KATEDRA TELEKOMUNIKACJI I APARATURY ELEKTRONICZNEJ Instrukcja do zajęć laboratoryjnych Temat ćwiczenia: Projekty przemysłowe i sieciowe Numer ćwiczenia: 5 Laboratorium z przedmiotu: Systemy mikroprocesorowe w zastosowaniach przemysłowych i sieciowych KOD: TS1C6 Opracowali: dr inż. Maciej Szumski dr inż. Krzysztof Konopko 2017 1 Wprowadzenie 1.1 Konfiguracja interfejsu między układem MAC (Media Acess Control), a zewnętrznym PHY (external physical layer device) Dostępny na ćwiczeniach zestaw ZL29ARM umożliwia przesyłanie i odbiór danych zgodnie ze standardem IEEE 802.3-2002. Zastosowany w zestawie mikrokontroler STM32F107 obsługuje dwa warianty interfejsu między MAC a PHY: MII (Media independent Interface) i RMII (Reduced Media independent Interface). Tabela 1.1 zawiera opis konfiguracji MII lub RMII w mikrokontrolerze STM32F107. Wyprowadzenie oznaczone literą I oznacza wyjście pływające, a literą O wyjście przeciwsobne 50 MHz. Tab. 1.1. Warianty konfiguracji MII/RMII dla mikrokontrolera STM32F107 Sygnał MAC MII MII RMII RMII domyślne alternatywne domyślne alternatywne ETH_MDC MDC MDC ETH_MII_TXD2 TXD2 ETH_MII_TX_CLK TX_CLK ETH_MII_CRS CRS ETH_MII_RX_CLK RX_CLK REF_CLK Wyprowadzenie Kierunek PC1 PC2 PC3 PA0 PA1 O O I I I O I I ETH_RMII_REF_CLK ETH_MDIO ETH_MII_COL ETH_MII_RX_DV MDIO COL RX_DV MDIO CRS_DV PA2 PA3 PA7 ETH_RMII_CRS_DV ETH_MII_RXD0 RXD0 RXD0 PC4 I ETH_RMII_RXD0 ETH_MII_RXD1 RXD1 RXD1 PC5 I ETH_RMII_RXD1 ETH_MII_RXD2 ETH_MII_RXD3 ETH_MII_RX_ER ETH_MII_TX_EN RXD2 RXD3 RX_ER TX_EN TX_EN PB0 PB1 PB10 PB11 I I I O ETH_RMII_TX_EN ETH_MII_TXD0 TXD0 TXD0 PB12 O ETH_RMII_TXD0 ETH_MII_TXD1 TXD1 TXD1 PB13 O ETH_RMII_TXD1 ETH_MII_TXD3 TXD3 PB8 O ETH_RMII_CRS_DV RX_DV CRS_DV PD8 I ETH_MII_RXD0 RXD0 RXD0 PD9 I RXD1 RXD1 PD10 I ETH_RMII_RXD0 ETH_MII_RXD1 ETH_RMII_RXD1 ETH_MII_RXD2 RXD2 PD11 I ETH_MII_RXD3 RXD3 PD12 I Interfejs MII używa następujących 17 sygnałów: MII_TX_CLK: zegar szyny nadawczej (2.5 MHz dla 10 Mbit/s i 25 MHz dla 100 Mbit/s), MII_RX_CLK: zegar szyny odbiorczej (2.5 MHz dla 10 Mbit/s i 25 MHz dla 100 Mbit/s), MII_TX_EN: na szynie nadawczej są dane do wysłania, MII_TXD[3:0]: czterobitowa szyna danych, MII_CRS: sygnał nośny, MII_COL: wystąpienie kolizji w trybie half-duplex, MII_RXD[3:0]: czterobitowa szyna odbiorcza, MII_RX_DV: na szynie odbiorczej są dane odczytu MII_RX_ER: odebrano błędny symbol, MDIO: dwukierunkowa linia danych interfejsu służącego do konfigurowania interfejsu PHY, MDC: linia taktująca interfejs MDIO. Sygnał zegarowy na liniach MII_RX_CLK i MX_TX_CLK jest generowany przez PHY. Jego częstotliwość związana jest z szybkością transmisji danych i szerokością szyny danych. Sposób dołączenia zewnętrznego modułu PHY (np. ZL3ETH z układem DP83848) do zestaw ZL29ARM przedstawiono na rysunku 1.1. Rys. 1.1. Sposób dołączenia zewnętrznego modułu PHY do zestaw ZL29ARM Jak widać ze schematu 1.1 w module zastosowano interfejs MII z alternatywnym układem wyprowadzeń. Mikrokontroler STM32F107 stosuje własny kontroler DMA do odbierania i wysyłania ramek ethernetowych. Schemat układu ETH przedstawiony jest na rysunku 1.2. Rys. 1.2. Schemat bloku ETH [4] Do obsługi układów MAC STMicroelectronics udostępnia oddzielną bibliotekę, pełniącą funkcję jego sterownika, czyli STM32 Ethernet Driver. 1.2 Stos TCP/IP Aby tworzyć aplikacje korzystające z sieci niezbędna jest implementacja stosu TCP/IP czyli kompletu protokołów intersieci (internet protokol suit). Zazwyczaj nie ma potrzeby samodzielnej implementacji całego stosu gdyż dostępne są zarówno komercyjne jak i darmowe jego implementacje. Każda implementacja jest uzupełniona o licencje, w której zawarto warunki jego wykorzystania zarówno w celach komercyjnych jak i edukacyjnych. Najbardziej popularnymi implementacjami protokołów TCP/IP w układach mikroprocesorowych oraz w systemach wbudowanych są: μIP (microIP), LwIP(lightweight IP), NicheLite firmy InterNiche, μC/TCP-IP firmy Micrium, Ethernut firmy Egnite. Dwie pierwsze implementacje są w pełni darmowe. Projekt μIP oryginalnie stworzono dla mikrokontrolerów 8-bitowych, ale także przeniesiono na architekturę ARM. Jego implementacja wymaga niewielkiej pamięci RAM i Flash. Zawiera podstawowy zestaw protokołów: IP, TCP, UDP, ICMP, ARP, SLIP. Jednak mając do dyspozycji dużo bogatsze zasoby mikrokontrolera STM32 możliwe jest użycie bardziej rozwiniętej implementacji stosu TCP/IP, jaką jest LwIP. Biblioteka ta charakteryzuje się elastycznością pozwalającą na jej implementację na mikrokontrolerach o rożnych architekturach, oraz dzięki dużemu zbiorowi opcji konfiguracyjnych, pozwala na jej optymalizację dla konkretnych zastosowań sprzętowych i aplikacyjnych. Biblioteka LwIP udostępnia interfejsy programistyczne umożliwiające realizację stosu zarówno bez kontroli systemu operacyjnego jak i w postaci bibliotek i aplikacji działających w osobnych wątkach potrzebujących systemu operacyjnego. 2 Cel i zakres ćwiczenia Celem ćwiczenia jest ugruntowanie wiedzy studentów oraz nabycie przez nich umiejętności z zakresu podstaw programowania mikroprocesorów. W ramach zajęć studenci stosują nabytą wiedzę i umiejętności z zakresu konfiguracji moduł RCC, obsługi portów GPIO, zastosowania przetworników ADC i DAC, obsługi systemu przerwań, wykorzystania układów licznikowo-czasowych oraz obsługi mechanizmu bezpośredniego dostępu do pamięci do realizacji zadań projektowych. Z zastosowaniem zestawu ZL29ARM z mikrokontrolerem STM32F107VCT6 oraz dodatkowych urządzeń peryferyjnych studenci realizują aplikacje o zastosowaniach przemysłowych i sieciowych. 3 Zagadnienia do opracowania przed przystąpieniem do zajęć Przed przystąpieniem do zajęć studenci określają, na podstawie zgłoszonych przez prowadzącego zajęcia tematów, podstawowe parametry i funkcje tworzonych aplikacji. 4 Przebieg ćwiczenia Ćwiczenia laboratoryjne prowadzone są w oparciu o zestaw ZL29ARM [2] umożliwiający realizację aplikacji dla mikrokontrolera STM32F107 (rodzina Connectivity Line). W trakcie ćwiczeń należy zrealizować założenia projektowe dotyczące funkcji tworzonych aplikacji. Przykładowe tematy projektów dotyczą aplikacji przemysłowych związanych z implementacją algorytmów regulacji [1 rozdz. 20], realizacją systemów czasu rzeczywistego [1 rozdz. 22], komunikacją i sterowaniem urządzeniami z zastosowaniem interfejsów I 2C [1 rozdz. 18.6], SPI [1 rozdz. 18.6] czy implementacją przemysłowych protokołów komunikacyjnych np. Modbus [1 rozdz. 18.2.2]. Projekty sieciowe dotyczą zastosowania zestawu ZL29ARM rozszerzonego o moduł PHY (interfejs Ethernet ZL3ETH z układem DP83848) do realizacji aplikacji wymagających implementacji stosu TCP/IP [8, 9, 12]. 5 Opracowanie sprawozdania Przygotowane sprawozdanie z zajęć powinno zawierać opis przebiegu ćwiczenia laboratoryjnego w tym kody źródłowe procedur wraz z opisem i analizą działania. Sprawozdanie powinno też zawierać wnioski dotyczące realizacji poszczególnych punktów ćwiczenia laboratoryjnego. 6 Wymagania BHP W trakcie realizacji programu ćwiczenia należy przestrzegać zasad omówionych we wstępie do ćwiczeń, zawartych w: „Regulaminie porządkowym w laboratorium” oraz w „Instrukcji obsługi urządzeń elektronicznych znajdujących się w laboratorium z uwzględnieniem przepisów BHP”. Regulamin i instrukcja są dostępne w pomieszczeniu laboratoryjnym w widocznym miejscu. 7 Literatura Maciej Szumski, „Systemy Mikroprocesorowe w Sterowaniu. Część I. ARM Cortex-M3”, PLUM, 2016 2. Dokumentacja zestawu ZL29ARM: http://kamami.pl/dl/zl29arm.pdf 3. STM32F107VC Datasheet: http://www.st.com/resource/en/datasheet/stm32f107vc.pdf, 2015 4. RM0008: STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx advanced ARM®-based 32-bit MCUs: http://www.st.com/resource/en/reference_manual/cd00171190.pdf, 2015 5. PM0075: STM32F10xxx Flash memory microcontrollers: http://www.st.com/resource/en/reference_manual/cd00171190.pdf, 2012 6. PM0056: STM32F10xxx/20xxx/21xxx/L1xxxx Cortex-M3 programming manual: http://www.st.com/resource/en/programming_manual/cd00228163.pdf, 2013 7. STM32F105xx and STM32F107xx revision Z connectivity line device limitations: http://www.st.com/resource/en/errata_sheet/cd00238166.pdf, 2013 8. lwIP TCP/IP stack demonstration for STM32F107xx connectivity line microcontrollers: http://www.st.com/resource/en/application_note/cd00255062.pdf, 2009 9. Configuring the NicheLite™ TCP/IP stack for the STM32F107xx microcontroller: http://www.st.com/resource/en/application_note/cd00238932.pdf, 2009 10. Krzysztof Paprocki, „Mikrokontrolery STM32 w praktyce”, BTC, 2011. 11. Marek Galewski, „STM 32 : aplikacje i ćwiczenia w języku C”, BTC, 2011. 12. Marcin Peczarski, „Mikrokontrolery STM32 w sieci Ethernet w przykładach”, BTC 2011 1.