Servicii linux pentru sisteme reconfigurabile

Post on 25-Jun-2015

119 views 3 download

transcript

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