Linux-hoz USB-s relé kártya 2 féle: hálózati áram és 15V bemenet érzékelő relé?

Sziasztok!

2 fő kérdésem lenne:

1. Milyen hálózati áram kapcsolására alkalmas USB-s relé kártyát ajánlotok? (Minimum 2 port legyen, de több is jó. Jobb több eszköz külön-külön, vagy inkább 1 több portos?) Mennyire megbízhatóak ezek, mármint, hogy nem tesznek kárt a PC-ben, amibe dugva van az USB, és mire érdemes figyelni külön?

2. Ennek a megfordított változata érdekelne: olyan USB-s relé kártya (vagy lehet, hogy máshogy hívják), ami tudja érzékelni 12V-os rendszer jelzését, hogy áram jön-e rajta, vagy sem. Például egy független kamera rendszer jelzését. Itt 2 külön jelzést kell érzékelni, 12V.

Mindezek mellett Linux alól szeretném ezeket kezelni.

Amiket találtam, körbenézve:

A.: KMtronic USB 8 Channel Relay Board MICROCHIP IC

http://www.ebay.com/itm/KMtronic-USB-8-Channel-Relay-Board-MICROCHIP-IC…

Példa vezérlés:

stty -F /dev/ttyUSB0 9600
echo -e '\xff\x01\x01' > /dev/ttyUSB0 // the relay 1 go ON
echo -e '\xff\x01\x00' > /dev/ttyUSB0 // the relay 1 go OFF

B.: DUE R3 32 Bit ARM Compatible Shield Module Board With USB Cable for Arduino

http://www.ebay.com/itm/DUE-R3-32-Bit-ARM-Compatible-Shield-Module-Boar…

(Input Voltage (recommended):7-12V, Input Voltage (limits):6-16V)

C.: 8-Channel USB Relay Module 12V 10A Soft Auto-control Relay board with cable

http://www.ebay.com/itm/8-Channel-USB-Relay-Module-12V-10A-Soft-Auto-co…

(Relay parameters: the maximum you can control AC 250V 10A and DC 30V 10A)

D.: 8-way 8-Channel DC 12V Relay control board relays Module For AVR ARM Development

http://www.ebay.com/itm/8-way-8-Channel-DC-12V-Relay-control-board-rela…

(1 square onboard USB interface for connection stability
2 the use of imported high-performance USB controller chip
3 Use the special relay driver chip ULN2803, relay work more stable
4 Using genuine Songle relay
5 military grade PCB board production
6 board power outlets and terminals, two kinds of access to power is flexible. After connecting the power, even if the computer off or unplug the USB from the computer, the relay can also remains set.)

E.: USB Relay 2 Channel Board Programmable PC Computer Control For Smart Home New

http://www.ebay.com/itm/USB-Relay-2-Channel-Board-Programmable-PC-Compu…

F.: USB Control Relay Board PC Smart Controller USB Control 220V Switch Module

http://www.ebay.com/itm/USB-Control-Relay-Board-PC-Smart-Controller-USB…

G.: 1pc 5V 4-Channel Micro USB Relay Module USB Control Board

http://www.ebay.com/itm/1pc-5V-4-Channel-Micro-USB-Relay-Module-USB-Con…--

H.: DC 12V 2Ch RS232 Relay Board Remote Control USB PC UART COM Serial Ports

http://www.ebay.com/itm/DC-12V-2Ch-RS232-Relay-Board-Remote-Control-USB…

I.: USB Intelligent Control Switch MCU Microcontroller CH340 Delay Relay Module MO

http://www.ebay.com/itm/USB-Intelligent-Control-Switch-MCU-Microcontrol…

J.: 2016 USB Relay Module Computer PC Command Smart Control Switch Controller Board

http://www.ebay.com/itm/2016-USB-Relay-Module-Computer-PC-Command-Smart…

K.: 5V 2-Channel MICRO USB Control Relay Module ICSE013A Board

http://www.ebay.com/itm/5V-2-Channel-MICRO-USB-Control-Relay-Module-ICS…

Melyiket ajánlanátok (A...K) az 1. vagy a 2. feladatra, miért?
Persze, ha tudtok ennél jobbat, megfelelőbbet, az még jobb lenne.

UPDATE:

2 független feladat van, más módon leírva:

1. Hálózati árammal működő eszközöket kellene ki/be kapcsolni, azaz az áramot engedélyezni/tiltani, USB-n keresztül, biztonságosan. Például egy lámpát.

2. Egy 12V-os biztonsági (kamera) rendszer jelzését kell érzékelni. Tehát ha egy kábelen van jelzés, akkor érzékeljen USB-n keresztül, és az érzékelés után történjen valami.

Köszönöm előre is.

Hozzászólások

A feladatról beszélj! Mit szeretnél vele kapcsolni? Miért éppen relével? (Ez meg független a kérdésedtől: ne keverd az áramot a feszültséggel!)

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Sziasztok, újra itt, sűrűbben leszek majd mostantól... :)
2 független feladat van:

1. Hálózati árammal működő eszközöket kellene ki/be kapcsolni, azaz az áramot engedélyezni/tiltani, USB-n keresztül, biztonságosan. Például egy lámpát.

2. Egy 12V-os biztonsági (kamera) rendszer jelzését kell érzékelni. Tehát ha egy kábelen van jelzés, akkor érzékeljen USB-n keresztül, és az érzékelés után történjen valami.

Köszönöm.

Sakk-matt,
KaTT :)

Köszönöm a választ, azonban úgy érzem, a Master-Slave kapcsoló nem az, amit én keresek. Az én esetemben USB-n jelzem, hogy BE, és akkor kell áram az elosztóba, vagy ha ki, akkor ne legyen benne áram. Ezt mégis tudja?

Ez pedig ha például bekapcsolom a TV-t, akkor a fogyasztás felmegy mondjuk 80 W-ra, majd a slave-be dugott hifit, erősítőt, házimozi kiegészítőket bekapcsolja, nem kell nekem kézzel.
Az egyik termék leírása, amit megadtál:

"A legfeljebb 6 készülék kényelmes be- és kikapcsolásának terhét átveszi tőlünk ez a dugaszolóaljzat sor. Amennyiben a Master dugaszoló aljzathoz (max. 550 W) csatlakozó fogyasztót bekapcsoljuk, úgy az 5 ""Slave"" dugaszoló aljzat is automatikusan bekapcsolódik. A Master dugaszoló aljzat kapcsolási küszöbértéke 8 - 80 W között beállítható."

Sakk-matt,
KaTT :)

Ha van egy kis barkácsolási hajlamod, egy arduino + relé panel kb 5$-bol megvan :)

// Happy debugging, suckers
#define true (rand() > 10)

Mert igen nagy lesz a du/dt, a villamos ív miatt néhány ms-on át széles spektrumban, nagy energiával keletkezik zaj, s ez a tekercs és a kontaktusok közötti kapacitáson át becstolódik. Nem azt mondom, hogy ez minden kapcsoláskor így lesz, de én biztos szorongva figyelném, melyik lesz az a kapcsolás, amikor megdöglik a gép. Triac esetén jobb a helyzet, a kikapcsolás eleve árammentes állapotban - pontosabban kis áramnál - következik be, a du/dt-t limitáljuk.

Különösképp induktív terhelés, például villamos forgógép kapcsolásakor hangulatos ez.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Fene tudja. Nem drágább egy triac a relénél. Ami picit kellemetlen, hogy triac esetében meg kell oldani a vezérlés galvanikus leválasztását. A tranziensek szempontjából viszont jobb.

Amúgy csak a levegőbe beszélünk, amíg nem árulja el a topicgazda, hogy mit kell kapcsolni, mi a pontos feladat.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

A hutomet Arduinoval egy fototriacon keresztul kapcsolgatom. Omron g3mb-202p, ebayrol van, nincs lenyeges kulonbseg arban sem a relehez kepest, es zoldfuluek szamara modulkent is kaphato. Kb. egy eve megy kifogastalanul. (az eredeti mechanikus szar mondjuk idaig tobbet ment, de a vege fele minden baja volt, nem hiszem, hogy a solid state kevesebb ideig birna)
Egyebkent az ebay-es rele modulom is optos, szoval erre figyeltek.

szerk: Ja, a rele modulbol a rele tekercse es az opto kozti tranyot elfelejtettek beultetni (ott volt a helye egyebkent a nyakon). Kapott egy 2N2222-t.

--
A strange game. The only winning move is not to play. How about a nice game of chess? - Wargames

Tehát 100x2 csatorna:
BT137S 16000
MOC3062M 18300
csatlakozó kb. 30000
egyéb alkatrészek kb.10000
nyák tervezés+film 20000
nyák 80000
összesen <2222/db a két csatornás panel, de szerelési költség nincs.

ugyanez ssr kivitelben
S202S12 223000
csatlakozó kb. 30000
egyéb alkatrészek kb.6000
összesen <2590 a két csatornás panel, de se panel se szerelési költség nincs.

Ez csak hirtelen becslés a TME (a végén bruttó) + ebay áraival.

Persze ne gyártsunk ilyet, hanem meg kell készen venni. Ha meg nem legózni akarsz, akkor érdemes mindent feltenni egy áramköri lapra. Az a legolcsóbb.

A)
Olyat, amin nincs optocsatolóval leválasztva a relé és a számítógép, tuti nem vennék. Más kérdés, hogy inkább építenék, nyilván nem kispórolva az optocsatolót. Az egyik megoldás, hogy magát a relét választja le az optocsatoló (ehhez relénként kell egy db), a másik (ha több relé is van), hogy rakni mellé egy pici mikrokontrollert, és azzal soros vonalon beszélgetni (ekkor a soros vonalra kell rakni az optocsatolót).

A belinkelt cuccok egyikén sem látok optocsatolót, az első doboza ugye zárt, azon nem tudni, hogy mi van.

B)
Egyáltalán nem triviális, hogy a relé a megoldás a feladatra, de ha igen, akkor sem triviális, hogy milyen relé kell oda. Tudni kéne, hogy pontosan mit is szeretnél kapcsolni...

Én a relé tekercsétől és a mágneses mezőjétől szeretném távol tartani az érzékeny áramköreimet. Ezen felül persze a "kocka" relék nem megfelelő védőtávolsága sem szimpatikus (kockarelé: az, ami nem hosszúkás, hanem négyzetalapú, ahol jellemzően a tekercsoldali és a kapcsolt oldali közös láb ugyanazon az oldalán van a relének, és közöttük van kb. 3-4mm a panelon; ezekre ugyan ráírják néha, hogy 250V, de ezt inkább nem próbálnám ki élesben a saját bőrömön).

Attól függ hogy mekkora tokban van az áramkör. Ha 6 lábú DIP tokban akkor kb. 7,6 mm-t, legalábbis a List of integrated circuit packaging types oldal szerint. Persze ez csökken a fólia miatt. Azért a szigetelési feszültség is számít ami típustól függően lehet 2,5-3,5 kV közötti érték is.

Az optocsatoló - ha normális DIP-tokos modellt választasz - min. 7.62-es (300mil) lábtávolságú, ami >6mm-es forrszemtávolságot jelent, 1.5-1.6mm-es forrszemmel számolva. Az ominózus reléken jellemzően 5.08-as (200mil) lábtávolság van, ami ~3.5mm-es forrszemtávolságot jelent. Nyilván lehet játszani azzal, hogy vékonyabbra veszed a forrszemet, de 1mm alá akkor sem tudsz lemenni reálisan, ráadásul már az is csak furatgalvános kétoldalas gyári panelnál működhet, mert egyoldalas panelnál nincs furatgalván, anélkül meg a 0.1-0.2mm széles gyűrű leválik a legkisebb hő hatására is.

Régi gépek nyomtatóportjával 8 dolgot lehetett kapcsolgatni. Volt, amelyiknél visszafelé is működött a dolog, ha jól emlékszem 5V-ot kellett vezetni az egyik adatvezetékre, és a megfelelő portot olvasva, a kiolvasott értékből lehetett tudni melyik vezetékre volt kötve.
A kapcsolgatás meg sima portra írással történt. Turbo Pascalban egyszerű volt, pl. port[nyomtatóport_száma]:=00001000b; ekkor a D5-ön jelent meg 5V. Visszafelé hasonlóan ment.
Egy kis barkácsolással sokmindent lehetett kapcsolgatni vele.

-fs-
Az olyan tárgyakat, amik képesek az mc futtatására, munkaeszköznek nevezzük.
/usr/lib/libasound.so --gágágágá --lilaliba

IrMérTech-en én is szórakoztam nyomtatóporttal C-ben, igaz adatátvitellel, de kb ugyanaz, kapcsolni és olvasni egy-egy vonalat. Nekem valamiért nem működött az összes ki és bemenet ezért nem használtam az összes vonalat, és lassabb lett az adatátvitel.

Ragaszkodsz az USB-s eszközhöz? Én inkább tennék egy TinyControl-t (http://www.tinycontrol.eu) a hálózatra és olyan gépről, úgy vezérled IP-n, SNMP-n keresztül, ahogy akarod - sőt némi saját logikát is tud, ha kell.
(nem tudom, mi a pontos feladat, de az is lehet, hogy ez mindent megold neked, amit te az USB-s relék mögött Linux-on szeretnél)

----------------------------------^v--------------------------------------
"Probléma esetén nyomják meg a piros gombot és nyugodjanak békében!"

Mivel adott egy Linux, ami amúgy is megy, így inkább ezen keresztül akarom megoldani USB-n, nem egy külön eszközzel.
Biztonsági szempontból sem annyira tetszik, hogy egy "ismeretlen" működésű, vezérlésű hálózati eszköz.
Köszönöm azért, jó ötlet más szempontból.

Sakk-matt,
KaTT :)

Soros port nincs?
Sok szempontból jobb és megbízhatóbb megoldás. Pl. soros portra az optikai leválasztás ősidők óta létezik. Az RS-232 akár 30m távolságot is megenged - viszont tápot nehéz belőle nyerni, nem hiszem hogy egy komolyabb relét elvinne. Az USB annyira agyon van pufferelve, hogy mire észlelsz valamit már rád dőlt a ház. A soros kommunikáció szoftverileg sokkal egyszerűbb, ráadásul (ha jól értem) nem kell nagy sebesség.

* Én egy indián vagyok. Minden indián hazudik.

Ez nagy okosságnak tűnhet. ;)
Bár az rs232 nem szokott ilyet csinálni, tehát marad a bd=Baud.
Mutatom:

http://i.imgur.com/33XV0w6.jpg

Ez egy 9600 8N1 "U" karakter=>1 start bit + 8 adatbit + 1 szünet a karakterek között, ezért kb. <bd/10 az átviteli sebesség karakter/s-ban. Itt az egy bit ideje 0,104ms.

Nagy okosságnak tűnhet egy ilyen kép beillesztése, de nem az :) Illetve... arra mégis jó, hogy lássuk, az RS232 nem használ modulációt.
Ha Baudot írsz mértékegységként, akkor azt is meg kell mondanod, hogy milyen modulációt használsz, mivel a kettő (a mérőszám és a modulációs mód) együtt dönti el, hogy mekkora a tényleges bitsebesség. Ha nem használsz modulációt, értelmetlen mértékegységként a Baud.
Ha a PC-vel egy eszközre kell csatlakoznod, aminek a soros portja pl. 2400bps-os sebességű, akkor a PC soros portját is 2400bps-ra kell beállítanod. Ha a kettő eszköz nagyon távol van egymástól (akár néhány 1000 km-re), akkor közéjük két modemet teszel. A PC soros portja továbbra is 2400bps-mal megy, de a modem nem, az pl. 600Bauddal fogja továbbítani a jeleket.
Nyilván tudod is ezeket, csak most máshoz volt kedved :)

Írtad:

Ennek további előnye, hogy csak törpefeszültségű vezetéket kell használnod.

Ha a vezérlőt viszi távolabb a hosttól, s közelebb a vezérelt berendezéshez, akkor is megmarad az az előny, hogy törpefeszültségű vezetéket kell használnia, hiszen az USB kábelen 5 V feszültségnél több nem fordul elő.

Persze ettől még egyetértek veled abban, hogy ne legyen specifikáción túli hosszúságú az USB kábel, de amit az előnyről írtál, az nem meggyőző.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Ennyire nehéz, és irreális 12V-ot érzékelni, hogy jön-e a kábelen, vagy sem, és ha igen, akkor USB-n lekérdezhető? Mert 3-5V-ra van ilyen USB-s eszköz.

A másik, hogy hálózati áramot (amin van mondjuk egy halogén lámpa) is ilyen nehéz USB-n kapcsolgatni, hogy nincs erre olyan termék, amit ajánlanátok? Pedig már terjednek az okos otthonok, azok is tele vannak ilyenekkel.

Lehet, hogy rosszul teszem fel a kérdést, vagy még senki nem látott a gyakorlatban ilyet, amiről szó van.
Nem megépíteni szeretném, hanem egy kész terméket venni, ami tudja. Lennie kell az ebay-en például... :)

Sakk-matt,
KaTT :)

Nem tudok én semmit csak azt az egyet, hogy ebben a hozzászólásban rs232 szerepelt, amin nincs moduláció. Erre válaszoltam.
Innentől kezdve bármilyen modulációról beszélni legfeljebb annyit tesz, hogy
a) nem értesz hozzá és okoskodsz
vagy
b) nem figyelsz és okoskodsz

A baud definíciója az interfész bitsebessége. Mivel ebben az esetben a soros port 9600Hz-re van programozva és "minden Hz" alatt egy bitet visz át, ezért a sebessége 9600bd avagy 9600bps. Az adatsebessége - mint írtam a linkelt hozzászólásban - 2 karakter/2ms. Ha a 9600 az kb. 10000 és egy karakter 8 bit akkor kijön a 8000bps. avagy 1000cps ami == (kb.)10000bd/10.

Még egy dologról írtam: áramhurok. Ez sem modemen keresztül megy, tehát nincs moduláció. és mégis eltalál 2km távolságig.

A soros port adatátviteli sebességének mértékegysége bit per szekundum. Te Baudot írtál, ami minimum tájékozatlanságra vall, mivel a Baud definíciója nem az interfész bitsebessége. Ragaszkodhatsz továbbra is a téves információidhoz, de az a makacsság győzelme az értelem felett. Sajnálom, hogy nem figyeltél arra, amit írtam a modulációval kapcsolatban, de ha neked így jó, ám legyen.

Mindenkinek igaza van. Más nézőpontból nézve senkinek sincs igaza.

A Baud a szimbólumsebesség mértékegysége. Ha egy szimbólum egyetlen bit információt tartalmaz, akkor a szimbólumsebesség (Bd) és a bitsebesség megegyezik egymással. Ha egy szimbólum 4 bitnyi információt hordoz, akkor a bitsebesség a szimbólumsebesség (Bd) négyszerese lesz. Mivel soros átvitelnél egy szimbólum egy bitből áll, így a két sebesség megegyezik.

Nem ugyanezt írtam én is? :)

BPSK moduláció használatakor nincs különbség, de pl. QPSK esetén 9600bd = 19200bit/sec
Ha Baudot írsz mértékegységként, akkor azt is meg kell mondanod, hogy milyen modulációt használsz, mivel a kettő (a mérőszám és a modulációs mód) együtt dönti el, hogy mekkora a tényleges bitsebesség.

„Nem bd, hanem bit/sec.”
„Ha nem használsz modulációt, értelmetlen mértékegységként a Baud.”

Ez egy elég vitatható álláspont. Azonban ha soros portról, vagy RS232-ről beszélünk (a szál onnan indult), akkor azt is lehet tudni, hogy nincs moduláció, tehát alapsávi jelet viszünk át. Tehát egy ilyen konkrét esetben nyugodtan lehet használni a bd-ot anélkül, hogy explicit kihangsúlyoznánk az alapsávi jelátvitelt.

A probléma azzal kapcsolatban, amit írsz, az, hogy a szimbólumsebesség vagy jelsebesség fogalmát akkor kellett bevezetni, amikor nagyobb távolságú átvitelt szerettek volna HATÉKONYAN megoldani, aminek érdekében különböző modulációs eljárásokat dolgoztak ki (és még dolgoznak ki ma is, pl. jelenleg már a 2048QAM is használatban van). Ezeknél az ügyes eljárásoknál meg tudták azt oldani, hogy a jelnek kettőnél több megkülönböztethető állapota is lehetséges, így adott időegység alatt nagyobb információmennyiség átvitele vált lehetségessé.

A BPSK-hoz képest (ahol a bitsebesség megegyezik a szimbólumsebességgel) a QPSK kétszeres sebességet eredményez, a 16QAM már négyszerest, a 64QAM pedig hatszorost - ez utóbbi modulációs módot alkalmazzák pl. az analóg földfelszíni tévéműsorszórást felváltó digitális adásnál (DVB-T).

A soros porton közlekedő alapsávi jelek sebességének kifejezésére nem volt szükség a Baud bevezetésére, mert arra tökéletesen megfelelt a bit/s, ahogy megfelel ma is.

Az I. világháború egészen addig csak világháborúként került említésre, amíg ki nem tört a második.

„A soros porton közlekedő alapsávi jelek sebességének kifejezésére nem volt szükség a Baud bevezetésére, mert arra tökéletesen megfelelt a bit/s, ahogy megfelel ma is.”

A bit szó maga 1945-ben, vagy 1946-ban keletkezett, a binary digit összevonásával. Így addig a bit/s-ot semmire nem használták, mivel nem is létezett. A Bd-ot, mint mértékegységet, valamikor a 20-as években kezdték használni.

További győzködés helyett:
- Információ közlése és feldolgozása, 21. oldal, (Sz.: Csibi Sándor), Tankönyvkiadó, Budapest, 1986

Valóban, igazad van, a bps a későbbi mértékegység.

Valóban, a Baudot előbb kezdték el használni. Hogy mire? A következő idézetből ez is kiderül:


baud (Bd)
a unit used in engineering for measuring the rate of data transmission over telegraph or telephone lines. The baud rate is the number of distinct symbols transmitted per second, that is, the number of times per second the signal carrying the communication varies in strength or frequency. In the days of the telegraph, the signal increased at the start of a pulse and decreased at the end, so the baud rate was 2 times the number of dots that could be transmitted per second. In recent years, when the baud has been used to represent digital data transmission, the definition has varied according to the technique used. If the symbols transmitted have only two states (on or off) then the baud rate is the same as the transmission rate in bits per second. This was the case in early modems, but in modern data transmission equipment symbols have a much larger number of possible states. For example, if the signal has 28 = 256 possible states, then a single symbol can carry 8 bits of information and the bit rate will be 8 times the baud rate. Consequently, any use of "baud" as a synonym for "bits per second" is incorrect. The baud is named for the French telegraph engineer J. M. E. Baudot (1845-1903), the inventor of the first teleprinter.

Elismerem, tévedtem.

http://i.imgur.com/wKCyjei.jpg

Viszont cserébe elismerhetnéd, hogy rajtam kívül még legalább egy ember tévedett. (A mellékelt ábra szerint.)
Sőt.
Esetleg megnézhetnéd a man stty tévedését is, ahol azt írják: set the input and output speeds to N bauds.
A 9600 baud sebességet a BRG (Baud Rate Generator) programozásával állítom be. Sajnos az i2c interfésznél is véletlenül pont így hivják. ;)

Igaz, a WindowsXP soros port beállításánál bit/s értéket kell beállítani. Ez is igaz, mert a soros portnak a szimbólumsebessége megegyezik a baud rate értékével, mivel a szimbólum mérete 1 bit. Bár ugyanitt a Volume Manager-t (diszk kötet kezelő) hangerőszabályzónak fordították. Azaz nem vagyok meggyőződve a műszakilag helyes fordításról. ;)

Félre a windózos tréfával! Ez a sok tudatlan ember pontosan azért hívja a soros interfész(ek) sebességét baud-nak, mert soros, modulálatlan, és mint ilyen 1 bit szélességű.

Szóval szakadjak meg, ha értem minek kevered ide a modulációt egy modulálatlan interfészhez!
Ám ha én nem figyeltem, azt talán azért tettem, mert a modulációt először részletesen még ebből a könyvből tanultam. Amikor megjelent. :(

Viszont cserébe elismerhetnéd, hogy rajtam kívül még legalább egy ember tévedett.

Ezt nem nagyon értem. Elismerhetném? Cserébe? Ez jó :)
Pontosan tudom, mert tapasztalom, hogy az emberek mennyire keverik ezeket a fogalmakat, ezért is írtam, hogy nem volt helyes a Baud használata azon a helyen. Nem a kötekedés volt a célom, ahogy feltételezted, hanem a pontatlan, félreérthető fogalmazás javítása. Kellemetlen, hogy a baudrate terjed a bitrate helyett, sajnos nagyon sokan fogalmaznak pongyolán, de ez ne legyen mentség. A helyesírásunkra sem kell ezután figyelnünk, mert a neten tíz emberből kilenc nem törődik vele? Szerintem pont azért kell figyelnünk rá, mert különben a most felnövő generáció teljesen "kinyírja" a nyelvünket.

Hidd el, a szakmámból és egyben hobbimból eredően sokat használok még ma is különböző terminálszoftvereket, szívem szerint írnék a szoftverek fejlesztőinek is, hogy javítsák ezeket a hibákat :) A minicom pl. látszólag elegánsan megkerüli a kérdést, nem ír semmilyen mértékegységet, viszont a sebesség beállítására -b avagy --baudrate szolgál :)

... és igen, időnként forrasztok be ilyen-olyan értékű "bódrétkristályt", de tudom, hogy nem szabatos a megfogalmazás, viszont a boltban így ismerik ezeket (az "öregek" mindenképpen).

Az I2C interfész specifikációját történetesen ismerem, lapoztam már néhányszor, abban pl. "kíméletlenül" bit/s van használatban :)

------------------------------------------------------------

Ez a sok tudatlan ember pontosan azért hívja a soros interfész(ek) sebességét baud-nak, mert soros, modulálatlan, és mint ilyen 1 bit szélességű.

Pontosan ezért nem kellene Baudnak hívni a bitsebesség mértékegységét :)

------------------------------------------------------------

Szóval szakadjak meg, ha értem minek kevered ide a modulációt egy modulálatlan interfészhez!

A szimbólumseebesség mértékegységét pontosan akkor kell használni, amikor időegység alatt 1 bitnyi információnál többet tudunk átvinni, ugyanis ekkor van értelme, ekkor különbözik a szimbólumsebesség értéke a bitsebességétől. Pontosan azért kevertem bele a dolgoba a modulációt, mert belekeverted a Baudot a bitsebességbe :)

------------------------------------------------------------

Ám ha én nem figyeltem, azt talán azért tettem, mert a modulációt először részletesen még ebből a könyvből tanultam. Amikor megjelent.

Lehet, hogy Andrew S. Tanenbaum nem olvasta azt az általad hivatkozott könyvet, ami 1979-ben jelent meg, az is lehet, hogy olvasta, viszont az általa írt, Számítógép-hálózatok címő könyvet 1981-ben adták ki, aminek a 2. hazai kiadása így ír a témáról:

A sávszélesség, a baud, a szimbólum és a bitsebesség fogalmai gyakran összekeve­rednek, ezért itt most még egyszer leírjuk ezeket. Egy átviteli közeg sávszélessége azon frekvenciák tartománya, amelyek minimális csillapítással keresztüljutnak rajta. Ez a közeg egyik fizikai tulajdonsága, és Hz-ben mérik (általában 0-tól egy adott frekvenciáig tart). A jelzési sebesség (baud rate) az egy másodperc alatt vett minták száma. Minden mintavételezés egy adag információt, vagyis egy szimbólumot küld el. A jelzési sebesség és a szimbólumsebesség ezért azonosak. A modulációs módszertől (pl. QPSK) függ, hogy mennyi bit fér egy szimbólumba. Az adatsebesség vagy bitsebesség a csatornán egységnyi idő alatt átvitt információ mennyisége, és egyenlő a szimbólumok másodpercenkénti számának és szimbólumonként elküldött bitek szá­mának szorzatával.

Ugyanezen könyv 3. kiadásában ez olvasható:

A jel változásának sebességét jelsebességnek (baud rate) vagy szimbólumsebességnek (symbol rate) hívjuk, hogy megkülönböztessük az adatsebességtől. Az adatsebesség egyenlő a jelsebesség szorozva a szimbólumonkénti bitek számával. Egy korábban használatos név a szimbólumsebességre, főleg a telefonmodemnek nevezett, digitális adatokat telefonvonalakon keresztül továbbító eszközökkel összefüggésben, a jelsebesség.
A szakirodalomban az „adatsebesség" (bit rate) és a „jelsebesség" (baud rate) gyakran szerepel tévesen.

No, ezek után átmegyek Erich von Däniken stílusba. Csak kérdezek. ;)

Miért alkalmaznak (szerinted) hibás fogalmat az összes unix-szerűség stty parancsában, de még a híres Old Tanenbaum Minix rendszerében is?
Soros interfészen
- hány mintát veszel másodpercenként?
- hány bit fér el egy szimbólumba?
- ha ismerjük a "csatornán" átvitt információ mennyiségét, az megegyezik-e az adattovábítás sebességével?
- és az adatátviteli sebességével?

Az i2c specifikáció tényleg kbit/s vagy Mbit/s data rate-ről ír, és mégis sokan BRG-nek hívják azt ami előállítja azt az izét, amire a Philips ilyet ír: ... operate at bus speeds up to 1 MHz clock rate. Vajon az i2c kitalálója is téved néha?
Mennyi a baud rate a 100kb/s sebességű i2c interfészen?

Azt azért értem, hogy szerinted ha a jelsebesség==adatsebesség akkor a bit/s a helyes mértékegység. Ezt hol olvastad?

Mivel nem válaszoltál a kérdésekre kiderült valami.
Úgy jártál mint az egyszeri diák, aki órán értette az anyagot aztán a vizsgán megbukott.
Tanultál/olvastál valamit, de sajnos képtelen vagy a gyakorlatban értelmezni. Erre akkor jöttem rá, hogy továbbra is úgy véled én kevertem valamit, ezért megnéztem mibe kötöttél bele. Na mibe? Hát abba, hogy bd! Ezt már láttad valahol, de máshol, azaz szerinted hiba. ;) Valójában az egyik interfész működését sem ismered pontosan, ezért nem is tudtad értelmezni mi van odaírva. Később elmlítetted az i2c-t, de azt sem tudod hogyan működik. Így aztán öllég nehéz vitatkozni!
Ha nem így lenne, csuklóból odavágtad volna a válaszokat.

1. Miért alkalmaznak (szerinted) hibás fogalmat az összes unix-szerűség stty parancsában, de még a híres Old Tanenbaum Minix rendszerében is?

Nem tudom pontosan, csak sejtem. Talán olvastak valamit, amiről azt hiszik, hogy értik. Úgy érzékelem, nincsenek egyedül.

2. Soros interfészen hány mintát veszel másodpercenként?

A bitsebesség mértékével megegyező számút.

3. Soros interfészen hány bit fér el egy szimbólumba?

Rövid válasz: 1
Továbbra is erőltetettnek gondolom a szimbólum fogalmát aszinkron soros átvitel esetén, ahol semmilyen modulációt nem használok.
(Amúgy nem szimbólumba, hanem szimbólumban.)

4. Soros interfészen, ha ismerjük a "csatornán" átvitt információ mennyiségét, az megegyezik-e az adattovábítás sebességével?

A rövid válasz: nem
Az átvitt információ mennyisége függ az átviteli sebességtől és az átvitel időtartamától. A kérdés pontatlan.
Gonoszkodok egy kicsit. Mit értesz információ alatt? RS232 esetén az átvitelben szerepet játszó UART-ok számára a start bit és a stop bit(ek) is információ, az esetleges paritásbit is az, nekem, aki pl. ASCII karaktereket akarok átküldeni, csak az a 7 vagy 8 bit számít annak, amivel meghatározom az adott karaktert :)

5. Soros interfészen, ha ismerjük a "csatornán" átvitt információ mennyiségét, az megegyezik-e az adatátviteli sebességével?

A rövid válasz: nem
Ez a kérdés is pontatlan.
A tényleges adatátviteli sebesség számítható az átvitt adat mennyiségének és az átvitel időtartamának ismeretében.

6. Vajon az i2c kitalálója is téved néha?

Bizonyára.

7. Mennyi a baud rate a 100kb/s sebességű i2c interfészen?

A rövid válasz: 100kBd
Megismétlem: továbbra is erőltetettnek gondolom a szimbólum fogalmát aszinkron soros átvitel esetén, ahol semmilyen modulációt nem használok.

Köszönöm a válaszokat. Így már tisztába tudom tenni mit értettél félre.

Elöljáróban - bár mondjuk a PCM csatorna sebesség definíciója másképp szól - a baud rate mindig az elméleti maximális fizikai szimbólumsebességet jelenti*. (Minden csillagot helyettesítsél be a vastag betűs definícióval!) Ezek az interfészek 1 bitesek, modulálatlanok, így nem is kell másól beszélni.

1. Az stty parancs baud rate értéke az a szám, amire a baud rate generátort kell programozni, ahol *

2. Ez egy ravasz, kétértelmű kérdés volt. Képzeld el, hogy a soros interfészen egy terminál lóg. Leütsz egy billentyűt minden másodpercben. Ekkor pontosan 10 mintavétel történik. Biztosan tudománytalan a megfogalmazás, de ez egy kétszeresen aszinkron interfész. (Mindig kihagyom az üzemmód specifikációt, mert pc esetén - is - általában aszinkron átvitelt használnak.)
- Aszinkron, mert nem viszik át az órajelet az egyik készülékről a másikra. Így egy karakter átvitelkor a start bit szinkronizálja a vevő BRG-t. A tűrés úgy van kitalálva, hogy a karakter végéig a bitek még beleesnek a vevő mintavételi időablakába.
- Nincs adáskényszer, azaz akkor adok és annyit amennyit szeretnék. Egy szinkron interfészen állandóan mehetnek a jelek, legfeljebb üres tartalommal.
De a bitsebességnek megfelelő időközönként kell mintát venni!

3. Triviális.

4. Jogos a kifogás, de a sebességből következtethettél volna a hiányzó "időegység"-re.
Az információ sebessége==adattovábítás sebessége, ami a baud rate.
Az információ:
- start bit (1)
- adat bitek (8)
- stop bit(ek) (0)
- mark (1)
Ha összeadod a zárójeles értékeket, akkor kijön a 8N1 beállitáshoz tartozó 10db információ darabka, amelyek egy-egy baud rate-nek megfelelő időegység alatt kerülnek továbbításra. Ez a bitsebesség, ahol *.

5. Adatátviteli sebesség (throughput) ebben az esetben kisebb mint a baud rate. Ezért adják meg általában cps-ben. Az előbbiből látszik, hogy ebben az esetben max.(baud rate)x0,8. Pontosabban <=960cps.

6. Az i2c specifikáció igen precíz. Ezért ír kb/s értéket, itt is *. A clock rate egy konkrét eszköz adatlapján szerepel, ami akár baud rate is lehetne. De nem így van, lásd a következő pontot!

7. A 100kb/s sebességű i2c interfész sebessége mindig kisebb, mint 100kbd. Egy biztos, hogy a BRG 100kHz-re van beállítva, de a BRG csak 9 órajelnyit megy (8 adatbit + ACK ) majd megáll. Ezért a leggyorsabb újraindítás esetén is fellép egy kis késleltetés.
Az i2c és a soros interfész hasonlít abban, hogy start eseményre indul a BRG. A soros portnál nincs külön órajel, ezért egy adott tűrésen belül tartani kell a bitsebességet a karakter ideje alatt. Az i2c master adja órajelet a BRG sebességével, de ezt mind a master mind a slave több esetben is megnyújthatja.
Példa: Elküldöm a slave részére a flash címet, majd 64B blokkot. Az utolsó bájt vétele után a slave "él a clock stretching jogával" és 200 bit idejéig (2ms) megfogja az órajelet. Amikor végzett a blokk flash-elésével az ACK/NACK-val közli annak sikerességét. Ezt lehetne úgy is magyarázni, hogy a master - a baud rate sebességével - kapott 200db információt, miszerint nem szabad adnia a következő órajelet. ;) Igaz, ezt a master 100kHz gyakorisággal vizsgálja, még sem hívnám információtovábbításnak csak állapotnak. Ha ez az utolsó mondat igaz, akkor az is igaz, hogy a 100kb/s a *. Ráadásul az i2c és smbus protokoll között van egy lényegi különbség: az előbbinél nincs, az utóbbinál definiált a timeout értéke. Ezért a 100kb/s i2c az 0..100kb/s lehet, amit a BRG megfelelő beállításával is el lehet érni, kivétel a 0Hz. Tehát az információsebesség soha nem éri el a baud rate értékét, de akár 0 is lehet, talán ezért nem hívják baud rate-nek. ;)

Az általad kifogásolt hozzászólás a két interfész összehasonlítása:
Az usb késleltetése (full speed, hid, interrupt mód) <2ms, ami 2 karakter ideje a soros porton (9600bd). Ez alatt egy usb pipe 64 karaktert tud átvinni, azaz majdnem 64kB/s. Ehhez >640kbd soros port sebesség tartozna.
Baud rate
usb full speed = 12Mbd <-> soros port 9600bd
Üzemmód
hid, interrupt mód = 1ms minimális frame <-> aszinkron mód (csak nem írtam oda)
Az aszinkron soros módban szinte azonnal elindul a karakter. Az usb interrupt mód esetén egy endpoint-hoz tartozó, max. 64B hosszú microframe adása garantált interruptonként(frame-enként). Kicsit túlzó worst case feltételezésével az első frame-t lekéssük, míg a másodiknak csak a vége felé kerül sor az adásra. Ebből jön ki a <2ms latency. Az usb szabván alapján a maximális throughput ebben az üzemmódban 12.000.000b/s, de egy endpoint csak 512.000b/s sebességet biztosít. (1000x64x8)
A fentiek alapján ez usb ebben az üzemmódban szinkron interfésznek tekinthető, de nem kötelező minden microframe-t sem leadni, sem teljes hosszban adni. A soros porthoz képest ez kvázi-szinkron interfésznek tekinthető, mert
- folyamatos a kommunikáció, mert a SOF (start of frame) minden ms-elején jön.
- szigorúbb a baud rate tűrése (<6% vs. <0,2%)

Remélem sikerült bizonyítanom, hogy szemben a fix frekvenciájú (esetleg szinkron) analóg vagy digitális modulációkkal szemben itt csak elméleti baud rate-ről van szó. A baud rate értékét meg azért adják meg, mert az az elméleti maximum, de a valódi b/s sebességről többnyire fogalmunk sincs.

A szimbólumot csak azért kevertem ide, hogy rá lehessen húzni az idézett definíciót. Nem ragaszkodom hozzá. ;)

Szerintem teljesen jó alapsávi, 1 bit/szimbólum átviteli tulajdonságú adat esetén a baud rate kifejezés használata. Pusztán arról van szó, hogy éppen 1 bit egy szimbólum, így ebben az esetben a baud rate szimbólumsebesség és bit/s adatátviteli sebesség megegyeznek.

Picit olyan az érvelésed, mintha azt mondanád, prím számok esetében hülyeség oszthatóságról beszélni, mert nincs valódi osztójuk. Attól, hogy ez igaz, még értelmes dolog prímek esetében is oszthatóságról beszélni, legfeljebb az oszthatóságuk kimerül abban, hogy 1-gyel illetve önmagukkal osztható.

Nem keverendő a két mennyiség, ez így helyes. Az viszont nem keverés, ha egy RS232 vonalról azt állítom, 9600 baud a szimbólumsebessége, s mivel minden szimbólum épp 1 bitet visz át, így 9600 bit/s az adatátviteli sebessége egyben.

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

Az viszont nem keverés, ha egy RS232 vonalról azt állítom, 9600 baud a szimbólumsebessége, s mivel minden szimbólum épp 1 bitet visz át, így 9600 bit/s az adatátviteli sebessége egyben.

Ebben tökéletesen igazad van, ahogy másoknak is, többször írtam én is, hogy vannak esetek, amikor a két mennyiség mérőszáma megegyezik (pl. BPSK moduláció esetén is).

Ha úgy gondolod, hogy bucko szimbólumsebességre gondolt, amikor a Baudot írta, akkor jó :) Én továbbra is úgy gondolom, hogy akkor ő adatátviteli sebességre gondolt, mint ahogy már ő is utalt erre, viszont akkor nem volt hiábavaló, amit írtam.

Ha felhúzok egy soros portot pl. 9600bps-ra, akkor a beállított sebességre szerintem nem nagyon gondol senki szimbólumsebességként, bár kétségtelen, hogy az megfelel 9600Baudnak, csak az én véleményem szerint ennek nem sok értelme van, mert biteket akarok átvinni a soros vonalon, nem szimbólumokat. Ha ezeket a biteket telefonvonalon kell átvinnem, akkor az átvitelre modemeket használhatok, pl. olyanokat, amik 2400Bauddal továbbítanak, olyankor viszont a telefonvonalon nincs sok értelme a 9600bps-ot keresni, mert ott modulálva viszem át a biteket, ezért ott szimbólumokat tudok vizsgálni, ezért értelmes ott szimbólumsebességről és Baudról beszélni.

Az már más kérdés, hogy a modemek dokumentációjában esetleg nem lesz feltüntetve közvetlenül a szimbólumsebesség, hanem - mondjuk - az adatátviteli sebesség bps-ban és mellette egy ITU-T szabványra hivatkoznak (V.32), mivel a mezei felhasználó úgy sem nagyon tudja, hogy mi fán terem a moduláció, őt az érdekli, hogy milyen gyors modemet kapott, vagyis mennyi bit per szekundummal tudja vele továbbítani a biteket. Neki a szimbólumokról fogalma sem lesz, ahogy azt sem tudja, mi az a QAM.

A fogalmak keveréséről még az jutott eszmbe, hogy ha valaki esetleg azt találná mondani, hogy neki van egy 9600Baudos modeme, akkor nyilván 9600bps-ról van szó, mert még az 56k-s (56kbps-os) modemek is csak 8000Baudosak.

-------------------------------------------------------------------

Nem keverendő a két mennyiség, ez így helyes.

Ezért írtam, pont annak érdekében, hogy ne keverjük a két mennyiséget.

Én egy kis relé dobozkát használok, ami RS485-USB átalakítóval van összekötve a géppel (rasPI-vel jelenleg)
- 2x5 relé van benne (így akár tudsz 12 és 24V-t is kapcsolni)
- kell neki saját táp 12-30V között (de ez lehet azonos azzal amit kapcsol)
- van benne saját 1wire driver, aktív, és background poll-ozza a hőmérőket. ennek az az előnye, hogy 10 szenzor felett már sok idő lekérdezni az egész buszt, ezt pedig egy pillanat. természetesen címzetten lekérdezhető adott hőmérő
- egy RS485 buszra akár 30at felfűzhetsz ebből, a teljes busz hossza többszáz méter lehet (két huzalon)
- a relé állapota lekérdezhető, ill. időzítetten is kapcsolható (pl bekapcs 20mp-re)

valahol 10 és 20e között van az ára.