VHDL - Contrôleur de feux - Divers - Programmation
Marsh Posté le 15-11-2010 à 00:07:09
pour faire du vhdl il ne faut pas un PIC mais un fpga
xilinx est un vendeur de fpga tu peux trouver les version gratuites des outils sur le site de xilinx
http://www.xilinx.com/support/download/index.htm
modelsim est très cher mais en général les vendeur de fpga comme xilinx fournissent des version bridées mais largement suffisantes pour un débutant
sinon pour apprendre le vhdl rien ne vaut un bon livre sur le sujet, ça permet au passage de maîtriser la programmation concurrentiel (parallèle)
en effet un circuit se comporte comme plein de petits programme simples "s'exécutant" en parallèle
Marsh Posté le 15-11-2010 à 10:20:02
Salut,
Tout ce qu'à dit sligor est vrai. Concernant le projet, ça me semble en effet une bonne manière de se "faire la main" même si, pour une appli industrielle, il faudrait utiliser un MCU (donc programmé en C) plutôt qu'un FPGA (programmé en VHDL)
Marsh Posté le 15-11-2010 à 23:05:16
Salut,
Comme FPGA tu as le choix en gros entre Xilinx, Altera et Actel (les plus gros)
Chacun dispose sur leur sites d'IDE gratuits (ils ne sont pas complet mais largement suffisant pour débuter et plus):
- Xilinx: Xilinx ISE: http://www.xilinx.com/tools/webpack.htm
- Altera: Quartus : https://www.altera.com/download/software/quartus-ii-we
- Actel: Libero: http://www.actel.com/products/software/libero/
Je crois qu'ils sont tous accompagnés de Modelsim (en version bridée mais ça te suffira amplement)
Voilà, il ne reste pus qu'à te trouver un carte de développement (et pas un PIC hein!
Marsh Posté le 16-11-2010 à 00:10:01
Les gars, franchement, vous êtes super. Je pensais pas que j'aurais des réponses. C'est très gentil et je vous en remercie !
En vous lisant, j'ai l'impression que je me trompe en voulant pgmer un PIC en VHDL.
J'aimerais développer ce projet comme si j'allais en faire une application industrielle (c'est à dire que si j'y arrive, alors j'aimerais arriver à un produit qui me permette d'ouvrir ma boite).
Ce qu'il faut savoir c'est que je ne sais pgmer qu'en VHDL. Vous me conseillez de partir avec quel genre de composant? J'ai cru comprendre qu'un PIC suffisait, mais je me trompe peut être. Qu'en pensez vous?
PS : dsl pr le titre en majuscules.
Marsh Posté le 16-11-2010 à 00:26:32
Tu ne peux pas programmer en VHDL sur un PIC, un PIC est un micro-contrôleur.
Ce que tu peux programmer en VHDL sont les CPLD et les FPGA. Je ne sais pas quelle était ton école mais il me semble bizarre que tu n'aies appris à programmer qu'en VHDL. En général tu apprend le C/C++ voir assembleur avant (même si je te l'accorde, on peut apprendre VHDL/Verilog sans rien connaitre de la programmation sur PC/CPU/micro-contrôleur).
Si tu te souviens d'avoir programmé sur PIC, alors c'était surement de l'assembleur et non du VHDL.
Sinon pour débuter le VHDL à bas prix je te conseille d'aller voir du coté des spartan3 chez Xilinx ou des cyclones II chez Altera. Ces puces ne sont pas trop chères, en fonction de la taille de la matrice que tu choisis. De plus il existe une foultitude de kits de développement basés dessus.
Marsh Posté le 16-11-2010 à 10:29:59
h3bus, pendant mes études, j'ai appris la pgmation en VHDL et en assembleur mais je n'ai pas eu l'occasion de pgmer un microcontroleur en C...
Dans ce cas, mettons de côté pour l'instant le PIC. Peut-il y avoir un avantage selon toi/vous à utiliser un FPGA pour pgmer (ds ce cas en VHDL) un controleur de feux tricolores?
Ou dois je me résigner à me remettre à l'assembleur ou à apprendre le C?
Merci.
Marsh Posté le 16-11-2010 à 10:48:48
Il n'y aura certainement aucun avantage, si ce n'est académique, pour une application comme la tienne à utiliser un FPGA:
- C'est plus cher (Coût à l'unité du FPGA)
- C'est plus cher (Temps de développement)
- C'est plus difficile (Généralement la conception d'un puce demande plus de temps qu'un programme classique. De plus peu de ressources sont disponibles en ligne par rapport à l'ASM ou le C)
Le FPGA apporte un plus dans les cas suivant:
- Si tu a besoin d'un contrôlleur n'existant pas dans le commerce, ou rare/cher, ou que tu veux une intégration sur puce (System on Chip)
- Si tu a besoin de performances et/ou de temps de réponses qui ne peuvent être respecté sur µC
- Si ton domaine d'application demande une certification du matériel numérique que tu utilise (ex: Aéronautique)
Cela dit si tu maîtrises bien mieux le VHDL que ASM/C tu seras certainement plus rapide pour mener à bien ton développement, à toi de faire ce choix.
Marsh Posté le 16-11-2010 à 11:54:11
Non mais attend. il parle d'ouvrir une boîte une fois le produit terminé. C'est du suicide de lui laisser croire que baser son truc sur un FPGA est possible à long terme.
Non, tu prends un petit PIC (les pas cher, de toutes façons un feu c'est pas très complexe), tu apprends C "vite fait" (pas besoin d'être un cador pour arriver à mener à bien ton truc) et voilà
Marsh Posté le 16-11-2010 à 23:01:42
C'est vrai que pour pouvoir choisir le composant le plus adapté et le moins cher, il faut cerner les fonctions à gérer :
- Un controleur de feux tricolores gère un carrefour. Il faut donc donc 10 entrées pour faire fonctionner les feux voiture (6) et piétons (4).
- Les controleurs doivent être reliés à un PC central pour pouvoir synchroniser les feux lors de l'installation et détecter les feux défectueux. Il faut donc un espèce de module qui envoie des signaux (liaison sans fil) au PC central. Sur ce 2nd point, je n'ai aucune idée de comment faire...
Sachant cela :
- Un PIC suffit selon vous?
- Dois-je penser à un MCU?
- Dois-je oublier pour de bon le VHDL et apprendre le C?
Merci pour votre aide.
Marsh Posté le 16-11-2010 à 23:08:04
Ou alors (si ça suffit et si c'est plus simple et pratique) je me remets à l'assembleur au lieu de commencer le C pratiquement à 0...
Et j'ai oublié également, par rapport à mon précédent mail, il manque une fonction à gérer :
- Il faut penser à ajouter en input du dispositif le capteur de poids qui détecte les voitures et enclenche le feu vert.
Marsh Posté le 16-11-2010 à 23:14:11
Droit69 a écrit : |
en général c'est pas un capteur de poids mais c'est une boucle magnétique (induction) qui est utilisée
genre ça: http://www.eco-compteur.com/files/ [...] AFR_BD.pdf
Marsh Posté le 16-11-2010 à 23:20:07
Je pense qu'il faut définitivement que tu oublies VHDL.
Quand au dilemme C/ASM, il y a de grande chance qu'en une journée de C tu puisse faire beaucoup plus de chose qu'avec ton niveau ASM actuel (qui si j'ai bien compris est un niveau d'école, destiné à prendre contact avec le fonctionnement des CPU).
En effet il est beaucoup plus simple de développer en C qu'en assembleur, et le code résultant est bien plus facile à maintenir.
De plus avec le C tu conserve (dans un certaine mesure) le contrôle bas niveau que tu as avec l'assembleur.
Je te conseille donc le C.
En ce qui concerne le choix du micro-contrôleur, il te faut plus d'informations, notamment sur l'interface avec le capteur de poids (SPI/I²C/RS232/...?) et ton module sans fil (cette partie peut être très complexe à réaliser, surtout si il s'agit de wifi, dans ce cas je te conseille une architecture de type PC mobile)
Marsh Posté le 17-11-2010 à 00:00:48
Merci pour vos réponses.
Alors :
- j'oublie le VHDL,
- merci pr la DS de la boucle j'ai l'impression que c'est une sortie TTL (donc 0-5V si ma mémoire ne me fait pas défaut), donc à priori ca peut venir en input d'un PIC,
- module de communication avec le PC central : je ne sais pas pour l'instant.
Donc si je résume, à priori un PIC programmé en C mais il faut que je vois si le module de communication avec le PC central peut fonctionner avec le PIC.
Donc il faut que j'ai une idée de comment résoudre ce pbm de com sans fil... et ce à moinde coût...
Marsh Posté le 17-11-2010 à 00:24:11
Je me trompe ou c'est beaucoup plus compliqué que je crois de pgmer un controleur de feux...
Extrait de http://membres.multimania.fr/mavat [...] garbarini/ :
Le contrôleur est constitué de plusieurs sous-ensemble : un Bloc CPU, un ou plusieurs racks puissance, des modules d'entrées/sorties.
Le bloc CPU est constitué d'une carte CPU industrielle au format PC104 montée sur une carte servitude maison.
Caractéristiques du Bloc CPU:
Processeur x86 à 166 mhz.
128 Mo de RAM.
32 Mo de mémoire sauvegardée Flash (64 Mo à-partir de la version 3).
4 liaisons séries asynchrones RS232.
Bus série haute vitesse vers les cartes des racks puissances et les modules.
2 ports USB.
1 liaison ethernet 10/100 Mbps.
Bornier d'entrées/sorties dédiées (Sonde EDF, Décodeur signal horaire, contact de porte, commandes relais puissances, ...)
Gestion du chien de garde de mise en sécurité du carrefour (jaune clignotant hard).
Afficheur LCD rétro-éclairé (4 lignes x 20 caractères) accompagné de 6 touches de navigations et 4 touches de fonctions.
Alimentation secourue par batterie intégrée.
...
Marsh Posté le 17-11-2010 à 10:12:37
Non mais attend attend attend.
Tu veux faire quoi là? Tu veux faire un VRAI système de feux tricolores ou bien juste un proto, que tu vas ensuite faire évoluer?
Parce que faire un système de feux tricolores est qqch de compliqué car il y en a plusieurs à lier ensemble. Chaque feux "en soit" est par contre plus simple. Là tu confonds un peu les 2 choses
Marsh Posté le 17-11-2010 à 10:26:13
Je rejoins esox_ch, le première chose a faire et de spécifier ton système, et le faire le plus précisément possible. Il faut que tu pense:
- Au fonctionnement de contrôle de feu, combien de feu, synchro avec d'autre feux, etc... le fonctionnel nominal quoi
- A la configuration de ton système (configuration statique-dans le code, configuration modifiable dans ce cas comment le faire, quelle complexité)
- Y a-t-il un IHM? comme sur le modèle que tu présente, dans ce cas qu'est-ce qu'elle fait, à quoi elle sert, comment se présente-t-elle
- Les interfaces avec tes composants externes, au moins leur type (bus série simple(SPI)/Complexe(USB)) et le protocole utilisé pour les communication (simple/complexe)
- Le connexion avec un ordinateur, quel type de connexion sans fil (Bluetooth/wifi/IrDa/...), quel protocole utiliser (HTTP/FTP/proto simple)
- L'éventuelle mise à jour de ton système => nécessité ou pas d'un bootloader
- L'aspect sécurité et durcissement du système, il s'agit quand même de feu, il faut pas afficher vert quand c'est rouge
- ... j'oublie peut être des trucs
Je ne pensais pas que ton projet était aussi sérieux, mais c'est sur que si tu veux le vendre ton truc, il faut bien connaitre ce qui existe sur le marché et bien identifier le besoin du client, et même ce à quoi il ne pense pas, pour arriver avec un produit fini et costaud.
Marsh Posté le 17-11-2010 à 10:29:35
Accessoirement, je sais pas comment c'est en France, mais en Suisse le marché du feux de signalisation est un monopole d'une entreprise désignée par l'état.
Marsh Posté le 18-11-2010 à 01:52:01
Bonsoir,
esox_ch, oui j'aimerais développer un projet dans le but de créer ma boite. Je pars de pas grand chose. Pour cerner ce qui me motive... ça fait un moment que je veux créer ma boite. J'ai longtemps réfléchi et puis un jour cette idée de me lancer dans les feux de signalisation m'a traversé l'esprit. J'ai commencé à me renseigner sur les gros concurrents, sur la manière de programmer un feu. J'ai senti que je pouvais le faire et petit à petit, cette idée s'est ancrée dans mon esprit...
J'ai l'impression que vous maitrisez vraiment ces sujets de programmation. Si j'étais à votre place (cad dire si j'avais travaillé un peu plus sérieusement à l'école), je n'arrêterais pas de me lancer dans des développements de projets pour réussir à lancer ma boite.
h3bus, le marché c'est tous les pays en voie de développement. Ma vision des choses, c'est : je développe un produit qui marche et à faible coût, ça ne devrait pas me couter gd chose, et ensuite je me présente aux appels d'offres et je propose ce produit. Le marché est vraiment très vaste ; entre les 2 il y a évidemment des étapes intermédiaires... (en France, pas de monopole - marché ouvert).
Ensuite concernant le système, voici ma vision des choses :
- je developpe un controleur de feux par carrefour,
- ensuite j'ai besoin d'un moyen pour relier tous mes controleurs à un PC central afin de synchroniser certains d'entre eux.
Sur le 1er point, je peux réfléchir et faire qqchose (trouver quel composant choisir en fonction des besoins, apprendre le C et le pgmer). Ca je peux le faire assez rapidement je pense.
Sur le 2nd point par contre, je n'ai aucune visibilité, ce qui pourrait remettre en cause le 1er point...
Concrèment :
1/ un controleur gère un carrefour donc 2 feux voitures et 4 feux piétons :
- logiciel : en définissant bien tous les cycles sur un papier, on peut pgmer un PIC (par ex. le PIC16F84) pour gérer tout ça.
- hardware : je pose le PIC sur une plaque avec tous les composants autour que le faire fctner et je fais sortir des câbles que j'envoie vers les LEDs des feux.
2/ pour atteindre l'objectif de fluidifier la circulation, il faut que les controleurs soient, le plus possible, sychroniser entre eux. Faire une liaison câble paraît impossible. Il reste donc la liaison sans fil. Il faut que je regarde ce qu'il peut y avoir de disponible et combien ça peut coûter... Cette liaison sans fil permettrait également de détecter les anomalies ou de commander les feux à distance, ce qui éviterait d'ailleurs un IHM sur chaque controleur.
...
Que de projets hein
Bon, en attendant, demain je me lève tôt pour aller travailler. Alors bonne nuit !
Encore merci pour vos interventions.
Marsh Posté le 19-11-2010 à 22:17:30
Je vous ai perdu?
Vous avez des idées de par où je peux commencer sur le moyen de relier tous les controleurs de feux d'un quartier? Et des différentes possibilités qui s'offre à moi?
Marsh Posté le 22-11-2010 à 14:07:42
Moi j'ai l'impression que si tu poses la question comme ça, c'est que t'as aucune chance d'y arriver (désolé :s).
Parce que au vu de ce que tu demandes, j'ai l'impression qu'il te manque toutes les bases (électronique, programmation, intégration, ...) et que donc tu va devoir passer une année à combler tes lacunes avant de pouvoir commencer à réfléchir à comment tu vas faire le tout..
Marsh Posté le 22-11-2010 à 23:05:12
Il faut se donner à fond pour réussir un projet. Et c'est ce que je vais faire. Si des personnes peuvent m'aider et m'accompagner dans ce projet, ça me fera avancer plus vite ; si non, je me débrouillerai tout seul. Mais je ne vais pas lâcher sans avoir essayer.
Marsh Posté le 22-11-2010 à 23:05:50
Quoiqu'il en soit, merci pour vos conseils. Ils m'ont été utile.
Marsh Posté le 24-11-2010 à 23:36:18
J'ai tout de même une question :
Pourquoi quand je dis que je vais programmer un controleur de feux pour reprendre la main, on me dit "oui c'est une bonne idée, c'est un projet simple".
Et quand je dis que je vais programmer des controleurs de feux pour une application industrielle, on me dit que c'est très difficile.
La différence est-elle si grande que ça?
Marsh Posté le 25-11-2010 à 11:15:21
Si c'est un projet pour ton jardin :
- S'il tombe en panne, tu te dis "merde, dimanche faut que je mette ça en ordre".
- Tu achètes les composants qui vont le mieux.
- Tu t'en fous des certifications de robustesse du système
- Ton système complet ne deviendra jamais plus complexe que 2-3 feux
Pour un projet pro:
- S'il tombe en panne, pour un projet pro, ta boîte est coulée par les dommages et intérêts que tu devras verser.
- Tu passes 50h à optimiser le circuit pour gagner 1€, car sur le nombre que t'en vendras, ça vaudra la peine
- Tu dois TOUT certifier, sinon personne t’achètera rien
- Tu dois prévoir un système qui permet d'être "scalable"
Bref, c'est juste 2 univers différents
Marsh Posté le 14-11-2010 à 21:13:32
Bonjour à tous,
Je suis ingénieur en électronique depuis 2006. Mais voilà 3 ans que je travaille dans un tout autre domaine...
J'aimerais faire un retour aux sources! Et me lancer dans un projet : programmer un controleur de feux tricolores.
Après avoir parcouru la doc sur internet, j'avais pensé à prendre un PIC16F84 et le pgmer en VHDL.
J'ai donc 2 questions :
1. est ce que certains d'entre vous ont déjà réalisé ce type de projets et ont des conseils à me donner?
2. j'ai un peu lâché l'environnement depuis ces dernières années. Savez vous où je peux me procurer les logiciels Xilinx ISE et Modelsim gratuitement? J'ai tenté des torrents mais sans succès...
Un grand merci les amis.
Édité par Elmoricq : les titres tout en majuscules sont interdits
Message édité par Elmoricq le 15-11-2010 à 10:07:03