|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
peterv6i Član
Pridružen-a: Tor 22 Jan 2008 13:30 Prispevkov: 116 Aktiv.: 0.59 Kraj: Izola
|
Objavljeno: Pet Maj 26, 2017 8:30 am Naslov sporočila: Branje iz 4 UART-ov in prenos po TCP/IP (kaj uporabiti) |
|
|
Pozdravljeni!
Prosil bi za mnenje oziroma nasvete kako najbolj elegantno rešiti sldečo zadevo:
Na sliki spodaj imam 4 različne senzorje.. Senzorji merijo podatke in podatki se po UART-u lahko pošiljajo naprej.. V sredini bi potreboval "napravo" (to me najbolj zanima), ki je sposobna prebrati podatke iz štirih UART-ov.. Te podatke potem prebrati in zapakirati v nekakšen format in ga po TCP/IP protokolu šibat naprej...
1.)
Moja prvotna ideja je bila, da bi uporabil kakšen raspberrypi ali orangepi.. ter spisal program, ki bi bral iz serijskih portov.. sočasno bi deloval kot "server socket" na določenem IP-ju in portu in podatke na neko "zahtevo" pošiljal naprej..
2.)
Druga ideja? Ali bi lahko za 4 UART-e uporabil kakšen ATMEGA skupaj z Ethernet shieldom? Torej da bi bral podatke iz 4 portov in jih na enak način pošiljal naprej?
3.) zasledil sem tudi MAX14830.. če prav razumem gre tukaj na eni strani za i2c vodilo na drugi strani pa 4 UART-e.. (ne vem pa če je to relativno enostavno ali je komplicirano uporabljati?!)
(https://elecena.pl/product/1777612/max14830-quad-serial-uart-with-128-word-fifos)
4.) http://www.ebay.com/itm/SPI-to-4-x-UART-Bridge-MULTIUART-SPI2UART-version2-/282462527628?hash=item41c414208c:g:BZsAAOSwtGlZCOXV
?
5.)
Bi prosil še vas za kakšno mnenje...
V glavnem komunikacija bo dvosmerna kar pomeni, da bo mogoče pošiljati tudi ukaz po tcp/ip-ju v SBC in od tam glede na ustrezen ukaz se bodo določeni podatki posredovali določenemu senzorju (nastavitve)..
hvala za vašo pomoč
lp
Peter |
|
Nazaj na vrh |
|
|
mosqito Član
Pridružen-a: Čet 07 Apr 2016 23:22 Prispevkov: 3254 Aktiv.: 33.09
|
Objavljeno: Pet Maj 26, 2017 2:37 pm Naslov sporočila: |
|
|
Kaj pa štirje ESP8266 (2x4=8eur) in ena wifi dostopna točka (5eur)? Poišči "Serial-to-WiFi Tutorial using ESP8266" ali kaj podobnega. Lahko pa dodaš en mikrokontroler s 4 uart-i (glej npr. LPC800 serijo, ki je tudi v DIL ohišju) in to spelješ na SPI, pa na ESP8266 ali pa uporabiš kak "arduino" ethernet modul na osnovi ENC28J60, ki jih je tudi kot listja in trave. _________________ Always going the extra mile. |
|
Nazaj na vrh |
|
|
peterv6i Član
Pridružen-a: Tor 22 Jan 2008 13:30 Prispevkov: 116 Aktiv.: 0.59 Kraj: Izola
|
|
Nazaj na vrh |
|
|
matjazkariz Član
Pridružen-a: Sre 03 Nov 2004 18:09 Prispevkov: 1026 Aktiv.: 4.59
|
Objavljeno: Sob Maj 27, 2017 9:38 am Naslov sporočila: |
|
|
Če ne rabiš količine, izberi en obstoječi modul, da ne bo treba razvijat hardverja. Pred davnimi leti sem v eni firmi programiral Rabbit Semiconductor module. Če imaš na sezorjih TTL nivoje, potem je to že kar to. So pa cenovno ranga 50EUR. Ampak če rabiš enega... _________________ LP, Matjaž |
|
Nazaj na vrh |
|
|
leonk Član
Pridružen-a: Pon 26 Jan 2009 0:39 Prispevkov: 374 Aktiv.: 2.01 Kraj: Jesenice
|
Objavljeno: Sob Maj 27, 2017 5:52 pm Naslov sporočila: |
|
|
Če uporabiš Raspberry potem lahko uporabiš navadne serial2usb konverterje.
Če so to naprave z RS232 nivoji vzameš standardni konverter iz trgovine, če so TTL pa kakšen FTDI ali podobnega. Na Linuxu niti ne bo potrebno programirat, ampak samo narediti redirekcijo na TCP. NetCat bo verjetno čisto dobro opravil nalogo.
lp, Leon |
|
Nazaj na vrh |
|
|
peterv6i Član
Pridružen-a: Tor 22 Jan 2008 13:30 Prispevkov: 116 Aktiv.: 0.59 Kraj: Izola
|
Objavljeno: Sob Maj 27, 2017 9:22 pm Naslov sporočila: |
|
|
Za enkrat moram štartat z malimi stvarmi ker ni dosti placa v tej "sondi"..
Nekako bi štartal kot sem omenil z 4 UART / SPI + arduino mini + ethernet
poročam.. |
|
Nazaj na vrh |
|
|
peterv6i Član
Pridružen-a: Tor 22 Jan 2008 13:30 Prispevkov: 116 Aktiv.: 0.59 Kraj: Izola
|
Objavljeno: Sob Maj 27, 2017 9:55 pm Naslov sporočila: |
|
|
leonk je napisal/a: |
Če uporabiš Raspberry potem lahko uporabiš navadne serial2usb konverterje.
Če so to naprave z RS232 nivoji vzameš standardni konverter iz trgovine, če so TTL pa kakšen FTDI ali podobnega. Na Linuxu niti ne bo potrebno programirat, ampak samo narediti redirekcijo na TCP. NetCat bo verjetno čisto dobro opravil nalogo.
lp, Leon |
Ja to bi tudi bilo ok.. gledal sem celo to, da je spisan driver za max310x
http://elixir.free-electrons.com/linux/latest/source/drivers/tty/serial/max310x.c |
|
Nazaj na vrh |
|
|
peterv6i Član
Pridružen-a: Tor 22 Jan 2008 13:30 Prispevkov: 116 Aktiv.: 0.59 Kraj: Izola
|
Objavljeno: Sob Maj 27, 2017 11:09 pm Naslov sporočila: |
|
|
Dajte me popravit če se motim..
Če bi spravil ta tipala (sonde) na RS485 bi jih potem lahko vezal na eno linijo?
Pač vsak bi oddajal nek paket in ID s katerim bi vedel katera naprava mi kaj pošilja?
Razmišljam prav ali ne?
Problem je sedaj ker imam lahko več kot 4 sonde.. torej sondo za kisik, tlak, temperaturo, klorofil, prevodnost..
Ali pa da bi uporabil kar modbus? (ne vem pa kako je še s hitrostmi prenosa).. |
|
Nazaj na vrh |
|
|
int47 Član
Pridružen-a: Pon 15 Dec 2003 0:10 Prispevkov: 2068 Aktiv.: 9.26 Kraj: Ljubljana
|
Objavljeno: Ned Maj 28, 2017 4:29 pm Naslov sporočila: |
|
|
Če ni potrebe, da vsi UART-i delujejo hkrati, uporabi multipleks.
Ne vem, kakšne so hitrosti prenosa. Če niso previsoke, lahko manjkajoče UART-e simuliraš v SW.
Lahko tudi uporabiš več manjših uC, ki se med sabo pogovarjajo po i2C, ali SPI protokolu.
485, modubs: Ja, če senzorji delujejo po modbus protokolu.
Modbus protokol zagotavlja, da je hkrati na vodilu aktiven le en oddajnik.
Če senzorji oddajajo podatke brez, da bi bili vprašani, bodo z enostavnim RS232 -> 485 pretvornikom nivojev težave.
Prav tako bodo verjetno težave, če master s senzorji komunicira brez naslavljanja, ali če se protokoli med senzorji razlikujejo.
V tem primeru lahko še vedno uporabiš modbus, samo pretvornik mora imeti toliko pameti, da navzven senzor izgleda kot modbus naprava. _________________ Kdor ni skregan, ni Slovenc ! |
|
Nazaj na vrh |
|
|
mosqito Član
Pridružen-a: Čet 07 Apr 2016 23:22 Prispevkov: 3254 Aktiv.: 33.09
|
Objavljeno: Pon Maj 29, 2017 10:27 am Naslov sporočila: |
|
|
Niti ne rabiš modbus protokola. Lahko se zmisliš kaj svojega preprostega. Na RS485 imaš lahko samo 2 žici, na katerih so obešene naprave. Te večino časa poslušajo, govori pa seveda le ena naenkrat. To je zelo uporabno, če nimaš stalnih "gobcal", pa je npr. en master, ki občasno povpraša senzorje po "zdravju".
Sheme in morda še kaj uporabnega najdeš tudi tule: http://e.pavlin.si/?s=rs485
Jaz sem preizkušal tako komunikacijo med 7 senzorji, ki so pošiljali podatke na spletno stran. _________________ Always going the extra mile. |
|
Nazaj na vrh |
|
|
peterv6i Član
Pridružen-a: Tor 22 Jan 2008 13:30 Prispevkov: 116 Aktiv.: 0.59 Kraj: Izola
|
Objavljeno: Pon Maj 29, 2017 2:28 pm Naslov sporočila: |
|
|
Hvala si bom pogledal.. |
|
Nazaj na vrh |
|
|
damo Član
Pridružen-a: Čet 31 Jul 2003 13:45 Prispevkov: 2008 Aktiv.: 8.99 Kraj: Krško
|
Objavljeno: Tor Maj 30, 2017 5:49 am Naslov sporočila: |
|
|
Če ni časovno preveč zahtevno, lahko uporabiš en ESP8266-12 ter softwerske serijske porte oz. če hočeš na kabel, vzameš arduino nano + en mali ethernet shield. _________________ Dobrga štromarja samo slab šnops strese! |
|
Nazaj na vrh |
|
|
peterv6i Član
Pridružen-a: Tor 22 Jan 2008 13:30 Prispevkov: 116 Aktiv.: 0.59 Kraj: Izola
|
Objavljeno: Čet Jun 15, 2017 11:10 am Naslov sporočila: |
|
|
Dobil sem konverter iz 4 UART vhodov na SPI vodilo..
V navodilih piše tako:
"The board requires a 3.3V supply to function but the SPI and UART RX pins can accept both 5V and 3.3V inputs. The UART TX pin will output at 3.3V which should be compatible with most if not all 3.3V and 5V devices directly without the need for any additional voltage level shifting circuitry."
Koda za arduino je na githubu:
https://github.com/RowlandTechnology/MULTIUART
Ok..
zadevo sem tako povezal:
Torej .. levo imam atmega2560 in preko 2 uartov pošiljam nek string na vsakega od dveh... Izhodi iz UART-ov so povezani na vhode na konverterju.
Potem pa imam še arduino uno na drugi strani, ki je povezan preko pina 13,12,11 s konverterjem in CS sem izbral pin 8 (ker bom 10-ko potreboval za ethernet)..
Spisal sem enostaven program..
na Atmega sem spisal pošiljanje podatkov po uartu s hitrostjo 2400 bps (za test)
Na strani Arduino uno sem spisal program, ki v zanki posluša če je kateri od "uartov na spi-ju" prejel kakšen podatek..
Problem je ker zadeva ne deluje.. enostavno ne dobim podatkov oziroma občasno dobim kakšno smet na določenem portu..
Kontaktiral sem tudi izdelovalca vezja, ki pravi, da so vezja testirana in da bi morala biti napaka v programski kodi ter da bo še sam preveril..
mene pa zanima ali lahko za CS uporabim pin 8 in kaj še lahko preverim?
če gledam navodila za SPI piše, da mora pred inicializacijo SPI-ja biti CS na visokem nivoju
medtem ko je v knjižnici za ta vmesnik CS ob inicializaciji nizek..
Ne vem kaj bi bil vzrok? probam lahko le zvečer ko sem doma..
Probal sem tudi obračat rx/tx konektor na vhodu vmesnika..
maso sem povezal iz obeh arduinov.. napajanje 3.3V pa sem pobral iz tega na katerem je priklopljen vmesnik.. |
|
Nazaj na vrh |
|
|
peterv6i Član
Pridružen-a: Tor 22 Jan 2008 13:30 Prispevkov: 116 Aktiv.: 0.59 Kraj: Izola
|
Objavljeno: Čet Jun 29, 2017 7:00 pm Naslov sporočila: |
|
|
Ugotovil sem vzrok.. nestabilen takt na enem od kitajskih klonov arduina, ki je pošiljal podatke na uart2spi vmesnik..
Serijsko komunikacijo preko uart2spi sem testiral s kablom iz pc-ja (usb/uart) in stvar deluje... |
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 86 dni
Powered by phpBB © 2001, 2005 phpBB Group
|