Partage
  • Partager sur Facebook
  • Partager sur Twitter

Projet ayant recours au protocôle SPI et ETHERNET

    2 avril 2013 à 18:51:56

    Bonjour à tous,

    Dans le cadre d'un projet, je souhaite récupérer des informations venant d'un câble Ethernet.

    Pour ce faire, j'utilise un contrôleur Ethernet ENC28J60 qui facilitera le travail de mon microcontrôleur (ATMEGA8) derrière. Ce composant convertit le bus Ethernet en SPI.

    Mon problème c'est que je n'ai jamais travaillé sur le protocole Ethernet ni SPI!

    J'aimerais bien savoir de quoi se compose le protocole Ethernet pour savoir ce que le bus SPI va recevoir de ce composant. Avec ceci j'aimerais faire du traitement de données et en prendre qu'une seule en particulier pour une application bien spécifique matériellement!

    Si vous avez des infos par rapport à ces deux protocoles!^^

    -
    Edité par joffrey575 3 avril 2013 à 11:14:02

    • Partager sur Facebook
    • Partager sur Twitter
      2 avril 2013 à 20:28:37

      Salut

      Oubli... Si tu n'a même pas pris la peine de lire la datasheet. Tu n'as meme pas l'air d'avoir de notion en reseau.

      Que cherche tu a faire exactement??

      Pour les infos sur les protocoles => Google/wikipedia

      • Partager sur Facebook
      • Partager sur Twitter
      http://jacen92.free.fr
        3 avril 2013 à 9:41:03

        J'aimerais depuis un téléphone portable envoyer un message via twetter sur un autre compte twetter.

        Le premier compte sera connecté sur mon telephone portable et le deuxième compte sur une plaque qui va s'occuper de traiter le message envoyé pour savoir quoi actionner par la suite. Ici, un transistor.

        Voila qui est plus clair

        -
        Edité par joffrey575 3 avril 2013 à 11:15:03

        • Partager sur Facebook
        • Partager sur Twitter
          3 avril 2013 à 23:16:22

          OK alors Arduino et shield ethernet...

          Faire une carte qui gère l'ethernet sans casser ton réseau n'est pas facile a faire il me semble ( au niveau CEM )

          Au plus simple ta plaque ne peut elle pas etre connecter a un PC?

          • Partager sur Facebook
          • Partager sur Twitter
          http://jacen92.free.fr
            4 avril 2013 à 0:25:19

            joffrey575 a écrit:

            Mon problème c'est que je n'ai jamais travaillé sur le protocole Ethernet ni SPI!

            C'est l'occasion d'apprendre comme qui dirait.

            Ethernet : http://fr.wikipedia.org/wiki/Ethernet pour avoir un résumé

            Si tu veux la norme : http://standards.ieee.org/about/get/802/802.3.html

            SPI : http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus Ensuite tu lis la datasheet de ton controleur ( http://ww1.microchip.com/downloads/en/devicedoc/39662a.pdf ) pour savoir comment il fonctionne, on ne va pas t'expliquer tout de A à Z.

            Dans ton cas, vu ce que tu racontes, tu semble n'avoir quasiment aucune compétence en électronique (probablement la base, mais ce n'est pas suffisant pour ton projet) et informatique embarquée.

            Ton contrôleur Ethernet gère la couche PHY et la couche MAC, en gros les couches 1 et 2 du modèle OSI.

            Quand on te parle d'adresse IP tu es au niveau de la couche 3 (Réseau), du TCP tu es sur la couche 4 (transport) et enfin HTTP sur la couche 7 (application).

            En gros ton projet travaille sur la couche 7, or le contrôleur que tu as travaille seulement sur la couche 1 et 2, il faut donc gérer les couches intermédiaires (3 à 6), ce dont tu ne seras absolument pas capable, et surtout ce n'est pas ton but :)  (Bon il y a probablement des librairies pour Arduino qui existent)

            Donc plutôt que de t'orienter vers une arduino pour travailler à un niveau aussi haut, tu peux regarder du côté de la Raspberry Pi ou de la BeagleBone. Ces cartes font tourner linux et disposent de sorties GPIO qui te permettront de piloter un transistor par exemple. L'avantage c'est qu'avec un linux embarqué, la gestion de l'ethernet se fait de facon beaucoup plus simple, de facon quasiment invisible. Tu pourras en plus directement utiliser l'API twitter si cela peut t'aider à faire ton programme.
            • Partager sur Facebook
            • Partager sur Twitter
              4 avril 2013 à 10:32:26

              Réponse à Jacen92:

              Comme tu dis Arduino et shield ethernet mais les moyens disponible
              sont assez faible. Le shield vaut bien 80 euros et l'arduino n'est
              donné non plus.

              Le niveau CEM, sa veut dire?

              Le but de la carte est d'être le moins encombrant possible, sa serait
              possible pour des essaies mais par pour la réalisation finale.
              On penche pour le principe d'une carte "embarquée".

              Réponse à zeqL:

              Oui bien sur, je vais étudier tout ce que tu m'as donné.

              Par rapport aux compétences, j'ai ce qu'il faut en électronique analogique (enfin, je suis loin d'être un expert)
              mais en ce qui concerne le numérique, j'ai encore beaucoup à apprendre.

              Réponse à tous:

              Je pense rester sur l'option ATMEGA8 mais à mon avis, sa va être très dur de réaliser ce que je veux faire avec ce composant!

              Je vais déjà étudier tout sa et je vous retiens au courant,

              Merci d'avance

              J'oubliais, j'ai cherché un peu pour l'Ethernet et j'ai trouvé le pdf ci-joint! Dite moi si sa vaut le coup de le compulser. Merci à vous. 

              http://www.lacl.fr/cegielski/sec/ch2.pdf

              -
              Edité par joffrey575 4 avril 2013 à 10:37:47

              • Partager sur Facebook
              • Partager sur Twitter
                4 avril 2013 à 11:27:40

                Petites précisions :

                Un shield Ethernet ne coute pas si cher, on peut le trouver pour une 30aine d'euros.

                La CEM n'a rien à voir avec "être le moins encombrant possible"... CEM veut dire "Compatibilité Electro Magnétique", qui en gros signifie que ta carte n'émet pas des ondes dans tout les sens qui risquerait de poser problème aux équipements à coté entre autres.

                • Partager sur Facebook
                • Partager sur Twitter

                Retrouvez moi sur mon blog et ma chaine Youtube !

                  4 avril 2013 à 11:39:37

                  salut,

                  honnêtement, je suis pas là en démoralisateur, mais vraiment si tu continue sur cette voie là, tu te confronte à un probleme BEAUCOUP trop gros pour un seul homme, même au top avec la technologie. des objets comme ça des entreprises se lancent dans des projets identiques prévus sur 2 ans à une dizaine de personne, avec aucune garantie de résultat, alors une seule personne et pas spécialement au point avec la techno, je te laisse imaginer le calcul.

                  donc si j'ai un (modeste) conseil, t'embête pas avec ton atmega 8, tu t'en serivras pour autre chose, genre un tetris, surtout quand des supports comme la rasberry pi, cubie board ou la beaglebone existent et sont tout ce qu'il y a de plus adapté à ton projet. dans celles que j'ai citées, toutes les 3 entre 30 et 50€, et de la taille approximative d'une main, comparables à des ordinateurs entiers, capable d'atteindre de manière relativement transparente tous les points de ton projet.
                  • Partager sur Facebook
                  • Partager sur Twitter

                  oui. non. enfin je regarde et je te dis.

                    4 avril 2013 à 14:13:03

                    Oui je suis d'accord avec remace. Surtout que tu va devoir mettre en place le driver, toute la pile IP + faire un parseur HTML qui marche avec Tweeter le tout sur un processeur 8 bits avec quelque ko de RAM et de FLASH. C'est tout simplement irréalisable.

                    • Partager sur Facebook
                    • Partager sur Twitter
                      4 avril 2013 à 15:12:49

                      millman a écrit:

                      Oui je suis d'accord avec remace. Surtout que tu va devoir mettre en place le driver, toute la pile IP + faire un parseur HTML qui marche avec Tweeter le tout sur un processeur 8 bits avec quelque ko de RAM et de FLASH. C'est tout simplement irréalisable.


                      je n'osais pas le dire, j'avais peur de me tromper
                      • Partager sur Facebook
                      • Partager sur Twitter

                      oui. non. enfin je regarde et je te dis.

                        4 avril 2013 à 19:44:02

                        Eskimon a écrit:

                        Petites précisions :

                        Un shield Ethernet ne coute pas si cher, on peut le trouver pour une 30aine d'euros.

                        La CEM n'a rien à voir avec "être le moins encombrant possible"... CEM veut dire "Compatibilité Electro Magnétique", qui en gros signifie que ta carte n'émet pas des ondes dans tout les sens qui risquerait de poser problème aux équipements à coté entre autres.


                        Je partais du principe qu'il voulais faire la carte lui meme...

                        +1 pour la Raspberry Pi, autant ne pas reinventer la roue

                        • Partager sur Facebook
                        • Partager sur Twitter
                        http://jacen92.free.fr
                          10 avril 2013 à 18:24:19

                          A étudier tout sa^^ Merci à tous! Si j'avance, je vous tiendrai au courant
                          • Partager sur Facebook
                          • Partager sur Twitter
                            10 avril 2013 à 19:32:33

                            Colle un ARM Cortex avec ethernet dedans, genre un M3 ou M4. Installe LWIP. Paf. T'as juste à compiler le programme d'exemple, ça fait un serveur web. LWIP c'est la pile tcp ip open source, avec ça tu as les sockets, tcp-ip et tout le bazar.

                            Note que les perfs de lwip et du code d'exemple sont moyennes, enfin pas sur ce uC, mais sur le LPC4330 qui est sur mon bureau, et qui est un peu plus puissant. Mais j'exécutais le code sur une flash SPI lente, donc "votre expérience personnelle peut varier". La flash de ce uC tourne à la fréquence du CPU à ce qu'il semble, donc ça devrait envoyer.

                            C'est un Cortex-M3 à 120 MHz. Ça te changera des 8 bits.

                            http://www.embeddedartists.com/products/app/aoa_kit.php

                            Si tu me dis que 60€ pour ça c'est cher, bon, ok, c'est plus cher que 0€, mais quand même, merde, quoi. Mets 20€ de plus pour le debugger JTAG, ça les vaut (il crashe de temps en temps, mais quel luxe de pouvoir foutre des breakpoints et examiner chaque variable à la loupe depuis eclipse)... 

                            > +1 pour la Raspberry Pi, autant ne pas reinventer la roue

                            La rPi, c'est pas vraiment "embarqué". C'est plus un micro PC avec quelques GPIO et IO série qu'une vraie carte embarquée. Et il faut se coltiner linux, c'est bien si tu veux faire du haut niveau, par exemple une interface web ou un script en python, mais si tu veux faire une interruption ou attaquer directement du hardware, c'est beaucoup plus délicat, il faut faire un driver, etc... rien à voir avec mettre une valeur dans un registre.

                            Les trucs à base d'ARM Cortex, c'est un autre menu : tu n'as pas de HDMI ni de linux ni de très haut niveau, mais tu as une liste de périphérique monstrueuse, des IO de toutes sortes, et un cpu d'une puissance quand même balaise. 

                            C'est vraiment 2 outils différents pour des besoins différents.

                            Si tu es habitué aux uC 8 bits, l'ARM, ce n'est pas vraiment différent au niveau de la philosophie, juste foutrement plus puissant. Et il faut aimer les datasheets de 1200 pages, mais tu n'es pas forcé d'apprendre par coeur chaque fonction de chaque périphérique, hein. Tu lis juste ce dont tu as besoin.

                            Par exemple, j'ai une interruption qui tire 400.000 fois par seconde. Sur un Cortex-M0 à 204 MHz, le cpu le plus bas de gamme, qui consomme genre 2 mA, qui fait moins de 1 mm2, ben, la latence d'interruption est tellement ridicule, que pour rentrer dans l'interruption, exécuter les 10 instruction qui sont dedans, et ressortir, ça prend moins de temps que 1 cycle d'horloge sur un AVR à 8 MHz. J'ai testé 1M interruptions/s, ça prend quoi, 10% du cpu... il s'en tape. Les performances de ces micros modernes sont juste hallucinantes (ainsi que les prix).

                            Tiens, je colle la liste de ce qu'il y a dans un chip à 5-6$ :

                            ARM Cortex-M4 processor, running at frequencies of up to 204 MHz.

                            ARM Cortex-M4 built-in Memory Protection Unit (MPU) supporting eight regions.

                            ARM Cortex-M4 built-in Nested Vectored Interrupt Controller (NVIC).

                            Hardware floating-point unit.

                            Non-maskable Interrupt (NMI) input.

                            JTAG and Serial Wire Debug (SWD), serial trace, eight breakpoints, and four watch points.

                            Enhanced Trace Module (ETM) and Enhanced Trace Buffer (ETB) support.

                            System tick timer.

                            Cortex-M0 Processor core

                            ARM Cortex-M0 co-processor capable of off-loading the main ARM Cortex-M4 application processor.

                            Running at frequencies of up to 204 MHz.

                            JTAG and built-in NVIC.

                            On-chip memory

                            Up to 264 kB SRAM for code and data use.

                            Multiple SRAM blocks with separate bus access. Two SRAM blocks can be powered down individually.

                            64 kB ROM containing boot code and on-chip software drivers.

                            128 bit general-purpose One-Time Programmable (OTP) memory.

                            Clock generation unit

                            Crystal oscillator with an operating range of 1 MHz to 25 MHz.

                            12 MHz Internal RC (IRC) oscillator trimmed to 1 % accuracy over temperature and voltage.

                            Ultra-low power Real-Time Clock (RTC) crystal oscillator.

                            Three PLLs allow CPU operation up to the maximum CPU rate without the need for a high-frequency crystal. The second PLL is dedicated to the High-speed USB, the third PLL can be used as audio PLL.

                            Clock output.

                            Configurable digital peripherals

                            Serial GPIO (SGPIO) interface.

                            State Configurable Timer (SCT) subsystem on AHB.

                            Global Input Multiplexer Array (GIMA) allows to cross-connect multiple inputs and outputs to event driven peripherals like the timers, SCT, and ADC0/1.

                            Serial interfaces

                            Quad SPI Flash Interface (SPIFI) with 1-, 2-, or 4-bit data at rates of up to 52 MB per second.

                            10/100M Ethernet MAC with RMII and MII interfaces and DMA support for high throughput at low CPU load. Support for IEEE 1588 time stamping/advanced time stamping (IEEE 1588-2008 v2).

                            One High-speed USB 2.0 Host/Device/OTG interface with DMA support and on-chip high-speed PHY (USB0).

                            One High-speed USB 2.0 Host/Device interface with DMA support, on-chip full-speed PHY and ULPI interface to external high-speed PHY (USB1).

                            USB interface electrical test software included in ROM USB stack.

                            Four 550 UARTs with DMA support: one UART with full modem interface; one UART with IrDA interface; three USARTs support UART synchronous mode and a smart card interface conforming to ISO7816 specification.

                            Up to two C_CAN 2.0B controllers with one channel each. 

                            Two SSP controllers with FIFO and multi-protocol support. Both SSPs with DMA support.

                            One SPI controller.

                            One Fast-mode Plus I2C-bus interface with monitor mode and with open-drain I/O pins conforming to the full I2C-bus specification. Supports data rates of up to 1 Mbit/s.

                            One standard I2C-bus interface with monitor mode and with standard I/O pins.

                            Two I2S interfaces, each with DMA support and with one input and one output.

                            Digital peripherals

                            External Memory Controller (EMC) supporting external SRAM, ROM, NOR flash, and SDRAM devices.

                            LCD controller with DMA support and a programmable display resolution of up to 1024 H 768 V. Supports monochrome and color STN panels and TFT color panels; supports 1/2/4/8 bpp Color Look-Up Table (CLUT) and 16/24-bit direct pixel mapping.

                            Secure Digital Input Output (SD/MMC) card interface.

                            Eight-channel General-Purpose DMA controller can access all memories on the AHB and all DMA-capable AHB slaves.

                            Up to 164 General-Purpose Input/Output (GPIO) pins with configurable pull-up/pull-down resistors.

                            GPIO registers are located on the AHB for fast access. GPIO ports have DMA support.

                            Up to eight GPIO pins can be selected from all GPIO pins as edge and level sensitive interrupt sources.

                            Two GPIO group interrupt modules enable an interrupt based on a programmable pattern of input states of a group of GPIO pins.

                            Four general-purpose timer/counters with capture and match capabilities. 

                            One motor control Pulse Width Modulator (PWM) for three-phase motor control.

                            One Quadrature Encoder Interface (QEI).

                            Repetitive Interrupt timer (RI timer).

                            Windowed watchdog timer (WWDT).

                            Ultra-low power Real-Time Clock (RTC) on separate power domain with 256 bytes of battery powered backup registers.

                            Alarm timer; can be battery powered.

                            Analog peripherals

                            One 10-bit DAC with DMA support and a data conversion rate of 400 kSamples/s.

                            Two 10-bit ADCs with DMA support and a data conversion rate of 400 kSamples/s.

                            Up to eight input channels per ADC.

                            Unique ID for each device.

                            Power

                            Single 3.3 V (2.2 V to 3.6 V) power supply with on-chip internal voltage regulator for the core supply and the RTC power domain.

                            RTC power domain can be powered separately by a 3 V battery supply.

                            Four reduced power modes: Sleep, Deep-sleep, Power-down, and Deep power-down.

                            Processor wake-up from Sleep mode via wake-up interrupts from various peripherals.

                            Wake-up from Deep-sleep, Power-down, and Deep power-down modes via external interrupts and interrupts generated by battery powered blocks in the RTC power domain.

                            Brownout detect with four separate thresholds for interrupt and forced reset.

                            Power-On Reset (POR).

                            • Partager sur Facebook
                            • Partager sur Twitter

                            Projet ayant recours au protocôle SPI et ETHERNET

                            × 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