Ei bine, în general, puteți folosi cu siguranță IrDA pentru a primi comenzi de la telecomenzi controlate IR, dar cu restricții foarte mari. Nu funcționează cu toate consolele. Stabilitatea recunoașterii comenzii este foarte scăzută. Dacă utilizați IrDA încorporat în placa de bază, trebuie să vă conjurați cu driverele, dacă este extern, atunci trebuie să ștergeți driverul sau receptorul pertykat periodic într-un alt port COM. USB IrDA nu poate fi utilizat deloc, deoarece nu poate fi accesat direct ca un port COM (nu confundați-l cu un port COM virtual).
Și acum mai mult:
Prin IrDA, datele sunt transmise, precum și prin portul COM, cu mici diferențe. Prezența unui impuls este logică 0, durata impulsului este de 3/16 biți. De obicei, 8 biți sunt utilizați, fără paritate și 1 stop bit. Primul impuls este considerat ca fiind cel inițial, în funcție de viteza de transmisie selectată (de obicei 115200), prezența sau absența unui impuls la un moment dat determină valoarea următorului bit (0 sau 1). Un octet este considerat a fi primit cu succes dacă bitul de stop este corect recepționat, adică dacă la momentul potrivit nu va exista un impuls. Imaginea prezintă un semnal când datele sunt transmise prin portul COM (UART) și prin IrDA.
Puteți accesa IrDA ca un port COM obișnuit numai dacă dispozitivul este conectat la portul COM sau la conectorul IrDA de pe placa de bază. În al doilea caz, va trebui să editați fișierele .INF astfel încât Windows să nu ghicească că acesta este un port în infraroșu. Utilizați, de exemplu, dispozitivul USB IrDA pentru a lucra cu telecomanda nu funcționează deloc.
Cel mai important - orice impuls de informație trimis de la telecomandă, de fapt - este un fundal IR cu o durată specificată, cu o frecvență de 30 până la 56 kHz.
Să presupunem că, cu un stop, totul este în ordine, atunci totul va fi ca un desen (A). A existat un fond IR, după 86,8 μs (la o viteză de 115,200) a fost inițiat primul octet, evenimentul RX CHAR EVENT a fost generat.
După ce așteptați sfârșitul recepției pachetelor, numărați numărul de octeți și numărul de biți cel mai puțin semnificativ din ultimul octet, deci cunoaștem lățimea impulsului (T2) cu o precizie de 9 μs.
În așteptarea următorului RX CHAR EVENT și înghețate între ele, învățăm timpul T1. După ce am scos T2 din T1, aflăm lungimea pauzei.
Se pare că există suficiente informații pentru a decoda comanda (lungimile impulsurilor și pauzele între ele sunt cunoscute), dar.
Dacă în momentul în care bitul de stop este citit în fundal infraroșu, va fi recepționat un impuls, octetul nu va fi recepționat. Vezi figura (B). Astfel, în cazul recepționării incorecte a unuia sau mai multor octeți, RX CHAR EVENT poate apărea la punctul (1), (2) sau (3).
În plus, RX CHAR EVENT poate apărea de mai multe ori în timpul unui impuls informațional de la telecomandă, de exemplu la punctele (1) și (3). Recepția cea mai probabilă, fără erori, a unui octet care se suprapune cu capătul pulsului de informație de la telecomandă (nici un impuls nu va cădea pe stop).
Concluzie: fundal IR frecvență specifică (adică, la un anumit model de Distantsionka) o IrDA întindere poate fi utilizat pentru recepționarea comenzilor de control de modulație de impulsuri distanței și la un nivel relativ scurte impulsuri, în concordanță cu intervalul de timp dintre RX CHAR EVENT (priza DCD ). IrDA nu poate fi utilizat pentru a primi comenzi de la IR distantsionok cu un alt tip de modulare, precum și în cazul în care echipa este prezent lung primul impuls informație care apare destul de des.
Generarea comenzilor IR de la distanță prin IrDA
Aici situația este puțin mai bună. Dacă cunoașteți formatul exact al comenzii pentru această telecomandă, puteți genera mai multe pachete și le puteți trimite prin IrDA după un anumit timp. În același timp, trebuie să utilizați viteza de transmisie de 38400 (cea mai apropiată de frecvența majorității distanțelor). Se dovedește foarte aproape de semnalul original, dar nu va fi ideal. După fiecare 9 impulsuri va exista o eroare (stop bit). În plus, raportul pulsului va fi de aproximativ 19% (ar trebui să fie 50%). Echipamentul de recepție poate detecta stopul ca o pauză scurtă între impulsurile de informații și comenzile incorecte de decodare.