Názory k článku
Sériový port RS-232C
Taktéž musím pochválit
celé vláknoZa dva
celé vláknoRe: Za dva
celé vláknoRe: Za dva
celé vláknoRe: Za dva
celé vláknors232.hw.cz
celé vláknoRe: rs232.hw.cz
celé vláknoRS232
celé vláknoRe: RS232
celé vláknoRe: RS232
celé vlákno(Prosim berte s humorem.)
Re: RS232
celé vláknoRe: RS232
celé vláknoRe: RS232
celé vláknoRe: RS232
celé vláknoA uz jste nekdy vylezl z te kancelare?
USB je podle mych zkusenosti dobre leda tak na propojeni nekolika zarizeni, ktere vam lezi na stole. Dal s tim nemuzete.
Zakladni funkcnost komunikace po RS232 si v terenu hrave zkontrolujete voltmetrem. Potrebne tri draty na konektor priletujete i potme v garazi u dieselagregatu (ano i ten muze mit RS232). Navzdory nejakym normam muzete z tohodle kabelu udelat jeste odbocku pro odposlech. (Obcas dojde i na figle, ze TxD od stroje 1 se pripoji na RxD stroje 2 a 3, TxD z 2 na RxD do 1 a TxD z 3 nekam uplne pryc.) Kdyz pouzijete vic nez ty tri draty, tak muzete prenaset i dalsi binarni stavy. (Ale to se uz moc nenosi. Melo to vyhodu, ze to slo spatne odpalit.) Dosahnete o par metru dal nez s USB. (V pripade potreby i po rozvodech domovniho telefonu.)
A dalsi vyborna vlastnost je, ze RS232 muzete pomerne snadno prekroutit na RS422 nebo RS485 (princip prenosu dat vicemene stejny, jenom jine napeti/proud) a mate sbernici funkcni a kilometr dlouhou a na ni navesene ruzne regulatory.
USB opravdu ne.
Kdyz potrebuju velkou rychlost na vetsi vzdalenosti (kilometry), tak optiku nebo ethernet. Kdyz potrebuju, aby to "jenom" komunikovalo (ne moc rychle, ne moc daleko), tak RS232/485.
Re: RS232
celé vláknosamozrejme, neni problem najit aplikaci kde se usb nehodi. ja jen moc nechpu to vzyvani rs232 a proc nepouzit novejsi technologie - usb, lin, can, flexray, ethernet - sbernice rychlejsi, odolnejsi proti ruseni, v mnoha parametrech predci tyhle rsXXX dinosaury [pravda, tezko je odladite jenom s voltmetrem ;) ]... je to dneska v kazdym druhym uC, reference designy od vyrobce chipu ke stazeni - brnkacka neco takovyho rozchodit
Re: RS232
celé vláknoTak pak uz me napada posledni vysvetleni okoukane z praxe: "Nevylepsuj nic co funguje"
Re: RS232
celé vlákno2) USB blok MCU je pomerne draha zalezitost, mnohem slozitejsi nez UART (USART). Navic firmware k USB MCU je neskutecne slozity, jen resit enumeraci je otazka par tisic radek. Ovladani UARTu je otazka desitek radek.
3) Delaji se USB-UART obvody (napr. FT232), ale ty vetsinou uz maji trosku jine parametry a pri opravdu casove kriticke komunikaci jsou nepouzitelne. Napriklad v automobilove diagnostice jsem nevidel snad zadny program pouzivajici K-Line prevodnik na seriovou linku fungovat s USB-UART prvodnikem.
Myslim, ze by autor mel do clanku tucnym pismem napsat, ze "USB-UART/RS232 prevodniky maji jine parametry nez puvodni obvod 16550 a to snad ve vsech ohledech: latence, baudrate generator, funkcionalita". Funguje-li neco na 16550, neni zadna zaruka, ze bude fungovat i na FT232 ci necem obdobnem (dela to spousta firem, National, Texas, atd.).
Re: RS232
celé vláknoUrcite si vzpomenete na zmetek pro prijem IR dalkoveho ovladani.. v prvni verzi mcu, v dalsu uz primo pripojeny ir prijimac na seriovy port.. a kazde stlaceni dalkace zaseklo film na chvilku :)
Konektor je DE-9
celé vláknopekny clanek
celé vláknodiky,
ludek
USB převodníky - potenciální problém
celé vláknoMalé upozornění, USB RS232 (často s deriváty FTDI obvodů) převodníky většinou dokáží nastavovat jenom vybrané rychlosti, např. 9600, 14400, 19200... (mají pevně nastavený krystal a děličku).
Při použití těchto převodníků není možné nastavit nestandardní rychlosti. Takže chcete-li třeba připojit autodiagnostiku OBD, která komunikuje 10400b/s, tak se to nepodaří, protože převodník si dále vysílá 9600 a jeden pulz pak trvá 104us místo 96us.
řešením je použití HW portů v PC a nebo speciálních PCMCIA karet, které umožňují nastavit frekvenci krystalu a poměr děličky v širokém rozsahu a pak vykouzlit "skoro" všechny rychlosti.
Já používám http://www.sourcingmap.com/rs232-pcmcia-serial-9pin-expresscard-express-p-15323.html. Je to trochu porod nastavit, ale maká to
další výou je, že karta nepotřebuje USB driver a chová se jako reálný HW port, funguje tedy všude (Linux, DOS...) bez problémů
Re: USB převodníky - potenciální problém
celé vláknoRe: USB převodníky - potenciální problém
celé vláknoAle puvodni prispevek (od Martina) v sobe ma par chyb. Na FTDI obvodech rychlost jde nastavit bez nejmensich problemu. Tam jsou potize spis v latenci, nebo pouziti VCP driveru misto D2XX.
Dale je potiz s generovanim opravdu hodne nizkych baudrate typu 5bps, ale ty jdou delat ciste softwarove.
Treba takovy program KWP2000, ktery dneska krade uz kdekdo prave pouziva FT232 ... a funguje dobre. Opravdu jediny problem tam je s casovanim. Treba takova K-CAN gateway z Fabie/Roomstera pozaduje odpoved' na inicializaci tusim za 10-20ms, coz ve Windows je docela problem.
Re: USB převodníky - potenciální problém
celé vláknoPonyProg cez USB<->RS232
celé vláknoNapr. PonyProg programuje 2kB MCU cez USB<->RS232 prevodnik asi 2 minuty (ak vobec). Cez PCMCIA RS232 radic to trva cca 10s...
Re: PonyProg cez USB<->RS232
celé vláknorele pres seriovy port
celé vláknoRe: rele pres seriovy port
celé vláknoRe: rele pres seriovy port
celé vláknoRe: rele pres seriovy port
celé vláknoRe: rele pres seriovy port
celé vláknoRe: rele pres seriovy port
celé vláknoMIDI
celé vláknoBolo by C001 spomenúť v ďalšej časti seriálu Musical Instruments Digital Interface.
http://en.wikipedia.org/wiki/MIDI
Trochu zavádějící
celé vláknoMyslím, že krystaly jsou poněkud o hodně přesnější.
Re: Trochu zavádějící
celé vláknoDnešní krystaly AT standardu jsou tak na hranici (spíš pod ní) této přesnosti, zvláště když se vezmou do úvahy další věci, především vliv napájecího napětí, zatěžovací impedance, změny teploty a závislost dlouhodobé stability (stárnutí).
Re: Trochu zavádějící
celé vláknoJá bych se vůbec divil, kdyby se dva nezávislé oscilátory (ať už na jakémkoli principu, který by byl rozumně levně vyrobitelný) vůbec sešly byť na krátkou dobu - myslím v absolutní frekvenci - bez vzájemné synchronizace.
Re: Trochu zavádějící
celé vláknoRe: Trochu zavádějící
celé vláknoRe: Trochu zavádějící
celé vláknoJsem dostatečně otrlý, aby mi pomluvy bez důvodu byly u zadnice - jak si mnoho lidí už mohlo všimnout, takže jenom zbytečně ztrácíte čas.
Re: Trochu zavádějící
celé vláknoKdopak tady pronesl "informacemi nabitou" větu: "Myslím, že krystaly jsou poněkud o hodně přesnější." Co myslíte? Byl jsem to snad já?
Na váš blud reagoval naprosto věcně a správně pan Tišnovský, tak si to, prosím, přečtěte.
Není mojí vinou že v někom vyvoláváte nějaký(nepříznivý) dojem. Schválně si po sobě zkuste přečíst své příspěvky do diskusí s několikaletým odstupem. Pravděpodobně na sebe získáte podobný názor, pokud si to přiznáte.
Re: Trochu zavádějící
celé vláknoRe: Trochu zavádějící
celé vláknomáš dva příspěvky v diskuzi a jeden blbější než druhý
Seriova Ronja
celé vláknoRe: Seriova Ronja
celé vláknoZacatek synchronizace
celé vláknoRe: Zacatek synchronizace
celé vláknoRe: Zacatek synchronizace
celé vlákno(http://i.iinfo.cz/urs/pc_39_09-122765291441251.png)
a predstavcim si tu sekvenci na nem zobrazenou opakovane za sebou, bez toho, ze by k tomu byla popiska :-), tak netusim, jak bych poznal, ze zrovna TED je start bit a ne jenom jedna z nul.
Re: Zacatek synchronizace
celé vláknokdyz mate nepretrzitej tok dat, tak jednou za 10 bitu (nejjednodussi pripad), je prechod 1->0 (stopbit->startbit), jakmile takovou vec po dobu 10 bitu neuvidite, tak vite, ze se nevysila a je jasny, ze dalsi hrana bude patrit startbitu.
Re: Zacatek synchronizace
celé vláknoRe: Zacatek synchronizace
celé vláknoRe: Zacatek synchronizace
celé vláknoRe: Zacatek synchronizace
celé vláknoRe: Zacatek synchronizace
celé vláknoRe: Zacatek synchronizace
celé vláknoProste prijimac ma OKNO (posuvny registr) o delce 10 bitu ktery se posouva komunikacni rychlosti od doby nez se zachytil prvni start (muze byt i falesny - pripojeno uprostred bajtu). Pokud sedi podminka pro start a stop bit, tak se znak prijme. Pak se okno zacina plnit od pocatku, do te doby nez se nenaplni uplne a bud sedi start/stop (=prijmout+restart), nebo nesedi (=shift).
Re: Zacatek synchronizace
celé vláknoAle stejne si myslim (nejsem to schopen dokazat), ze se stopbit nevyhodnocuje. Ze v okamziku, kdy prijimac chytne startbit, tak se zasynchronizuje, pak se chytnou datove bity (a parita) a jakmile je pochytano, tak se cely bajt strka nekam do fronty, zatimco vysilac vysila prave ten stopbit. Mam za to, ze ten stopbit tam je prave proto, aby se stihla zpracovat prijata data, ne kvuli vyhodnoceni jejich spravnosti. Kvuli kontrole spravnosti prece je (nebo spise muze byt) parita.
Mimochodem, anketni otazka, zazil jste nekdo v poslednich peti letech aplikaci na RS232, ktera by pouzivala paritu?
Re: Zacatek synchronizace
celé vláknoMoc pěkné + mám otázku
celé vláknoAhoj všem..
Prvně musím autorovi poděkovat za pěkný článek. Se sériovým portem teprve začínám, tak jsem rád mj. i za upřesněné názvosloví (například termín UART)
Nicméně mám doplňující otázku. Když z počítače pošlu do nějakého zařízení po sériové lince příkaz a očekávám odpověď, tak co se s tím příkazem děje? Ten se v tom zařízení uloží do fronty a to zařízení příkazy z fronty čte? A když mi pak zařízení odpovídá, tak mi zpátky vyšle odpověď a ta se uloží ve frontě v počítači? Takže pokud pošlu 2 příkazy rychle po sobě, tak se nejprve vykoná první a potom druhý a následně mi přijdou 2 odpovědi v rychlém sledu? (Vycházím z příkladu o Telegrafu)
Nyní to dělám tak, že pošlu příkaz z PC do zařízení a pak ve smyčce WHILE čtu patřičný COM a čekám, až načtu ukončovací znak, který má ono zařízení poslat na konci odpovědi. Používám správný princip?
Často se mi stává, že zařízení né a né odpovědět a WHILE běží a běží a počítač nereaguje. Jak jsem se dozvěděl na webu, je u RS-232 časté, že se informace ztrácí, takže příkaz do zařízení vůbec nemusí dorazit. Řeším to tak, že ten samý dotaz pošlu 2x rychle po sobě. A bojím se, abych připojené zařízení nezahltil, nebo, aby se mi v PC nehromadily odpovědi, kterých je v podstatě 2x více, než chci. (Protože každý příkaz posílám 2x, ale pak ho jen jednu čtu - a čtením se nejspíš zmenšuje ta fronta, od které se ukládají odpovědi)
Může mi to někdo okomentovat? Dík..
PS: o nespolehlivosti RS-232 jsem četl zde:
http://robotika.cz/guide/pc-robot-control/cs

