lunedì 27 luglio 2015

Cyclone V SoC: Ethernet senza router con DE1-SoC

La documentazione di Terasic per la DE1-SoC è ben fatta e seguendo il manuale e gli esempi si sarà in grado di programmare il processore ARM, usare l'area logica programmabile e capire l'interazione tra queste due componenti.

Sul sito web è presente un'immagine pronta all'uso di un sistema Linux Console che è possibile scrivere su una scheda MicroSD da almeno 4GB come descritto nella DE1-SoC Getting Started Guide o nel tutorial Using Linux on the DE1-SoC.

Riassumendo è necessario:
- preparare la MicroSD ed inserirla nella DE1-SoC
- impostare tutti i dip switch sul retro della scheda su OFF per configurare la FPGA dal processore ARM all'avvio
- accendere il sistema
- collegare il cavo micro USB al PC
- Utilizzare programmi come Putty per aprire un terminale con la DE1-SoC

Nell'immagine la configurazione di default (AS) della scheda una volta aperta dalla scatola e sotto le varie configurazioni possibili, da notare l'ordine [4:0] utilizzato nella tabella
 
 
L'utilizzo del cavo USB può però essere sostituito dal cavo Ethernet, che utilizzeremo anche per la comunicazione col pc nelle nostre applicazioni nei prossimi articoli. Il vantaggio principale è la maggiore velocità di comunicazione raggiungibile tramite Ethernet, la scheda supporta infatti la velocità Gigabit contro i 115200 bps della seriale.
 
Nella documentazione di Terasic, nel documento My_First_HPS, è mostrato un esempio di configurazione con router, il che toglie però un po' di praticità al tutto in quanto necessario router con alimentatore, due cavi ethernet, etc..
 
Avere sottomano un router gigabit non è poi cosa scontata vista l'ampia diffusione di router a 10/100 Mbps. E' sicuramente più comune invece avere solamente un portatile con scheda di rete Gigabit.
 
NB: Per l'utilizzo della velocità Gigabit è importante avere un cavo CAT5e o superiore di buona qualità. Cavi non adatti avranno impatto sulla velocità della comunicazione.
 

 
 
Vediamo come rendere il nostro ambiente più snello collegando direttamente il pc alla scheda con un singolo cavo ethernet.
 
Una volta collegati alla DE1-SoC da terminale (tramite USB) digitiamo:
 
vi /etc/network/interfaces
 
per editare il file di configurazione delle interfacce di rete tramite il programma testuale vi.
Ricordo che vi ha due modalità di funzionamento: inserimento e comandi.
Inizialmente il programma è in modalità comandi, premiamo "i" per passare alla modalità inserimento ed inseriamo:

iface eth0 inet static
address 192.168.0.3
netmask 255.255.255.0
broadcast 192.168.0.255

al posto di

iface eth0 inet dhcp

che possiamo semplicemente commentare ponendo il cancelletto (#) all'inizio della riga.

Dopodichè premiamo ESC per tornare in modalità comandi e scriviamo ":wq" (senza virgolette) e battiamo invio per salvare ed uscire.

Così facendo utilizzeremo un IP statico al posto di un IP dinamico che senza un router è "macchinoso" assegnare. Riavviamo tramite il comando "reboot" la DE1-SoC.

Nella scheda di rete sul pc, collegata alla DE1-SoC, impostiamo invece i seguenti parametri

 
La configurazione è terminata, adesso sarà possibile accedere alla DE1-SoC senza router tramite l'IP 192.168.0.3, tramite SSH per esempio, mentre il PC avrà IP 192.168.0.2.
 
E' naturalmente possibile adattare gli indirizzi IP in base alle proprie esigenze, è importante che non ci siano conflitti con altri indirizzi IP presenti nella vostra rete.
 
Vedremo nel prossimo articolo come configurare DS-5 per navigare il filesystem tramite SFTP ed il terminale SSH integrato per evitare di tenere aperti più programmi durante lo sviluppo, proprio con la sola connessione ethernet così configurata.

5 commenti:

  1. E' molto più pratico così, il cavetto ethernet può stare nella scatola e si ha sempre tutto a dietro. Grazie. Ciao

    RispondiElimina
  2. io continuo a non capire il senso di questi articoli: a cosa servono? chi li legge? boh

    mi incuriosisce la scheda che hai descritto, un SoC agganciato ad una fpga, sulla carta tante goloserie su cui farsi tante pippe, in pratica due dita negli occhi perche'

    1) si tratta di un SoC linux, e mettere le mani in un kernel richiede MOLTE risorse, quasi sempre incompatibili con i tempi hobby
    2) scrivere kernel module fatti bene non e' una passeggiata, vedi punto 1
    3) ci sono un sacco di builder in giro, sulla carta pure la casalinga di voghera e' in grado di buildare tutto, in realta' funziona tutto nelle condizioni di default, appena esci dal sentiero (e la scheda in oggetto e' proprio il caso) sei nella cacca fino al collo, in un sistema di una complessità abbastanza disarmante per altro
    4) poi c'e' la parte fpga, e qui di cosa parliamo ? di periferiche memory mapped, altra cosa che richiede MOLTO impegno e tempo


    quindi mi chiedo, con sta schedona (che costa pure un doppio centone, e di sti tempi, con la crisi, buttare 200 euro non e' proprio consigliabile) che ci fai ? cosa te ne fai/farai ?

    RispondiElimina
    Risposte
    1. dimenticavo, per lavoro (ergo sono pagato per farlo), sviluppo kernel modules, se ti dico 3-4 mesi per commessa, 8 ore al giorno … e si tratta di SoC ASIC, quando arriva roba fpga … diventano 6-8-10 mesi di commessa

      mi chiedo proprio COME tu possa farci qualcosa in tempi hobby, di solito, per esperienza personale, finisce che una scheda del genere resti sulla scrivania a prendere polvere: ecco perche' dico, fossero 20 euro, ma 200 euro da buttare no

      Elimina
  3. Salve Carlo,

    Grazie per aver visitato il blog. Cerco di chiarire alcuni dubbi:

    Esistono strade più semplici per utilizzare questi SoC della scrittura di kernel Linux. Puoi realizzare "semplici" programmi user-mode in C/C++ agganciati alla parte FPGA tramite la scrittura/lettura in memoria (periferiche memory-mapped).

    Qsys si prende cura di convertire le interfacce Avalon in AXI, le periferiche lato FPGA possono essere sviluppate tradizionalmente come con NIOS.

    Però è anche vero che se si sviluppa direttamente con interfacce AXI si ha compatibilità delle proprie periferiche con dispositivi Xilinx..

    Anche tralasciando la parte HPS (il processore ARM) la scheda alla sua uscita era particolarmente conveniente in termini di prezzo/risorse FPGA, anche se ora se non si necessitano di molte interfacce hw e dell'ultimo megahertz, la BEMICRO CV A9 è un buon acquisto.

    Non posso chiaramente divulgare dettagli sulle commesse..

    RispondiElimina
  4. Io trovo molto utile questo blog

    RispondiElimina