Servicii linux pentru sisteme reconfigurabile
-
Upload
valentin-mihalcut -
Category
Engineering
-
view
121 -
download
3
Transcript of Servicii linux pentru sisteme reconfigurabile
![Page 1: Servicii linux pentru sisteme reconfigurabile](https://reader034.fdocument.pub/reader034/viewer/2022052209/558b335bd8b42a60648b4671/html5/thumbnails/1.jpg)
SERVICII LINUX
PENTRU SISTEME
RECONFIGURABILE
COORDONATOR ȘTIINȚIFIC
Ș.L. DR. ING. ANDREI STAN
ABSOLVENT
VALENTIN MIHĂLCUȚ
![Page 2: Servicii linux pentru sisteme reconfigurabile](https://reader034.fdocument.pub/reader034/viewer/2022052209/558b335bd8b42a60648b4671/html5/thumbnails/2.jpg)
2/23
ARHITECTURA SISTEMULUI
![Page 3: Servicii linux pentru sisteme reconfigurabile](https://reader034.fdocument.pub/reader034/viewer/2022052209/558b335bd8b42a60648b4671/html5/thumbnails/3.jpg)
3/23
ARHITECTURA ZYNQ 7000
![Page 4: Servicii linux pentru sisteme reconfigurabile](https://reader034.fdocument.pub/reader034/viewer/2022052209/558b335bd8b42a60648b4671/html5/thumbnails/4.jpg)
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)
![Page 5: Servicii linux pentru sisteme reconfigurabile](https://reader034.fdocument.pub/reader034/viewer/2022052209/558b335bd8b42a60648b4671/html5/thumbnails/5.jpg)
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
![Page 6: Servicii linux pentru sisteme reconfigurabile](https://reader034.fdocument.pub/reader034/viewer/2022052209/558b335bd8b42a60648b4671/html5/thumbnails/6.jpg)
6/23
COMPONENTE HARDWARE
![Page 7: Servicii linux pentru sisteme reconfigurabile](https://reader034.fdocument.pub/reader034/viewer/2022052209/558b335bd8b42a60648b4671/html5/thumbnails/7.jpg)
7/23
MODULUL SPI
![Page 8: Servicii linux pentru sisteme reconfigurabile](https://reader034.fdocument.pub/reader034/viewer/2022052209/558b335bd8b42a60648b4671/html5/thumbnails/8.jpg)
8/23
SIMULAREA MODULULUI SPI
Spi Master
Spi Slave
![Page 9: Servicii linux pentru sisteme reconfigurabile](https://reader034.fdocument.pub/reader034/viewer/2022052209/558b335bd8b42a60648b4671/html5/thumbnails/9.jpg)
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ă
![Page 10: Servicii linux pentru sisteme reconfigurabile](https://reader034.fdocument.pub/reader034/viewer/2022052209/558b335bd8b42a60648b4671/html5/thumbnails/10.jpg)
10/23
MEMORIA EEPROM
Secvența de citire a unui octet
Secvența de scriere a unui octet
![Page 11: Servicii linux pentru sisteme reconfigurabile](https://reader034.fdocument.pub/reader034/viewer/2022052209/558b335bd8b42a60648b4671/html5/thumbnails/11.jpg)
11/23
COMPONENTE SOFTWARE
![Page 12: Servicii linux pentru sisteme reconfigurabile](https://reader034.fdocument.pub/reader034/viewer/2022052209/558b335bd8b42a60648b4671/html5/thumbnails/12.jpg)
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
![Page 13: Servicii linux pentru sisteme reconfigurabile](https://reader034.fdocument.pub/reader034/viewer/2022052209/558b335bd8b42a60648b4671/html5/thumbnails/13.jpg)
13/23
KERNEL DRIVER
![Page 14: Servicii linux pentru sisteme reconfigurabile](https://reader034.fdocument.pub/reader034/viewer/2022052209/558b335bd8b42a60648b4671/html5/thumbnails/14.jpg)
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
![Page 15: Servicii linux pentru sisteme reconfigurabile](https://reader034.fdocument.pub/reader034/viewer/2022052209/558b335bd8b42a60648b4671/html5/thumbnails/15.jpg)
15/23
INTERFEȚE DE PROGRAMARE
Funcții pentru recepție:
• activarea buffer-ului
• dezactivarea buffer-ului
• citirea datelor din buffer
![Page 16: Servicii linux pentru sisteme reconfigurabile](https://reader034.fdocument.pub/reader034/viewer/2022052209/558b335bd8b42a60648b4671/html5/thumbnails/16.jpg)
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ă
![Page 17: Servicii linux pentru sisteme reconfigurabile](https://reader034.fdocument.pub/reader034/viewer/2022052209/558b335bd8b42a60648b4671/html5/thumbnails/17.jpg)
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
![Page 18: Servicii linux pentru sisteme reconfigurabile](https://reader034.fdocument.pub/reader034/viewer/2022052209/558b335bd8b42a60648b4671/html5/thumbnails/18.jpg)
19/23
FUNCȚIONAREA SISTEMULUI
![Page 19: Servicii linux pentru sisteme reconfigurabile](https://reader034.fdocument.pub/reader034/viewer/2022052209/558b335bd8b42a60648b4671/html5/thumbnails/19.jpg)
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)
![Page 20: Servicii linux pentru sisteme reconfigurabile](https://reader034.fdocument.pub/reader034/viewer/2022052209/558b335bd8b42a60648b4671/html5/thumbnails/20.jpg)
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)
![Page 21: Servicii linux pentru sisteme reconfigurabile](https://reader034.fdocument.pub/reader034/viewer/2022052209/558b335bd8b42a60648b4671/html5/thumbnails/21.jpg)
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)
![Page 22: Servicii linux pentru sisteme reconfigurabile](https://reader034.fdocument.pub/reader034/viewer/2022052209/558b335bd8b42a60648b4671/html5/thumbnails/22.jpg)
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