Książki do AVR + pare dodatkowych

Witam szanownych grupowiczów W tym roku będę bronił pracy magisterskiej na kierunku Informatyka (PolSl), w związku z tym, mam pare pytań. Jeszcze nie jestem do końca zdecydowany co do tematu pracy magisterskiej, a czas niestety goni. Myśle nad zrobieniem testera sieci LAN na mikrokontrolerze AVR. Nie chodzi mi o 8 diod mrugających w przypadku przerwania linii w skrętce, ale o układzie sprawdzającym nieco dokładniej jakość połączenia. Chodzi mi o np. wysyłanie pakietów ping, które mogą się przydać w przypadku sprawdzania np. połączenia za radiem.

Zestaw pytań które mnie nurtują:

1 literatura - aktualnie znalazłem 3 ciekawe pozycje wydawnictwa BTC, które po przejrzeniu spisu treści (i przelotnie jednej z nich) nastawiają optymistycznie co do ich przydatności. Są to:

-Mikrokontrolery AVR ATmega w praktyce

formatting link
AVR w praktyce
formatting link
mikrokontrolerów AVR w języku BASCOM
formatting link
Która z tych pozycji jest "najlepsza" dla osoby, która planuje poznać AVRy i pisać oprogramowanie w C, lub BASCOMie? Skłaniam sie co do pierwszej pozycji. Aha, wiem że istnieją bogate źródła do każdego procka, ale wolałbym zacząć przygode z AVRami w języku ojczystym.

2 język programowania - Aktualnie doświadczenie mam w programowaniu (assembler) i architekturze procesorów rodziny 8051, ale dotarło do mnie, że napisanie rozbudowanego programu nawet dla tak "prostego" układu to zadanie strasznie czasochłonne. Dlatego w tej pracy chce wykorzystać język wyższego poziomu C lub BASCOM. Bardziej się skłaniam do C, gdyż jest dla mnie językiem wyjątkowo logicznym i przejrzystym (wiem, nie wielu tak myśli). Co do BASCOMA mam mieszane uczucia. Nie znam obu języków dla mikrokontrolerów,ale pare opini na googlach już przeczytałem. BASCOM ma pozytywną opinie (prosty, łatwy i przyjemny), ale czy jest równie funkcjonalny jak C? Przy okazji wydajny i szybki (wielkość kodu)? Co proponujecie dla osoby która dobrze zna C dla platformy PC i nie boi się tego języka jak niestety wielu programistów? Dla PC wybór jest prosty, tylko C w różnych wydaniach, ale mikrokontroler to nie PC i rządzi się własnymi prawami. Zakładam, że oba języki mają wstawki w ASSEMBLERZE,bo bez tego nie wyobrażam sobie programowania. Drugą rzeczą jest dostępność darmowego środowiska do programowania.

3 Ethernet - no właśnie jak to zrealizować tanio i dobrze? Zakładając, że chce uzyskać przepustowość 100mb/s, ale bez obróbki danych. Czyli po prostu sprawdzić jaka jest przepustowość łącza, np. po FTP. Licznik kolizji, uszkodzonych pakietów też się przyda. Czy taki procesor AVR poradzi sobie z tym? Do tego zapewne należy wykrzystać dodatkowy układ ze stosem TCP/IP itp. Mikrokontroler zwalniał by w miare możliwości buffor odbiorczy po odebraniu kolejnego pakietu danych. W tym temacie jestem niestety zupełnie zielony, ale zakładam, że sporą część pracy wykonuje dodatkowy układ np. RTL8139. Widze 3 rozwiązania tego zagadnienia:

- oprogramować karte sieciową z układem RTL8139 - plus to to, że taniej sie chyba nie da kupić takiego układu + dodatkowe elementy wymagane do jego poprawnego działania. Minus to nie wiem, czy da się taką karte sterować poprzez AVRa. Częstotliwość taktowania magistrali jest sporo wyższa od AVRa i nie wiem, czy karta będzie działała dla częstotliwości np. 20MHz AVRa. Jaki jest koszt samej kostki RTL8139 i gdzie jest dostępna? Pewnie kompletna karta jest tańsza od samego układu, znając życie :D

- inny dodatkowy układ,

- nowy mikrokontroler AT91RM9200-QI

formatting link
nim zawarty jest taki układ. Problem w tym, że jak się nie myle taktowany jest dość dużą prędkością, a z tym mogą być problemy. Niewiele osób zapewne ma doświadczenie z nim, więc w razie problemów może być nieciekawie. Zaletą tego jest to, że ma wszystko!

4 linki z przykładami podobnych urządzeń - czy ktos zna stronę ze zrealizowanymi takimi urządzeniami? Serwery WWW itp.

Troszkę się rozpisałem. Za wszelką pomoc, wskazówki i sugestie bardzo dziękuję.

Pozdrawiam

Reply to
Marek
Loading thread data ...

Ja na pracę magisterską z elektroniki zrobiłem telefon IP - może coś z idei tamtego rozwiązania Ci się przyda. Pełny tekst mojej pracy magisterskiej (opublikowany za zezwoleniem promotora) znajdziesz tutaj:

formatting link
formatting link
Jeżeli chcesz wykorzystać pełne możliwości FastEthernet'u to bez procesora minimum 100 MIPS'owego nawet nie zaczynaj. Dobry będzie wspomniany już tu ARM AT91RM9200.

Reply to
Adam Dybkowski

<ciach>
  1. W życiu nie przeczytałem żadnej książki o AVR, imho strata czasu - to tylko o takie "dedykowane tłumaczenie" dokumentacji. Wyierz typ procesora i przeczytaj do niego manual.
  2. Obejrzyj sobie avr-gcc. I nie myśl o Bascomie (Artur, nie bij ;))
  3. formatting link

Pozdrawiam

Reply to
Marcin Stanisz

Da się to zrobić na AVR chociaż na implementację stosu od zera trochę czasu trzeba poświęcić to jednak zapewniam cię że warto (TCP/IP w jednym paluszku nie będzie niczym niezwykłym).

Właśnie robię identyczne urządzenie i już kończę pisać stos. Do komunikacji z ethernetem wykorzystuję atmega32, oraz starą kartę isa na rtl1980as( ale są do kupienia stosunkowo drogie gotowe moduły z tym procesorem).

Sam stos tcp/ip (NIC, ETHERNET, ARP, IP, ICMP, TCP) po niedużym okrojeniu mieści się w atmega8515 (8kB), a po drastycznym okrojeniu pewnie zmieściłby się i w mniejszym kwestia wygody używania takiego stosu. Ja postawiłem jednak na wygodę, rozbudowałem stos (np:. tcp na wzróc gniazd windowsowych listen, accept, itp.) i dlatego wybrałem atmega32 pownieważ też przy atmega16 zabrakło mi pamięci na ciekawsze strony html.

W skrócie urządzenie odpytuje (wysyłą icmp_echo) zadane adresy i jak nie ma połączenia to restartuje przekaźnik.

Konfiguracja urządzenia przez stronkę www. Ustawiania podstawowych parametrów sieciowych adresu ip, maska, bramka, hasło dostępu po base64 no i oczywiście odpytywane adresy,parametry zapytań icmp.

Osobiście używam darmowego środowiska WinAVR i avr-gcc. Nie polecam assemblera bo to mija się z celem. BASCOMA nie używam, nigdy nie używałem i nie chcę go używać więc nic na jego temat nie powiem. Co do literatury to oczywiście i tak trzeba przeczytać pdfa danego procka, ale nie koniecznie wyszystko dlatego jak jesteś leniwy to kup sobie jakąś książkę np: "Mikrokontrolery AVR w praktyce" zapoznaj się z rdzeniem to zaoszczędzisz sporo czasu resztę doczytasz w pdfie. Jak znasz 8051 to zapoznanie się z AVR pójdzie jak po maśle.

Jak się zdecydujesz na samodzielną implementację stosu niekoniecznie w AVR, ale np. w 8051 to mogę co nieco podpowiedzieć.

Nie wiem jak to wygląda na ARM może ktoś inny się wypowie odnośnie ceny takiego cacka z interfejsem ethernetowym i dostępu oprogramowania stosu tcp/ip.

Pozdrawiam Paweł

Reply to
invalid unparseable

Tutaj:

formatting link
płytkę a ARMem LPC2129 + kontroler ethernetowy CS8900. Do płytki dostępny jest darmowy stos TCP/IP (sportowany uIP) w linkach znajdziesz również Web server (w/w stos uruchomiony jako wątek w FreeRTOS).

Reply to
Kristech

Przeczytalem wszystkie trzy ksiazki,tez bym wybral tak jak Ty. Jest tam calkiem sympatyczny opis asemblera. Oczywiscie takze architektury mikrokontrolerow.

Wlasciwie sam sobie odpowiedziales: C. BASCOM daje mozliwosc latwego i szybkiego napisania programu, ale nie jest tak elastyczny i funkcjonalny jak C. Co do szybkosci kodu, zalezy to bardziej od algorytmu, niz uzytego kompilatora. Ale to wiesz. Po przeczytaniu ksiazki Baranowskiego dojdziesz do wniosku, ze pisanie w asemblerze wcale nie jest takie straszne.

AVR Studio + WIN AVR z AVR GCC. Bardzo sympatyczny zestaw, calkowicie darmowy.

Pozdrawiam, Pawel

Reply to
invalid unparseable

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.