Partage
  • Partager sur Facebook
  • Partager sur Twitter

Système embarqué

    19 juin 2013 à 9:58:13

    Bonjour,

    Je vous explique rapidement les caractéristiques dont a besoin mon système embarqué : différents traitements de signaux (FFT, filtrage, interpolation...) sur des vecteurs de plus de 10000 points en virgule flottante (donc besoin de mémoire RAM et ROM), besoin d'un support Ethernet pour communiquer sur un réseau (en entrée et en sortie) les décisions prises. Besoin de minimum deux entrées analogiques et donc d'un CAN.

    Le problème se situe là dessus, je n'ai pas les compétences pour réaliser ma propre carte et ni le matériel pour. Travailler avec une carte toute faite du type beagleboard peut s'avérer intéressant mais c'est une usine à gaz vis à vis de ce que j'ai à réaliser (j'ai juste besoin du support Ethernet).

    Existe-t-il des sociétés qui créent des cartes plus personnalisées ? Avez vous d'autres solutions ?

    Merci

    -
    Edité par Paul-Henri 19 juin 2013 à 10:08:33

    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      19 juin 2013 à 11:43:46

      Je ne suis pas un grand spécialiste mais vu ce que tu décrit, tu peux envisager un DSP. C'est processeur spécialisé dans le traitement des données, donc c'est bien pour toute ta partie FFT, filtrage, interporlation.

      Après, je ne pense que ca gère de l'ethernet nativement. Donc soit tu trouves une carte du commerce avec un CPU+DSP+ethernet (genre ca) soit tu peux essayer de le construire le tout sur mesure avec un FPGA.

      -
      Edité par Anonyme 19 juin 2013 à 11:54:23

      • Partager sur Facebook
      • Partager sur Twitter
        19 juin 2013 à 11:45:05

        Oui l'idéal pour moi semble être un CPU + DSP + Ethernet, mais j'ai du mal à trouver un carte proposant cela dans le commerce. Il existe par exemple les BeagleBoard mais c'est plus un mini ordinateur et je n'ai pas besoin d'une telle machine.

        -
        Edité par Paul-Henri 19 juin 2013 à 11:50:03

        • Partager sur Facebook
        • Partager sur Twitter
          19 juin 2013 à 17:04:37

          Tu peux regarder du côté de la BeagleBone, petite soeur de la beagleboard.

          Il y a 2 version : BeagleBone et BeagleBone Black. La dernière date d'il y a 2 mois et est moitié moins chère que la première (45$ au lieu de 80$) et plus puissante.

          Elle correspond à tes besoin je pense : ARM Cortex @ 1 GHz, 512 Mo de RAM, 1 port Ethernet, et le reste des I/O sont sur des barrettes à la manière d'une Arduino.

          http://circuitco.com/support/index.php?title=BeagleBoneBlack

          La carte ayant un coeur graphique, tu peux faire du calcul en virgule flottante et processing avancé avec ce coeur graphique.

          -
          Edité par zeqL 19 juin 2013 à 17:05:19

          • Partager sur Facebook
          • Partager sur Twitter
            21 juin 2013 à 13:11:42

            Du linux embarqué je ne suis pas certain que ce soit excellent pour du temps réel, je n'ai pas besoin en somme de système d'exploitation. Après, surement les beagleboard peuvent s'utiliser plus en "dur" avec un sofware plus léger ?

            De plus, la beagle bone ne semble pas contenir de DSP.

            • Partager sur Facebook
            • Partager sur Twitter
              21 juin 2013 à 15:58:53

              Concernant le BeagleBone, comment fonctionne leur multiplexage temporel avec les multiples entrées analogiques ? Le décalage temporel entre chaque échantillon peut-il être bien connu ?

              • Partager sur Facebook
              • Partager sur Twitter
                21 juin 2013 à 20:45:51

                Le SoC de la beaglebone comporte premièrement un coeur graphique, je ne me suis pas penché sur les instructions disponibles mais je pense que pour du graphique tu as des instructions de DSP intégrées. Sinon il y a le coprocesseur Neon intégré à l'ARM qui permet d'avoir des instructions supplémentaires (intégrées en hard) notamment pour la vidéo et le son. 

                NEON : http://www.arm.com/products/processors/technologies/neon.php 

                Neon a écrit:

                Supports the following functions: FIR, IIR, FFT, Dot Product, Color space conversion, de-blocking.de-ringing, rotation, scaling, composition

                 Ensuite oui tu peux coder en dur sans OS sur une BeagleBone, Texas Instruments étant sympa, il file pas mal de documentation facilement accessible. Le support sera un peu plus chiant vu que peu de personne codent en dur, mais tu peux toujours poser tes questions sur le site de Texas, car au final tu programme un processeur.

                Paul-Henri a écrit:

                Concernant le BeagleBone, comment fonctionne leur multiplexage temporel avec les multiples entrées analogiques ? Le décalage temporel entre chaque échantillon peut-il être bien connu ?

                 Multiplexage temporel ? C'est-à-dire ? Si tu veux utiliser des pins avec un ADC tu fixe la configuration à l'initialisation et tu n'y touche pas, c'est ce qu'il y a de plus simple à faire.





                • Partager sur Facebook
                • Partager sur Twitter
                  24 juin 2013 à 8:41:29

                  Merci pour les informations concernant la partie DSP du beaglebone.

                  Au niveau du multiplexage temporel, en fait je cherchais un moyen de numériser deux signaux analogiques au même instant, et il semble que des cartes comme beaglebone peuvent acquérir plusieurs signaux mais les uns après les autres ils me semblent, ce qui au final ne réalise pas un multiplexage temporel.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    24 juin 2013 à 14:51:46

                    Perso, je partirais sur du DSP, je sais que TI en fait de très bons. Il suffit de trouver un DSP avec plusieurs ADC et plusieurs DMA. Ou sinon, si c'est du signal audio, tu peux prendre n'importe quel proc avec une entrée I2S et mettre un codec externe à côté.

                    Tu peux caractériser un peu les signaux à numériser ? Fréquence, précision de l'échantillonnage, ...

                    • Partager sur Facebook
                    • Partager sur Twitter
                    64kB de mémoire, c'est tout ce dont j'ai besoin
                      24 juin 2013 à 15:17:03

                      Oui le DSP est clairement indiqué. Il suffit de prendre, c'est vite dit, car je cherche une carte avec le DSP intégré. Et rares sont les cartes avec des ADC intégrés. Je suis tombé là dessus, ça semble pas mal : http://www.ti.com/tool/tmdx5535ezdsp#Technical Documents

                      En fait cette carte a une entrée stéréo, peut être ça fait l'affaire avec mes deux entrées analogiques ?

                      Mais faut que je trouve une carte en extension avec un ADC à deux voies.

                      Pour les signaux à numériser : la fréquence maximale du signal est de 200 Hz, mais j'ai besoin d'un grande précision que ce soit en temps et en amplitude. Je pense qu'échantillonner sur du 16 bits c'est déjà pas mal.

                      Merci

                      -
                      Edité par Paul-Henri 24 juin 2013 à 15:21:31

                      • Partager sur Facebook
                      • Partager sur Twitter
                        24 juin 2013 à 16:10:01

                        Personnellement avec ce que tu demande, je ne partirais pas sur un DSP, car oui ils sont adaptés pour des FFT et traitement du signal, mais aujourd'hui les microcontrolleur 32 bits ARM disposent de fonctions hardware DSP (Avec la famille Cortex-M4). Et même si tu prend un ARM sans fonctions DSP en dur, avec une librairie DSP, vu que tes signaux sont à 200Hz, tu auras du temps pour effectuer les calculs.

                        Le problème c'est qu'un DSP n'a pas forcément d'ADC intégré, et encore moins 2 ADC. Or aujourd'hui les deux fabricants de DSP sont TI et Analog Devices. Tu as donc un choix très restreint de modèles, et encore plus au niveau éval board.

                        De même des cartes de développements avec des ADC + DSP ou MCU sont relativement rare et seront souvent assez chères.

                        La carte TI que tu as vu dispose d'un DSP avec un ADC 10 bits (tu parles de 16 bits dans la suite de ton message...) et je crois qu'il n'est pas capable de faire deux acquisition en même temps (ce que tu demande aussi) et la carte ne dispose pas de port Ethernet (ce que tu demande aussi).

                        Sinon 16 bits c'est assez important pour un ADC (je crois qu'actuellement le maximum qu'on puisse trouver facilement c'est 24 bits)

                        J'ai regardé chez STM les MCU à base de Cortex M3 et M4, il y a peut-être ce que tu cherche :

                        - Cortex M4 (fonctions DSP inclues en hard) : famille STM32F383xx : dispose de 3 ADC 16 bits sigma delta avec possibilité de contrôle par timer (pour déclencher en même temps). Jusqu'à 50 ksps par ADC.  ( http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00058405.pdf )

                        Malheureusement il n'y a pas de d'éval board avec cette famille.

                        - Toujours en Cortex M4, famille STM32F4 (plus puissante que la F3) : il y a la Discovery F4 avec un STM32F407xx, qui possède 3 ADC 12 bits qui peuvent être synchronisés.

                        http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/PF252419   Il n'y a pas d'ethernet et il faudra que tu soude tes fils je pense, mais à 15$ il faut faire des concession, cela peut te permettre de tester le MCU dans un premier temps, et peut-être faire faire une carte plus propre avec ce dont tu as besoin.

                        Il y en a d'autre mais je répondrais plus tard.

                        -
                        Edité par zeqL 24 juin 2013 à 16:19:43

                        • Partager sur Facebook
                        • Partager sur Twitter
                          24 juin 2013 à 16:49:30

                          Effectivement, ça a l'air pas mal tout cela.

                          Bon sur 12 bits, ça me fait un pas de 7.3e-3 V, ça reste pas trop mal.

                          Je me renseigne sur ces différents processeurs, et les cartes d'évaluation proposées, mais effectivement c'est surement très intéressant, la différence de prix avec les éval de DSP est flagrante. Je ne comprends pas trop pourquoi.

                          Question subsidiaire, je suppose qu'il y a un système d'exploitation (au sens large) minimaliste qui tourne par exemple avec le STM32F4, si non, quelles sont les possibilités d'envisager du multi-tâches ? (une tâche de lecture des données, une tâche de calculs)

                          Désolé pour toutes ces questions, mais faut que j'apprenne à mieux lire les data sheet peut-être, mais c'est pas simple tout cet amas d'informations :)

                          Thks.

                          -
                          Edité par Paul-Henri 24 juin 2013 à 17:07:33

                          • Partager sur Facebook
                          • Partager sur Twitter
                            24 juin 2013 à 17:52:25

                            Paul-Henri a écrit: >Question subsidiaire, je suppose qu'il y a un système d'exploitation (au sens large) minimaliste qui tourne par exemple avec le STM32F4

                            Pas de base, c’est juste un micro-contrôleur.

                            si non, quelles sont les possibilités d'envisager du multi-tâches ? (une tâche de lecture des données, une tâche de calculs)

                            Tu peux gérer ça a l’ancienne avec un main qui tourne en boucle en background et des routines interruptions, ou bien utiliser un petit noyaux temps réel, la il y a beaucoup de choix, libre ou non, gratuit ou non.

                            • Partager sur Facebook
                            • Partager sur Twitter
                            Zeste de Savoirbépocode minimal  — Ge0 <3
                              24 juin 2013 à 21:27:46

                               Euh oui 12 bits sur 0-30V ca fait du environ 7 mV par bit, sauf que la tension de référence maximum sur le microcontroleur c'est pas 30V, c'est 3,6V (en général on essaie soit de mettre la tension d'alim, soit si besoin d'une tension vraiment précise, une référence de tension soit égale à la tension d'alimentation, soit un peu inférieure), donc si on ramène à 3.3V, ca fait un pas de 8 mV environ.

                              Ce qui fait que ton signal en 30V, il faudra le conditionner. Or si tu as besoin de grande précision, tu parlais de 16 bits donc sur 0-30V ca fait 0,4 mV !!

                              Si on ramène la tension à du 3,3V, en 16 bits on a 50µV ! Là il faut commencer à regarder un peu toute la chaine d'acquisition : stabilité de la tension de référence, stabilité de la masse : si ta tension de référence ou la masse varient de 1mV tu risque d'avoir un décalage dans ton acquisition.

                              Ensuite tu peux avoir 16 bits de précision mais n'en utiliser réellement que 14 par exemple, dans ce cas tu aurais 200µV de pas.

                              Ca c'est si t'es en mesure "single-ended".

                              En mesure différentielle, par exemple mesure de la tension au borne d'une résistance de précision pour la mesure d'un courant, dans ce cas avoir une précision de l'ordre de la dizane de µV n'a rien de choquant mais il faut quand même faire attention.

                               Il faudrait en savoir un peu plus sur ton application, avec 30V, ce sont des moteurs ?

                              • Partager sur Facebook
                              • Partager sur Twitter
                                25 juin 2013 à 8:35:07

                                Oui oui j'avais vu la tension de référence, il faut que je conditionne les signaux d'entrée pour les ramener sur cette plage de tensions.

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  4 juillet 2013 à 14:54:13

                                  JE TE PROPOSE D'ALLER VOIR LA  DSP  DM 642 EVM de texas instruments
                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  Système embarqué

                                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                  • Editeur
                                  • Markdown