Benutzer-Werkzeuge

Webseiten-Werkzeuge


contiki:a-n-solutions-module:contiki3

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

contiki:a-n-solutions-module:contiki3 [2016/12/14 20:36] – [Datei border-router.c] admincontiki:a-n-solutions-module:contiki3 [2017/01/24 18:49] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
-====== Contiki 3.auf dem @ANY2400 & @ANY900 USB Stick mit RPL-Border-Router und SLIP ======+====== Contiki 3.auf dem @ANY2400 & @ANY900 USB Stick mit RPL-Border-Router und SLIP ======
  
 +Der @ANY USB Stick ist eigentlich nicht für den Einsatz als IPv6 Router konzipiert, er besitzt nicht wie der Raven RZUSB-Stick ein vollständiges USB Interface mit RNDIS Support, sondern nur einen CP2103 Chip, welcher als virtuelle serielle Schnittstelle genutzt werden kann. Um jedoch einzelne Contiki Knoten über IPv6 erreichen zu können und diese bei Bedarf über IPv6 mit einer globalen Adresse erreichbar zu machen,  kann dieser USB Stick als Router bzw. Gateway eingesetzt werden. 
 +
 +{{:contiki:a-n-solutions-module:atanyusbstick.jpg?600|}}
 +
 +Der @ANY2400 USB Stick besitzt das AT-ANY-2400-1 Modul, der @ANY900 USB Stick das AT-ANY-900-1 Modul (siehe [[contiki:a-n-solutions-module:atany24001-module|Contiki Portierung auf die AT-ANY-1 Module]]), sie enthalten also einen ATmega1281V sowie den AT86RF231 Funkchip + integrierte Antenne (2,4Ghz) bzw. AT86RF212 Funkchip + integrierte Antenne (900MHz). Es ist also möglich als Kompilierungsziel ''TARGET=avr-zigbit'' zu verwenden. Auch hier ist vor der Kompilierung zu beachten, dass innerhalb der Fuses ''EESAVE'' deaktiviert werden muss (siehe [[contiki:a-n-solutions-module:atany24001-module|Contiki Portierung auf die AT-ANY-1 Module)]]).
 +
 +
 +Um eine Kommunikation zwischen uIP auf dem Mikrocontroller und dem PC über die serielle Schnittstelle zu ermöglichen, bietet Contiki den Einsatz des SLIP Protokolls an. Leider wurde dies bisher kaum für das Zigbit Modul genutzt, weshalb kein vorkonfiguriertes Projekt innerhalb des Contiki Quellcodes vorhanden ist. Für andere Plattformen wie z.B, SKY oder auch den AVR-Zigduino sind bereits Implementierungen vorhanden. Auch für den AVR Raven gibt es Anfänge einer SLIP Implementierung, welche jedoch nicht ausgereift ist.\\
 +Da es sinnvoll ist nicht nur eine einzelne Kommunikation der Knoten mit dem Gateway zu ermöglichen, sondern durch den Einsatz von RPL vermaschtes Routing zu verwenden, soll nicht wie auf dem RZ Raven USB Stick ein einfaches Forwarding Interface genutzt werden, sondern ein RPL Router mit globaler IPv6 Anbindung über SLIP implementiert werden.\\
 +Hierzu gibt es unter Contiki bereits eine Implementierung, welche sich in ''/examples/ipv6/rpl-border-router/'' befindet. Leider ist auch hier keine Portierung für das Zigbit Modul vorhanden, es muss also auch hier eine Anpassung vorgenommen werden.
 +
 +
 +Der komplett angepasste Quellcode basierend auf Contiki 3.0 steht bei Github zur Verfügung:
 +[[https://github.com/tscheffl/contiki/tree/ANSolution_3-0/examples/ipv6/rpl-border-router]]
 +
 +Zum Nachnutzen einfach das komplette Repo clonen, in den Branch ''ANSolution_3-0''
 +wechseln und den Quellcode compilieren:
 +
 +<code bash>
 +git clone https://github.com/tscheffl/contiki.git <Zielverzeichnis>
 +git checkout -b ANSolution_3-0
 +cd <Zielverzeichnis>/examples/ipv6/rpl-border-router
 +make
 +</code>
 +Die vorgenommen Änderungen werden [[contiki:a-n-solutions-module:contiki3#änderungen_innerhalb_des_plattform_ordners_für_das_zigbit_modulplatformavr-zigbit|hier]] genauer erläutert.
 ==== Todo: ==== ==== Todo: ====
 FIXME  FIXME 
-  * alle Dateiverweise zeigen derzeit noch auf die alten Contiki 2.x Dateien -> Github? +  * die Anleitung für [[contiki:a-n-solutions-module:atany24001-usb-gateway#kompilierung_und_verbindungsherstellung_über_tunslip6|tunslip]] muss noch aktualisiert werden
-  * die Anleitung für [[contiki:a-n-solutions-module:atany24001-usb-gateway#kompilierung_und_verbindungsherstellung_über_tunslip6|tunslip]] sollte noch aktualisiert werden +
-  * avrdude 6.2 on OSX (''$ brew install avrdude'')+
   * Fotos vom Programmieradapter für die Bricks und AVR JTAGICE3   * Fotos vom Programmieradapter für die Bricks und AVR JTAGICE3
   * SLIP Datenrate erhöhen?: #define UART1_CONF_RX_WITH_DMA 1 https://sourceforge.net/p/contiki/mailman/contiki-developers/thread/50588ED9.2010409@yahoo.de/   * SLIP Datenrate erhöhen?: #define UART1_CONF_RX_WITH_DMA 1 https://sourceforge.net/p/contiki/mailman/contiki-developers/thread/50588ED9.2010409@yahoo.de/
Zeile 28: Zeile 51:
   avr-objcopy -O ihex -I elf32-avr -j .eeprom border-router.avr-zigbit border-router.avr-zigbit.eeprom   avr-objcopy -O ihex -I elf32-avr -j .eeprom border-router.avr-zigbit border-router.avr-zigbit.eeprom
      
-**Flashen der Sticks mit ''avrdude'' 6.2 direkt aus Instant-Contiki:**+**Flashen der Sticks mit ''avrdude'' 6.2 direkt aus Instant-Contiki:**\\ 
 +Eine allgemeine Anleitung für avrdude findet sich hier: [[contiki:upload_with_avrdude_to_avr|Flashen des AVRs direkt aus Instant Contiki mit avrdude]] 
  
   sudo avrdude -c jtag3 -p m1281 -P usb -B2 -U flash:w:border-router.avr-zigbit   sudo avrdude -c jtag3 -p m1281 -P usb -B2 -U flash:w:border-router.avr-zigbit
Zeile 105: Zeile 130:
  
  
--> Hier kann die komplette Datei mit den Änderungen betrachtet werden [[contiki:a-n-solutions-module:atany24001-usb-gateway:contiki-conf.h|]].\\ +-> Hier kann die komplette Datei mit den Änderungen betrachtet werden [[https://github.com/tscheffl/contiki/blob/ANSolution_3-0/platform/avr-zigbit/contiki-conf.h|]].\\
  
  
Zeile 116: Zeile 140:
 CONTIKI_TARGET_SOURCEFILES += rs232.c cfs-eeprom.c eeprom.c random.c mmem.c \ CONTIKI_TARGET_SOURCEFILES += rs232.c cfs-eeprom.c eeprom.c random.c mmem.c \
  contiki-avr-zigbit-main.c \  contiki-avr-zigbit-main.c \
- sicslowmac.c linkaddr.c queuebuf.c nullmac.c pac + sicslowmac.c linkaddr.c queuebuf.c nullmac.c packetbuf.c \ 
-ketbuf.c \ + frame802154.c framer-802154.c framer.c nullsec.c nbr-table.c slip_uart1.c slip.c
- frame802154.c framer-802154.c framer.c nullsec.c nbr-tabl +
-e.c slip_uart1.c slip.c+
 </code> </code>
  
Zeile 126: Zeile 148:
  
  
--> **(Old)** Hier kann die komplette Datei mit den Änderungen betrachtet werden [[contiki:a-n-solutions-module:atany24001-usb-gateway:Makefile.avr-zigbit|]].\\+->  Hier kann die komplette Datei mit den Änderungen betrachtet werden [[https://github.com/tscheffl/contiki/blob/ANSolution_3-0/platform/avr-zigbit/Makefile.avr-zigbit|]].\\
  
 ---- ----
Zeile 137: Zeile 159:
  
 Der RPL Border Router ist eigentlich für eine Plattform mit Tastern und Sensoren vorgesehen und enthält entsprechenden Code. Da innerhalb des @ANY2400 USB Sticks keine Taster und Sensoren vorhanden sind, müssen diese Codeteile entfernt werden.  Der RPL Border Router ist eigentlich für eine Plattform mit Tastern und Sensoren vorgesehen und enthält entsprechenden Code. Da innerhalb des @ANY2400 USB Sticks keine Taster und Sensoren vorhanden sind, müssen diese Codeteile entfernt werden. 
 +
 +Weiterhin wird ''rs232.h'' eingebunden.
  
 <code c> <code c>
 #include "net/netstack.h" #include "net/netstack.h"
-/*sz*/ 
 //#include "dev/button-sensor.h" //#include "dev/button-sensor.h"
-/*sz*/+#include "dev/slip.h" 
 +#include "dev/rs232.h"
  </code>  </code>
  
Zeile 148: Zeile 172:
  
 <code c> <code c>
-  prefix_set = 0; 
   NETSTACK_MAC.off(0);   NETSTACK_MAC.off(0);
   PROCESS_PAUSE();   PROCESS_PAUSE();
Zeile 162: Zeile 185:
  
 <code c> <code c>
-#if DEBUG || 1 
-  print_local_addresses(); 
-#endif 
-  
   while(1) {   while(1) {
     PROCESS_YIELD();     PROCESS_YIELD();
-  
     /*sz*/     /*sz*/
     //if (ev == sensors_event && data == &button_sensor) {     //if (ev == sensors_event && data == &button_sensor) {
Zeile 175: Zeile 193:
     //}     //}
     /*sz*/     /*sz*/
-  
   }   }
-  
   PROCESS_END();   PROCESS_END();
 } }
 </code> </code>
  
--> Hier kann die komplette Datei mit den Änderungen betrachtet werden [[contiki:a-n-solutions-module:atany24001-usb-gateway:border-router.c|]].\\+-> Hier kann die komplette Datei mit den Änderungen betrachtet werden [[https://github.com/tscheffl/contiki/blob/ANSolution_3-0/examples/ipv6/rpl-border-router/border-router.c]]. 
 + 
 + 
 +==== Datei slip-bridge.c ==== 
 +Anpassung der Baud-Rate in slip-bridge.c 
 +<code c> 
 +/*---------------------------------------------------------------------------*/ 
 +static void 
 +init(void) 
 +
 +  slip_arch_init(BAUD2UBR(38400)); 
 +  process_start(&slip_process, NULL); 
 +  slip_set_input_callback(slip_input_callback); 
 +
 +</code> 
  
 +-> Hier kann die komplette Datei mit den Änderungen betrachtet werden [[https://github.com/tscheffl/contiki/blob/ANSolution_3-0/examples/ipv6/rpl-border-router/slip-bridge.c]].
 ==== Datei project-conf.h ==== ==== Datei project-conf.h ====
  
contiki/a-n-solutions-module/contiki3.1481747767.txt.gz · Zuletzt geändert: 2017/01/24 18:49 (Externe Bearbeitung)