[Numérique] Ecrire un fichier texte sur une carte SD ou une clé USB avec un FPGA
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Ecrire un fichier texte sur une carte SD ou une clé USB avec un FPGA



  1. #1
    invite2db01097

    Ecrire un fichier texte sur une carte SD ou une clé USB avec un FPGA


    ------

    Bonjour,

    Actuellement, j'utilise un kit d'évaluation d'un capteur radar qui me donne 256 octets toutes les 30 ms.
    Le kit d'évaluation comprend la puce radar ainsi qu'un microcontrôleur qui envoie les données par UART sur un câble USB.
    A l'autre bout du câble USB, un raspberry pi enregistre chaque mesure radar dans sa mémoire RAM. Lorsque la manip est terminée, en python j'effectue:
    np.savetxt('donneesRadar.txt', donnesRadar) et un fichier texte apparait comme par magie sur la carte SD du raspberry pi.

    Maintenant, mon objectif est de faire une carte plus adaptée à mon besoin, en remplaçant le microcontrôleur par un FPGA.
    Avec un FPGA, il est sûrement possible de faire une carte déclenchant le radar toutes les 1 ms, on aurait donc un débit de données 30 fois plus important (d'environ 2Mbit/s).
    Mon objectif est d'enregistrer ces données dans un fichiers texte sur une carte SD ou une clé USB, mais ça a l'air difficile en VHDL.
    Comment cela se fait-il qu'en C, il suffit d'écrire fputs("ce que je veux écrire",NomDuFichier) pour écrire sur une mémoire Flash alors qu'en VHDL il n'y a pas d'IP permettant de communiquer avec le SD protocol ?
    J'ai vu qu'il était possible d'écrire des données via SPI sur la carte SD, mais le débit à l'air moins bon (en effet, selon ce document http://www.dejazzer.com/ee379/lectur...12_sd_card.pdf, le signal d'horloge doit être limité à 400 kHz ce qui limite le débit à 400 kbit/s) et on a pas un fichier texte au final.
    Dois-je recourir à un SoC à la place d'un FPGA pour écrire ce fichier texte sur une mémoire Flash ?
    Comment vous vous y prendriez pour déclencher ce radar toutes les 1ms et enregistrer les données sur une mémoire Flash ?

    Merci d'avance pour vos réponses.

    -----

  2. #2
    jiherve

    Re : Ecrire un fichier texte sur une carte SD ou une clé USB avec un FPGA

    bonsoir
    le VHDL n'est pas du soft !!!
    Il faudra concevoir un FPGA embarquant les interfaces ad hoc et un microprocesseur , tout ceci existe sous forme d'IP.
    mais il faudra d'abord apprendre le VHDL.
    JR
    l'électronique c'est pas du vaudou!

  3. #3
    luc_1049

    Re : Ecrire un fichier texte sur une carte SD ou une clé USB avec un FPGA

    Bonsoir

    Ecrire dans une flash devrait pouvoir se faire facilement avec un fpga en vhdl, dans une carte sd sans doute aussi mais je ne connais pas. Il y a sans doute un protocole qu'il vous faudra connaître qui englobe les données et ralentit peut être le débit d'écriture par rapport à une simple flash..

    Vous pourriez stocker dans une flash périphérique // du fpga et retransmettre ensuite en créant une gestion d'uart série en vhdl dans votre fpga.

    Si vous avez beaucoup de données à stocker et à renvoyer peut être qu'une fifo dans une mémoire vive (pas une flash) vous permettrait un gros débit.

    Il vous faut faire un chronogramme pour y voir clair.

    Embarquer un micro dans un fpga c'est sans aucun doute plus compliqué et pas justifié avec une solution à flash, ram...

    cdlt

  4. #4
    Murayama

    Re : Ecrire un fichier texte sur une carte SD ou une clé USB avec un FPGA

    Bonjour!

    Vu le débit dont vous parlez, je ne suis pas certain qu'un FPGA soit nécessaire.

    256bytes (2048 bits) à 115200 bps, ça prend en gros 2% du temps. 30 fois plus rapide
    comme vous voudriez le faire, ça prend donc 60% du temps. Par contre, vous pouvez
    programmer le µP pour recevoir les bytes en DMA, et avoir une interruption à chaque
    buffer. De cette façon, il n'y a aucun temps de processeur à part l'appel de l'interruption
    et l'ajout des données sur la carte, et ça doit être jouable directement sur Raspberry
    même en python.

    Dans ce cas, si vous avez déjà le kit d'évaluation qui crache des données à intervalles
    réguliers en UART, vous n'avez pas besoin de FPGA.

    NB: je ne peux pas vous aider pour cela, je n'ai fait ce genre de manips qu'avec un
    processeur ordinaire (i.e. sans Linux) et je ne sais pas comment programmer des
    interruptions sur Rasp. Ça se fait avec des fichier de config, je crois, mais je
    ne sais pas comment. Il y a certainement quelqu'in ici qui sait le faire. Attendons
    la suite.

    Un FPGA n'est nécessaire que quand on ne peut pas faire autrement. Le développement
    est plus complexe qu'en C, il y a beaucoup moins d'ingénieurs capables de s'y coller
    (par rapport au langage C). Et cela nécessite de bien plus solides connaissances en
    hardware que le C. Ce serait un peu tuer une mouche avec un missile.

    Pascal

  5. A voir en vidéo sur Futura

Discussions similaires

  1. ecrire dans un fichier texte c++
    Par docEmmettBrown dans le forum Programmation et langages, Algorithmique
    Réponses: 9
    Dernier message: 23/02/2018, 21h58
  2. Comparer un fichier audio (wav) avec un fichier texte
    Par invitebe4fbae8 dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 30/11/2014, 10h16
  3. fichier texte avec matlab
    Par invite3bf74035 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 02/05/2013, 11h31
  4. Écrire un fichier avec un .h, en ouvrant le fichier dans main
    Par AmigaOS dans le forum Programmation et langages, Algorithmique
    Réponses: 4
    Dernier message: 30/01/2011, 20h30
  5. Problème de gestion de fichier sur carte FPGA
    Par invitefdead068 dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 06/05/2010, 13h52
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...