Post
autor: wwmajor » 03 gru 2004, 13:59
Ha ha no i co nikt nie chce ci pomóc?
No to ja ci pomogę!
Instrukcja dotyczy mikrokontrolera ATMEL 2313 (ale chyba wszystkie ATMELe to mają) komendy zaś pochodzą z BASCOMA. Zaznaczam że nigdy tego nie używałem chociaż mam w planach. Jak to fizycznie podłączyć to nie mam pojęcia ale jak to zrobisz to czuj się zobowiązany żeby dać znać.
Przeznaczenie
Konfiguruje scalony układ komunikacji TCP/IP - W3100A.
Instrukcja korzysta z biblioteki TCPIP która jest rozprowadzana oddzielnie przez MCS Electronics. Wchodzi ona m.in. w skład pakietu MCS Easy TCP/IP.
Składnia:
CONFIG TCPIP = INT0 | INT1 , MAC = numer_MAC , IP = adres_IP , SUBMASK = maska , GATEWAY = adres_bramy , LOCALPORT = nr_portu , TX = tx , RX = rx , NOINIT = 0 | 1
Opis:
Instrukcja służy do skonfigurowania układu W3100A oraz procedury współpracy z tym układem. Ponieważ układ generuje przerwania należy określić które przerwanie jest podłączone do układu W3100A. Dla płytki prototypowej MCS Easy TCP/IP należy podać INT0.
Parametr MAC= określa unikalny numer jednoznacznie identyfikujący układ W3100A. Jest to odpowiednik unikalnego numeru każdej karty sieciowej Ethernet. Każdy z układów podłączony do lokalnej sieci musi mieć inny numer. Numer ten składa się z ciągu 6 liczb (od 0 do 255) oddzielonej kropkami. Przykładowo: 123.00.12.34.56.78
Parametr IP= określa adres IP układu, który także musi być unikalny w sieci. Jeśli posiadasz sieć LAN możesz użyć: 192.168.0.10, gdyż wszystkie adresy rozpoczynające się od 192.168.0.x są zarezerwowane dla sieci LAN i nie występują jako adresy IP w sieci Internet.
Parametr SUBMASK= określa tzw. maskę podsieci dla układu W3100A. W większości przypadków maska ta jest ustawiona na 255.255.255.0
Parametr GATEWAY= określa adres domyślnej bramy. Adres ten można określić wpisując w linii poleceń systemu Windows polecenie: C:\>ipconfig Rezultat może wyglądać tak:
Windows 2000 IP Configuration
Ethernet adapter Local Area Connection 2:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 192.168.0.3
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.0.1
W tym przypadku adres ten to 192.168.0.1.
Wartość (typu Word) przypisana parametrowi LOCALPORT= jest przepisywana do wewnętrznej zmiennej LOCAL_PORT. Zobacz opis funkcji GETSOCKET. Domyślnie możesz podać 5000.
Za pomocą parametru TX= można określić liczbę oraz wielkość bufora transmisyjnego. Układ W3100A posiada 4 tzw. gniazda (socket). Dla każdego gniazda przypisano osobne dwa bity w bajcie. Stan 00 spowoduje określenie bufora na 1024 bajtów, 01 - 2048 bajtów, 10 - 4096 bajtów a 11 - 8192 bajtów. Dwa młodsze bity określają wielkość gniazda 0, a dwa najstarsze - gniazda 3. Przykładowo TX = &B01010101 spowoduje, iż wielkość bufora dla każdego gniazda będzie wynosić 2048 bajtów.
Ponieważ bufor transmisyjny ma tylko 8KB, można go podzielić na 4 części po 2048 bajtów (tak jak wyżej). Można oczywiście określić wielkość bufora na 8KB, lecz w tym wypadku możliwe jest użycie tylko gniazda 0 i parametr powinien TX= powinien wyglądać tak: TX = &B11.
Parametr RX= określany jest tak samo jak TX= z tą różnicą że dotyczy bufora odbiorczego.
Za pomocą parametru NOINIT= można określić czy numer IP, numer MAC, maska podsieci oraz brama domyślna mają być stałe (0) czy określane dynamicznie (1
). Praca dynamiczna powoduje, że instrukcja CONFIG TCP dokona tylko podstawowych ustawień, a resztę użytkownik może określać później za pomocą instrukcji SETTCP.
Więcej informacji można znaleźć przeglądając notę aplikacyjną układu W3100A.
Instrukcja CONFIG TCPIP może być użyta tylko raz. Przedtem należy włączyć globalny system przerwań, gdyż wykorzystywane są przerwania INT0/1. Instrukcja automatycznie inicjalizuje układ W3100A.
Po wykonaniu CONFIG TCPIP i ewentualnie SETTCP, można już wysyłać pakiety kontrolne poleceniem ping
Przykład:
Config Tcpip = Int0 , Mac = 00.00.12.34.56.78 , Ip = 192.168.0.8 , Submask = 255.255.255.0 , Gateway = 192.168.0.1 , Localport = 1000 , Tx = $55 , Rx = $55
'Teraz użyj polecenia PING z linii poleceń by wysłać pakiet kontrolny i sprawdzić czy układ odpowiada:
'PING 192.168.0.8
'Możesz użyć także programu EasyTcp.
(c) Zbigniew Gibek, 2002-2003 (c) MCS Electronics, 1999-2003