+ All Categories
Home > Engineering > Servicii linux pentru sisteme reconfigurabile

Servicii linux pentru sisteme reconfigurabile

Date post: 25-Jun-2015
Category:
Upload: valentin-mihalcut
View: 119 times
Download: 3 times
Share this document with a friend
22
SERVICII LINUX PENTRU SISTEME RECONFIGURABILE COORDONATOR ȘTIINȚIFIC Ș.L. DR. ING. ANDREI STAN ABSOLVENT VALENTIN MIHĂLCUȚ
Transcript
Page 1: Servicii linux pentru sisteme reconfigurabile

SERVICII LINUX

PENTRU SISTEME

RECONFIGURABILE

COORDONATOR ȘTIINȚIFIC

Ș.L. DR. ING. ANDREI STAN

ABSOLVENT

VALENTIN MIHĂLCUȚ

Page 2: Servicii linux pentru sisteme reconfigurabile

2/23

ARHITECTURA SISTEMULUI

Page 3: Servicii linux pentru sisteme reconfigurabile

3/23

ARHITECTURA ZYNQ 7000

Page 4: Servicii linux pentru sisteme reconfigurabile

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

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

6/23

COMPONENTE HARDWARE

Page 7: Servicii linux pentru sisteme reconfigurabile

7/23

MODULUL SPI

Page 8: Servicii linux pentru sisteme reconfigurabile

8/23

SIMULAREA MODULULUI SPI

Spi Master

Spi Slave

Page 9: Servicii linux pentru sisteme reconfigurabile

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

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

11/23

COMPONENTE SOFTWARE

Page 12: Servicii linux pentru sisteme reconfigurabile

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

13/23

KERNEL DRIVER

Page 14: Servicii linux pentru sisteme reconfigurabile

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

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

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

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

19/23

FUNCȚIONAREA SISTEMULUI

Page 19: Servicii linux pentru sisteme reconfigurabile

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

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

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

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


Recommended