Fórum témák

» Több friss téma
Fórum » Két PIC közötti kommunikáció
 
Témaindító: JohnyBravo, idő: Márc 28, 2006
Témakörök:
Lapozás: OK   7 / 8
(#) Jossz válasza kissi hozzászólására (») Feb 10, 2014 /
 
Az a helyzet, hogy az már bizonyos, hogy az adatlapot benéztem és 1 µF kell hozzá a 0,1 µF helyett. Az adatlapban a rajzon 0,1 µF van, de meg van csillagozva, és a rajz alján megjegyzésben van, hogy a MAX232E-re 1 µF kell. (okulásul csatolom az adatlapot) Én pedig MAX232ECWE-t használok.
Szóval első lépésben kicserélem a kondikat mindkét egységen és ha marad a hiba, akkor szoftverezek. Bár mint írtam, ott már sok mindent kipróbáltam... A SIOW programot a CCS telepíti és abban az adási oldal teljesen jónak mutatkozott. Természetesen szkóppal is megnéztem a kommunikációt és a vevőoldal bemenetén is ott vannak a magasabb jelszintű és a vevőoldal PIC felőli oldalán pedig az alacsonyabb jelszintű jelek, csakhogy miután logikai analizátorom sajna nincs, azt nem tudtam megkukkantani, hogy a PIC-be bemenő jelek mennyire voltak torzultak logikai szinten. Nyilván a PC-be bemenő magasabb jelszintű jeleket a PC port saját szintillesztőjének vételi oldala alakította át, ez jó minőségű volt, ezért is gyanakszom a MAX232 vételi oldalának gondjára. Ráadásul most egyértelművé vált, hogy a kondik csak tizedrésznyi értékűek a szükségeshez képest. Meglátjuk, hogy a kondicserének milyen eredménye lesz...
(#) b10up hozzászólása Máj 24, 2014 /
 
Sziasztok!
Adott 2 darab PIC18F45K50 típusú PIC, mindkettőben 20 unsigned int short és long típusú változó. Az első 10-et az egyik, a második 10-et a másik PIC gyűjtené, és azt szeretném elérni, hogy ezt soros porton vagy i2c buszon kicseréljék egymással nagyjából 5-10 másodperces sűrűséggel, így összességében tükrözni kéne az adatokat. Ha esetleg valaki tudna segíteni ennek a mikroC nyelvű programozásában, azt nagyon megköszönném.
(#) vilmosd válasza b10up hozzászólására (») Máj 24, 2014 /
 
Itt egy kicsit lejjebb volt tema.Ez egy szal madzagon csinalja. En csinaltam ilyet, es 3-4 klf PIC volt felakasztva. Mindegyiknek volt sajat cime, es az arra erkezo adatot hasznalta fel. PBUS protokoll cimen keressel a neten. Nem biztos hogy mikroC-ben talalsz peldat, de van C forras amit at lehet irni sajat szajiz szerint.
(#) b10up válasza vilmosd hozzászólására (») Máj 25, 2014 /
 
Köszönöm a linket, erre valószínűleg szükségem lesz, mert az IC-k távol lesznek egymástól.
Időközben a kapcsolatot sikerült szoftveresen megoldanom, simán az uart write/read text-et használva.

Ez a közösített táp+adat rendszer mennyire stabil? Amihez konkrétan kéne: légkondit építek, és 4 helyen mérné a levegő/víz hőmérsékletét egy IC, az ötödik viszont kültér, ezért az több szempontból is kényes lesz.
(#) HerrTopi hozzászólása Nov 6, 2014 /
 
Sziasztok, remélem jó topicba írok, nem akartam újat nyitni.

A célom az, hogy több microcontroller és egy számítógép (akár egy pc, vagy egy raspberry pie) egyidejű vezetékmentes kommunikációját megoldjam.

Kicsit bővebben: Vagy 1-10+ (előre nem meghatározott számú) microcontrollerem és ezekhez kötött wifi(?) bluetooth(?) vagy valami hasonló modul és ezek mindegyike tud kommunikálni a host-tal, ami egy windows vagy linux alapú számítógép. A microcontroller típusa lényegében mindegy, bár csak piccel foglalkoztam. A legfőbb szempont a házi kivitelezhetőség, a második az ár. Tanulni szívesen utána tanulok, ha van ötletetek, hogy milyen irányba érdemes elindulni.

Köszönöm!
(#) nedudgi válasza HerrTopi hozzászólására (») Nov 6, 2014 /
 
A korrekt válaszhoz kellene tudni még az adatátvitel sebességét, az adatmennyiséget, és a minimális reakcióidőt. Nem árt, ha tudjuk, hogy milyen jellegű kapcsolatról lenne szó, a PC kérdezne le adatokat, vagy a mikrokontrollerek szólnának, hogy valami bajuk van?
Hirtelen felindulásból a WiFi-t javaslom, pillanatnyilag a legolcsóbb megoldás.
(#) HerrTopi válasza nedudgi hozzászólására (») Nov 6, 2014 /
 
Lássuk a válaszokat szépen sorban a kérdéseidre:

Adatátviteli sebesség, adatmennyiség: Pár byte-os adatcsomagok, szóval max 1-2 kb/s
Reakcióidő: nem kell atomórát finomhangolnom vele, extrém esetben az 1s körüli válaszidő is elfogadható, bár nyilván a rövidebb jobb.
Kapcsolat jellege: kétirányú kommunikációra van szükség: néha a pic-ek szólnak, néha a pc utasítja őket.

Köszönöm, hogy foglalkozol a kérdéssel.
A hozzászólás módosítva: Nov 6, 2014
(#) giskard válasza HerrTopi hozzászólására (») Nov 6, 2014 /
 
Csak elméleti filózgatás: nyilván teljetesen egyidejű kommunikáció nem lehetséges.
Ha a picek kapcsolatban lehetnek egymással kellene egy fő pic ami folyamatosan lekérdezi akar e valamelyik pic kommunikálni, ha talál ilyet akkor átveszi a kérést és ő kommunikál a pc-vel. A pc kommunikációjában szerepelnie kell az egyes pic-ek azonosítójának. Pc - kezdeményezte kommunikációnál az azonosító alapján a fő pic továbbítja a parancsot a megfelelő picnek (Rx megszakítás).
Ha nem lehet kapcsolat a picek közt: kis rádió modulok (pl. mrf49) ahol az egyes frekik pl 20KHz-el el vannak tolva egymástól. Így pic oldalról lehetséges az azonos idejű kommunikáció, de pc oldalról megint nem. Itt kell annyi vevő és adó ahány pic van és egy szelektáló pic.
A hozzászólás módosítva: Nov 6, 2014
(#) nedudgi válasza HerrTopi hozzászólására (») Nov 6, 2014 /
 
Ha nem lenne PC a rendszerben, azt mondanám, megfontolandó az NRF2400 és környékére alapozott modulok használata, de mivel tudtommal azok a csak SPI interfésszel kaphatók, nincs veleje ennek a megoldásnak. Ráadásul 1-2 lábbal többet igényel mint egy BT vagy WiFi kapcsolat.
Nagyjából egy szinten mozog a BT és WiFi ára, bár a WiFi valamivel olcsóbb. BT kapcsolat protokollja egyszerűbb, WiFi esetén kis programozás szükséges. Ha csak szenzor és digitális I/O az igény, akkor akár mikrokontroller nélkül is megoldható a végberendezések hardvere.
Magyarországon még nem nagyon ismert az IoT (Internet of Things) koncepció.
Az ezt használó ESP8266(EX) alapú modulokat most kezdtem el tesztelni, hamarosan elkészül egy részletes ismertető.
(#) giskard válasza HerrTopi hozzászólására (») Nov 6, 2014 /
 
Egy fontos kérdés kimaradt: milyen távolságot kell áthidalni ?
(#) HerrTopi válasza nedudgi hozzászólására (») Nov 6, 2014 /
 
Majdnem világos, amit írsz. A kérdésem az, hogy megoldható (van rá eszköz?), hogy az összes PIC egyszerre csatlakozzon a pc-hez? Most wifiről beszélek. Olyan modult találtam a microchipnél, hogy a pichez van egy router és ahhoz lehet csatlakozni a pc-vel, de itt csak egy konnektra van lehetőség egyszerre és ráadásul a net is ki van lőve a pc részéről, míg a pic-hez van csatlakozva.
Szóval: a pic-ek akár a saját otthoni helyi hálózatomhoz is csatlakozhatnának, a jó öreg tplinkes routerhez. A pc-m is ide csatlakozik, így megoldható lenne(??) a kommunikáció közöttük. Ez járhatónak tűnik? Valamint tudsz olyan modulról, ami viszonylag egyszerűen lekezeli a routerhez a konnektet?

giskard
Nyilván tudom, hogy nem teljesen egyszerre, csak azt értettem ezalatt, hogy egyszerre csatlakozva vannak egy hálózatra.(lásd fentebb amit írtam)
A távolság: lakás. pár centitől a 10 méterig kb.
A hozzászólás módosítva: Nov 6, 2014
(#) nedudgi válasza HerrTopi hozzászólására (») Nov 6, 2014 /
 
Tulajdonképpen egy UART-WiFi átalakítóról van szó, egy ESP8266 csipen alapul. Egy ilyen csippel felépített modul tartalmaz mindent, ami szükséges egy helyi hálózathoz csatlakozáshoz, illetve egy hozzáférési pont létrehozásához. A darabszámot az otthoni hálózat teljesítőképessége korlátozza. Ezek a modulok képesek peer-to-peer kommunikációra is. Az őket vezérlő(használó) mikrokontrollerrel szemben egyetlen igény van, 115200Bd a soros vonali sebességet le kell kezelni.
(#) giskard válasza HerrTopi hozzászólására (») Nov 6, 2014 /
 
Az egyidejű kommunikációval csak arra utaltam, hogy ha nem lekérdező rendszer van akkor ritkán de egyidejűleg is adhatnak picek. Ilyen esetben minimum az egyik jele elveszik (ha azonos frekvenciát használnak), ha fontos hogy mindig beérkezzen minden jel, akkor ezt valahogy kezelni kell. Egy MRF49 meg 580 Ft +pic és mehet az RS232-re, amit könnyű kezelni.
(#) HerrTopi válasza giskard hozzászólására (») Nov 6, 2014 /
 
Köszönöm a segítséget, kicsit utánaolvasva ez járható útnak tűnik, ugyanakkor szerintem nedudgi javaslata mentén indulok el, mert nagyon jónak tűnnek azok a modulok és nem drágák.
(#) HerrTopi válasza nedudgi hozzászólására (») Nov 6, 2014 /
 
Nagyon úgy tűnik, hogy a céljaimnak ez a legmegfelelőbb eszköz. Sajnos minimális ismeretekkel rendelkezem hálózatok és vezeték nélküli kommunikáció terén, és ez alól a wifi sem kivétel (mondjuk az emberek többsége az internetelérés és a wifi közé egyenlőségjelet tesz, szóval náluk többet értek hozzá ), viszont így már tudom, hogy mi után kell olvasni.
Ha megjelenik erről cikked, azt nagy örömmel fogom olvasni!

Még egyszer köszönöm a gyors és pontos válaszod!
A hozzászólás módosítva: Nov 6, 2014
(#) giskard válasza HerrTopi hozzászólására (») Nov 6, 2014 /
 
Az út biztos hogy járható. Valaha volt húsz rendszerem pc-nként 300-500 pices rácsatlakozással 10 kilométeres hatótávval. (igaz a kommunikáció egyirányú volt).
(#) pucuka válasza HerrTopi hozzászólására (») Nov 6, 2014 /
 
Mert az a rádiós komunikáció amit tervezel, nem WIFI. A WIFI az a vezetéknélküli internet elérés technológiája (802.11 xx szabvány szerinti), elvileg frekvenciától független. Amit szándékozol tenni, az egy egyszerű adatátvitel. Az más kérdés, hogy az e célt szolgáló RF modulok ugyanabban a frekvencia sávban vannak, és még sok minden más is (pl.BT, ZigBee, távvezérlő, távirányító stb).Ezek az eszközök a 2.4 GHz -es IMS sávot használják.
A hozzászólás módosítva: Nov 6, 2014
(#) nedudgi válasza pucuka hozzászólására (») Nov 6, 2014 /
 
Bocsánat, de már miért ne lehetne WiFi összeköttetés két mikrokontroller között? Az internet használata nem lehet kritérium.
Az eredeti kérdés PC és mikrokontroller közötti kapcsolatra vonatkozott.
A hozzászólás módosítva: Nov 6, 2014
(#) pucuka válasza nedudgi hozzászólására (») Nov 6, 2014 /
 
Lehetne, ha megírnád rá a WIFI - LAN (a WIFI a LAN vezetéknélküli része) protokollt De azt hiszem, egy PC - MC kapcsolatnál felesleges. Ha meg nincs, akkor nem WIFI.
A hozzászólás módosítva: Nov 6, 2014
(#) nedudgi válasza pucuka hozzászólására (») Nov 6, 2014 /
 
Felesleges ilyesmivel foglalkozni, a legtöbb router tartalmaz valami ilyesmit, ha nem tévedek.
(#) pucuka válasza nedudgi hozzászólására (») Nov 6, 2014 /
 
Nem tévedsz, pontosan. De szerintem egy PC - MC, MC- MC kapcsolatnál, pláne ha az zárt hálózat, felesleges ilyemivel bonyolítani.
A hozzászólás módosítva: Nov 6, 2014
(#) potyo válasza pucuka hozzászólására (») Nov 6, 2014 /
 
Microchip példakódban van wifi kezelő kód is, nem kell újra megírni, csak használni a meglévőt. Ezen aztán van felsőbb réteg, pl. TCP vagy UDP. PC játszhatja az Access Pointot, a kontrollerek meg kapcsolódnak hozzá. Vagy nem értem, mi a probléma?
(#) nedudgi válasza pucuka hozzászólására (») Nov 6, 2014 /
 
Gazdasági szempontból nem felesleges. A dolog megoldható egy DB9 kábel árából.
(#) pucuka válasza potyo hozzászólására (») Nov 6, 2014 /
 
Nincs semmi probléma, lehet rájuk tulipánokat is rajzolni, csak ha nem akarsz internetre kapcsolódni, akkor miért kell bonyolítani. Más lenne a helyzet ha az adatgyűjtő hálózat nagy földrajzi kiterjedésű, és az internet kell az összekötésekhez, de ahogy néztem, nagyjából egy lakás a hálózat kiterjedése.
Egyébként csak azt szerettem volna pontosítani, hogy elhangzott az a mondat:
Idézet:
„(mondjuk az emberek többsége az internetelérés és a wifi közé egyenlőségjelet tesz”

és ez így is van.
(#) HerrTopi válasza pucuka hozzászólására (») Nov 9, 2014 /
 
Ezek szerint a tudásom még a poén kedvéért hozott példánál is kevesebb Épp ezért kérdezek itt a fórumon
Egyébként igen, a hálózat teljesen lokális és azért is gondoltam arra, hogy felhasználnám a routeremet ehhez, mert annak a hatótávolsága bőven elegendő.
Csak a történet margójára: szeretném elérni távolról is a mikrovezérlőket (via internet), de ezt már a pc-n keresztül szeretném megoldani, azaz írok egy vezérlő szoftvert, ami egyszer megoldja az adatküldést a pic fele, valamint kaphatja opcionálisan az adatot távoli szerverről is, így távolról is rányítható lesz a pic. (ez legalábbis a jelenlegi elképzelés.)
(#) nedudgi válasza HerrTopi hozzászólására (») Nov 9, 2014 /
 
Ebben az esetben teljesen felesleges egy energiazabáló PC-t járatni, ha a mikrovezérlő képes önálló kommunikációra az internet felé. Mindössze egy (bekapcsolt) router szükséges, ami a publikus címet elosztja a belső hálózat felé.
A hozzászólás módosítva: Nov 9, 2014
(#) HerrTopi válasza nedudgi hozzászólására (») Nov 9, 2014 /
 
Az így felcsatlakozott eszközöket hogy tudom elérni távolról? (programozni "tudok", ebben is dolgozom, viszont a hálózatokat egyáltalán nem ismerem, így kérlek nézd el nekem, ha nagyon triviális dolgot kérdeztem)
(#) nedudgi válasza HerrTopi hozzászólására (») Nov 9, 2014 /
 
Kérdezz bátran, a készülő cikkem írásához nagy segítség minden kérdés.
A routered kap egy címet a szolgáltatótól. Ez általában pár naponként változik, de a legtöbb router támogat DDNS (Dynamic DNS) szolgáltatást, mint például a no-ip.com, így elérhető a (numerikus) IP cím ismerete nélkül is. Egy IP alapú kommunikációban a címzettet az IP cím, és egy port azonosítja. A saját alkalmazás előnye, hogy közel 64K a lehetséges portok száma, véletlenül elég nehéz beletrafálni a megnyitott portba, így kiszűrheti a router, hogy egy hülyegyerek kóstolgatja-e a hálózatodat, vagy konkrét, a hálózatot ismerő személytől/géptől jön-e a kérés. A router a "Forwarding" funkciójával a belső hálózaton található eszközök belső címét (például 192.168.1.xxx) összekötheted a publikus IP cím egyik portjával.
Ezzel a módszerrel a belső hálózatodon levő 192.168.1.101 című eszköz a router beállítása után elérhető lesz az encimem.servebeer.com:16384 címen.
(#) pucuka válasza HerrTopi hozzászólására (») Nov 9, 2014 /
 
Így is meglehet persze oldani, ha szükséges a hálózatod távoli elérése, de ha nem, akkor ágyúval verébre. Ha vásárolsz 2,4 GHz -es rádiós (adó/vevö) modulokat, Amit úgyis meg kell tenned) abba betolod sorosan az adatokat, a másik oldalon kiveszed a másik adóvevőből, amin lehet a PC soros (USB) bemenete, és kész. Ilyenkor a hálózat szervezése a PC dolga, az lesz a mester, és többi a szolgák. Mivel egyszerre két adó ugyanabban a sávban nem mehet, a mester körbekérdezi a hálózat tagjait, és begyűjti az adatokat. (a routernél sem, de ott megoldja a problémát a router, a csomagok küldözgetésével) Ha jó a hálózat szervezés, akkor lehet úgy is, hogy bármelyik szolga vészhívást küld, a mesternek, ez csak megfelelő időzítés hogy két kérdezés között figyeljen a mester például. De Te tudod, mennyire bonyolítod az életed.
A hozzászólás módosítva: Nov 9, 2014
(#) nedudgi válasza pucuka hozzászólására (») Nov 9, 2014 /
 
Azt nem értem, miért jó a fórumtársnak, ha napi 24 órában járat egy PC-t.
Következő: »»   7 / 8
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem