Miért nem alkalmas az irda távvezérléssel, elektronikai cikkekkel kapcsolatos parancsok fogadására?

Általában biztosan használhatja az IrDA-t arra, hogy parancsokat kapjon a hagyományos infravörös távirányítókról, de nagyon nagy korlátozásokkal. Nem működik az összes konzolon. A parancsfelismerés stabilitása nagyon alacsony. Ha IrDA épített alaplap, szükséges, hogy a leadott vezető, ha a külső, akkor el kell távolítani a vezető vagy időszakosan peretykat vevő másik portot. USB IrDA általában nem lehet használni, mert nem érhető el közvetlenül egy soros portot (nem tévesztendő össze egy virtuális COM port).

És most még:

Az IrDA segítségével az adatok továbbítása, valamint a COM porton keresztül kisebb különbségek vannak. Az impulzus jelenléte logikai 0, az impulzus időtartama 3/16 bit. Általában 8 bitet használnak, paritás és 1 stop bit nélkül. Az első impulzust kiindulásinak tekintjük, majd a kiválasztott átviteli sebességtől (általában 115200) függően egy adott időben lévő impulzus jelenléte vagy hiánya meghatározza a következő bit (0 vagy 1) értékét. A byte-ot sikeresen fogadják, ha a stop-bitet megfelelően fogadják, azaz ha a megfelelő pillanatban nem lesz lendület. A kép egy jelet mutat, ha adatokat továbbít a COM porton (UART) és az IrDA-n keresztül.

Az IrDA csak hagyományos COM portként érhető el, ha az eszköz csatlakozik a COM porthoz vagy az alaplap IrDA csatlakozójához. A második esetben az .INF fájlokat úgy kell szerkesztened, hogy a Windows ne sejtse, hogy ez infravörös port. Például az USB IrDA eszköz a távirányítóval való működtetéshez egyáltalán nem működik.

A legfontosabb, hogy minden információs impulzus a távirányítótól származik - valójában egy meghatározott időtartamú, 30-55 kHz frekvenciájú infravörös háttér.

Tegyük fel, hogy a stop bit minden rendben van, akkor minden olyan lesz, mint egy rajz (A). Volt infravörös háttér, 86,8 μs sebességgel (115 200 sebességgel) az első bájt indításakor keletkezett az esemény RX CHAR EVENT.

Várakozás a végén megkapta a csomagot, kiszámítja a bájtok számát és a szám a készülék alsó bitek utolsó byte így megtanulják az impulzus időtartama (T2) legfeljebb 9 ezredmásodperc.

Várakozás a következő RX CHAR eseményre és fagyasztásuk között megtudjuk a T1 időt. Miután eltávolítottuk a T2-et a T1-ről, megtanuljuk a szünet hosszát.

Úgy tűnik, hogy elegendő információ áll rendelkezésére a parancs dekódolásához (az impulzusok hossza és a köztük lévő szünetek ismertek), de.

Ha abban az időben, amikor a stopbit olvasása az infravörös háttérben történik, egy impulzust fognak fogadni, akkor a bájt nem fog fogadni. Lásd a (B) ábrát. Így abban az esetben hibás vétele egy vagy több byte RX CHAR EVENT előfordulhat a ponton (1), (2) vagy (3).

Ráadásul az RX CHAR EVENT többször is előfordulhat egy távirányító információs impulzusa során, például az (1) és (3) pontokban. A bájt legvalószínűbb hibamentes vétele, amely az információs impulzus végét átfedi a távvezérlőn (nincs impulzus a stop bitre esik).

Következtetés: az adott frekvenciájú háttér IR (azaz egy bizonyos modell Distantsionka) egy szakaszon IrDA lehet használni vevő vezérlő parancsok a modulációs impulzus-távolság és egy viszonylag rövid impulzusok, összhangban az idő közötti RX CHAR ESEMÉNY (dugó DCD ). IrDA nem használható fogadására IR parancsokat distantsionok egy más típusú moduláció, valamint ha a csapat jelenlegi hosszú első információs impulzus, hogy gyakran előfordul.

Infravörös távoli parancsok létrehozása IrDA-n keresztül

Itt a helyzet valamivel jobb. Ha tudod a távirányító parancsának pontos formátumát, akkor több csomagot is létrehozhatsz és elküldhetsz az IrDA-n keresztül meghatározott idő elteltével. Ugyanakkor a 38400 átviteli sebességet kell használnia (legközelebb a legtávolabbi frekvenciához). Nagyon közel áll az eredeti jelhez, de ez nem ideális. Minden 9 impulzus után hiba lép fel (stop bit). Ezenkívül az impulzus arány körülbelül 19% (50% -os lehet). A vevőberendezés az információs impulzusok között rövid szünetet érzékel, és a parancsokat helytelenül dekódolja.