Date post: | 25-Jun-2015 |
Category: |
Engineering |
Upload: | valentin-mihalcut |
View: | 118 times |
Download: | 3 times |
SERVICII LINUX
PENTRU SISTEME
RECONFIGURABILE
COORDONATOR ȘTIINȚIFIC
Ș.L. DR. ING. ANDREI STAN
ABSOLVENT
VALENTIN MIHĂLCUȚ
2/23
ARHITECTURA SISTEMULUI
3/23
ARHITECTURA ZYNQ 7000
4/23
ARHITECTURA ZYNQ 7000
Etape în comunicarea între Sistemul de Procesare și
Logica Programabilă:
1. trimiterea unei comenzi de la Sistemul de Procesare către Logica
Programabilă (prin scrierea în memoria RAM)
2. trimiterea unei întreruperi din Logica Programabilă către Sistemul
de Procesare (când s-a finalizat execuția comenzii)
3. primirea datelor de la Logica Programabilă în Sistemul de
Procesare (prin citirea din memoria RAM)
5/23
ETAPE DE IMPLEMENTARE
• Sinteza modulului SPI pe FPGA
• Generarea bootloaderului
• Compilarea kernelului de Linux
• Generarea arborelui de dispozitive
• Implementarea driverului Linux
• Implementarea interfețelor de programare
• Implementarea aplicației utilizator
6/23
COMPONENTE HARDWARE
7/23
MODULUL SPI
8/23
SIMULAREA MODULULUI SPI
Spi Master
Spi Slave
9/23
SINTEZA PE FPGA
• Crearea unui nou periferic în Xilinx XPS
• Atribuirea a 8 semnale GPIO noului periferic
• Atribuirea spațiului de adrese în memoria RAM
• Configurarea direcției semnalelor de I/O
• Configurarea semnalului de întrerupere
• Editarea modulului Top Level (VHDL)
• Editarea modulului User Logic (Verilog)
• Configurarea portului extern
• Înregistrarea semnalului de întrerupere
• Sinteza propriu-zisă
10/23
MEMORIA EEPROM
Secvența de citire a unui octet
Secvența de scriere a unui octet
11/23
COMPONENTE SOFTWARE
12/23
KERNEL DRIVER
• Comunică direct cu perifericul
hardware
• Gestionează resursele pentru
periferic
• Implementează operațiile de acces la
fișierul virtual
• Sincronizează accesul la resurse
13/23
KERNEL DRIVER
14/23
INTERFEȚE DE PROGRAMARE
Funcții comune modurilor Master și
Slave
• setarea modului de lucru (master
sau slave)
• setarea polarității semnalului de
clock (CPOL)
• setarea frontului de clock pentru
transmisie/recepție (CPHA)
• citirea registrului de configurare
• citirea registrului de date
• citirea datelor recepționate
Funcții specifice modului Master
• setarea prescaler-ului
• transmiterea datelor
Funcții specifice modului Slave
• pornirea recepției
• oprirea recepției
15/23
INTERFEȚE DE PROGRAMARE
Funcții pentru recepție:
• activarea buffer-ului
• dezactivarea buffer-ului
• citirea datelor din buffer
16/23
INTERFEȚE DE PROGRAMARE
Funcții de acces la memoria EEPROM:
• activarea memoriei
• dezactivarea memoriei
• scrierea unui buffer de lungime fixă la
o adresă de memorie
• citirea de la o adresă de memorie
într-un buffer de lungime fixă
17/23
APLICAȚIA UTILIZATOR
• Realizează teste pe memoria
EEPROM, prin scrieri si citiri
succesive (256 de teste)
• Interfață grafică în mod consolă
• Înregistrează timpul fiecărui test
• Afișează rezultatele
19/23
FUNCȚIONAREA SISTEMULUI
20/23
REZULTATE EXPERIMENTALE
Testarea memoriei: • Durata unui test: 3.6s
• Durata de scriere/citire pagina: 275us
• Durata între scriere si citire: 5ms
• Durata între citire si scriere: 750us
MISO (canal 1), MOSI (canal 3), SS (canal 4), SCK (canal 2)
21/23
REZULTATE EXPERIMENTALE
Scrierea continuă a unui octet: • Durata de scriere: 5us
• Durata între scrieri: 90us
• Durata de transmisie a unei comenzi: 2.5us
MISO (canal 1), MOSI (canal 3), SS (canal 4), SCK (canal 2)
22/23
CONCLUZII
Dezavantaje:
• Dificultatea dezvoltării hardware. Uneori e mai rapidă dezvoltarea
software
• Necesitatea cunoștințelor interdisciplinare
• Soluție potrivită pentru proiecte de anvergură
• Unelte nestandardizate. Timp mare de familiarizare cu acestea
• Cost mediu spre ridicat
• Sincronizarea în spațiul nucleu prin așteptări blocante (spinlock)
23/23
CONCLUZII
Avantaje:
• Viteză de lucru de 100MHz a perifericului SPI, până la
viteza maximă a sistemului de 667MHz
• Viteză mare a comunicației între PL si PS, dată de bus-ul
de date AXI
• Dimensiune redusă. Grad mare de integrare
• Flexibilitate. Sistem reconfigurabil pentru orice periferic
dedicat
• Modularitate dată de bibliotecile utilizator