Tu es conscient que tu cherches la quadrature du cercle ?
Déjà, tu n'arrives pas à chiffrer combien d'E/S il te faut, on revient encore à « beaucoup », « plus », etc. Personne ne peut te trouver de solution ainsi.
Si on prend tes 25 moteurs, avec 3 capteurs analogiques et 3 sorties numériques chacun, ça fait déjà 75 entrées analogiques et 75
sorties numériques. + d'autres capteurs + d'autres sorties, donc au moins 100 entrées analogiques et 100 sorties numériques. Et tu voudrais que tout ça rentre directement dans un seul composant (200 pattes rien que pour ça, sans compter masses ou entrées différencielles) alors que tu voudrais un boîtier sans trop de pattes ? Et tu veux aussi que le composant soit fourni en RAM (donc large bus d'adresse), et très véloce (donc bus de données 32 ou 64 bits), alors que tu voudrais un boîtier sans trop de pattes ?
En plus tu ne veux pas optimiser en hiérarchisant les entrées/sorties ni en les multiplexant, du coup toutes au max de précision et il faut toutes les caser dans un bref laps de temps. => bouffage de ressources et restriction du choix.
Même en mettant de côté le coup du nombre de pattes, de tels composants n'existent pas. Les SoC n'ont pas d'E/S du type que tu veux, même en nombre insuffisant, ils ne sont pas fait pour ça. Les μC ne peuvent pas soutenir tout le bazar que tu veux faire tourner et de toutes manières, bien qu'ils soient fait pour ce type d'E/S, je n'en connais pas avec autant d'E/S (une trentaine de CAN n'est pas fréquent, alors 100...). Les FPGA, parfaits pour toutes tes E/S numériques par leur grand nombre d'E/S, comportent très rarement des parties analogiques ; on peut cependant faire des CAN avec du Sigma-Delta, mais ça doit bouffer des ressources.
Donc il te faudrait un composant spécialisé pour tes spécifications, autant dire un marché de niche et c'est là que ça va être « coûteux ». Autant dire que pour le beurre et l'argent du beurre, ce n'est pas possible, il faut supprimer une ou plusieurs exigences.
Donc pour réconcilier la plupart des fonctionnalités que tu demandes, il te faut tout ça : 1 SoC + 1 FPGA + n μC/CAN.
Enfin, tu parles de « compact ». Je ne suis pas sûr que relier 200 ou 400 fils à une unique carte centrale soit pratique, que ce soit à l'arrivée sur la carte ou pour les passer dans les structures, surtout des structures articulées/mobiles. Sans même parler de la tronche des signaux analogiques dans ce merdier. Au contraire il me semble qu'il faut réduire le nombre de fils an multiplexant les infos sur de simples lignes numériques.
Donc on revient aux solutions que tu n'aimes pas, du genre :
- une carte principale avec SoC + FPGA, et n CAN déportés reliés par SPI1.
- une carte principale avec SoC, et n μC déportés reliés par SPI1.
- une carte principale avec SoC + l'aide d'un μC ou FPGA pour libérer le SoC de toute la gestion des E/S, et n μC déportés reliés par SPI1.
Sinon, la seule possibilité « simple » que je vois, en gardant la touffe de fils, c'est le combo [Soc+FPGA] ou [Zynq], en faisant du Sigma-Delta. Mais toujours le même problème : ça demande énormément d'E/S disponibles. 100 sorties + 3 x 100 entrées = 400 pattes dédiées ! Et ça, ça n'existe pas en Zynq à prix raisonnable. Donc [SoC+FPGA maousse2] ou [SoC+2xFPGA moyens] ou [SoC+3/4xFPGA petits] ou [Zynq+FPGA moyen] ou [Zynq+2/3 FPGA petits].
pour conserver une bonne vitesse, passer en différentiel si la distance est peu longue. ↩
par exemple, un EP4CE30F29C7N, pas spécialement cher, mais en boîtier BGA à 780 billes. Gloups. De toutes façons, BGA obligatoire (plus de QFP) au delà de 160 E/S (100 E/S seulement pour les dernières générations). ↩
[^] # Re: embarqué ?
Posté par gnx . En réponse à la dépêche L’arrivée du BananaPi. Évalué à 2.
Tu es conscient que tu cherches la quadrature du cercle ?
Déjà, tu n'arrives pas à chiffrer combien d'E/S il te faut, on revient encore à « beaucoup », « plus », etc. Personne ne peut te trouver de solution ainsi.
Si on prend tes 25 moteurs, avec 3 capteurs analogiques et 3 sorties numériques chacun, ça fait déjà 75 entrées analogiques et 75
sorties numériques. + d'autres capteurs + d'autres sorties, donc au moins 100 entrées analogiques et 100 sorties numériques. Et tu voudrais que tout ça rentre directement dans un seul composant (200 pattes rien que pour ça, sans compter masses ou entrées différencielles) alors que tu voudrais un boîtier sans trop de pattes ? Et tu veux aussi que le composant soit fourni en RAM (donc large bus d'adresse), et très véloce (donc bus de données 32 ou 64 bits), alors que tu voudrais un boîtier sans trop de pattes ?
En plus tu ne veux pas optimiser en hiérarchisant les entrées/sorties ni en les multiplexant, du coup toutes au max de précision et il faut toutes les caser dans un bref laps de temps. => bouffage de ressources et restriction du choix.
Même en mettant de côté le coup du nombre de pattes, de tels composants n'existent pas. Les SoC n'ont pas d'E/S du type que tu veux, même en nombre insuffisant, ils ne sont pas fait pour ça. Les μC ne peuvent pas soutenir tout le bazar que tu veux faire tourner et de toutes manières, bien qu'ils soient fait pour ce type d'E/S, je n'en connais pas avec autant d'E/S (une trentaine de CAN n'est pas fréquent, alors 100...). Les FPGA, parfaits pour toutes tes E/S numériques par leur grand nombre d'E/S, comportent très rarement des parties analogiques ; on peut cependant faire des CAN avec du Sigma-Delta, mais ça doit bouffer des ressources.
Donc il te faudrait un composant spécialisé pour tes spécifications, autant dire un marché de niche et c'est là que ça va être « coûteux ». Autant dire que pour le beurre et l'argent du beurre, ce n'est pas possible, il faut supprimer une ou plusieurs exigences.
Donc pour réconcilier la plupart des fonctionnalités que tu demandes, il te faut tout ça : 1 SoC + 1 FPGA + n μC/CAN.
Enfin, tu parles de « compact ». Je ne suis pas sûr que relier 200 ou 400 fils à une unique carte centrale soit pratique, que ce soit à l'arrivée sur la carte ou pour les passer dans les structures, surtout des structures articulées/mobiles. Sans même parler de la tronche des signaux analogiques dans ce merdier. Au contraire il me semble qu'il faut réduire le nombre de fils an multiplexant les infos sur de simples lignes numériques.
Donc on revient aux solutions que tu n'aimes pas, du genre :
- une carte principale avec SoC + FPGA, et n CAN déportés reliés par SPI1 .
- une carte principale avec SoC, et n μC déportés reliés par SPI1 .
- une carte principale avec SoC + l'aide d'un μC ou FPGA pour libérer le SoC de toute la gestion des E/S, et n μC déportés reliés par SPI1 .
Sinon, la seule possibilité « simple » que je vois, en gardant la touffe de fils, c'est le combo [Soc+FPGA] ou [Zynq], en faisant du Sigma-Delta. Mais toujours le même problème : ça demande énormément d'E/S disponibles. 100 sorties + 3 x 100 entrées = 400 pattes dédiées ! Et ça, ça n'existe pas en Zynq à prix raisonnable. Donc [SoC+FPGA maousse2 ] ou [SoC+2xFPGA moyens] ou [SoC+3/4xFPGA petits] ou [Zynq+FPGA moyen] ou [Zynq+2/3 FPGA petits].
pour conserver une bonne vitesse, passer en différentiel si la distance est peu longue. ↩
par exemple, un EP4CE30F29C7N, pas spécialement cher, mais en boîtier BGA à 780 billes. Gloups. De toutes façons, BGA obligatoire (plus de QFP) au delà de 160 E/S (100 E/S seulement pour les dernières générations). ↩