Sari la conținut
ELFORUM - Forumul electronistilor

Cum s-ar face o placa extensibila?


MirceaM

Postări Recomandate

Am in vedere un montaj care va fi pus pe masina (automobil). Pe placa se va afla un controller 18F... de 64KB memorie program. Va exista si un LCD, fie alfanumeric fie grafic.

Mentionez ca exista si functioneaza bine dar nu in ideea extensibilitatii, cum descriu aici.

Se citesc unele informatii, se calculeaza si afiseaza pe un LCD dar vor exista si iesiri de la placa ce merg intr-o alta placa dotata cu ULN si cu relee.

Este vorba numai de prima placa. Legatura cu exteriorul se face printr-un conector cu suficient de multi pini (max 20 mA prin pin de conector).

 

Ce inteleg prin a fi extensibila. Ma refer ca dupa confectionarea placii si scriere soft, sa se poata adauga functii noi doar prin schimbare soft, lipirea catorva rezistente plus unul sau cateva fire in afara placii lipite pe conectorul pereche celui solidar cu placa si care merg undeva in masina (unde trebuie). Este exclusa lipirea de fire pe placa, toate traseele trebuie sa existe din proiectarea initiala, inclusiv pt asigurarea functiilor "viitoare".

 

Pentru aceasta, s-ar putea ca orice pin I/O al controllerului sa aiba acest tratament (trasee pe placa):

- sa fie dus pana pe conector printr-o rez.

- din acel pin sa fie prevazute alte 2 rez, una spre masa si cealalta spre 5V.

Deci sa existe, din proiectarea initiala a placii, traseele pt aceste rez si gaurile respective.

Un anumit numar de pini I/O se vor afla, initial, in starea "neutilizat" dar absolut toti vor avea acest tratament pe placa.

 

Exemple de posbile functii noi.

Daca am un bec in bordul obisnuit care se aprinde intr-o anumita situatie, un exemplu de functie consta in a realiza in ecranul de LCD un ?bec? aprins / stins, ma refer la un desen care sa arate un bec stins respectiv aprins. (Sa spunem ca ar fi un mic pas catre eliminarea totala a bordului clasic).

Este doar un exemplu, interesant este cum se realizeaza.

Se va veni cu un fir catre placa, pe un anumit pin al conectorului. Pe acest fir avem 12V sau 0V pt bec aprins / stins. Considerand ce am spus mai sus, faptul ca pt oricare pin de I/O al controllerului exista acel tratament, se vor lipi doar 2 rez (in locuri prevazute) cu scopul de a face un divizor inspre masa si sa avem 4.5V sau 0V pt cele 2 situatii. Si schimbarea necesara in soft, desigur.

Ne gandim acum la alte functii de acest tip, ceva care se intampla la masina si pt care poate fi adusa catre placa o tensiune. Desene attractive, in ecran (in caz de LCD graphic), separate pt cazul exista tensiune / nu exista tensiune.

Totul fara a modifica nimic in placa (doar lipirea a 2 rez).

 

Un alt exemplu este "crearea unui modul pt geamuri electrice". Considerand ca exista si placa de forta (cu relee) practic nu se creeaza nimic (nu se creeaza o placa noua, in nici un caz! - dar nici macar nu se modifica placa existenta), se face cum am spus mai sus pt intrari de la butoane si iesiri catre relee, apoi de la relee fire groase catre motoarele din interior usi (pt actionare geamuri).

 

Si intrarile analogice pot fi tratate in acelasi fel, de exemplu daca luam un fir care merge in bordul clasic la instrumentul care indica temperatura motor avem acolo tens variabila intre 0V si 12V (sau 14). Venim cu firul in conector, facem un divisor si lipim 2 rez, de 10K si 20K si vom avea pe pinul de intrare analogica tensiune intre 0V si 4.67V, tocmai buna, se va obtine in soft (in caz conversie pe 10 biti) un numar intre 0 si 955 (aprox).

 

Doresc sa ma concentrez pe soft, nu agreez sa tot modific o placa. Este vorba si de costuri. Prefer ca odata facuta, placa ?sa reziste? multa vreme.

Ce opinie aveti de asta, cum se abordeaza chestiunea extensibilitatii, in sensul celor de mai sus?

Link spre comentariu
  • Răspunsuri 13
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • MirceaM

    3

  • Abram Burel

    3

  • puiu

    3

  • vsurducan

    3

Top autori în acest subiect

Chestia asta m-a framantat si pe mine si am ajuns la concluzia ca... cei ce au inventat busurile au fost destepti :)In ziua de azi, cand pretul unui controler micut a ajuns la sub 1 USD, nu prea mai are rost sa te joci cu I/O paralel de la un controler "mare". In schimb, pui unul suficient de puternic (mda, asta poate sa insemne si mare, dar nu neaparat), care este creierul (master) si transmite comenzi pe bus unor "sclavi" specializati. Cand ai o functie noua, stabilesti ce se face central (in master) si ce local (in sclav sau driver cum ii mai spun cateodata), faci sclavul, ajustezi softul masterului, agati sclavul pe bus si gata.M-am "jucat" intr-un anumit soi de aplicatie cu RS-422/485. E minunat de simplu, dar putin cam incomod in aplicatii auto (din cauza serialismului excesiv, dar nu imposibil). Probabil ca ideal ar fi CAN, de studiul caruia am de gand sa ma apuc.Pentru exemplul cu becul din bord, pui un sclav care "citeste" starea "becurilor" si ti-o transmite la master, care-si face treaba si afiseaza ce vrei pe ecran.Pentru geamuri e putin mai haios. Ai un tip de sclav in toate usile, mai putin cel al soferului, in care ai un master-sclav, care poate si transmite comenzi celorlalti sclavi, dar care si poate primi de la masterul central (practic e un sistem master/slave de sine statator, interfatat cu masterul central pentru functii cum ar fi inchiderea geamurilor la parasirea masinii).O astfel de abordare e mai flexibila decat un tandem placa procesor - placa de actionare (gandeste-te numai la multitudinea de fire de "forta" care ar trebui sa plece de la placa de actionare la fiecare ungher al masinii - presupunand ca o sa adaugi functii noi care nu pot fi suportate de circuitele existente). Singurul lucru pe care trebuie sa-l pregatesi din start este sa "tragi" busul prin toata masina (desigur poti sa o faci si din aproape in aproape). Asta inseamna un simplu UTP/FTP (eventual niste splittere, in functie de tipul busului).Evident, sunt interesat sa dezvoltam ideile :)

Link spre comentariu

cum vi se pare o comunicare i2c, deci o magistrala i2c : scl+sda+gnd+vcc care (un cablu utp) circula peste tot prin masina, placa centrala un controler mai bazat dpdv al memoriei iar sclavii vor putea fi deviceuri pasive gen PCF8574 (i2c to paralel converter, se pot conecta 8 in total cu adrese diferite) sau active, alte controlere mici cat e necesar care emuleaza un i2c slave. In timp se adauga cate dispozitive se doresc care vor comunica cu baza prin i2c in ambele sensuri .

Link spre comentariu

Sunt putin cam sceptic. I2C a fost inventat pentru a fi folosit in interiorul unor aparate mai complexe. Este un bus "balansat" (semnale fata de masa) ceea ce ar putea suna bine, avand in vedere ca intrega caroserie e o... masa. Dar pe de alta parte, chiar asta poate fi problema.CAN e deocamdata putin cam scump, dar va fi din ce in ce mai ieftin cu toata electronica ce napadeste masinile moderne.Ideea ar fi ca nu prea are rost sa te p..i impotriva vantului. Daca standardul in aplicatiile auto este azi CAN, de ce am folosi altceva. Desigur, daca vrem doar sa ne distram si nu sunt aplicatii critice, atunci se poate folosi orice.

Link spre comentariu

Eu cred ca voi discutati despre ceva mai mult decat am initiat eu. Interesant, desigur. Dar eu nu am spus nimic despre faptul ca se trag fire prea multe catre placa in discutie. Nu m-am plans de asa ceva, chiar daca, sunt convins, solutiile de care spuneti sunt justificate, elaborate.

 

Ma refer la ceea se intampla pe placa.

Doresc numai atat: adaugarea unei functii noi sa se poata face, asupra placii, numai prin lipirea catorva rez sau poate vreo dioda (in locuri prevazute la proiectarea placii) si schimbarea softului. In acest sens, ce opinie aveti, este bine ca fiecare pin I/O sa fie scos afara la conector (ca de-aia este I/O, sa asigure comunicatie cu exteriorul, nu?) si sa i se poata pune, dupa nevoie, rez inspre + si/sau inspre masa? Pt rezolvarea acestei chestiuni, ar exista si alte idei?

Link spre comentariu
  • 2 săptămâni mai târziu...

1. Pentru a face placa extensibila, asa cum vrei tu, trebuie sa te hotarasti la ce fel de PIC vrei sa o folosesti. Este prea scump si greu sa faci o placa universala pentru toate tipurile de PIC-uri.2. As recomanda magistrala CAN pentru conexiuni deoarece este imuna la perturbatiile electromagnetice din masina.3.E bine sa ai cat mai multe optiuni la fiecare pin, dar intodeauna va fi necesar de ceva in plus fata de ce ai prevazut. Eu prevad de obicei fiecare pin si cu cu LED pentru a vedea starea lui, indiferent daca este folosit pinul ca intrare sau iesire. Pentru asta trebuie sa clarifici ce logica vrei sa folosesti: activa pe zero sau pe unu (cand vrei sa se aprinde LED:cand pinul este la 0V sau la 5V?)

Link spre comentariu

Eu cred ca voi discutati despre ceva mai mult decat am initiat eu. Interesant, desigur. Dar eu nu am spus nimic despre faptul ca se trag fire prea multe catre placa in discutie. Nu m-am plans de asa ceva, chiar daca, sunt convins, solutiile de care spuneti sunt justificate, elaborate.

 

Ma refer la ceea se intampla pe placa.

Doresc numai atat: adaugarea unei functii noi sa se poata face, asupra placii, numai prin lipirea catorva rez sau poate vreo dioda (in locuri prevazute la proiectarea placii) si schimbarea softului. In acest sens, ce opinie aveti, este bine ca fiecare pin I/O sa fie scos afara la conector (ca de-aia este I/O, sa asigure comunicatie cu exteriorul, nu?) si sa i se poata pune, dupa nevoie, rez inspre + si/sau inspre masa? Pt rezolvarea acestei chestiuni, ar exista si alte idei?

Ideea placii universale nu e noua. Pot sa-ti spun ce sa nu faci din experienta proprie.

1. nu se conecteaza IO-uri direct la BUS-urile inter placi mai ales daca distanta intre placi este mare

2. nu se fac busuri paralele mamut de 16-32 de biti atat timp cat se poate face multiplexare, serializare-deserializare (SERDES) etc

3. reconfigurarea functiilor universale se poate face cu rezistente, diode etc care se lipesc conform configuratiei dorite pentru functia respectiva

4.programarea placii se face printr-un conector accesibil (ICSP, JTAG etc) in circuit cu alimentarea obligatorie a placii

 

O sa observi ca oricat de "universala" ai proiecta placa, la un moment dat nu o vei putea configura pentru o aplicatie specifica decat daca ai lasat pe ea si ceva loc de prototyping.

 

Una din greselile majore pe sistemele embedded este separarea functiei de comanda (microprocesor) de cea de control (relee, optocuploare, open colector, tiristoare, triace GTO etc) atunci cand separarea asta pur si simplu nu are rost. Adica ai doua relee sau trei triace de comandat si faci doua placi, sarmaraie, aiureala... Poate fi justificata cand ai 1024 de triace care trebuie inghesuite cumva pe doua placi...

 

cele bune,

Link spre comentariu

pentru o placa extensibila, ceva upgradabil in general, modularitatea nu cred ca e un dezavantaj. Adica referitor la separarea partii de control, MCU, de cea de comanda, traice, tranzistori, relee etc, eu nu sunt impotriva, in fond se separa totodata partea de semnal mic de partea de semnal mare/tensiuni mari, respectiv partea de temperaturi mici de cea cu radiatoare etc. In plus e mai usor sa inlocuit doar partea de control cu un MCU mai puternic sau cu functii noi, decat sa inlocui cu tot cu partea de comanda. Acum depinde daca ceea ce faci, vrei sa mai sufere modificari ulterioare sau nu, personal intr-o aplicatie in care aveam un tranz si 3 comenzi cu triace, leam pus pe aceeasi placa cu MCU, fiind ceva final, dar asta depinde de ceea ce face fiecare.

Link spre comentariu

pentru o placa extensibila, ceva upgradabil in general, modularitatea nu cred ca e un dezavantaj. Adica referitor la separarea partii de control, MCU, de cea de comanda, traice, tranzistori, relee etc, eu nu sunt impotriva, in fond se separa totodata partea de semnal mic de partea de semnal mare/tensiuni mari, respectiv partea de temperaturi mici de cea cu radiatoare etc. In plus e mai usor sa inlocuit doar partea de control cu un MCU mai puternic sau cu functii noi, decat sa inlocui cu tot cu partea de comanda. Acum depinde daca ceea ce faci, vrei sa mai sufere modificari ulterioare sau nu, personal intr-o aplicatie in care aveam un tranz si 3 comenzi cu triace, leam pus pe aceeasi placa cu MCU, fiind ceva final, dar asta depinde de ceea ce face fiecare.

Ar fi fost culmea sa le pui pe o placa diferita... :yawinkle: Fiind vorba de domeniul auto in intrebarea initiala (pe care am omis s-o citesc integral) poate ca o solutie rezonabila ar fi urmatoarea:- calculator de proces central (afisare, comanda)- module de executie sclav (incluzand partea de comanda si comunicatie) - doar de amorul artei, sunt masini la care modulele de executie preiau partial functia calculatorului de proces daca acesta de defecteaza, tinand masina in viata pana la primul service- bus RS485 sau LVDS intre calculatorul de proces si module (ca sa nu fie CAN care pare mai complicat)Cu observatia ca este mult mai logic ca modulul "usa" sa contina toate automatizarile cerute de usa respectiva: dezaburire/miscare oglinda, inchidere centralizata, semnalizarea usii deschise, inchiderea/deschiderea automata a geamului etc.Acuma, daca este musai sa scoti IO-urile la un conector in vederea interconectarii cu altceva (dar in nici un caz direct cu portbagajul cand calculatorul de proces este pe bord langa sofer), se recomanda ca IO-urile analogice (A2D sau D2A) sa fie in alt conector decat IO-urile utilizate in scopuri digitale, sa existe un conector dual row astfel ca in cablu de conexiune panglica, semnalul si masa sa fie intretesute. Protectia IO-urilor cu rezistente serie de 27-100 ohm este recomandabila cat si prezenta pull-up si pull down in imediata apropriere a conectorului (rezistentele se planteaza in functie de aplicatie). In acest fel macar mai lasi o sansa de supravietuire sistemului (foarte mica daca intentionezi sa plimbi sarmele pe langa bobina de inductie, motor sau cabluri de forta (iluminare, aprindere, audio de maaaare putere, etc).Si inca ceva: in nici un caz sa nu folosesti comenzi analogice intre module...e moarta inainte de a se naste.
Link spre comentariu

1.Raportat la ce s-a cerut cred ca tot magistrala CAN este solutia si ofera avantajul ca primul modul (cel care afiseaza ) nu trebuie sa mai fie refacut pe partea de hard ci numai pe partea de soft. Greutatea nu cred ca va fi programarea CAN-ului ci mai degraba realizarea unei codificari initiale cat mai ample a moduleor pentru a fi usor apelarea ulterioara. Precizez ca pe magistrala CAN pot sa coexiste mai multi si simultan atat module master cat si module sclav. De fapt eu cred ca modulul care afiseaza bordul nici nu este master ci este un modul care afiseaza doar unele informatii care circula pe magistrala.2. Pentru fiecare functie va trebui sa se stabileasca cate module trebuie si ce vor face fiecare. De fapt idea nu este noua si cei de la Microchip chiar au facut o gramada de reclama la diverse module concepute de ei pentru masini. De fapt magistrala CAN este accepta de autoritatea americana pentru autovehicole si acest tip de magistrala se poate gasi si in alte aplicatii mai pretentioase la imunitate. 3.Dar nu vreau sa va influenzez prea mult cu acest tip de magistrala si astep opinia celui a tansat tema.

Link spre comentariu

Poate ca Mircea se va convinge pana la urma ca extensibilitatea la nivelul a "n" aplicatii auto nu se poate realiza printr-un calculator central universal si o executie periferica. Motivul e cat se poate de simplu: oricat de multe ai avea initial in cap, mai devreme sau mai tarziu va apare altceva. Oricum, pentru o aplicatie de amator nu conteaza. Daca insa vrei sa faci ceva mai... profi, atunci numai un bus te scoate :)

Link spre comentariu

Calculatorul de proces "central" nu trebuie inteles ca un modul neaparat master (dpdv al comunicatiei inter module) ci ca functie vitala de control a motorului. Ciudat este ca la ora actuala coexista sistemul distribuit cu sistemul avand procesor central.Hardware, nu este mare diferenta intre CAN si (LVDS sau RS485), toate sunt busuri cu imunitate mare la zgomote tocmai pentru ca sunt diferentiale. Ceea ce difera intre (LVDS si 485) fata de CAN este ca primele doua sunt doar standarde de comunicatie definite hardware (pot sustine protocoale definite de user de tip master slave -RS485 sau multimaster-LVDS) in timp ce bus-ul CAN este creat pentru protocolul cu acelasi nume.Faptul ca in aplicatiile auto se prefera CAN este doar pentru ca a fost creat special pentru auto... :tonqe:

Link spre comentariu

La Multi Ani cu Sanatate! Dl Surducan,Nu am in vedere controlul functionarii motorului. Sau poate ca am dar mai este mult pana acolo. Am in vedere numai masini care au ECU, injectie monopunct, cel putin. Separ in 3 categorii tipurile posibile de aplicatii:1. Nu se intervine cu nimic in functionarea motorului. Aici intra computerul de bord care citeste de unde se poate (de la senzori existenti, senzori nou adaugati si/sau prin dialog cu ECU) si afiseaza pe LCD valori citite, masurate sau post-calculate. Avertizaile sunt permise si dorite, cand marimea are o valoare inauntrul unui range specific marimii sau in afara lui, dupa caz. Sunt permise iesiri catre actuatoare (nu neaparat cele din interior usi :) ) insa neimportante pentru functionare motor / automobil. Diagnoza poate de asemenea sa intre aici. 2. Se permite interventie insa minora, de exemplu modificare dozaj amestec carburant, timpi de aprindere insa in range-uri mici, nepericuloase. Stergerea de DTC-uri poate sa intre aici. 3. Se permite "orice", cu orice risc. Acum, daca avem un controller "mare", un PIC de 64 KB memorie program, cred ca se pot face multe cu el. Ne gandim la adaugare de functii cum am deschis discutia aici dar si la schimbari "de dragul de a le face" de exemplu presupunand ca am inlocuit total (inlaturat) bordul clasic si am pus acolo un LCD grafic sau doua, asemenea modificare ar putea fi simpla schimbare (la 2-3 ani, cand apare plictiseala) a look-ului. Pentru a zgandari orgoliul beneficiarului, putem sa scriem acolo pe LCD numele lui sau cateva cuvinte sau sa desenam vreo icoana care il reprezinta! :) Deci punctez aici ca nu este vorba doar de adaugare, poate fi vorba si de renuntare la unele features existente si functionale anterior. Mai mult, o asemenea lista (alcatuita cu grija, din care am eliminat situatii contradictorii, imposibilitati) poate fi pusa chiar in fata unui posibil beneficiar, sa aleaga singur ce anume sa aiba productul pe care il cumpara. Conform cu optiunile lui schimbam anumite #define-uri, recompilam, rescriem softul. Asa ceva cred ca nu ofera nimeni!Abram,Nu mi-am propus sa contrazic insemnatatea ideii de bus, nici vorba. Normal ca vor fi limitari. Aceasta situatie se amelioreaza putin prin faptul ca se pot elimina unele functiuni pentru "a face loc" altora noi deci limitarile care impun renuntarea la placa (reproiectarea) se mai indeparteaza. Nu doresc o placa pentru eternitate ci doar una care sa imi permita "sa ma joc" cativa ani. Un exemplu semnificativ (care se incadreaza la categoria 1) este alarma auto. Avand placa de care spun, ce imi trebuie ca sa fac o alama? raspuns: (aproape) nimic. Trebuie un receptor pe 433 MHz sau pe cat este, 2 telecomenzi si apoi lucruri uzuale: sirena, cativa senzori. Si placa de forta (cu relee) de care am spus. Acel receptor (o placuta de circa 1.5x4 cm) se lipeste cu cele 3 fire (masa, 5V si semnal digital receptionat de la telecomanda) undeva pe placa principala. Mentionez ca am realizat in 2003 o alarma (cu rolling code) comparabila cu cele din comert si care se afla pe un automobil, ofera satisfactie deplina. Alte exemple "cu cautare" ar putea fi: asa zisul modul pt geamuri electrice, "ajutatorul de parcare".

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări